Merge branch 'master' into snyk-upgrade-1d870abd0ad2c511fe65000600f02a14

This commit is contained in:
Fabio Manganiello 2024-05-07 12:42:30 +02:00 committed by GitHub
commit 9dc0fbe6e7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
280 changed files with 7629 additions and 3198 deletions

View File

@ -462,7 +462,7 @@ steps:
- echo "-- Installing dependencies"
- apt update
- apt install -y curl dpkg-dev gpg git python3 python3-pip
- apt install -y curl dpkg-dev gpg git python3 python3-pip python3-setuptools
- echo "-- Copying source directory"
- mkdir -p "$WORKDIR"
@ -567,7 +567,7 @@ steps:
- echo "-- Installing dependencies"
- apt update
- apt install -y curl dpkg-dev gpg git python3 python3-pip
- apt install -y curl dpkg-dev gpg git python3 python3-pip python3-setuptools
- echo "--- Parsing metadata"
- git config --global --add safe.directory "$PWD"
@ -871,7 +871,7 @@ steps:
[ -f .skipci ] && exit 0
- echo "-- Installing dependencies"
- yum install -y createrepo rpm-build rpm-sign gpg wget yum-utils git python python-pip
- yum install -y createrepo rpm-build rpm-sign gpg wget yum-utils git python python-pip python-setuptools
- echo "-- Copying source directory"
- mkdir -p "$WORKDIR"

View File

@ -563,9 +563,7 @@ Procedures are pieces of custom logic that can be executed as atomic actions
using `procedure.<name>` as an action name.
They can be defined either in the `config.yaml` or as Python scripts stored
under `~/.config/platypush/scripts` - provided that the procedure is also
imported in `~/.config/platypush/scripts/__init__.py` so it can be discovered
by the service.
under `~/.config/platypush/scripts`.
YAML example for a procedure that can be executed when we arrive home and turns
on the lights if the luminosity is lower that a certain thresholds, says a

View File

@ -7,12 +7,6 @@ Backends
:caption: Backends:
platypush/backend/http.rst
platypush/backend/midi.rst
platypush/backend/music.mopidy.rst
platypush/backend/music.spotify.rst
platypush/backend/nodered.rst
platypush/backend/redis.rst
platypush/backend/stt.deepspeech.rst
platypush/backend/stt.picovoice.hotword.rst
platypush/backend/stt.picovoice.speech.rst
platypush/backend/tcp.rst

View File

@ -1,6 +0,0 @@
``midi``
==========================
.. automodule:: platypush.backend.midi
:members:

View File

@ -1,6 +0,0 @@
``music.mopidy``
==================================
.. automodule:: platypush.backend.music.mopidy
:members:

View File

@ -1,5 +0,0 @@
``music.spotify``
===================================
.. automodule:: platypush.backend.music.spotify
:members:

View File

@ -1,5 +0,0 @@
``stt.deepspeech``
====================================
.. automodule:: platypush.backend.stt.deepspeech
:members:

View File

@ -1,5 +0,0 @@
``stt.picovoice.hotword``
===========================================
.. automodule:: platypush.backend.stt.picovoice.hotword
:members:

View File

@ -1,5 +0,0 @@
``stt.picovoice.speech``
==========================================
.. automodule:: platypush.backend.stt.picovoice.speech
:members:

View File

@ -0,0 +1,5 @@
``assistant.picovoice``
=======================
.. automodule:: platypush.plugins.assistant.picovoice
:members:

View File

@ -0,0 +1,5 @@
``music.mopidy``
================
.. automodule:: platypush.plugins.music.mopidy
:members:

View File

@ -0,0 +1,5 @@
``openai``
==========
.. automodule:: platypush.plugins.openai
:members:

View File

@ -1,5 +0,0 @@
``stt.deepspeech``
====================================
.. automodule:: platypush.plugins.stt.deepspeech
:members:

View File

@ -1,5 +0,0 @@
``stt.picovoice.hotword``
===========================================
.. automodule:: platypush.plugins.stt.picovoice.hotword
:members:

View File

@ -1,5 +0,0 @@
``stt.picovoice.speech``
==========================================
.. automodule:: platypush.plugins.stt.picovoice.speech
:members:

View File

@ -0,0 +1,5 @@
``tts.picovoice``
=================
.. automodule:: platypush.plugins.tts.picovoice
:members:

View File

@ -11,6 +11,7 @@ Plugins
platypush/plugins/application.rst
platypush/plugins/arduino.rst
platypush/plugins/assistant.google.rst
platypush/plugins/assistant.picovoice.rst
platypush/plugins/autoremote.rst
platypush/plugins/bluetooth.rst
platypush/plugins/calendar.rst
@ -84,6 +85,7 @@ Plugins
platypush/plugins/ml.cv.rst
platypush/plugins/mobile.join.rst
platypush/plugins/mqtt.rst
platypush/plugins/music.mopidy.rst
platypush/plugins/music.mpd.rst
platypush/plugins/music.snapcast.rst
platypush/plugins/music.spotify.rst
@ -93,6 +95,7 @@ Plugins
platypush/plugins/ngrok.rst
platypush/plugins/nmap.rst
platypush/plugins/ntfy.rst
platypush/plugins/openai.rst
platypush/plugins/otp.rst
platypush/plugins/pihole.rst
platypush/plugins/ping.rst
@ -118,9 +121,6 @@ Plugins
platypush/plugins/smartthings.rst
platypush/plugins/sound.rst
platypush/plugins/ssh.rst
platypush/plugins/stt.deepspeech.rst
platypush/plugins/stt.picovoice.hotword.rst
platypush/plugins/stt.picovoice.speech.rst
platypush/plugins/sun.rst
platypush/plugins/switch.tplink.rst
platypush/plugins/switch.wemo.rst
@ -135,6 +135,7 @@ Plugins
platypush/plugins/tts.rst
platypush/plugins/tts.google.rst
platypush/plugins/tts.mimic3.rst
platypush/plugins/tts.picovoice.rst
platypush/plugins/tv.samsung.ws.rst
platypush/plugins/twilio.rst
platypush/plugins/udp.rst

View File

@ -7,10 +7,13 @@ Platypush
from .app import Application
from .config import Config
from .context import get_backend, get_bus, get_plugin
from .context import Variable, get_backend, get_bus, get_plugin
from .cron import cron
from .event.hook import hook
from .message.event import Event
from .message.request import Request
from .message.response import Response
from .procedure import procedure
from .runner import main
from .utils import run
@ -19,14 +22,18 @@ __author__ = 'Fabio Manganiello <fabio@manganiello.tech>'
__version__ = '0.50.3'
__all__ = [
'Application',
'Variable',
'Config',
'Event',
'Request',
'Response',
'cron',
'get_backend',
'get_bus',
'get_plugin',
'hook',
'main',
'procedure',
'run',
]

View File

