From e12054c484b25882643728cea50350e343435f6f Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Wed, 6 Mar 2024 02:09:36 +0000 Subject: [PATCH 01/80] fix: upgrade @fortawesome/fontawesome-free from 6.4.2 to 6.5.1 Snyk has created this PR to upgrade @fortawesome/fontawesome-free from 6.4.2 to 6.5.1. See this package in npm: https://www.npmjs.com/package/@fortawesome/fontawesome-free See this project in Snyk: https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr --- platypush/backend/http/webapp/package-lock.json | 8 ++++---- platypush/backend/http/webapp/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/platypush/backend/http/webapp/package-lock.json b/platypush/backend/http/webapp/package-lock.json index c74972e063..37b82eb91d 100644 --- a/platypush/backend/http/webapp/package-lock.json +++ b/platypush/backend/http/webapp/package-lock.json @@ -8,7 +8,7 @@ "name": "platypush", "version": "0.1.0", "dependencies": { - "@fortawesome/fontawesome-free": "^6.1.1", + "@fortawesome/fontawesome-free": "^6.5.1", "axios": "^1.6.7", "core-js": "^3.35.1", "cronstrue": "^2.47.0", @@ -1888,9 +1888,9 @@ } }, "node_modules/@fortawesome/fontawesome-free": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.2.tgz", - "integrity": "sha512-m5cPn3e2+FDCOgi1mz0RexTUvvQibBebOUlUlW0+YrMjDTPkiJ6VTKukA1GRsvRw+12KyJndNjj0O4AgTxm2Pg==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.1.tgz", + "integrity": "sha512-CNy5vSwN3fsUStPRLX7fUYojyuzoEMSXPl7zSLJ8TgtRfjv24LOnOWKT2zYwaHZCJGkdyRnTmstR0P+Ah503Gw==", "hasInstallScript": true, "engines": { "node": ">=6" diff --git a/platypush/backend/http/webapp/package.json b/platypush/backend/http/webapp/package.json index a37605346c..f67b62928b 100644 --- a/platypush/backend/http/webapp/package.json +++ b/platypush/backend/http/webapp/package.json @@ -8,7 +8,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { - "@fortawesome/fontawesome-free": "^6.1.1", + "@fortawesome/fontawesome-free": "^6.5.1", "axios": "^1.6.7", "core-js": "^3.35.1", "cronstrue": "^2.47.0", From 6a55527694c547a822f81b3d2ccfe4f3ba12b998 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Wed, 6 Mar 2024 02:09:43 +0000 Subject: [PATCH 02/80] fix: upgrade vue from 3.4.18 to 3.4.19 Snyk has created this PR to upgrade vue from 3.4.18 to 3.4.19. See this package in npm: https://www.npmjs.com/package/vue See this project in Snyk: https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr --- .../backend/http/webapp/package-lock.json | 106 +++++++++--------- platypush/backend/http/webapp/package.json | 2 +- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/platypush/backend/http/webapp/package-lock.json b/platypush/backend/http/webapp/package-lock.json index c74972e063..cc040295e6 100644 --- a/platypush/backend/http/webapp/package-lock.json +++ b/platypush/backend/http/webapp/package-lock.json @@ -18,7 +18,7 @@ "register-service-worker": "^1.7.2", "sass": "^1.70.0", "sass-loader": "^10.5.2", - "vue": "^3.4.18", + "vue": "^3.4.19", "vue-router": "^4.2.5", "vue-skycons": "^4.2.0", "w3css": "^2.7.0" @@ -3080,12 +3080,12 @@ "dev": true }, "node_modules/@vue/compiler-core": { - "version": "3.4.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.18.tgz", - "integrity": "sha512-F7YK8lMK0iv6b9/Gdk15A67wM0KKZvxDxed0RR60C1z9tIJTKta+urs4j0RTN5XqHISzI3etN3mX0uHhjmoqjQ==", + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.19.tgz", + "integrity": "sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==", "dependencies": { "@babel/parser": "^7.23.9", - "@vue/shared": "3.4.18", + "@vue/shared": "3.4.19", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" @@ -3103,24 +3103,24 @@ } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.18.tgz", - "integrity": "sha512-24Eb8lcMfInefvQ6YlEVS18w5Q66f4+uXWVA+yb7praKbyjHRNuKVWGuinfSSjM0ZIiPi++QWukhkgznBaqpEA==", + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.19.tgz", + "integrity": "sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==", "dependencies": { - "@vue/compiler-core": "3.4.18", - "@vue/shared": "3.4.18" + "@vue/compiler-core": "3.4.19", + "@vue/shared": "3.4.19" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.18.tgz", - "integrity": "sha512-rG5tqtnzwrVpMqAQ7FHtvHaV70G6LLfJIWLYZB/jZ9m/hrnZmIQh+H3ewnC5onwe/ibljm9+ZupxeElzqCkTAw==", + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.19.tgz", + "integrity": "sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==", "dependencies": { "@babel/parser": "^7.23.9", - "@vue/compiler-core": "3.4.18", - "@vue/compiler-dom": "3.4.18", - "@vue/compiler-ssr": "3.4.18", - "@vue/shared": "3.4.18", + "@vue/compiler-core": "3.4.19", + "@vue/compiler-dom": "3.4.19", + "@vue/compiler-ssr": "3.4.19", + "@vue/shared": "3.4.19", "estree-walker": "^2.0.2", "magic-string": "^0.30.6", "postcss": "^8.4.33", @@ -3128,12 +3128,12 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.18.tgz", - "integrity": "sha512-hSlv20oUhPxo2UYUacHgGaxtqP0tvFo6ixxxD6JlXIkwzwoZ9eKK6PFQN4hNK/R13JlNyldwWt/fqGBKgWJ6nQ==", + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.19.tgz", + "integrity": "sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==", "dependencies": { - "@vue/compiler-dom": "3.4.18", - "@vue/shared": "3.4.18" + "@vue/compiler-dom": "3.4.19", + "@vue/shared": "3.4.19" } }, "node_modules/@vue/component-compiler-utils": { @@ -3206,48 +3206,48 @@ "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" }, "node_modules/@vue/reactivity": { - "version": "3.4.18", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.18.tgz", - "integrity": "sha512-7uda2/I0jpLiRygprDo5Jxs2HJkOVXcOMlyVlY54yRLxoycBpwGJRwJT9EdGB4adnoqJDXVT2BilUAYwI7qvmg==", + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.19.tgz", + "integrity": "sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==", "dependencies": { - "@vue/shared": "3.4.18" + "@vue/shared": "3.4.19" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.18", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.18.tgz", - "integrity": "sha512-7mU9diCa+4e+8/wZ7Udw5pwTH10A11sZ1nldmHOUKJnzCwvZxfJqAtw31mIf4T5H2FsLCSBQT3xgioA9vIjyDQ==", + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.19.tgz", + "integrity": "sha512-/Z3tFwOrerJB/oyutmJGoYbuoadphDcJAd5jOuJE86THNZji9pYjZroQ2NFsZkTxOq0GJbb+s2kxTYToDiyZzw==", "dependencies": { - "@vue/reactivity": "3.4.18", - "@vue/shared": "3.4.18" + "@vue/reactivity": "3.4.19", + "@vue/shared": "3.4.19" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.18", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.18.tgz", - "integrity": "sha512-2y1Mkzcw1niSfG7z3Qx+2ir9Gb4hdTkZe5p/I8x1aTIKQE0vY0tPAEUPhZm5tx6183gG3D/KwHG728UR0sIufA==", + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.19.tgz", + "integrity": "sha512-IyZzIDqfNCF0OyZOauL+F4yzjMPN2rPd8nhqPP2N1lBn3kYqJpPHHru+83Rkvo2lHz5mW+rEeIMEF9qY3PB94g==", "dependencies": { - "@vue/runtime-core": "3.4.18", - "@vue/shared": "3.4.18", + "@vue/runtime-core": "3.4.19", + "@vue/shared": "3.4.19", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.18", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.18.tgz", - "integrity": "sha512-YJd1wa7mzUN3NRqLEsrwEYWyO+PUBSROIGlCc3J/cvn7Zu6CxhNLgXa8Z4zZ5ja5/nviYO79J1InoPeXgwBTZA==", + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.19.tgz", + "integrity": "sha512-eAj2p0c429RZyyhtMRnttjcSToch+kTWxFPHlzGMkR28ZbF1PDlTcmGmlDxccBuqNd9iOQ7xPRPAGgPVj+YpQw==", "dependencies": { - "@vue/compiler-ssr": "3.4.18", - "@vue/shared": "3.4.18" + "@vue/compiler-ssr": "3.4.19", + "@vue/shared": "3.4.19" }, "peerDependencies": { - "vue": "3.4.18" + "vue": "3.4.19" } }, "node_modules/@vue/shared": { - "version": "3.4.18", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.18.tgz", - "integrity": "sha512-CxouGFxxaW5r1WbrSmWwck3No58rApXgRSBxrqgnY1K+jk20F6DrXJkHdH9n4HVT+/B6G2CAn213Uq3npWiy8Q==" + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.19.tgz", + "integrity": "sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==" }, "node_modules/@vue/vue-loader-v15": { "name": "vue-loader", @@ -11979,15 +11979,15 @@ } }, "node_modules/vue": { - "version": "3.4.18", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.18.tgz", - "integrity": "sha512-0zLRYamFRe0wF4q2L3O24KQzLyLpL64ye1RUToOgOxuWZsb/FhaNRdGmeozdtVYLz6tl94OXLaK7/WQIrVCw1A==", + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.19.tgz", + "integrity": "sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw==", "dependencies": { - "@vue/compiler-dom": "3.4.18", - "@vue/compiler-sfc": "3.4.18", - "@vue/runtime-dom": "3.4.18", - "@vue/server-renderer": "3.4.18", - "@vue/shared": "3.4.18" + "@vue/compiler-dom": "3.4.19", + "@vue/compiler-sfc": "3.4.19", + "@vue/runtime-dom": "3.4.19", + "@vue/server-renderer": "3.4.19", + "@vue/shared": "3.4.19" }, "peerDependencies": { "typescript": "*" diff --git a/platypush/backend/http/webapp/package.json b/platypush/backend/http/webapp/package.json index a37605346c..58391c567e 100644 --- a/platypush/backend/http/webapp/package.json +++ b/platypush/backend/http/webapp/package.json @@ -18,7 +18,7 @@ "register-service-worker": "^1.7.2", "sass": "^1.70.0", "sass-loader": "^10.5.2", - "vue": "^3.4.18", + "vue": "^3.4.19", "vue-router": "^4.2.5", "vue-skycons": "^4.2.0", "w3css": "^2.7.0" From b9d637187ca0200837ac5dd8652f36d6b90ab5dc Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Wed, 6 Mar 2024 15:26:22 +0000 Subject: [PATCH 03/80] fix: upgrade core-js from 3.35.1 to 3.36.0 Snyk has created this PR to upgrade core-js from 3.35.1 to 3.36.0. See this package in npm: https://www.npmjs.com/package/core-js See this project in Snyk: https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr --- platypush/backend/http/webapp/package-lock.json | 8 ++++---- platypush/backend/http/webapp/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/platypush/backend/http/webapp/package-lock.json b/platypush/backend/http/webapp/package-lock.json index c74972e063..0a1c76a29c 100644 --- a/platypush/backend/http/webapp/package-lock.json +++ b/platypush/backend/http/webapp/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@fortawesome/fontawesome-free": "^6.1.1", "axios": "^1.6.7", - "core-js": "^3.35.1", + "core-js": "^3.36.0", "cronstrue": "^2.47.0", "highlight.js": "^11.9.0", "lato-font": "^3.0.0", @@ -4655,9 +4655,9 @@ } }, "node_modules/core-js": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.35.1.tgz", - "integrity": "sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==", + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.0.tgz", + "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==", "hasInstallScript": true, "funding": { "type": "opencollective", diff --git a/platypush/backend/http/webapp/package.json b/platypush/backend/http/webapp/package.json index a37605346c..68713403de 100644 --- a/platypush/backend/http/webapp/package.json +++ b/platypush/backend/http/webapp/package.json @@ -10,7 +10,7 @@ "dependencies": { "@fortawesome/fontawesome-free": "^6.1.1", "axios": "^1.6.7", - "core-js": "^3.35.1", + "core-js": "^3.36.0", "cronstrue": "^2.47.0", "highlight.js": "^11.9.0", "lato-font": "^3.0.0", From a30042e1ebac5cab7b482b3cfda5df420a4b7bfa Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Fri, 8 Mar 2024 18:50:38 +0000 Subject: [PATCH 04/80] fix: upgrade sass from 1.70.0 to 1.71.0 Snyk has created this PR to upgrade sass from 1.70.0 to 1.71.0. See this package in npm: https://www.npmjs.com/package/sass See this project in Snyk: https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr --- platypush/backend/http/webapp/package-lock.json | 8 ++++---- platypush/backend/http/webapp/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/platypush/backend/http/webapp/package-lock.json b/platypush/backend/http/webapp/package-lock.json index c74972e063..bd01164fab 100644 --- a/platypush/backend/http/webapp/package-lock.json +++ b/platypush/backend/http/webapp/package-lock.json @@ -16,7 +16,7 @@ "lato-font": "^3.0.0", "mitt": "^2.1.0", "register-service-worker": "^1.7.2", - "sass": "^1.70.0", + "sass": "^1.71.0", "sass-loader": "^10.5.2", "vue": "^3.4.18", "vue-router": "^4.2.5", @@ -10554,9 +10554,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz", - "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==", + "version": "1.71.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.0.tgz", + "integrity": "sha512-HKKIKf49Vkxlrav3F/w6qRuPcmImGVbIXJ2I3Kg0VMA+3Bav+8yE9G5XmP5lMj6nl4OlqbPftGAscNaNu28b8w==", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", diff --git a/platypush/backend/http/webapp/package.json b/platypush/backend/http/webapp/package.json index a37605346c..a090084844 100644 --- a/platypush/backend/http/webapp/package.json +++ b/platypush/backend/http/webapp/package.json @@ -16,7 +16,7 @@ "lato-font": "^3.0.0", "mitt": "^2.1.0", "register-service-worker": "^1.7.2", - "sass": "^1.70.0", + "sass": "^1.71.0", "sass-loader": "^10.5.2", "vue": "^3.4.18", "vue-router": "^4.2.5", From 8ed358fcc82d4a10cd31742b1c751e7fa50f56b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 Mar 2024 23:30:25 +0000 Subject: [PATCH 05/80] Bump follow-redirects in /platypush/backend/http/webapp Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.4 to 1.15.6. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.4...v1.15.6) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] --- platypush/backend/http/webapp/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/platypush/backend/http/webapp/package-lock.json b/platypush/backend/http/webapp/package-lock.json index c74972e063..d7cf8c9c85 100644 --- a/platypush/backend/http/webapp/package-lock.json +++ b/platypush/backend/http/webapp/package-lock.json @@ -6533,9 +6533,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", - "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", From 2d72ce964534b41ff71ced91fc025c0e53413014 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 23 Mar 2024 19:14:44 +0000 Subject: [PATCH 06/80] Bump webpack-dev-middleware in /platypush/backend/http/webapp Bumps [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware) from 5.3.3 to 5.3.4. - [Release notes](https://github.com/webpack/webpack-dev-middleware/releases) - [Changelog](https://github.com/webpack/webpack-dev-middleware/blob/v5.3.4/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-middleware/compare/v5.3.3...v5.3.4) --- updated-dependencies: - dependency-name: webpack-dev-middleware dependency-type: indirect ... Signed-off-by: dependabot[bot] --- platypush/backend/http/webapp/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/platypush/backend/http/webapp/package-lock.json b/platypush/backend/http/webapp/package-lock.json index c74972e063..cfd10111e1 100644 --- a/platypush/backend/http/webapp/package-lock.json +++ b/platypush/backend/http/webapp/package-lock.json @@ -12452,9 +12452,9 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", "dev": true, "dependencies": { "colorette": "^2.0.10", From 749eda16b4648ccfb73d387067344b2ac30adabf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Mar 2024 06:46:45 +0000 Subject: [PATCH 07/80] Bump express from 4.18.2 to 4.19.2 in /platypush/backend/http/webapp Bumps [express](https://github.com/expressjs/express) from 4.18.2 to 4.19.2. - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/master/History.md) - [Commits](https://github.com/expressjs/express/compare/4.18.2...4.19.2) --- updated-dependencies: - dependency-name: express dependency-type: indirect ... Signed-off-by: dependabot[bot] --- .../backend/http/webapp/package-lock.json | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/platypush/backend/http/webapp/package-lock.json b/platypush/backend/http/webapp/package-lock.json index c74972e063..c14cda9093 100644 --- a/platypush/backend/http/webapp/package-lock.json +++ b/platypush/backend/http/webapp/package-lock.json @@ -3929,13 +3929,13 @@ "dev": true }, "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -3943,7 +3943,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.1", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -4598,9 +4598,9 @@ "dev": true }, "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true, "engines": { "node": ">= 0.6" @@ -6258,17 +6258,17 @@ } }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -10085,9 +10085,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "dependencies": { "bytes": "3.1.2", From a3b6d411e4b13df762c246eda1a2e524941f7354 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Mon, 4 Mar 2024 01:06:49 +0100 Subject: [PATCH 08/80] [music.mpd] Adjust default poll_interval: 5 -> 20 seconds. --- platypush/plugins/music/mpd/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platypush/plugins/music/mpd/__init__.py b/platypush/plugins/music/mpd/__init__.py index 2dd54a16b1..4550e4fc9d 100644 --- a/platypush/plugins/music/mpd/__init__.py +++ b/platypush/plugins/music/mpd/__init__.py @@ -34,7 +34,7 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): self, host: str, port: int = 6600, - poll_interval: Optional[float] = 5.0, + poll_interval: Optional[float] = 20.0, **kwargs, ): """ @@ -42,7 +42,7 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): :param port: MPD port (default: 6600). :param poll_interval: Polling interval in seconds. If set, the plugin will poll the MPD server for status updates and trigger change - events when required. Default: 5 seconds. + events when required. Default: 20 seconds. """ super().__init__(poll_interval=poll_interval, **kwargs) self.conf = MpdConfig(host=host, port=port) From d2e5e5230b4eedc0817009b7e33d576a787130a2 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Fri, 8 Mar 2024 18:58:17 +0100 Subject: [PATCH 09/80] [music.mpd] Removed deprecated actions. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `setvol` ➡️ `set_volume` - `seekcur` ➡️ `seek` - `playlistinfo` ➡️ `get_tracks` - `listplaylists` ➡️ `get_playlists` - `listplaylist` ➡️ `get_playlist` - `listplaylistinfo` ➡️ `get_playlist` - `playlistadd` ➡️ `add_to_playlist` - `playlistdelete` ➡️ `remove_from_playlist` - `playlistmove` ➡️ `playlist_move` - `playlistclear` ➡️ `playlist_clear` - `rename` ➡️ `rename_playlist` - `rm` ➡️ `delete_playlist` stuff --- platypush/plugins/music/mpd/__init__.py | 119 ++---------------------- 1 file changed, 10 insertions(+), 109 deletions(-) diff --git a/platypush/plugins/music/mpd/__init__.py b/platypush/plugins/music/mpd/__init__.py index 4550e4fc9d..717e302368 100644 --- a/platypush/plugins/music/mpd/__init__.py +++ b/platypush/plugins/music/mpd/__init__.py @@ -167,15 +167,6 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): return self._exec('stop') return self._exec('play') - @action - def playid(self, track_id: str): - """ - Play a track by ID. - - :param track_id: Track ID. - """ - return self._exec('playid', track_id) - @action def next(self, *_, **__): """Play the next track""" @@ -186,20 +177,6 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): """Play the previous track""" return self._exec('previous') - @action - def setvol(self, vol: int): - """ - Set the volume. - - ..warning :: **DEPRECATED**, use :meth:`.set_volume` instead. - - :param vol: Volume value (range: 0-100). - """ - self.logger.warning( - 'music.mpd.setvol is deprecated, use music.mpd.set_volume instead' - ) - return self.set_volume(vol) - @action def set_volume(self, volume: int, **__): """ @@ -219,7 +196,7 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): step = step or kwargs.get('delta') or 5 volume = int(self._status()['volume']) new_volume = min(volume + step, 100) - return self.setvol(new_volume) + return self.set_volume(new_volume) @action def voldown(self, step: Optional[float] = None, **kwargs): @@ -231,7 +208,7 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): step = step or kwargs.get('delta') or 5 volume = int(self._status()['volume']) new_volume = max(volume - step, 0) - return self.setvol(new_volume) + return self.set_volume(new_volume) def _toggle(self, key: str, value: Optional[bool] = None): if value is None: @@ -334,20 +311,18 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): :return: The modified playlist """ - for pos in sorted(positions, key=int, reverse=True): self._exec('delete', pos) - return self.playlistinfo() + return self.get_tracks() @action - def rm(self, playlist): + def delete_playlist(self, playlist: Union[str, Collection[str]]): """ Permanently remove playlist(s) by name :param playlist: Name or list of playlist names to remove :type playlist: str or list[str] """ - if isinstance(playlist, str): playlist = [playlist] elif not isinstance(playlist, list): @@ -409,19 +384,6 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): """Clear the current playlist""" return self._exec('clear') - @action - def seekcur(self, value: float): - """ - Seek to the specified position (DEPRECATED, use :meth:`.seek` instead). - - :param value: Seek position in seconds, or delta string (e.g. '+15' or - '-15') to indicate a seek relative to the current position - """ - self.logger.warning( - 'music.mpd.seekcur is deprecated, use music.mpd.seek instead' - ) - return self.seek(value) - @action def seek(self, position: float, **__): """ @@ -537,7 +499,7 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): return self._current_track() @action - def playlistinfo(self): + def get_tracks(self, *_, **__): """ :returns: The tracks in the current playlist as a list of dicts. @@ -572,7 +534,6 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): }, ] """ - return self._exec('playlistinfo', return_status=False) @action @@ -602,20 +563,10 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): ) return sorted(playlists, key=lambda p: p['playlist']) - @action - def listplaylists(self): - """ - Deprecated alias for :meth:`.playlists`. - """ - self.logger.warning( - 'music.mpd.listplaylists is deprecated, use music.mpd.get_playlists instead' - ) - return self.get_playlists() - @action def get_playlist(self, playlist: str, *_, with_tracks: bool = False, **__): """ - List the items in the specified playlist. + List the information (and, optionally, the items) for the specified playlist. :param playlist: Name of the playlist :param with_tracks: If True then the list of tracks in the playlist will @@ -627,26 +578,6 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): return_status=False, ) - @action - def listplaylist(self, name: str): - """ - Deprecated alias for :meth:`.playlist`. - """ - self.logger.warning( - 'music.mpd.listplaylist is deprecated, use music.mpd.get_playlist instead' - ) - return self._exec('listplaylist', name, return_status=False) - - @action - def listplaylistinfo(self, name: str): - """ - Deprecated alias for :meth:`.playlist` with ``with_tracks=True``. - """ - self.logger.warning( - 'music.mpd.listplaylistinfo is deprecated, use music.mpd.get_playlist instead' - ) - return self.get_playlist(name, with_tracks=True) - @action def add_to_playlist( self, playlist: str, resources: Union[str, Collection[str]], **_ @@ -664,16 +595,6 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): for res in resources: self._exec('playlistadd', playlist, res) - @action - def playlistadd(self, name: str, uri: str): - """ - Deprecated alias for :meth:`.add_to_playlist`. - """ - self.logger.warning( - 'music.mpd.playlistadd is deprecated, use music.mpd.add_to_playlist instead' - ) - return self.add_to_playlist(name, uri) - @action def remove_from_playlist( self, playlist: str, resources: Union[int, Collection[int]], *_, **__ @@ -705,27 +626,7 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): self._exec('playlistmove', playlist, from_pos, to_pos) @action - def playlistdelete(self, name: str, pos: int): - """ - Deprecated alias for :meth:`.remove_from_playlist`. - """ - self.logger.warning( - 'music.mpd.playlistdelete is deprecated, use music.mpd.remove_from_playlist instead' - ) - return self.remove_from_playlist(name, pos) - - @action - def playlistmove(self, name: str, from_pos: int, to_pos: int): - """ - Deprecated alias for :meth:`.playlist_move`. - """ - self.logger.warning( - 'music.mpd.playlistmove is deprecated, use music.mpd.playlist_move instead' - ) - return self.playlist_move(name, from_pos=from_pos, to_pos=to_pos) - - @action - def playlistclear(self, name: str): + def playlist_clear(self, name: str): """ Clears all the elements from the specified playlist. @@ -734,14 +635,14 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): self._exec('playlistclear', name) @action - def rename(self, name: str, new_name: str): + def rename_playlist(self, playlist: str, new_name: str): """ Rename a playlist. - :param name: Original playlist name + :param playlist: Original playlist name or URI :param new_name: New playlist name """ - self._exec('rename', name, new_name) + self._exec('rename', playlist, new_name) @action def lsinfo(self, uri: Optional[str] = None): From 89d618b35f02f38a2b7d7a95637ebcf508e23161 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Tue, 2 Apr 2024 16:18:11 +0200 Subject: [PATCH 10/80] [WIP] `music.mopidy` refactor, initial backend rewrite. --- docs/source/backends.rst | 1 - .../source/platypush/backend/music.mopidy.rst | 6 - .../source/platypush/plugins/music.mopidy.rst | 5 + docs/source/plugins.rst | 1 + platypush/backend/music/mopidy/__init__.py | 324 ----- platypush/plugins/music/__init__.py | 15 +- platypush/plugins/music/mopidy/__init__.py | 1076 +++++++++++++++++ platypush/plugins/music/mopidy/_client.py | 486 ++++++++ platypush/plugins/music/mopidy/_common.py | 4 + platypush/plugins/music/mopidy/_conf.py | 23 + platypush/plugins/music/mopidy/_exc.py | 10 + platypush/plugins/music/mopidy/_playlist.py | 33 + platypush/plugins/music/mopidy/_status.py | 47 + platypush/plugins/music/mopidy/_sync.py | 50 + platypush/plugins/music/mopidy/_task.py | 58 + platypush/plugins/music/mopidy/_track.py | 43 + .../music/mopidy/manifest.yaml | 4 +- platypush/plugins/music/mpd/__init__.py | 19 +- platypush/schemas/mopidy.py | 325 +++++ platypush/utils/threads.py | 7 +- 20 files changed, 2198 insertions(+), 339 deletions(-) delete mode 100644 docs/source/platypush/backend/music.mopidy.rst create mode 100644 docs/source/platypush/plugins/music.mopidy.rst delete mode 100644 platypush/backend/music/mopidy/__init__.py create mode 100644 platypush/plugins/music/mopidy/__init__.py create mode 100644 platypush/plugins/music/mopidy/_client.py create mode 100644 platypush/plugins/music/mopidy/_common.py create mode 100644 platypush/plugins/music/mopidy/_conf.py create mode 100644 platypush/plugins/music/mopidy/_exc.py create mode 100644 platypush/plugins/music/mopidy/_playlist.py create mode 100644 platypush/plugins/music/mopidy/_status.py create mode 100644 platypush/plugins/music/mopidy/_sync.py create mode 100644 platypush/plugins/music/mopidy/_task.py create mode 100644 platypush/plugins/music/mopidy/_track.py rename platypush/{backend => plugins}/music/mopidy/manifest.yaml (92%) create mode 100644 platypush/schemas/mopidy.py diff --git a/docs/source/backends.rst b/docs/source/backends.rst index 4b76793a6f..26b632d122 100644 --- a/docs/source/backends.rst +++ b/docs/source/backends.rst @@ -8,7 +8,6 @@ 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 diff --git a/docs/source/platypush/backend/music.mopidy.rst b/docs/source/platypush/backend/music.mopidy.rst deleted file mode 100644 index 6981503096..0000000000 --- a/docs/source/platypush/backend/music.mopidy.rst +++ /dev/null @@ -1,6 +0,0 @@ -``music.mopidy`` -================================== - -.. automodule:: platypush.backend.music.mopidy - :members: - diff --git a/docs/source/platypush/plugins/music.mopidy.rst b/docs/source/platypush/plugins/music.mopidy.rst new file mode 100644 index 0000000000..6d8deabfaf --- /dev/null +++ b/docs/source/platypush/plugins/music.mopidy.rst @@ -0,0 +1,5 @@ +``music.mopidy`` +================ + +.. automodule:: platypush.plugins.music.mopidy + :members: diff --git a/docs/source/plugins.rst b/docs/source/plugins.rst index 1a63faaab9..f016efcc68 100644 --- a/docs/source/plugins.rst +++ b/docs/source/plugins.rst @@ -84,6 +84,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 diff --git a/platypush/backend/music/mopidy/__init__.py b/platypush/backend/music/mopidy/__init__.py deleted file mode 100644 index 6914c93174..0000000000 --- a/platypush/backend/music/mopidy/__init__.py +++ /dev/null @@ -1,324 +0,0 @@ -import json -import re -import threading - -import websocket - -from platypush.backend import Backend -from platypush.message.event.music import ( - MusicPlayEvent, - MusicPauseEvent, - MusicStopEvent, - NewPlayingTrackEvent, - PlaylistChangeEvent, - VolumeChangeEvent, - PlaybackConsumeModeChangeEvent, - PlaybackSingleModeChangeEvent, - PlaybackRepeatModeChangeEvent, - PlaybackRandomModeChangeEvent, - MuteChangeEvent, - SeekChangeEvent, -) - - -# noinspection PyUnusedLocal -class MusicMopidyBackend(Backend): - """ - This backend listens for events on a Mopidy music server streaming port. - Since this backend leverages the Mopidy websocket interface it is only - compatible with Mopidy and not with other MPD servers. Please use the - :class:`platypush.backend.music.mpd.MusicMpdBackend` for a similar polling - solution if you're not running Mopidy or your instance has the websocket - interface or web port disabled. - - Requires: - - * A Mopidy instance running with the HTTP service enabled. - - """ - - def __init__(self, host='localhost', port=6680, **kwargs): - super().__init__(**kwargs) - - self.host = host - self.port = int(port) - self.url = 'ws://{}:{}/mopidy/ws'.format(host, port) - self._msg_id = 0 - self._ws = None - self._latest_status = {} - self._reconnect_thread = None - self._connected_event = threading.Event() - - try: - self._latest_status = self._get_tracklist_status() - except Exception as e: - self.logger.warning('Unable to get mopidy status: {}'.format(str(e))) - - @staticmethod - def _parse_track(track, pos=None): - if not track: - return {} - - conv_track = track.get('track', {}).copy() - conv_track['id'] = track.get('tlid') - conv_track['file'] = conv_track['uri'] - del conv_track['uri'] - - if 'artists' in conv_track: - conv_track['artist'] = conv_track['artists'][0].get('name') - del conv_track['artists'] - - if 'name' in conv_track: - conv_track['title'] = conv_track['name'] - del conv_track['name'] - - if 'album' in conv_track: - conv_track['album'] = conv_track['album']['name'] - - if 'length' in conv_track: - conv_track['time'] = ( - conv_track['length'] / 1000 - if conv_track['length'] - else conv_track['length'] - ) - del conv_track['length'] - - if pos is not None: - conv_track['pos'] = pos - - if '__model__' in conv_track: - del conv_track['__model__'] - - return conv_track - - def _communicate(self, msg): - if isinstance(msg, str): - msg = json.loads(msg) - - self._msg_id += 1 - msg['jsonrpc'] = '2.0' - msg['id'] = self._msg_id - msg = json.dumps(msg) - - ws = websocket.create_connection(self.url) - ws.send(msg) - response = json.loads(ws.recv()).get('result') - ws.close() - return response - - def _get_tracklist_status(self): - return { - 'repeat': self._communicate({'method': 'core.tracklist.get_repeat'}), - 'random': self._communicate({'method': 'core.tracklist.get_random'}), - 'single': self._communicate({'method': 'core.tracklist.get_single'}), - 'consume': self._communicate({'method': 'core.tracklist.get_consume'}), - } - - def _on_msg(self): - def hndl(*args): - msg = args[1] if len(args) > 1 else args[0] - msg = json.loads(msg) - event = msg.get('event') - if not event: - return - - status = {} - track = msg.get('tl_track', {}) - - if event == 'track_playback_paused': - status['state'] = 'pause' - track = self._parse_track(track) - if not track: - return - self.bus.post( - MusicPauseEvent(status=status, track=track, plugin_name='music.mpd') - ) - elif event == 'track_playback_resumed': - status['state'] = 'play' - track = self._parse_track(track) - if not track: - return - self.bus.post( - MusicPlayEvent(status=status, track=track, plugin_name='music.mpd') - ) - elif event == 'track_playback_ended' or ( - event == 'playback_state_changed' and msg.get('new_state') == 'stopped' - ): - status['state'] = 'stop' - track = self._parse_track(track) - self.bus.post( - MusicStopEvent(status=status, track=track, plugin_name='music.mpd') - ) - elif event == 'track_playback_started': - track = self._parse_track(track) - if not track: - return - - status['state'] = 'play' - status['position'] = 0.0 - status['time'] = track.get('time') - self.bus.post( - NewPlayingTrackEvent( - status=status, track=track, plugin_name='music.mpd' - ) - ) - elif event == 'stream_title_changed': - m = re.match(r'^\s*(.+?)\s+-\s+(.*)\s*$', msg.get('title', '')) - if not m: - return - - track['artist'] = m.group(1) - track['title'] = m.group(2) - status['state'] = 'play' - status['position'] = 0.0 - self.bus.post( - NewPlayingTrackEvent( - status=status, track=track, plugin_name='music.mpd' - ) - ) - elif event == 'volume_changed': - status['volume'] = msg.get('volume') - self.bus.post( - VolumeChangeEvent( - volume=status['volume'], - status=status, - track=track, - plugin_name='music.mpd', - ) - ) - elif event == 'mute_changed': - status['mute'] = msg.get('mute') - self.bus.post( - MuteChangeEvent( - mute=status['mute'], - status=status, - track=track, - plugin_name='music.mpd', - ) - ) - elif event == 'seeked': - status['position'] = msg.get('time_position') / 1000 - self.bus.post( - SeekChangeEvent( - position=status['position'], - status=status, - track=track, - plugin_name='music.mpd', - ) - ) - elif event == 'tracklist_changed': - tracklist = [ - self._parse_track(t, pos=i) - for i, t in enumerate( - self._communicate({'method': 'core.tracklist.get_tl_tracks'}) - ) - ] - - self.bus.post( - PlaylistChangeEvent(changes=tracklist, plugin_name='music.mpd') - ) - elif event == 'options_changed': - new_status = self._get_tracklist_status() - if new_status['random'] != self._latest_status.get('random'): - self.bus.post( - PlaybackRandomModeChangeEvent( - state=new_status['random'], plugin_name='music.mpd' - ) - ) - if new_status['repeat'] != self._latest_status['repeat']: - self.bus.post( - PlaybackRepeatModeChangeEvent( - state=new_status['repeat'], plugin_name='music.mpd' - ) - ) - if new_status['single'] != self._latest_status['single']: - self.bus.post( - PlaybackSingleModeChangeEvent( - state=new_status['single'], plugin_name='music.mpd' - ) - ) - if new_status['consume'] != self._latest_status['consume']: - self.bus.post( - PlaybackConsumeModeChangeEvent( - state=new_status['consume'], plugin_name='music.mpd' - ) - ) - - self._latest_status = new_status - - return hndl - - def _retry_connect(self): - def reconnect(): - while not self.should_stop() and not self._connected_event.is_set(): - try: - self._connect() - except Exception as e: - self.logger.warning('Error on websocket reconnection: %s', e) - - self._connected_event.wait(timeout=10) - - self._reconnect_thread = None - - if not self._reconnect_thread or not self._reconnect_thread.is_alive(): - self._reconnect_thread = threading.Thread(target=reconnect) - self._reconnect_thread.start() - - def _on_error(self): - def hndl(*args): - error = args[1] if len(args) > 1 else args[0] - ws = args[0] if len(args) > 1 else None - self.logger.warning('Mopidy websocket error: {}'.format(error)) - if ws: - ws.close() - - return hndl - - def _on_close(self): - def hndl(*_): - self._connected_event.clear() - self._ws = None - self.logger.warning('Mopidy websocket connection closed') - - if not self.should_stop(): - self._retry_connect() - - return hndl - - def _on_open(self): - def hndl(*_): - self._connected_event.set() - self.logger.info('Mopidy websocket connected') - - return hndl - - def _connect(self): - if not self._ws: - self._ws = websocket.WebSocketApp( - self.url, - on_open=self._on_open(), - on_message=self._on_msg(), - on_error=self._on_error(), - on_close=self._on_close(), - ) - - self._ws.run_forever() - - def run(self): - super().run() - self.logger.info( - 'Started tracking Mopidy events backend on {}:{}'.format( - self.host, self.port - ) - ) - self._connect() - - def on_stop(self): - self.logger.info('Received STOP event on the Mopidy backend') - if self._ws: - self._ws.close() - - self.logger.info('Mopidy backend terminated') - - -# vim:sw=4:ts=4:et: diff --git a/platypush/plugins/music/__init__.py b/platypush/plugins/music/__init__.py index 6c3b04c7b3..70d43798bd 100644 --- a/platypush/plugins/music/__init__.py +++ b/platypush/plugins/music/__init__.py @@ -1,5 +1,5 @@ from abc import ABC, abstractmethod -from typing import Optional +from typing import Dict, Iterable, Optional from platypush.plugins import Plugin, action @@ -107,5 +107,18 @@ class MusicPlugin(Plugin, ABC): def search(self, query, **kwargs): raise NotImplementedError() + @action + def get_images(self, resources: Iterable[str], **__) -> Dict[str, Optional[str]]: + """ + Get the images for a list of URIs. + + .. note:: This is an optional action, and it may not be implemented by all plugins. + If the plugin doesn't implement this action, it will return an empty dictionary. + + :param uris: List of URIs. + :return: Dictionary in the form ``{uri: image_url}``. + """ + return {} + # vim:sw=4:ts=4:et: diff --git a/platypush/plugins/music/mopidy/__init__.py b/platypush/plugins/music/mopidy/__init__.py new file mode 100644 index 0000000000..e5c2bd8524 --- /dev/null +++ b/platypush/plugins/music/mopidy/__init__.py @@ -0,0 +1,1076 @@ +from typing import Dict, Iterable, List, Optional, Union + +from platypush.plugins import RunnablePlugin, action +from platypush.plugins.media import PlayerState +from platypush.schemas.mopidy import ( + MopidyAlbumSchema, + MopidyArtistSchema, + MopidyDirectorySchema, + MopidyFilterSchema, + MopidyPlaylistSchema, + MopidyStatusSchema, + MopidyTrackSchema, +) +from platypush.utils import wait_for_either + +from ._client import MopidyClient +from ._common import DEFAULT_TIMEOUT +from ._conf import MopidyConfig +from ._exc import EmptyTrackException +from ._playlist import MopidyPlaylist +from ._status import MopidyStatus +from ._sync import PlaylistSync +from ._task import MopidyTask +from ._track import MopidyTrack + + +class MusicMopidyPlugin(RunnablePlugin): + """ + This plugin allows you to track the events from a Mopidy instance + and control it through the Mopidy HTTP API. + + Requires: + + * A Mopidy instance running with the HTTP service enabled. + + """ + + def __init__( + self, + host: str = 'localhost', + port: int = 6680, + ssl: bool = False, + timeout: Optional[float] = DEFAULT_TIMEOUT, + **kwargs, + ): + """ + :param host: Mopidy host (default: localhost). + :param port: Mopidy HTTP port (default: 6680). + :param ssl: Set to True if the Mopidy server is running on HTTPS. + :param timeout: Default timeout for the Mopidy requests (default: 20s). + """ + super().__init__(**kwargs) + + self.config = MopidyConfig(host=host, port=port, ssl=ssl, timeout=timeout) + self._status = MopidyStatus() + self._tasks: Dict[int, MopidyTask] = {} + self._client: Optional[MopidyClient] = None + self._playlist_sync = PlaylistSync() + + def _exec(self, *msgs: dict, **kwargs): + assert self._client, "Mopidy client not running" + return self._client.exec( + *msgs, timeout=kwargs.pop('timeout', self.config.timeout) + ) + + def _exec_with_status(self, *msgs: dict, **kwargs): + self._exec(*msgs, **kwargs) + return self._dump_status() + + def _dump_status(self): + assert self._client, "Mopidy client not running" + return MopidyStatusSchema().dump(self._client.status) + + def _dump_results(self, results: List[dict]) -> List[dict]: + schema_by_type = { + 'artist': MopidyArtistSchema(), + 'album': MopidyAlbumSchema(), + 'directory': MopidyDirectorySchema(), + 'playlist': MopidyPlaylistSchema(), + 'track': MopidyTrackSchema(), + } + + return [ + { + **( + MopidyTrack.parse(item).to_dict() # type: ignore + if item['type'] == 'track' + else schema_by_type[item['type']].dump(item) + ), + 'type': item['type'], + } + for item in results + ] + + def _dump_search_results(self, results: List[dict]) -> List[dict]: + return self._dump_results( + [ + { + **item, + 'type': res_type, + } + for search_provider in results + for res_type in ['artist', 'album', 'track'] + for item in search_provider.get(res_type + 's', []) + ] + ) + + def _lookup(self, *uris: str) -> Dict[str, List[MopidyTrack]]: + if not uris: + return {} + + if len(uris) > 1: + # If more than one URI is specified, we need to call only + # library.lookup, as playlist.lookup does not support multiple + # URIs. + result = self._exec( + {'method': 'core.library.lookup', 'uris': uris}, + )[0] + else: + # Otherwise, search both in the library and in the playlist + # controllers. + uri = uris[0] + result = self._exec( + {'method': 'core.playlists.lookup', 'uri': uri}, + {'method': 'core.library.lookup', 'uris': [uri]}, + ) + result = { + uri: ( + result[0].get('tracks', []) + if result[0] + else list(result[1].values())[0] + ) + } + + ret = {} + for uri, tracks in result.items(): + ret[uri] = [] + for track in tracks: + parsed_track = MopidyTrack.parse(track) + if parsed_track: + ret[uri].append(parsed_track) + + return ret + + def _add( + self, + *resources: str, + position: Optional[int] = None, + clear: bool = False, + lookup: bool = True, + ): + batch_size = 50 + results = self._lookup(*resources).values() + ret = [] + uris = ( + [track.uri for tracks in results for track in tracks if track and track.uri] + if lookup + else list(resources) + ) + + with self._playlist_sync: + if clear: + self.clear() + + for i in range(0, len(uris), batch_size): + ret += self._exec( + { + 'method': 'core.tracklist.add', + 'uris': uris[i : i + batch_size], + 'at_position': position, + } + )[0] + + self.logger.info('Loaded %d/%d tracks', len(ret), len(uris)) + + return ret + + def _get_playlist(self, playlist: str, with_tracks: bool = False) -> MopidyPlaylist: + playlists = self._get_playlists() + pl_by_name = {p.name: p for p in playlists} + pl_by_uri = {p.uri: p for p in playlists} + pl = pl_by_uri.get(playlist, pl_by_name.get(playlist)) + assert pl, f"Playlist {playlist} not found" + + if with_tracks: + pl.tracks = self._get_playlist_tracks(playlist) + + return pl + + def _get_playlist_tracks(self, playlist: str) -> List[MopidyTrack]: + playlists = self._get_playlists() + pl_by_name = {p.name: p for p in playlists} + pl_by_uri = {p.uri: p for p in playlists} + pl = pl_by_uri.get(playlist, pl_by_name.get(playlist)) + assert pl, f"Playlist {playlist} not found" + + tracks = self._exec({'method': 'core.playlists.get_items', 'uri': pl.uri})[0] + assert tracks is not None, f"Playlist {playlist} not found" + + ret = [] + for track in tracks: + parsed_track = MopidyTrack.parse(track) + if parsed_track: + ret.append(parsed_track) + + return ret + + def _get_playlists(self, **__) -> List[MopidyPlaylist]: + return [ + MopidyPlaylist.parse(pl) + for pl in self._exec({'method': 'core.playlists.as_list'})[0] + ] + + def _save_playlist(self, playlist: MopidyPlaylist): + return self._exec( + { + 'method': 'core.playlists.save', + 'playlist': { + '__model__': 'Playlist', + 'uri': playlist.uri, + 'name': playlist.name, + 'tracks': [ + { + '__model__': 'Track', + 'uri': track.uri, + } + for track in playlist.tracks + ], + }, + } + )[0] + + @action + def play( + self, + resource: Optional[str] = None, + position: Optional[int] = None, + track_id: Optional[int] = None, + **__, + ): + """ + Start playback, or play a resource by URI. + + :param resource: Resource path/URI. If not specified, it will resume the + playback if paused/stopped, otherwise it will start playing the + selected track. + :param track_id: The ID of track (or ``tlid``) in the current playlist + that should be played, if you want to play a specific track already + loaded in the current playlist. + :param position: Position number (0-based) of the track in the current + playlist that should be played. + :return: .. schema:: mopidy.MopidyStatusSchema + """ + if resource: + ret = self._add(resource, position=0) + if not ret: + self.logger.warning('Failed to add %s to the tracklist', resource) + elif isinstance(ret, dict): + track_id = ret.get('tlid') + elif position is not None: + tracklist = self._exec({'method': 'core.tracklist.get_tl_tracks'})[0] + if position < 0 or position >= len(tracklist): + self.logger.warning( + 'Position %d is out of bounds for the current tracklist', position + ) + return None + + track_id = tracklist[position]['tlid'] + + return self._exec_with_status( + {'method': 'core.playback.play', 'tlid': track_id} + ) + + @action + def play_pos(self, pos: int): + """ + Play a track in the current playlist by position number. + + Legacy alias for :meth:`.play` with a ``position`` parameter. + + :param pos: Position number (0-based). + """ + return self.play(position=pos) + + @action + def load(self, playlist: str, play: bool = True): + """ + Load/play a playlist. + + This method will clear the current playlist and load the tracks from the + given playlist. + + You should usually prefer :meth:`.add` to this method, as it is more + general-purpose (``load`` only works with playlists). This method exists + mainly for compatibility with the MPD plugin. + + :param playlist: Playlist URI. + :param play: Start playback after loading the playlist (default: True). + """ + self._add(playlist, clear=True) + if play: + self.play() + + @action + def lookup(self, resources: Iterable[str], **__): + """ + Lookup (one or) resources by URI. + + Given a list of URIs, this method will return a dictionary in the form + ``{uri: [track1, track2, ...]}``. + + :param resource: Resource URI(s). + :return: .. schema:: mopidy.MopidyTrackSchema(many=True) + """ + return { + uri: [track.to_dict() for track in tracks] + for uri, tracks in self._lookup(*resources).items() + } + + @action + def pause(self, **__): + """ + Pause the playback. + + :return: .. schema:: mopidy.MopidyStatusSchema + """ + return self._exec_with_status({'method': 'core.playback.pause'}) + + @action + def stop(self, **__): # type: ignore + """ + Stop the playback. + + :return: .. schema:: mopidy.MopidyStatusSchema + """ + return self._exec_with_status({'method': 'core.playback.stop'}) + + @action + def prev(self, **__): + """ + Play the previous track. + + :return: .. schema:: mopidy.MopidyStatusSchema + """ + return self._exec_with_status({'method': 'core.playback.previous'}) + + @action + def next(self, **__): + """ + Play the next track. + + :return: .. schema:: mopidy.MopidyStatusSchema + """ + return self._exec_with_status({'method': 'core.playback.next'}) + + @action + def add( + self, + resource: Union[str, Iterable[str]], + *_, + position: Optional[int] = None, + **__, + ): + """ + Add a resource (track, album, artist, folder etc.) to the current + playlist. + + :param resource: Resource URI(s). + :param position: Position (0-based) where the track(s) will be inserted + (default: end of the playlist). + :return: The list of tracks added to the queue. + .. schema:: mopidy.MopidyTrackSchema(many=True) + """ + resources = [resource] if isinstance(resource, str) else resource + tracks = [ + MopidyTrack.parse(track) + for track in self._add(*resources, position=position) + ] + return [track.to_dict() for track in tracks if track] + + @action + def pause_if_playing(self, **__): + """ + Pause the playback if it's currently playing. + + :return: .. schema:: mopidy.MopidyStatusSchema + """ + if self._status.state == PlayerState.PLAY: + return self.pause() + + return self._dump_status() + + @action + def play_if_paused(self, **__): + """ + Resume the playback if it's currently paused. + + :return: .. schema:: mopidy.MopidyStatusSchema + """ + if self._status.state == PlayerState.PAUSE: + return self.play() + + return self._dump_status() + + @action + def play_if_paused_or_stopped(self): + """ + Resume the playback if it's currently paused or stopped. + + :return: .. schema:: mopidy.MopidyStatusSchema + """ + if self._status.state in {PlayerState.PAUSE, PlayerState.STOP}: + return self.play() + + return self._dump_status() + + @action + def play_or_stop(self): + """ + Play if the playback is stopped, stop if it's playing, otherwise resume + playback. + + :return: .. schema:: mopidy.MopidyStatusSchema + """ + if self._status.state == PlayerState.PLAY: + return self.stop() + + return self.play() + + @action + def set_volume(self, volume: int, **__): + """ + Set the volume. + + :param volume: Volume level (0-100). + :return: .. schema:: mopidy.MopidyStatusSchema + """ + return self._exec_with_status( + {'method': 'core.mixer.set_volume', 'volume': volume} + ) + + @action + def volup(self, step: int = 5, **__): + """ + Increase the volume by a given step. + + :param step: Volume step (default: 5%). + :return: .. schema:: mopidy.MopidyStatusSchema + """ + return self.set_volume(volume=min(100, self._status.volume + step)) + + @action + def voldown(self, step: int = 5, **__): + """ + Decrease the volume by a given step. + + :param step: Volume step (default: 5%). + :return: .. schema:: mopidy.MopidyStatusSchema + """ + return self.set_volume(volume=max(0, self._status.volume - step)) + + @action + def random(self, value: Optional[bool] = None, **__): + """ + Set the random mode. + + :param value: Random mode. If not specified, it will toggle the current + random mode. + :return: .. schema:: mopidy.MopidyStatusSchema + """ + if value is None: + value = not self._status.random + + return self._exec_with_status( + {'method': 'core.tracklist.set_random', 'value': bool(value)} + ) + + @action + def repeat(self, value: Optional[bool] = None, **__): + """ + Set the repeat mode. + + :param value: Repeat mode. If not specified, it will toggle the current + repeat mode. + :return: .. schema:: mopidy.MopidyStatusSchema + """ + if value is None: + value = not self._status.repeat + + return self._exec_with_status( + {'method': 'core.tracklist.set_repeat', 'value': bool(value)} + ) + + @action + def consume(self, value: Optional[bool] = None, **__): + """ + Set the consume mode. + + :param value: Consume mode. If not specified, it will toggle the current + consume mode. + :return: .. schema:: mopidy.MopidyStatusSchema + """ + if value is None: + value = not self._status.consume + + return self._exec_with_status( + {'method': 'core.tracklist.set_consume', 'value': bool(value)} + ) + + @action + def single(self, value: Optional[bool] = None, **__): + """ + Set the single mode. + + :param value: Single mode. If not specified, it will toggle the current + single mode. + :return: .. schema:: mopidy.MopidyStatusSchema + """ + if value is None: + value = not self._status.single + + return self._exec_with_status( + {'method': 'core.tracklist.set_single', 'value': bool(value)} + ) + + @action + def shuffle(self, **__): + """ + Shuffle the current playlist. + + :return: .. schema:: mopidy.MopidyStatusSchema + """ + return self._exec_with_status({'method': 'core.tracklist.shuffle'}) + + @action + def save(self, name: str, **__): + """ + Save the current tracklist to a new playlist with the given name. + + :param name: New playlist name. + """ + return self._exec({'method': 'core.playlists.save', 'name': name})[0] + + @action + def delete( + self, + positions: Optional[Iterable[int]] = None, + uris: Optional[Iterable[str]] = None, + ): + """ + Delete tracks from the current tracklist. + + .. note:: At least one of the ``positions`` or ``uris`` parameters must + be specified. + + :param positions: (0-based) positions of the tracks to be deleted. + :param uris: URIs of the tracks to be deleted. + """ + assert ( + positions or uris + ), "At least one of 'positions' or 'uris' must be specified" + criteria = {} + if positions: + assert self._client, "Mopidy client not running" + positions = set(positions) + criteria['tlid'] = list( + { + track.track_id + for i, track in enumerate(self._client.tracks) + if i in positions + } + ) + if uris: + criteria['uri'] = list(uris) + + return self._exec( + { + 'method': 'core.tracklist.remove', + 'criteria': criteria, + } + )[0] + + @action + def move( + self, + start: Optional[int] = None, + end: Optional[int] = None, + position: Optional[int] = None, + from_pos: Optional[int] = None, + to_pos: Optional[int] = None, + **__, + ): + """ + Move one or more tracks in the current playlist to a new position. + + You can pass either: + + - ``start``, ``end`` and ``position`` to move a slice of tracks + from ``start`` to ``end`` to the new position ``position``. + - ``from_pos`` and ``to_pos`` to move a single track from + ``from_pos`` to ``to_pos``. + + .. note: Positions are 0-based (i.e. the first track has position 0). + + :param start: Start position of the slice of tracks to be moved. + :param end: End position of the slice of tracks to be moved. + :param position: New position where the tracks will be inserted. + :param from_pos: Alias for ``start`` - it only works with one track at + the time. Maintained for compatibility with + :meth:`platypush.plugins.music.mpd.MusicMpdPlugin.move`. + :param to_pos: Alias for ``position`` - it only works with one track at + the time. Maintained for compatibility with + :meth:`platypush.plugins.music.mpd.MusicMpdPlugin.move`. + """ + assert (from_pos is not None and to_pos is not None) or ( + start is not None and end is not None and position is not None + ), 'Either "start", "end" and "position", or "from_pos" and "to_pos" must be specified' + + if (from_pos is not None) and (to_pos is not None): + start, end, position = from_pos, from_pos, to_pos + + ret = self._exec( + { + 'method': 'core.tracklist.move', + 'start': start, + 'end': end, + 'to_position': position, + } + )[0] + + if self._client: + self._client.refresh_status(with_tracks=True) + return ret + + @action + def clear(self, **__): + """ + Clear the current playlist. + """ + self._exec_with_status({'method': 'core.tracklist.clear'}) + + @action + def seek(self, position: float, **__): + """ + Seek to a given position in the current track. + + :param position: Position in seconds. + :return: .. schema:: mopidy.MopidyStatusSchema + """ + return self._exec_with_status( + {'method': 'core.playback.seek', 'time_position': int(position * 1000)} + ) + + @action + def back(self, delta: float = 10, **__): + """ + Seek back by a given number of seconds. + + :param delta: Number of seconds to seek back (default: 10s). + :return: .. schema:: mopidy.MopidyStatusSchema + """ + if self._status.playing_pos is None: + return self._dump_status() + + return self.seek(position=self._status.playing_pos - delta) + + @action + def forward(self, delta: float = 10, **__): + """ + Seek forward by a given number of seconds. + + :param delta: Number of seconds to seek forward (default: 10s). + :return: .. schema:: mopidy.MopidyStatusSchema + """ + if self._status.playing_pos is None: + return self._dump_status() + + return self.seek(position=self._status.playing_pos + delta) + + @action + def status(self, **__): + """ + Get the current Mopidy status. + + :return: .. schema:: mopidy.MopidyStatusSchema + """ + assert self._client, "Mopidy client not running" + self._client.refresh_status() + return self._dump_status() + + @action + def current_track(self, **__): + """ + Get the current track. + + :return: .. schema:: mopidy.MopidyTrackSchema + """ + assert self._client, "Mopidy client not running" + if not self._client.status.track: + return None + + return self._client.status.track.to_dict() + + @action + def get_tracks(self, **__): + """ + Get the current playlist tracks. + + :return: .. schema:: mopidy.MopidyTrackSchema(many=True) + """ + assert self._client, "Mopidy client not running" + return [t.to_dict() for t in self._client.tracks] + + @action + def get_playlists(self, **__): + """ + Get the available playlists. + + :return: .. schema:: mopidy.MopidyPlaylistSchema(many=True) + """ + return MopidyPlaylistSchema().dump(self._get_playlists(), many=True) + + @action + def get_playlist(self, playlist: str, **__): + """ + Get the items in a playlist. + + :param playlist: Playlist URI. + :param only_tracks: If True, only the tracks will be returned, otherwise + the full playlist object will be returned - including name and other + metadata. + :return: .. schema:: mopidy.MopidyTrackSchema(many=True) + """ + tracks = self._get_playlist_tracks(playlist) + tracks_by_uri = {t.uri: t for t in tracks if t.uri} + looked_up = self._lookup(*tracks_by_uri.keys()) + return [ + track.to_dict() + for track in [ + (looked_up[uri][0] if looked_up.get(uri) else track) + for uri, track in tracks_by_uri.items() + ] + ] + + @action + def get_playlist_uri_schemes(self, **__): + """ + Get the available playlist URI schemes. + + :return: List of available playlist URI schemes. + """ + return self._exec({'method': 'core.playlists.get_uri_schemes'})[0] + + @action + def create_playlist(self, name: str, uri_scheme: str = 'm3u', **__): + """ + Create a new playlist. + + :param name: Playlist name. + :param uri_scheme: URI scheme for the playlist (default: ``m3u``). + You can get a full list of the available URI schemes that support + playlist creation on the Mopidy instance by calling + :meth:`.get_playlist_uri_schemes`. + :return: .. schema:: mopidy.MopidyPlaylistSchema + """ + return MopidyPlaylistSchema().dump( + self._exec( + { + 'method': 'core.playlists.create', + 'name': name, + 'uri_scheme': uri_scheme, + } + )[0] + ) + + @action + def delete_playlist(self, playlist: str, **__): + """ + Delete a playlist. + + :param playlist: Playlist URI. + :return: ``True`` if the playlist was deleted, ``False`` otherwise. + """ + return self._exec({'method': 'core.playlists.delete', 'uri': playlist})[0] + + @action + def add_to_playlist( + self, + playlist: str, + resources: Iterable[str], + position: Optional[int] = None, + allow_duplicates: bool = False, + **__, + ): + """ + Add tracks to a playlist. + + :param playlist: Playlist URI/name. + :param resources: List of track URIs. + :param position: Position where the tracks will be inserted (default: + end of the playlist). + :param allow_duplicates: If True, the tracks will be added even if they + are already present in the playlist (default: False). + :return: The modified playlist. + .. schema:: mopidy.MopidyPlaylistSchema + """ + pl = self._get_playlist(playlist, with_tracks=True) + + if not allow_duplicates: + existing_uris = {t.uri for t in pl.tracks} + resources = [t for t in resources if t not in existing_uris] + + new_tracks = [MopidyTrack(uri=t) for t in resources] + if position is not None: + pl.tracks = pl.tracks[:position] + new_tracks + pl.tracks[position:] + else: + pl.tracks += new_tracks + + self._save_playlist(pl) + return pl.to_dict() + + @action + def remove_from_playlist( + self, + playlist: str, + resources: Optional[Iterable[Union[str, int]]] = None, + from_pos: Optional[int] = None, + to_pos: Optional[int] = None, + **__, + ): + """ + Remove tracks from a playlist. + + This action can work in three different ways: + + - If the ``resources`` parameter is specified, and it contains + strings, it will remove the tracks matching the provided URIs. + - If the ``resources`` parameter is specified, and it contains + integers, it will remove the tracks in the specified positions. + - If the ``from_pos`` and ``to_pos`` parameters are specified, it + will remove the tracks in the specified range (inclusive). + + .. note: Positions are 0-based (i.e. the first track has position 0). + + :param playlist: Playlist URI/name. + :param tracks: List of track URIs. + :param from_pos: Start position of the slice of tracks to be removed. + :param to_pos: End position of the slice of tracks to be removed. + :return: The modified playlist. + .. schema:: mopidy.MopidyPlaylistSchema + """ + assert resources or ( + from_pos is not None and to_pos is not None + ), "Either 'tracks', or 'positions', or 'from_pos' and 'to_pos' must be specified" + + pl = self._get_playlist(playlist, with_tracks=True) + + if resources: + resources = set(resources) + positions = { + i + for i, t in enumerate(pl.tracks) + if t.uri in resources or i in resources + } + + pl.tracks = [t for i, t in enumerate(pl.tracks) if i not in positions] + elif from_pos is not None and to_pos is not None: + from_pos, to_pos = (min(from_pos, to_pos), max(from_pos, to_pos)) + pl.tracks = pl.tracks[: from_pos - 1] + pl.tracks[to_pos:] + + self._save_playlist(pl) + return pl.to_dict() + + @action + def playlist_move( + self, + playlist: str, + start: Optional[int] = None, + end: Optional[int] = None, + position: Optional[int] = None, + from_pos: Optional[int] = None, + to_pos: Optional[int] = None, + **__, + ): + """ + Move tracks in a playlist. + + This action can work in two different ways: + + - If the ``start``, ``end`` and ``position`` parameters are + specified, it will move an individual track from the position + ``start`` to the position ``end`` to the new position + ``position``. + + - If the ``from_pos``, ``to_pos`` and ``position`` parameters are + specified, it will move the tracks in the specified range + (inclusive) to the new position ``position``. + + .. note: Positions are 0-based (i.e. the first track has position 0). + + :param playlist: Playlist URI. + :param start: Start position of the slice of tracks to be moved. + :param end: End position of the slice of tracks to be moved. + :param position: New position where the tracks will be inserted. + :return: The modified playlist. + .. schema:: mopidy.MopidyPlaylistSchema + """ + assert (start is not None and end is not None and position is not None) or ( + from_pos is not None and to_pos is not None + ), "Either 'start', 'end' and 'position', or 'from_pos' and 'to_pos' must be specified" + + pl = self._get_playlist(playlist, with_tracks=True) + + if from_pos is not None and to_pos is not None: + from_pos, to_pos = (min(from_pos, to_pos), max(from_pos, to_pos)) + pl.tracks = ( + pl.tracks[:from_pos] + + pl.tracks[to_pos : to_pos + 1] + + pl.tracks[from_pos + 1 : to_pos] + + pl.tracks[from_pos : from_pos + 1] + + pl.tracks[to_pos + 1 :] + ) + elif start is not None and end is not None and position is not None: + start, end = (min(start, end), max(start, end)) + if start == end: + end += 1 + + if start < position: + pl.tracks = ( + pl.tracks[:start] + + pl.tracks[end : end + (position - start)] + + pl.tracks[start:end] + + pl.tracks[end + (position - start) :] + ) + else: + pl.tracks = ( + pl.tracks[:position] + + pl.tracks[start:end] + + pl.tracks[position:start] + + pl.tracks[end:] + ) + + self._save_playlist(pl) + return pl.to_dict() + + @action + def playlist_clear(self, playlist: str, **__): + """ + Remove all the tracks from a playlist. + + :param playlist: Playlist URI/name. + :return: The modified playlist. + .. schema:: mopidy.MopidyPlaylistSchema + """ + pl = self._get_playlist(playlist) + pl.tracks = [] + self._save_playlist(pl) + return pl.to_dict() + + @action + def rename_playlist(self, playlist: str, new_name: str, **__): + """ + Rename a playlist. + + :param playlist: Playlist URI/name. + :param new_name: New playlist name. + :return: The modified playlist. + .. schema:: mopidy.MopidyPlaylistSchema + """ + pl = self._get_playlist(playlist, with_tracks=True) + pl.name = new_name + self._save_playlist(pl) + return pl.to_dict() + + @action + def get_images(self, resources: Iterable[str], **__) -> Dict[str, Optional[str]]: + """ + Get the images for a list of URIs. + + :param resources: List of URIs. + :return: Dictionary in the form ``{uri: image_url}``. + """ + return { + uri: next(iter(images or []), {}).get('uri') + for uri, images in self._exec( + {'method': 'core.library.get_images', 'uris': list(resources)} + )[0].items() + } + + @action + def search( # pylint: disable=redefined-builtin + self, filter: dict, exact: bool = False, **__ + ): + """ + Search items that match the given query. + + :param filter: .. schema:: mopidy.MopidyFilterSchema + :param exact: If True, the search will only return exact matches. + :return: A list of result, including: + + - Tracks + .. schema:: mopidy.MopidyTrackSchema(many=True) + - Albums + .. schema:: mopidy.MopidyAlbumSchema(many=True) + - Artists + .. schema:: mopidy.MopidyArtistSchema(many=True) + + """ + filter = dict(MopidyFilterSchema().load(filter) or {}) + uris = filter.pop('uris', None) + kwargs = { + 'exact': exact, + 'query': filter, + **({'uris': uris} if uris else {}), + } + + return self._dump_search_results( + self._exec({'method': 'core.library.search', **kwargs})[0] + ) + + @action + def find( # pylint: disable=redefined-builtin + self, filter: dict, exact: bool = False, **__ + ): + """ + Alias for :meth:`search`, for MPD compatibility. + + :param filter: .. schema:: mopidy.MopidyFilterSchema + :param exact: If True, the search will only return exact matches. + :return: .. schema:: mopidy.MopidyTrackSchema(many=True) + """ + return self.search(filter=filter, exact=exact) + + @action + def browse(self, uri: Optional[str] = None): + """ + Browse the items under the specified URI. + + :param uri: URI to browse (default: root directory). + :return: A list of result under the specified resource, including: + + - Directories + .. schema:: mopidy.MopidyDirectorySchema(many=True) + - Tracks + .. schema:: mopidy.MopidyTrackSchema(many=True) + - Albums + .. schema:: mopidy.MopidyAlbumSchema(many=True) + - Artists + .. schema:: mopidy.MopidyArtistSchema(many=True) + + """ + return self._dump_results( + self._exec({'method': 'core.library.browse', 'uri': uri})[0] + ) + + def main(self): + while not self.should_stop(): + try: + with MopidyClient( + config=self.config, + status=self._status, + stop_event=self._should_stop, + playlist_sync=self._playlist_sync, + tasks=self._tasks, + ) as self._client: + self._client.start() + wait_for_either(self._should_stop, self._client.closed_event) + finally: + self._client = None + self.wait_stop(10) + + +__all__ = ['EmptyTrackException', 'MusicMopidyPlugin', 'MopidyStatus', 'MopidyTrack'] + + +# vim:sw=4:ts=4:et: diff --git a/platypush/plugins/music/mopidy/_client.py b/platypush/plugins/music/mopidy/_client.py new file mode 100644 index 0000000000..d27129ed13 --- /dev/null +++ b/platypush/plugins/music/mopidy/_client.py @@ -0,0 +1,486 @@ +import json +import logging +import re +import time +from dataclasses import asdict +from queue import Empty +from threading import Event, RLock, Thread +from typing import Dict, Generator, List, Optional, Type + +import websocket + +from platypush.context import get_bus +from platypush.message.event.music import ( + MusicEvent, + MusicPauseEvent, + MusicPlayEvent, + MusicStopEvent, + MuteChangeEvent, + NewPlayingTrackEvent, + PlaybackConsumeModeChangeEvent, + PlaybackRandomModeChangeEvent, + PlaybackRepeatModeChangeEvent, + PlaybackSingleModeChangeEvent, + PlaylistChangeEvent, + SeekChangeEvent, + VolumeChangeEvent, +) +from platypush.plugins.media import PlayerState + +from ._common import DEFAULT_TIMEOUT +from ._conf import MopidyConfig +from ._status import MopidyStatus +from ._sync import PlaylistSync +from ._task import MopidyTask +from ._track import MopidyTrack + + +class MopidyClient(Thread): + """ + Thread that listens for Mopidy events and posts them to the bus. + """ + + def __init__( + self, + config: MopidyConfig, + status: MopidyStatus, + stop_event: Event, + playlist_sync: PlaylistSync, + tasks: Dict[int, MopidyTask], + **_, + ): + super().__init__(name='platypush:mopidy:listener') + + self.logger = logging.getLogger('platypush:mopidy:listener') + self.config = config + self._status = status + self._stop_event = stop_event + self._playlist_sync = playlist_sync + self._tasks = tasks + self._refresh_in_progress = Event() + self._refresh_lock = RLock() + self._req_lock = RLock() + self._close_lock = RLock() + self._tracks: List[MopidyTrack] = [] + self._msg_id = 0 + self._ws = None + self.connected_event = Event() + self.closed_event = Event() + + @property + def _bus(self): + return get_bus() + + @property + def status(self): + return self._status + + @property + def tracks(self): + return self._tracks + + def should_stop(self): + return self._stop_event.is_set() + + def wait_stop(self, timeout: Optional[float] = None): + self._stop_event.wait(timeout=timeout) + + def make_task(self, method: str, **args: dict) -> MopidyTask: + with self._req_lock: + self._msg_id += 1 + task = MopidyTask( + id=self._msg_id, + method=method, + args=args or {}, + ) + + self._tasks[task.id] = task + return task + + def send(self, *tasks: MopidyTask): + """ + Send a list of tasks to the Mopidy server. + """ + assert self._ws, 'Websocket not connected' + + for task in tasks: + with self._req_lock: + task.send(self._ws) + + def gather( + self, + *tasks: MopidyTask, + timeout: Optional[float] = DEFAULT_TIMEOUT, + ) -> Generator: + t_start = time.time() + + for task in tasks: + remaining_timeout = ( + max(0, timeout - (time.time() - t_start)) if timeout else None + ) + + if not self._tasks.get(task.id): + yield None + + try: + ret = self._tasks[task.id].get_response(timeout=remaining_timeout) + assert not isinstance(ret, Exception), ret + self.logger.debug('Got response for %s: %s', task, ret) + yield ret + except Empty as e: + t = self._tasks.get(task.id) + err = 'Mopidy request timeout' + if t: + err += f' - method: {t.method} args: {t.args}' + + raise TimeoutError(err) from e + finally: + self._tasks.pop(task.id, None) + + def exec(self, *msgs: dict, timeout: Optional[float] = DEFAULT_TIMEOUT) -> list: + tasks = [self.make_task(**msg) for msg in msgs] + for task in tasks: + self.send(task) + + return list(self.gather(*tasks, timeout=timeout)) + + def refresh_status( # pylint: disable=too-many-branches + self, timeout: Optional[float] = DEFAULT_TIMEOUT, with_tracks: bool = False + ): + if self._refresh_in_progress.is_set(): + return + + events = [] + + try: + with self._refresh_lock: + self._refresh_in_progress.set() + # Refresh the tracklist attributes + opts = ('repeat', 'random', 'single', 'consume') + ret = self.exec( + *[ + *[{'method': f'core.tracklist.get_{opt}'} for opt in opts], + {'method': 'core.playback.get_current_tl_track'}, + {'method': 'core.playback.get_state'}, + {'method': 'core.mixer.get_volume'}, + {'method': 'core.playback.get_time_position'}, + *( + [{'method': 'core.tracklist.get_tl_tracks'}] + if with_tracks + else [] + ), + ], + timeout=timeout, + ) + + for i, opt in enumerate(opts): + new_value = ret[i] + if opt == 'random' and self._status.random != new_value: + events.append( + (PlaybackRandomModeChangeEvent, {'state': new_value}) + ) + if opt == 'repeat' and self._status.repeat != new_value: + events.append( + (PlaybackRepeatModeChangeEvent, {'state': new_value}) + ) + if opt == 'single' and self._status.single != new_value: + events.append( + (PlaybackSingleModeChangeEvent, {'state': new_value}) + ) + if opt == 'consume' and self._status.consume != new_value: + events.append( + (PlaybackConsumeModeChangeEvent, {'state': new_value}) + ) + + setattr(self._status, opt, new_value) + + # Get remaining info + track = MopidyTrack.parse(ret[4]) + state, volume, t = ret[5:8] + + if track: + idx = self.exec( + { + 'method': 'core.tracklist.index', + 'tlid': track.track_id, + }, + timeout=timeout, + )[0] + + self._status.track = track + self._status.duration = track.time + if idx is not None: + self._status.playing_pos = self._status.track.playlist_pos = idx + + if track != self._status.track and state != 'stopped': + events.append((NewPlayingTrackEvent, {})) + + if state != self._status.state: + if state == 'paused': + self._status.state = PlayerState.PAUSE + events.append((MusicPauseEvent, {})) + elif state == 'playing': + self._status.state = PlayerState.PLAY + events.append((MusicPlayEvent, {})) + elif state == 'stopped': + self._status.state = PlayerState.STOP + events.append((MusicStopEvent, {})) + + if volume != self._status.volume: + self._status.volume = volume + events.append((VolumeChangeEvent, {'volume': volume})) + + if t != self._status.time: + self._status.time = t / 1000 + events.append((SeekChangeEvent, {'position': self._status.time})) + + if with_tracks: + self._tracks = [ # type: ignore + MopidyTrack.parse({**t, 'playlist_pos': i}) + for i, t in enumerate(ret[8]) + ] + + for evt in events: + self._post_event(evt[0], **evt[1]) + finally: + self._refresh_in_progress.clear() + + def _refresh_status( + self, timeout: Optional[float] = DEFAULT_TIMEOUT, with_tracks: bool = False + ): + """ + Refresh the status from the Mopidy server. + + It runs in a separate thread because the status refresh logic runs in + synchronous mode, and it would block the main thread preventing the + listener from receiving new messages. + + Also, an event+reenrant lock mechanism is used to ensure that only one + refresh task is running at a time. + """ + if self._refresh_in_progress.is_set(): + return + + with self._refresh_lock: + Thread( + target=self.refresh_status, + kwargs={'timeout': timeout, 'with_tracks': with_tracks}, + daemon=True, + ).start() + + def _post_event(self, evt_cls: Type[MusicEvent], **kwargs): + self._bus.post( + evt_cls( + status=asdict(self._status), + track=asdict(self._status.track) if self._status.track else None, + plugin_name='music.mopidy', + **kwargs, + ) + ) + + def _handle_error(self, msg: dict): + msg_id = msg.get('id') + err = msg.get('error') + if not err: + return + + err_data = err.get('data', {}) + tb = err_data.get('traceback') + self.logger.warning( + 'Mopidy error: %s: %s: %s', + err.get('message'), + err_data.get('type'), + err_data.get('message'), + ) + if tb: + self.logger.warning(tb) + + if msg_id: + task = self._tasks.get(msg_id) + if task: + task.put_response( + RuntimeError(err.get('message') + ': ' + err_data.get('message')) + ) + + def on_pause(self, *_, **__): + self._status.state = PlayerState.PAUSE + self._post_event(MusicPauseEvent) + + def on_resume(self, *_, **__): + self._status.state = PlayerState.PLAY + self._post_event(MusicPlayEvent) + + def on_start(self, *_, **__): + self._refresh_status() + + def on_end(self, *_, **__): + self._refresh_status() + + def on_state_change(self, msg: dict, *_, **__): + state = msg.get('new_state') + if state == PlayerState.PLAY: + self._status.state = PlayerState.PLAY + self._post_event(MusicPlayEvent) + elif state == PlayerState.PAUSE: + self._status.state = PlayerState.PAUSE + self._post_event(MusicPauseEvent) + elif state == PlayerState.STOP: + self._status.state = PlayerState.STOP + self._post_event(MusicStopEvent) + + def on_title_change(self, msg: dict, *_, track: MopidyTrack, **__): + title = msg.get('title', '') + m = re.match(r'^\s*(.+?)\s+-\s+(.*)\s*$', title) + if not m: + return + + track.artist = m.group(1) + track.title = m.group(2) + self._post_event(NewPlayingTrackEvent) + + def on_volume_change(self, msg: dict, *_, **__): + volume = msg.get('volume') + if volume is None: + return + + self._status.volume = volume + self._post_event(VolumeChangeEvent, volume=volume) + + def on_mute_change(self, msg: dict, *_, **__): + mute = msg.get('mute') + if mute is None: + return + + self._status.mute = mute + self._post_event(MuteChangeEvent, mute=mute) + + def on_seek(self, msg: dict, *_, **__): + position = msg.get('time_position') + if position is None: + return + + self._status.time = position / 1000 + self._post_event(SeekChangeEvent, position=self._status.time) + + def on_tracklist_change(self, *_, **__): + should_proceed = self._playlist_sync.wait_for_loading(timeout=2) + if not should_proceed: + return + + self.logger.debug('Tracklist changed, refreshing changes') + self._refresh_status(with_tracks=True) + self._post_event(PlaylistChangeEvent) + + def on_options_change(self, *_, **__): + self._refresh_status() + + def _on_msg(self, *args): + msg = args[1] if len(args) > 1 else args[0] + msg = json.loads(msg) + msg_id = msg.get('id') + event = msg.get('event') + track: Optional[MopidyTrack] = None + self.logger.debug('Received Mopidy message: %s', msg) + + if msg.get('error'): + self._handle_error(msg) + return + + if msg_id: + task = self._tasks.get(msg_id) + if task: + task.put_response(msg) + return + + if not event: + return + + if msg.get('tl_track'): + track = self._status.track = MopidyTrack.parse(msg['tl_track']) + + hndl = self._msg_handlers.get(event) + if not hndl: + return + + hndl(self, msg, track=track) + + def _on_error(self, *args): + error = args[1] if len(args) > 1 else args[0] + ws = args[0] if len(args) > 1 else None + self.logger.warning('Mopidy websocket error: %s', error) + if ws: + ws.close() + + def _on_close(self, *_): + self.connected_event.clear() + self.closed_event.set() + + if self._ws: + try: + self._ws.close() + except Exception as e: + self.logger.debug(e, exc_info=True) + finally: + self._ws = None + + self.logger.warning('Mopidy websocket connection closed') + + def _on_open(self, *_): + self.connected_event.set() + self.closed_event.clear() + self.logger.info('Mopidy websocket connected') + self._refresh_status(with_tracks=True) + + def _connect(self): + if not self._ws: + self._ws = websocket.WebSocketApp( + self.config.url, + on_open=self._on_open, + on_message=self._on_msg, + on_error=self._on_error, + on_close=self._on_close, + ) + + self._ws.run_forever() + + def run(self): + while not self.should_stop(): + try: + self._connect() + except Exception as e: + self.logger.warning( + 'Error on websocket connection: %s', e, exc_info=True + ) + finally: + self.connected_event.clear() + self.closed_event.set() + self.wait_stop(10) + + def stop(self): + with self._close_lock: + if self._ws: + self._ws.close() + self._ws = None + + def __enter__(self): + return self + + def __exit__(self, *_): + self.stop() + + _msg_handlers = { + 'track_playback_paused': on_pause, + 'playback_state_changed': on_state_change, + 'track_playback_resumed': on_resume, + 'track_playback_ended': on_end, + 'track_playback_started': on_start, + 'stream_title_changed': on_title_change, + 'volume_changed': on_volume_change, + 'mute_changed': on_mute_change, + 'seeked': on_seek, + 'tracklist_changed': on_tracklist_change, + 'options_changed': on_options_change, + } + + +# vim:sw=4:ts=4:et: diff --git a/platypush/plugins/music/mopidy/_common.py b/platypush/plugins/music/mopidy/_common.py new file mode 100644 index 0000000000..1be036613a --- /dev/null +++ b/platypush/plugins/music/mopidy/_common.py @@ -0,0 +1,4 @@ +from typing import Final + + +DEFAULT_TIMEOUT: Final[float] = 20 diff --git a/platypush/plugins/music/mopidy/_conf.py b/platypush/plugins/music/mopidy/_conf.py new file mode 100644 index 0000000000..cd745ce258 --- /dev/null +++ b/platypush/plugins/music/mopidy/_conf.py @@ -0,0 +1,23 @@ +from dataclasses import dataclass +from typing import Optional + +from ._common import DEFAULT_TIMEOUT + + +@dataclass +class MopidyConfig: + """ + Mopidy configuration. + """ + + host: str = 'localhost' + port: int = 6680 + ssl: bool = False + timeout: Optional[float] = DEFAULT_TIMEOUT + + @property + def url(self) -> str: + return f'ws{"s" if self.ssl else ""}://{self.host}:{self.port}/mopidy/ws' + + +# vim:sw=4:ts=4:et: diff --git a/platypush/plugins/music/mopidy/_exc.py b/platypush/plugins/music/mopidy/_exc.py new file mode 100644 index 0000000000..41c6b99fc9 --- /dev/null +++ b/platypush/plugins/music/mopidy/_exc.py @@ -0,0 +1,10 @@ +class MopidyException(Exception): + """ + Base class for all Mopidy exceptions. + """ + + +class EmptyTrackException(MopidyException, ValueError): + """ + Raised when a parsed track is empty. + """ diff --git a/platypush/plugins/music/mopidy/_playlist.py b/platypush/plugins/music/mopidy/_playlist.py new file mode 100644 index 0000000000..141b5bc563 --- /dev/null +++ b/platypush/plugins/music/mopidy/_playlist.py @@ -0,0 +1,33 @@ +from dataclasses import dataclass, field +from datetime import datetime +from typing import List, Optional + +from platypush.schemas.mopidy import MopidyPlaylistSchema + +from ._track import MopidyTrack + + +@dataclass +class MopidyPlaylist: + """ + Model for a Mopidy playlist. + """ + + uri: str + name: str + last_modified: Optional[datetime] = None + tracks: List[MopidyTrack] = field(default_factory=list) + type: str = "playlist" + + @classmethod + def parse(cls, playlist: dict) -> "MopidyPlaylist": + """ + Parse a Mopidy playlist from a dictionary received from the Mopidy API. + """ + return cls(**MopidyPlaylistSchema().load(playlist)) # type: ignore + + def to_dict(self) -> dict: + """ + Convert the Mopidy playlist to a dictionary. + """ + return dict(MopidyPlaylistSchema().dump(self)) diff --git a/platypush/plugins/music/mopidy/_status.py b/platypush/plugins/music/mopidy/_status.py new file mode 100644 index 0000000000..6fa6f6b73a --- /dev/null +++ b/platypush/plugins/music/mopidy/_status.py @@ -0,0 +1,47 @@ +from dataclasses import asdict, dataclass +from typing import Optional + +from platypush.plugins.media import PlayerState +from platypush.schemas.mopidy import MopidyStatusSchema + +from ._track import MopidyTrack + + +@dataclass +class MopidyStatus: + """ + A dataclass to hold the status of the Mopidy client. + """ + + state: PlayerState = PlayerState.STOP + volume: float = 0 + consume: bool = False + random: bool = False + repeat: bool = False + single: bool = False + mute: bool = False + time: Optional[float] = None + duration: Optional[float] = None + playing_pos: Optional[int] = None + track: Optional[MopidyTrack] = None + + def copy(self): + return MopidyStatus( + state=self.state, + volume=self.volume, + consume=self.consume, + random=self.random, + repeat=self.repeat, + single=self.single, + mute=self.mute, + time=self.time, + duration=self.duration, + playing_pos=self.playing_pos, + track=MopidyTrack(**asdict(self.track)) if self.track else None, + ) + + def to_dict(self): + """ + Convert the Mopidy status to a dictionary. + """ + return dict(MopidyStatusSchema().dump(self)) diff --git a/platypush/plugins/music/mopidy/_sync.py b/platypush/plugins/music/mopidy/_sync.py new file mode 100644 index 0000000000..94727344c1 --- /dev/null +++ b/platypush/plugins/music/mopidy/_sync.py @@ -0,0 +1,50 @@ +from dataclasses import dataclass, field +from threading import Event, RLock +from typing import Optional + + +@dataclass +class PlaylistSync: + """ + Object used to synchronize playlist load/change events between threads. + """ + + _loading_lock: RLock = field(default_factory=RLock) + _loading: Event = field(default_factory=Event) + _loaded: Event = field(default_factory=Event) + + def wait_for_loading(self, timeout: Optional[float] = None): + """ + Wait for the playlist to be loaded. + + :param timeout: The maximum time to wait for the playlist to be loaded. + """ + # If the loading event is not set, no playlist change - we can proceed + # with notifying the event. + if not self._loading.is_set(): + return True + + # Wait for the full playlist to be loaded. + return self._loaded.wait(timeout) + + def __enter__(self): + """ + Called when entering a context manager to handle a playlist loading + session. + """ + self._loading_lock.acquire() + self._loading.set() + self._loaded.clear() + + def __exit__(self, *_): + """ + Called when exiting a context manager to handle a playlist loading + session. + """ + self._loading.clear() + self._loaded.set() + + try: + self._loading_lock.release() + except RuntimeError: + pass diff --git a/platypush/plugins/music/mopidy/_task.py b/platypush/plugins/music/mopidy/_task.py new file mode 100644 index 0000000000..0ed96ab303 --- /dev/null +++ b/platypush/plugins/music/mopidy/_task.py @@ -0,0 +1,58 @@ +import json +from dataclasses import dataclass, field +from queue import Queue +from threading import Event +from typing import Any, Optional, Union + +from websocket import WebSocketApp + +from ._common import DEFAULT_TIMEOUT + + +@dataclass +class MopidyTask: + """ + A task to be executed by the Mopidy client. + """ + + id: int + method: str + args: dict = field(default_factory=dict) + response: Optional[Any] = None + response_ready: Event = field(default_factory=Event) + response_queue: Queue = field(default_factory=Queue) + + def to_dict(self): + return { + "jsonrpc": "2.0", + "id": self.id, + "method": self.method, + 'params': self.args, + } + + def __str__(self): + return json.dumps(self.to_dict()) + + def send(self, ws: WebSocketApp): + assert ws, "Websocket connection not established" + self.response_ready.clear() + ws.send(str(self)) + + def get_response(self, timeout: Optional[float] = DEFAULT_TIMEOUT) -> Any: + ret = self.response_queue.get(timeout=timeout) + if isinstance(ret, dict): + ret = ret.get('result') + + return ret + + def put_response(self, response: Union[dict, Exception]): + self.response = response + self.response_ready.set() + self.response_queue.put_nowait(response) + + def wait(self, timeout: Optional[float] = DEFAULT_TIMEOUT) -> bool: + return self.response_ready.wait(timeout=timeout) + + def run(self, ws: WebSocketApp, timeout: Optional[float] = DEFAULT_TIMEOUT): + self.send(ws) + return self.get_response(timeout=timeout) diff --git a/platypush/plugins/music/mopidy/_track.py b/platypush/plugins/music/mopidy/_track.py new file mode 100644 index 0000000000..c359f2baf3 --- /dev/null +++ b/platypush/plugins/music/mopidy/_track.py @@ -0,0 +1,43 @@ +from dataclasses import dataclass +from typing import Optional + +from platypush.schemas.mopidy import MopidyTrackSchema + +from ._exc import EmptyTrackException + + +@dataclass +class MopidyTrack: + """ + Model for a Mopidy track. + """ + + uri: str + artist: Optional[str] = None + title: Optional[str] = None + album: Optional[str] = None + artist_uri: Optional[str] = None + album_uri: Optional[str] = None + time: Optional[float] = None + playlist_pos: Optional[int] = None + track_id: Optional[int] = None + track_no: Optional[int] = None + date: Optional[str] = None + genre: Optional[str] = None + type: str = 'track' + + @classmethod + def parse(cls, track: dict) -> Optional["MopidyTrack"]: + """ + Parse a Mopidy track from a dictionary received from the Mopidy API. + """ + try: + return cls(**MopidyTrackSchema().load(track)) # type: ignore + except EmptyTrackException: + return None + + def to_dict(self) -> dict: + """ + Convert the Mopidy track to a dictionary. + """ + return dict(MopidyTrackSchema().dump(self)) diff --git a/platypush/backend/music/mopidy/manifest.yaml b/platypush/plugins/music/mopidy/manifest.yaml similarity index 92% rename from platypush/backend/music/mopidy/manifest.yaml rename to platypush/plugins/music/mopidy/manifest.yaml index c34a18da91..4166f184d9 100644 --- a/platypush/backend/music/mopidy/manifest.yaml +++ b/platypush/plugins/music/mopidy/manifest.yaml @@ -13,5 +13,5 @@ manifest: platypush.message.event.music.VolumeChangeEvent: if the main volume has changed install: pip: [] - package: platypush.backend.music.mopidy - type: backend + package: platypush.plugins.music.mopidy + type: plugin diff --git a/platypush/plugins/music/mpd/__init__.py b/platypush/plugins/music/mpd/__init__.py index 717e302368..d74e46e336 100644 --- a/platypush/plugins/music/mpd/__init__.py +++ b/platypush/plugins/music/mpd/__init__.py @@ -21,6 +21,18 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): the original protocol and with support for multiple music sources through plugins (e.g. Spotify, TuneIn, Soundcloud, local files etc.). + .. note:: If you use Mopidy, and unless you have quite specific use-cases + (like you don't want to expose the Mopidy HTTP interface, or you have + some legacy automation that uses the MPD interface), you should use the + :class:`platypush.plugins.music.mopidy.MusicMopidyPlugin` plugin instead + of this. The Mopidy plugin provides a more complete and feature-rich + experience, as not all the features of Mopidy are available through the + MPD interface, and its API is 100% compatible with this plugin. Also, + this plugin operates a synchronous/polling logic because of the + limitations of the MPD protocol, while the Mopidy plugin, as it uses the + Mopidy Websocket API, can operate in a more efficient way and provide + real-time updates. + .. note:: As of Mopidy 3.0 MPD is an optional interface provided by the ``mopidy-mpd`` extension. Make sure that you have the extension installed and enabled on your instance to use this plugin if you want to @@ -645,11 +657,12 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): self._exec('rename', playlist, new_name) @action - def lsinfo(self, uri: Optional[str] = None): - """ - Returns the list of playlists and directories on the server. + def browse(self, uri: Optional[str] = None): """ + Browse the items under the specified URI. + :param uri: URI to browse (default: root directory). + """ return ( self._exec('lsinfo', uri, return_status=False) if uri diff --git a/platypush/schemas/mopidy.py b/platypush/schemas/mopidy.py new file mode 100644 index 0000000000..1c2172680d --- /dev/null +++ b/platypush/schemas/mopidy.py @@ -0,0 +1,325 @@ +from marshmallow import EXCLUDE, fields, post_dump, post_load, pre_dump, pre_load +from marshmallow.schema import Schema + +from platypush.plugins.media import PlayerState +from platypush.schemas import DateTime + + +class MopidyTrackSchema(Schema): + """ + Mopidy track schema. + """ + + uri = fields.String(required=True, metadata={"description": "Track URI"}) + file = fields.String( + metadata={"description": "Track URI, for MPD compatibility purposes"} + ) + artist = fields.String(missing=None, metadata={"description": "Artist name"}) + title = fields.String(missing=None, metadata={"description": "Track title"}) + album = fields.String(missing=None, metadata={"description": "Album name"}) + artist_uri = fields.String( + missing=None, metadata={"description": "Artist URI (if available)"} + ) + album_uri = fields.String( + missing=None, metadata={"description": "Album URI (if available)"} + ) + time = fields.Float( + missing=None, metadata={"description": "Track length (in seconds)"} + ) + playlist_pos = fields.Integer( + missing=None, + metadata={"description": "Track position in the tracklist/playlist"}, + ) + track_id = fields.Integer( + missing=None, metadata={"description": "Track ID in the current tracklist"} + ) + track_no = fields.Integer( + missing=None, metadata={"description": "Track number in the album"} + ) + date = fields.String(missing=None, metadata={"description": "Track release date"}) + genre = fields.String(missing=None, metadata={"description": "Track genre"}) + type = fields.Constant("track", metadata={"description": "Item type"}) + + @pre_load + def parse(self, track: dict, **_): + from platypush.plugins.music.mopidy import EmptyTrackException + + uri = (track or {}).get("uri", (track or {}).get("track", {}).get("uri")) + if not uri: + raise EmptyTrackException("Empty track") + + tlid = track.get("tlid") + playlist_pos = track.get("playlist_pos") + if track.get("track"): + track = track.get("track", {}) + + length = track.get("length", track.get("time", track.get("duration"))) + return { + "uri": uri, + "artist": next( + iter(item.get("name") for item in track.get("artists", [])), + None, + ), + "title": track.get("name"), + "album": track.get("album", {}).get("name"), + "artist_uri": next( + iter(item.get("uri") for item in track.get("artists", [])), None + ), + "album_uri": track.get("album", {}).get("uri"), + "time": length / 1000 if length is not None else None, + "playlist_pos": ( + track.get("playlist_pos") if playlist_pos is None else playlist_pos + ), + "date": track.get("date", track.get("album", {}).get("date")), + "track_id": tlid, + "track_no": track.get("track_no"), + "genre": track.get("genre"), + } + + @post_dump + def to_dict(self, track: dict, **_): + """ + Fill/move missing fields in the dictionary. + """ + return { + "file": track["uri"], + **track, + } + + +class MopidyStatusSchema(Schema): + """ + Mopidy status schema. + """ + + state = fields.Enum( + PlayerState, + required=True, + metadata={"description": "Player state"}, + ) + volume = fields.Float(metadata={"description": "Player volume (0-100)"}) + consume = fields.Boolean(metadata={"description": "Consume mode"}) + random = fields.Boolean(metadata={"description": "Random mode"}) + repeat = fields.Boolean(metadata={"description": "Repeat mode"}) + single = fields.Boolean(metadata={"description": "Single mode"}) + mute = fields.Boolean(metadata={"description": "Mute mode"}) + time = fields.Float(metadata={"description": "Current time (in seconds)"}) + playing_pos = fields.Integer( + metadata={"description": "Index of the currently playing track"} + ) + track = fields.Nested( + MopidyTrackSchema, missing=None, metadata={"description": "Current track"} + ) + + @post_dump + def post_dump(self, data: dict, **_): + """ + Post-dump hook. + """ + state = data.get("state") + if state: + data["state"] = getattr(PlayerState, state).value + return data + + +class MopidyPlaylistSchema(Schema): + """ + Mopidy playlist schema. + """ + + # pylint: disable=too-few-public-methods + class Meta: # type: ignore + """ + Mopidy playlist schema metadata. + """ + + unknown = EXCLUDE + + uri = fields.String(required=True, metadata={"description": "Playlist URI"}) + name = fields.String(required=True, metadata={"description": "Playlist name"}) + last_modified = DateTime(metadata={"description": "Last modified timestamp"}) + tracks = fields.List( + fields.Nested(MopidyTrackSchema), + missing=None, + metadata={"description": "Playlist tracks"}, + ) + type = fields.Constant("playlist", metadata={"description": "Item type"}) + + @pre_dump + def pre_dump(self, playlist, **_): + """ + Pre-dump hook. + """ + last_modified = ( + playlist.last_modified + if hasattr(playlist, "last_modified") + else playlist.get("last_modified") + ) + + if last_modified: + last_modified /= 1000 + if hasattr(playlist, "last_modified"): + playlist.last_modified = last_modified + else: + playlist["last_modified"] = last_modified + + return playlist + + +class MopidyArtistSchema(Schema): + """ + Mopidy artist schema. + """ + + uri = fields.String(required=True, metadata={"description": "Artist URI"}) + file = fields.String( + metadata={"description": "Artist URI, for MPD compatibility purposes"} + ) + name = fields.String(missing=None, metadata={"description": "Artist name"}) + artist = fields.String( + missing=None, + metadata={"description": "Same as name - for MPD compatibility purposes"}, + ) + type = fields.Constant("artist", metadata={"description": "Item type"}) + + @post_dump + def to_dict(self, artist: dict, **_): + """ + Fill/move missing fields in the dictionary. + """ + return { + "file": artist["uri"], + "artist": artist["name"], + **artist, + } + + +class MopidyAlbumSchema(Schema): + """ + Mopidy album schema. + """ + + uri = fields.String(required=True, metadata={"description": "Album URI"}) + file = fields.String( + metadata={"description": "Artist URI, for MPD compatibility purposes"} + ) + artist = fields.String(missing=None, metadata={"description": "Artist name"}) + album = fields.String( + missing=None, + metadata={"description": "Same as name - for MPD compatibility purposes"}, + ) + name = fields.String(missing=None, metadata={"description": "Album name"}) + artist_uri = fields.String(missing=None, metadata={"description": "Artist URI"}) + date = fields.String(missing=None, metadata={"description": "Album release date"}) + genre = fields.String(missing=None, metadata={"description": "Album genre"}) + + def parse(self, data: dict, **_): + assert data.get("uri"), "Album URI is required" + return { + "uri": data["uri"], + "artist": data.get("artist") + or next( + iter(item.get("name") for item in data.get("artists", [])), + None, + ), + "name": data.get("name"), + "artist_uri": data.get("artist_uri") + or next(iter(item.get("uri") for item in data.get("artists", [])), None), + "album_uri": data.get("album_uri") or data.get("album", {}).get("uri"), + "date": data.get("date", data.get("album", {}).get("date")), + "genre": data.get("genre"), + } + + @pre_load + def pre_load(self, album: dict, **_): + """ + Pre-load hook. + """ + return self.parse(album) + + @pre_dump + def pre_dump(self, album: dict, **_): + """ + Pre-dump hook. + """ + return self.parse(album) + + @post_dump + def to_dict(self, album: dict, **_): + """ + Fill/move missing fields in the dictionary. + """ + return { + "file": album["uri"], + "album": album["name"], + **album, + } + + +class MopidyDirectorySchema(Schema): + """ + Mopidy directory schema. + """ + + uri = fields.String(required=True, metadata={"description": "Directory URI"}) + name = fields.String(required=True, metadata={"description": "Directory name"}) + type = fields.Constant("directory", metadata={"description": "Item type"}) + + +class MopidyFilterSchema(Schema): + """ + Mopidy filter schema. + """ + + uris = fields.List(fields.String, metadata={"description": "Filter by URIs"}) + artist = fields.List(fields.String, metadata={"description": "Artist name(s)"}) + album = fields.List(fields.String, metadata={"description": "Album name(s)"}) + title = fields.List(fields.String, metadata={"description": "Track title(s)"}) + albumartist = fields.List( + fields.String, metadata={"description": "Album artist name(s)"} + ) + date = fields.List(fields.String, metadata={"description": "Track release date(s)"}) + genre = fields.List(fields.String, metadata={"description": "Genre(s)"}) + comment = fields.List(fields.String, metadata={"description": "Comment(s)"}) + disc_no = fields.List(fields.Integer, metadata={"description": "Disc number(s)"}) + musicbrainz_artistid = fields.List( + fields.String, metadata={"description": "MusicBrainz artist ID(s)"} + ) + musicbrainz_albumid = fields.List( + fields.String, metadata={"description": "MusicBrainz album ID(s)"} + ) + musicbrainz_trackid = fields.List( + fields.String, metadata={"description": "MusicBrainz album artist ID(s)"} + ) + any = fields.List( + fields.String, metadata={"description": "Generic search string(s)"} + ) + + @pre_load + def pre_load(self, data: dict, **_): + """ + Pre-load hook. + """ + for field_name, field in self.fields.items(): + value = data.get(field_name) + + # Back-compatibtility with MPD's single-value filters + if ( + value is not None + and isinstance(field, fields.List) + and isinstance(value, str) + ): + data[field_name] = [value] + + return data + + @post_load + def post_load(self, data: dict, **_): + """ + Post-load hook. + """ + title = data.pop("title", None) + if title: + data["track_name"] = title + + return data diff --git a/platypush/utils/threads.py b/platypush/utils/threads.py index df64a3b96f..b48b32b487 100644 --- a/platypush/utils/threads.py +++ b/platypush/utils/threads.py @@ -35,8 +35,11 @@ def OrEvent(*events, cls: Type = threading.Event): e.changed() def _or_set(e): - e._set() - e.changed() + try: + e._set() + e.changed() + except RecursionError: + pass for e in events: _to_or(e, changed) From 53468331526e94d537249ccd020b93b69997c32d Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Wed, 3 Apr 2024 22:44:29 +0200 Subject: [PATCH 11/80] [WIP] API adaptations for `music.mpd` --- platypush/plugins/music/mopidy/__init__.py | 9 ++ platypush/plugins/music/mpd/__init__.py | 128 +++++++++++++++++---- 2 files changed, 116 insertions(+), 21 deletions(-) diff --git a/platypush/plugins/music/mopidy/__init__.py b/platypush/plugins/music/mopidy/__init__.py index e5c2bd8524..97744b636a 100644 --- a/platypush/plugins/music/mopidy/__init__.py +++ b/platypush/plugins/music/mopidy/__init__.py @@ -333,6 +333,15 @@ class MusicMopidyPlugin(RunnablePlugin): :return: .. schema:: mopidy.MopidyStatusSchema """ + # Note: stop could be interpreted both as "stop the playback" and "stop + # the plugin". If the stop event is set, we assume that the user wants + # to stop the plugin. + if self.should_stop(): + if self._client: + self._client.stop() + + return None + return self._exec_with_status({'method': 'core.playback.stop'}) @action diff --git a/platypush/plugins/music/mpd/__init__.py b/platypush/plugins/music/mpd/__init__.py index d74e46e336..8acb40608c 100644 --- a/platypush/plugins/music/mpd/__init__.py +++ b/platypush/plugins/music/mpd/__init__.py @@ -116,6 +116,33 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): return None, error + @staticmethod + def _dump_directory(item: dict): + item['type'] = 'directory' + item['uri'] = item['name'] = item['directory'] + return item + + @staticmethod + def _dump_playlist(item: dict): + item['type'] = 'playlist' + item['uri'] = item['name'] = item['playlist'] + item['last_modified'] = item.pop('last-modified', None) + return item + + @staticmethod + def _dump_track(item: dict, pos: Optional[int] = None): + item['type'] = 'track' + item['uri'] = item['file'] + for attr in ('time', 'track', 'disc'): + item[attr] = int(item[attr]) if item.get(attr) is not None else None + + if 'pos' in item: + item['playlist_pos'] = int(item.pop('pos')) + elif pos is not None: + item['playlist_pos'] = pos + + return item + @action def play(self, resource: Optional[str] = None, **__): """ @@ -169,6 +196,15 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): @action def stop(self, *_, **__): # type: ignore """Stop playback""" + # Note: stop could be interpreted both as "stop the playback" and "stop + # the plugin". If the stop event is set, we assume that the user wants + # to stop the plugin. + if self.should_stop(): + if self.client: + self.client.disconnect() + + return None + return self._exec('stop') @action @@ -344,17 +380,44 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): self._exec('rm', p) @action - def move(self, from_pos, to_pos): + def move( + self, + start: Optional[int] = None, + end: Optional[int] = None, + position: Optional[int] = None, + from_pos: Optional[int] = None, + to_pos: Optional[int] = None, + ): """ - Move the playlist item in position to position + Move the playlist items from the positions ``start`` to ``end`` to the + new position ``position``. - :param from_pos: Track current position - :type from_pos: int + You can pass either: - :param to_pos: Track new position - :type to_pos: int + - ``start``, ``end`` and ``position`` to move a slice of tracks + from ``start`` to ``end`` to the new position ``position``. + - ``from_pos`` and ``to_pos`` to move a single track from + ``from_pos`` to ``to_pos``. + + .. note: Positions are 0-based (i.e. the first track has position 0). + + :param start: Start position of the selection. + :param end: End position of the selection. + :param position: New position. + :param from_pos: Alias for ``start`` - it only works with one track at + the time. + :param to_pos: Alias for ``position`` - it only works with one track at + the time. """ - return self._exec('move', from_pos, to_pos) + assert (start is not None and end is not None and position is not None) or ( + from_pos is not None and to_pos is not None + ), 'Specify either (start, end, position) or (from_pos, to_pos)' + + if from_pos is not None and to_pos is not None: + return self._exec('move', from_pos, to_pos) + + chunk = start if start == end else f'{start}:{end}' + return self._exec('move', chunk, position) @classmethod def _parse_resource(cls, resource): @@ -546,7 +609,10 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): }, ] """ - return self._exec('playlistinfo', return_status=False) + return [ + self._dump_track(track, pos=i) # type: ignore + for i, track in enumerate(self._exec('playlistinfo', return_status=False)) + ] @action def get_playlists(self, *_, **__): @@ -558,11 +624,11 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): output = [ { "playlist": "Rock", - "last-modified": "2018-06-25T21:28:19Z" + "last_modified": "2018-06-25T21:28:19Z" }, { "playlist": "Jazz", - "last-modified": "2018-06-24T22:28:29Z" + "last_modified": "2018-06-24T22:28:29Z" }, { # ... @@ -573,22 +639,27 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): playlists: list = self._exec( # type: ignore 'listplaylists', return_status=False ) - return sorted(playlists, key=lambda p: p['playlist']) + + return sorted( + [self._dump_playlist(pl) for pl in playlists], key=lambda p: p['playlist'] + ) @action - def get_playlist(self, playlist: str, *_, with_tracks: bool = False, **__): + def get_playlist(self, playlist: str, *_, **__): """ - List the information (and, optionally, the items) for the specified playlist. + Get the tracks in a playlist. :param playlist: Name of the playlist - :param with_tracks: If True then the list of tracks in the playlist will - be returned as well (default: False). """ - return self._exec( - 'listplaylistinfo' if with_tracks else 'listplaylist', - playlist, - return_status=False, - ) + return [ + self._dump_track(track) # type: ignore + for track in self._exec( + 'listplaylistinfo', # if with_tracks else 'listplaylist', + playlist, + return_status=False, + ) + if track + ] @action def add_to_playlist( @@ -663,12 +734,27 @@ class MusicMpdPlugin(MusicPlugin, RunnablePlugin): :param uri: URI to browse (default: root directory). """ - return ( + resp: dict = ( # type: ignore self._exec('lsinfo', uri, return_status=False) if uri else self._exec('lsinfo', return_status=False) ) + ret = [] + for item in resp: + if item.get('directory'): + item = self._dump_directory(item) + elif item.get('playlist'): + item = self._dump_playlist(item) + elif item.get('file'): + item = self._dump_track(item) + else: + continue + + ret.append(item) + + return ret + @action def plchanges(self, version: int): """ From 58518a4d6372d6b1dbeb6425dd4a0d8fab22d68b Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Thu, 4 Apr 2024 00:51:39 +0200 Subject: [PATCH 12/80] Better timeout management on mopidy status refresh. --- platypush/plugins/music/mopidy/_client.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/platypush/plugins/music/mopidy/_client.py b/platypush/plugins/music/mopidy/_client.py index d27129ed13..580e5f333e 100644 --- a/platypush/plugins/music/mopidy/_client.py +++ b/platypush/plugins/music/mopidy/_client.py @@ -150,6 +150,12 @@ class MopidyClient(Thread): if self._refresh_in_progress.is_set(): return + # Unless we are also retrieving the tracks, we don't need a high timeout here. + # A high timeout may result in event lagging if some of the responses aren't received. + # In this case, better to timeout early and retry. + if not with_tracks: + timeout = 5 + events = [] try: From e2246c8d3040300376cf34412b9296cfe999f869 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Wed, 3 Apr 2024 23:02:09 +0000 Subject: [PATCH 13/80] [Automatic] Updated components cache --- platypush/components.json.gz | Bin 271542 -> 276569 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/platypush/components.json.gz b/platypush/components.json.gz index 55c563a1e903721433e7c05f604ca5f8a1732f28..184ed267fa512090e2d7d6592224fcb8a1f6754c 100644 GIT binary patch delta 270849 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

Ld+un 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�-w)ZnGRe6O++qchti5 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

=F$DDY|5kopMBKFmre(VG&Jn0(QA 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%0Ar>|c29EU^*7x9QzkC@xCW3Q}6d{RCk} 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


eRmxj7Gd!bai(pX)pPWr2kB)W%N%lq@j-1eC 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Μ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ɽzW#G+kli85{4 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�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

0sY54>*(;4n8m=?reU6F{O1v(?id{vkOv$c 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

0dPD+l^}S&Nf2hlfGKU!(<5kM>&7eG^az} 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%0Db|s#_g)6h+zUGDi;;2Xqzps3 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 P`H%kt{FsC*Bt9wt{cVB% From 5d9a201a5bf8e39e726ff9d91d6089fdd8533adf Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Thu, 4 Apr 2024 01:07:05 +0200 Subject: [PATCH 14/80] [#297] Mopidy/MPD refactor+migration, UI side. --- .../webapp/src/components/Media/Controls.vue | 77 ++- .../http/webapp/src/components/Media/View.vue | 27 +- .../webapp/src/components/Media/vars.scss | 11 + .../src/components/panels/Media/Header.vue | 2 +- .../src/components/panels/Media/Index.vue | 1 - .../src/components/panels/Media/Info.vue | 2 +- .../src/components/panels/Media/Item.vue | 10 +- .../components/panels/Media/MediaImage.vue | 2 +- .../src/components/panels/Media/Nav.vue | 2 +- .../src/components/panels/Media/Results.vue | 4 +- .../src/components/panels/Media/vars.scss | 9 - .../src/components/panels/Music/Common.vue | 487 ++++++++++++++++++ .../src/components/panels/Music/Index.vue | 47 +- .../src/components/panels/Music/Library.vue | 46 +- .../src/components/panels/Music/Playlist.vue | 138 +++-- .../src/components/panels/Music/Playlists.vue | 24 +- .../src/components/panels/Music/Search.vue | 30 +- .../src/components/panels/Music/track.scss | 12 +- .../components/panels/MusicMopidy/Index.vue | 11 + .../src/components/panels/MusicMpd/Index.vue | 340 +----------- .../src/components/widgets/Music/Index.vue | 439 ++++++++++------ .../http/webapp/src/mixins/Music/Status.vue | 66 +++ .../http/webapp/src/style/themes/light.scss | 1 + .../http/webapp/src/views/Dashboard.vue | 12 +- 24 files changed, 1209 insertions(+), 591 deletions(-) delete mode 100644 platypush/backend/http/webapp/src/components/panels/Media/vars.scss create mode 100644 platypush/backend/http/webapp/src/components/panels/Music/Common.vue create mode 100644 platypush/backend/http/webapp/src/components/panels/MusicMopidy/Index.vue create mode 100644 platypush/backend/http/webapp/src/mixins/Music/Status.vue diff --git a/platypush/backend/http/webapp/src/components/Media/Controls.vue b/platypush/backend/http/webapp/src/components/Media/Controls.vue index a42c86ce4c..c372370416 100644 --- a/platypush/backend/http/webapp/src/components/Media/Controls.vue +++ b/platypush/backend/http/webapp/src/components/Media/Controls.vue @@ -1,8 +1,10 @@ @@ -50,6 +62,11 @@ export default { type: Object, }, + image: { + type: String, + default: null, + }, + buttons: { type: Object, }, diff --git a/platypush/backend/http/webapp/src/components/Media/vars.scss b/platypush/backend/http/webapp/src/components/Media/vars.scss index a2d0e1cd6f..45cb8213bb 100644 --- a/platypush/backend/http/webapp/src/components/Media/vars.scss +++ b/platypush/backend/http/webapp/src/components/Media/vars.scss @@ -1 +1,12 @@ $media-ctrl-panel-height: 5.5em; +$media-header-height: 3.3em; +$media-nav-width: 2.8em; +$filter-header-height: 3em; +$default-media-img-bg: #d0dad8; +$default-media-img-fg: white; +$media-ctrl-ext-bg: radial-gradient(white, #e0e3d0a0); +$media-ctrl-ext-shadow: 0 0 1px 2px inset #c7c8c8; + +.fa-youtube { + color: #d21; +} diff --git a/platypush/backend/http/webapp/src/components/panels/Media/Header.vue b/platypush/backend/http/webapp/src/components/panels/Media/Header.vue index 39963f6f3b..a1c8ce28ed 100644 --- a/platypush/backend/http/webapp/src/components/panels/Media/Header.vue +++ b/platypush/backend/http/webapp/src/components/panels/Media/Header.vue @@ -146,7 +146,7 @@ export default { \n","import { render } from \"./Browser.vue?vue&type=template&id=0f0ae058&scoped=true\"\nimport script from \"./Browser.vue?vue&type=script&lang=js\"\nexport * from \"./Browser.vue?vue&type=script&lang=js\"\n\nimport \"./Browser.vue?vue&type=style&index=0&id=0f0ae058&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-0f0ae058\"]])\n\nexport default __exports__","\n\n\n\n\n","\n\n\n\n\n","import { render } from \"./Browser.vue?vue&type=template&id=6b56bca2&scoped=true\"\nimport script from \"./Browser.vue?vue&type=script&lang=js\"\nexport * from \"./Browser.vue?vue&type=script&lang=js\"\n\nimport \"./Browser.vue?vue&type=style&index=0&id=6b56bca2&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-6b56bca2\"]])\n\nexport default __exports__","\n\n\n\n\n","\n\n\n\n\n","\n\n\n","\n","import script from \"./Mixin.vue?vue&type=script&lang=js\"\nexport * from \"./Mixin.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { render } from \"./Chromecast.vue?vue&type=template&id=79fe2304\"\nimport script from \"./Chromecast.vue?vue&type=script&lang=js\"\nexport * from \"./Chromecast.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__","\n\n\n","import { render } from \"./Kodi.vue?vue&type=template&id=25a1a1cf\"\nimport script from \"./Kodi.vue?vue&type=script&lang=js\"\nexport * from \"./Kodi.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__","\n\n\n","import { render } from \"./Mplayer.vue?vue&type=template&id=0caf2d73\"\nimport script from \"./Mplayer.vue?vue&type=script&lang=js\"\nexport * from \"./Mplayer.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__","\n\n\n","import { render } from \"./Mpv.vue?vue&type=template&id=3b3bb533\"\nimport script from \"./Mpv.vue?vue&type=script&lang=js\"\nexport * from \"./Mpv.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__","\n\n\n","import { render } from \"./Omxplayer.vue?vue&type=template&id=0f086473\"\nimport script from \"./Omxplayer.vue?vue&type=script&lang=js\"\nexport * from \"./Omxplayer.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__","\n\n\n","import { render } from \"./Vlc.vue?vue&type=template&id=5b5bcdd3\"\nimport script from \"./Vlc.vue?vue&type=script&lang=js\"\nexport * from \"./Vlc.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__","import { render } from \"./Players.vue?vue&type=template&id=642cb651\"\nimport script from \"./Players.vue?vue&type=script&lang=js\"\nexport * from \"./Players.vue?vue&type=script&lang=js\"\n\nimport \"./Players.vue?vue&type=style&index=0&id=642cb651&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Header.vue?vue&type=template&id=39ee4bbe&scoped=true\"\nimport script from \"./Header.vue?vue&type=script&lang=js\"\nexport * from \"./Header.vue?vue&type=script&lang=js\"\n\nimport \"./Header.vue?vue&type=style&index=0&id=39ee4bbe&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-39ee4bbe\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Nav.vue?vue&type=template&id=b15d23b2&scoped=true\"\nimport script from \"./Nav.vue?vue&type=script&lang=js\"\nexport * from \"./Nav.vue?vue&type=script&lang=js\"\n\nimport \"./Nav.vue?vue&type=style&index=0&id=b15d23b2&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-b15d23b2\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Subtitles.vue?vue&type=template&id=77ae3705&scoped=true\"\nimport script from \"./Subtitles.vue?vue&type=script&lang=js\"\nexport * from \"./Subtitles.vue?vue&type=script&lang=js\"\n\nimport \"./Subtitles.vue?vue&type=style&index=0&id=77ae3705&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-77ae3705\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./UrlPlayer.vue?vue&type=template&id=6f90e487&scoped=true\"\nimport script from \"./UrlPlayer.vue?vue&type=script&lang=js\"\nexport * from \"./UrlPlayer.vue?vue&type=script&lang=js\"\n\nimport \"./UrlPlayer.vue?vue&type=style&index=0&id=6f90e487&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-6f90e487\"]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=877bb22c&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=877bb22c&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-877bb22c\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./MediaImage.vue?vue&type=template&id=0f1ba97a&scoped=true\"\nimport script from \"./MediaImage.vue?vue&type=script&lang=js\"\nexport * from \"./MediaImage.vue?vue&type=script&lang=js\"\n\nimport \"./MediaImage.vue?vue&type=style&index=0&id=0f1ba97a&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-0f1ba97a\"]])\n\nexport default __exports__","\n\n\n\n\n","\n\n\n\n\n","import { render } from \"./Info.vue?vue&type=template&id=91888714&scoped=true\"\nimport script from \"./Info.vue?vue&type=script&lang=js\"\nexport * from \"./Info.vue?vue&type=script&lang=js\"\n\nimport \"./Info.vue?vue&type=style&index=0&id=91888714&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-91888714\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Item.vue?vue&type=template&id=19442018&scoped=true\"\nimport script from \"./Item.vue?vue&type=script&lang=js\"\nexport * from \"./Item.vue?vue&type=script&lang=js\"\n\nimport \"./Item.vue?vue&type=style&index=0&id=19442018&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-19442018\"]])\n\nexport default __exports__","import { render } from \"./Results.vue?vue&type=template&id=7147de76&scoped=true\"\nimport script from \"./Results.vue?vue&type=script&lang=js\"\nexport * from \"./Results.vue?vue&type=script&lang=js\"\n\nimport \"./Results.vue?vue&type=style&index=0&id=7147de76&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-7147de76\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./View.vue?vue&type=template&id=7351a8a4&scoped=true\"\nimport script from \"./View.vue?vue&type=script&lang=js\"\nexport * from \"./View.vue?vue&type=script&lang=js\"\n\nimport \"./View.vue?vue&type=style&index=0&id=7351a8a4&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-7351a8a4\"]])\n\nexport default __exports__","var map = {\n\t\"./File\": [\n\t\t2892,\n\t\t9,\n\t\t2892\n\t],\n\t\"./File.vue\": [\n\t\t2892,\n\t\t9,\n\t\t2892\n\t],\n\t\"./Mixin\": [\n\t\t6640,\n\t\t9,\n\t\t6640\n\t],\n\t\"./Mixin.vue\": [\n\t\t6640,\n\t\t9,\n\t\t6640\n\t],\n\t\"./Nav\": [\n\t\t5578,\n\t\t9,\n\t\t3661,\n\t\t5578\n\t],\n\t\"./Nav.vue\": [\n\t\t5578,\n\t\t9,\n\t\t3661,\n\t\t5578\n\t],\n\t\"./YouTube\": [\n\t\t5931,\n\t\t9,\n\t\t2992,\n\t\t3671,\n\t\t5833,\n\t\t3390,\n\t\t3661,\n\t\t6579,\n\t\t4790,\n\t\t5059,\n\t\t5931\n\t],\n\t\"./YouTube.vue\": [\n\t\t5931,\n\t\t9,\n\t\t2992,\n\t\t3671,\n\t\t5833,\n\t\t3390,\n\t\t3661,\n\t\t6579,\n\t\t4790,\n\t\t5059,\n\t\t5931\n\t],\n\t\"./YouTube/Channel\": [\n\t\t7018,\n\t\t9,\n\t\t3671,\n\t\t5762\n\t],\n\t\"./YouTube/Channel.vue\": [\n\t\t7018,\n\t\t9,\n\t\t3671,\n\t\t5762\n\t],\n\t\"./YouTube/Feed\": [\n\t\t886,\n\t\t9,\n\t\t2992,\n\t\t5059,\n\t\t886\n\t],\n\t\"./YouTube/Feed.vue\": [\n\t\t886,\n\t\t9,\n\t\t2992,\n\t\t5059,\n\t\t886\n\t],\n\t\"./YouTube/Index\": [\n\t\t2200,\n\t\t9,\n\t\t2200\n\t],\n\t\"./YouTube/Index.vue\": [\n\t\t2200,\n\t\t9,\n\t\t2200\n\t],\n\t\"./YouTube/NoToken\": [\n\t\t9091,\n\t\t9,\n\t\t4790,\n\t\t9091\n\t],\n\t\"./YouTube/NoToken.vue\": [\n\t\t9091,\n\t\t9,\n\t\t4790,\n\t\t9091\n\t],\n\t\"./YouTube/Playlist\": [\n\t\t342,\n\t\t9,\n\t\t2992,\n\t\t5833,\n\t\t342\n\t],\n\t\"./YouTube/Playlist.vue\": [\n\t\t342,\n\t\t9,\n\t\t2992,\n\t\t5833,\n\t\t342\n\t],\n\t\"./YouTube/Playlists\": [\n\t\t7898,\n\t\t9,\n\t\t2992,\n\t\t5833,\n\t\t6579,\n\t\t7898\n\t],\n\t\"./YouTube/Playlists.vue\": [\n\t\t7898,\n\t\t9,\n\t\t2992,\n\t\t5833,\n\t\t6579,\n\t\t7898\n\t],\n\t\"./YouTube/Subscriptions\": [\n\t\t7425,\n\t\t9,\n\t\t2992,\n\t\t3671,\n\t\t3390,\n\t\t6123\n\t],\n\t\"./YouTube/Subscriptions.vue\": [\n\t\t7425,\n\t\t9,\n\t\t2992,\n\t\t3671,\n\t\t3390,\n\t\t6123\n\t],\n\t\"./meta\": [\n\t\t4569,\n\t\t3\n\t],\n\t\"./meta.json\": [\n\t\t4569,\n\t\t3\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(2).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, ids[1] | 16)\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 6809;\nmodule.exports = webpackAsyncContext;"],"names":["class","ref","_createElementVNode","_hoisted_6","_hoisted_9","_createElementBlock","_hoisted_1","$data","loading","_createBlock","_component_Loading","key","_hoisted_2","_Fragment","_renderList","$options","pathTokens","token","i","onClick","$event","path","slice","join","_hoisted_4","_toDisplayString","length","_hoisted_5","_hoisted_7","_hoisted_8","$props","hasBack","_cache","args","onBack","filteredFiles","file","onItemSelect","_hoisted_12","_normalizeClass","type","_hoisted_13","name","fileActions","_hoisted_14","_createVNode","_component_Dropdown","hasPlay","_component_DropdownItem","text","_ctx","$emit","url","components","DropdownItem","Dropdown","Loading","mixins","Utils","MediaUtils","emits","props","Boolean","default","initialPath","String","isMedia","filter","data","this","files","computed","toLowerCase","indexOf","some","mediaExtensions","has","split","pop","iconClass","methods","refresh","$nextTick","$refs","nav","scrollLeft","items","scrollTop","request","watch","mounted","__exports__","render","_KeepAlive","_component_MediaView","pluginName","status","selectedPlayer","track","buttons","mediaButtons","onPlay","pause","onPause","onStop","stop","onSetVolume","setVolume","onSeek","seek","onSearch","search","onMute","toggleMute","onUnmute","style","_normalizeStyle","navContainerStyle","_component_Nav","selectedView","torrentPlugin","onInput","onToggle","forceShowNav","_component_Header","hasSubtitlesPlugin","sources","selectedItem","selectedSubtitles","browserFilter","onSelectPlayer","onPlayerStatus","onStatusUpdate","onTorrentAdd","downloadTorrent","onShowSubtitles","showSubtitlesModal","onPlayUrl","showPlayUrlModal","onFilter","onToggleNav","onSourceToggle","header","filterVisible","_component_Results","results","selectedResult","onSelect","onResultSelect","play","onView","view","onDownload","download","_component_TorrentView","_component_Browser","onPathChange","_hoisted_3","_component_Modal","title","visible","onClose","_component_Subtitles","item","state","onSelectSubs","selectSubtitles","onOpen","onPlayUrlModalOpen","_component_UrlPlayer","value","urlPlay","target","playUrl","mediaProvider","_resolveDynamicComponent","mediaProviders","provider","providersMetadata","icon","_mergeProps","color","Browser","registerMediaProvider","component","shallowRef","defineAsyncComponent","refreshMediaProviders","config","youtube","_hoisted_16","selected","onSubmit","_withModifiers","placeholder","query","torrentURL","onChange","onKeyup","_hoisted_11","showNavButton","startsWith","hidden","Object","keys","source","checked","_component_Chromecast","player","onStatus","_component_Kodi","_component_Mplayer","_component_Mpv","_component_Omxplayer","_component_Vlc","players","select","getPlayers","resource","subs","subtitles","volume","position","onNewMedia","event","isMine","onMediaEvent","notify","device","image","plugin","addSubtitles","filename","removeSubtitles","supports","subscribe","destroy","unsubscribe","Mixin","devices","values","Promise","all","map","async","getPlayerName","chromecast","$root","host","Chromecast","Kodi","Mplayer","Mpv","Omxplayer","Vlc","required","plugins","loadPlugins","entries","p","endsWith","push","Players","types","$watch","displayedViews","displayName","collapsed","views","browser","torrents","sub","IsLocal","ISO639","SubFileName","_hoisted_10","language","autofocus","disabled","Header","MediaView","Modal","Nav","Results","Subtitles","TorrentView","UrlPlayer","previous","next","awaitingPlayTorrent","torrentPlugins","display","startStreaming","ret","window","open","modal","playUrlModal","input","$el","querySelector","focus","onTorrentQueued","onTorrentMetadata","onTorrentDownloadStart","onTorrentDownloadCompleted","getTorrentPlugin","pluginConf","torrent_plugin","torrent","error","subtitlesSelector","close","link","SubDownloadLink","result","show","Set","plex","jellyfin","typeIcons","href","src","alt","imdb_id","duration","convertTime","videos","_hoisted_15","Icons","onScroll","visibleResults","_component_Item","_component_Info","_component_MediaImage","series","season","episode","num_seasons","_hoisted_17","_hoisted_18","synopsis","_hoisted_20","_hoisted_21","description","_hoisted_23","_hoisted_24","summary","_hoisted_26","_hoisted_27","overview","_hoisted_29","_hoisted_30","country","_hoisted_32","_hoisted_33","network","_hoisted_35","_hoisted_36","_hoisted_38","_hoisted_39","width","height","_hoisted_41","_hoisted_42","_hoisted_43","rating","_hoisted_44","_hoisted_45","_hoisted_46","percentage","critic_rating","_hoisted_47","_hoisted_48","_hoisted_49","community_rating","_hoisted_50","_hoisted_51","_hoisted_52","_hoisted_53","_hoisted_54","votes","genres","_hoisted_56","_hoisted_57","channel","_hoisted_59","_hoisted_60","_hoisted_61","year","_hoisted_63","_hoisted_64","publishedDate","_hoisted_66","_hoisted_67","_hoisted_69","_hoisted_70","trailer","_hoisted_72","_hoisted_73","_hoisted_74","size","_hoisted_76","_hoisted_77","convertSize","quality","_hoisted_79","_hoisted_80","seeds","_hoisted_82","_hoisted_83","peers","_hoisted_85","_hoisted_86","_hoisted_88","_hoisted_89","MediaImage","channelId","channel_url","channelTitle","publishedAt","formatDate","created_at","channel_image","formatDateTime","Info","Item","Array","Number","resultIndexStep","maxResultIndex","includes","e","el","bottom","scrollHeight","clientHeight","infoModal","transfers","finish_date","hash","progress","torrentId","resume","remove","torrentFiles","isVisible","torrentInfo","_hoisted_19","download_rate","_hoisted_22","upload_rate","_hoisted_25","remaining_bytes","_hoisted_28","_hoisted_31","start_date","save_path","relativeFiles","reduce","obj","onTorrentUpdate","onTorrentRemove","webpackAsyncContext","req","__webpack_require__","o","resolve","then","Error","code","ids","id","t","module","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/platypush/backend/http/webapp/dist/static/js/1259.e873449c.js b/platypush/backend/http/webapp/dist/static/js/1259.11016ad1.js similarity index 99% rename from platypush/backend/http/webapp/dist/static/js/1259.e873449c.js rename to platypush/backend/http/webapp/dist/static/js/1259.11016ad1.js index 7c900baa1b..4956cfbadb 100644 --- a/platypush/backend/http/webapp/dist/static/js/1259.e873449c.js +++ b/platypush/backend/http/webapp/dist/static/js/1259.11016ad1.js @@ -1,2 +1,2 @@ "use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[1259],{4212:function(e,t,s){s.d(t,{N:function(){return i}});class i{constructor(e){if(this.ranges={hue:[0,360],sat:[0,100],bri:[0,100],ct:[154,500]},e)for(const t of Object.keys(this.ranges))e[t]&&(this.ranges[t]=e[t])}normalize(e,t,s){return s[0]+(e-t[0])*(s[1]-s[0])/(t[1]-t[0])}hslToRgb(e,t,s){[e,t,s]=[this.normalize(e,this.ranges.hue,[0,360]),this.normalize(t,this.ranges.sat,[0,100]),this.normalize(s,this.ranges.bri,[0,100])],s/=100;const i=t*Math.min(s,1-s)/100,a=t=>{const a=(t+e/30)%12,n=s-i*Math.max(Math.min(a-3,9-a,1),-1);return Math.round(255*n)};return[a(0),a(8),a(4)]}rgbToHsl(e,t,s){e/=255,t/=255,s/=255;const i=Math.max(e,t,s),a=Math.min(e,t,s);let n,l,r=(i+a)/2;if(i===a)n=l=0;else{const o=i-a;switch(l=r>.5?o/(2-i-a):o/(i+a),i){case e:n=(t-s)/o+(td&&r>o&&r>1?(o/=r,d/=r,r=1):o>d&&o>r&&o>1?(r/=o,d/=o,o=1):d>r&&d>o&&d>1&&(r/=d,o/=d,d=1),r=r<=.0031308?12.92*r:1.055*Math.pow(r,1/2.4)-.055,o=o<=.0031308?12.92*o:1.055*Math.pow(o,1/2.4)-.055,d=d<=.0031308?12.92*d:1.055*Math.pow(d,1/2.4)-.055,r=Math.round(255*r),o=Math.round(255*o),d=Math.round(255*d),isNaN(r)&&(r=0),isNaN(o)&&(o=0),isNaN(d)&&(d=0),[r,o,d].map((e=>Math.min(Math.max(0,e),255)))}rgbToXY(e,t,s){e>1&&(e/=255),t>1&&(t/=255),s>1&&(s/=255),e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92,t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,s=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92;const i=.664511*e+.154324*t+.162028*s,a=.283881*e+.668433*t+.047685*s,n=88e-6*e+.07231*t+.986039*s;let l=parseFloat((i/(i+a+n)).toFixed(4)),r=parseFloat((a/(i+a+n)).toFixed(4));return isNaN(l)&&(l=0),isNaN(r)&&(r=0),[l,r]}rgbToBri(e,t,s){return Math.min(2*this.rgbToHsl(e,t,s)[2],this.ranges.bri[1])}getRGB(e){return null!=e.red&&null!=e.green&&null!=e.blue?[e.red,e.green,e.blue]:null!=e.r&&null!=e.g&&null!=e.b?[e.r,e.g,e.b]:e.rgb?e.rgb:void 0}getXY(e){return null!=e.x&&null!=e.y?[e.x,e.y]:e.xy?e.xy:void 0}toRGB(e){const t=this.getRGB(e);if(t)return t;const s=this.getXY(e);return s&&e.bri?this.xyToRgb(...s,e.bri):e.hue&&e.sat&&e.bri?this.hslToRgb(e.hue,e.sat,e.bri):(console.debug("Could not determine color space"),void console.debug(e))}toXY(e){const t=this.getXY(e);if(t&&e.bri)return[t[0],t[1],e.bri];const s=this.getRGB(e);if(s)return this.rgbToXY(...s);if(e.hue&&e.sat&&e.bri){const t=this.hslToRgb(e.hue,e.sat,e.bri);return this.rgbToXY(...t)}console.debug("Could not determine color space"),console.debug(e)}toHSL(e){if(e.hue&&e.sat&&e.bri)return[e.hue,e.sat,e.bri];const t=this.getRGB(e);if(t)return this.rgbToHsl(...t);const s=this.getXY(e);if(s&&e.bri){const t=this.xyToRgb(...s,e.bri);return this.rgbToHsl(...t)}console.debug("Could not determine color space"),console.debug(e)}hexToRgb(e){return[e.slice(1,3),e.slice(3,5),e.slice(5,7)].map((e=>parseInt(e,16)))}rgbToHex(e){return"#"+e.map((e=>{let t=e.toString(16);return t.length<2&&(t="0"+t),t})).join("")}}},8140:function(e,t,s){s.d(t,{Z:function(){return g}});var i=s(6252),a=s(3577),n=s(9963);const l={class:"slider-wrapper"},r=["textContent"],o=["textContent"],d={class:"slider-container"},u=["min","max","step","disabled","value"],c=["textContent"];function v(e,t,s,v,p,m){return(0,i.wg)(),(0,i.iD)("label",l,[s.withRange?((0,i.wg)(),(0,i.iD)("span",{key:0,class:(0,a.C_)(["range-labels",{"with-label":s.withLabel}])},[s.withRange?((0,i.wg)(),(0,i.iD)("span",{key:0,class:"label left",textContent:(0,a.zw)(s.range[0])},null,8,r)):(0,i.kq)("",!0),s.withRange?((0,i.wg)(),(0,i.iD)("span",{key:1,class:"label right",textContent:(0,a.zw)(s.range[1])},null,8,o)):(0,i.kq)("",!0)],2)):(0,i.kq)("",!0),(0,i._)("span",d,[(0,i._)("input",{class:(0,a.C_)(["slider",{"with-label":s.withLabel}]),type:"range",min:s.range[0],max:s.range[1],step:s.step,disabled:s.disabled,value:s.value,ref:"range",onInput:t[0]||(t[0]=(0,n.iM)((t=>e.$emit("input",t)),["stop"])),onChange:t[1]||(t[1]=(0,n.iM)((t=>e.$emit("change",t)),["stop"]))},null,42,u),s.withLabel?((0,i.wg)(),(0,i.iD)("span",{key:0,class:"label",textContent:(0,a.zw)(s.value),ref:"label"},null,8,c)):(0,i.kq)("",!0)])])}var p={emits:["input","change"],props:{value:{type:Number},disabled:{type:Boolean,default:!1},range:{type:Array,default:()=>[0,100]},step:{type:Number,default:1},withLabel:{type:Boolean,default:!1},withRange:{type:Boolean,default:!1}}},m=s(3744);const h=(0,m.Z)(p,[["render",v],["__scopeId","data-v-d90e850c"]]);var g=h},7514:function(e,t,s){s.d(t,{Z:function(){return m}});var i=s(6252),a=s(3577),n=s(9963);const l=e=>((0,i.dD)("data-v-eff375b6"),e=e(),(0,i.Cn)(),e),r=["checked","id"],o=l((()=>(0,i._)("div",{class:"switch"},[(0,i._)("div",{class:"dot"})],-1))),d={class:"label"};function u(e,t,s,l,u,c){return(0,i.wg)(),(0,i.iD)("div",{class:(0,a.C_)(["power-switch",{disabled:s.disabled}]),onClick:t[0]||(t[0]=(0,n.iM)(((...e)=>c.onInput&&c.onInput(...e)),["stop"]))},[(0,i._)("input",{type:"checkbox",checked:s.value,id:s.id},null,8,r),(0,i._)("label",null,[o,(0,i._)("span",d,[(0,i.WI)(e.$slots,"default",{},void 0,!0)])])],2)}var c={name:"ToggleSwitch",emits:["input"],props:{id:{type:String},value:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},methods:{onInput(e){if(this.disabled)return!1;this.$emit("input",e)}}},v=s(3744);const p=(0,v.Z)(c,[["render",u],["__scopeId","data-v-eff375b6"]]);var m=p},1259:function(e,t,s){s.r(t),s.d(t,{default:function(){return vs}});var i=s(6252),a=s(3577);const n={class:"zigbee-container"},l={key:0,class:"info-body"},r={class:"row"},o=(0,i._)("div",{class:"param-name"},"State",-1),d=["textContent"],u={class:"row"},c=(0,i._)("div",{class:"param-name"},"Permit Join",-1),v=["textContent"],p={key:0,class:"row"},m=(0,i._)("div",{class:"param-name"},"Network Channel",-1),h=["textContent"],g={class:"row"},b=(0,i._)("div",{class:"param-name"},"Zigbee2MQTT Version",-1),y=["textContent"],f={key:1,class:"row"},_=(0,i._)("div",{class:"param-name"},"MQTT Server",-1),w=["textContent"],k={key:2,class:"row"},q=(0,i._)("div",{class:"param-name"},"Serial Port",-1),C=["textContent"],x={key:3,class:"row"},z=(0,i._)("div",{class:"param-name"},"Firmware Type",-1),D=["textContent"],M={key:4,class:"row"},R=(0,i._)("div",{class:"param-name"},"Firmware Version",-1),G={class:"param-value"},Z={key:5,class:"row"},I=(0,i._)("div",{class:"param-name"},"Firmware Revision",-1),N=["textContent"],T={class:"view-options"},V={class:"view-selector col-s-8 col-m-9 col-l-10"},j=["value"],E=["textContent","selected","value"],S={class:"buttons"},A=["disabled"],$=(0,i._)("i",{class:"fa fa-plus"},null,-1),O=[$],F=["disabled"],B=(0,i._)("i",{class:"fa fa-sync-alt"},null,-1),L=[B],Y={class:"view-container"},U={key:0,class:"view devices"},H={key:0,class:"no-items"},P={key:0,class:"loading"},X={key:1,class:"empty"},W={key:1,class:"view groups"},J={key:0,class:"no-items"},K={key:0,class:"loading"},Q={key:1,class:"empty"};function ee(e,t,s,$,B,ee){const te=(0,i.up)("Loading"),se=(0,i.up)("Modal"),ie=(0,i.up)("DropdownItem"),ae=(0,i.up)("Dropdown"),ne=(0,i.up)("Device"),le=(0,i.up)("Group");return(0,i.wg)(),(0,i.iD)("div",n,[B.loading?((0,i.wg)(),(0,i.j4)(te,{key:0})):(0,i.kq)("",!0),(0,i.Wm)(se,{title:"Network Info",ref:"infoModal"},{default:(0,i.w5)((()=>[B.status.info?((0,i.wg)(),(0,i.iD)("div",l,[(0,i._)("div",r,[o,(0,i._)("div",{class:"param-value",textContent:(0,a.zw)(B.status.state)},null,8,d)]),(0,i._)("div",u,[c,(0,i._)("div",{class:"param-value",textContent:(0,a.zw)(B.status.info.permit_join)},null,8,v)]),B.status.info.network?((0,i.wg)(),(0,i.iD)("div",p,[m,(0,i._)("div",{class:"param-value",textContent:(0,a.zw)(B.status.info.network.channel)},null,8,h)])):(0,i.kq)("",!0),(0,i._)("div",g,[b,(0,i._)("div",{class:"param-value",textContent:(0,a.zw)(B.status.info.version)},null,8,y)]),B.status.info.config?.mqtt?((0,i.wg)(),(0,i.iD)("div",f,[_,(0,i._)("div",{class:"param-value",textContent:(0,a.zw)(B.status.info.config.mqtt.server)},null,8,w)])):(0,i.kq)("",!0),B.status.info.config?.serial?((0,i.wg)(),(0,i.iD)("div",k,[q,(0,i._)("div",{class:"param-value",textContent:(0,a.zw)(B.status.info.config.serial.port)},null,8,C)])):(0,i.kq)("",!0),B.status.info.coordinator?.type?((0,i.wg)(),(0,i.iD)("div",x,[z,(0,i._)("div",{class:"param-value",textContent:(0,a.zw)(B.status.info.coordinator.type)},null,8,D)])):(0,i.kq)("",!0),B.status.info.coordinator?.meta?((0,i.wg)(),(0,i.iD)("div",M,[R,(0,i._)("div",G,(0,a.zw)(B.status.info.coordinator.meta.maintrel)+"."+(0,a.zw)(B.status.info.coordinator.meta.majorrel)+"."+(0,a.zw)(B.status.info.coordinator.meta.minorrel),1)])):(0,i.kq)("",!0),B.status.info.coordinator?.meta?((0,i.wg)(),(0,i.iD)("div",Z,[I,(0,i._)("div",{class:"param-value",textContent:(0,a.zw)(B.status.info.coordinator.meta.revision)},null,8,N)])):(0,i.kq)("",!0)])):(0,i.kq)("",!0)])),_:1},512),(0,i._)("div",T,[(0,i._)("div",V,[(0,i._)("label",null,[(0,i._)("select",{value:B.selected.view,onChange:t[0]||(t[0]=e=>this.selected.view=e.target.value)},[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(B.views,((e,t)=>((0,i.wg)(),(0,i.iD)("option",{textContent:(0,a.zw)((t[0].toUpperCase()+t.slice(1)).replace("_"," ")),key:t,selected:e,value:t},null,8,E)))),128))],40,j)])]),(0,i._)("div",S,["groups"===B.selected.view?((0,i.wg)(),(0,i.iD)("button",{key:0,class:"btn btn-default",title:"Add Group",disabled:B.loading,onClick:t[1]||(t[1]=(...e)=>ee.addGroup&&ee.addGroup(...e))},O,8,A)):(0,i.kq)("",!0),(0,i.Wm)(ae,{ref:"networkCommandsDropdown","icon-class":"fa fa-cog",title:"Network commands"},{default:(0,i.w5)((()=>[(0,i.Wm)(ie,{text:"Network Info",disabled:B.loading,onClick:t[2]||(t[2]=t=>e.$refs.infoModal.show())},null,8,["disabled"]),B.status.info?.permit_join?((0,i.wg)(),(0,i.j4)(ie,{key:1,text:"Disable Join",disabled:B.loading,onClick:t[4]||(t[4]=e=>ee.permitJoin(!1))},null,8,["disabled"])):((0,i.wg)(),(0,i.j4)(ie,{key:0,text:"Permit Join",disabled:B.loading,onClick:t[3]||(t[3]=e=>ee.permitJoin(!0))},null,8,["disabled"])),(0,i.Wm)(ie,{text:"Factory Reset",disabled:B.loading,onClick:ee.factoryReset},null,8,["disabled","onClick"])])),_:1},512),(0,i._)("button",{class:"btn btn-default",title:"Refresh network",disabled:B.loading,onClick:t[5]||(t[5]=(...e)=>ee.refresh&&ee.refresh(...e))},L,8,F)])]),(0,i._)("div",Y,["devices"===B.selected.view?((0,i.wg)(),(0,i.iD)("div",U,[Object.keys(B.devices).length?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("div",H,[B.loading?((0,i.wg)(),(0,i.iD)("div",P,"Loading devices...")):((0,i.wg)(),(0,i.iD)("div",X,"No devices found on the network"))])),((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(B.devices,((e,t)=>((0,i.wg)(),(0,i.j4)(ne,{key:t,device:e,groups:B.groups,selected:B.selected.deviceId===t,onSelect:e=>B.selected.deviceId=B.selected.deviceId===t?null:t,onRename:ee.refreshDevices,onRemove:ee.refreshDevices,onGroupsEdit:ee.refreshGroups},null,8,["device","groups","selected","onSelect","onRename","onRemove","onGroupsEdit"])))),128))])):"groups"===B.selected.view?((0,i.wg)(),(0,i.iD)("div",W,[Object.keys(B.groups).length?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("div",J,[B.loading?((0,i.wg)(),(0,i.iD)("div",K,"Loading groups...")):((0,i.wg)(),(0,i.iD)("div",Q,"No groups available on the network"))])),((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(B.groups,((e,t)=>((0,i.wg)(),(0,i.j4)(le,{key:t,group:e,devices:B.devices,selected:B.selected.groupId===t,onSelect:e=>B.selected.groupId=B.selected.groupId===t?null:t,onRename:ee.refreshGroups,onRemove:ee.refreshGroups,onEdit:ee.refreshGroups},null,8,["group","devices","selected","onSelect","onRename","onRemove","onEdit"])))),128))])):(0,i.kq)("",!0)])])}var te=s(2787),se=s(815),ie=s(6791),ae=s(8637),ne=s(9963);const le=e=>((0,i.dD)("data-v-6437b841"),e=e(),(0,i.Cn)(),e),re={class:"groups"},oe=["value","checked"],de=["textContent"],ue=le((()=>(0,i._)("div",{class:"footer buttons"},[(0,i._)("button",{type:"submit"},"Save")],-1))),ce=["textContent"],ve={key:1,class:"params"},pe={class:"row"},me=le((()=>(0,i._)("div",{class:"param-name"},"Name",-1))),he={class:"param-value"},ge=["value"],be={class:"buttons"},ye=le((()=>(0,i._)("i",{class:"fas fa-times"},null,-1))),fe=[ye],_e=le((()=>(0,i._)("button",{type:"submit",class:"btn btn-default"},[(0,i._)("i",{class:"fa fa-check"})],-1))),we=["textContent"],ke={class:"buttons"},qe=le((()=>(0,i._)("i",{class:"fa fa-edit"},null,-1))),Ce=[qe],xe={class:"row"},ze=le((()=>(0,i._)("div",{class:"param-name"},"IEEE Address",-1))),De=["textContent"],Me={key:0,class:"row"},Re=le((()=>(0,i._)("div",{class:"param-name"},"Network Address",-1))),Ge=["textContent"],Ze={class:"row"},Ie=le((()=>(0,i._)("div",{class:"param-name"},"Type",-1))),Ne=["textContent"],Te={key:1,class:"row"},Ve=le((()=>(0,i._)("div",{class:"param-name"},"Vendor",-1))),je={class:"param-value"},Ee={key:2,class:"row"},Se=le((()=>(0,i._)("div",{class:"param-name"},"Model",-1))),Ae={class:"param-value"},$e={key:3,class:"row"},Oe=le((()=>(0,i._)("div",{class:"param-name"},"Model ID",-1))),Fe={class:"param-value"},Be={key:4,class:"row"},Le=le((()=>(0,i._)("div",{class:"param-name"},"Description",-1))),Ye={class:"param-value"},Ue={key:5,class:"row"},He=le((()=>(0,i._)("div",{class:"param-name"},"Software Build ID",-1))),Pe={class:"param-value"},Xe={key:6,class:"row"},We=le((()=>(0,i._)("div",{class:"param-name"},"Date Code",-1))),Je={class:"param-value"},Ke={key:7,class:"row"},Qe=le((()=>(0,i._)("div",{class:"param-name"},"Power Source",-1))),et={class:"param-value"},tt={key:8,class:"section values"},st=le((()=>(0,i._)("div",{class:"header"},[(0,i._)("div",{class:"title"},"Values")],-1))),it={class:"body"},at={class:"param-name"},nt={key:0,class:"text"},lt=["textContent"],rt=["textContent"],ot={class:"param-value"},dt={key:2},ut=["value","disabled","onChange"],ct={key:3},vt=["value","onChange"],pt={key:0},mt=["value","textContent","selected","disabled"],ht={key:4},gt=["onChange","value"],bt={key:5},yt=["disabled","value","onChange"],ft={class:"section actions"},_t=le((()=>(0,i._)("div",{class:"header"},[(0,i._)("div",{class:"title"},"Actions")],-1))),wt={class:"body"},kt=le((()=>(0,i._)("div",{class:"param-name"},"Manage groups",-1))),qt=le((()=>(0,i._)("div",{class:"param-value"},[(0,i._)("i",{class:"fa fa-network-wired"})],-1))),Ct=[kt,qt],xt={key:0,class:"param-name"},zt={key:1,class:"param-name"},Dt=le((()=>(0,i._)("div",{class:"param-value"},[(0,i._)("i",{class:"fa fa-sync-alt"})],-1))),Mt=le((()=>(0,i._)("div",{class:"param-name"},"Remove Device",-1))),Rt=le((()=>(0,i._)("div",{class:"param-value"},[(0,i._)("i",{class:"fa fa-trash"})],-1))),Gt=[Mt,Rt],Zt=le((()=>(0,i._)("div",{class:"param-name"},"Force Remove Device",-1))),It=le((()=>(0,i._)("div",{class:"param-value"},[(0,i._)("i",{class:"fa fa-trash"})],-1))),Nt=[Zt,It];function Tt(e,t,s,n,l,r){const o=(0,i.up)("Loading"),d=(0,i.up)("Modal"),u=(0,i.up)("ToggleSwitch"),c=(0,i.up)("Slider");return(0,i.wg)(),(0,i.iD)("div",{class:(0,a.C_)(["item device",{selected:s.selected}])},[l.loading?((0,i.wg)(),(0,i.j4)(o,{key:0})):(0,i.kq)("",!0),(0,i.Wm)(d,{class:"groups-modal",ref:"groupsModal",title:"Device groups"},{default:(0,i.w5)((()=>[l.loading?((0,i.wg)(),(0,i.j4)(o,{key:0})):(0,i.kq)("",!0),(0,i._)("form",{class:"content",onSubmit:t[0]||(t[0]=(0,ne.iM)(((...e)=>r.manageGroups&&r.manageGroups(...e)),["prevent"]))},[(0,i._)("div",re,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(s.groups,((e,t)=>((0,i.wg)(),(0,i.iD)("label",{class:"row group",key:t},[(0,i._)("input",{type:"checkbox",value:t,checked:r.associatedGroups.has(parseInt(e.id))},null,8,oe),(0,i._)("span",{class:"name",textContent:(0,a.zw)(e.friendly_name?.length?e.friendly_name:`[Group #${e.id}]`)},null,8,de)])))),128))]),ue],32)])),_:1},512),(0,i._)("div",{class:(0,a.C_)(["row name header vertical-center",{selected:s.selected}]),textContent:(0,a.zw)(s.device.friendly_name||s.device.ieee_address),onClick:t[1]||(t[1]=t=>e.$emit("select"))},null,10,ce),s.selected?((0,i.wg)(),(0,i.iD)("div",ve,[(0,i._)("div",pe,[me,(0,i._)("div",he,[(0,i._)("div",{class:(0,a.C_)(["name-edit",{hidden:!l.editName}])},[(0,i._)("form",{onSubmit:t[3]||(t[3]=(0,ne.iM)(((...e)=>r.rename&&r.rename(...e)),["prevent"]))},[(0,i._)("label",null,[(0,i._)("input",{type:"text",name:"name",ref:"name",value:s.device.friendly_name},null,8,ge)]),(0,i._)("span",be,[(0,i._)("button",{type:"button",class:"btn btn-default",onClick:t[2]||(t[2]=e=>l.editName=!1)},fe),_e])],32)],2),(0,i._)("div",{class:(0,a.C_)(["name-edit",{hidden:l.editName}])},[(0,i._)("span",{textContent:(0,a.zw)(s.device.friendly_name)},null,8,we),(0,i._)("span",ke,[(0,i._)("button",{type:"button",class:"btn btn-default",onClick:t[4]||(t[4]=e=>l.editName=!0)},Ce)])],2)])]),(0,i._)("div",xe,[ze,(0,i._)("div",{class:"param-value",textContent:(0,a.zw)(s.device.ieee_address)},null,8,De)]),s.device.network_address?((0,i.wg)(),(0,i.iD)("div",Me,[Re,(0,i._)("div",{class:"param-value",textContent:(0,a.zw)(s.device.network_address)},null,8,Ge)])):(0,i.kq)("",!0),(0,i._)("div",Ze,[Ie,(0,i._)("div",{class:"param-value",textContent:(0,a.zw)(s.device.type)},null,8,Ne)]),s.device.definition?.vendor?((0,i.wg)(),(0,i.iD)("div",Te,[Ve,(0,i._)("div",je,(0,a.zw)(s.device.definition.vendor),1)])):(0,i.kq)("",!0),s.device.definition?.model?((0,i.wg)(),(0,i.iD)("div",Ee,[Se,(0,i._)("div",Ae,(0,a.zw)(s.device.definition.model),1)])):(0,i.kq)("",!0),s.device.model_id?((0,i.wg)(),(0,i.iD)("div",$e,[Oe,(0,i._)("div",Fe,(0,a.zw)(s.device.model_id),1)])):(0,i.kq)("",!0),s.device.definition?.description?((0,i.wg)(),(0,i.iD)("div",Be,[Le,(0,i._)("div",Ye,(0,a.zw)(s.device.definition.description),1)])):(0,i.kq)("",!0),s.device.software_build_id?((0,i.wg)(),(0,i.iD)("div",Ue,[He,(0,i._)("div",Pe,(0,a.zw)(s.device.software_build_id),1)])):(0,i.kq)("",!0),s.device.definition?.date_code?((0,i.wg)(),(0,i.iD)("div",Xe,[We,(0,i._)("div",Je,(0,a.zw)(s.device.definition.date_code),1)])):(0,i.kq)("",!0),s.device.power_source?((0,i.wg)(),(0,i.iD)("div",Ke,[Qe,(0,i._)("div",et,(0,a.zw)(s.device.power_source),1)])):(0,i.kq)("",!0),Object.keys(r.displayedValues).length?((0,i.wg)(),(0,i.iD)("div",tt,[st,(0,i._)("div",it,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(r.displayedValues,((e,t)=>((0,i.wg)(),(0,i.iD)("div",{class:"row value",key:t},[(0,i._)("div",at,[(0,i.Uk)((0,a.zw)(e.description)+" ",1),null!=r.rgbColor&&null!=e.value?.x&&null!=e.value?.y||null!=e.value?.hue&&null!=e.value?.saturation?((0,i.wg)(),(0,i.iD)("span",nt,"Color")):(0,i.kq)("",!0),e.property?((0,i.wg)(),(0,i.iD)("span",{key:1,class:"name",textContent:(0,a.zw)(e.property)},null,8,lt)):(0,i.kq)("",!0),e.unit?((0,i.wg)(),(0,i.iD)("span",{key:2,class:"unit",textContent:(0,a.zw)(e.unit)},null,8,rt)):(0,i.kq)("",!0)]),(0,i._)("div",ot,["binary"===e.type?((0,i.wg)(),(0,i.j4)(u,{key:0,value:null!=e.value_on?e.value===e.value_on:!!e.value,disabled:!e.writable,onInput:t=>r.setValue(e,t)},null,8,["value","disabled","onInput"])):"numeric"===e.type&&null!=e.value_min&&null!=e.value_max?((0,i.wg)(),(0,i.j4)(c,{key:1,"with-label":!0,range:[e.value_min,e.value_max],value:e.value,disabled:!e.writable,onChange:t=>r.setValue(e,t)},null,8,["range","value","disabled","onChange"])):"numeric"!==e.type||null!=e.value_min&&null!=e.value_max?"enum"===e.type?((0,i.wg)(),(0,i.iD)("label",ct,[(0,i._)("select",{value:e.readable&&null!=e.value?e.value:"",onChange:t=>r.setValue(e,t)},[e.readable?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("option",pt)),((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(e.values,(t=>((0,i.wg)(),(0,i.iD)("option",{key:t,value:t,textContent:(0,a.zw)(t),selected:e.readable&&e.value===t,disabled:!e.writable},null,8,mt)))),128))],40,vt)])):null!=r.rgbColor&&null!=e.value?.x&&null!=e.value?.y||null!=e.value?.hue&&null!=e.value?.saturation?((0,i.wg)(),(0,i.iD)("label",ht,[(0,i._)("input",{type:"color",onChange:(0,ne.iM)((t=>r.setValue(e,t)),["stop"]),value:"#"+r.rgbColor.map((e=>(e=Number(e).toString(16),1===e.length?"0"+e:e))).join("")},null,40,gt)])):((0,i.wg)(),(0,i.iD)("label",bt,[(0,i._)("input",{type:"text",disabled:!e.writable,value:e.value,onChange:t=>r.setValue(e,t)},null,40,yt)])):((0,i.wg)(),(0,i.iD)("label",dt,[(0,i._)("input",{type:"number","with-label":!0,value:e.value,disabled:!e.writable,onChange:t=>r.setValue(e,t)},null,40,ut)]))])])))),128))])])):(0,i.kq)("",!0),(0,i._)("div",ft,[_t,(0,i._)("div",wt,[(0,i._)("div",{class:"row",onClick:t[5]||(t[5]=t=>e.$refs.groupsModal.show())},Ct),(0,i._)("div",{class:"row",onClick:t[6]||(t[6]=e=>l.otaUpdatesAvailable?r.installOtaUpdates():r.checkOtaUpdates())},[l.otaUpdatesAvailable?((0,i.wg)(),(0,i.iD)("div",zt,"Install updates")):((0,i.wg)(),(0,i.iD)("div",xt,"Check for updates")),Dt]),(0,i._)("div",{class:"row",onClick:t[7]||(t[7]=e=>r.remove(!1))},Gt),(0,i._)("div",{class:"row error",onClick:t[8]||(t[8]=e=>r.remove(!0))},Nt)])])])):(0,i.kq)("",!0)],2)}var Vt=s(8140),jt=s(7514),Et=s(4212),St=s(3493),At={name:"Device",components:{Modal:St.Z,ToggleSwitch:jt.Z,Slider:Vt.Z,Loading:ie.Z},mixins:[ae.Z],emits:["select","rename","remove","groups-edit"],props:{device:{type:Object,required:!0},groups:{type:Object,default:()=>{}},selected:{type:Boolean,default:!1}},data(){return{editName:!1,loading:!1,status:{},otaUpdatesAvailable:!1}},computed:{values(){if(!this.device.definition?.exposes)return{};const e=e=>{const t=(e,s)=>{if(e.features){e.property&&(s[e.property]=s[e.property]||{},s=s[e.property]);for(const i of e.features)t(i,s)}else e.property&&(s[e.property]=e)},s={};for(const i of e)t(i,s);return s};return e(this.device.definition.exposes)},displayedValues(){const e={},t=(e,[s,i])=>(s in this.status&&(i={...i,value:this.status[s]}),null!=i.access&&(i.readable=!!(1&i.access),i.writable=!!(2&i.access),delete i.access),e[s]=i,Object.entries(i).filter((e=>e[1]instanceof Object)).reduce(t,e[s]),e);return Object.entries(this.values).reduce(t,e),e},rgbColor(){if(!this.displayedValues.color)return;const e=this.displayedValues.color?.value;if(e){if(null!=e.x&&null!=e.y){const t=new Et.N({bri:[this.displayedValues.brightness?.value_min||0,this.displayedValues.brightness?.value_max||255]});return t.xyToRgb(e.x,e.y,this.displayedValues.brightness.value)}if(null!=e.hue&&(null!=e.saturation||null!=e.sat)){const t=null!=e.saturation?"saturation":"sat",s=new Et.N({hue:[this.displayedValues.color.hue?.value_min||0,this.displayedValues.color.hue.value_max||65535],sat:[this.displayedValues.color[t]?.value_min||0,this.displayedValues.color[t].value_max||255],bri:[this.displayedValues.brightness?.value_min||0,this.displayedValues.brightness?.value_max||255]});return s.hslToRgb(e.hue,e[t],this.displayedValues.brightness.value)}return null}},associatedGroups(){return new Set(Object.values(this.groups).filter((e=>new Set((e.members||[]).map((e=>e.ieee_address))).has(this.device.ieee_address))).map((e=>parseInt(e.id))))}},methods:{async refresh(){this.loading=!0;try{this.status=await this.request("zigbee.mqtt.device_get",{device:this.device.friendly_name||this.device.ieee_address})}finally{this.loading=!1}},async rename(){const e=(this.$refs.name.value||"").trim();if(e.length&&e!==this.device.friendly_name){this.loading=!0;try{await this.request("zigbee.mqtt.device_rename",{device:this.device.friendly_name?.length?this.device.friendly_name:this.device.ieee_address,name:e}),this.$emit("rename",{name:this.device.friendly_name,newName:e})}finally{this.editName=!1,this.loading=!1}}},async remove(e){if(confirm("Are you really sure that you want to remove this device from the network?")){e=!!e,this.loading=!0;try{await this.request("zigbee.mqtt.device_remove",{device:this.device.friendly_name?.length?this.device.friendly_name:this.device.ieee_address,force:e}),this.$emit("remove",{device:this.device.friendly_name||this.device.ieee_address})}finally{this.loading=!1}}},async setValue(e,t){const s={device:this.device.friendly_name||this.device.ieee_address,property:e.property,value:null};switch(e.type){case"binary":e.value_toggle?s.value=e.value_toggle:e.value_on&&e.value_off?s.value=e.value===e.value_on?e.value_off:e.value_on:s.value=!e.value;break;case"numeric":s.value=parseFloat(t.target.value);break;case"enum":t.target.value?.length&&(s.value=t.target.value);break;default:if(null!=e.x&&null!=e.y||null!=e.hue&&(null!=e.saturation||null!=e.sat)){s.property="color";const i=t.target.value.slice(1).split(/([0-9a-fA-F]{2})/).filter(((e,t)=>t%2)).map((e=>parseInt(e,16)));if(null!=e.x&&null!=e.y){const e=new Et.N({bri:[this.displayedValues.brightness?.value_min||0,this.displayedValues.brightness?.value_max||255]}),t=e.rgbToXY(...i);s.value={x:t[0],y:t[1]}}else{const e=null!=this.displayedValues.color.saturation?"saturation":"sat",t=new Et.N({hue:[this.displayedValues.color.hue?.value_min||0,this.displayedValues.color.hue.value_max||65535],sat:[this.displayedValues.color[e]?.value_min||0,this.displayedValues.color[e].value_max||255],bri:[this.displayedValues.brightness?.value_min||0,this.displayedValues.brightness?.value_max||255]}),a=t.rgbToHsl(...i);s.value={hue:a[0]},s.value[e]=a[1]}}break}if(null!=s.value){this.loading=!0;try{await this.request("zigbee.mqtt.device_set",s),await this.refresh()}finally{this.loading=!1}}},async manageGroups(e){const t=[...e.target.querySelectorAll("input[type=checkbox]")].reduce(((e,t)=>{const s=parseInt(t.value);return t.checked&&!this.associatedGroups.has(s)?e.add.add(s):!t.checked&&this.associatedGroups.has(s)&&e.remove.add(s),e}),{add:new Set,remove:new Set}),s=async e=>{await Promise.all([...t[e]].map((async t=>{await this.request(`zigbee.mqtt.group_${e}_device`,{group:this.groups[t].friendly_name,device:this.device.friendly_name?.length?this.device.friendly_name:this.device.ieee_address})})))};this.loading=!0;try{await Promise.all(Object.keys(t).map(s)),this.$emit("groups-edit",t)}finally{this.loading=!1}},async checkOtaUpdates(){this.loading=!0;try{this.otaUpdatesAvailable=(await this.request("zigbee.mqtt.device_check_ota_updates",{device:this.device.friendly_name?.length?this.device.friendly_name:this.device.ieee_address})).update_available,this.otaUpdatesAvailable?this.notify({text:"A firmware update is available for the device",image:{iconClass:"fa fa-sync-alt"}}):this.notify({text:"The device is up to date",image:{iconClass:"fa fa-check"}})}finally{this.loading=!1}},async installOtaUpdates(){this.loading=!0;try{await this.request("zigbee.mqtt.device_install_ota_updates",{device:this.device.friendly_name?.length?this.device.friendly_name:this.device.ieee_address})}finally{this.loading=!1}}},mounted(){this.$watch((()=>this.selected),(e=>{e&&this.refresh()})),this.$watch((()=>this.status.update_available),(e=>{this.otaUpdatesAvailable=e})),this.subscribe((e=>{e.device!==this.device.friendly_name&&e.device!==this.device.ieee_address||(this.status={...this.status,...e.properties})}),`on-property-change-${this.device.ieee_address}`,"platypush.message.event.zigbee.mqtt.ZigbeeMqttDevicePropertySetEvent")},unmounted(){this.unsubscribe(`on-property-change-${this.device.ieee_address}`)}},$t=s(3744);const Ot=(0,$t.Z)(At,[["render",Tt],["__scopeId","data-v-6437b841"]]);var Ft=Ot;const Bt=e=>((0,i.dD)("data-v-7667f7ba"),e=e(),(0,i.Cn)(),e),Lt=["textContent"],Yt={key:1,class:"params"},Ut={class:"section devices"},Ht=Bt((()=>(0,i._)("div",{class:"header"},[(0,i._)("div",{class:"title"},"Devices")],-1))),Pt={class:"body"},Xt=["checked","value","onChange"],Wt=["textContent"],Jt={class:"section actions"},Kt=Bt((()=>(0,i._)("div",{class:"header"},[(0,i._)("div",{class:"title"},"Actions")],-1))),Qt={class:"body"},es=Bt((()=>(0,i._)("div",{class:"col-10"},"Rename Group",-1))),ts=Bt((()=>(0,i._)("div",{class:"buttons col-2 pull-right"},[(0,i._)("i",{class:"fa fa-edit"})],-1))),ss=[es,ts],is=Bt((()=>(0,i._)("div",{class:"col-10"},"Remove Group",-1))),as=Bt((()=>(0,i._)("div",{class:"buttons col-2 pull-right"},[(0,i._)("i",{class:"fa fa-trash"})],-1))),ns=[is,as];function ls(e,t,s,n,l,r){const o=(0,i.up)("Loading");return(0,i.wg)(),(0,i.iD)("div",{class:(0,a.C_)(["item group",{selected:s.selected}])},[l.loading?((0,i.wg)(),(0,i.j4)(o,{key:0})):(0,i.kq)("",!0),(0,i._)("div",{class:(0,a.C_)(["row name header vertical-center",{selected:s.selected}]),textContent:(0,a.zw)(s.group.friendly_name),onClick:t[0]||(t[0]=t=>e.$emit("select"))},null,10,Lt),s.selected?((0,i.wg)(),(0,i.iD)("div",Yt,[(0,i._)("div",Ut,[Ht,(0,i._)("div",Pt,[(0,i._)("form",null,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(s.devices,((e,t)=>((0,i.wg)(),(0,i.iD)("label",{class:"row",key:t},[(0,i._)("input",{type:"checkbox",checked:r.members.has(e.ieee_address),value:e.ieee_address,onChange:t=>r.toggleDevice(e.ieee_address)},null,40,Xt),(0,i._)("span",{class:"label",textContent:(0,a.zw)(e.friendly_name?.length?e.friendly_name:e.ieee_address)},null,8,Wt)])))),128))])])]),(0,i._)("div",Jt,[Kt,(0,i._)("div",Qt,[(0,i._)("div",{class:"row",onClick:t[1]||(t[1]=(...e)=>r.rename&&r.rename(...e))},ss),(0,i._)("div",{class:"row",onClick:t[2]||(t[2]=(...e)=>r.remove&&r.remove(...e))},ns)])])])):(0,i.kq)("",!0)],2)}var rs={name:"Group",emits:["select","remove","edit"],mixins:[ae.Z],components:{Loading:ie.Z},props:{group:{type:Object,required:!0},devices:{type:Object,default:()=>({})},selected:{type:Boolean,default:!1}},data(){return{loading:!1,values:{}}},computed:{devicesByAddress(){return Object.entries(this.devices).reduce(((e,t)=>{const s=t[1];return e[s.ieee_address]=s,e}),{})},members(){return new Set((this.group.members||[]).map((e=>e.ieee_address)))}},methods:{async remove(){if(confirm("Are you sure that you want to remove this group?")){this.loading=!0;try{await this.request("zigbee.mqtt.group_remove",{name:this.group.friendly_name}),this.$emit("remove",{name:this.group.friendly_name})}finally{this.loading=!1}}},async rename(){let e=prompt("New group name",this.group.friendly_name);if(e?.length){e=e.trim(),this.loading=!0;try{await this.request("zigbee.mqtt.group_rename",{group:this.group.friendly_name||this.group.id,name:e}),this.$emit("rename",{name:this.group.friendly_name,newName:e})}finally{this.loading=!1}}},async toggleDevice(e){const t=this.devicesByAddress[e],s=t.friendly_name?.length?t.friendly_name:e,i=this.members.has(e)?"remove":"add";this.loading=!0;try{await this.request(`zigbee.mqtt.group_${i}_device`,{group:this.group.friendly_name,device:s}),this.$emit("edit",{device:s,method:i})}finally{this.loading=!1}}}};const os=(0,$t.Z)(rs,[["render",ls],["__scopeId","data-v-7667f7ba"]]);var ds=os,us={name:"ZigbeeMqtt",components:{Modal:St.Z,Dropdown:te.Z,DropdownItem:se.Z,Loading:ie.Z,Device:Ft,Group:ds},mixins:[ae.Z],data(){return{devices:{},groups:{},status:{},loading:!1,selected:{view:"devices",deviceId:void 0,groupId:void 0},views:{devices:!0,groups:!0},modal:{group:{visible:!1}}}},methods:{async refreshDevices(){this.loading=!0;try{this.devices=(await this.request("zigbee.mqtt.devices")).reduce(((e,t)=>(t.friendly_name in this.devices&&(t={values:this.devices[t.friendly_name].values||{},...this.devices[t.friendly_name]}),e[t.friendly_name]=t,e)),{})}finally{this.loading=!1}},async refreshGroups(){this.loading=!0;try{this.groups=(await this.request("zigbee.mqtt.groups")).reduce(((e,t)=>(e[t.id]=t,e)),{})}finally{this.loading=!1}},async refreshInfo(){this.loading=!0;try{this.status=await this.request("zigbee.mqtt.info")}finally{this.loading=!1}},refresh(){this.refreshDevices(),this.refreshGroups(),this.refreshInfo()},updateProperties(e,t){this.devices[e].values=t},async addGroup(){const e=prompt("Group name");if(e&&e.length){this.loading=!0;try{await this.request("zigbee.mqtt.group_add",{name:e})}finally{this.loading=!1}await this.refreshGroups()}},async permitJoin(e){const t={permit:!!e};if(e){let e=prompt("Join allow period in seconds (0 or empty for no time limits)","60");t.seconds=e.length?parseInt(e):null}this.loading=!0;try{await this.request("zigbee.mqtt.permit_join",t),setTimeout(this.refreshInfo,1e3)}finally{this.loading=!1}},async factoryReset(){if(confirm("Are you SURE that you want to do a device factory reset?")||confirm("Are you REALLY sure? ALL network information and custom firmware will be lost!!")){this.loading=!0;try{await this.request("zigbee.mqtt.factory_reset")}finally{this.loading=!1}}},async addToGroup(e,t){this.loading=!0,await this.request("zigbee.mqtt.group_add_device",{device:e,group:t}),this.loading=!1;const s=this;setTimeout((()=>{s.refresh(),s.refreshGroups()}),100)}},created(){this.subscribe((()=>{this.notify({text:"WARNING: The controller is offline",error:!0})}),"on-zigbee-offline","platypush.message.event.zigbee.mqtt.ZigbeeMqttOfflineEvent"),this.subscribe((()=>{this.notify({text:"The controller is now online",iconClass:"fas fa-check"})}),"on-zigbee-online","platypush.message.event.zigbee.mqtt.ZigbeeMqttOnlineEvent"),this.subscribe((()=>{this.notify({text:"Failed to remove the device",error:!0})}),"on-zigbee-device-remove-failed","platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceRemovedFailedEvent"),this.subscribe((()=>{this.notify({text:"Failed to add the group",error:!0})}),"on-zigbee-group-add-failed","platypush.message.event.zigbee.mqtt.ZigbeeMqttGroupAddedFailedEvent"),this.subscribe((()=>{this.notify({text:"Failed to remove group",error:!0})}),"on-zigbee-group-remove-failed","platypush.message.event.zigbee.mqtt.ZigbeeMqttGroupRemovedFailedEvent"),this.subscribe((()=>{this.notify({text:"Failed to remove the devices from group",error:!0})}),"on-zigbee-remove-all-failed","platypush.message.event.zigbee.mqtt.ZigbeeMqttGroupRemoveAllFailedEvent"),this.subscribe((e=>{this.notify({text:e.error||"[Unknown error]",error:!0})}),"on-zigbee-error","platypush.message.event.zigbee.mqtt.ZigbeeMqttErrorEvent"),this.subscribe(this.refresh,"on-zigbee-device-update","platypush.message.event.zigbee.mqtt.ZigbeeMqttOnlineEvent","platypush.message.event.zigbee.mqtt.ZigbeeMqttDevicePairingEvent","platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceConnectedEvent","platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceBannedEvent","platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceRemovedEvent","platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceWhitelistedEvent","platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceRenamedEvent","platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceBindEvent","platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceUnbindEvent"),this.subscribe(this.refreshGroups,"on-zigbee-group-update","platypush.message.event.zigbee.mqtt.ZigbeeMqttGroupAddedEvent","platypush.message.event.zigbee.mqtt.ZigbeeMqttGroupRemovedEvent","platypush.message.event.zigbee.mqtt.ZigbeeMqttGroupRemoveAllEvent")},mounted(){this.refresh()},unmounted(){this.unsubscribe("on-zigbee-error"),this.unsubscribe("on-zigbee-remove-all-failed"),this.unsubscribe("on-zigbee-group-remove-failed"),this.unsubscribe("on-zigbee-group-add-failed"),this.unsubscribe("on-zigbee-device-remove-failed"),this.unsubscribe("on-zigbee-online"),this.unsubscribe("on-zigbee-offline"),this.unsubscribe("on-zigbee-device-update"),this.unsubscribe("on-zigbee-group-update")}};const cs=(0,$t.Z)(us,[["render",ee]]);var vs=cs}}]); -//# sourceMappingURL=1259.e873449c.js.map \ No newline at end of file +//# sourceMappingURL=1259.11016ad1.js.map \ No newline at end of file diff --git a/platypush/backend/http/webapp/dist/static/js/1259.e873449c.js.map b/platypush/backend/http/webapp/dist/static/js/1259.11016ad1.js.map similarity index 99% rename from platypush/backend/http/webapp/dist/static/js/1259.e873449c.js.map rename to platypush/backend/http/webapp/dist/static/js/1259.11016ad1.js.map index 5f1a4a9e24..23b441a3ec 100644 --- a/platypush/backend/http/webapp/dist/static/js/1259.e873449c.js.map +++ b/platypush/backend/http/webapp/dist/static/js/1259.11016ad1.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/1259.e873449c.js","mappings":"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","sources":["webpack://platypush/./src/components/panels/Light/color.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/panels/ZigbeeMqtt/Index.vue","webpack://platypush/./src/components/panels/ZigbeeMqtt/Device.vue","webpack://platypush/./src/components/panels/ZigbeeMqtt/Device.vue?8b6d","webpack://platypush/./src/components/panels/ZigbeeMqtt/Group.vue","webpack://platypush/./src/components/panels/ZigbeeMqtt/Group.vue?46cd","webpack://platypush/./src/components/panels/ZigbeeMqtt/Index.vue?dac0"],"sourcesContent":["export class ColorConverter {\n constructor(ranges) {\n this.ranges = {\n hue: [0, 360],\n sat: [0, 100],\n bri: [0, 100],\n ct: [154, 500],\n }\n\n if (ranges)\n for (const attr of Object.keys(this.ranges))\n if (ranges[attr])\n this.ranges[attr] = ranges[attr]\n }\n\n normalize(x, xRange, yRange) {\n return yRange[0] + (((x-xRange[0]) * (yRange[1]-yRange[0])) / (xRange[1]-xRange[0]))\n }\n\n hslToRgb(h, s, l) {\n [h, s, l] = [\n this.normalize(h, this.ranges.hue, [0, 360]),\n this.normalize(s, this.ranges.sat, [0, 100]),\n this.normalize(l, this.ranges.bri, [0, 100]),\n ]\n\n l /= 100\n const a = s * Math.min(l, 1 - l) / 100\n const f = n => {\n const k = (n + h / 30) % 12\n const color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1)\n return Math.round(255 * color)\n }\n\n return [f(0), f(8), f(4)]\n }\n\n rgbToHsl(r, g, b){\n r /= 255\n g /= 255\n b /= 255;\n const max = Math.max(r, g, b), min = Math.min(r, g, b);\n let h, s, l = (max + min) / 2;\n\n if(max === min){\n h = s = 0; // achromatic\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch(max){\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n\n return [\n parseInt(this.normalize(h, [0, 1], this.ranges.hue)),\n parseInt(this.normalize(s, [0, 1], this.ranges.sat)),\n parseInt(this.normalize(l, [0, 1], this.ranges.bri)),\n ]\n }\n\n xyToRgb(x, y, brightness) {\n // Set to maximum brightness if no custom value was given (Not the slick ECMAScript 6 way for compatibility reasons)\n if (brightness == null)\n brightness = this.ranges.bri[1];\n\n const z = 1.0 - x - y;\n const Y = (brightness / (this.ranges.bri[1]-1)).toFixed(2);\n const X = (Y / y) * x;\n const Z = (Y / y) * z;\n\n //Convert to RGB using Wide RGB D65 conversion\n let red \t= X * 1.656492 - Y * 0.354851 - Z * 0.255038;\n let green = -X * 0.707196 + Y * 1.655397 + Z * 0.036152;\n let blue \t= X * 0.051713 - Y * 0.121364 + Z * 1.011530;\n\n //If red, green or blue is larger than 1.0 set it back to the maximum of 1.0\n if (red > blue && red > green && red > 1.0) {\n green = green / red;\n blue = blue / red;\n red = 1.0;\n } else if (green > blue && green > red && green > 1.0) {\n red = red / green;\n blue = blue / green;\n green = 1.0;\n } else if (blue > red && blue > green && blue > 1.0) {\n red = red / blue;\n green = green / blue;\n blue = 1.0;\n }\n\n //Reverse gamma correction\n red \t= red <= 0.0031308 ? 12.92 * red : (1.0 + 0.055) * Math.pow(red, (1.0 / 2.4)) - 0.055;\n green \t= green <= 0.0031308 ? 12.92 * green : (1.0 + 0.055) * Math.pow(green, (1.0 / 2.4)) - 0.055;\n blue \t= blue <= 0.0031308 ? 12.92 * blue : (1.0 + 0.055) * Math.pow(blue, (1.0 / 2.4)) - 0.055;\n\n //Convert normalized decimal to decimal\n red \t= Math.round(red * 255);\n green \t= Math.round(green * 255);\n blue \t= Math.round(blue * 255);\n\n if (isNaN(red))\n red = 0;\n if (isNaN(green))\n green = 0;\n if (isNaN(blue))\n blue = 0;\n\n return [red, green, blue].map(\n (c) => Math.min(Math.max(0, c), 255)) // lgtm [js/automatic-semicolon-insertion]\n }\n\n rgbToXY(red, green, blue) {\n if (red > 1) { red /= 255; }\n if (green > 1) { green /= 255; }\n if (blue > 1) { blue /= 255; }\n\n //Apply a gamma correction to the RGB values, which makes the color more vivid and more the like the color displayed on the screen of your device\n red \t= (red > 0.04045) ? Math.pow((red + 0.055) / (1.0 + 0.055), 2.4) : (red / 12.92);\n green \t= (green > 0.04045) ? Math.pow((green + 0.055) / (1.0 + 0.055), 2.4) : (green / 12.92);\n blue \t= (blue > 0.04045) ? Math.pow((blue + 0.055) / (1.0 + 0.055), 2.4) : (blue / 12.92);\n\n //RGB values to XYZ using the Wide RGB D65 conversion formula\n const X \t\t= red * 0.664511 + green * 0.154324 + blue * 0.162028;\n const Y \t\t= red * 0.283881 + green * 0.668433 + blue * 0.047685;\n const Z \t\t= red * 0.000088 + green * 0.072310 + blue * 0.986039;\n\n //Calculate the xy values from the XYZ values\n let x \t\t= parseFloat((X / (X + Y + Z)).toFixed(4));\n let y \t\t= parseFloat((Y / (X + Y + Z)).toFixed(4));\n\n if (isNaN(x))\n x = 0;\n if (isNaN(y))\n y = 0;\n\n return [x, y];\n }\n\n rgbToBri(red, green, blue) {\n return Math.min(2 * this.rgbToHsl(red, green, blue)[2], this.ranges.bri[1])\n }\n\n getRGB(color) {\n if (color.red != null && color.green != null && color.blue != null)\n return [color.red, color.green, color.blue]\n if (color.r != null && color.g != null && color.b != null)\n return [color.r, color.g, color.b]\n if (color.rgb)\n return color.rgb\n }\n\n getXY(color) {\n if (color.x != null && color.y != null)\n return [color.x, color.y]\n if (color.xy)\n return color.xy\n }\n\n toRGB(color) {\n const rgb = this.getRGB(color)\n if (rgb)\n return rgb\n\n const xy = this.getXY(color)\n if (xy && color.bri)\n return this.xyToRgb(...xy, color.bri)\n if (color.hue && color.sat && color.bri)\n return this.hslToRgb(color.hue, color.sat, color.bri)\n\n console.debug('Could not determine color space')\n console.debug(color)\n }\n\n toXY(color) {\n const xy = this.getXY(color)\n if (xy && color.bri)\n return [xy[0], xy[1], color.bri]\n\n const rgb = this.getRGB(color)\n if (rgb)\n return this.rgbToXY(...rgb)\n\n if (color.hue && color.sat && color.bri) {\n const rgb = this.hslToRgb(color.hue, color.sat, color.bri)\n return this.rgbToXY(...rgb)\n }\n\n console.debug('Could not determine color space')\n console.debug(color)\n }\n\n toHSL(color) {\n if (color.hue && color.sat && color.bri)\n return [color.hue, color.sat, color.bri]\n\n const rgb = this.getRGB(color)\n if (rgb)\n return this.rgbToHsl(...rgb)\n\n const xy = this.getXY(color)\n if (xy && color.bri) {\n const rgb = this.xyToRgb(...xy, color.bri)\n return this.rgbToHsl(...rgb)\n }\n\n console.debug('Could not determine color space')\n console.debug(color)\n }\n\n hexToRgb(hex) {\n return [\n hex.slice(1, 3),\n hex.slice(3, 5),\n hex.slice(5, 7),\n ].map(_ => parseInt(_, 16))\n }\n\n rgbToHex(rgb) {\n return '#' + rgb.map((x) => {\n let hex = x.toString(16)\n if (hex.length < 2)\n hex = '0' + hex\n return hex\n }).join('')\n }\n}\n","\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=d90e850c&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=d90e850c&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-d90e850c\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./ToggleSwitch.vue?vue&type=template&id=eff375b6&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=eff375b6&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-eff375b6\"]])\n\nexport default __exports__","\n\n\n\n\n","\n\n\n\n\n","import { render } from \"./Device.vue?vue&type=template&id=6437b841&scoped=true\"\nimport script from \"./Device.vue?vue&type=script&lang=js\"\nexport * from \"./Device.vue?vue&type=script&lang=js\"\n\nimport \"./Device.vue?vue&type=style&index=0&id=6437b841&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-6437b841\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Group.vue?vue&type=template&id=7667f7ba&scoped=true\"\nimport script from \"./Group.vue?vue&type=script&lang=js\"\nexport * from \"./Group.vue?vue&type=script&lang=js\"\n\nimport \"./Group.vue?vue&type=style&index=0&id=7667f7ba&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-7667f7ba\"]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=b15233ac\"\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=b15233ac&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["ColorConverter","constructor","ranges","this","hue","sat","bri","ct","attr","Object","keys","normalize","x","xRange","yRange","hslToRgb","h","s","l","a","Math","min","f","n","k","color","max","round","rgbToHsl","r","g","b","d","parseInt","xyToRgb","y","brightness","z","Y","toFixed","X","Z","red","green","blue","pow","isNaN","map","c","rgbToXY","parseFloat","rgbToBri","getRGB","rgb","getXY","xy","toRGB","console","debug","toXY","toHSL","hexToRgb","hex","slice","_","rgbToHex","toString","length","join","class","_createElementBlock","_hoisted_1","$props","withRange","_normalizeClass","withLabel","_toDisplayString","range","_createElementVNode","_hoisted_4","type","step","disabled","value","ref","onInput","_cache","_withModifiers","$event","_ctx","$emit","onChange","emits","props","Number","Boolean","default","Array","__exports__","render","onClick","args","$options","checked","id","_hoisted_2","_hoisted_3","_renderSlot","$slots","undefined","name","String","methods","event","_hoisted_36","_hoisted_39","$data","loading","_createBlock","_component_Loading","key","_createVNode","_component_Modal","title","status","info","state","_hoisted_6","_hoisted_7","permit_join","network","_hoisted_9","_hoisted_10","channel","_hoisted_12","_hoisted_13","version","config","mqtt","_hoisted_15","_hoisted_16","server","serial","_hoisted_18","_hoisted_19","port","coordinator","_hoisted_21","_hoisted_22","meta","_hoisted_24","_hoisted_25","_hoisted_26","maintrel","majorrel","minorrel","_hoisted_27","_hoisted_28","revision","_hoisted_30","_hoisted_31","selected","view","target","_Fragment","_renderList","views","enabled","toUpperCase","replace","_hoisted_34","addGroup","_component_Dropdown","_component_DropdownItem","text","$refs","infoModal","show","permitJoin","factoryReset","refresh","_hoisted_41","_hoisted_42","devices","_hoisted_43","_hoisted_44","_hoisted_45","device","_component_Device","groups","deviceId","onSelect","onRename","refreshDevices","onRemove","onGroupsEdit","refreshGroups","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","group","_component_Group","groupId","onEdit","_hoisted_17","_hoisted_70","_hoisted_71","_hoisted_76","_hoisted_77","_hoisted_79","_hoisted_80","onSubmit","manageGroups","associatedGroups","has","friendly_name","ieee_address","_hoisted_8","hidden","editName","rename","_hoisted_11","_hoisted_14","_hoisted_20","network_address","_hoisted_23","definition","vendor","_hoisted_29","model","_hoisted_32","_hoisted_33","model_id","_hoisted_35","description","_hoisted_37","_hoisted_38","software_build_id","_hoisted_40","date_code","power_source","displayedValues","_hoisted_50","_hoisted_51","property","_hoisted_52","rgbColor","saturation","_hoisted_53","unit","_hoisted_56","_component_ToggleSwitch","value_on","writable","setValue","value_min","value_max","_component_Slider","_hoisted_59","readable","_hoisted_61","values","option","_hoisted_63","i","_hoisted_65","_hoisted_57","_hoisted_67","_hoisted_68","_hoisted_69","groupsModal","otaUpdatesAvailable","installOtaUpdates","checkOtaUpdates","_hoisted_74","_hoisted_73","_hoisted_75","remove","components","Modal","ToggleSwitch","Slider","Loading","mixins","Utils","required","data","computed","exposes","extractValues","extractValue","root","features","feature","ret","mergeValues","obj","access","entries","filter","v","reduce","converter","satAttr","Set","members","member","request","trim","newName","force","confirm","value_toggle","value_off","split","hsl","querySelectorAll","element","add","editGroups","async","Promise","all","action","update_available","notify","image","iconClass","mounted","$watch","newValue","subscribe","properties","unmounted","unsubscribe","_hoisted_5","toggleDevice","devicesByAddress","entry","prompt","ieeeAddress","method","Dropdown","DropdownItem","Device","Group","modal","visible","refreshInfo","updateProperties","permit","seconds","setTimeout","addToGroup","self","created","error"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/1259.11016ad1.js","mappings":"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","sources":["webpack://platypush/./src/components/panels/Light/color.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/panels/ZigbeeMqtt/Index.vue","webpack://platypush/./src/components/panels/ZigbeeMqtt/Device.vue","webpack://platypush/./src/components/panels/ZigbeeMqtt/Device.vue?8b6d","webpack://platypush/./src/components/panels/ZigbeeMqtt/Group.vue","webpack://platypush/./src/components/panels/ZigbeeMqtt/Group.vue?46cd","webpack://platypush/./src/components/panels/ZigbeeMqtt/Index.vue?dac0"],"sourcesContent":["export class ColorConverter {\n constructor(ranges) {\n this.ranges = {\n hue: [0, 360],\n sat: [0, 100],\n bri: [0, 100],\n ct: [154, 500],\n }\n\n if (ranges)\n for (const attr of Object.keys(this.ranges))\n if (ranges[attr])\n this.ranges[attr] = ranges[attr]\n }\n\n normalize(x, xRange, yRange) {\n return yRange[0] + (((x-xRange[0]) * (yRange[1]-yRange[0])) / (xRange[1]-xRange[0]))\n }\n\n hslToRgb(h, s, l) {\n [h, s, l] = [\n this.normalize(h, this.ranges.hue, [0, 360]),\n this.normalize(s, this.ranges.sat, [0, 100]),\n this.normalize(l, this.ranges.bri, [0, 100]),\n ]\n\n l /= 100\n const a = s * Math.min(l, 1 - l) / 100\n const f = n => {\n const k = (n + h / 30) % 12\n const color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1)\n return Math.round(255 * color)\n }\n\n return [f(0), f(8), f(4)]\n }\n\n rgbToHsl(r, g, b){\n r /= 255\n g /= 255\n b /= 255;\n const max = Math.max(r, g, b), min = Math.min(r, g, b);\n let h, s, l = (max + min) / 2;\n\n if(max === min){\n h = s = 0; // achromatic\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch(max){\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n\n return [\n parseInt(this.normalize(h, [0, 1], this.ranges.hue)),\n parseInt(this.normalize(s, [0, 1], this.ranges.sat)),\n parseInt(this.normalize(l, [0, 1], this.ranges.bri)),\n ]\n }\n\n xyToRgb(x, y, brightness) {\n // Set to maximum brightness if no custom value was given (Not the slick ECMAScript 6 way for compatibility reasons)\n if (brightness == null)\n brightness = this.ranges.bri[1];\n\n const z = 1.0 - x - y;\n const Y = (brightness / (this.ranges.bri[1]-1)).toFixed(2);\n const X = (Y / y) * x;\n const Z = (Y / y) * z;\n\n //Convert to RGB using Wide RGB D65 conversion\n let red \t= X * 1.656492 - Y * 0.354851 - Z * 0.255038;\n let green = -X * 0.707196 + Y * 1.655397 + Z * 0.036152;\n let blue \t= X * 0.051713 - Y * 0.121364 + Z * 1.011530;\n\n //If red, green or blue is larger than 1.0 set it back to the maximum of 1.0\n if (red > blue && red > green && red > 1.0) {\n green = green / red;\n blue = blue / red;\n red = 1.0;\n } else if (green > blue && green > red && green > 1.0) {\n red = red / green;\n blue = blue / green;\n green = 1.0;\n } else if (blue > red && blue > green && blue > 1.0) {\n red = red / blue;\n green = green / blue;\n blue = 1.0;\n }\n\n //Reverse gamma correction\n red \t= red <= 0.0031308 ? 12.92 * red : (1.0 + 0.055) * Math.pow(red, (1.0 / 2.4)) - 0.055;\n green \t= green <= 0.0031308 ? 12.92 * green : (1.0 + 0.055) * Math.pow(green, (1.0 / 2.4)) - 0.055;\n blue \t= blue <= 0.0031308 ? 12.92 * blue : (1.0 + 0.055) * Math.pow(blue, (1.0 / 2.4)) - 0.055;\n\n //Convert normalized decimal to decimal\n red \t= Math.round(red * 255);\n green \t= Math.round(green * 255);\n blue \t= Math.round(blue * 255);\n\n if (isNaN(red))\n red = 0;\n if (isNaN(green))\n green = 0;\n if (isNaN(blue))\n blue = 0;\n\n return [red, green, blue].map(\n (c) => Math.min(Math.max(0, c), 255)) // lgtm [js/automatic-semicolon-insertion]\n }\n\n rgbToXY(red, green, blue) {\n if (red > 1) { red /= 255; }\n if (green > 1) { green /= 255; }\n if (blue > 1) { blue /= 255; }\n\n //Apply a gamma correction to the RGB values, which makes the color more vivid and more the like the color displayed on the screen of your device\n red \t= (red > 0.04045) ? Math.pow((red + 0.055) / (1.0 + 0.055), 2.4) : (red / 12.92);\n green \t= (green > 0.04045) ? Math.pow((green + 0.055) / (1.0 + 0.055), 2.4) : (green / 12.92);\n blue \t= (blue > 0.04045) ? Math.pow((blue + 0.055) / (1.0 + 0.055), 2.4) : (blue / 12.92);\n\n //RGB values to XYZ using the Wide RGB D65 conversion formula\n const X \t\t= red * 0.664511 + green * 0.154324 + blue * 0.162028;\n const Y \t\t= red * 0.283881 + green * 0.668433 + blue * 0.047685;\n const Z \t\t= red * 0.000088 + green * 0.072310 + blue * 0.986039;\n\n //Calculate the xy values from the XYZ values\n let x \t\t= parseFloat((X / (X + Y + Z)).toFixed(4));\n let y \t\t= parseFloat((Y / (X + Y + Z)).toFixed(4));\n\n if (isNaN(x))\n x = 0;\n if (isNaN(y))\n y = 0;\n\n return [x, y];\n }\n\n rgbToBri(red, green, blue) {\n return Math.min(2 * this.rgbToHsl(red, green, blue)[2], this.ranges.bri[1])\n }\n\n getRGB(color) {\n if (color.red != null && color.green != null && color.blue != null)\n return [color.red, color.green, color.blue]\n if (color.r != null && color.g != null && color.b != null)\n return [color.r, color.g, color.b]\n if (color.rgb)\n return color.rgb\n }\n\n getXY(color) {\n if (color.x != null && color.y != null)\n return [color.x, color.y]\n if (color.xy)\n return color.xy\n }\n\n toRGB(color) {\n const rgb = this.getRGB(color)\n if (rgb)\n return rgb\n\n const xy = this.getXY(color)\n if (xy && color.bri)\n return this.xyToRgb(...xy, color.bri)\n if (color.hue && color.sat && color.bri)\n return this.hslToRgb(color.hue, color.sat, color.bri)\n\n console.debug('Could not determine color space')\n console.debug(color)\n }\n\n toXY(color) {\n const xy = this.getXY(color)\n if (xy && color.bri)\n return [xy[0], xy[1], color.bri]\n\n const rgb = this.getRGB(color)\n if (rgb)\n return this.rgbToXY(...rgb)\n\n if (color.hue && color.sat && color.bri) {\n const rgb = this.hslToRgb(color.hue, color.sat, color.bri)\n return this.rgbToXY(...rgb)\n }\n\n console.debug('Could not determine color space')\n console.debug(color)\n }\n\n toHSL(color) {\n if (color.hue && color.sat && color.bri)\n return [color.hue, color.sat, color.bri]\n\n const rgb = this.getRGB(color)\n if (rgb)\n return this.rgbToHsl(...rgb)\n\n const xy = this.getXY(color)\n if (xy && color.bri) {\n const rgb = this.xyToRgb(...xy, color.bri)\n return this.rgbToHsl(...rgb)\n }\n\n console.debug('Could not determine color space')\n console.debug(color)\n }\n\n hexToRgb(hex) {\n return [\n hex.slice(1, 3),\n hex.slice(3, 5),\n hex.slice(5, 7),\n ].map(_ => parseInt(_, 16))\n }\n\n rgbToHex(rgb) {\n return '#' + rgb.map((x) => {\n let hex = x.toString(16)\n if (hex.length < 2)\n hex = '0' + hex\n return hex\n }).join('')\n }\n}\n","\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=d90e850c&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=d90e850c&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-d90e850c\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./ToggleSwitch.vue?vue&type=template&id=eff375b6&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=eff375b6&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-eff375b6\"]])\n\nexport default __exports__","\n\n\n\n\n","\n\n\n\n\n","import { render } from \"./Device.vue?vue&type=template&id=6437b841&scoped=true\"\nimport script from \"./Device.vue?vue&type=script&lang=js\"\nexport * from \"./Device.vue?vue&type=script&lang=js\"\n\nimport \"./Device.vue?vue&type=style&index=0&id=6437b841&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-6437b841\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Group.vue?vue&type=template&id=7667f7ba&scoped=true\"\nimport script from \"./Group.vue?vue&type=script&lang=js\"\nexport * from \"./Group.vue?vue&type=script&lang=js\"\n\nimport \"./Group.vue?vue&type=style&index=0&id=7667f7ba&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-7667f7ba\"]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=b15233ac\"\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=b15233ac&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["ColorConverter","constructor","ranges","this","hue","sat","bri","ct","attr","Object","keys","normalize","x","xRange","yRange","hslToRgb","h","s","l","a","Math","min","f","n","k","color","max","round","rgbToHsl","r","g","b","d","parseInt","xyToRgb","y","brightness","z","Y","toFixed","X","Z","red","green","blue","pow","isNaN","map","c","rgbToXY","parseFloat","rgbToBri","getRGB","rgb","getXY","xy","toRGB","console","debug","toXY","toHSL","hexToRgb","hex","slice","_","rgbToHex","toString","length","join","class","_createElementBlock","_hoisted_1","$props","withRange","_normalizeClass","withLabel","_toDisplayString","range","_createElementVNode","_hoisted_4","type","step","disabled","value","ref","onInput","_cache","_withModifiers","$event","_ctx","$emit","onChange","emits","props","Number","Boolean","default","Array","__exports__","render","onClick","args","$options","checked","id","_hoisted_2","_hoisted_3","_renderSlot","$slots","undefined","name","String","methods","event","_hoisted_36","_hoisted_39","$data","loading","_createBlock","_component_Loading","key","_createVNode","_component_Modal","title","status","info","state","_hoisted_6","_hoisted_7","permit_join","network","_hoisted_9","_hoisted_10","channel","_hoisted_12","_hoisted_13","version","config","mqtt","_hoisted_15","_hoisted_16","server","serial","_hoisted_18","_hoisted_19","port","coordinator","_hoisted_21","_hoisted_22","meta","_hoisted_24","_hoisted_25","_hoisted_26","maintrel","majorrel","minorrel","_hoisted_27","_hoisted_28","revision","_hoisted_30","_hoisted_31","selected","view","target","_Fragment","_renderList","views","enabled","toUpperCase","replace","_hoisted_34","addGroup","_component_Dropdown","_component_DropdownItem","text","$refs","infoModal","show","permitJoin","factoryReset","refresh","_hoisted_41","_hoisted_42","devices","_hoisted_43","_hoisted_44","_hoisted_45","device","_component_Device","groups","deviceId","onSelect","onRename","refreshDevices","onRemove","onGroupsEdit","refreshGroups","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","group","_component_Group","groupId","onEdit","_hoisted_17","_hoisted_70","_hoisted_71","_hoisted_76","_hoisted_77","_hoisted_79","_hoisted_80","onSubmit","manageGroups","associatedGroups","has","friendly_name","ieee_address","_hoisted_8","hidden","editName","rename","_hoisted_11","_hoisted_14","_hoisted_20","network_address","_hoisted_23","definition","vendor","_hoisted_29","model","_hoisted_32","_hoisted_33","model_id","_hoisted_35","description","_hoisted_37","_hoisted_38","software_build_id","_hoisted_40","date_code","power_source","displayedValues","_hoisted_50","_hoisted_51","property","_hoisted_52","rgbColor","saturation","_hoisted_53","unit","_hoisted_56","_component_ToggleSwitch","value_on","writable","setValue","value_min","value_max","_component_Slider","_hoisted_59","readable","_hoisted_61","values","option","_hoisted_63","i","_hoisted_65","_hoisted_57","_hoisted_67","_hoisted_68","_hoisted_69","groupsModal","otaUpdatesAvailable","installOtaUpdates","checkOtaUpdates","_hoisted_74","_hoisted_73","_hoisted_75","remove","components","Modal","ToggleSwitch","Slider","Loading","mixins","Utils","required","data","computed","exposes","extractValues","extractValue","root","features","feature","ret","mergeValues","obj","access","entries","filter","v","reduce","converter","satAttr","Set","members","member","request","trim","newName","force","confirm","value_toggle","value_off","split","hsl","querySelectorAll","element","add","editGroups","async","Promise","all","action","update_available","notify","image","iconClass","mounted","$watch","newValue","subscribe","properties","unmounted","unsubscribe","_hoisted_5","toggleDevice","devicesByAddress","entry","prompt","ieeeAddress","method","Dropdown","DropdownItem","Device","Group","modal","visible","refreshInfo","updateProperties","permit","seconds","setTimeout","addToGroup","self","created","error"],"sourceRoot":""} \ No newline at end of file diff --git a/platypush/backend/http/webapp/dist/static/js/1420.a092f576.js b/platypush/backend/http/webapp/dist/static/js/1420.a092f576.js deleted file mode 100644 index 7a40d43ae1..0000000000 --- a/platypush/backend/http/webapp/dist/static/js/1420.a092f576.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[1420],{1065:function(t,e,s){s.d(e,{Z:function(){return l}});s(560);var a=s(8637),n={name:"Utils",mixins:[a.Z],computed:{audioExtensions(){return new Set(["3gp","aa","aac","aax","act","aiff","amr","ape","au","awb","dct","dss","dvf","flac","gsm","iklax","ivs","m4a","m4b","m4p","mmf","mp3","mpc","msv","nmf","nsf","ogg,","opus","ra,","raw","sln","tta","vox","wav","wma","wv","webm","8svx"])},videoExtensions(){return new Set(["webm","mkv","flv","flv","vob","ogv","ogg","drc","gif","gifv","mng","avi","mts","m2ts","mov","qt","wmv","yuv","rm","rmvb","asf","amv","mp4","m4p","m4v","mpg","mp2","mpeg","mpe","mpv","mpg","mpeg","m2v","m4v","svi","3gp","3g2","mxf","roq","nsv","flv","f4v","f4p","f4a","f4b"])},mediaExtensions(){return new Set([...this.videoExtensions,...this.audioExtensions])}},methods:{convertTime(t){t=parseFloat(t);const e={};e.h=""+parseInt(t/3600),e.m=""+parseInt(t/60-60*e.h),e.s=""+parseInt(t-(3600*e.h+60*e.m));for(const a of["m","s"])parseInt(e[a])<10&&(e[a]="0"+e[a]);const s=[];return parseInt(e.h)&&s.push(e.h),s.push(e.m,e.s),s.join(":")},async startStreaming(t,e,s=!1){let a=t,n=null;t instanceof Object?(a=t.url,n=t.subtitles):t={url:a};const o=await this.request(`${e}.start_streaming`,{media:a,subtitles:n,download:s});return{...t,...o}},async stopStreaming(t,e){await this.request(`${e}.stop_streaming`,{media_id:t})}}};const o=n;var l=o},1420:function(t,e,s){s.d(e,{Z:function(){return At}});var a=s(6252);const n={class:"media-container"},o={class:"view-container"},l={class:"controls-container"};function i(t,e,s,i,u,r){const c=(0,a.up)("Controls");return(0,a.wg)(),(0,a.iD)("div",n,[(0,a._)("div",o,[(0,a.WI)(t.$slots,"default",{},void 0,!0)]),(0,a._)("div",l,[(0,a.Wm)(c,{status:s.status,track:s.track,buttons:s.buttons,onPlay:e[0]||(e[0]=e=>t.$emit("play",e)),onPause:e[1]||(e[1]=e=>t.$emit("pause",e)),onStop:e[2]||(e[2]=e=>t.$emit("stop")),onPrevious:e[3]||(e[3]=e=>t.$emit("previous")),onNext:e[4]||(e[4]=e=>t.$emit("next")),onSeek:e[5]||(e[5]=e=>t.$emit("seek",e)),onSetVolume:e[6]||(e[6]=e=>t.$emit("set-volume",e)),onConsume:e[7]||(e[7]=e=>t.$emit("consume",e)),onRepeat:e[8]||(e[8]=e=>t.$emit("repeat",e)),onRandom:e[9]||(e[9]=e=>t.$emit("random",e)),onSearch:e[10]||(e[10]=e=>t.$emit("search",e)),onMute:e[11]||(e[11]=e=>t.$emit("mute")),onUnmute:e[12]||(e[12]=e=>t.$emit("unmute"))},null,8,["status","track","buttons"])])])}var u=s(3577),r=s(9963);const c=t=>((0,a.dD)("data-v-34374f87"),t=t(),(0,a.Cn)(),t),m={key:0,class:"remote-image-container"},p=["src","alt"],d={key:1,class:"icon-container"},v={class:"row buttons-container"},k={class:"buttons"},g={class:"buttons"},b=c((()=>(0,a._)("i",{class:"icon fa fa-step-backward"},null,-1))),f=[b],y=c((()=>(0,a._)("i",{class:"icon fa fa-stop"},null,-1))),w=[y],h=c((()=>(0,a._)("i",{class:"icon fa fa-step-forward"},null,-1))),_=[h],C={class:"row"},x={class:"row"},$={class:"controls"},D={class:"playback-controls until tablet col-2"},S={class:"track-container col-s-9 col-m-9 col-l-3"},q={key:0,class:"track-info"},P={key:0,class:"img-container"},I=["src","alt"],Z={class:"title-container"},R={key:0,class:"title"},T=["href","textContent"],j=["href","textContent"],O=["textContent"],W={key:1,class:"artist"},M=["href","textContent"],z={class:"playback-controls from desktop col-6"},N={class:"row buttons"},B=c((()=>(0,a._)("i",{class:"icon fa fa-step-backward"},null,-1))),E=[B],V=c((()=>(0,a._)("i",{class:"icon fa fa-stop"},null,-1))),U=[V],L=c((()=>(0,a._)("i",{class:"icon fa fa-step-forward"},null,-1))),A=[L],H={class:"row"},F={class:"col-1 until tablet right-controls"},Y=["title"],G={class:"col-3 from desktop right-controls"};function J(t,e,s,n,o,l){const i=(0,a.up)("VolumeSlider"),c=(0,a.up)("ExtraControls"),b=(0,a.up)("ProgressBar"),y=(0,a.up)("PlayPauseButton");return(0,a.wg)(),(0,a.iD)(a.HY,null,[(0,a._)("div",{class:(0,u.C_)(["extension fade-in",{hidden:!o.expanded}])},["stop"!==s.status?.state?((0,a.wg)(),(0,a.iD)("div",{key:0,class:"image-container",onClick:e[0]||(e[0]=(0,r.iM)(((...t)=>l.onImageClick&&l.onImageClick(...t)),["prevent"]))},[s.track?.image?((0,a.wg)(),(0,a.iD)("div",m,[(0,a._)("img",{class:"image",src:s.track.image,alt:s.track.title},null,8,p)])):((0,a.wg)(),(0,a.iD)("div",d,[(0,a._)("i",{class:(0,u.C_)(["icon fas fa-compact-disc",{playing:"play"===s.status?.state}])},null,2)]))])):(0,a.kq)("",!0),(0,a._)("div",v,[(0,a._)("div",k,[(0,a._)("div",g,[o.buttons_.previous?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[1]||(e[1]=e=>t.$emit("previous")),title:"Play previous track"},f)):(0,a.kq)("",!0),o.buttons_.stop&&"stop"!==s.status.state?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[2]||(e[2]=e=>t.$emit("stop")),title:"Stop playback"},w)):(0,a.kq)("",!0),o.buttons_.next?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[3]||(e[3]=e=>t.$emit("next")),title:"Play next track"},_)):(0,a.kq)("",!0)])])]),(0,a._)("div",C,[(0,a.Wm)(i,{value:s.status.volume,range:s.volumeRange,status:s.status,onMute:e[4]||(e[4]=e=>t.$emit("mute")),onUnmute:e[5]||(e[5]=e=>t.$emit("unmute")),onSetVolume:e[6]||(e[6]=e=>t.$emit("set-volume",e))},null,8,["value","range","status"]),(0,a.Wm)(c,{status:s.status,buttons:o.buttons_,onConsume:e[7]||(e[7]=e=>t.$emit("consume",!s.status.consume)),onRandom:e[8]||(e[8]=e=>t.$emit("random",!s.status.random)),onRepeat:e[9]||(e[9]=e=>t.$emit("repeat",!s.status.repeat))},null,8,["status","buttons"])]),(0,a._)("div",x,[(0,a.Wm)(b,{elapsed:o.elapsed,duration:l.duration,status:s.status,onSeek:e[10]||(e[10]=e=>t.$emit("seek",e))},null,8,["elapsed","duration","status"])])],2),(0,a._)("div",$,[(0,a._)("div",D,[(0,a.Wm)(y,{status:s.status,onPlay:e[11]||(e[11]=e=>t.$emit("play")),onPause:e[12]||(e[12]=e=>t.$emit("pause"))},null,8,["status"])]),(0,a._)("div",S,[s.track&&"stop"!==s.status?.state?((0,a.wg)(),(0,a.iD)("div",q,[s.track.image?((0,a.wg)(),(0,a.iD)("div",P,[(0,a._)("img",{class:"image from desktop",src:s.track.image,alt:s.track.title},null,8,I)])):(0,a.kq)("",!0),(0,a._)("div",Z,["play"===s.status.state||"pause"===s.status.state?((0,a.wg)(),(0,a.iD)("div",R,[s.track.album?((0,a.wg)(),(0,a.iD)("a",{key:0,href:t.$route.fullPath,textContent:(0,u.zw)(s.track.title?.length?s.track.title:"[No Title]"),onClick:e[13]||(e[13]=(0,r.iM)((e=>t.$emit("search",{artist:s.track.artist,album:s.track.album})),["prevent"]))},null,8,T)):s.track.url?((0,a.wg)(),(0,a.iD)("a",{key:1,href:s.track.url,textContent:(0,u.zw)(s.track.title?.length?s.track.title:"[No Title]")},null,8,j)):((0,a.wg)(),(0,a.iD)("span",{key:2,textContent:(0,u.zw)(s.track.title?.length?s.track.title:"[No Title]")},null,8,O))])):(0,a.kq)("",!0),!s.track.artist?.length||"play"!==s.status.state&&"pause"!==s.status.state?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",W,[(0,a._)("a",{href:t.$route.fullPath,textContent:(0,u.zw)(s.track.artist),onClick:e[14]||(e[14]=(0,r.iM)((e=>t.$emit("search",{artist:s.track.artist})),["prevent"]))},null,8,M)]))])])):(0,a.kq)("",!0)]),(0,a._)("div",z,[(0,a._)("div",N,[o.buttons_.previous?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[15]||(e[15]=e=>t.$emit("previous")),title:"Play previous track"},E)):(0,a.kq)("",!0),(0,a.Wm)(y,{status:s.status,onPlay:e[16]||(e[16]=e=>t.$emit("play")),onPause:e[17]||(e[17]=e=>t.$emit("pause"))},null,8,["status"]),o.buttons_.stop&&"stop"!==s.status.state?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[18]||(e[18]=e=>t.$emit("stop")),title:"Stop playback"},U)):(0,a.kq)("",!0),o.buttons_.next?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[19]||(e[19]=e=>t.$emit("next")),title:"Play next track"},A)):(0,a.kq)("",!0)]),(0,a._)("div",H,[(0,a.Wm)(b,{elapsed:o.elapsed,duration:l.duration,status:s.status,onSeek:e[20]||(e[20]=e=>t.$emit("seek",e))},null,8,["elapsed","duration","status"])])]),(0,a._)("div",F,[(0,a._)("button",{onClick:e[21]||(e[21]=t=>o.expanded=!o.expanded),title:o.expanded?"Show more controls":"Hide extra controls"},[(0,a._)("i",{class:(0,u.C_)(["fas",["fa-chevron-"+(o.expanded?"down":"up")]])},null,2)],8,Y)]),(0,a._)("div",G,[(0,a.Wm)(i,{value:s.status.volume,range:s.volumeRange,status:s.status,onMute:e[22]||(e[22]=e=>t.$emit("mute")),onUnmute:e[23]||(e[23]=e=>t.$emit("unmute")),onSetVolume:e[24]||(e[24]=e=>t.$emit("set-volume",e))},null,8,["value","range","status"]),(0,a.Wm)(c,{status:s.status,buttons:o.buttons_,onConsume:e[25]||(e[25]=e=>t.$emit("consume",!s.status.consume)),onRandom:e[26]||(e[26]=e=>t.$emit("random",!s.status.random)),onRepeat:e[27]||(e[27]=e=>t.$emit("repeat",!s.status.repeat))},null,8,["status","buttons"])])])],64)}var K=s(8637),Q=s(1065);const X=t=>((0,a.dD)("data-v-772c7a5b"),t=t(),(0,a.Cn)(),t),tt={class:"extra-controls-container"},et=X((()=>(0,a._)("i",{class:"icon fa fa-utensils"},null,-1))),st=[et],at=X((()=>(0,a._)("i",{class:"icon fa fa-random"},null,-1))),nt=[at],ot=X((()=>(0,a._)("i",{class:"icon fa fa-redo"},null,-1))),lt=[ot];function it(t,e,s,n,o,l){return(0,a.wg)(),(0,a.iD)("div",tt,[s.buttons.consume?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[0]||(e[0]=e=>t.$emit("consume")),class:(0,u.C_)({enabled:s.status.consume}),title:"Toggle consume mode"},st,2)):(0,a.kq)("",!0),s.buttons.random?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[1]||(e[1]=e=>t.$emit("random")),class:(0,u.C_)({enabled:s.status.random}),title:"Toggle shuffle"},nt,2)):(0,a.kq)("",!0),s.buttons.repeat?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[2]||(e[2]=e=>t.$emit("repeat")),class:(0,u.C_)({enabled:s.status.repeat}),title:"Toggle repeat"},lt,2)):(0,a.kq)("",!0)])}var ut={emits:["consume","random","repeat"],props:{status:{type:Object,default:()=>({})},buttons:{type:Object,default:()=>({})}}},rt=s(3744);const ct=(0,rt.Z)(ut,[["render",it],["__scopeId","data-v-772c7a5b"]]);var mt=ct;const pt=["title"],dt={key:0,class:"icon play-pause fa fa-pause"},vt={key:1,class:"icon play-pause fa fa-play"};function kt(t,e,s,n,o,l){return(0,a.wg)(),(0,a.iD)("button",{onClick:e[0]||(e[0]=e=>t.$emit("play"===s.status.state?"pause":"play")),title:"play"===s.status.state?"Pause":"Play"},["play"===s.status.state?((0,a.wg)(),(0,a.iD)("i",dt)):((0,a.wg)(),(0,a.iD)("i",vt))],8,pt)}var gt={emits:["play","pause"],props:{status:{type:Object,default:()=>({})}}};const bt=(0,rt.Z)(gt,[["render",kt],["__scopeId","data-v-a742ddb0"]]);var ft=bt;const yt={class:"progress-bar-container"},wt={class:"col-s-2 col-m-1 time"},ht=["textContent"],_t={class:"col-s-8 col-m-10 time-bar"},Ct={class:"col-s-2 col-m-1 time"},xt=["textContent"];function $t(t,e,s,n,o,l){const i=(0,a.up)("Slider");return(0,a.wg)(),(0,a.iD)("div",yt,[(0,a._)("div",wt,[(0,a._)("span",{class:"elapsed-time",textContent:(0,u.zw)(null==s.elapsed||"play"!==s.status.state&&"pause"!==s.status.state?"-:--":t.convertTime(s.elapsed))},null,8,ht)]),(0,a._)("div",_t,[(0,a.Wm)(i,{value:s.elapsed,range:[0,s.duration],disabled:!s.duration||"stop"===s.status.state,onChange:e[0]||(e[0]=e=>t.$emit("seek",e.target.value))},null,8,["value","range","disabled"])]),(0,a._)("div",Ct,[(0,a._)("span",{class:"total-time",textContent:(0,u.zw)(s.duration&&"stop"!==s.status.state?t.convertTime(s.duration):"-:--")},null,8,xt)])])}var Dt=s(8140),St={components:{Slider:Dt.Z},emits:["seek"],mixins:[Q.Z],props:{elapsed:{type:Number},duration:{type:Number},status:{type:Object,default:()=>({})}}};const qt=(0,rt.Z)(St,[["render",$t],["__scopeId","data-v-3894ad4d"]]);var Pt=qt;const It={class:"volume-slider-container"},Zt={class:"col-1"},Rt=["disabled","title"],Tt={key:0,class:"icon fa fa-volume-xmark"},jt={key:1,class:"icon fa fa-volume-up"},Ot={class:"col-11 volume-slider"};function Wt(t,e,s,n,o,l){const i=(0,a.up)("Slider");return(0,a.wg)(),(0,a.iD)("div",It,[(0,a._)("div",Zt,[(0,a._)("button",{disabled:null==s.status.mute,title:s.status.mute?"Muted":"Unmuted",onClick:e[0]||(e[0]=e=>t.$emit(s.status.mute?"unmute":"mute"))},[s.status.mute?((0,a.wg)(),(0,a.iD)("i",Tt)):((0,a.wg)(),(0,a.iD)("i",jt))],8,Rt)]),(0,a._)("div",Ot,[(0,a.Wm)(i,{value:s.status.volume,range:s.volumeRange,disabled:null==s.status.volume,onChange:e[1]||(e[1]=e=>t.$emit("set-volume",e.target.value))},null,8,["value","range","disabled"])])])}var Mt={components:{Slider:Dt.Z},emits:["set-volume","mute","unmute"],props:{volumeRange:{type:Array,default:()=>[0,100]},status:{type:Object,default:()=>({})}}};const zt=(0,rt.Z)(Mt,[["render",Wt],["__scopeId","data-v-662f988f"]]);var Nt=zt,Bt={components:{ExtraControls:mt,PlayPauseButton:ft,ProgressBar:Pt,VolumeSlider:Nt},mixins:[K.Z,Q.Z],emits:["consume","mute","next","pause","play","previous","random","repeat","search","seek","set-volume","stop","unmute"],props:{track:{type:Object},status:{type:Object,default:()=>{}},buttons:{type:Object,default:()=>({previous:!0,next:!0,stop:!0,consume:!0,random:!0,repeat:!0})},volumeRange:{type:Array,default:()=>[0,100]}},data(){const t=Object.keys(this.buttons)?.length?this.buttons:{previous:!0,next:!0,stop:!0,consume:!0,random:!0,repeat:!0};return{expanded:!1,lastSync:0,elapsed:this.status?.elapsed||this.status?.position,buttons_:t}},computed:{duration(){return null!=this.status?.duration?this.status.duration:this.track?.duration}},methods:{getTime(){return(new Date).getTime()/1e3},onImageClick(){this.track?.artist&&this.track?.album&&this.$emit("search",{artist:this.track.artist,album:this.track.album})}},mounted(){const t=this;this.lastSync=this.getTime(),this.$watch((()=>this.track),(e=>{e&&"play"===t.status?.state||(t.lastSync=this.getTime())})),this.$watch((()=>this.status),(()=>{t.lastSync=this.getTime()})),setInterval((()=>{"stop"!==t.status?.state&&(t.elapsed=t.status?.elapsed||t.status?.position||0,"play"===t.status?.state&&(t.elapsed+=Math.round(this.getTime()-t.lastSync)))}),1e3)}};const Et=(0,rt.Z)(Bt,[["render",J],["__scopeId","data-v-34374f87"]]);var Vt=Et,Ut={name:"View",components:{Controls:Vt},emits:["consume","mute","next","pause","play","previous","random","repeat","search","seek","set-volume","stop","unmute"],props:{pluginName:{type:String,required:!0},status:{type:Object,default:()=>{}},track:{type:Object},buttons:{type:Object}}};const Lt=(0,rt.Z)(Ut,[["render",i],["__scopeId","data-v-7a861c3a"]]);var At=Lt},8140:function(t,e,s){s.d(e,{Z:function(){return g}});var a=s(6252),n=s(3577),o=s(9963);const l={class:"slider-wrapper"},i=["textContent"],u=["textContent"],r={class:"slider-container"},c=["min","max","step","disabled","value"],m=["textContent"];function p(t,e,s,p,d,v){return(0,a.wg)(),(0,a.iD)("label",l,[s.withRange?((0,a.wg)(),(0,a.iD)("span",{key:0,class:(0,n.C_)(["range-labels",{"with-label":s.withLabel}])},[s.withRange?((0,a.wg)(),(0,a.iD)("span",{key:0,class:"label left",textContent:(0,n.zw)(s.range[0])},null,8,i)):(0,a.kq)("",!0),s.withRange?((0,a.wg)(),(0,a.iD)("span",{key:1,class:"label right",textContent:(0,n.zw)(s.range[1])},null,8,u)):(0,a.kq)("",!0)],2)):(0,a.kq)("",!0),(0,a._)("span",r,[(0,a._)("input",{class:(0,n.C_)(["slider",{"with-label":s.withLabel}]),type:"range",min:s.range[0],max:s.range[1],step:s.step,disabled:s.disabled,value:s.value,ref:"range",onInput:e[0]||(e[0]=(0,o.iM)((e=>t.$emit("input",e)),["stop"])),onChange:e[1]||(e[1]=(0,o.iM)((e=>t.$emit("change",e)),["stop"]))},null,42,c),s.withLabel?((0,a.wg)(),(0,a.iD)("span",{key:0,class:"label",textContent:(0,n.zw)(s.value),ref:"label"},null,8,m)):(0,a.kq)("",!0)])])}var d={emits:["input","change"],props:{value:{type:Number},disabled:{type:Boolean,default:!1},range:{type:Array,default:()=>[0,100]},step:{type:Number,default:1},withLabel:{type:Boolean,default:!1},withRange:{type:Boolean,default:!1}}},v=s(3744);const k=(0,v.Z)(d,[["render",p],["__scopeId","data-v-d90e850c"]]);var g=k}}]); -//# sourceMappingURL=1420.a092f576.js.map \ No newline at end of file diff --git a/platypush/backend/http/webapp/dist/static/js/1420.a092f576.js.map b/platypush/backend/http/webapp/dist/static/js/1420.a092f576.js.map deleted file mode 100644 index 8ca11be215..0000000000 --- a/platypush/backend/http/webapp/dist/static/js/1420.a092f576.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1420.a092f576.js","mappings":"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","sources":["webpack://platypush/./src/components/Media/Utils.vue","webpack://platypush/./src/components/Media/Utils.vue?af63","webpack://platypush/./src/components/Media/View.vue","webpack://platypush/./src/components/Media/Controls.vue","webpack://platypush/./src/components/Media/ExtraControls.vue","webpack://platypush/./src/components/Media/ExtraControls.vue?b9c1","webpack://platypush/./src/components/Media/PlayPauseButton.vue","webpack://platypush/./src/components/Media/PlayPauseButton.vue?80fd","webpack://platypush/./src/components/Media/ProgressBar.vue","webpack://platypush/./src/components/Media/ProgressBar.vue?32c3","webpack://platypush/./src/components/Media/VolumeSlider.vue","webpack://platypush/./src/components/Media/VolumeSlider.vue?4097","webpack://platypush/./src/components/Media/Controls.vue?3032","webpack://platypush/./src/components/Media/View.vue?78ca","webpack://platypush/./src/components/elements/Slider.vue","webpack://platypush/./src/components/elements/Slider.vue?787f"],"sourcesContent":["\n","import script from \"./Utils.vue?vue&type=script&lang=js\"\nexport * from \"./Utils.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import { render } from \"./ExtraControls.vue?vue&type=template&id=772c7a5b&scoped=true\"\nimport script from \"./ExtraControls.vue?vue&type=script&lang=js\"\nexport * from \"./ExtraControls.vue?vue&type=script&lang=js\"\n\nimport \"./ExtraControls.vue?vue&type=style&index=0&id=772c7a5b&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-772c7a5b\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./PlayPauseButton.vue?vue&type=template&id=a742ddb0&scoped=true\"\nimport script from \"./PlayPauseButton.vue?vue&type=script&lang=js\"\nexport * from \"./PlayPauseButton.vue?vue&type=script&lang=js\"\n\nimport \"./PlayPauseButton.vue?vue&type=style&index=0&id=a742ddb0&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-a742ddb0\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./ProgressBar.vue?vue&type=template&id=3894ad4d&scoped=true\"\nimport script from \"./ProgressBar.vue?vue&type=script&lang=js\"\nexport * from \"./ProgressBar.vue?vue&type=script&lang=js\"\n\nimport \"./ProgressBar.vue?vue&type=style&index=0&id=3894ad4d&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-3894ad4d\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./VolumeSlider.vue?vue&type=template&id=662f988f&scoped=true\"\nimport script from \"./VolumeSlider.vue?vue&type=script&lang=js\"\nexport * from \"./VolumeSlider.vue?vue&type=script&lang=js\"\n\nimport \"./VolumeSlider.vue?vue&type=style&index=0&id=662f988f&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-662f988f\"]])\n\nexport default __exports__","import { render } from \"./Controls.vue?vue&type=template&id=34374f87&scoped=true\"\nimport script from \"./Controls.vue?vue&type=script&lang=js\"\nexport * from \"./Controls.vue?vue&type=script&lang=js\"\n\nimport \"./Controls.vue?vue&type=style&index=0&id=34374f87&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-34374f87\"]])\n\nexport default __exports__","import { render } from \"./View.vue?vue&type=template&id=7a861c3a&scoped=true\"\nimport script from \"./View.vue?vue&type=script&lang=js\"\nexport * from \"./View.vue?vue&type=script&lang=js\"\n\nimport \"./View.vue?vue&type=style&index=0&id=7a861c3a&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-7a861c3a\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=d90e850c&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=d90e850c&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-d90e850c\"]])\n\nexport default __exports__"],"names":["name","mixins","Utils","computed","audioExtensions","Set","videoExtensions","mediaExtensions","this","methods","convertTime","time","parseFloat","t","h","parseInt","m","s","attr","ret","push","join","startStreaming","resource","pluginName","download","url","subtitles","Object","request","media","stopStreaming","mediaId","media_id","__exports__","class","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_renderSlot","_ctx","$slots","undefined","_hoisted_3","_createVNode","_component_Controls","status","$props","track","buttons","onPlay","_cache","$event","$emit","onPause","onStop","onPrevious","onNext","onSeek","onSetVolume","onConsume","onRepeat","onRandom","onSearch","onMute","onUnmute","_hoisted_7","_hoisted_9","_hoisted_11","_hoisted_30","_hoisted_32","_hoisted_34","_normalizeClass","hidden","$data","expanded","state","onClick","_withModifiers","args","$options","onImageClick","image","src","alt","title","playing","_hoisted_4","_hoisted_5","_hoisted_6","buttons_","previous","stop","next","_hoisted_13","_component_VolumeSlider","value","volume","range","volumeRange","_component_ExtraControls","consume","random","repeat","_hoisted_14","_component_ProgressBar","elapsed","duration","_hoisted_15","_hoisted_16","_component_PlayPauseButton","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_21","_hoisted_22","album","href","$route","fullPath","_toDisplayString","length","artist","_hoisted_26","_hoisted_28","_hoisted_29","_hoisted_36","_hoisted_37","_hoisted_39","enabled","emits","props","type","default","_component_Slider","disabled","onChange","target","components","Slider","MediaUtils","Number","mute","Array","ExtraControls","PlayPauseButton","ProgressBar","VolumeSlider","data","keys","lastSync","position","getTime","Date","mounted","self","$watch","setInterval","Math","round","Controls","String","required","render","withRange","withLabel","min","max","step","ref","onInput","Boolean"],"sourceRoot":""} \ No newline at end of file diff --git a/platypush/backend/http/webapp/dist/static/js/1449.504ccb4c.js b/platypush/backend/http/webapp/dist/static/js/1449.475ec524.js similarity index 99% rename from platypush/backend/http/webapp/dist/static/js/1449.504ccb4c.js rename to platypush/backend/http/webapp/dist/static/js/1449.475ec524.js index fb7392c933..fb80a6b13e 100644 --- a/platypush/backend/http/webapp/dist/static/js/1449.504ccb4c.js +++ b/platypush/backend/http/webapp/dist/static/js/1449.475ec524.js @@ -1,2 +1,2 @@ "use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[1449],{3275:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){var _Utils__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(8637),_components_Loading__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(6791),_index__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(9565),vue__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(9963),vue__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(6252),mitt__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(9652);const bus=(0,mitt__WEBPACK_IMPORTED_MODULE_3__.Z)();__webpack_exports__.Z={name:"Elements",components:{Loading:_components_Loading__WEBPACK_IMPORTED_MODULE_1__.Z},mixins:[_Utils__WEBPACK_IMPORTED_MODULE_0__.Z],props:{content:{type:String}},data(){return{loading:!1,unwatch:null}},methods:{_parseActions(e){const t=[...e.children].filter((e=>"actions"===e.tagName?.toLowerCase())),n=t?.length?t[0].children:e.children,s=[...n].filter((e=>"action"===e.tagName?.toLowerCase()));if(s?.length)return[...s].map((e=>({action:e.attributes.name.value,args:[...e.children].reduce(((e,t)=>{let n;try{n=JSON.parse(t.innerText)}catch(s){t.innerText?.length&&(n=t.innerText)}return e[t.tagName.toLowerCase()]=n,e}),{})})))},_parseVars(e){const t=[...e.children].filter((e=>"vars"===e.tagName?.toLowerCase()));if(t?.length)return[...t[0].children].reduce(((e,t)=>{let n;try{n=JSON.parse(t.innerText)}catch(s){t.innerText?.length&&(n=t.innerText)}return e[t.tagName.toLowerCase()]=n,e}),{})},_parseHandlers(element){const handlers={},parseHndlScript=hndlText=>app=>eval(`// noinspection JSUnusedLocalSymbols\n (async function (self) {\n ${hndlText}\n })`)(app),parseEventHndl=hndlText=>app=>event=>eval(`// noinspection JSUnusedLocalSymbols\n (async function (self, event) {\n ${hndlText}\n })`)(app,event),hndlTags=[...element.children].filter((e=>"handlers"===e.tagName?.toLowerCase()));if(hndlTags?.length){const e=[...hndlTags[0].children].filter((e=>"mounted"===e.tagName?.toLowerCase()));e?.length&&(handlers.mounted=parseHndlScript(e[0].innerText));const t=[...hndlTags[0].children].filter((e=>"refresh"===e.tagName?.toLowerCase()));t?.length&&(handlers.refresh={handler:parseHndlScript(t[0].innerText),interval:t[0].attributes.interval?.value||10});const n=[...hndlTags[0].children].filter((e=>"event"===e.tagName?.toLowerCase()));n?.length&&(handlers.events=n.reduce(((e,t)=>(e[t.attributes.type.value]=parseEventHndl(t.innerText),e)),{}))}const actionsTags=[...element.children].filter((e=>"actions"===e.tagName?.toLowerCase()));if(actionsTags?.length){const e=[...actionsTags[0].children].filter((e=>"before"===e.tagName?.toLowerCase()));e?.length&&(handlers.beforeActions=parseHndlScript(e[0].innerText));const t=[...actionsTags[0].children].filter((e=>"after"===e.tagName?.toLowerCase()));t?.length&&(handlers.afterActions=parseHndlScript(t[0].innerText))}return handlers},_parseProps(e){return[...e.attributes].reduce(((e,t)=>(e[t.name]=t.value,e)),{})},propagateEvent(e){bus.emit("event",e)},_addEventHandler(){this.unwatch=this.subscribe((e=>{bus.emit("event",e)}))},_removeEventHandler(){this.unwatch&&(this.unwatch(),this.unwatch=null)}},mounted(){this.loading=!0,this._addEventHandler();try{this.$refs.container.innerHTML=this.content,Object.entries(_index__WEBPACK_IMPORTED_MODULE_2__.Z).forEach((([e,t])=>{this.$options.components[e]=t,[...this.$refs.container.getElementsByTagName(e)].forEach((e=>{const n=this._parseProps(e);n.actions=this._parseActions(e),n.handlers=this._parseHandlers(e),n._vars=this._parseVars(e);const s=document.createElement("div");s.setAttribute("class","component"),s.innerHTML=e.innerHTML,e.parentNode.replaceChild(s,e),(0,vue__WEBPACK_IMPORTED_MODULE_4__.ri)({render(){return(0,vue__WEBPACK_IMPORTED_MODULE_5__.h)(t,n)},data(){return{bus:bus}}}).mount(s)}))}));for(const e of["handlers","actions","vars"])this.$refs.container.getElementsByTagName(e).forEach((e=>{e.parentNode.removeChild(e)}))}finally{this.loading=!1}},unmounted(){this._removeEventHandler()}}},7105:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){var _Utils__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(8637);__webpack_exports__.Z={mixins:[_Utils__WEBPACK_IMPORTED_MODULE_0__.Z],props:{name:{type:String,default:"[Unnamed sensor]"},iconClass:{type:String},iconUrl:{type:String},iconColor:{type:String},actions:{type:Array,default:()=>[]},_vars:{type:Object,default:()=>({})},handlers:{type:Object,default:()=>({})},bus:{type:Object}},data(){return{vars:{...this._vars||{}},_interval:void 0,refresh:null,refreshInterval:null,value:null,loading:!1}},computed:{iconStyle(){if(this.iconClass?.length||!this.iconColor?.length)return{color:this.iconColor}},hasIcon(){return this.iconUrl?.length||this.iconClass?.length}},methods:{async run(){if(this.handlers.input)return this.handlers.input(this)(this.value);this.handlers.beforeActions&&await this.handlers.beforeActions(this);for(const e of this.actions)await this.request_(e);this.handlers.afterActions&&await this.handlers.afterActions(this)},async request_(action){const args=Object.entries(action.args).reduce(((args,[key,value])=>{if(value.trim){value=value.trim();const m=value.match(/^{{\s*(.*)\s*}}/);m&&(value=eval(`// noinspection JSUnusedLocalSymbols\n (function (self) {\n return ${m[1]}\n })`)(this))}return args[key]=value,args}),{});await this.request(action.action,args)},async processEvent(e){const t=(this.handlers.events||{})[e.type];t&&await t(this)(e)}},async mounted(){if(this.$root.bus.on("event",this.processEvent),this.handlers.mounted&&await this.handlers.mounted(this),this.handlers.refresh&&(this.refreshInterval=1e3*(this.handlers.refresh?.interval||0),this.refresh=()=>{this.handlers.refresh.handler(this)},await this.refresh(),this.refreshInterval)){const e=this,t=()=>e.refresh();this._interval=setInterval(t,this.refreshInterval)}},unmounted(){this._interval&&clearInterval(this._interval)}}},9565:function(e,t,n){n.d(t,{Z:function(){return z}});var s=n(6252),a=n(3577);const i={key:0,class:"col-1 icon-container"},r=["src","alt"],l=["textContent"];function o(e,t,n,o,c,_){return(0,s.wg)(),(0,s.iD)("div",{class:"run component-row",onClick:t[0]||(t[0]=(...t)=>e.run&&e.run(...t))},[e.hasIcon?((0,s.wg)(),(0,s.iD)("div",i,[e.iconUrl?.length?((0,s.wg)(),(0,s.iD)("img",{key:0,class:"icon",src:e.iconUrl,alt:e.name},null,8,r)):((0,s.wg)(),(0,s.iD)("i",{key:1,class:(0,a.C_)(["icon",e.iconClass]),style:(0,a.j5)(e.iconStyle)},null,6))])):(0,s.kq)("",!0),(0,s._)("div",{class:(0,a.C_)({"col-11":e.hasIcon,"col-12":!e.hasIcon}),textContent:(0,a.zw)(e.name)},null,10,l)])}var c=n(7105),_={name:"Run",mixins:[c.Z]},h=n(3744);const u=(0,h.Z)(_,[["render",o],["__scopeId","data-v-7478b72d"]]);var d=u;const p={key:0,class:"col-1 icon-container"},g=["src","alt"],v=["textContent"],m={class:"col-3 value-container"},f={class:"value"},w=["textContent"];function b(e,t,n,i,r,l){return(0,s.wg)(),(0,s.iD)("div",{class:"sensor component-row",onClick:t[0]||(t[0]=(...e)=>l.run&&l.run(...e))},[e.hasIcon?((0,s.wg)(),(0,s.iD)("div",p,[e.iconUrl?.length?((0,s.wg)(),(0,s.iD)("img",{key:0,class:"icon",src:e.iconUrl,alt:e.name},null,8,g)):((0,s.wg)(),(0,s.iD)("i",{key:1,class:(0,a.C_)(["icon",e.iconClass]),style:(0,a.j5)(e.iconStyle)},null,6))])):(0,s.kq)("",!0),(0,s._)("div",{class:(0,a.C_)({"col-8":e.hasIcon,"col-9":!e.hasIcon}),textContent:(0,a.zw)(e.name)},null,10,v),(0,s._)("div",m,[(0,s._)("div",f,[(0,s.Uk)((0,a.zw)(e.value)+" ",1),n.unit?((0,s.wg)(),(0,s.iD)("span",{key:0,textContent:(0,a.zw)(n.unit)},null,8,w)):(0,s.kq)("",!0)])])])}var y={name:"Sensor",mixins:[c.Z],props:{unit:{type:String}},methods:{async run(){if(this.handlers.beforeActions&&await this.handlers.beforeActions(this),this.actions?.length)for(const e of this.actions)await this.request_(e);else await this.refresh();this.handlers.afterActions&&await this.handlers.afterActions(this)}}};const C=(0,h.Z)(y,[["render",b],["__scopeId","data-v-53594122"]]);var E=C;const k={class:"slider-root component-row"},D={key:0,class:"col-1 icon-container"},x=["src","alt"],I=["textContent"],T={class:"col-5 slider-container"},L={class:"slider"};function S(e,t,n,i,r,l){const o=(0,s.up)("SliderElement");return(0,s.wg)(),(0,s.iD)("div",k,[e.hasIcon?((0,s.wg)(),(0,s.iD)("div",D,[e.iconUrl?.length?((0,s.wg)(),(0,s.iD)("img",{key:0,class:"icon",src:e.iconUrl,alt:e.name},null,8,x)):((0,s.wg)(),(0,s.iD)("i",{key:1,class:(0,a.C_)(["icon",e.iconClass]),style:(0,a.j5)(e.iconStyle)},null,6))])):(0,s.kq)("",!0),(0,s._)("div",{class:(0,a.C_)({"col-6":e.hasIcon,"col-7":!e.hasIcon}),textContent:(0,a.zw)(e.name)},null,10,I),(0,s._)("div",T,[(0,s._)("div",L,[(0,s.Wm)(o,{value:e.value,range:[parseFloat(n.min),parseFloat(n.max)],onChange:l.run},null,8,["value","range","onChange"])])])])}var M=n(8140),O={name:"Slider",components:{SliderElement:M.Z},mixins:[c.Z],props:{min:{type:[String,Number],default:0},max:{type:[String,Number],required:!0}},methods:{async run(e){this.value=parseFloat(e.target.value),this.handlers.beforeActions&&await this.handlers.beforeActions(this);for(const t of this.actions)await this.request_(t);this.handlers.afterActions&&await this.handlers.afterActions(this)}}};const A=(0,h.Z)(O,[["render",S],["__scopeId","data-v-71b842b2"]]);var U=A,P=n(9963);const q={key:0,class:"col-1 icon-container"},Z=["src","alt"],N=["textContent"],B={class:"col-2 toggle-container"},R={class:"toggle"};function W(e,t,n,i,r,l){const o=(0,s.up)("ToggleSwitch");return(0,s.wg)(),(0,s.iD)("div",{class:"switch component-row",onClick:t[0]||(t[0]=(...t)=>e.run&&e.run(...t))},[e.hasIcon?((0,s.wg)(),(0,s.iD)("div",q,[e.iconUrl?.length?((0,s.wg)(),(0,s.iD)("img",{key:0,class:"icon",src:e.iconUrl,alt:e.name},null,8,Z)):((0,s.wg)(),(0,s.iD)("i",{key:1,class:(0,a.C_)(["icon",e.iconClass]),style:(0,a.j5)(e.iconStyle)},null,6))])):(0,s.kq)("",!0),(0,s._)("div",{class:(0,a.C_)({"col-9":e.hasIcon,"col-10":!e.hasIcon}),textContent:(0,a.zw)(e.name)},null,10,N),(0,s._)("div",B,[(0,s._)("div",R,[(0,s.Wm)(o,{value:e.value,onInput:(0,P.iM)(e.run,["stop"])},null,8,["value","onInput"])])])])}var H=n(7514),K={name:"Switch",components:{ToggleSwitch:H.Z},mixins:[c.Z]};const $=(0,h.Z)(K,[["render",W],["__scopeId","data-v-97d3a936"]]);var j=$,z={Run:d,Sensor:E,Slider:U,Switch:j}},8140:function(e,t,n){n.d(t,{Z:function(){return v}});var s=n(6252),a=n(3577),i=n(9963);const r={class:"slider-wrapper"},l=["textContent"],o=["textContent"],c={class:"slider-container"},_=["min","max","step","disabled","value"],h=["textContent"];function u(e,t,n,u,d,p){return(0,s.wg)(),(0,s.iD)("label",r,[n.withRange?((0,s.wg)(),(0,s.iD)("span",{key:0,class:(0,a.C_)(["range-labels",{"with-label":n.withLabel}])},[n.withRange?((0,s.wg)(),(0,s.iD)("span",{key:0,class:"label left",textContent:(0,a.zw)(n.range[0])},null,8,l)):(0,s.kq)("",!0),n.withRange?((0,s.wg)(),(0,s.iD)("span",{key:1,class:"label right",textContent:(0,a.zw)(n.range[1])},null,8,o)):(0,s.kq)("",!0)],2)):(0,s.kq)("",!0),(0,s._)("span",c,[(0,s._)("input",{class:(0,a.C_)(["slider",{"with-label":n.withLabel}]),type:"range",min:n.range[0],max:n.range[1],step:n.step,disabled:n.disabled,value:n.value,ref:"range",onInput:t[0]||(t[0]=(0,i.iM)((t=>e.$emit("input",t)),["stop"])),onChange:t[1]||(t[1]=(0,i.iM)((t=>e.$emit("change",t)),["stop"]))},null,42,_),n.withLabel?((0,s.wg)(),(0,s.iD)("span",{key:0,class:"label",textContent:(0,a.zw)(n.value),ref:"label"},null,8,h)):(0,s.kq)("",!0)])])}var d={emits:["input","change"],props:{value:{type:Number},disabled:{type:Boolean,default:!1},range:{type:Array,default:()=>[0,100]},step:{type:Number,default:1},withLabel:{type:Boolean,default:!1},withRange:{type:Boolean,default:!1}}},p=n(3744);const g=(0,p.Z)(d,[["render",u],["__scopeId","data-v-d90e850c"]]);var v=g},7514:function(e,t,n){n.d(t,{Z:function(){return p}});var s=n(6252),a=n(3577),i=n(9963);const r=e=>((0,s.dD)("data-v-eff375b6"),e=e(),(0,s.Cn)(),e),l=["checked","id"],o=r((()=>(0,s._)("div",{class:"switch"},[(0,s._)("div",{class:"dot"})],-1))),c={class:"label"};function _(e,t,n,r,_,h){return(0,s.wg)(),(0,s.iD)("div",{class:(0,a.C_)(["power-switch",{disabled:n.disabled}]),onClick:t[0]||(t[0]=(0,i.iM)(((...e)=>h.onInput&&h.onInput(...e)),["stop"]))},[(0,s._)("input",{type:"checkbox",checked:n.value,id:n.id},null,8,l),(0,s._)("label",null,[o,(0,s._)("span",c,[(0,s.WI)(e.$slots,"default",{},void 0,!0)])])],2)}var h={name:"ToggleSwitch",emits:["input"],props:{id:{type:String},value:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},methods:{onInput(e){if(this.disabled)return!1;this.$emit("input",e)}}},u=n(3744);const d=(0,u.Z)(h,[["render",_],["__scopeId","data-v-eff375b6"]]);var p=d},1449:function(e,t,n){n.r(t),n.d(t,{default:function(){return _}});var s=n(6252);const a={class:"component-widget"},i={class:"container",ref:"container"};function r(e,t,n,r,l,o){const c=(0,s.up)("Loading");return(0,s.wg)(),(0,s.iD)("div",a,[l.loading?((0,s.wg)(),(0,s.j4)(c,{key:0})):(0,s.kq)("",!0),(0,s._)("div",i,null,512)])}var l=n(3275),o=n(3744);const c=(0,o.Z)(l.Z,[["render",r],["__scopeId","data-v-450fcab1"]]);var _=c}}]); -//# sourceMappingURL=1449.504ccb4c.js.map \ No newline at end of file +//# sourceMappingURL=1449.475ec524.js.map \ No newline at end of file diff --git a/platypush/backend/http/webapp/dist/static/js/1449.504ccb4c.js.map b/platypush/backend/http/webapp/dist/static/js/1449.475ec524.js.map similarity index 99% rename from platypush/backend/http/webapp/dist/static/js/1449.504ccb4c.js.map rename to platypush/backend/http/webapp/dist/static/js/1449.475ec524.js.map index 2bdbaa4827..f161c6492d 100644 --- a/platypush/backend/http/webapp/dist/static/js/1449.504ccb4c.js.map +++ b/platypush/backend/http/webapp/dist/static/js/1449.475ec524.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/1449.504ccb4c.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":["\n\n\n\n\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","\n\n\n\n\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 \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7478b72d\"]])\n\nexport default __exports__","\n\n\n\n\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 \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-53594122\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=71b842b2&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=71b842b2&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-71b842b2\"]])\n\nexport default __exports__","\n\n\n\n\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 \"../../../../../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","\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=d90e850c&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=d90e850c&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-d90e850c\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./ToggleSwitch.vue?vue&type=template&id=eff375b6&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=eff375b6&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-eff375b6\"]])\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 \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-450fcab1\"]])\n\nexport default __exports__"],"names":["bus","mitt","name","components","Loading","mixins","Utils","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","createApp","render","h","mount","removeChild","unmounted","default","iconClass","iconUrl","iconColor","Array","_interval","undefined","refreshInterval","computed","iconStyle","hasIcon","run","input","request_","key","trim","m","match","request","processEvent","hndl","$root","on","self","wrapper","setInterval","clearInterval","class","_createElementBlock","onClick","_cache","_ctx","_hoisted_1","src","alt","_normalizeClass","style","_normalizeStyle","_createElementVNode","_toDisplayString","__exports__","_hoisted_4","_hoisted_5","$props","unit","_hoisted_2","_hoisted_6","_createVNode","_component_SliderElement","range","parseFloat","min","max","onChange","SliderElement","Number","required","target","_component_ToggleSwitch","onInput","_withModifiers","ToggleSwitch","Run","Sensor","Slider","Switch","withRange","withLabel","step","disabled","ref","$event","$emit","emits","Boolean","checked","id","_hoisted_3","_renderSlot","$slots","$data","_createBlock","_component_Loading"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/1449.475ec524.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":["\n\n\n\n\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","\n\n\n\n\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 \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7478b72d\"]])\n\nexport default __exports__","\n\n\n\n\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 \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-53594122\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=71b842b2&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=71b842b2&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-71b842b2\"]])\n\nexport default __exports__","\n\n\n\n\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 \"../../../../../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","\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=d90e850c&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=d90e850c&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-d90e850c\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./ToggleSwitch.vue?vue&type=template&id=eff375b6&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=eff375b6&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-eff375b6\"]])\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 \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-450fcab1\"]])\n\nexport default __exports__"],"names":["bus","mitt","name","components","Loading","mixins","Utils","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","createApp","render","h","mount","removeChild","unmounted","default","iconClass","iconUrl","iconColor","Array","_interval","undefined","refreshInterval","computed","iconStyle","hasIcon","run","input","request_","key","trim","m","match","request","processEvent","hndl","$root","on","self","wrapper","setInterval","clearInterval","class","_createElementBlock","onClick","_cache","_ctx","_hoisted_1","src","alt","_normalizeClass","style","_normalizeStyle","_createElementVNode","_toDisplayString","__exports__","_hoisted_4","_hoisted_5","$props","unit","_hoisted_2","_hoisted_6","_createVNode","_component_SliderElement","range","parseFloat","min","max","onChange","SliderElement","Number","required","target","_component_ToggleSwitch","onInput","_withModifiers","ToggleSwitch","Run","Sensor","Slider","Switch","withRange","withLabel","step","disabled","ref","$event","$emit","emits","Boolean","checked","id","_hoisted_3","_renderSlot","$slots","$data","_createBlock","_component_Loading"],"sourceRoot":""} \ No newline at end of file diff --git a/platypush/backend/http/webapp/dist/static/js/1512.b365b835.js b/platypush/backend/http/webapp/dist/static/js/1512.3e4f99fd.js similarity index 99% rename from platypush/backend/http/webapp/dist/static/js/1512.b365b835.js rename to platypush/backend/http/webapp/dist/static/js/1512.3e4f99fd.js index 65f4dba4d9..c87a6c8d3f 100644 --- a/platypush/backend/http/webapp/dist/static/js/1512.b365b835.js +++ b/platypush/backend/http/webapp/dist/static/js/1512.3e4f99fd.js @@ -1,2 +1,2 @@ "use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[1512,5324],{5324:function(a,t,e){e.r(t),e.d(t,{default:function(){return ha}});var s=e(6252),n=e(9963);const i={class:"camera"},r={class:"camera-container"},l={class:"frame-container",ref:"frameContainer"},o={key:0,class:"no-frame"},c=["src"],u={class:"controls"},h={class:"left"},p=["disabled"],d=(0,s._)("i",{class:"fa fa-play"},null,-1),m=[d],g=["disabled"],_=(0,s._)("i",{class:"fa fa-stop"},null,-1),f=[_],y=["disabled"],w=(0,s._)("i",{class:"fas fa-camera"},null,-1),C=[w],v={class:"right"},b=(0,s._)("i",{class:"fas fa-volume-mute"},null,-1),S=[b],k=(0,s._)("i",{class:"fas fa-volume-up"},null,-1),z=[k],x=(0,s._)("i",{class:"fas fa-cog"},null,-1),$=[x],F={class:"audio-container"},U={key:0,autoplay:"",preload:"none",ref:"player"},M=["src"],D={key:0,class:"url"},V={class:"row"},P=(0,s._)("span",{class:"name"},"Stream URL",-1),q=["value"],L={class:"params"},A={class:"row"},O=(0,s._)("span",{class:"name"},"Device",-1),W={class:"row"},j=(0,s._)("span",{class:"name"},"Width",-1),H={class:"row"},G=(0,s._)("span",{class:"name"},"Height",-1),I={class:"row"},R=(0,s._)("span",{class:"name"},"Horizontal Flip",-1),T={class:"row"},Z=(0,s._)("span",{class:"name"},"Vertical Flip",-1),Y={class:"row"},E=(0,s._)("span",{class:"name"},"Rotate",-1),X={class:"row"},B=(0,s._)("span",{class:"name"},"Scale-X",-1),J={class:"row"},K=(0,s._)("span",{class:"name"},"Scale-Y",-1),N={class:"row"},Q=(0,s._)("span",{class:"name"},"Frames per second",-1),aa={class:"row"},ta=(0,s._)("span",{class:"name"},"Grayscale",-1);function ea(a,t,e,d,_,w){const b=(0,s.up)("Slot"),k=(0,s.up)("Modal");return(0,s.wg)(),(0,s.iD)("div",i,[(0,s._)("div",r,[(0,s._)("div",l,[a.streaming||a.capturing||a.captured?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",o,"The camera is not active")),(0,s._)("img",{class:"frame",src:a.url,ref:"frame",alt:""},null,8,c)],512),(0,s._)("div",u,[(0,s._)("div",h,[a.streaming?((0,s.wg)(),(0,s.iD)("button",{key:1,type:"button",onClick:t[1]||(t[1]=(...t)=>a.stopStreaming&&a.stopStreaming(...t)),disabled:a.capturing,title:"Stop video"},f,8,g)):((0,s.wg)(),(0,s.iD)("button",{key:0,type:"button",onClick:t[0]||(t[0]=(...a)=>w.startStreaming&&w.startStreaming(...a)),disabled:a.capturing,title:"Start video"},m,8,p)),a.streaming?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("button",{key:2,type:"button",onClick:t[2]||(t[2]=(...a)=>w.capture&&w.capture(...a)),disabled:a.streaming||a.capturing,title:"Take a picture"},C,8,y))]),(0,s._)("div",v,[a.audioOn?((0,s.wg)(),(0,s.iD)("button",{key:1,type:"button",onClick:t[4]||(t[4]=(...t)=>a.stopAudio&&a.stopAudio(...t)),title:"Stop audio"},z)):((0,s.wg)(),(0,s.iD)("button",{key:0,type:"button",onClick:t[3]||(t[3]=(...t)=>a.startAudio&&a.startAudio(...t)),title:"Start audio"},S)),(0,s._)("button",{type:"button",onClick:t[5]||(t[5]=t=>a.$refs.paramsModal.show()),title:"Settings"},$)])])]),(0,s._)("div",F,[a.audioOn?((0,s.wg)(),(0,s.iD)("audio",U,[(0,s._)("source",{src:`/sound/stream.aac?t=${(new Date).getTime()}`},null,8,M),(0,s.Uk)(" Your browser does not support audio elements ")],512)):(0,s.kq)("",!0)]),a.url?.length?((0,s.wg)(),(0,s.iD)("div",D,[(0,s._)("label",V,[P,(0,s._)("input",{name:"url",type:"text",value:w.fullURL,disabled:"disabled"},null,8,q)])])):(0,s.kq)("",!0),(0,s.Wm)(k,{ref:"paramsModal",title:"Camera Parameters"},{default:(0,s.w5)((()=>[(0,s._)("div",L,[(0,s._)("label",A,[O,(0,s.wy)((0,s._)("input",{name:"device",type:"text","onUpdate:modelValue":t[6]||(t[6]=t=>a.attrs.device=t),onChange:t[7]||(t[7]=(...t)=>a.onDeviceChanged&&a.onDeviceChanged(...t))},null,544),[[n.nr,a.attrs.device]])]),(0,s._)("label",W,[j,(0,s.wy)((0,s._)("input",{name:"width",type:"text","onUpdate:modelValue":t[8]||(t[8]=t=>a.attrs.resolution[0]=t),onChange:t[9]||(t[9]=(...t)=>a.onSizeChanged&&a.onSizeChanged(...t))},null,544),[[n.nr,a.attrs.resolution[0]]])]),(0,s._)("label",H,[G,(0,s.wy)((0,s._)("input",{name:"height",type:"text","onUpdate:modelValue":t[10]||(t[10]=t=>a.attrs.resolution[1]=t),onChange:t[11]||(t[11]=(...t)=>a.onSizeChanged&&a.onSizeChanged(...t))},null,544),[[n.nr,a.attrs.resolution[1]]])]),(0,s._)("label",I,[R,(0,s.wy)((0,s._)("input",{name:"horizontal_flip",type:"checkbox","onUpdate:modelValue":t[12]||(t[12]=t=>a.attrs.horizontal_flip=t),onChange:t[13]||(t[13]=(...t)=>a.onFlipChanged&&a.onFlipChanged(...t))},null,544),[[n.e8,a.attrs.horizontal_flip]])]),(0,s._)("label",T,[Z,(0,s.wy)((0,s._)("input",{name:"vertical_flip",type:"checkbox","onUpdate:modelValue":t[14]||(t[14]=t=>a.attrs.vertical_flip=t),onChange:t[15]||(t[15]=(...t)=>a.onFlipChanged&&a.onFlipChanged(...t))},null,544),[[n.e8,a.attrs.vertical_flip]])]),(0,s._)("label",Y,[E,(0,s.wy)((0,s._)("input",{name:"rotate",type:"text","onUpdate:modelValue":t[16]||(t[16]=t=>a.attrs.rotate=t),onChange:t[17]||(t[17]=(...t)=>a.onSizeChanged&&a.onSizeChanged(...t))},null,544),[[n.nr,a.attrs.rotate]])]),(0,s._)("label",X,[B,(0,s.wy)((0,s._)("input",{name:"scale_x",type:"text","onUpdate:modelValue":t[18]||(t[18]=t=>a.attrs.scale_x=t),onChange:t[19]||(t[19]=(...t)=>a.onSizeChanged&&a.onSizeChanged(...t))},null,544),[[n.nr,a.attrs.scale_x]])]),(0,s._)("label",J,[K,(0,s.wy)((0,s._)("input",{name:"scale_y",type:"text","onUpdate:modelValue":t[20]||(t[20]=t=>a.attrs.scale_y=t),onChange:t[21]||(t[21]=(...t)=>a.onSizeChanged&&a.onSizeChanged(...t))},null,544),[[n.nr,a.attrs.scale_y]])]),(0,s._)("label",N,[Q,(0,s.wy)((0,s._)("input",{name:"fps",type:"text","onUpdate:modelValue":t[22]||(t[22]=t=>a.attrs.fps=t),onChange:t[23]||(t[23]=(...t)=>a.onFpsChanged&&a.onFpsChanged(...t))},null,544),[[n.nr,a.attrs.fps]])]),(0,s._)("label",aa,[ta,(0,s.wy)((0,s._)("input",{name:"grayscale",type:"checkbox","onUpdate:modelValue":t[24]||(t[24]=t=>a.attrs.grayscale=t),onChange:t[25]||(t[25]=(...t)=>a.onGrayscaleChanged&&a.onGrayscaleChanged(...t))},null,544),[[n.e8,a.attrs.grayscale]])]),(0,s.Wm)(b)])])),_:1},512)])}var sa=e(8637),na={name:"CameraMixin",mixins:[sa.Z],props:{cameraPlugin:{type:String,required:!0}},data(){return{streaming:!1,capturing:!1,captured:!1,audioOn:!1,url:null,attrs:{}}},computed:{params(){return{resolution:this.attrs.resolution,device:this.attrs.device?.length?this.attrs.device:null,horizontal_flip:parseInt(0+this.attrs.horizontal_flip),vertical_flip:parseInt(0+this.attrs.vertical_flip),rotate:parseFloat(this.attrs.rotate),scale_x:parseFloat(this.attrs.scale_x),scale_y:parseFloat(this.attrs.scale_y),fps:parseFloat(this.attrs.fps),grayscale:parseInt(0+this.attrs.grayscale)}}},methods:{getUrl(a,t){return"/camera/"+a+"/"+t+"?"+Object.entries(this.params).filter((a=>null!=a[1]&&(""+a[1]).length>0)).map((([a,t])=>a+"="+t)).join("&")},_startStreaming(a){this.streaming||(this.streaming=!0,this.capturing=!1,this.captured=!1,this.url=this.getUrl(a,"video."+this.attrs.stream_format))},stopStreaming(){this.streaming&&(this.streaming=!1,this.capturing=!1,this.url=null)},_capture(a){this.capturing||(this.streaming=!1,this.capturing=!0,this.captured=!0,this.url=this.getUrl(a,"photo.jpg")+"&t="+(new Date).getTime())},onFrameLoaded(){this.capturing&&(this.capturing=!1)},onDeviceChanged(){},onFlipChanged(){},onSizeChanged(){const a=a=>a*Math.PI/180,t=a(this.params.rotate);let e=Math.round(this.params.scale_x*Math.abs(this.params.resolution[0]*Math.cos(t)+this.params.resolution[1]*Math.sin(t))),s=Math.round(this.params.scale_y*Math.abs(this.params.resolution[0]*Math.sin(t)+this.params.resolution[1]*Math.cos(t)));e>window.innerWidth&&(s=Math.round(s*(window.innerWidth/e)),e=window.innerWidth),s>window.innerHeight&&(e=Math.round(e*(window.innerHeight/s)),s=window.innerHeight),this.$refs.frameContainer.style.width=`${e}px`,this.$refs.frameContainer.style.height=`${s}px`},onFpsChanged(){},onGrayscaleChanged(){},startAudio(){this.audioOn=!0},async stopAudio(){this.audioOn=!1,await this.request("sound.stop_recording")}},created(){const a=this.$root.config[`camera.${this.cameraPlugin}`]||{};this.attrs={resolution:a.resolution||[640,480],device:a.device,horizontal_flip:a.horizontal_flip||0,vertical_flip:a.vertical_flip||0,rotate:a.rotate||0,scale_x:a.scale_x||1,scale_y:a.scale_y||1,fps:a.fps||16,grayscale:a.grayscale||0,stream_format:a.stream_format||"mjpeg"}},mounted(){this.$refs.frame.addEventListener("load",this.onFrameLoaded),this.onSizeChanged(),this.$watch((()=>this.attrs.resolution),this.onSizeChanged),this.$watch((()=>this.attrs.horizontal_flip),this.onSizeChanged),this.$watch((()=>this.attrs.vertical_flip),this.onSizeChanged),this.$watch((()=>this.attrs.rotate),this.onSizeChanged),this.$watch((()=>this.attrs.scale_x),this.onSizeChanged),this.$watch((()=>this.attrs.scale_y),this.onSizeChanged)}};const ia=na;var ra=ia,la=e(3493),oa={name:"Camera",components:{Modal:la.Z},mixins:[ra],props:{cameraPlugin:{type:String,required:!0}},computed:{fullURL(){return`${window.location.protocol}//${window.location.host}${this.url}`}},methods:{startStreaming(){this._startStreaming(this.cameraPlugin)},capture(){this._capture(this.cameraPlugin)}}},ca=e(3744);const ua=(0,ca.Z)(oa,[["render",ea]]);var ha=ua},1512:function(a,t,e){e.r(t),e.d(t,{default:function(){return c}});var s=e(6252);function n(a,t,e,n,i,r){const l=(0,s.up)("Camera");return(0,s.wg)(),(0,s.j4)(l,{"camera-plugin":"pi.legacy"})}var i=e(5324),r={name:"CameraPiLegacy",components:{Camera:i["default"]}},l=e(3744);const o=(0,l.Z)(r,[["render",n]]);var c=o}}]); -//# sourceMappingURL=1512.b365b835.js.map \ No newline at end of file +//# sourceMappingURL=1512.3e4f99fd.js.map \ No newline at end of file diff --git a/platypush/backend/http/webapp/dist/static/js/1512.b365b835.js.map b/platypush/backend/http/webapp/dist/static/js/1512.3e4f99fd.js.map similarity index 99% rename from platypush/backend/http/webapp/dist/static/js/1512.b365b835.js.map rename to platypush/backend/http/webapp/dist/static/js/1512.3e4f99fd.js.map index 298e8fa1bc..8c782ce0b5 100644 --- a/platypush/backend/http/webapp/dist/static/js/1512.b365b835.js.map +++ b/platypush/backend/http/webapp/dist/static/js/1512.3e4f99fd.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/1512.b365b835.js","mappings":"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","sources":["webpack://platypush/./src/components/panels/Camera/Index.vue","webpack://platypush/./src/components/panels/Camera/Mixin.vue","webpack://platypush/./src/components/panels/Camera/Mixin.vue?be5e","webpack://platypush/./src/components/panels/Camera/Index.vue?8810","webpack://platypush/./src/components/panels/CameraPiLegacy/Index.vue","webpack://platypush/./src/components/panels/CameraPiLegacy/Index.vue?4f74"],"sourcesContent":["\n\n\n\n\n","\n","import script from \"./Mixin.vue?vue&type=script&lang=js\"\nexport * from \"./Mixin.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=a4970096\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=a4970096&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Index.vue?vue&type=template&id=4b6b0f2d\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","ref","_createElementVNode","_hoisted_9","_hoisted_12","_hoisted_15","_hoisted_18","_hoisted_20","_hoisted_22","autoplay","preload","_createElementBlock","_hoisted_1","_hoisted_2","_hoisted_3","_ctx","streaming","capturing","captured","_hoisted_4","src","url","alt","_hoisted_6","_hoisted_7","type","onClick","_cache","args","stopStreaming","disabled","title","$options","startStreaming","capture","_hoisted_17","audioOn","stopAudio","startAudio","$event","$refs","paramsModal","show","_hoisted_24","_hoisted_25","Date","getTime","length","_hoisted_27","_hoisted_28","_hoisted_29","name","value","fullURL","_createVNode","_component_Modal","_hoisted_31","_hoisted_32","_hoisted_33","attrs","device","onChange","onDeviceChanged","_hoisted_34","_hoisted_35","resolution","onSizeChanged","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","horizontal_flip","onFlipChanged","_hoisted_40","_hoisted_41","vertical_flip","_hoisted_42","_hoisted_43","rotate","_hoisted_44","_hoisted_45","scale_x","_hoisted_46","_hoisted_47","scale_y","_hoisted_48","_hoisted_49","fps","onFpsChanged","_hoisted_50","_hoisted_51","grayscale","onGrayscaleChanged","_component_Slot","mixins","Utils","props","cameraPlugin","String","required","data","computed","params","this","parseInt","parseFloat","methods","getUrl","plugin","action","Object","entries","filter","entry","map","k","v","join","_startStreaming","stream_format","_capture","onFrameLoaded","degToRad","deg","Math","PI","rot","width","round","abs","cos","sin","height","window","innerWidth","innerHeight","frameContainer","style","request","created","config","$root","mounted","frame","addEventListener","$watch","__exports__","components","Modal","CameraMixin","location","protocol","host","render","_createBlock","_component_Camera","Camera"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/1512.3e4f99fd.js","mappings":"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","sources":["webpack://platypush/./src/components/panels/Camera/Index.vue","webpack://platypush/./src/components/panels/Camera/Mixin.vue","webpack://platypush/./src/components/panels/Camera/Mixin.vue?be5e","webpack://platypush/./src/components/panels/Camera/Index.vue?8810","webpack://platypush/./src/components/panels/CameraPiLegacy/Index.vue","webpack://platypush/./src/components/panels/CameraPiLegacy/Index.vue?4f74"],"sourcesContent":["\n\n\n\n\n","\n","import script from \"./Mixin.vue?vue&type=script&lang=js\"\nexport * from \"./Mixin.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=a4970096\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=a4970096&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Index.vue?vue&type=template&id=4b6b0f2d\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","ref","_createElementVNode","_hoisted_9","_hoisted_12","_hoisted_15","_hoisted_18","_hoisted_20","_hoisted_22","autoplay","preload","_createElementBlock","_hoisted_1","_hoisted_2","_hoisted_3","_ctx","streaming","capturing","captured","_hoisted_4","src","url","alt","_hoisted_6","_hoisted_7","type","onClick","_cache","args","stopStreaming","disabled","title","$options","startStreaming","capture","_hoisted_17","audioOn","stopAudio","startAudio","$event","$refs","paramsModal","show","_hoisted_24","_hoisted_25","Date","getTime","length","_hoisted_27","_hoisted_28","_hoisted_29","name","value","fullURL","_createVNode","_component_Modal","_hoisted_31","_hoisted_32","_hoisted_33","attrs","device","onChange","onDeviceChanged","_hoisted_34","_hoisted_35","resolution","onSizeChanged","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","horizontal_flip","onFlipChanged","_hoisted_40","_hoisted_41","vertical_flip","_hoisted_42","_hoisted_43","rotate","_hoisted_44","_hoisted_45","scale_x","_hoisted_46","_hoisted_47","scale_y","_hoisted_48","_hoisted_49","fps","onFpsChanged","_hoisted_50","_hoisted_51","grayscale","onGrayscaleChanged","_component_Slot","mixins","Utils","props","cameraPlugin","String","required","data","computed","params","this","parseInt","parseFloat","methods","getUrl","plugin","action","Object","entries","filter","entry","map","k","v","join","_startStreaming","stream_format","_capture","onFrameLoaded","degToRad","deg","Math","PI","rot","width","round","abs","cos","sin","height","window","innerWidth","innerHeight","frameContainer","style","request","created","config","$root","mounted","frame","addEventListener","$watch","__exports__","components","Modal","CameraMixin","location","protocol","host","render","_createBlock","_component_Camera","Camera"],"sourceRoot":""} \ No newline at end of file diff --git a/platypush/backend/http/webapp/dist/static/js/1587.e2ebe369.js b/platypush/backend/http/webapp/dist/static/js/1587.e2ebe369.js new file mode 100644 index 0000000000..d4ee22420b --- /dev/null +++ b/platypush/backend/http/webapp/dist/static/js/1587.e2ebe369.js @@ -0,0 +1,2 @@ +"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[1587],{7191:function(t,e,s){s.d(e,{Z:function(){return b}});var a=s(6252),n=s(3577);const i={class:"progress-bar-container"},l={class:"col-s-2 col-m-1 time"},o=["textContent"],u={class:"col-s-8 col-m-10 time-bar"},r={class:"col-s-2 col-m-1 time"},c=["textContent"];function m(t,e,s,m,p,d){const v=(0,a.up)("Slider");return(0,a.wg)(),(0,a.iD)("div",i,[(0,a._)("div",l,[(0,a._)("span",{class:"elapsed-time",textContent:(0,n.zw)(null==s.elapsed||"play"!==s.status.state&&"pause"!==s.status.state?"-:--":t.convertTime(s.elapsed))},null,8,o)]),(0,a._)("div",u,[(0,a.Wm)(v,{value:s.elapsed,range:[0,s.duration],disabled:!s.duration||"stop"===s.status.state,onChange:e[0]||(e[0]=e=>t.$emit("seek",e.target.value))},null,8,["value","range","disabled"])]),(0,a._)("div",r,[(0,a._)("span",{class:"total-time",textContent:(0,n.zw)(s.duration&&"stop"!==s.status.state?t.convertTime(s.duration):"-:--")},null,8,c)])])}var p=s(1065),d=s(8140),v={components:{Slider:d.Z},emits:["seek"],mixins:[p.Z],props:{elapsed:{type:Number},duration:{type:Number},status:{type:Object,default:()=>({})}}},g=s(3744);const k=(0,g.Z)(v,[["render",m],["__scopeId","data-v-3894ad4d"]]);var b=k},1065:function(t,e,s){s.d(e,{Z:function(){return l}});s(560);var a=s(8637),n={name:"Utils",mixins:[a.Z],computed:{audioExtensions(){return new Set(["3gp","aa","aac","aax","act","aiff","amr","ape","au","awb","dct","dss","dvf","flac","gsm","iklax","ivs","m4a","m4b","m4p","mmf","mp3","mpc","msv","nmf","nsf","ogg,","opus","ra,","raw","sln","tta","vox","wav","wma","wv","webm","8svx"])},videoExtensions(){return new Set(["webm","mkv","flv","flv","vob","ogv","ogg","drc","gif","gifv","mng","avi","mts","m2ts","mov","qt","wmv","yuv","rm","rmvb","asf","amv","mp4","m4p","m4v","mpg","mp2","mpeg","mpe","mpv","mpg","mpeg","m2v","m4v","svi","3gp","3g2","mxf","roq","nsv","flv","f4v","f4p","f4a","f4b"])},mediaExtensions(){return new Set([...this.videoExtensions,...this.audioExtensions])}},methods:{convertTime(t){t=parseFloat(t);const e={};e.h=""+parseInt(t/3600),e.m=""+parseInt(t/60-60*e.h),e.s=""+parseInt(t-(3600*e.h+60*e.m));for(const a of["m","s"])parseInt(e[a])<10&&(e[a]="0"+e[a]);const s=[];return parseInt(e.h)&&s.push(e.h),s.push(e.m,e.s),s.join(":")},async startStreaming(t,e,s=!1){let a=t,n=null;t instanceof Object?(a=t.url,n=t.subtitles):t={url:a};const i=await this.request(`${e}.start_streaming`,{media:a,subtitles:n,download:s});return{...t,...i}},async stopStreaming(t,e){await this.request(`${e}.stop_streaming`,{media_id:t})}}};const i=n;var l=i},1587:function(t,e,s){s.d(e,{Z:function(){return Wt}});var a=s(6252);const n={class:"media-container"},i={class:"view-container"},l={class:"controls-container"};function o(t,e,s,o,u,r){const c=(0,a.up)("Controls");return(0,a.wg)(),(0,a.iD)("div",n,[(0,a._)("div",i,[(0,a.WI)(t.$slots,"default",{},void 0,!0)]),(0,a._)("div",l,[(0,a.Wm)(c,{buttons:s.buttons,image:s.image,status:s.status,track:s.track,onConsume:e[0]||(e[0]=e=>t.$emit("consume",e)),onMute:e[1]||(e[1]=e=>t.$emit("mute")),onNext:e[2]||(e[2]=e=>t.$emit("next")),onPause:e[3]||(e[3]=e=>t.$emit("pause",e)),onPlay:e[4]||(e[4]=e=>t.$emit("play",e)),onPrevious:e[5]||(e[5]=e=>t.$emit("previous")),onRandom:e[6]||(e[6]=e=>t.$emit("random",e)),onRepeat:e[7]||(e[7]=e=>t.$emit("repeat",e)),onSearch:e[8]||(e[8]=e=>t.$emit("search",e)),onSeek:e[9]||(e[9]=e=>t.$emit("seek",e)),onSetVolume:e[10]||(e[10]=e=>t.$emit("set-volume",e)),onStop:e[11]||(e[11]=e=>t.$emit("stop")),onUnmute:e[12]||(e[12]=e=>t.$emit("unmute"))},null,8,["buttons","image","status","track"])])])}var u=s(3577),r=s(9963);const c=t=>((0,a.dD)("data-v-1648255d"),t=t(),(0,a.Cn)(),t),m={key:0,class:"remote-image-container"},p=["src","alt"],d={key:1,class:"icon-container"},v={class:"row buttons-container"},g={class:"buttons"},k={class:"buttons"},b=c((()=>(0,a._)("i",{class:"icon fa fa-step-backward"},null,-1))),f=[b],y=c((()=>(0,a._)("i",{class:"icon fa fa-stop"},null,-1))),h=[y],w=c((()=>(0,a._)("i",{class:"icon fa fa-step-forward"},null,-1))),_=[w],x={class:"row"},C={class:"row"},$={class:"controls"},D={class:"playback-controls until tablet col-2"},S={class:"track-container col-s-9 col-m-9 col-l-3"},q={key:0,class:"track-info"},I={key:0,class:"img-container"},P=["src","alt"],Z={class:"title-container"},R={key:0,class:"title"},T=["href","textContent"],j=["textContent"],O=["textContent"],W={key:1,class:"artist"},A=["textContent"],M={class:"playback-controls from desktop col-6"},z={class:"row buttons"},N=c((()=>(0,a._)("i",{class:"icon fa fa-step-backward"},null,-1))),B=[N],E=c((()=>(0,a._)("i",{class:"icon fa fa-stop"},null,-1))),V=[E],U=c((()=>(0,a._)("i",{class:"icon fa fa-step-forward"},null,-1))),L=[U],H={class:"row"},F={class:"col-1 until tablet right-controls"},Y=["title"],G={class:"col-3 from desktop right-controls"};function J(t,e,s,n,i,l){const o=(0,a.up)("VolumeSlider"),c=(0,a.up)("ExtraControls"),b=(0,a.up)("ProgressBar"),y=(0,a.up)("PlayPauseButton");return(0,a.wg)(),(0,a.iD)(a.HY,null,[(0,a._)("div",{class:(0,u.C_)(["extension fade-in",{hidden:!i.expanded}])},["stop"!==s.status?.state?((0,a.wg)(),(0,a.iD)("div",{key:0,class:"image-container",onClick:e[0]||(e[0]=(0,r.iM)(((...t)=>l.searchAlbum&&l.searchAlbum(...t)),["prevent"]))},[l.trackImage?((0,a.wg)(),(0,a.iD)("div",m,[(0,a._)("img",{class:"image",src:l.trackImage,alt:s.track.title},null,8,p)])):((0,a.wg)(),(0,a.iD)("div",d,[(0,a._)("i",{class:(0,u.C_)(["icon fas fa-compact-disc",{playing:"play"===s.status?.state}])},null,2)]))])):(0,a.kq)("",!0),(0,a._)("div",v,[(0,a._)("div",g,[(0,a._)("div",k,[i.buttons_.previous?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[1]||(e[1]=e=>t.$emit("previous")),title:"Play previous track"},f)):(0,a.kq)("",!0),i.buttons_.stop&&"stop"!==s.status.state?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[2]||(e[2]=e=>t.$emit("stop")),title:"Stop playback"},h)):(0,a.kq)("",!0),i.buttons_.next?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[3]||(e[3]=e=>t.$emit("next")),title:"Play next track"},_)):(0,a.kq)("",!0)])])]),(0,a._)("div",x,[(0,a.Wm)(o,{range:s.volumeRange,status:s.status,value:s.status.volume,onMute:e[4]||(e[4]=e=>t.$emit("mute")),onSetVolume:e[5]||(e[5]=e=>t.$emit("set-volume",e)),onUnmute:e[6]||(e[6]=e=>t.$emit("unmute"))},null,8,["range","status","value"]),(0,a.Wm)(c,{buttons:i.buttons_,status:s.status,onConsume:e[7]||(e[7]=e=>t.$emit("consume",!s.status.consume)),onRandom:e[8]||(e[8]=e=>t.$emit("random",!s.status.random)),onRepeat:e[9]||(e[9]=e=>t.$emit("repeat",!s.status.repeat))},null,8,["buttons","status"])]),(0,a._)("div",C,[(0,a.Wm)(b,{elapsed:i.elapsed,duration:l.duration,status:s.status,onSeek:e[10]||(e[10]=e=>t.$emit("seek",e))},null,8,["elapsed","duration","status"])])],2),(0,a._)("div",$,[(0,a._)("div",D,[(0,a.Wm)(y,{status:s.status,onPlay:e[11]||(e[11]=e=>t.$emit("play")),onPause:e[12]||(e[12]=e=>t.$emit("pause"))},null,8,["status"])]),(0,a._)("div",S,[s.track&&"stop"!==s.status?.state?((0,a.wg)(),(0,a.iD)("div",q,[l.trackImage?((0,a.wg)(),(0,a.iD)("div",I,[(0,a._)("img",{class:"image from desktop",src:l.trackImage,alt:s.track.title},null,8,P)])):(0,a.kq)("",!0),(0,a._)("div",Z,["play"===s.status.state||"pause"===s.status.state?((0,a.wg)(),(0,a.iD)("div",R,[s.track.album?((0,a.wg)(),(0,a.iD)("a",{key:0,href:t.$route.fullPath,textContent:(0,u.zw)(s.track.title?.length?s.track.title:"[No Title]"),onClick:e[13]||(e[13]=(0,r.iM)(((...t)=>l.searchAlbum&&l.searchAlbum(...t)),["prevent"]))},null,8,T)):s.track.url?((0,a.wg)(),(0,a.iD)("a",{key:1,textContent:(0,u.zw)(s.track.title?.length?s.track.title:"[No Title]")},null,8,j)):((0,a.wg)(),(0,a.iD)("span",{key:2,textContent:(0,u.zw)(s.track.title?.length?s.track.title:"[No Title]")},null,8,O))])):(0,a.kq)("",!0),!s.track.artist?.length||"play"!==s.status.state&&"pause"!==s.status.state?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",W,[(0,a._)("a",{textContent:(0,u.zw)(s.track.artist),onClick:e[14]||(e[14]=(0,r.iM)(((...t)=>l.searchArtist&&l.searchArtist(...t)),["prevent"]))},null,8,A)]))])])):(0,a.kq)("",!0)]),(0,a._)("div",M,[(0,a._)("div",z,[i.buttons_.previous?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[15]||(e[15]=e=>t.$emit("previous")),title:"Play previous track"},B)):(0,a.kq)("",!0),(0,a.Wm)(y,{status:s.status,onPlay:e[16]||(e[16]=e=>t.$emit("play")),onPause:e[17]||(e[17]=e=>t.$emit("pause"))},null,8,["status"]),i.buttons_.stop&&"stop"!==s.status.state?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[18]||(e[18]=e=>t.$emit("stop")),title:"Stop playback"},V)):(0,a.kq)("",!0),i.buttons_.next?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[19]||(e[19]=e=>t.$emit("next")),title:"Play next track"},L)):(0,a.kq)("",!0)]),(0,a._)("div",H,[(0,a.Wm)(b,{elapsed:i.elapsed,duration:l.duration,status:s.status,onSeek:e[20]||(e[20]=e=>t.$emit("seek",e))},null,8,["elapsed","duration","status"])])]),(0,a._)("div",F,[(0,a._)("button",{onClick:e[21]||(e[21]=t=>i.expanded=!i.expanded),title:i.expanded?"Show more controls":"Hide extra controls"},[(0,a._)("i",{class:(0,u.C_)(["fas",["fa-chevron-"+(i.expanded?"down":"up")]])},null,2)],8,Y)]),(0,a._)("div",G,[(0,a.Wm)(o,{value:s.status.volume,range:s.volumeRange,status:s.status,onMute:e[22]||(e[22]=e=>t.$emit("mute")),onUnmute:e[23]||(e[23]=e=>t.$emit("unmute")),onSetVolume:e[24]||(e[24]=e=>t.$emit("set-volume",e))},null,8,["value","range","status"]),(0,a.Wm)(c,{status:s.status,buttons:i.buttons_,onConsume:e[25]||(e[25]=e=>t.$emit("consume",!s.status.consume)),onRandom:e[26]||(e[26]=e=>t.$emit("random",!s.status.random)),onRepeat:e[27]||(e[27]=e=>t.$emit("repeat",!s.status.repeat))},null,8,["status","buttons"])])])],64)}var K=s(8637),Q=s(1065);const X=t=>((0,a.dD)("data-v-772c7a5b"),t=t(),(0,a.Cn)(),t),tt={class:"extra-controls-container"},et=X((()=>(0,a._)("i",{class:"icon fa fa-utensils"},null,-1))),st=[et],at=X((()=>(0,a._)("i",{class:"icon fa fa-random"},null,-1))),nt=[at],it=X((()=>(0,a._)("i",{class:"icon fa fa-redo"},null,-1))),lt=[it];function ot(t,e,s,n,i,l){return(0,a.wg)(),(0,a.iD)("div",tt,[s.buttons.consume?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[0]||(e[0]=e=>t.$emit("consume")),class:(0,u.C_)({enabled:s.status.consume}),title:"Toggle consume mode"},st,2)):(0,a.kq)("",!0),s.buttons.random?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[1]||(e[1]=e=>t.$emit("random")),class:(0,u.C_)({enabled:s.status.random}),title:"Toggle shuffle"},nt,2)):(0,a.kq)("",!0),s.buttons.repeat?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[2]||(e[2]=e=>t.$emit("repeat")),class:(0,u.C_)({enabled:s.status.repeat}),title:"Toggle repeat"},lt,2)):(0,a.kq)("",!0)])}var ut={emits:["consume","random","repeat"],props:{status:{type:Object,default:()=>({})},buttons:{type:Object,default:()=>({})}}},rt=s(3744);const ct=(0,rt.Z)(ut,[["render",ot],["__scopeId","data-v-772c7a5b"]]);var mt=ct;const pt=["title"],dt={key:0,class:"icon play-pause fa fa-pause"},vt={key:1,class:"icon play-pause fa fa-play"};function gt(t,e,s,n,i,l){return(0,a.wg)(),(0,a.iD)("button",{onClick:e[0]||(e[0]=e=>t.$emit("play"===s.status.state?"pause":"play")),title:"play"===s.status.state?"Pause":"Play"},["play"===s.status.state?((0,a.wg)(),(0,a.iD)("i",dt)):((0,a.wg)(),(0,a.iD)("i",vt))],8,pt)}var kt={emits:["play","pause"],props:{status:{type:Object,default:()=>({})}}};const bt=(0,rt.Z)(kt,[["render",gt],["__scopeId","data-v-a742ddb0"]]);var ft=bt,yt=s(7191);const ht={class:"volume-slider-container"},wt={class:"col-1"},_t=["disabled","title"],xt={key:0,class:"icon fa fa-volume-xmark"},Ct={key:1,class:"icon fa fa-volume-up"},$t={class:"col-11 volume-slider"};function Dt(t,e,s,n,i,l){const o=(0,a.up)("Slider");return(0,a.wg)(),(0,a.iD)("div",ht,[(0,a._)("div",wt,[(0,a._)("button",{disabled:null==s.status.mute,title:s.status.mute?"Muted":"Unmuted",onClick:e[0]||(e[0]=e=>t.$emit(s.status.mute?"unmute":"mute"))},[s.status.mute?((0,a.wg)(),(0,a.iD)("i",xt)):((0,a.wg)(),(0,a.iD)("i",Ct))],8,_t)]),(0,a._)("div",$t,[(0,a.Wm)(o,{value:s.status.volume,range:s.volumeRange,disabled:null==s.status.volume,onChange:e[1]||(e[1]=e=>t.$emit("set-volume",e.target.value))},null,8,["value","range","disabled"])])])}var St=s(8140),qt={components:{Slider:St.Z},emits:["set-volume","mute","unmute"],props:{volumeRange:{type:Array,default:()=>[0,100]},status:{type:Object,default:()=>({})}}};const It=(0,rt.Z)(qt,[["render",Dt],["__scopeId","data-v-662f988f"]]);var Pt=It,Zt={components:{ExtraControls:mt,PlayPauseButton:ft,ProgressBar:yt.Z,VolumeSlider:Pt},mixins:[K.Z,Q.Z],emits:["consume","mute","next","pause","play","previous","random","repeat","search","seek","set-volume","stop","unmute"],props:{track:{type:Object},status:{type:Object,default:()=>{}},image:{type:String,default:null},buttons:{type:Object,default:()=>({previous:!0,next:!0,stop:!0,consume:!0,random:!0,repeat:!0})},volumeRange:{type:Array,default:()=>[0,100]}},data(){const t=Object.keys(this.buttons)?.length?this.buttons:{previous:!0,next:!0,stop:!0,consume:!0,random:!0,repeat:!0};return{expanded:!1,lastSync:0,elapsed:this.status?.elapsed||this.status?.position,buttons_:t}},computed:{duration(){return null!=this.status?.duration?this.status.duration:this.track?.duration},trackImage(){return this.track?.image||this.image}},methods:{getTime(){return(new Date).getTime()/1e3},searchAlbum(){if(!this.track?.artist||!this.track?.album)return;const t={artist:this.track.artist,album:this.track.album};this.track.album_uri&&(t.uris=[this.track.album_uri]),this.$emit("search",t)},searchArtist(){if(!this.track?.artist)return;const t={artist:this.track.artist};this.track.artist_uri&&(t.uris=[this.track.album_uri]),this.$emit("search",t)}},mounted(){const t=this;this.lastSync=this.getTime(),this.$watch((()=>this.track),(e=>{e&&"play"===t.status?.state||(t.lastSync=this.getTime())})),this.$watch((()=>this.status),(()=>{t.lastSync=this.getTime()})),setInterval((()=>{"stop"!==t.status?.state&&(t.elapsed=t.status?.elapsed||t.status?.position||0,"play"===t.status?.state&&(t.elapsed+=Math.round(this.getTime()-t.lastSync)))}),1e3)}};const Rt=(0,rt.Z)(Zt,[["render",J],["__scopeId","data-v-1648255d"]]);var Tt=Rt,jt={name:"View",components:{Controls:Tt},emits:["consume","mute","next","pause","play","previous","random","repeat","search","seek","set-volume","stop","unmute"],props:{pluginName:{type:String,required:!0},status:{type:Object,default:()=>{}},track:{type:Object},image:{type:String,default:null},buttons:{type:Object}}};const Ot=(0,rt.Z)(jt,[["render",o],["__scopeId","data-v-e32f5b62"]]);var Wt=Ot},8140:function(t,e,s){s.d(e,{Z:function(){return k}});var a=s(6252),n=s(3577),i=s(9963);const l={class:"slider-wrapper"},o=["textContent"],u=["textContent"],r={class:"slider-container"},c=["min","max","step","disabled","value"],m=["textContent"];function p(t,e,s,p,d,v){return(0,a.wg)(),(0,a.iD)("label",l,[s.withRange?((0,a.wg)(),(0,a.iD)("span",{key:0,class:(0,n.C_)(["range-labels",{"with-label":s.withLabel}])},[s.withRange?((0,a.wg)(),(0,a.iD)("span",{key:0,class:"label left",textContent:(0,n.zw)(s.range[0])},null,8,o)):(0,a.kq)("",!0),s.withRange?((0,a.wg)(),(0,a.iD)("span",{key:1,class:"label right",textContent:(0,n.zw)(s.range[1])},null,8,u)):(0,a.kq)("",!0)],2)):(0,a.kq)("",!0),(0,a._)("span",r,[(0,a._)("input",{class:(0,n.C_)(["slider",{"with-label":s.withLabel}]),type:"range",min:s.range[0],max:s.range[1],step:s.step,disabled:s.disabled,value:s.value,ref:"range",onInput:e[0]||(e[0]=(0,i.iM)((e=>t.$emit("input",e)),["stop"])),onChange:e[1]||(e[1]=(0,i.iM)((e=>t.$emit("change",e)),["stop"]))},null,42,c),s.withLabel?((0,a.wg)(),(0,a.iD)("span",{key:0,class:"label",textContent:(0,n.zw)(s.value),ref:"label"},null,8,m)):(0,a.kq)("",!0)])])}var d={emits:["input","change"],props:{value:{type:Number},disabled:{type:Boolean,default:!1},range:{type:Array,default:()=>[0,100]},step:{type:Number,default:1},withLabel:{type:Boolean,default:!1},withRange:{type:Boolean,default:!1}}},v=s(3744);const g=(0,v.Z)(d,[["render",p],["__scopeId","data-v-d90e850c"]]);var k=g}}]); +//# sourceMappingURL=1587.e2ebe369.js.map \ No newline at end of file diff --git a/platypush/backend/http/webapp/dist/static/js/1587.e2ebe369.js.map b/platypush/backend/http/webapp/dist/static/js/1587.e2ebe369.js.map new file mode 100644 index 0000000000..3a0d348a98 --- /dev/null +++ b/platypush/backend/http/webapp/dist/static/js/1587.e2ebe369.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1587.e2ebe369.js","mappings":"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","sources":["webpack://platypush/./src/components/Media/ProgressBar.vue","webpack://platypush/./src/components/Media/ProgressBar.vue?32c3","webpack://platypush/./src/components/Media/Utils.vue","webpack://platypush/./src/components/Media/Utils.vue?af63","webpack://platypush/./src/components/Media/View.vue","webpack://platypush/./src/components/Media/Controls.vue","webpack://platypush/./src/components/Media/ExtraControls.vue","webpack://platypush/./src/components/Media/ExtraControls.vue?b9c1","webpack://platypush/./src/components/Media/PlayPauseButton.vue","webpack://platypush/./src/components/Media/PlayPauseButton.vue?80fd","webpack://platypush/./src/components/Media/VolumeSlider.vue","webpack://platypush/./src/components/Media/VolumeSlider.vue?4097","webpack://platypush/./src/components/Media/Controls.vue?3032","webpack://platypush/./src/components/Media/View.vue?78ca","webpack://platypush/./src/components/elements/Slider.vue","webpack://platypush/./src/components/elements/Slider.vue?787f"],"sourcesContent":["\n\n\n\n\n","import { render } from \"./ProgressBar.vue?vue&type=template&id=3894ad4d&scoped=true\"\nimport script from \"./ProgressBar.vue?vue&type=script&lang=js\"\nexport * from \"./ProgressBar.vue?vue&type=script&lang=js\"\n\nimport \"./ProgressBar.vue?vue&type=style&index=0&id=3894ad4d&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-3894ad4d\"]])\n\nexport default __exports__","\n","import script from \"./Utils.vue?vue&type=script&lang=js\"\nexport * from \"./Utils.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import { render } from \"./ExtraControls.vue?vue&type=template&id=772c7a5b&scoped=true\"\nimport script from \"./ExtraControls.vue?vue&type=script&lang=js\"\nexport * from \"./ExtraControls.vue?vue&type=script&lang=js\"\n\nimport \"./ExtraControls.vue?vue&type=style&index=0&id=772c7a5b&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-772c7a5b\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./PlayPauseButton.vue?vue&type=template&id=a742ddb0&scoped=true\"\nimport script from \"./PlayPauseButton.vue?vue&type=script&lang=js\"\nexport * from \"./PlayPauseButton.vue?vue&type=script&lang=js\"\n\nimport \"./PlayPauseButton.vue?vue&type=style&index=0&id=a742ddb0&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-a742ddb0\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./VolumeSlider.vue?vue&type=template&id=662f988f&scoped=true\"\nimport script from \"./VolumeSlider.vue?vue&type=script&lang=js\"\nexport * from \"./VolumeSlider.vue?vue&type=script&lang=js\"\n\nimport \"./VolumeSlider.vue?vue&type=style&index=0&id=662f988f&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-662f988f\"]])\n\nexport default __exports__","import { render } from \"./Controls.vue?vue&type=template&id=1648255d&scoped=true\"\nimport script from \"./Controls.vue?vue&type=script&lang=js\"\nexport * from \"./Controls.vue?vue&type=script&lang=js\"\n\nimport \"./Controls.vue?vue&type=style&index=0&id=1648255d&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-1648255d\"]])\n\nexport default __exports__","import { render } from \"./View.vue?vue&type=template&id=e32f5b62&scoped=true\"\nimport script from \"./View.vue?vue&type=script&lang=js\"\nexport * from \"./View.vue?vue&type=script&lang=js\"\n\nimport \"./View.vue?vue&type=style&index=0&id=e32f5b62&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-e32f5b62\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=d90e850c&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=d90e850c&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-d90e850c\"]])\n\nexport default __exports__"],"names":["class","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_toDisplayString","$props","elapsed","status","state","_ctx","convertTime","_hoisted_4","_createVNode","_component_Slider","value","range","duration","disabled","onChange","_cache","$event","$emit","target","_hoisted_5","components","Slider","emits","mixins","MediaUtils","props","type","Number","Object","default","__exports__","render","name","Utils","computed","audioExtensions","Set","videoExtensions","mediaExtensions","this","methods","time","parseFloat","t","h","parseInt","m","s","attr","ret","push","join","startStreaming","resource","pluginName","download","url","subtitles","request","media","stopStreaming","mediaId","media_id","_renderSlot","$slots","undefined","_hoisted_3","_component_Controls","buttons","image","track","onConsume","onMute","onNext","onPause","onPlay","onPrevious","onRandom","onRepeat","onSearch","onSeek","onSetVolume","onStop","onUnmute","_hoisted_7","_hoisted_9","_hoisted_11","_hoisted_30","_hoisted_32","_hoisted_34","_normalizeClass","hidden","$data","expanded","onClick","_withModifiers","args","$options","searchAlbum","trackImage","src","alt","title","playing","_hoisted_6","buttons_","previous","stop","next","_hoisted_13","_component_VolumeSlider","volumeRange","volume","_component_ExtraControls","consume","random","repeat","_hoisted_14","_component_ProgressBar","_hoisted_15","_hoisted_16","_component_PlayPauseButton","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_21","_hoisted_22","album","href","$route","fullPath","length","artist","_hoisted_26","searchArtist","_hoisted_28","_hoisted_29","_hoisted_36","_hoisted_37","_hoisted_39","enabled","mute","Array","ExtraControls","PlayPauseButton","ProgressBar","VolumeSlider","String","data","keys","lastSync","position","getTime","Date","album_uri","uris","artist_uri","mounted","self","$watch","setInterval","Math","round","Controls","required","withRange","withLabel","min","max","step","ref","onInput","Boolean"],"sourceRoot":""} \ No newline at end of file diff --git a/platypush/backend/http/webapp/dist/static/js/1807.4abea163.js b/platypush/backend/http/webapp/dist/static/js/1807.586a24d4.js similarity index 99% rename from platypush/backend/http/webapp/dist/static/js/1807.4abea163.js rename to platypush/backend/http/webapp/dist/static/js/1807.586a24d4.js index 05ff01af9c..d3aaa6116f 100644 --- a/platypush/backend/http/webapp/dist/static/js/1807.4abea163.js +++ b/platypush/backend/http/webapp/dist/static/js/1807.586a24d4.js @@ -1,2 +1,2 @@ "use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[1807],{1807:function(e,t,n){n.d(t,{Z:function(){return We}});var s=n(6252),i=n(3577),a=n(9963);const o=e=>((0,s.dD)("data-v-48afe350"),e=e(),(0,s.Cn)(),e),r={class:"action-editor"},l={class:"curl-modal-container"},c=["innerHTML"],u={class:"header-container"},d={class:"tabs-container"},h={key:0,class:"buttons"},p=["disabled"],g=o((()=>(0,s._)("i",{class:"fas fa-save"},null,-1))),m=[g],v={key:0,class:"request structured"},b={class:"autocomplete-container"},y=["type","disabled"],k=o((()=>(0,s._)("i",{class:"fas fa-play"},null,-1))),f=[k],w={key:0,class:"args"},A=o((()=>(0,s._)("h2",null,[(0,s._)("i",{class:"fas fa-code"}),(0,s.Uk)("   Arguments ")],-1))),x={key:1,class:"request raw-request"},I={class:"first-row"},_=["placeholder"],D=["type","disabled"],q=o((()=>(0,s._)("i",{class:"fas fa-play"},null,-1))),C=[q];function S(e,t,n,o,g,k){const q=(0,s.up)("Loading"),S=(0,s.up)("Modal"),E=(0,s.up)("Tab"),R=(0,s.up)("Tabs"),O=(0,s.up)("Autocomplete"),$=(0,s.up)("ActionDoc"),j=(0,s.up)("ActionArgs"),T=(0,s.up)("Response");return(0,s.wg)(),(0,s.iD)("div",{class:(0,i.C_)(["action-editor-container",{"with-save":n.withSave}]),onClick:t[12]||(t[12]=(...e)=>k.onClick&&k.onClick(...e))},[g.loading?((0,s.wg)(),(0,s.j4)(q,{key:0})):(0,s.kq)("",!0),(0,s._)("div",r,[(0,s._)("div",l,[k.curlSnippet?.length?((0,s.wg)(),(0,s.j4)(S,{key:0,ref:"curlModal",title:"curl request"},{default:(0,s.w5)((()=>[(0,s._)("div",{class:"output curl-snippet",onClick:t[0]||(t[0]=t=>e.copyToClipboard(k.curlSnippet))},[(0,s._)("pre",null,[(0,s._)("code",{innerHTML:k.highlightedCurlSnippet},null,8,c)])])])),_:1},512)):(0,s.kq)("",!0)]),(0,s._)("div",u,[(0,s._)("div",d,[(0,s.Wm)(R,null,{default:(0,s.w5)((()=>[(0,s.Wm)(E,{selected:g.structuredInput,"icon-class":"fas fa-list",onInput:t[1]||(t[1]=e=>k.onInputTypeChange(!0))},{default:(0,s.w5)((()=>[(0,s.Uk)(" Structured ")])),_:1},8,["selected"]),(0,s.Wm)(E,{selected:!g.structuredInput,"icon-class":"fas fa-code",onInput:t[2]||(t[2]=e=>k.onInputTypeChange(!1))},{default:(0,s.w5)((()=>[(0,s.Uk)(" Raw ")])),_:1},8,["selected"])])),_:1})]),n.withSave?((0,s.wg)(),(0,s.iD)("div",h,[(0,s._)("button",{type:"submit",class:"save-btn btn-primary",disabled:g.running||!k.isValidAction,title:"Save",onClick:t[3]||(t[3]=(0,a.iM)(((...e)=>k.onSubmit&&k.onSubmit(...e)),["stop"]))},m,8,p)])):(0,s.kq)("",!0)]),(0,s._)("form",{ref:"actionForm",autocomplete:"off",onSubmit:t[11]||(t[11]=(0,a.iM)(((...e)=>k.onSubmit&&k.onSubmit(...e)),["prevent"]))},[g.structuredInput?((0,s.wg)(),(0,s.iD)("div",v,[(0,s._)("header",null,[(0,s._)("div",b,[(0,s.Wm)(O,{ref:"autocomplete",items:k.autocompleteItems,onInput:k.updateAction,placeholder:"Action","show-results-when-blank":"",autofocus:"",disabled:g.running,value:g.action.name},null,8,["items","onInput","disabled","value"]),(0,s._)("button",{type:n.withSave?"button":"submit",class:"run-btn btn-primary",disabled:g.running||!k.isValidAction,title:"Run",onClick:t[4]||(t[4]=(0,a.iM)(((...e)=>k.executeAction&&k.executeAction(...e)),["stop"]))},f,8,y)])]),(0,s.Wm)($,{action:g.action,"curl-snippet":k.curlSnippet,loading:g.docLoading,doc:g.selectedDoc,onCurlModal:t[5]||(t[5]=t=>e.$refs.curlModal.show())},null,8,["action","curl-snippet","loading","doc"]),g.action.name in g.actions&&(Object.keys(g.action.args).length||g.action.supportsExtraArgs)?((0,s.wg)(),(0,s.iD)("section",w,[A,(0,s.Wm)(j,{action:g.action,loading:g.loading,running:g.running,"selected-arg":g.selectedArg,"selected-argdoc":g.selectedArgdoc,onAdd:k.addArg,onSelect:k.selectArgdoc,onRemove:k.removeArg,onArgEdit:t[6]||(t[6]=e=>g.action.args[e.name].value=e.value),onExtraArgNameEdit:t[7]||(t[7]=e=>g.action.extraArgs[e.index].name=e.value),onExtraArgValueEdit:t[8]||(t[8]=e=>g.action.extraArgs[e.index].value=e.value)},null,8,["action","loading","running","selected-arg","selected-argdoc","onAdd","onSelect","onRemove"])])):(0,s.kq)("",!0),(0,s.Wm)(T,{response:g.response,error:g.error},null,8,["response","error"])])):(0,s.kq)("",!0),g.structuredInput?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",x,[(0,s._)("div",I,[(0,s._)("label",null,[(0,s.wy)((0,s._)("textarea",{"onUpdate:modelValue":t[9]||(t[9]=e=>g.rawRequest=e),ref:"rawAction",placeholder:g.rawRequestPlaceholder},null,8,_),[[a.nr,g.rawRequest]])]),(0,s._)("button",{type:n.withSave?"button":"submit",disabled:g.running,class:"raw-run-btn btn-primary",title:"Run",onClick:t[10]||(t[10]=(0,a.iM)(((...e)=>k.executeAction&&k.executeAction(...e)),["stop"]))},C,8,D)]),(0,s.Wm)(T,{response:g.response,error:g.error},null,8,["response","error"])]))],544)])],2)}n(560),n(8783),n(3465);var E=n(637);const R=e=>((0,s.dD)("data-v-1edf7bde"),e=e(),(0,s.Cn)(),e),O={class:"args-body"},$={key:0,class:"args-list"},j=["disabled","placeholder","value","onInput","onFocus"],T={key:0,class:"required-flag"},N={key:0,class:"extra-args"},L={class:"col-5"},M=["disabled","value","onInput"],U={class:"col-6"},Z=["disabled","value","onInput"],B={class:"col-1 buttons"},K=["onClick"],J=R((()=>(0,s._)("i",{class:"fas fa-trash"},null,-1))),V=[J],H={key:1,class:"add-arg"},z=R((()=>(0,s._)("i",{class:"fas fa-plus"},null,-1))),W=[z];function P(e,t,n,a,o,r){const l=(0,s.up)("Argdoc");return(0,s.wg)(),(0,s.iD)("div",O,[Object.keys(n.action.args).length||n.action.supportsExtraArgs?((0,s.wg)(),(0,s.iD)("div",$,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(Object.keys(n.action.args),(e=>((0,s.wg)(),(0,s.iD)("div",{class:"arg",key:e},[(0,s._)("label",null,[(0,s._)("input",{type:"text",class:(0,i.C_)(["action-arg-value",{required:n.action.args[e].required}]),disabled:n.running,placeholder:e,value:n.action.args[e].value,onInput:t=>r.onArgEdit(e,t),onFocus:t=>r.onSelect(e)},null,42,j),n.action.args[e].required?((0,s.wg)(),(0,s.iD)("span",T,"*")):(0,s.kq)("",!0)]),n.selectedArgdoc&&n.selectedArg&&e===n.selectedArg?((0,s.wg)(),(0,s.j4)(l,{key:0,name:n.selectedArg,args:n.action.args[n.selectedArg],doc:n.selectedArgdoc,loading:n.loading,"is-mobile":""},null,8,["name","args","doc","loading"])):(0,s.kq)("",!0)])))),128)),Object.keys(n.action.extraArgs).length?((0,s.wg)(),(0,s.iD)("div",N,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(n.action.extraArgs,((t,i)=>((0,s.wg)(),(0,s.iD)("div",{class:"arg extra-arg",key:i},[(0,s._)("label",L,[(0,s._)("input",{type:"text",class:"action-extra-arg-name",placeholder:"Name",disabled:n.running,value:t.name,onInput:e=>r.onExtraArgNameEdit(i,e.target.value)},null,40,M)]),(0,s._)("label",U,[(0,s._)("input",{type:"text",class:"action-extra-arg-value",placeholder:"Value",disabled:n.running,value:t.value,onInput:e=>r.onExtraArgValueEdit(i,e.target.value)},null,40,Z)]),(0,s._)("label",B,[(0,s._)("button",{type:"button",class:"action-extra-arg-del",title:"Remove argument",onClick:t=>e.$emit("remove",i)},V,8,K)])])))),128))])):(0,s.kq)("",!0),n.action.supportsExtraArgs?((0,s.wg)(),(0,s.iD)("div",H,[(0,s._)("button",{type:"button",title:"Add an argument",onClick:t[0]||(t[0]=(...e)=>r.onArgAdd&&r.onArgAdd(...e))},W)])):(0,s.kq)("",!0)])):(0,s.kq)("",!0),n.selectedArgdoc&&n.selectedArg?((0,s.wg)(),(0,s.j4)(l,{key:1,name:n.selectedArg,args:n.action.args[n.selectedArg],doc:n.selectedArgdoc,loading:n.loading},null,8,["name","args","doc","loading"])):(0,s.kq)("",!0)])}const F=e=>((0,s.dD)("data-v-2df98b7b"),e=e(),(0,s.Cn)(),e),Y=["textContent"],G={key:0,class:"flag required"},X={key:1,class:"flag optional"},Q={class:"doc html"},ee={key:1},te=["innerHTML"],ne={key:1,class:"type"},se=F((()=>(0,s._)("b",null,"Type:",-1)));function ie(e,t,n,a,o,r){const l=(0,s.up)("Loading");return(0,s.wg)(),(0,s.iD)("article",{class:(0,i.C_)(["argdoc-container",{mobile:n.isMobile,widescreen:!n.isMobile}])},[(0,s._)("h2",null,[(0,s.Uk)(" Argument: "),(0,s._)("div",{class:"argname",textContent:(0,i.zw)(n.name)},null,8,Y),n.args.required?((0,s.wg)(),(0,s.iD)("span",G,"[Required]")):((0,s.wg)(),(0,s.iD)("span",X,"[Optional]"))]),(0,s._)("div",Q,[n.loading?((0,s.wg)(),(0,s.j4)(l,{key:0})):((0,s.wg)(),(0,s.iD)("span",ee,[n.doc?.length?((0,s.wg)(),(0,s.iD)("span",{key:0,innerHTML:n.doc},null,8,te)):(0,s.kq)("",!0),n.args.type?((0,s.wg)(),(0,s.iD)("div",ne,[se,(0,s.Uk)("   "+(0,i.zw)(n.args.type),1)])):(0,s.kq)("",!0)]))])],2)}var ae=n(6791),oe={name:"Argdoc",components:{Loading:ae.Z},props:{args:{type:Object,default:()=>({})},name:{type:String,required:!0},doc:String,loading:Boolean,isMobile:Boolean}},re=n(3744);const le=(0,re.Z)(oe,[["render",ie],["__scopeId","data-v-2df98b7b"]]);var ce=le,ue={name:"ActionArgs",components:{Argdoc:ce},emits:["add","arg-edit","extra-arg-name-edit","extra-arg-value-edit","remove","select"],props:{action:Object,loading:Boolean,running:Boolean,selectedArg:String,selectedArgdoc:String},methods:{onArgAdd(){this.$emit("add"),this.$nextTick((()=>{const e=this.$el.querySelectorAll(".action-extra-arg-name");e.length&&e[e.length-1].focus()}))},onArgEdit(e,t){this.$emit("arg-edit",{name:e,value:t.target.value})},onExtraArgNameEdit(e,t){this.$emit("extra-arg-name-edit",{index:e,value:t})},onExtraArgValueEdit(e,t){this.$emit("extra-arg-value-edit",{index:e,value:t})},onSelect(e){this.$emit("select",e)}}};const de=(0,re.Z)(ue,[["render",P],["__scopeId","data-v-1edf7bde"]]);var he=de;const pe=e=>((0,s.dD)("data-v-105c186a"),e=e(),(0,s.Cn)(),e),ge={key:0,class:"doc-container"},me={class:"title"},ve=pe((()=>(0,s._)("i",{class:"fas fa-book"},null,-1))),be=["href"],ye={key:0,class:"buttons"},ke=pe((()=>(0,s._)("i",{class:"fas fa-puzzle-piece"},null,-1))),fe=[ke],we=pe((()=>(0,s._)("i",{class:"fas fa-terminal"},null,-1))),Ae=[we],xe={class:"doc html"},Ie=["innerHTML"];function _e(e,t,n,i,a,o){const r=(0,s.up)("Loading");return n.doc?.length?((0,s.wg)(),(0,s.iD)("section",ge,[(0,s._)("h2",null,[(0,s._)("div",me,[ve,(0,s.Uk)("   "),(0,s._)("a",{href:n.action?.doc_url},"Action documentation",8,be)]),n.action?.name?((0,s.wg)(),(0,s.iD)("div",ye,[o.pluginName?.length?((0,s.wg)(),(0,s.iD)("button",{key:0,type:"button",title:"Go to extension",onClick:t[0]||(t[0]=(...e)=>o.onExtClick&&o.onExtClick(...e))},fe)):(0,s.kq)("",!0),n.curlSnippet?.length?((0,s.wg)(),(0,s.iD)("button",{key:1,type:"button",title:"cURL command",onClick:t[1]||(t[1]=t=>e.$emit("curl-modal"))},Ae)):(0,s.kq)("",!0)])):(0,s.kq)("",!0)]),(0,s._)("div",xe,[n.loading?((0,s.wg)(),(0,s.j4)(r,{key:0})):((0,s.wg)(),(0,s.iD)("span",{key:1,innerHTML:n.doc},null,8,Ie))])])):(0,s.kq)("",!0)}var De={name:"ActionDoc",components:{Loading:ae.Z},emits:["curl-modal"],props:{action:Object,doc:String,curlSnippet:String,loading:Boolean},computed:{pluginName(){const e=(this.action?.name||"").split(".");return e.length>1?e.slice(0,-1).join("."):null}},methods:{onExtClick(){window.location.href=`/#extensions?extension=${this.pluginName}`}}};const qe=(0,re.Z)(De,[["render",_e],["__scopeId","data-v-105c186a"]]);var Ce=qe;const Se={class:"autocomplete"},Ee=["text"],Re=["placeholder","disabled","value"],Oe={key:0,class:"items"},$e=["data-item","onClick"],je={key:0,class:"matching"},Te={class:"normal"};function Ne(e,t,n,a,o,r){return(0,s.wg)(),(0,s.iD)("div",Se,[(0,s._)("label",{text:n.label},[(0,s._)("input",{type:"text",class:"input",ref:"input",placeholder:n.placeholder,disabled:n.disabled,value:n.value,onFocus:t[0]||(t[0]=(...e)=>r.onFocus&&r.onFocus(...e)),onInput:t[1]||(t[1]=(...e)=>r.onInput&&r.onInput(...e)),onBlur:t[2]||(t[2]=(...e)=>r.onBlur&&r.onBlur(...e)),onKeydown:t[3]||(t[3]=(...e)=>r.onInputKeyDown&&r.onInputKeyDown(...e)),onKeyup:t[4]||(t[4]=(...e)=>r.onInputKeyUp&&r.onInputKeyUp(...e))},null,40,Re)],8,Ee),r.showItems?((0,s.wg)(),(0,s.iD)("div",Oe,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(r.visibleItems,((e,t)=>((0,s.wg)(),(0,s.iD)("div",{class:(0,i.C_)(["item",{active:t===o.curIndex}]),key:e,"data-item":e,onClick:t=>r.onItemSelect(e)},[n.value?.length?((0,s.wg)(),(0,s.iD)("span",je,(0,i.zw)(e.substr(0,n.value.length)),1)):(0,s.kq)("",!0),(0,s._)("span",Te,(0,i.zw)(e.substr(n.value?.length||0)),1)],10,$e)))),128))])):(0,s.kq)("",!0)])}var Le={name:"Autocomplete",emits:["input"],props:{items:{type:Array,required:!0},value:{type:String,default:""},disabled:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},label:{type:String},placeholder:{type:String},showResultsWhenBlank:{type:Boolean,default:!1}},data(){return{visible:!1,curIndex:-1}},computed:{visibleItems(){if(!this.value?.length)return this.items;const e=this.value.toUpperCase();return e?.length?this.items.filter((t=>t.substr(0,e.length).toUpperCase()===e)):this.showResultsWhenBlank?this.items:[]},showItems(){return this.visible&&this.items?.length}},methods:{selectNextItem(){this.curIndex++,this.normalizeIndex()},selectPrevItem(){this.curIndex--,this.normalizeIndex()},normalizeIndex(){this.curIndex>=this.visibleItems.length&&(this.curIndex=0),this.curIndex<0&&(this.curIndex=this.visibleItems.length-1);const e=this.$el.querySelector("[data-item='"+this.visibleItems[this.curIndex]+"']");e&&e.scrollIntoView({block:"start",inline:"nearest",behavior:"smooth"})},valueIsInItems(){return!!this.value&&this.items.indexOf(this.value)>=0},onFocus(){(this.showResultsWhenBlank||this.value?.length)&&(this.visible=!0)},onInput(e){let t=e.target.value;this.valueIsInItems()&&(this.visible=!1),e.stopPropagation(),this.$emit("input",t),this.curIndex=-1,this.visible=!0},onBlur(e){this.onInput(e),this.$nextTick((()=>{this.valueIsInItems()&&(this.visible=!1)}))},onItemSelect(e){this.$emit("input",e),this.$nextTick((()=>{this.valueIsInItems()&&(this.visible=!1)}))},onInputKeyUp(e){["ArrowUp","ArrowDown","Tab","Enter","Escape"].indexOf(e.key)>=0&&e.stopPropagation(),"Enter"===e.key&&this.valueIsInItems()&&(this.$refs.input.blur(),this.visible=!1)},onInputKeyDown(e){"ArrowDown"===e.key||"Tab"===e.key&&!e.shiftKey||"j"===e.key&&e.ctrlKey?(this.selectNextItem(),e.preventDefault()):"ArrowUp"===e.key||"Tab"===e.key&&e.shiftKey||"k"===e.key&&e.ctrlKey?(this.selectPrevItem(),e.preventDefault()):"Enter"===e.key?this.curIndex>-1&&this.visible&&(e.preventDefault(),this.onItemSelect(this.visibleItems[this.curIndex]),this.$refs.input.focus()):"Escape"===e.key&&(this.visible=!1)},onDocumentClick(e){this.$el.contains(e.target)||e.target.classList.contains("item")||(this.visible=!1)}},mounted(){document.addEventListener("click",this.onDocumentClick),this.autofocus&&this.$refs.input.focus()}};const Me=(0,re.Z)(Le,[["render",Ne],["__scopeId","data-v-1f70dd66"]]);var Ue=Me,Ze=n(3493),Be=n(803),Ke=n(8735),Je=n(3176),Ve=n(8637),He={mixins:[Ve.Z],emits:["input"],components:{ActionArgs:he,ActionDoc:Ce,Autocomplete:Ue,Loading:ae.Z,Modal:Ze.Z,Response:Be.Z,Tab:Ke.Z,Tabs:Je.Z},props:{value:{type:Object},withSave:{type:Boolean,default:!1}},data(){return{loading:!1,running:!1,docLoading:!1,structuredInput:!0,selectedDoc:void 0,selectedArg:void 0,selectedArgdoc:void 0,response:void 0,error:void 0,rawRequest:void 0,rawRequestPlaceholder:'Raw JSON request. Example:\n\n{"type": "request", "action": "file.list", "args": {"path": "/"}}',actions:{},plugins:{},procedures:{},actionDocsCache:{},action:{name:void 0,args:{},extraArgs:[],supportsExtraArgs:!1}}},computed:{currentActionDocURL(){return this.action?.doc_url},isValidAction(){return this.action?.name?.length&&this.action.name in this.actions&&Object.values(this.action.args).every((e=>!e.required||e.value?.length))},autocompleteItems(){return this.getPluginName(this.action.name)in this.plugins?Object.keys(this.actions).sort():Object.keys(this.plugins).sort().map((e=>`${e}.`))},actionInput(){return this.$refs.autocomplete.$el.parentElement.querySelector("input[type=text]")},requestArgs(){return this.action.name?{...Object.entries(this.action.args).reduce(((e,t)=>{if(null!=t[1].value){let s=t[1].value;try{s=JSON.parse(s)}catch(n){console.debug("Not a valid JSON value"),console.debug(s)}e[t[0]]=s}return e}),{}),...(this.action.extraArgs||[]).reduce(((e,t)=>{let n=t.value;try{n=JSON.parse(n)}catch(s){console.debug("Not a valid JSON value"),console.debug(n)}return e[t.name]=n,e}),{})}:{}},curlURL(){return`${window.location.protocol}//${window.location.host}/execute`},curlSnippet(){if(!this.action.name)return"";const e={type:"request",action:this.action.name,args:this.requestArgs},t=JSON.stringify(e,null,2);return`curl -XPOST -H "Content-Type: application/json" \\\n -H "Cookie: session_token=${this.getCookies()["session_token"]}" \\\n -d '\n {\n `+this.indent(t.split("\n").slice(1,t.length-2).join("\n"),2).trim()+"' \\\n "+`'${this.curlURL}'`},highlightedCurlSnippet(){return E.Z.highlight("# Note: Replace the cookie with a JWT token for production cases\n"+this.curlSnippet,{language:"bash"}).value}},methods:{async refresh(){this.loading=!0;try{[this.procedures,this.plugins]=await Promise.all([this.request("inspect.get_procedures"),this.request("inspect.get_all_plugins")])}finally{this.loading=!1}this.plugins.procedure={name:"procedure",actions:Object.entries(this.procedures||{}).reduce(((e,[t,n])=>(e[t]={name:t,args:(n.args||[]).reduce(((e,t)=>(e[t]={name:t,required:!1},e)),{}),supportsExtraArgs:!0},e)),{})};for(const n of Object.values(this.plugins))for(const e of Object.values(n.actions))e.name=n.name+"."+e.name,e.supportsExtraArgs=!!e.has_kwargs,delete e.has_kwargs,this.actions[e.name]=e;const e=this.getUrlArgs(),t=e?.action;t?.length&&t in this.actions&&t!==this.action.name&&this.updateAction(t)},async updateAction(e,t){let{force:n,args:s,extraArgs:i}=t||{};if(s||(s={}),i||(i=[]),e===this.action.name&&!n)return;if(this.action.name=e,!(this.action.name in this.actions))return this.selectedDoc=void 0,void this.resetArgdoc();this.resetArgdoc(),this.docLoading=!0;try{this.action={...this.actions[this.action.name],args:Object.entries(this.actions[this.action.name].args).reduce(((e,t)=>(e[t[0]]={...t[1],value:s?.[t[0]]??t[1].default},e)),{}),extraArgs:i||[]}}finally{this.docLoading=!1}this.selectedDoc=this.actionDocsCache[this.action.name]?.html||await this.parseDoc(this.action.doc),this.actionDocsCache[this.action.name]||(this.actionDocsCache[this.action.name]={}),this.actionDocsCache[this.action.name].html=this.selectedDoc,this.setUrlArgs({action:this.action.name});const a=this.$el.querySelector(".action-arg-value");a?a.focus():this.$nextTick((()=>{this.actionInput.focus()})),this.response=void 0,this.error=void 0},async parseDoc(e){return e?.length?await this.request("utils.rst_to_html",{text:e}):e},addArg(){this.action.extraArgs.push({name:void 0,value:void 0})},removeArg(e){this.action.extraArgs.pop(e)},async selectArgdoc(e){this.selectedArg=e,this.selectedArgdoc=this.actionDocsCache[this.action.name]?.[e]?.html||await this.parseDoc(this.action.args[e].doc),this.actionDocsCache[this.action.name]||(this.actionDocsCache[this.action.name]={}),this.actionDocsCache[this.action.name][e]={html:this.selectedArgdoc}},resetArgdoc(){this.selectedArg=void 0,this.selectedArgdoc=void 0},onInputTypeChange(e){this.structuredInput=e,this.response=void 0,this.error=void 0,this.$nextTick((()=>{e?this.actionInput.focus():(this.$refs.rawAction.focus(),this.isValidAction&&(this.rawRequest=JSON.stringify(this.toRequest(this.action),null,2)))}))},onResponse(e){this.response=("string"===typeof e?e:JSON.stringify(e,null,2)).trim(),this.error=void 0},onError(e){this.response=void 0,this.error=e},onDone(){this.running=!1},getPluginName(e){return e?.length?e.split(".").slice(0,-1).join("."):""},executeAction(){if((this.action.name||this.rawRequest)&&!this.running)if(this.running=!0,this.structuredInput)this.request(this.action.name,this.requestArgs).then(this.onResponse).catch(this.onError).finally(this.onDone);else try{const e=JSON.parse(this.rawRequest);this.execute(e).then(this.onResponse).catch(this.onError).finally(this.onDone)}catch(e){this.notify({error:!0,title:"Invalid JSON request",text:e.toString()})}},toRequest(e){return{type:"request",action:e.name,args:this.requestArgs}},emitInput(e){e=e||this.value,e&&this.$emit("input",this.toRequest(e))},onClick(e){"a"===e.target.tagName.toLowerCase()&&(e.stopPropagation(),e.preventDefault(),window.open(e.target.getAttribute("href","_blank")))},onValueChanged(e){if(e=e||this.value,!e)return;const t=e.name||e.action;this.$nextTick((()=>{this.updateAction(t,{force:!0,args:e.args||{},extraArgs:e.extraArgs||[]})}))},onSubmit(){this.isValidAction&&(this.withSave?this.emitInput(this.action):this.executeAction())}},watch:{value:{immediate:!0,handler(e){this.onValueChanged(e)}}},async mounted(){await this.refresh(),await this.onValueChanged()}};const ze=(0,re.Z)(He,[["render",S],["__scopeId","data-v-48afe350"]]);var We=ze},803:function(e,t,n){n.d(t,{Z:function(){return x}});var s=n(6252),i=n(3577);const a=e=>((0,s.dD)("data-v-801045b2"),e=e(),(0,s.Cn)(),e),o={class:"response"},r={key:0},l={class:"title"},c={class:"buttons"},u=a((()=>(0,s._)("i",{class:"fas fa-clipboard"},null,-1))),d=[u],h={key:1,class:"output response"},p=["innerHTML"],g=["textContent"],m={key:2,class:"output error"},v=["textContent"];function b(e,t,n,a,u,b){return(0,s.wg)(),(0,s.iD)("section",o,[null!=n.error||null!=n.response?((0,s.wg)(),(0,s.iD)("h2",r,[(0,s._)("span",l,(0,i.zw)(null!=n.error?"Error":"Output"),1),(0,s._)("span",c,[(0,s._)("button",{type:"button",title:"Copy to clipboard",onClick:t[0]||(t[0]=t=>e.copyToClipboard(n.response))},d)])])):(0,s.kq)("",!0),null!=n.response?((0,s.wg)(),(0,s.iD)("div",h,[(0,s._)("pre",null,[null!=b.jsonResponse?((0,s.wg)(),(0,s.iD)("code",{key:0,innerHTML:b.jsonResponse},null,8,p)):((0,s.wg)(),(0,s.iD)("code",{key:1,textContent:(0,i.zw)(n.response)},null,8,g))])])):null!=n.error?((0,s.wg)(),(0,s.iD)("div",m,[(0,s._)("pre",{textContent:(0,i.zw)(n.error)},null,8,v)])):(0,s.kq)("",!0)])}n(8783),n(3465);var y=n(637),k=n(8637),f={name:"Response",mixins:[k.Z],props:{response:String,error:String},computed:{isJSON(){try{return null!=JSON.parse(this.response)}catch(e){return!1}},jsonResponse(){return this.isJSON?y.Z.highlight(this.response,{language:"json"}).value:null}}},w=n(3744);const A=(0,w.Z)(f,[["render",b],["__scopeId","data-v-801045b2"]]);var x=A}}]); -//# sourceMappingURL=1807.4abea163.js.map \ No newline at end of file +//# sourceMappingURL=1807.586a24d4.js.map \ No newline at end of file diff --git a/platypush/backend/http/webapp/dist/static/js/1807.4abea163.js.map b/platypush/backend/http/webapp/dist/static/js/1807.586a24d4.js.map similarity index 99% rename from platypush/backend/http/webapp/dist/static/js/1807.4abea163.js.map rename to platypush/backend/http/webapp/dist/static/js/1807.586a24d4.js.map index 641bf730a6..9abfb15756 100644 --- a/platypush/backend/http/webapp/dist/static/js/1807.4abea163.js.map +++ b/platypush/backend/http/webapp/dist/static/js/1807.586a24d4.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/1807.4abea163.js","mappings":"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","sources":["webpack://platypush/./src/components/Action/ActionEditor.vue","webpack://platypush/./src/components/Action/ActionArgs.vue","webpack://platypush/./src/components/Action/Argdoc.vue","webpack://platypush/./src/components/Action/Argdoc.vue?4aa9","webpack://platypush/./src/components/Action/ActionArgs.vue?edb8","webpack://platypush/./src/components/Action/ActionDoc.vue","webpack://platypush/./src/components/Action/ActionDoc.vue?d15e","webpack://platypush/./src/components/elements/Autocomplete.vue","webpack://platypush/./src/components/elements/Autocomplete.vue?5778","webpack://platypush/./src/components/Action/ActionEditor.vue?362f","webpack://platypush/./src/components/Action/Response.vue","webpack://platypush/./src/components/Action/Response.vue?7e38"],"sourcesContent":["