@ -1,5 +1,6 @@
from contextlib import contextmanager
import logging
import pathlib
import os
import signal
import subprocess
@ -41,6 +42,7 @@ class Application:
self,
config_file: Optional[str] = None,
workdir: Optional[str] = None,
db: Optional[str] = None,
logsdir: Optional[str] = None,
cachedir: Optional[str] = None,
device_id: Optional[str] = None,
@ -56,30 +58,87 @@ class Application:
ctrl_sock: Optional[str] = None,
):
"""
:param config_file: Configuration file override (default: None).
:param workdir: Overrides the ``workdir`` setting in the configuration
file (default: None).
:param logsdir: Set logging directory. If not specified, the
``filename`` setting under the ``logging`` section of the
configuration file is used. If not set, logging will be sent to
stdout and stderr.
:param cachedir: Overrides the ``cachedir`` setting in the configuration
file (default: None).
:param device_id: Override the device ID used to identify this
instance. If not passed here, it is inferred from the configuration
(device_id field). If not present there either, it is inferred from
the hostname.
:param config_file: Configuration file. The order of precedence is:
- The ``config_file`` parameter (or the ``-c``/``--config`` command
line argument).
- The ``PLATYPUSH_CONFIG`` environment variable.
- ``./config.yaml``
- ``~/.config/platypush/config.yaml``
- ``/etc/platypush/config.yaml``
:param workdir: Working directory where the application will store its
data and integration plugins will store their data. The order of
precedence is:
- The ``workdir`` parameter (or the ``-w``/``--workdir`` command
line argument).
- The ``PLATYPUSH_WORKDIR`` environment variable.
- The ``workdir`` field in the configuration file.
- ``~/.local/share/platypush``
:param db: Main database engine for the application. Supports SQLAlchemy
engine strings. The order of precedence is:
- The ``db`` parameter (or the ``--main-db``/``--db`` command
line argument).
- The ``PLATYPUSH_DB`` environment variable.
- The ``db`` field in the configuration file.
- ``sqlite:///<workdir>/main.db``
:param logsdir: Logs directory where the application will store its logs.
The order of precedence is:
- The ``logsdir`` parameter (or the ``-l``/``--logsdir`` command
line argument).
- The ``PLATYPUSH_LOGSDIR`` environment variable.
- The ``logging`` -> ``filename`` field in the configuration
file (the ``format`` and ``level`` fields can be set as well
using Python logging configuration).
- stdout and stderr
:param cachedir: Directory where the application and the plugins will store
their cache data. The order of precedence is:
- The ``cachedir`` parameter (or the ``--cachedir`` command line
argument).
- The ``PLATYPUSH_CACHEDIR`` environment variable.
- The ``cachedir`` field in the configuration file.
- ``~/.cache/platypush``
:param device_id: Device ID used to identify this instance. The order
of precedence is:
- The ``device_id`` parameter (or the ``--device-id`` command
line argument).
- The ``PLATYPUSH_DEVICE_ID`` environment variable.
- The ``device_id`` field in the configuration file.
- The hostname of the machine.
:param pidfile: File where platypush will store its PID upon launch,
useful if you're planning to integrate the application within a
service or a launcher script (default: None).
service or a launcher script. Order of precedence:
- The ``pidfile`` parameter (or the ``-P``/``--pidfile`` command
line argument).
- The ``PLATYPUSH_PIDFILE`` environment variable.
- No PID file.
:param requests_to_process: Exit after processing the specified
number of requests (default: None, loop forever).
number of requests (default: None, loop forever). This is usually
useful for testing purposes.
:param no_capture_stdout: Set to true if you want to disable the
stdout capture by the logging system (default: False).
:param no_capture_stderr: Set to true if you want to disable the
stderr capture by the logging system (default: False).
:param redis_queue: Name of the (Redis) queue used for dispatching
messages (default: platypush/bus).
messages. Order of precedence:
- The ``redis_queue`` parameter (or the ``--redis-queue`` command
line argument).
- The ``PLATYPUSH_REDIS_QUEUE`` environment variable.
- ``platypush/bus``
:param verbose: Enable debug/verbose logging, overriding the stored
configuration (default: False).
:param start_redis: If set, it starts a managed Redis instance upon
@ -87,34 +146,57 @@ class Application:
server). This is particularly useful when running the application
inside of Docker containers, without relying on ``docker-compose``
to start multiple containers, and in tests (default: False).
:param redis_host: Host of the Redis server to be used. It overrides
the settings in the ``redis`` section of the configuration file.
:param redis_port: Port of the local Redis server. It overrides the
settings in the ``redis`` section of the configuration file.
:param redis_host: Host of the Redis server to be used. The order of
precedence is:
- The ``redis_host`` parameter (or the ``--redis-host`` command
line argument).
- The ``PLATYPUSH_REDIS_HOST`` environment variable.
- The ``redis`` -> ``host`` field in the configuration file.
- The ``backend.redis`` -> ``redis_args`` -> ``host`` field in
the configuration file.
- ``localhost``
:param redis_port: Port of the Redis server to be used. The order of
precedence is:
- The ``redis_port`` parameter (or the ``--redis-port`` command
line argument).
- The ``PLATYPUSH_REDIS_PORT`` environment variable.
- The ``redis`` -> ``port`` field in the configuration file.
- The ``backend.redis`` -> ``redis_args`` -> ``port`` field in
the configuration file.
- ``6379``
:param ctrl_sock: If set, it identifies a path to a UNIX domain socket
that the application can use to send control messages (e.g. STOP
and RESTART) to its parent.
"""
self.pidfile = pidfile
self.pidfile = pidfile or os.environ.get('PLATYPUSH_PIDFILE')
self.bus: Optional[Bus] = None
self.redis_queue = redis_queue or RedisBus.DEFAULT_REDIS_QUEUE
self.config_file = config_file
self._verbose = verbose
self._logsdir = (
os.path.abspath(os.path.expanduser(logsdir)) if logsdir else None
self.redis_queue = (
redis_queue
or os.environ.get('PLATYPUSH_REDIS_QUEUE')
or RedisBus.DEFAULT_REDIS_QUEUE
)
self.config_file = config_file or os.environ.get('PLATYPUSH_CONFIG')
self.verbose = verbose
self.db_engine = db or os.environ.get('PLATYPUSH_DB')
self.device_id = device_id or os.environ.get('PLATYPUSH_DEVICE_ID')
self.logsdir = self.expand_path(logsdir or os.environ.get('PLATYPUSH_LOGSDIR'))
self.workdir = self.expand_path(workdir or os.environ.get('PLATYPUSH_WORKDIR'))
self.cachedir = self.expand_path(
cachedir or os.environ.get('PLATYPUSH_CACHEDIR')
)
Config.init(
self.config_file,
device_id=device_id,
workdir=os.path.abspath(os.path.expanduser(workdir)) if workdir else None,
cachedir=os.path.abspath(os.path.expanduser(cachedir))
if cachedir
else None,
ctrl_sock=os.path.abspath(os.path.expanduser(ctrl_sock))
if ctrl_sock
else None,
device_id=self.device_id,
workdir=self.workdir,
db=self.db_engine,
cachedir=self.cachedir,
ctrl_sock=self.expand_path(ctrl_sock),
)
self.no_capture_stdout = no_capture_stdout
@ -125,24 +207,25 @@ class Application:
self.processed_requests = 0
self.cron_scheduler = None
self.start_redis = start_redis
self.redis_host = redis_host
self.redis_port = redis_port
self.redis_conf = {}
self.redis_host = redis_host or os.environ.get('PLATYPUSH_REDIS_HOST')
self.redis_port = redis_port or os.environ.get('PLATYPUSH_REDIS_PORT')
self._redis_conf = {
'host': self.redis_host or 'localhost',
'port': self.redis_port or self._default_redis_port,
}
self._redis_proc: Optional[subprocess.Popen] = None
self.cmd_stream = CommandStream(ctrl_sock)
self._init_bus()
self._init_logging()
@staticmethod
def expand_path(path: Optional[str]) -> Optional[str]:
return os.path.abspath(os.path.expanduser(path)) if path else None
def _init_bus(self):
self._redis_conf = get_redis_conf()
self._redis_conf['port'] = self.redis_port or self._redis_conf.get(
'port', self._default_redis_port
)
if self.redis_host:
self._redis_conf['host'] = self.redis_host
self._redis_conf = {**self._redis_conf, **get_redis_conf()}
Config.set('redis', self._redis_conf)
self.bus = RedisBus(
redis_queue=self.redis_queue,
@ -152,12 +235,18 @@ class Application:
def _init_logging(self):
logging_conf = Config.get('logging') or {}
if self._verbose:
if self.verbose:
logging_conf['level'] = logging.DEBUG
if self._logsdir:
logging_conf['filename'] = os.path.join(self._logsdir, 'platypush.log')
if self.logsdir:
logging_conf['filename'] = os.path.join(self.logsdir, 'platypush.log')
logging_conf.pop('stream', None)
if logging_conf.get('filename'):
pathlib.Path(os.path.dirname(logging_conf['filename'])).mkdir(
parents=True, exist_ok=True
)
Config.set('logging', logging_conf)
logging.basicConfig(**logging_conf)
@ -214,6 +303,7 @@ class Application:
workdir=opts.workdir,
cachedir=opts.cachedir,
logsdir=opts.logsdir,
db=opts.db_engine,
device_id=opts.device_id,
pidfile=opts.pidfile,
no_capture_stdout=opts.no_capture_stdout,

View File

@ -402,6 +402,13 @@ class Backend(Thread, EventGenerator, ExtensionWithManifest):
)
return
if self.zeroconf:
self.logger.info(
'Zeroconf service already registered for %s, removing the previous instance',
self.__class__.__name__,
)
self.unregister_service()
self.zeroconf = Zeroconf()
srv_desc = {
'name': 'Platypush',

View File

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><!--[if IE]><link rel="icon" href="/favicon.ico"><![endif]--><link rel="stylesheet" href="/fonts/poppins.css"><title>platypush</title><script defer="defer" src="/static/js/chunk-vendors.aeea9c55.js"></script><script defer="defer" src="/static/js/app.6898f17e.js"></script><link href="/static/css/chunk-vendors.a2412607.css" rel="stylesheet"><link href="/static/css/app.28d8a91c.css" rel="stylesheet"><link rel="icon" type="image/svg+xml" href="/img/icons/favicon.svg"><link rel="icon" type="image/png" sizes="32x32" href="/img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/img/icons/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#ffffff"><meta name="apple-mobile-web-app-capable" content="no"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="Platypush"><link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="/img/icons/safari-pinned-tab.svg" color="#ffffff"><meta name="msapplication-TileImage" content="/img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but platypush doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><!--[if IE]><link rel="icon" href="/favicon.ico"><![endif]--><link rel="stylesheet" href="/fonts/poppins.css"><title>platypush</title><script defer="defer" src="/static/js/chunk-vendors.aeea9c55.js"></script><script defer="defer" src="/static/js/app.0e4170c7.js"></script><link href="/static/css/chunk-vendors.a2412607.css" rel="stylesheet"><link href="/static/css/app.5b1362a4.css" rel="stylesheet"><link rel="icon" type="image/svg+xml" href="/img/icons/favicon.svg"><link rel="icon" type="image/png" sizes="32x32" href="/img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/img/icons/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#ffffff"><meta name="apple-mobile-web-app-capable" content="no"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="Platypush"><link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="/img/icons/safari-pinned-tab.svg" color="#ffffff"><meta name="msapplication-TileImage" content="/img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but platypush doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[1088],{1088:function(n,e,t){t.r(e),t.d(e,{default:function(){return o}});var u=t(6252);function a(n,e,t,a,r,p){const s=(0,u.up)("Zwave");return(0,u.wg)(),(0,u.j4)(s,{"plugin-name":"zwave.mqtt"})}var r=t(7880),p={components:{Zwave:r.Z}},s=t(3744);const c=(0,s.Z)(p,[["render",a]]);var o=c}}]);
//# sourceMappingURL=1088.0fe97dc5.js.map
//# sourceMappingURL=1088.8670f8f4.js.map

View File

@ -1 +1 @@
{"version":3,"file":"static/js/1088.0fe97dc5.js","mappings":"iPACEA,EAAAA,EAAAA,IAAkCC,EAAA,CAA3B,cAAY,c,eAMrB,GACEC,WAAY,CAACC,MAAKA,EAAAA,I,UCHpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/ZwaveMqtt/Index.vue","webpack://platypush/./src/components/panels/ZwaveMqtt/Index.vue?4812"],"sourcesContent":["<template>\n <Zwave plugin-name=\"zwave.mqtt\" />\n</template>\n\n<script>\nimport Zwave from \"@/components/panels/Zwave/Zwave\";\n\nexport default {\n components: {Zwave},\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=8fb9cbb2\"\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":["_createBlock","_component_Zwave","components","Zwave","__exports__","render"],"sourceRoot":""}
{"version":3,"file":"static/js/1088.8670f8f4.js","mappings":"iPACEA,EAAAA,EAAAA,IAAkCC,EAAA,CAA3B,cAAY,c,eAMrB,GACEC,WAAY,CAACC,MAAKA,EAAAA,I,UCHpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/ZwaveMqtt/Index.vue","webpack://platypush/./src/components/panels/ZwaveMqtt/Index.vue?4812"],"sourcesContent":["<template>\n <Zwave plugin-name=\"zwave.mqtt\" />\n</template>\n\n<script>\nimport Zwave from \"@/components/panels/Zwave/Zwave\";\n\nexport default {\n components: {Zwave},\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=8fb9cbb2\"\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":["_createBlock","_component_Zwave","components","Zwave","__exports__","render"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[1949],{1949:function(e,t,a){a.r(t),a.d(t,{default:function(){return f}});var l=a(6252);const i={key:2,class:"alarms-container"},n={class:"alarms items"};function s(e,t,a,s,d,o){const r=(0,l.up)("Loading"),m=(0,l.up)("NoItems"),u=(0,l.up)("Entity"),c=(0,l.up)("EntityModal"),p=(0,l.up)("AlarmEditor"),h=(0,l.up)("Modal"),y=(0,l.up)("FloatingButton");return(0,l.wg)(),(0,l.iD)(l.HY,null,[d.loading?((0,l.wg)(),(0,l.j4)(r,{key:0})):Object.keys(d.alarms).length?((0,l.wg)(),(0,l.iD)("div",i,[(0,l._)("div",n,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(d.alarms,(e=>((0,l.wg)(),(0,l.iD)("div",{class:"item",key:e.external_id},[(0,l.Wm)(u,{value:e,onShowModal:t=>d.selectedAlarm=e.external_id},null,8,["value","onShowModal"])])))),128))])])):((0,l.wg)(),(0,l.j4)(m,{key:1},{default:(0,l.w5)((()=>[(0,l.Uk)(" No alarms configured ")])),_:1})),o.modalVisible?((0,l.wg)(),(0,l.j4)(c,{key:3,entity:d.alarms[d.selectedAlarm],visible:o.modalVisible,"config-values":{},onClose:t[0]||(t[0]=e=>d.selectedAlarm=null)},null,8,["entity","visible"])):(0,l.kq)("",!0),(0,l.Wm)(h,{title:"Add Alarm",visible:d.addAlarmModalVisible,onClose:t[1]||(t[1]=e=>d.addAlarmModalVisible=!1)},{default:(0,l.w5)((()=>[d.addAlarmModalVisible?((0,l.wg)(),(0,l.j4)(p,{key:0,value:d.newAlarm,"new-alarm":"",onInput:o.addAlarm},null,8,["value","onInput"])):(0,l.kq)("",!0)])),_:1},8,["visible"]),(0,l.Wm)(y,{"icon-class":"fa fa-stopwatch",text:"Add Alarm",onClick:t[2]||(t[2]=e=>d.addAlarmModalVisible=!0)})],64)}var d=a(9381),o=a(6791),r=a(1999),m=a(4558),u=a(3901),c=a(3493),p=a(3222),h=a(8637),y={components:{AlarmEditor:d["default"],Entity:m["default"],EntityModal:r["default"],FloatingButton:u.Z,Loading:o.Z,Modal:c.Z,NoItems:p.Z},mixins:[h.Z],props:{pluginName:{type:String},config:{type:Object,default:()=>{}}},data(){return{loading:!1,addAlarmModalVisible:!1,alarms:{},selectedAlarm:null,newAlarm:{condition_type:"cron",when:"* * * * *",audio_volume:this.$root.config?.alarm?.audio_volume??100,media_repeat:!0}}},computed:{modalVisible(){return null!=this.alarms[this.selectedAlarm]}},methods:{addAlarm(e){null!=e.external_id&&(e.name=e?.meta?.name_override||e.name,e.meta={...e.meta,icon:{class:e.meta?.icon?.["class"]||"fas fa-stopwatch"}},this.alarms[e.external_id]=e,this.addAlarmModalVisible=!1)},async refresh(){this.$emit("loading",!0);try{await this.request("alarm.status"),(await this.request("entities.get",{plugins:[this.pluginName]})).forEach((e=>this.addAlarm(e)))}finally{this.$emit("loading",!1)}},async onEntityUpdate(e){const t=e?.entity;t?.plugin===this.pluginName&&this.addAlarm(t)},async onEntityDelete(e){const t=e?.entity;t?.plugin===this.pluginName&&(this.selectedAlarm===t.external_id&&(this.selectedAlarm=null),this.alarms[t.external_id]&&delete this.alarms[t.external_id])}},mounted(){this.refresh(),this.subscribe(this.onEntityUpdate,"on-alarm-entity-update","platypush.message.event.entities.EntityUpdateEvent"),this.subscribe(this.onEntityDelete,"on-alarm-entity-delete","platypush.message.event.entities.EntityDeleteEvent")},unmounted(){this.unsubscribe("on-alarm-entity-update"),this.unsubscribe("on-alarm-entity-delete")}},g=a(3744);const b=(0,g.Z)(y,[["render",s],["__scopeId","data-v-52431f4a"]]);var f=b}}]);
//# sourceMappingURL=1949.3e6197ac.js.map
//# sourceMappingURL=1949.9d6edfd8.js.map

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2106],{2106:function(a,e,l){l.r(e),l.d(e,{default:function(){return $}});var i=l(6252),s=l(9963);const t=a=>((0,i.dD)("data-v-4e3d4a40"),a=a(),(0,i.Cn)(),a),n={class:"variable-modal-container"},r={class:"row"},o=t((()=>(0,i._)("div",{class:"col-s-12 col-m-4 label"},[(0,i._)("label",{for:"name"},"Variable Name")],-1))),d={class:"col-s-12 col-m-8 value"},u=["disabled"],c={class:"row"},v=t((()=>(0,i._)("div",{class:"col-s-12 col-m-4 label"},[(0,i._)("label",{for:"name"},"Variable Value")],-1))),m={class:"col-s-12 col-m-8 value"},b=["disabled"],h={class:"row button-container"},p=["disabled"],f=t((()=>(0,i._)("i",{class:"fas fa-check"},null,-1))),V=[f];function _(a,e,l,t,f,_){const y=(0,i.up)("Modal");return(0,i.wg)(),(0,i.j4)(y,{visible:l.visible,title:"Set Variable",ref:"modal",onOpen:_.onOpen,onClose:e[3]||(e[3]=e=>a.$emit("close",e))},{default:(0,i.w5)((()=>[(0,i._)("div",n,[(0,i._)("form",{onSubmit:e[2]||(e[2]=(0,s.iM)(((...a)=>_.setValue&&_.setValue(...a)),["prevent"]))},[(0,i._)("div",r,[o,(0,i._)("div",d,[(0,i.wy)((0,i._)("input",{type:"text",id:"variable-name","onUpdate:modelValue":e[0]||(e[0]=a=>f.varName=a),placeholder:"Variable Name",disabled:f.loading,ref:"varName"},null,8,u),[[s.nr,f.varName]])])]),(0,i._)("div",c,[v,(0,i._)("div",m,[(0,i.wy)((0,i._)("input",{type:"text",id:"variable-value","onUpdate:modelValue":e[1]||(e[1]=a=>f.varValue=a),ref:"varValue",placeholder:"Variable Value",disabled:f.loading},null,8,b),[[s.nr,f.varValue]])])]),(0,i._)("div",h,[(0,i._)("button",{type:"submit",title:"Set",disabled:f.loading},V,8,p)])],32)])])),_:1},8,["visible","onOpen"])}var y=l(3493),g=l(8637),w={name:"VariableModal",components:{Modal:y.Z},mixins:[g.Z],emits:["close"],props:{visible:{type:Boolean,default:!1}},data(){return{loading:!1,varName:null,varValue:null}},methods:{async clearValue(){this.loading=!0;try{await this.request("variable.unset",{name:this.varName.trim()})}finally{this.loading=!1}},async setValue(){const a=this.varName.trim();a?.length||this.notifyWarning("No variable name has been specified");const e=this.varValue;if(e?.length){this.loading=!0;try{const l={};l[a]=e,await this.request("variable.set",l)}finally{this.loading=!1}}else await this.clearValue();this.$refs.varName.value="",this.$refs.varValue.value="",this.$refs.modal.close()},onOpen(){this.$nextTick((()=>{this.$refs.varName.focus()}))}}},N=l(3744);const k=(0,N.Z)(w,[["render",_],["__scopeId","data-v-4e3d4a40"]]);var $=k}}]);
//# sourceMappingURL=2106.15b2d62b.js.map
//# sourceMappingURL=2106.6553ebed.js.map

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2140,4619],{4619:function(e,t,s){s.r(t),s.d(t,{default:function(){return w}});var o=s(6252),i=s(3577);const a={class:"date-time"},r=["textContent"],h=["textContent"];function n(e,t,s,n,m,u){return(0,o.wg)(),(0,o.iD)("div",a,[u._showDate?((0,o.wg)(),(0,o.iD)("div",{key:0,class:"date",textContent:(0,i.zw)(e.formatDate(e.now))},null,8,r)):(0,o.kq)("",!0),u._showTime?((0,o.wg)(),(0,o.iD)("div",{key:1,class:"time",textContent:(0,i.zw)(e.formatTime(e.now,u._showSeconds))},null,8,h)):(0,o.kq)("",!0)])}var m=s(8637),u={name:"DateTime",mixins:[m.Z],props:{showDate:{required:!1,default:!0},showTime:{required:!1,default:!0},showSeconds:{required:!1,default:!0}},computed:{_showTime(){return this.parseBoolean(this.showTime)},_showDate(){return this.parseBoolean(this.showDate)},_showSeconds(){return this.parseBoolean(this.showSeconds)}},data:function(){return{now:new Date}},methods:{refreshTime(){this.now=new Date}},mounted:function(){this.refreshTime(),setInterval(this.refreshTime,1e3)}},c=s(3744);const l=(0,c.Z)(u,[["render",n],["__scopeId","data-v-ca42eb9c"]]);var w=l},2140:function(e,t,s){s.r(t),s.d(t,{default:function(){return k}});var o=s(6252),i=s(3577);const a={class:"image-carousel"},r={ref:"background",class:"background"},h=["src"],n={key:1,class:"row info-container"},m={class:"col-6 weather-container"},u={key:0},c={class:"col-6 date-time-container"};function l(e,t,s,l,w,d){const g=(0,o.up)("Loading"),f=(0,o.up)("Weather"),p=(0,o.up)("DateTime");return(0,o.wg)(),(0,o.iD)("div",a,[w.images.length?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(g,{key:0})),(0,o._)("div",r,null,512),(0,o._)("img",{ref:"img",src:d.imgURL,alt:"Your carousel images",style:(0,i.j5)({display:w.images.length?"block":"none"})},null,12,h),d._showDate||d._showTime?((0,o.wg)(),(0,o.iD)("div",n,[(0,o._)("div",m,[d._showWeather?((0,o.wg)(),(0,o.j4)(f,{key:1,"show-icon":d._showWeatherIcon,"show-summary":d._showWeatherSummary,"show-temperature":d._showTemperature,"icon-color":s.weatherIconColor,"icon-size":s.weatherIconSize,animate:d._animateWeatherIcon},null,8,["show-icon","show-summary","show-temperature","icon-color","icon-size","animate"])):((0,o.wg)(),(0,o.iD)("span",u," "))]),(0,o._)("div",c,[d._showTime||d._showDate?((0,o.wg)(),(0,o.j4)(p,{key:0,"show-date":d._showDate,"show-time":d._showTime,"show-seconds":d._showSeconds},null,8,["show-date","show-time","show-seconds"])):(0,o.kq)("",!0)])])):(0,o.kq)("",!0)])}var w=s(8637),d=s(6791),g=s(4619),f=s(5193),p={name:"ImageCarousel",components:{Weather:f["default"],DateTime:g["default"],Loading:d.Z},mixins:[w.Z],props:{imgDir:{type:String,required:!0},refreshSeconds:{type:Number,default:15},showDate:{default:!1},showTime:{default:!1},showSeconds:{default:!1},showWeather:{default:!1},showTemperature:{default:!0},showWeatherIcon:{default:!0},showWeatherSummary:{default:!0},weatherIconColor:{type:String,default:"white"},weatherIconSize:{type:Number,default:70},animateWeatherIcon:{default:!0}},data(){return{images:[],currentImage:void 0,loading:!1}},computed:{imgURL(){let e=8008;return"backend.http"in this.$root.config&&"port"in this.$root.config["backend.http"]&&(e=this.$root.config["backend.http"].port),"//"+window.location.hostname+":"+e+this.currentImage},_showDate(){return this.parseBoolean(this.showDate)},_showTime(){return this.parseBoolean(this.showTime)},_showSeconds(){return this.parseBoolean(this.showSeconds)},_showTemperature(){return this.parseBoolean(this.showTemperature)},_showWeather(){return this.parseBoolean(this.showWeather)},_showWeatherIcon(){return this.parseBoolean(this.showWeatherIcon)},_showWeatherSummary(){return this.parseBoolean(this.showWeatherSummary)},_animateWeatherIcon(){return this.parseBoolean(this.animateWeatherIcon)}},methods:{async refresh(){if(!this.images.length){this.loading=!0;try{this.images=await this.request("utils.search_web_directory",{directory:this.imgDir,extensions:[".jpg",".jpeg",".png"]}),this.shuffleImages()}finally{this.loading=!1}}this.images.length&&(this.currentImage=this.images.pop())},onNewImage(){if(this.$refs.img&&(this.$refs.background.style["background-image"]="url("+this.imgURL+")",this.$refs.img.style.width="auto",this.$refs.img.width>this.$refs.img.height)){const e=this.$refs.img.width/this.$refs.img.height;e>=4/3&&e<=16/9?this.$refs.img.style.width="100%":e<=4/3&&(this.$refs.img.style.height="100%")}},shuffleImages(){for(let e=this.images.length-1;e>0;e--){let t=Math.floor(Math.random()*(e+1)),s=this.images[e];this.images[e]=this.images[t],this.images[t]=s}}},mounted(){this.$refs.img.addEventListener("load",this.onNewImage),this.$refs.img.addEventListener("error",this.refresh),this.refresh(),setInterval(this.refresh,Math.round(1e3*this.refreshSeconds))}},_=s(3744);const y=(0,_.Z)(p,[["render",l],["__scopeId","data-v-7b09a273"]]);var k=y}}]);
//# sourceMappingURL=2140.edf81bd3.js.map
//# sourceMappingURL=2140.1dc2f842.js.map

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2183],{2183:function(n,e,r){r.r(e),r.d(e,{default:function(){return o}});var t=r(6252);function u(n,e,r,u,a,p){const s=(0,t.up)("Panel");return(0,t.wg)(),(0,t.j4)(s,{"plugin-name":"rtorrent"})}var a=r(7968),p={name:"Torrent",components:{Panel:a.Z}},s=r(3744);const c=(0,s.Z)(p,[["render",u]]);var o=c}}]);
//# sourceMappingURL=2183.e176e1e9.js.map
//# sourceMappingURL=2183.2941880a.js.map

View File

@ -1 +1 @@
{"version":3,"file":"static/js/2183.e176e1e9.js","mappings":"iPACEA,EAAAA,EAAAA,IAAgCC,EAAA,CAAzB,cAAY,Y,eAMrB,GACEC,KAAM,UACNC,WAAY,CAACC,MAAKA,EAAAA,I,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Rtorrent/Index.vue","webpack://platypush/./src/components/panels/Rtorrent/Index.vue?5c1f"],"sourcesContent":["<template>\n <Panel plugin-name=\"rtorrent\" />\n</template>\n\n<script>\nimport Panel from \"@/components/panels/Torrent/Panel\";\n\nexport default {\n name: \"Torrent\",\n components: {Panel}\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=4938278b\"\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":["_createBlock","_component_Panel","name","components","Panel","__exports__","render"],"sourceRoot":""}
{"version":3,"file":"static/js/2183.2941880a.js","mappings":"iPACEA,EAAAA,EAAAA,IAAgCC,EAAA,CAAzB,cAAY,Y,eAMrB,GACEC,KAAM,UACNC,WAAY,CAACC,MAAKA,EAAAA,I,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Rtorrent/Index.vue","webpack://platypush/./src/components/panels/Rtorrent/Index.vue?5c1f"],"sourcesContent":["<template>\n <Panel plugin-name=\"rtorrent\" />\n</template>\n\n<script>\nimport Panel from \"@/components/panels/Torrent/Panel\";\n\nexport default {\n name: \"Torrent\",\n components: {Panel}\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=4938278b\"\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":["_createBlock","_component_Panel","name","components","Panel","__exports__","render"],"sourceRoot":""}

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2200],{2200:function(s,i,e){e.r(i),e.d(i,{default:function(){return b}});var c=e(6252);const a={class:"youtube-views-browser grid"},l=(0,c._)("div",{class:"icon"},[(0,c._)("i",{class:"fas fa-rss"})],-1),t=(0,c._)("div",{class:"name"},"Feed",-1),n=[l,t],r=(0,c._)("div",{class:"icon"},[(0,c._)("i",{class:"fas fa-list"})],-1),u=(0,c._)("div",{class:"name"},"Playlists",-1),d=[r,u],o=(0,c._)("div",{class:"icon"},[(0,c._)("i",{class:"fas fa-user"})],-1),v=(0,c._)("div",{class:"name"},"Subscriptions",-1),f=[o,v];function _(s,i,e,l,t,r){return(0,c.wg)(),(0,c.iD)("div",a,[(0,c._)("div",{class:"item",onClick:i[0]||(i[0]=i=>s.$emit("select","feed"))},n),(0,c._)("div",{class:"item",onClick:i[1]||(i[1]=i=>s.$emit("select","playlists"))},d),(0,c._)("div",{class:"item",onClick:i[2]||(i[2]=i=>s.$emit("select","subscriptions"))},f)])}var m={emits:["select"]},p=e(3744);const k=(0,p.Z)(m,[["render",_]]);var b=k}}]);
//# sourceMappingURL=2200.2e9c8630.js.map
//# sourceMappingURL=2200.9fc9fd95.js.map

View File

@ -1 +1 @@
{"version":3,"file":"static/js/2200.2e9c8630.js","mappings":"sLACOA,MAAM,8B,GAEPC,EAAAA,EAAAA,GAEM,OAFDD,MAAM,QAAM,EACfC,EAAAA,EAAAA,GAAwB,KAArBD,MAAM,iBAAY,G,GAEvBC,EAAAA,EAAAA,GAA4B,OAAvBD,MAAM,QAAO,QAAI,G,GAHtBE,EAGAC,G,GAIAF,EAAAA,EAAAA,GAEM,OAFDD,MAAM,QAAM,EACfC,EAAAA,EAAAA,GAAyB,KAAtBD,MAAM,kBAAa,G,GAExBC,EAAAA,EAAAA,GAAiC,OAA5BD,MAAM,QAAO,aAAS,G,GAH3BI,EAGAC,G,GAIAJ,EAAAA,EAAAA,GAEM,OAFDD,MAAM,QAAM,EACfC,EAAAA,EAAAA,GAAyB,KAAtBD,MAAM,kBAAa,G,GAExBC,EAAAA,EAAAA,GAAqC,OAAhCD,MAAM,QAAO,iBAAa,G,GAH/BM,EAGAC,G,0CAnBJC,EAAAA,EAAAA,IAqBM,MArBNC,EAqBM,EApBJR,EAAAA,EAAAA,GAKM,OALDD,MAAM,OAAQU,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEC,EAAAC,MAAM,SAAU,U,IAO1Cb,EAAAA,EAAAA,GAKM,OALDD,MAAM,OAAQU,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEC,EAAAC,MAAM,SAAU,e,IAO1Cb,EAAAA,EAAAA,GAKM,OALDD,MAAM,OAAQU,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEC,EAAAC,MAAM,SAAU,mB,KAU9C,OACEC,MAAO,CAAC,W,UCtBV,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Media/Providers/YouTube/Index.vue","webpack://platypush/./src/components/panels/Media/Providers/YouTube/Index.vue?bde9"],"sourcesContent":["<template>\n <div class=\"youtube-views-browser grid\">\n <div class=\"item\" @click=\"$emit('select', 'feed')\">\n <div class=\"icon\">\n <i class=\"fas fa-rss\" />\n </div>\n <div class=\"name\">Feed</div>\n </div>\n\n <div class=\"item\" @click=\"$emit('select', 'playlists')\">\n <div class=\"icon\">\n <i class=\"fas fa-list\" />\n </div>\n <div class=\"name\">Playlists</div>\n </div>\n\n <div class=\"item\" @click=\"$emit('select', 'subscriptions')\">\n <div class=\"icon\">\n <i class=\"fas fa-user\" />\n </div>\n <div class=\"name\">Subscriptions</div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n emits: ['select'],\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=c531e118\"\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","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_5","_hoisted_6","_hoisted_8","_hoisted_9","_createElementBlock","_hoisted_1","onClick","_cache","$event","_ctx","$emit","emits","__exports__","render"],"sourceRoot":""}
{"version":3,"file":"static/js/2200.9fc9fd95.js","mappings":"sLACOA,MAAM,8B,GAEPC,EAAAA,EAAAA,GAEM,OAFDD,MAAM,QAAM,EACfC,EAAAA,EAAAA,GAAwB,KAArBD,MAAM,iBAAY,G,GAEvBC,EAAAA,EAAAA,GAA4B,OAAvBD,MAAM,QAAO,QAAI,G,GAHtBE,EAGAC,G,GAIAF,EAAAA,EAAAA,GAEM,OAFDD,MAAM,QAAM,EACfC,EAAAA,EAAAA,GAAyB,KAAtBD,MAAM,kBAAa,G,GAExBC,EAAAA,EAAAA,GAAiC,OAA5BD,MAAM,QAAO,aAAS,G,GAH3BI,EAGAC,G,GAIAJ,EAAAA,EAAAA,GAEM,OAFDD,MAAM,QAAM,EACfC,EAAAA,EAAAA,GAAyB,KAAtBD,MAAM,kBAAa,G,GAExBC,EAAAA,EAAAA,GAAqC,OAAhCD,MAAM,QAAO,iBAAa,G,GAH/BM,EAGAC,G,0CAnBJC,EAAAA,EAAAA,IAqBM,MArBNC,EAqBM,EApBJR,EAAAA,EAAAA,GAKM,OALDD,MAAM,OAAQU,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEC,EAAAC,MAAM,SAAU,U,IAO1Cb,EAAAA,EAAAA,GAKM,OALDD,MAAM,OAAQU,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEC,EAAAC,MAAM,SAAU,e,IAO1Cb,EAAAA,EAAAA,GAKM,OALDD,MAAM,OAAQU,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEC,EAAAC,MAAM,SAAU,mB,KAU9C,OACEC,MAAO,CAAC,W,UCtBV,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Media/Providers/YouTube/Index.vue","webpack://platypush/./src/components/panels/Media/Providers/YouTube/Index.vue?bde9"],"sourcesContent":["<template>\n <div class=\"youtube-views-browser grid\">\n <div class=\"item\" @click=\"$emit('select', 'feed')\">\n <div class=\"icon\">\n <i class=\"fas fa-rss\" />\n </div>\n <div class=\"name\">Feed</div>\n </div>\n\n <div class=\"item\" @click=\"$emit('select', 'playlists')\">\n <div class=\"icon\">\n <i class=\"fas fa-list\" />\n </div>\n <div class=\"name\">Playlists</div>\n </div>\n\n <div class=\"item\" @click=\"$emit('select', 'subscriptions')\">\n <div class=\"icon\">\n <i class=\"fas fa-user\" />\n </div>\n <div class=\"name\">Subscriptions</div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n emits: ['select'],\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=c531e118\"\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","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_5","_hoisted_6","_hoisted_8","_hoisted_9","_createElementBlock","_hoisted_1","onClick","_cache","$event","_ctx","$emit","emits","__exports__","render"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2614],{2614:function(e,n,a){a.r(n),a.d(n,{default:function(){return i}});var u=a(6252);function t(e,n,a,t,c,r){const p=(0,u.up)("Media");return(0,u.wg)(),(0,u.j4)(p,{"plugin-name":"media.vlc"})}var c=a(1256),r={name:"MediaVlc",components:{Media:c["default"]}},p=a(3744);const s=(0,p.Z)(r,[["render",t]]);var i=s}}]);
//# sourceMappingURL=2614.fde99472.js.map
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2614],{2614:function(e,n,a){a.r(n),a.d(n,{default:function(){return i}});var u=a(6252);function t(e,n,a,t,c,r){const p=(0,u.up)("Media");return(0,u.wg)(),(0,u.j4)(p,{"plugin-name":"media.vlc"})}var c=a(2509),r={name:"MediaVlc",components:{Media:c["default"]}},p=a(3744);const s=(0,p.Z)(r,[["render",t]]);var i=s}}]);
//# sourceMappingURL=2614.7997d726.js.map

View File

@ -1 +1 @@
{"version":3,"file":"static/js/2614.fde99472.js","mappings":"iPACEA,EAAAA,EAAAA,IAAiCC,EAAA,CAA1B,cAAY,a,eAMrB,GACEC,KAAM,WACNC,WAAY,CAACC,MAAKA,EAAAA,a,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/MediaVlc/Index.vue","webpack://platypush/./src/components/panels/MediaVlc/Index.vue?7b0b"],"sourcesContent":["<template>\n <Media plugin-name=\"media.vlc\" />\n</template>\n\n<script>\nimport Media from '@/components/panels/Media/Index'\n\nexport default {\n name: \"MediaVlc\",\n components: {Media},\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=9233e214\"\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":["_createBlock","_component_Media","name","components","Media","__exports__","render"],"sourceRoot":""}
{"version":3,"file":"static/js/2614.7997d726.js","mappings":"iPACEA,EAAAA,EAAAA,IAAiCC,EAAA,CAA1B,cAAY,a,eAMrB,GACEC,KAAM,WACNC,WAAY,CAACC,MAAKA,EAAAA,a,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/MediaVlc/Index.vue","webpack://platypush/./src/components/panels/MediaVlc/Index.vue?7b0b"],"sourcesContent":["<template>\n <Media plugin-name=\"media.vlc\" />\n</template>\n\n<script>\nimport Media from '@/components/panels/Media/Index'\n\nexport default {\n name: \"MediaVlc\",\n components: {Media},\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=9233e214\"\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":["_createBlock","_component_Media","name","components","Media","__exports__","render"],"sourceRoot":""}

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2732],{2732:function(n,e,u){u.r(e),u.d(e,{default:function(){return o}});var t=u(6252);function a(n,e,u,a,r,p){const s=(0,t.up)("Zwave");return(0,t.wg)(),(0,t.j4)(s,{"plugin-name":"zwave"})}var r=u(7880),p={components:{Zwave:r.Z}},s=u(3744);const c=(0,s.Z)(p,[["render",a]]);var o=c}}]);
//# sourceMappingURL=2732.423b3029.js.map
//# sourceMappingURL=2732.28f617e8.js.map

View File

@ -1 +1 @@
{"version":3,"file":"static/js/2732.423b3029.js","mappings":"iPACEA,EAAAA,EAAAA,IAA6BC,EAAA,CAAtB,cAAY,S,eAMrB,GACEC,WAAY,CAACC,MAAKA,EAAAA,I,UCHpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Zwave/Index.vue","webpack://platypush/./src/components/panels/Zwave/Index.vue?b798"],"sourcesContent":["<template>\n <Zwave plugin-name=\"zwave\" />\n</template>\n\n<script>\nimport Zwave from \"@/components/panels/Zwave/Zwave\";\n\nexport default {\n components: {Zwave},\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=4b554bd5\"\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":["_createBlock","_component_Zwave","components","Zwave","__exports__","render"],"sourceRoot":""}
{"version":3,"file":"static/js/2732.28f617e8.js","mappings":"iPACEA,EAAAA,EAAAA,IAA6BC,EAAA,CAAtB,cAAY,S,eAMrB,GACEC,WAAY,CAACC,MAAKA,EAAAA,I,UCHpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Zwave/Index.vue","webpack://platypush/./src/components/panels/Zwave/Index.vue?b798"],"sourcesContent":["<template>\n <Zwave plugin-name=\"zwave\" />\n</template>\n\n<script>\nimport Zwave from \"@/components/panels/Zwave/Zwave\";\n\nexport default {\n components: {Zwave},\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=4b554bd5\"\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":["_createBlock","_component_Zwave","components","Zwave","__exports__","render"],"sourceRoot":""}

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2853],{5169:function(t,e,a){a.d(e,{Z:function(){return y}});var n=a(6252),l=a(9963);const i=t=>((0,n.dD)("data-v-a248454a"),t=t(),(0,n.Cn)(),t),s={class:"tts-container"},u={class:"field text-container"},r=["disabled"],d={class:"field lang-container"},o=["disabled"],c={class:"field buttons"},p=["disabled"],g=i((()=>(0,n._)("i",{class:"fa fa-volume-up"},null,-1))),f=[g];function v(t,e,a,i,g,v){return(0,n.wg)(),(0,n.iD)("div",s,[(0,n._)("form",{onSubmit:e[0]||(e[0]=(0,l.iM)(((...t)=>v.talk&&v.talk(...t)),["prevent"]))},[(0,n._)("div",u,[(0,n._)("label",null,[(0,n._)("input",{type:"text",name:"text",placeholder:"Text to say",disabled:g.talking},null,8,r)])]),(0,n._)("div",d,[(0,n._)("label",null,[(0,n._)("input",{type:"text",name:"language",placeholder:"Language code",disabled:g.talking},null,8,o)])]),(0,n._)("div",c,[(0,n._)("button",{type:"submit",disabled:g.talking},f,8,p)])],32)])}var m=a(8637),b={name:"Panel",mixins:[m.Z],props:{pluginName:{type:String,required:!0}},data(){return{talking:!1}},methods:{async talk(t){const e=[...t.target.querySelectorAll("input")].reduce(((t,e)=>(e.value.length&&(t[e.name]=e.value),t)),{});this.talking=!0;try{await this.request(`${this.pluginName}.say`,e)}finally{this.talking=!1}}}},h=a(3744);const k=(0,h.Z)(b,[["render",v],["__scopeId","data-v-a248454a"]]);var y=k},7605:function(t,e,a){a.r(e),a.d(e,{default:function(){return d}});var n=a(6252);function l(t,e,a,l,i,s){const u=(0,n.up)("Panel");return(0,n.wg)(),(0,n.j4)(u,{"plugin-name":"tts.google"})}var i=a(5169),s={name:"Tts",components:{Panel:i.Z}},u=a(3744);const r=(0,u.Z)(s,[["render",l]]);var d=r}}]);
//# sourceMappingURL=2853.f860fc12.js.map
//# sourceMappingURL=2853.47a43033.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[342],{3222:function(e,t,s){s.d(t,{Z:function(){return r}});var i=s(6252),l=s(3577);const n={class:"no-items-container"};function a(e,t,s,a,o,u){return(0,i.wg)(),(0,i.iD)("div",n,[(0,i._)("div",{class:(0,l.C_)(["no-items fade-in",{shadow:s.withShadow}])},[(0,i.WI)(e.$slots,"default",{},void 0,!0)],2)])}var o={name:"NoItems",props:{withShadow:{type:Boolean,default:!0}}},u=s(3744);const d=(0,u.Z)(o,[["render",a],["__scopeId","data-v-4856c4d7"]]);var r=d},342:function(e,t,s){s.r(t),s.d(t,{default:function(){return y}});var i=s(6252);const l={class:"media-youtube-playlist"};function n(e,t,s,n,a,o){const u=(0,i.up)("Loading"),d=(0,i.up)("NoItems"),r=(0,i.up)("Results");return(0,i.wg)(),(0,i.iD)("div",l,[a.loading?((0,i.wg)(),(0,i.j4)(u,{key:0})):a.items?.length?((0,i.wg)(),(0,i.j4)(r,{key:2,results:a.items,sources:{youtube:!0},filter:s.filter,"selected-result":a.selectedResult,onSelect:t[0]||(t[0]=e=>a.selectedResult=e),onPlay:t[1]||(t[1]=t=>e.$emit("play",t))},null,8,["results","filter","selected-result"])):((0,i.wg)(),(0,i.j4)(d,{key:1,"with-shadow":!1},{default:(0,i.w5)((()=>[(0,i.Uk)(" No videos found. ")])),_:1}))])}var a=s(3222),o=s(6791),u=s(5390),d=s(8637),r={emits:["play"],mixins:[d.Z],components:{Loading:o.Z,NoItems:a.Z,Results:u.Z},props:{id:{type:String,required:!0},filter:{type:String,default:null}},data(){return{items:[],loading:!1,selectedResult:null}},methods:{async loadItems(){this.loading=!0;try{this.items=(await this.request("youtube.get_playlist",{id:this.id})).map((e=>({...e,type:"youtube"})))}finally{this.loading=!1}}},mounted(){this.loadItems()}},c=s(3744);const p=(0,c.Z)(r,[["render",n],["__scopeId","data-v-66236cc4"]]);var y=p}}]);
//# sourceMappingURL=342.51066758.js.map
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[342],{3222:function(e,t,s){s.d(t,{Z:function(){return r}});var i=s(6252),l=s(3577);const n={class:"no-items-container"};function a(e,t,s,a,o,u){return(0,i.wg)(),(0,i.iD)("div",n,[(0,i._)("div",{class:(0,l.C_)(["no-items fade-in",{shadow:s.withShadow}])},[(0,i.WI)(e.$slots,"default",{},void 0,!0)],2)])}var o={name:"NoItems",props:{withShadow:{type:Boolean,default:!0}}},u=s(3744);const d=(0,u.Z)(o,[["render",a],["__scopeId","data-v-4856c4d7"]]);var r=d},342:function(e,t,s){s.r(t),s.d(t,{default:function(){return y}});var i=s(6252);const l={class:"media-youtube-playlist"};function n(e,t,s,n,a,o){const u=(0,i.up)("Loading"),d=(0,i.up)("NoItems"),r=(0,i.up)("Results");return(0,i.wg)(),(0,i.iD)("div",l,[a.loading?((0,i.wg)(),(0,i.j4)(u,{key:0})):a.items?.length?((0,i.wg)(),(0,i.j4)(r,{key:2,results:a.items,sources:{youtube:!0},filter:s.filter,"selected-result":a.selectedResult,onSelect:t[0]||(t[0]=e=>a.selectedResult=e),onPlay:t[1]||(t[1]=t=>e.$emit("play",t))},null,8,["results","filter","selected-result"])):((0,i.wg)(),(0,i.j4)(d,{key:1,"with-shadow":!1},{default:(0,i.w5)((()=>[(0,i.Uk)(" No videos found. ")])),_:1}))])}var a=s(3222),o=s(6791),u=s(1983),d=s(8637),r={emits:["play"],mixins:[d.Z],components:{Loading:o.Z,NoItems:a.Z,Results:u.Z},props:{id:{type:String,required:!0},filter:{type:String,default:null}},data(){return{items:[],loading:!1,selectedResult:null}},methods:{async loadItems(){this.loading=!0;try{this.items=(await this.request("youtube.get_playlist",{id:this.id})).map((e=>({...e,type:"youtube"})))}finally{this.loading=!1}}},mounted(){this.loadItems()}},c=s(3744);const p=(0,c.Z)(r,[["render",n],["__scopeId","data-v-66236cc4"]]);var y=p}}]);
//# sourceMappingURL=342.d3c0f8f2.js.map

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[3518],{3518:function(e,n,a){a.r(n),a.d(n,{default:function(){return i}});var u=a(6252);function t(e,n,a,t,r,p){const s=(0,u.up)("Media");return(0,u.wg)(),(0,u.j4)(s,{"plugin-name":"media.mplayer"})}var r=a(1256),p={name:"MediaMplayer",components:{Media:r["default"]}},s=a(3744);const c=(0,s.Z)(p,[["render",t]]);var i=c}}]);
//# sourceMappingURL=3518.d92a0372.js.map
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[3518],{3518:function(e,n,a){a.r(n),a.d(n,{default:function(){return i}});var u=a(6252);function t(e,n,a,t,r,p){const s=(0,u.up)("Media");return(0,u.wg)(),(0,u.j4)(s,{"plugin-name":"media.mplayer"})}var r=a(2509),p={name:"MediaMplayer",components:{Media:r["default"]}},s=a(3744);const c=(0,s.Z)(p,[["render",t]]);var i=c}}]);
//# sourceMappingURL=3518.40e74ddb.js.map

View File

@ -1 +1 @@
{"version":3,"file":"static/js/3518.d92a0372.js","mappings":"iPACEA,EAAAA,EAAAA,IAAqCC,EAAA,CAA9B,cAAY,iB,eAMrB,GACEC,KAAM,eACNC,WAAY,CAACC,MAAKA,EAAAA,a,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/MediaMplayer/Index.vue","webpack://platypush/./src/components/panels/MediaMplayer/Index.vue?becb"],"sourcesContent":["<template>\n <Media plugin-name=\"media.mplayer\" />\n</template>\n\n<script>\nimport Media from '@/components/panels/Media/Index'\n\nexport default {\n name: \"MediaMplayer\",\n components: {Media},\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=08ab61b7\"\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":["_createBlock","_component_Media","name","components","Media","__exports__","render"],"sourceRoot":""}
{"version":3,"file":"static/js/3518.40e74ddb.js","mappings":"iPACEA,EAAAA,EAAAA,IAAqCC,EAAA,CAA9B,cAAY,iB,eAMrB,GACEC,KAAM,eACNC,WAAY,CAACC,MAAKA,EAAAA,a,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/MediaMplayer/Index.vue","webpack://platypush/./src/components/panels/MediaMplayer/Index.vue?becb"],"sourcesContent":["<template>\n <Media plugin-name=\"media.mplayer\" />\n</template>\n\n<script>\nimport Media from '@/components/panels/Media/Index'\n\nexport default {\n name: \"MediaMplayer\",\n components: {Media},\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=08ab61b7\"\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":["_createBlock","_component_Media","name","components","Media","__exports__","render"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[3732],{3732:function(t,a,e){e.r(a),e.d(a,{default:function(){return d}});var n=e(6252);function l(t,a,e,l,i,s){const u=(0,n.up)("Panel");return(0,n.wg)(),(0,n.j4)(u,{"plugin-name":"tts"})}var i=e(5169),s={name:"Tts",components:{Panel:i.Z}},u=e(3744);const r=(0,u.Z)(s,[["render",l]]);var d=r},5169:function(t,a,e){e.d(a,{Z:function(){return y}});var n=e(6252),l=e(9963);const i=t=>((0,n.dD)("data-v-a248454a"),t=t(),(0,n.Cn)(),t),s={class:"tts-container"},u={class:"field text-container"},r=["disabled"],d={class:"field lang-container"},c=["disabled"],o={class:"field buttons"},p=["disabled"],g=i((()=>(0,n._)("i",{class:"fa fa-volume-up"},null,-1))),f=[g];function v(t,a,e,i,g,v){return(0,n.wg)(),(0,n.iD)("div",s,[(0,n._)("form",{onSubmit:a[0]||(a[0]=(0,l.iM)(((...t)=>v.talk&&v.talk(...t)),["prevent"]))},[(0,n._)("div",u,[(0,n._)("label",null,[(0,n._)("input",{type:"text",name:"text",placeholder:"Text to say",disabled:g.talking},null,8,r)])]),(0,n._)("div",d,[(0,n._)("label",null,[(0,n._)("input",{type:"text",name:"language",placeholder:"Language code",disabled:g.talking},null,8,c)])]),(0,n._)("div",o,[(0,n._)("button",{type:"submit",disabled:g.talking},f,8,p)])],32)])}var m=e(8637),b={name:"Panel",mixins:[m.Z],props:{pluginName:{type:String,required:!0}},data(){return{talking:!1}},methods:{async talk(t){const a=[...t.target.querySelectorAll("input")].reduce(((t,a)=>(a.value.length&&(t[a.name]=a.value),t)),{});this.talking=!0;try{await this.request(`${this.pluginName}.say`,a)}finally{this.talking=!1}}}},h=e(3744);const k=(0,h.Z)(b,[["render",v],["__scopeId","data-v-a248454a"]]);var y=k}}]);
//# sourceMappingURL=3732.1441dee0.js.map
//# sourceMappingURL=3732.17c9c669.js.map

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[4221],{4221:function(n,t,c){c.r(t),c.d(t,{default:function(){return p}});var e=c(6252);const u=n=>((0,e.dD)("data-v-7c29571d"),n=n(),(0,e.Cn)(),n),o={class:"row plugin execute-container"},a=u((()=>(0,e._)("h1",null,"Execute Action",-1)));function r(n,t,c,u,r,i){const s=(0,e.up)("ActionEditor");return(0,e.wg)(),(0,e.iD)("div",o,[(0,e._)("main",null,[a,(0,e.Wm)(s)])])}var i=c(1807),s={components:{ActionEditor:i.Z}},d=c(3744);const l=(0,d.Z)(s,[["render",r],["__scopeId","data-v-7c29571d"]]);var p=l}}]);
//# sourceMappingURL=4221.40913421.js.map
//# sourceMappingURL=4221.292aeb44.js.map

View File

@ -1 +1 @@
{"version":3,"file":"static/js/4221.40913421.js","mappings":"4OACOA,MAAM,gC,UAGPC,EAAAA,EAAAA,GAAuB,UAAnB,kBAAc,K,2EAHtBC,EAAAA,EAAAA,IAMM,MANNC,EAMM,EAJJF,EAAAA,EAAAA,GAGO,aAFLG,GACAC,EAAAA,EAAAA,IAAgBC,M,eAQtB,GACEC,WAAY,CACVC,aAAYA,EAAAA,I,UCRhB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAEzF,O","sources":["webpack://platypush/./src/components/panels/Execute/Index.vue","webpack://platypush/./src/components/panels/Execute/Index.vue?99e5"],"sourcesContent":["<template>\n <div class=\"row plugin execute-container\">\n <!-- Action executor container -->\n <main>\n <h1>Execute Action</h1>\n <ActionEditor />\n </main>\n </div>\n</template>\n\n<script>\nimport ActionEditor from '@/components/Action/ActionEditor'\n\nexport default {\n components: {\n ActionEditor,\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/components/Action/common\";\n\n.execute-container {\n width: 100%;\n height: 100%;\n color: $default-fg-2;\n font-weight: 400;\n border-radius: 0 0 1em 1em;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n main {\n width: 100%;\n max-width: 1000px;\n display: flex;\n flex-direction: column;\n box-shadow: $section-shadow;\n\n @include from($desktop) {\n margin: 1em;\n border-radius: 1em 1em 0 0;\n }\n\n :deep(.action-editor-container) {\n .action-editor {\n height: 100%;\n }\n }\n }\n}\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=7c29571d&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=7c29571d&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7c29571d\"]])\n\nexport default __exports__"],"names":["class","_createElementVNode","_createElementBlock","_hoisted_1","_hoisted_2","_createVNode","_component_ActionEditor","components","ActionEditor","__exports__","render"],"sourceRoot":""}
{"version":3,"file":"static/js/4221.292aeb44.js","mappings":"4OACOA,MAAM,gC,UAGPC,EAAAA,EAAAA,GAAuB,UAAnB,kBAAc,K,2EAHtBC,EAAAA,EAAAA,IAMM,MANNC,EAMM,EAJJF,EAAAA,EAAAA,GAGO,aAFLG,GACAC,EAAAA,EAAAA,IAAgBC,M,eAQtB,GACEC,WAAY,CACVC,aAAYA,EAAAA,I,UCRhB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAEzF,O","sources":["webpack://platypush/./src/components/panels/Execute/Index.vue","webpack://platypush/./src/components/panels/Execute/Index.vue?99e5"],"sourcesContent":["<template>\n <div class=\"row plugin execute-container\">\n <!-- Action executor container -->\n <main>\n <h1>Execute Action</h1>\n <ActionEditor />\n </main>\n </div>\n</template>\n\n<script>\nimport ActionEditor from '@/components/Action/ActionEditor'\n\nexport default {\n components: {\n ActionEditor,\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/components/Action/common\";\n\n.execute-container {\n width: 100%;\n height: 100%;\n color: $default-fg-2;\n font-weight: 400;\n border-radius: 0 0 1em 1em;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n main {\n width: 100%;\n max-width: 1000px;\n display: flex;\n flex-direction: column;\n box-shadow: $section-shadow;\n\n @include from($desktop) {\n margin: 1em;\n border-radius: 1em 1em 0 0;\n }\n\n :deep(.action-editor-container) {\n .action-editor {\n height: 100%;\n }\n }\n }\n}\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=7c29571d&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=7c29571d&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7c29571d\"]])\n\nexport default __exports__"],"names":["class","_createElementVNode","_createElementBlock","_hoisted_1","_hoisted_2","_createVNode","_component_ActionEditor","components","ActionEditor","__exports__","render"],"sourceRoot":""}

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[446],{446:function(e,t,i){i.r(t),i.d(t,{default:function(){return b}});var s=i(6252),n=i(3577);const a={class:"camera component-row"},r={class:"feed-container",ref:"container"},c=["textContent"],l=["src"],o={key:2},u=["src"],p={class:"controls"},d={key:0,class:"fa fa-play"},g={key:1,class:"fa fa-pause"};function f(e,t,i,f,v,m){return(0,s.wg)(),(0,s.iD)("div",a,[(0,s._)("div",r,[v.visible?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",{key:0,class:"no-content",textContent:(0,n.zw)(i.name)},null,8,c)),v.visible&&"image"===i.type?((0,s.wg)(),(0,s.iD)("img",{key:1,alt:"Camera feed",src:m.imgUrl},null,8,l)):v.visible&&"video"===i.type?((0,s.wg)(),(0,s.iD)("video",o,[(0,s._)("source",{src:i.src},null,8,u)])):(0,s.kq)("",!0)],512),(0,s._)("div",p,[(0,s._)("button",{class:"toggle-btn",onClick:t[0]||(t[0]=e=>v.visible=!v.visible)},[v.visible?((0,s.wg)(),(0,s.iD)("i",g)):((0,s.wg)(),(0,s.iD)("i",d))])])])}var v=i(8637),m={name:"Camera",mixins:[v.Z],props:{src:{type:String,required:!0},type:{type:String,default:"image"},name:{type:String}},computed:{imgUrl(){if("image"===this.type)return this.src+(this.src.indexOf("?")>0?"&":"?")+"_t="+(new Date).getTime().toString()}},data(){return{visible:!1}}},y=i(3744);const k=(0,y.Z)(m,[["render",f],["__scopeId","data-v-0fad5251"]]);var b=k}}]);
//# sourceMappingURL=446.62c50207.js.map
//# sourceMappingURL=446.178d2754.js.map

View File

@ -1 +1 @@
{"version":3,"file":"static/js/446.62c50207.js","mappings":"8LACOA,MAAM,wB,GACJA,MAAM,iBAAiBC,IAAI,a,mDAQ3BD,MAAM,Y,SAEJA,MAAM,c,SACNA,MAAM,e,0CAZfE,EAAAA,EAAAA,IAeM,MAfNC,EAeM,EAdJC,EAAAA,EAAAA,GAMM,MANNC,EAMM,CALyCC,EAAAC,S,iBAAO,WAApDL,EAAAA,EAAAA,IAAwD,O,MAAnDF,MAAM,a,aAAaQ,EAAAA,EAAAA,IAAQC,EAAKC,O,WACMJ,EAAAC,SAAoB,UAATE,EAAAE,OAAI,WAA1DT,EAAAA,EAAAA,IAAwE,O,MAAnEU,IAAI,cAAeC,IAAKC,EAAAC,Q,WACXT,EAAAC,SAAoB,UAATE,EAAAE,OAAI,WAAjCT,EAAAA,EAAAA,IAEQ,QAAAc,EAAA,EADNZ,EAAAA,EAAAA,GAAmB,UAAVS,IAAKJ,EAAAI,KAAG,OAAAI,OAAA,sBAIrBb,EAAAA,EAAAA,GAKM,MALNc,EAKM,EAJJd,EAAAA,EAAAA,GAGS,UAHDJ,MAAM,aAAcmB,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEf,EAAAC,SAAWD,EAAAC,U,CACfD,EAAAC,UAAW,WACxCL,EAAAA,EAAAA,IAAgC,IAAhCoB,MADoC,WAApCpB,EAAAA,EAAAA,IAAwC,IAAxCqB,S,eAaR,GACEb,KAAM,SACNc,OAAQ,CAACC,EAAAA,GACTC,MAAO,CAKLb,IAAK,CACHF,KAAMgB,OACNC,UAAU,GAMZjB,KAAM,CACJA,KAAMgB,OACNE,QAAS,SAMXnB,KAAM,CACJC,KAAMgB,SAIVG,SAAU,CACRf,MAAAA,GACE,GAAkB,UAAdgB,KAAKpB,KAGT,OAAOoB,KAAKlB,KAAOkB,KAAKlB,IAAImB,QAAQ,KAAO,EAAI,IAAM,KAAO,OAAS,IAAIC,MAAOC,UAAUC,UAC5F,GAGFC,IAAAA,GACE,MAAO,CACL7B,SAAS,EAEb,G,UC5DF,MAAM8B,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAEzF,O","sources":["webpack://platypush/./src/components/widgets/Camera/Index.vue","webpack://platypush/./src/components/widgets/Camera/Index.vue?8b49"],"sourcesContent":["<template>\n <div class=\"camera component-row\">\n <div class=\"feed-container\" ref=\"container\">\n <div class=\"no-content\" v-text=\"name\" v-if=\"!visible\" />\n <img alt=\"Camera feed\" :src=\"imgUrl\" v-if=\"visible && type === 'image'\">\n <video v-else-if=\"visible && type === 'video'\">\n <source :src=\"src\">\n </video>\n </div>\n\n <div class=\"controls\">\n <button class=\"toggle-btn\" @click=\"visible = !visible\">\n <i class=\"fa fa-play\" v-if=\"!visible\" />\n <i class=\"fa fa-pause\" v-else />\n </button>\n </div>\n </div>\n</template>\n\n<script>\nimport Utils from \"@/Utils\";\n\n/**\n * This component can be used to view a feed from a camera.\n */\nexport default {\n name: \"Camera\",\n mixins: [Utils],\n props: {\n /**\n * Camera feed URL.\n * For instance, in the case of a PiCamera feed: http://host:8008/camera/pi/video.mjpeg\n */\n src: {\n type: String,\n required: true,\n },\n\n /**\n * Camera feed type - it can be \"image\" (usually in case of MJPEG feeds) or \"video\".\n */\n type: {\n type: String,\n default: \"image\",\n },\n\n /**\n * Camera feed name.\n */\n name: {\n type: String,\n },\n },\n\n computed: {\n imgUrl() {\n if (this.type !== 'image')\n return\n\n return this.src + (this.src.indexOf('?') > 0 ? '&' : '?') + '_t=' + (new Date().getTime().toString())\n },\n },\n\n data() {\n return {\n visible: false,\n }\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.camera {\n width: calc(100% + 2em);\n height: calc(100% + 2em);\n position: relative;\n background: black;\n color: #888;\n margin: -1em;\n\n .feed-container {\n width: 100%;\n height: calc(100% - 3em);\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .controls {\n width: 100%;\n height: 3em;\n position: absolute;\n bottom: 0;\n\n button {\n background: none;\n border: none;\n color: #888;\n }\n }\n}\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=0fad5251&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=0fad5251&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0fad5251\"]])\n\nexport default __exports__"],"names":["class","ref","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","$data","visible","_toDisplayString","$props","name","type","alt","src","$options","imgUrl","_hoisted_5","_hoisted_6","_hoisted_7","onClick","_cache","$event","_hoisted_9","_hoisted_8","mixins","Utils","props","String","required","default","computed","this","indexOf","Date","getTime","toString","data","__exports__","render"],"sourceRoot":""}
{"version":3,"file":"static/js/446.178d2754.js","mappings":"8LACOA,MAAM,wB,GACJA,MAAM,iBAAiBC,IAAI,a,mDAQ3BD,MAAM,Y,SAEJA,MAAM,c,SACNA,MAAM,e,0CAZfE,EAAAA,EAAAA,IAeM,MAfNC,EAeM,EAdJC,EAAAA,EAAAA,GAMM,MANNC,EAMM,CALyCC,EAAAC,S,iBAAO,WAApDL,EAAAA,EAAAA,IAAwD,O,MAAnDF,MAAM,a,aAAaQ,EAAAA,EAAAA,IAAQC,EAAKC,O,WACMJ,EAAAC,SAAoB,UAATE,EAAAE,OAAI,WAA1DT,EAAAA,EAAAA,IAAwE,O,MAAnEU,IAAI,cAAeC,IAAKC,EAAAC,Q,WACXT,EAAAC,SAAoB,UAATE,EAAAE,OAAI,WAAjCT,EAAAA,EAAAA,IAEQ,QAAAc,EAAA,EADNZ,EAAAA,EAAAA,GAAmB,UAAVS,IAAKJ,EAAAI,KAAG,OAAAI,OAAA,sBAIrBb,EAAAA,EAAAA,GAKM,MALNc,EAKM,EAJJd,EAAAA,EAAAA,GAGS,UAHDJ,MAAM,aAAcmB,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEf,EAAAC,SAAWD,EAAAC,U,CACfD,EAAAC,UAAW,WACxCL,EAAAA,EAAAA,IAAgC,IAAhCoB,MADoC,WAApCpB,EAAAA,EAAAA,IAAwC,IAAxCqB,S,eAaR,GACEb,KAAM,SACNc,OAAQ,CAACC,EAAAA,GACTC,MAAO,CAKLb,IAAK,CACHF,KAAMgB,OACNC,UAAU,GAMZjB,KAAM,CACJA,KAAMgB,OACNE,QAAS,SAMXnB,KAAM,CACJC,KAAMgB,SAIVG,SAAU,CACRf,MAAAA,GACE,GAAkB,UAAdgB,KAAKpB,KAGT,OAAOoB,KAAKlB,KAAOkB,KAAKlB,IAAImB,QAAQ,KAAO,EAAI,IAAM,KAAO,OAAS,IAAIC,MAAOC,UAAUC,UAC5F,GAGFC,IAAAA,GACE,MAAO,CACL7B,SAAS,EAEb,G,UC5DF,MAAM8B,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAEzF,O","sources":["webpack://platypush/./src/components/widgets/Camera/Index.vue","webpack://platypush/./src/components/widgets/Camera/Index.vue?8b49"],"sourcesContent":["<template>\n <div class=\"camera component-row\">\n <div class=\"feed-container\" ref=\"container\">\n <div class=\"no-content\" v-text=\"name\" v-if=\"!visible\" />\n <img alt=\"Camera feed\" :src=\"imgUrl\" v-if=\"visible && type === 'image'\">\n <video v-else-if=\"visible && type === 'video'\">\n <source :src=\"src\">\n </video>\n </div>\n\n <div class=\"controls\">\n <button class=\"toggle-btn\" @click=\"visible = !visible\">\n <i class=\"fa fa-play\" v-if=\"!visible\" />\n <i class=\"fa fa-pause\" v-else />\n </button>\n </div>\n </div>\n</template>\n\n<script>\nimport Utils from \"@/Utils\";\n\n/**\n * This component can be used to view a feed from a camera.\n */\nexport default {\n name: \"Camera\",\n mixins: [Utils],\n props: {\n /**\n * Camera feed URL.\n * For instance, in the case of a PiCamera feed: http://host:8008/camera/pi/video.mjpeg\n */\n src: {\n type: String,\n required: true,\n },\n\n /**\n * Camera feed type - it can be \"image\" (usually in case of MJPEG feeds) or \"video\".\n */\n type: {\n type: String,\n default: \"image\",\n },\n\n /**\n * Camera feed name.\n */\n name: {\n type: String,\n },\n },\n\n computed: {\n imgUrl() {\n if (this.type !== 'image')\n return\n\n return this.src + (this.src.indexOf('?') > 0 ? '&' : '?') + '_t=' + (new Date().getTime().toString())\n },\n },\n\n data() {\n return {\n visible: false,\n }\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.camera {\n width: calc(100% + 2em);\n height: calc(100% + 2em);\n position: relative;\n background: black;\n color: #888;\n margin: -1em;\n\n .feed-container {\n width: 100%;\n height: calc(100% - 3em);\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .controls {\n width: 100%;\n height: 3em;\n position: absolute;\n bottom: 0;\n\n button {\n background: none;\n border: none;\n color: #888;\n }\n }\n}\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=0fad5251&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=0fad5251&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0fad5251\"]])\n\nexport default __exports__"],"names":["class","ref","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","$data","visible","_toDisplayString","$props","name","type","alt","src","$options","imgUrl","_hoisted_5","_hoisted_6","_hoisted_7","onClick","_cache","$event","_hoisted_9","_hoisted_8","mixins","Utils","props","String","required","default","computed","this","indexOf","Date","getTime","toString","data","__exports__","render"],"sourceRoot":""}

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[4619],{4619:function(e,t,s){s.r(t),s.d(t,{default:function(){return l}});var n=s(6252),o=s(3577);const a={class:"date-time"},r=["textContent"],i=["textContent"];function h(e,t,s,h,u,w){return(0,n.wg)(),(0,n.iD)("div",a,[w._showDate?((0,n.wg)(),(0,n.iD)("div",{key:0,class:"date",textContent:(0,o.zw)(e.formatDate(e.now))},null,8,r)):(0,n.kq)("",!0),w._showTime?((0,n.wg)(),(0,n.iD)("div",{key:1,class:"time",textContent:(0,o.zw)(e.formatTime(e.now,w._showSeconds))},null,8,i)):(0,n.kq)("",!0)])}var u=s(8637),w={name:"DateTime",mixins:[u.Z],props:{showDate:{required:!1,default:!0},showTime:{required:!1,default:!0},showSeconds:{required:!1,default:!0}},computed:{_showTime(){return this.parseBoolean(this.showTime)},_showDate(){return this.parseBoolean(this.showDate)},_showSeconds(){return this.parseBoolean(this.showSeconds)}},data:function(){return{now:new Date}},methods:{refreshTime(){this.now=new Date}},mounted:function(){this.refreshTime(),setInterval(this.refreshTime,1e3)}},d=s(3744);const c=(0,d.Z)(w,[["render",h],["__scopeId","data-v-ca42eb9c"]]);var l=c}}]);
//# sourceMappingURL=4619.354631e5.js.map
//# sourceMappingURL=4619.ea41fd5e.js.map

View File

@ -1 +1 @@
{"version":3,"file":"static/js/4619.354631e5.js","mappings":"gMACOA,MAAM,a,8EAAXC,EAAAA,EAAAA,IAGM,MAHNC,EAGM,CAF6CC,EAAAC,YAAS,WAA1DH,EAAAA,EAAAA,IAA8D,O,MAAzDD,MAAM,O,aAAOK,EAAAA,EAAAA,IAAQC,EAAgBC,WAALD,EAAAE,O,2BAC0BL,EAAAM,YAAS,WAAxER,EAAAA,EAAAA,IAA4E,O,MAAvED,MAAM,O,aAAOK,EAAAA,EAAAA,IAAQC,EAA8BI,WAAnBJ,EAAAE,IAAKL,EAAAQ,gB,2CAQ9C,GACEC,KAAM,WACNC,OAAQ,CAACC,EAAAA,GACTC,MAAO,CAELC,SAAU,CACRC,UAAU,EACVC,SAAS,GAIXC,SAAU,CACRF,UAAU,EACVC,SAAS,GAIXE,YAAa,CACXH,UAAU,EACVC,SAAS,IAIbG,SAAU,CACRZ,SAAAA,GACE,OAAOa,KAAKC,aAAaD,KAAKH,SAChC,EAEAf,SAAAA,GACE,OAAOkB,KAAKC,aAAaD,KAAKN,SAChC,EAEAL,YAAAA,GACE,OAAOW,KAAKC,aAAaD,KAAKF,YAChC,GAGFI,KAAM,WACJ,MAAO,CACLhB,IAAK,IAAIiB,KAEb,EAEAC,QAAS,CACPC,WAAAA,GACEL,KAAKd,IAAM,IAAIiB,IACjB,GAGFG,QAAS,WACPN,KAAKK,cACLE,YAAYP,KAAKK,YAAa,IAChC,G,UCxDF,MAAMG,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAEzF,O","sources":["webpack://platypush/./src/components/widgets/DateTime/Index.vue","webpack://platypush/./src/components/widgets/DateTime/Index.vue?dfd6"],"sourcesContent":["<template>\n <div class=\"date-time\">\n <div class=\"date\" v-text=\"formatDate(now)\" v-if=\"_showDate\" />\n <div class=\"time\" v-text=\"formatTime(now, _showSeconds)\" v-if=\"_showTime\" />\n </div>\n</template>\n\n<script>\nimport Utils from \"@/Utils\";\n\n// Widget to show date and time\nexport default {\n name: 'DateTime',\n mixins: [Utils],\n props: {\n // If false then don't display the date.\n showDate: {\n required: false,\n default: true,\n },\n\n // If false then don't display the time.\n showTime: {\n required: false,\n default: true,\n },\n\n // If false then don't display the seconds.\n showSeconds: {\n required: false,\n default: true,\n },\n },\n\n computed: {\n _showTime() {\n return this.parseBoolean(this.showTime)\n },\n\n _showDate() {\n return this.parseBoolean(this.showDate)\n },\n\n _showSeconds() {\n return this.parseBoolean(this.showSeconds)\n },\n },\n\n data: function() {\n return {\n now: new Date(),\n };\n },\n\n methods: {\n refreshTime() {\n this.now = new Date()\n },\n },\n\n mounted: function() {\n this.refreshTime()\n setInterval(this.refreshTime, 1000)\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.date-time {\n .date {\n font-size: 1.3em;\n }\n\n .time {\n font-size: 2em;\n }\n}\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=ca42eb9c&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=ca42eb9c&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ca42eb9c\"]])\n\nexport default __exports__"],"names":["class","_createElementBlock","_hoisted_1","$options","_showDate","_toDisplayString","_ctx","formatDate","now","_showTime","formatTime","_showSeconds","name","mixins","Utils","props","showDate","required","default","showTime","showSeconds","computed","this","parseBoolean","data","Date","methods","refreshTime","mounted","setInterval","__exports__","render"],"sourceRoot":""}
{"version":3,"file":"static/js/4619.ea41fd5e.js","mappings":"gMACOA,MAAM,a,8EAAXC,EAAAA,EAAAA,IAGM,MAHNC,EAGM,CAF6CC,EAAAC,YAAS,WAA1DH,EAAAA,EAAAA,IAA8D,O,MAAzDD,MAAM,O,aAAOK,EAAAA,EAAAA,IAAQC,EAAgBC,WAALD,EAAAE,O,2BAC0BL,EAAAM,YAAS,WAAxER,EAAAA,EAAAA,IAA4E,O,MAAvED,MAAM,O,aAAOK,EAAAA,EAAAA,IAAQC,EAA8BI,WAAnBJ,EAAAE,IAAKL,EAAAQ,gB,2CAQ9C,GACEC,KAAM,WACNC,OAAQ,CAACC,EAAAA,GACTC,MAAO,CAELC,SAAU,CACRC,UAAU,EACVC,SAAS,GAIXC,SAAU,CACRF,UAAU,EACVC,SAAS,GAIXE,YAAa,CACXH,UAAU,EACVC,SAAS,IAIbG,SAAU,CACRZ,SAAAA,GACE,OAAOa,KAAKC,aAAaD,KAAKH,SAChC,EAEAf,SAAAA,GACE,OAAOkB,KAAKC,aAAaD,KAAKN,SAChC,EAEAL,YAAAA,GACE,OAAOW,KAAKC,aAAaD,KAAKF,YAChC,GAGFI,KAAM,WACJ,MAAO,CACLhB,IAAK,IAAIiB,KAEb,EAEAC,QAAS,CACPC,WAAAA,GACEL,KAAKd,IAAM,IAAIiB,IACjB,GAGFG,QAAS,WACPN,KAAKK,cACLE,YAAYP,KAAKK,YAAa,IAChC,G,UCxDF,MAAMG,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAEzF,O","sources":["webpack://platypush/./src/components/widgets/DateTime/Index.vue","webpack://platypush/./src/components/widgets/DateTime/Index.vue?dfd6"],"sourcesContent":["<template>\n <div class=\"date-time\">\n <div class=\"date\" v-text=\"formatDate(now)\" v-if=\"_showDate\" />\n <div class=\"time\" v-text=\"formatTime(now, _showSeconds)\" v-if=\"_showTime\" />\n </div>\n</template>\n\n<script>\nimport Utils from \"@/Utils\";\n\n// Widget to show date and time\nexport default {\n name: 'DateTime',\n mixins: [Utils],\n props: {\n // If false then don't display the date.\n showDate: {\n required: false,\n default: true,\n },\n\n // If false then don't display the time.\n showTime: {\n required: false,\n default: true,\n },\n\n // If false then don't display the seconds.\n showSeconds: {\n required: false,\n default: true,\n },\n },\n\n computed: {\n _showTime() {\n return this.parseBoolean(this.showTime)\n },\n\n _showDate() {\n return this.parseBoolean(this.showDate)\n },\n\n _showSeconds() {\n return this.parseBoolean(this.showSeconds)\n },\n },\n\n data: function() {\n return {\n now: new Date(),\n };\n },\n\n methods: {\n refreshTime() {\n this.now = new Date()\n },\n },\n\n mounted: function() {\n this.refreshTime()\n setInterval(this.refreshTime, 1000)\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.date-time {\n .date {\n font-size: 1.3em;\n }\n\n .time {\n font-size: 2em;\n }\n}\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=ca42eb9c&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=ca42eb9c&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ca42eb9c\"]])\n\nexport default __exports__"],"names":["class","_createElementBlock","_hoisted_1","$options","_showDate","_toDisplayString","_ctx","formatDate","now","_showTime","formatTime","_showSeconds","name","mixins","Utils","props","showDate","required","default","showTime","showSeconds","computed","this","parseBoolean","data","Date","methods","refreshTime","mounted","setInterval","__exports__","render"],"sourceRoot":""}

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[4765],{4765:function(e,n,a){a.r(n),a.d(n,{default:function(){return i}});var u=a(6252);function t(e,n,a,t,p,r){const s=(0,u.up)("Media");return(0,u.wg)(),(0,u.j4)(s,{"plugin-name":"media.mpv"})}var p=a(1256),r={name:"MediaMpv",components:{Media:p["default"]}},s=a(3744);const c=(0,s.Z)(r,[["render",t]]);var i=c}}]);
//# sourceMappingURL=4765.73f378be.js.map
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[4765],{4765:function(e,n,a){a.r(n),a.d(n,{default:function(){return i}});var u=a(6252);function t(e,n,a,t,p,r){const s=(0,u.up)("Media");return(0,u.wg)(),(0,u.j4)(s,{"plugin-name":"media.mpv"})}var p=a(2509),r={name:"MediaMpv",components:{Media:p["default"]}},s=a(3744);const c=(0,s.Z)(r,[["render",t]]);var i=c}}]);
//# sourceMappingURL=4765.7ad68124.js.map

View File

@ -1 +1 @@
{"version":3,"file":"static/js/4765.73f378be.js","mappings":"iPACEA,EAAAA,EAAAA,IAAiCC,EAAA,CAA1B,cAAY,a,eAMrB,GACEC,KAAM,WACNC,WAAY,CAACC,MAAKA,EAAAA,a,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/MediaMpv/Index.vue","webpack://platypush/./src/components/panels/MediaMpv/Index.vue?4cb2"],"sourcesContent":["<template>\n <Media plugin-name=\"media.mpv\" />\n</template>\n\n<script>\nimport Media from '@/components/panels/Media/Index'\n\nexport default {\n name: \"MediaMpv\",\n components: {Media},\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=52effd7c\"\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":["_createBlock","_component_Media","name","components","Media","__exports__","render"],"sourceRoot":""}
{"version":3,"file":"static/js/4765.7ad68124.js","mappings":"iPACEA,EAAAA,EAAAA,IAAiCC,EAAA,CAA1B,cAAY,a,eAMrB,GACEC,KAAM,WACNC,WAAY,CAACC,MAAKA,EAAAA,a,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/MediaMpv/Index.vue","webpack://platypush/./src/components/panels/MediaMpv/Index.vue?4cb2"],"sourcesContent":["<template>\n <Media plugin-name=\"media.mpv\" />\n</template>\n\n<script>\nimport Media from '@/components/panels/Media/Index'\n\nexport default {\n name: \"MediaMpv\",\n components: {Media},\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=52effd7c\"\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":["_createBlock","_component_Media","name","components","Media","__exports__","render"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More