diff --git a/404.html b/404.html index 69627ca..ff9f1e5 100644 --- a/404.html +++ b/404.html @@ -17,13 +17,13 @@ - +

404

That's a Four-Oh-Four.
Take me home.
- + diff --git a/assets/js/10.c11af1d4.js b/assets/js/10.9e71a240.js similarity index 96% rename from assets/js/10.c11af1d4.js rename to assets/js/10.9e71a240.js index a604856..5af3e2c 100644 --- a/assets/js/10.c11af1d4.js +++ b/assets/js/10.9e71a240.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{298:function(e,t,a){"use strict";a.r(t);var s=a(14),o=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"install"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#install"}},[e._v("#")]),e._v(" Install")]),e._v(" "),t("h2",{attrs:{id:"install-from-the-store"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#install-from-the-store"}},[e._v("#")]),e._v(" Install from the store")]),e._v(" "),t("ul",[t("li",[e._v("You can install Theengs app from the Apple or Android store by looking for Theengs BLE, or click the links below:")])]),e._v(" "),t("center",[t("a",{staticStyle:{display:"inline-block",overflow:"hidden","border-radius":"13px",width:"250px",height:"83px"},attrs:{href:"https://apps.apple.com/us/app/theengs-ble/id6443457651?itsct=apps_box_badge&itscg=30200"}},[t("img",{staticStyle:{"border-radius":"13px",width:"250px",height:"83px"},attrs:{src:"https://tools.applemediaservices.com/api/badges/download-on-the-app-store/black/en-us?size=250x83&releaseDate=1667088000&h=c822551038086181cfac2a32c96cd47e",alt:"Download on the App Store"}})])]),e._v(" "),t("center",[t("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.theengs.app&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1"}},[t("img",{attrs:{alt:"Get it on Google Play",src:"https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png",width:"300px/"}})])]),e._v(" "),t("p",[t("em",[e._v("App Store and Apple logo are registered trademarks of Apple Inc.")])]),e._v(" "),t("p",[t("em",[e._v("Google Play and the Google Play logo are trademarks of Google LLC.")])])],1)}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{299:function(e,t,a){"use strict";a.r(t);var s=a(14),o=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"install"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#install"}},[e._v("#")]),e._v(" Install")]),e._v(" "),t("h2",{attrs:{id:"install-from-the-store"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#install-from-the-store"}},[e._v("#")]),e._v(" Install from the store")]),e._v(" "),t("ul",[t("li",[e._v("You can install Theengs app from the Apple or Android store by looking for Theengs BLE, or click the links below:")])]),e._v(" "),t("center",[t("a",{staticStyle:{display:"inline-block",overflow:"hidden","border-radius":"13px",width:"250px",height:"83px"},attrs:{href:"https://apps.apple.com/us/app/theengs-ble/id6443457651?itsct=apps_box_badge&itscg=30200"}},[t("img",{staticStyle:{"border-radius":"13px",width:"250px",height:"83px"},attrs:{src:"https://tools.applemediaservices.com/api/badges/download-on-the-app-store/black/en-us?size=250x83&releaseDate=1667088000&h=c822551038086181cfac2a32c96cd47e",alt:"Download on the App Store"}})])]),e._v(" "),t("center",[t("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.theengs.app&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1"}},[t("img",{attrs:{alt:"Get it on Google Play",src:"https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png",width:"300px/"}})])]),e._v(" "),t("p",[t("em",[e._v("App Store and Apple logo are registered trademarks of Apple Inc.")])]),e._v(" "),t("p",[t("em",[e._v("Google Play and the Google Play logo are trademarks of Google LLC.")])])],1)}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/11.c1f86ded.js b/assets/js/11.3de92057.js similarity index 94% rename from assets/js/11.c1f86ded.js rename to assets/js/11.3de92057.js index af8987b..c9d578a 100644 --- a/assets/js/11.c1f86ded.js +++ b/assets/js/11.3de92057.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{299:function(e,t,r){"use strict";r.r(t);var o=r(14),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"adding-decoders"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adding-decoders"}},[e._v("#")]),e._v(" Adding decoders")]),e._v(" "),t("p",[e._v("Adding your device protocol to Theengs enable to increase interoperability and to create new use cases with your device. You will find below some guidance to do that.")]),e._v(" "),t("p",[e._v("You can do a pull request directly to the "),t("a",{attrs:{href:"https://github.com/theengs/decoder",target:"_blank",rel:"noopener noreferrer"}},[e._v("Decoder Repository"),t("OutboundLink")],1),e._v(" by leveraging the Theengs Decoder "),t("a",{attrs:{href:"https://theengs.github.io/decoder/participate/adding-decoders.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("example"),t("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{298:function(e,t,r){"use strict";r.r(t);var o=r(14),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"adding-decoders"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adding-decoders"}},[e._v("#")]),e._v(" Adding decoders")]),e._v(" "),t("p",[e._v("Adding your device protocol to Theengs enable to increase interoperability and to create new use cases with your device. You will find below some guidance to do that.")]),e._v(" "),t("p",[e._v("You can do a pull request directly to the "),t("a",{attrs:{href:"https://github.com/theengs/decoder",target:"_blank",rel:"noopener noreferrer"}},[e._v("Decoder Repository"),t("OutboundLink")],1),e._v(" by leveraging the Theengs Decoder "),t("a",{attrs:{href:"https://theengs.github.io/decoder/participate/adding-decoders.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("example"),t("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/15.3f3b0301.js b/assets/js/15.d568bc7c.js similarity index 98% rename from assets/js/15.3f3b0301.js rename to assets/js/15.d568bc7c.js index b55575e..ad5a0de 100644 --- a/assets/js/15.3f3b0301.js +++ b/assets/js/15.d568bc7c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{304:function(_,v,t){"use strict";t.r(v);var d=t(14),r=Object(d.a)({},(function(){var _=this,v=_._self._c;return v("ContentSlotsDistributor",{attrs:{"slot-key":_.$parent.slotKey}},[v("h1",{attrs:{id:"devices-supported"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#devices-supported"}},[_._v("#")]),_._v(" Devices supported")]),_._v(" "),v("p",[_._v("Here is the list of supported devices by the app, more details in the Compatible Devices section of the top nav bar.")]),_._v(" "),v("table",[v("thead",[v("tr",[v("th",[_._v("Model_Id")]),_._v(" "),v("th",[_._v("Mobile App")])])]),_._v(" "),v("tbody",[v("tr",[v("td",[_._v("ABTemp")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("ADHS")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TD1in1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TD3in1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TD4in1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("BSDOO")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGC1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGD1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGDK2")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGDN1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGG1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGH1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGP1W")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGPR1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("F525")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5055")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5072")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5074")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5075")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5106")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5101")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5102")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5174")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5177")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("HHCCJCY01HHCC")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("HHCCJCY10")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("HHCCPOT002")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("IBS-TH1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("IBS-TH2")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("IBS-P01B")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("IBT_2X(S)")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("IBT_4X(S/C)")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("IBT_6X(S)")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("JQJCY01YM")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("K6P")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("K9")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("LYWSD02")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("LYWSD03MMC_ATC/PVVX")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("MJWSD05MMC_ATC/PVVX")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("LYWSDCGQ")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("MBXPRO")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("MHO/MMC-C401_ATC/PVVX")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("MokoBeacon")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("M1017")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("RDL52832")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("RuuviTag_RAWv1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("RuuviTag_RAWv2")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("W120150X")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("W070160X")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("W110150X")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("THX1(W230150X)")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("SDLS")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("SE_MAG")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("SE_RHT")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("SE_TEMP")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("SE_TPROBE")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("SHT4X")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("SOLIS_6")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("T201")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("T301")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("WS02/WS08")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TP357")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TP358")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TP359")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TP393")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TPMS")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("XMTZC01HM/XMTZC04HM")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("XMTZC02HM/XMTZC05HM")]),_._v(" "),v("td",[_._v("✅")])])])])])}),[],!1,null,null,null);v.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{303:function(_,v,t){"use strict";t.r(v);var d=t(14),r=Object(d.a)({},(function(){var _=this,v=_._self._c;return v("ContentSlotsDistributor",{attrs:{"slot-key":_.$parent.slotKey}},[v("h1",{attrs:{id:"devices-supported"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#devices-supported"}},[_._v("#")]),_._v(" Devices supported")]),_._v(" "),v("p",[_._v("Here is the list of supported devices by the app, more details in the Compatible Devices section of the top nav bar.")]),_._v(" "),v("table",[v("thead",[v("tr",[v("th",[_._v("Model_Id")]),_._v(" "),v("th",[_._v("Mobile App")])])]),_._v(" "),v("tbody",[v("tr",[v("td",[_._v("ABTemp")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("ADHS")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TD1in1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TD3in1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TD4in1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("BSDOO")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGC1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGD1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGDK2")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGDN1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGG1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGH1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGP1W")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("CGPR1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("F525")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5055")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5072")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5074")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5075")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5106")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5101")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5102")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5174")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("H5177")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("HHCCJCY01HHCC")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("HHCCJCY10")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("HHCCPOT002")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("IBS-TH1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("IBS-TH2")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("IBS-P01B")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("IBT_2X(S)")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("IBT_4X(S/C)")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("IBT_6X(S)")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("JQJCY01YM")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("K6P")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("K9")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("LYWSD02")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("LYWSD03MMC_ATC/PVVX")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("MJWSD05MMC_ATC/PVVX")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("LYWSDCGQ")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("MBXPRO")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("MHO/MMC-C401_ATC/PVVX")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("MokoBeacon")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("M1017")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("RDL52832")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("RuuviTag_RAWv1")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("RuuviTag_RAWv2")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("W120150X")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("W070160X")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("W110150X")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("THX1(W230150X)")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("SDLS")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("SE_MAG")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("SE_RHT")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("SE_TEMP")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("SE_TPROBE")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("SHT4X")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("SOLIS_6")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("T201")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("T301")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("WS02/WS08")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TP357")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TP358")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TP359")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TP393")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("TPMS")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("XMTZC01HM/XMTZC04HM")]),_._v(" "),v("td",[_._v("✅")])]),_._v(" "),v("tr",[v("td",[_._v("XMTZC02HM/XMTZC05HM")]),_._v(" "),v("td",[_._v("✅")])])])])])}),[],!1,null,null,null);v.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/7.b1442972.js b/assets/js/7.b1442972.js new file mode 100644 index 0000000..aa41e3f --- /dev/null +++ b/assets/js/7.b1442972.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{275:function(e,t,r){e.exports=r.p+"assets/img/Theengs-app-home-reduced-1280.7d1c466e.png"},276:function(e,t,r){e.exports=r.p+"assets/img/Theengs-app-live.5ce183d5.png"},297:function(e,t,r){"use strict";r.r(t);var a=r(14),n=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey},scopedSlots:e._u([{key:"footer",fn:function(){return[t("p",[t("a",{attrs:{href:"https://github.com/theengs/home/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("GPLv3 Licensed"),t("OutboundLink")],1),e._v(" | Copyright © 2024 Theengs")])]},proxy:!0}])},[t("h1",{attrs:{id:"theengs-ble-mobile-application"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#theengs-ble-mobile-application"}},[e._v("#")]),e._v(" Theengs BLE mobile application")]),e._v(" "),t("h2",{attrs:{id:"🌟-local-smart-sensor-integration-🌟"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#🌟-local-smart-sensor-integration-🌟"}},[e._v("#")]),e._v(" 🌟 Local Smart Sensor Integration 🌟")]),e._v(" "),t("p",[e._v("Theengs App seamlessly reads a wide array of Bluetooth Low Energy (BLE) sensors, gathering real-time data on environmental parameters such as temperature, humidity, moisture, etc. It displays these readings intuitively and enables integration with your Smart Home setup via MQTT. Compatible with platforms like Home Assistant, Theengs App is a vendor-agnostic reader of "),t("a",{attrs:{href:"https://decoder.theengs.io/devices/devices.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("your sensors"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:r(275),alt:"Iot"}})]),e._v(" "),t("h2",{attrs:{id:"🔥-elevate-your-grilling-game"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#🔥-elevate-your-grilling-game"}},[e._v("#")]),e._v(" 🔥 Elevate Your Grilling Game")]),e._v(" "),t("p",[e._v("Theengs App now offers a dedicated live monitoring feature for BBQ enthusiasts. Track your cooking with a dynamic chart that displays temperature trends in real time. Set personalized thresholds for different cooking stages and receive instant notifications based on these criteria. Whether you prefer your meat rare, medium, or well-done, Theengs App ensures your grilling is done to perfection.")]),e._v(" "),t("div",{staticStyle:{"text-align":"center"}},[t("p",[t("img",{attrs:{src:r(276),alt:"live bbq monitoring"}})])]),e._v(" "),t("h2",{attrs:{id:"🔒respecting-your-privacy"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#🔒respecting-your-privacy"}},[e._v("#")]),e._v(" 🔒Respecting Your Privacy")]),e._v(" "),t("p",[e._v("With Theengs App, your data stays local by default. For more details, please refer to our "),t("a",{attrs:{href:"https://app.theengs.io/use/privacy.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("privacy policy"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"🏡-take-control-with-smart-home-integration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#🏡-take-control-with-smart-home-integration"}},[e._v("#")]),e._v(" 🏡 Take control with Smart Home Integration")]),e._v(" "),t("p",[e._v("Theengs App syncs with platforms like Home Assistant via MQTT. Record sensor data on your preferred server - your home, your choice.")]),e._v(" "),t("h2",{attrs:{id:"📲-choose-your-platform-and-download-now"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#📲-choose-your-platform-and-download-now"}},[e._v("#")]),e._v(" 📲 Choose Your Platform and Download Now")]),e._v(" "),t("br"),e._v(" "),t("br"),e._v(" "),t("center",[t("a",{staticStyle:{display:"inline-block",overflow:"hidden","border-radius":"13px",width:"250px",height:"83px"},attrs:{href:"https://apps.apple.com/us/app/theengs-ble/id6443457651?itsct=apps_box_badge&itscg=30200"}},[t("img",{staticStyle:{"border-radius":"13px",width:"250px",height:"83px"},attrs:{src:"https://tools.applemediaservices.com/api/badges/download-on-the-app-store/black/en-us?size=250x83&releaseDate=1667088000&h=c822551038086181cfac2a32c96cd47e",alt:"Download on the App Store"}})])]),e._v(" "),t("center",[t("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.theengs.app&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1"}},[t("img",{attrs:{alt:"Get it on Google Play",src:"https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png",width:"300px/"}})])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("The Theengs app reads data that is 'broadcasted' by devices, operating primarily in a passive mode without direct connections, except for Mi Flora and ThermoBeacon, where historical data is accessed through a connection. For all other devices, the app captures data as it is emitted by the sensors.")]),e._v(" "),t("p",[e._v("BBQ Live monitoring and notifications require the app to be active on the sensor screen.")])]),e._v(" "),t("h3",{attrs:{id:"features-comparison-between-operating-systems"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#features-comparison-between-operating-systems"}},[e._v("#")]),e._v(" Features comparison between Operating Systems")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",{staticStyle:{"text-align":"center"}},[e._v("OS")]),e._v(" "),t("th",{staticStyle:{"text-align":"center"}},[e._v("Real time data")]),e._v(" "),t("th",{staticStyle:{"text-align":"center"}},[e._v("BBQ monitoring")]),e._v(" "),t("th",{staticStyle:{"text-align":"center"}},[e._v("MQTT integration")]),e._v(" "),t("th",{staticStyle:{"text-align":"center"}},[e._v("Running in background")]),e._v(" "),t("th",{staticStyle:{"text-align":"center"}},[e._v("Home Assistant Auto Discovery")])])]),e._v(" "),t("tbody",[t("tr",[t("td",{staticStyle:{"text-align":"center"}},[e._v("iOS")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}}),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")])]),e._v(" "),t("tr",[t("td",{staticStyle:{"text-align":"center"}},[e._v("Android")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️ "),t("em",[e._v("experimental")])]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")])])])]),e._v(" "),t("p",[t("strong",[e._v("Theengs app")]),e._v(" can be used as a standalone solution or as a complementary solution to "),t("a",{attrs:{href:"https://docs.openmqttgateway.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenMQTTGateway"),t("OutboundLink")],1),e._v(" and/or "),t("a",{attrs:{href:"https://gateway.theengs.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Theengs gateway"),t("OutboundLink")],1),e._v(" if you want a continuously running gateway.")]),e._v(" "),t("h3",{attrs:{id:"third-party-projects-used-by-theengs-app"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#third-party-projects-used-by-theengs-app"}},[e._v("#")]),e._v(" Third party projects used by Theengs app")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://www.qt.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Qt"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://www.gnu.org/licenses/lgpl-3.0.txt",target:"_blank",rel:"noopener noreferrer"}},[e._v("LGPL 3"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.qt.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("QtMqtt"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://www.gnu.org/licenses/gpl-3.0.txt",target:"_blank",rel:"noopener noreferrer"}},[e._v("GPL 3"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://arduinojson.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Arduino Json"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://opensource.org/licenses/MIT",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://decoder.theengs.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Decoder"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://www.gnu.org/licenses/gpl-3.0.txt",target:"_blank",rel:"noopener noreferrer"}},[e._v("GPL 3"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/jpnurmi/statusbar",target:"_blank",rel:"noopener noreferrer"}},[e._v("StatusBar"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://opensource.org/licenses/MIT",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/ekke/ekkesSHAREexample",target:"_blank",rel:"noopener noreferrer"}},[e._v("ekkesSHAREexample"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://github.com/ekke/ekkesSHAREexample/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("license"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/itay-grudev/SingleApplication",target:"_blank",rel:"noopener noreferrer"}},[e._v("SingleApplication"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://opensource.org/licenses/MIT",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[e._v("RC4 code from Christophe Devine ("),t("a",{attrs:{href:"https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt",target:"_blank",rel:"noopener noreferrer"}},[e._v("GPL 2"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[e._v("Graphical resources: "),t("a",{attrs:{href:"assets/COPYING"}},[e._v("assets/COPYING")])])]),e._v(" "),t("h3",{attrs:{id:"acknowledgements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#acknowledgements"}},[e._v("#")]),e._v(" Acknowledgements")]),e._v(" "),t("p",[t("em",[e._v("App Store and Apple logo are registered trademarks of Apple Inc.")])]),e._v(" "),t("p",[t("em",[e._v("Google Play and the Google Play logo are trademarks of Google LLC.")])]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.")])])],1)}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/7.c5f7d70b.js b/assets/js/7.c5f7d70b.js deleted file mode 100644 index 09b5f86..0000000 --- a/assets/js/7.c5f7d70b.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{275:function(e,t,r){e.exports=r.p+"assets/img/Theengs-app-home-reduced-1280.7d1c466e.png"},276:function(e,t,r){e.exports=r.p+"assets/img/Theengs-app-live.5ce183d5.png"},297:function(e,t,r){"use strict";r.r(t);var a=r(14),n=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey},scopedSlots:e._u([{key:"footer",fn:function(){return[t("p",[t("a",{attrs:{href:"https://github.com/theengs/home/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("GPLv3 Licensed"),t("OutboundLink")],1),e._v(" | Copyright © 2024 Theengs")])]},proxy:!0}])},[t("h1",{attrs:{id:"theengs-ble-mobile-application"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#theengs-ble-mobile-application"}},[e._v("#")]),e._v(" Theengs BLE mobile application")]),e._v(" "),t("h2",{attrs:{id:"🌟-local-smart-sensor-integration-🌟"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#🌟-local-smart-sensor-integration-🌟"}},[e._v("#")]),e._v(" 🌟 Local Smart Sensor Integration 🌟")]),e._v(" "),t("p",[e._v("Theengs App seamlessly reads a wide array of Bluetooth Low Energy (BLE) sensors, gathering real-time data on environmental parameters such as temperature, humidity, moisture, etc. It displays these readings intuitively and enables integration with your Smart Home setup via MQTT. Compatible with platforms like Home Assistant, Theengs App is a vendor-agnostic reader of "),t("a",{attrs:{href:"https://decoder.theengs.io/devices/devices.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("your sensors"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:r(275),alt:"Iot"}})]),e._v(" "),t("h2",{attrs:{id:"🔥-elevate-your-grilling-game"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#🔥-elevate-your-grilling-game"}},[e._v("#")]),e._v(" 🔥 Elevate Your Grilling Game")]),e._v(" "),t("p",[e._v("Theengs App now offers a dedicated live monitoring feature for BBQ enthusiasts. Track your cooking with a dynamic chart that displays temperature trends in real time. Set personalized thresholds for different cooking stages and receive instant notifications based on these criteria. Whether you prefer your meat rare, medium, or well-done, Theengs App ensures your grilling is done to perfection.")]),e._v(" "),t("div",{staticStyle:{"text-align":"center"}},[t("p",[t("img",{attrs:{src:r(276),alt:"live bbq monitoring"}})])]),e._v(" "),t("h2",{attrs:{id:"🔒respecting-your-privacy"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#🔒respecting-your-privacy"}},[e._v("#")]),e._v(" 🔒Respecting Your Privacy")]),e._v(" "),t("p",[e._v("With Theengs App, your data stays local by default. For more details, please refer to our "),t("a",{attrs:{href:"https://app.theengs.io/use/privacy.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("privacy policy"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"🏡-take-control-with-smart-home-integration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#🏡-take-control-with-smart-home-integration"}},[e._v("#")]),e._v(" 🏡 Take control with Smart Home Integration")]),e._v(" "),t("p",[e._v("Theengs App syncs with platforms like Home Assistant via MQTT. Record sensor data on your preferred server - your home, your choice.")]),e._v(" "),t("h2",{attrs:{id:"choose-your-platform-and-download-now"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#choose-your-platform-and-download-now"}},[e._v("#")]),e._v(" Choose Your Platform and Download Now")]),e._v(" "),t("br"),e._v(" "),t("br"),e._v(" "),t("center",[t("a",{staticStyle:{display:"inline-block",overflow:"hidden","border-radius":"13px",width:"250px",height:"83px"},attrs:{href:"https://apps.apple.com/us/app/theengs-ble/id6443457651?itsct=apps_box_badge&itscg=30200"}},[t("img",{staticStyle:{"border-radius":"13px",width:"250px",height:"83px"},attrs:{src:"https://tools.applemediaservices.com/api/badges/download-on-the-app-store/black/en-us?size=250x83&releaseDate=1667088000&h=c822551038086181cfac2a32c96cd47e",alt:"Download on the App Store"}})])]),e._v(" "),t("center",[t("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.theengs.app&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1"}},[t("img",{attrs:{alt:"Get it on Google Play",src:"https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png",width:"300px/"}})])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("The Theengs app reads data that is 'broadcasted' by devices, operating primarily in a passive mode without direct connections, except for Mi Flora and ThermoBeacon, where historical data is accessed through a connection. For all other devices, the app captures data as it is emitted by the sensors.")]),e._v(" "),t("p",[e._v("BBQ Live monitoring and notifications require the app to be active on the sensor screen.")])]),e._v(" "),t("h2",{attrs:{id:"features-comparison-between-operating-systems"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#features-comparison-between-operating-systems"}},[e._v("#")]),e._v(" Features comparison between Operating Systems")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",{staticStyle:{"text-align":"center"}},[e._v("OS")]),e._v(" "),t("th",{staticStyle:{"text-align":"center"}},[e._v("Real time data")]),e._v(" "),t("th",{staticStyle:{"text-align":"center"}},[e._v("BBQ monitoring")]),e._v(" "),t("th",{staticStyle:{"text-align":"center"}},[e._v("MQTT integration")]),e._v(" "),t("th",{staticStyle:{"text-align":"center"}},[e._v("Running in background")]),e._v(" "),t("th",{staticStyle:{"text-align":"center"}},[e._v("Home Assistant Auto Discovery")])])]),e._v(" "),t("tbody",[t("tr",[t("td",{staticStyle:{"text-align":"center"}},[e._v("iOS")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}}),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")])]),e._v(" "),t("tr",[t("td",{staticStyle:{"text-align":"center"}},[e._v("Android")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️ "),t("em",[e._v("experimental")])]),e._v(" "),t("td",{staticStyle:{"text-align":"center"}},[e._v("☑️")])])])]),e._v(" "),t("p",[t("strong",[e._v("Theengs app")]),e._v(" can be used as a standalone solution or as a complementary solution to "),t("a",{attrs:{href:"https://docs.openmqttgateway.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenMQTTGateway"),t("OutboundLink")],1),e._v(" and/or "),t("a",{attrs:{href:"https://gateway.theengs.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Theengs gateway"),t("OutboundLink")],1),e._v(" if you want a continuously running gateway.")]),e._v(" "),t("h2",{attrs:{id:"third-party-projects-used-by-theengs-app"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#third-party-projects-used-by-theengs-app"}},[e._v("#")]),e._v(" Third party projects used by Theengs app")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://www.qt.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Qt"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://www.gnu.org/licenses/lgpl-3.0.txt",target:"_blank",rel:"noopener noreferrer"}},[e._v("LGPL 3"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.qt.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("QtMqtt"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://www.gnu.org/licenses/gpl-3.0.txt",target:"_blank",rel:"noopener noreferrer"}},[e._v("GPL 3"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://arduinojson.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Arduino Json"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://opensource.org/licenses/MIT",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://decoder.theengs.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Decoder"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://www.gnu.org/licenses/gpl-3.0.txt",target:"_blank",rel:"noopener noreferrer"}},[e._v("GPL 3"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/jpnurmi/statusbar",target:"_blank",rel:"noopener noreferrer"}},[e._v("StatusBar"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://opensource.org/licenses/MIT",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/ekke/ekkesSHAREexample",target:"_blank",rel:"noopener noreferrer"}},[e._v("ekkesSHAREexample"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://github.com/ekke/ekkesSHAREexample/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("license"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/itay-grudev/SingleApplication",target:"_blank",rel:"noopener noreferrer"}},[e._v("SingleApplication"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://opensource.org/licenses/MIT",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[e._v("RC4 code from Christophe Devine ("),t("a",{attrs:{href:"https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt",target:"_blank",rel:"noopener noreferrer"}},[e._v("GPL 2"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[e._v("Graphical resources: "),t("a",{attrs:{href:"assets/COPYING"}},[e._v("assets/COPYING")])])]),e._v(" "),t("p",[t("em",[e._v("App Store and Apple logo are registered trademarks of Apple Inc.")])]),e._v(" "),t("p",[t("em",[e._v("Google Play and the Google Play logo are trademarks of Google LLC.")])]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.")])])],1)}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/8.21fedd9c.js b/assets/js/8.3aeae3b4.js similarity index 98% rename from assets/js/8.21fedd9c.js rename to assets/js/8.3aeae3b4.js index dfd2fd2..545d21a 100644 --- a/assets/js/8.21fedd9c.js +++ b/assets/js/8.3aeae3b4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{277:function(e,t,r){e.exports=r.p+"assets/img/TheengsGateway_controllers.995b8d5a.png"},303:function(e,t,r){"use strict";r.r(t);var o=r(14),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"mqtt-integration-option"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mqtt-integration-option"}},[e._v("#")]),e._v(" MQTT integration (option)")]),e._v(" "),t("h2",{attrs:{id:"broker"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#broker"}},[e._v("#")]),e._v(" Broker")]),e._v(" "),t("p",[e._v("The broker will act as an intermediary between Theengs App and your "),t("a",{attrs:{href:"/prerequisites/controller"}},[e._v("controller")]),e._v(", it can be seen as a centralized hub at the heart of your automation system. It carry on messages following a publish / subscribe mechanism.")]),e._v(" "),t("p",[e._v("All the events or commands could pass by the broker.")]),e._v(" "),t("p",[e._v("There are many choices of brokers, here are some of the most popular:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://mosquitto.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Mosquitto"),t("OutboundLink")],1),e._v(" (Open source)")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://moquette-io.github.io/moquette/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Moquette"),t("OutboundLink")],1),e._v(" (Open source)")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.hivemq.com/hivemq/features/",target:"_blank",rel:"noopener noreferrer"}},[e._v("HiveMQ"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Embedded MQTT brokers (Home Assistant and OpenHAB)")])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("MQTT broker should be installed on a local network or accessed through a VPN as Theengs app only support unencrypted connexion on port 1883 for now.")])]),e._v(" "),t("p",[e._v("This "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Comparison_of_MQTT_implementations",target:"_blank",rel:"noopener noreferrer"}},[e._v("wikipedia list"),t("OutboundLink")],1),e._v(" gives you more details about the different choices you have.\nThis "),t("a",{attrs:{href:"https://github.com/mqtt/mqtt.github.io/wiki/libraries",target:"_blank",rel:"noopener noreferrer"}},[e._v("github list"),t("OutboundLink")],1),e._v(" seems to be the most exhaustive ones.\nHere is also some "),t("a",{attrs:{href:"https://www.hivemq.com/blog/top-10-mqtt-broker-criteria/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ideas of criteria"),t("OutboundLink")],1),e._v(" from HiveMQ.")]),e._v(" "),t("p",[e._v("Once your broker is installed it can be interesting to see the traffic passing to it and to publish data, so as to do that there are several tools available:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"http://mqtt-explorer.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("MQTT Explorer"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/hivemq/hivemq-mqtt-web-client",target:"_blank",rel:"noopener noreferrer"}},[e._v("HIVE MQ Web client"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://mqttfx.jensd.de/",target:"_blank",rel:"noopener noreferrer"}},[e._v("MQTT FX"),t("OutboundLink")],1)])]),e._v(" "),t("p",[e._v("MQTT enables you to connect easily a controller so as to monitor, control and automate scenariOS.")]),e._v(" "),t("h2",{attrs:{id:"controller"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#controller"}},[e._v("#")]),e._v(" Controller")]),e._v(" "),t("p",[e._v("The following controllers (and many other software) are compatible with MQTT:")]),e._v(" "),t("p",[t("img",{attrs:{src:r(277),alt:"controllers"}})]),e._v(" "),t("p",[e._v("TheengsApp is independent from these projects, you have the liberty of choice among all the compatible software.")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://www.openhab.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenHAB"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.home-assistant.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Home Assistant"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.domoticz.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("Domoticz"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.jeedom.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("Jeedom"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://nodered.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Node Red"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://fhem.de",target:"_blank",rel:"noopener noreferrer"}},[e._v("FHEM"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.iobroker.net/",target:"_blank",rel:"noopener noreferrer"}},[e._v("IO Broker"),t("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{277:function(e,t,r){e.exports=r.p+"assets/img/TheengsGateway_controllers.995b8d5a.png"},304:function(e,t,r){"use strict";r.r(t);var o=r(14),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"mqtt-integration-option"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mqtt-integration-option"}},[e._v("#")]),e._v(" MQTT integration (option)")]),e._v(" "),t("h2",{attrs:{id:"broker"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#broker"}},[e._v("#")]),e._v(" Broker")]),e._v(" "),t("p",[e._v("The broker will act as an intermediary between Theengs App and your "),t("a",{attrs:{href:"/prerequisites/controller"}},[e._v("controller")]),e._v(", it can be seen as a centralized hub at the heart of your automation system. It carry on messages following a publish / subscribe mechanism.")]),e._v(" "),t("p",[e._v("All the events or commands could pass by the broker.")]),e._v(" "),t("p",[e._v("There are many choices of brokers, here are some of the most popular:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://mosquitto.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Mosquitto"),t("OutboundLink")],1),e._v(" (Open source)")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://moquette-io.github.io/moquette/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Moquette"),t("OutboundLink")],1),e._v(" (Open source)")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.hivemq.com/hivemq/features/",target:"_blank",rel:"noopener noreferrer"}},[e._v("HiveMQ"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Embedded MQTT brokers (Home Assistant and OpenHAB)")])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("MQTT broker should be installed on a local network or accessed through a VPN as Theengs app only support unencrypted connexion on port 1883 for now.")])]),e._v(" "),t("p",[e._v("This "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Comparison_of_MQTT_implementations",target:"_blank",rel:"noopener noreferrer"}},[e._v("wikipedia list"),t("OutboundLink")],1),e._v(" gives you more details about the different choices you have.\nThis "),t("a",{attrs:{href:"https://github.com/mqtt/mqtt.github.io/wiki/libraries",target:"_blank",rel:"noopener noreferrer"}},[e._v("github list"),t("OutboundLink")],1),e._v(" seems to be the most exhaustive ones.\nHere is also some "),t("a",{attrs:{href:"https://www.hivemq.com/blog/top-10-mqtt-broker-criteria/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ideas of criteria"),t("OutboundLink")],1),e._v(" from HiveMQ.")]),e._v(" "),t("p",[e._v("Once your broker is installed it can be interesting to see the traffic passing to it and to publish data, so as to do that there are several tools available:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"http://mqtt-explorer.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("MQTT Explorer"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/hivemq/hivemq-mqtt-web-client",target:"_blank",rel:"noopener noreferrer"}},[e._v("HIVE MQ Web client"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://mqttfx.jensd.de/",target:"_blank",rel:"noopener noreferrer"}},[e._v("MQTT FX"),t("OutboundLink")],1)])]),e._v(" "),t("p",[e._v("MQTT enables you to connect easily a controller so as to monitor, control and automate scenariOS.")]),e._v(" "),t("h2",{attrs:{id:"controller"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#controller"}},[e._v("#")]),e._v(" Controller")]),e._v(" "),t("p",[e._v("The following controllers (and many other software) are compatible with MQTT:")]),e._v(" "),t("p",[t("img",{attrs:{src:r(277),alt:"controllers"}})]),e._v(" "),t("p",[e._v("TheengsApp is independent from these projects, you have the liberty of choice among all the compatible software.")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://www.openhab.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenHAB"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.home-assistant.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Home Assistant"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.domoticz.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("Domoticz"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.jeedom.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("Jeedom"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://nodered.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Node Red"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://fhem.de",target:"_blank",rel:"noopener noreferrer"}},[e._v("FHEM"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.iobroker.net/",target:"_blank",rel:"noopener noreferrer"}},[e._v("IO Broker"),t("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/app.c3d62551.js b/assets/js/app.e7256baa.js similarity index 92% rename from assets/js/app.c3d62551.js rename to assets/js/app.e7256baa.js index a92528f..864c3c8 100644 --- a/assets/js/app.c3d62551.js +++ b/assets/js/app.e7256baa.js @@ -1,4 +1,4 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],c=e[1],u=e[2],f=0,p=[];f
'};function o(t,e,n){return tn?n:t}function i(t){return 100*(-1+t)}n.configure=function(t){var e,n;for(e in t)void 0!==(n=t[e])&&t.hasOwnProperty(e)&&(r[e]=n);return this},n.status=null,n.set=function(t){var e=n.isStarted();t=o(t,r.minimum,1),n.status=1===t?null:t;var c=n.render(!e),u=c.querySelector(r.barSelector),l=r.speed,f=r.easing;return c.offsetWidth,a((function(e){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,function(t,e,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(t)+"%,0)"}:{"margin-left":i(t)+"%"}).transition="all "+e+"ms "+n,o}(t,l,f)),1===t?(s(c,{transition:"none",opacity:1}),c.offsetWidth,setTimeout((function(){s(c,{transition:"all "+l+"ms linear",opacity:0}),setTimeout((function(){n.remove(),e()}),l)}),l)):setTimeout(e,l)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var t=function(){setTimeout((function(){n.status&&(n.trickle(),t())}),r.trickleSpeed)};return r.trickle&&t(),this},n.done=function(t){return t||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(t){var e=n.status;return e?("number"!=typeof t&&(t=(1-e)*o(Math.random()*e,.1,.95)),e=o(e+t,0,.994),n.set(e)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},t=0,e=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===e&&n.start(),t++,e++,r.always((function(){0==--e?(t=0,n.done()):n.set((t-e)/t)})),this):this},n.render=function(t){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var e=document.createElement("div");e.id="nprogress",e.innerHTML=r.template;var o,a=e.querySelector(r.barSelector),c=t?"-100":i(n.status||0),l=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+c+"%,0,0)"}),r.showSpinner||(o=e.querySelector(r.spinnerSelector))&&p(o),l!=document.body&&u(l,"nprogress-custom-parent"),l.appendChild(e),e},n.remove=function(){l(document.documentElement,"nprogress-busy"),l(document.querySelector(r.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&p(t)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var a=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),s=function(){var t=["Webkit","O","Moz","ms"],e={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(t,e){return e.toUpperCase()})),e[n]||(e[n]=function(e){var n=document.body.style;if(e in n)return e;for(var r,o=t.length,i=e.charAt(0).toUpperCase()+e.slice(1);o--;)if((r=t[o]+i)in n)return r;return e}(n))}function r(t,e,r){e=n(e),t.style[e]=r}return function(t,e){var n,o,i=arguments;if(2==i.length)for(n in e)void 0!==(o=e[n])&&e.hasOwnProperty(n)&&r(t,n,o);else r(t,i[1],i[2])}}();function c(t,e){return("string"==typeof t?t:f(t)).indexOf(" "+e+" ")>=0}function u(t,e){var n=f(t),r=n+e;c(n,e)||(t.className=r.substring(1))}function l(t,e){var n,r=f(t);c(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function f(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function p(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return n})?r.call(e,n,e,t):r)||(t.exports=o)},function(t,e,n){var r=n(1),o=n(44).f,i=n(16),a=n(105),s=n(31),c=n(62),u=n(121);t.exports=function(t,e){var n,l,f,p,d,h=t.target,v=t.global,m=t.stat;if(n=v?r:m?r[h]||s(h,{}):(r[h]||{}).prototype)for(l in e){if(p=e[l],f=t.dontCallGetSet?(d=o(n,l))&&d.value:n[l],!u(v?l:h+(m?".":"#")+l,t.forced)&&void 0!==f){if(typeof p==typeof f)continue;c(p,f)}(t.sham||f&&f.sham)&&i(p,"sham",!0),a(n,l,p,t)}}},function(t,e,n){var r=n(26),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},function(t,e,n){var r=n(2);t.exports=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(45),o=n(47);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(1),o=n(57),i=n(7),a=n(59),s=n(54),c=n(53),u=o("wks"),l=r.Symbol,f=l&&l.for,p=c?l:l&&l.withoutSetter||a;t.exports=function(t){if(!i(u,t)||!s&&"string"!=typeof u[t]){var e="Symbol."+t;s&&i(l,t)?u[t]=l[t]:u[t]=c&&f?f(e):p(e)}return u[t]}},function(t,e,n){var r=n(1),o=n(31),i=r["__core-js_shared__"]||o("__core-js_shared__",{});t.exports=i},function(t,e,n){var r=n(1),o=Object.defineProperty;t.exports=function(t,e){try{o(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},function(t,e,n){var r=n(47),o=Object;t.exports=function(t){return o(r(t))}},function(t,e,n){var r=n(8),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw i(o(t)+" is not an object")}},function(t,e,n){var r=n(118);t.exports=function(t){return r(t.length)}},function(t,e,n){var r=n(143),o=n(10),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(t){return o(t)&&a.call(t,"callee")&&!s.call(t,"callee")};t.exports=c},function(t,e,n){var r=n(9)(n(6),"Map");t.exports=r},function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},function(t,e,n){var r=n(163),o=n(170),i=n(172),a=n(173),s=n(174);function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e-1&&t%1==0&&t<=9007199254740991}},function(t,e,n){var r=n(3),o=n(42),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;t.exports=function(t,e){if(r(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!o(t))||(a.test(t)||!i.test(t)||null!=e&&t in Object(e))}},function(t,e,n){var r=n(11),o=n(10);t.exports=function(t){return"symbol"==typeof t||o(t)&&"[object Symbol]"==r(t)}},function(t,e){t.exports=function(t){return t}},function(t,e,n){var r=n(4),o=n(25),i=n(97),a=n(27),s=n(28),c=n(49),u=n(7),l=n(60),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=s(t),e=c(e),l)try{return f(t,e)}catch(t){}if(u(t,e))return a(!o(i.f,t,e),t[e])}},function(t,e,n){var r=n(5),o=n(2),i=n(12),a=Object,s=r("".split);t.exports=o((function(){return!a("z").propertyIsEnumerable(0)}))?function(t){return"String"==i(t)?s(t,""):a(t)}:a},function(t,e,n){var r=n(26),o=Function.prototype,i=o.call,a=r&&o.bind.bind(i,i);t.exports=r?a:function(t){return function(){return i.apply(t,arguments)}}},function(t,e,n){var r=n(48),o=TypeError;t.exports=function(t){if(r(t))throw o("Can't call method on "+t);return t}},function(t,e){t.exports=function(t){return null==t}},function(t,e,n){var r=n(98),o=n(51);t.exports=function(t){var e=r(t,"string");return o(e)?e:e+""}},function(t,e){var n="object"==typeof document&&document.all,r=void 0===n&&void 0!==n;t.exports={all:n,IS_HTMLDDA:r}},function(t,e,n){var r=n(15),o=n(0),i=n(52),a=n(53),s=Object;t.exports=a?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return o(e)&&i(e.prototype,s(t))}},function(t,e,n){var r=n(5);t.exports=r({}.isPrototypeOf)},function(t,e,n){var r=n(54);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(t,e,n){var r=n(55),o=n(2);t.exports=!!Object.getOwnPropertySymbols&&!o((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},function(t,e,n){var r,o,i=n(1),a=n(99),s=i.process,c=i.Deno,u=s&&s.versions||c&&c.version,l=u&&u.v8;l&&(o=(r=l.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),t.exports=o},function(t,e,n){var r=n(0),o=n(101),i=TypeError;t.exports=function(t){if(r(t))return t;throw i(o(t)+" is not a function")}},function(t,e,n){var r=n(58),o=n(30);(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.26.0",mode:r?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.26.0/LICENSE",source:"https://github.com/zloirock/core-js"})},function(t,e){t.exports=!1},function(t,e,n){var r=n(5),o=0,i=Math.random(),a=r(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++o+i,36)}},function(t,e,n){var r=n(4),o=n(2),i=n(103);t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(t,e){t.exports={}},function(t,e,n){var r=n(7),o=n(112),i=n(44),a=n(17);t.exports=function(t,e,n){for(var s=o(e),c=a.f,u=i.f,l=0;ll))return!1;var p=c.get(t),d=c.get(e);if(p&&d)return p==e&&d==t;var h=-1,v=!0,m=2&n?new r:void 0;for(c.set(t,e),c.set(e,t);++h-1&&t%1==0&&t=0&&Math.floor(e)===e&&isFinite(t)}function v(t){return a(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function m(t){return null==t?"":Array.isArray(t)||p(t)&&t.toString===f?JSON.stringify(t,null,2):String(t)}function y(t){var e=parseFloat(t);return isNaN(e)?t:e}function g(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(r,1)}}var x=Object.prototype.hasOwnProperty;function w(t,e){return x.call(t,e)}function O(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var $=/-(\w)/g,C=O((function(t){return t.replace($,(function(t,e){return e?e.toUpperCase():""}))})),S=O((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),k=/\B([A-Z])/g,j=O((function(t){return t.replace(k,"-$1").toLowerCase()}));var T=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function E(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function P(t,e){for(var n in e)t[n]=e[n];return t}function A(t){for(var e={},n=0;n0,Q=X&&X.indexOf("edge/")>0;X&&X.indexOf("android");var Z=X&&/iphone|ipad|ipod|ios/.test(X);X&&/chrome\/\d+/.test(X),X&&/phantomjs/.test(X);var tt,et=X&&X.match(/firefox\/(\d+)/),nt={}.watch,rt=!1;if(K)try{var ot={};Object.defineProperty(ot,"passive",{get:function(){rt=!0}}),window.addEventListener("test-passive",null,ot)}catch(t){}var it=function(){return void 0===tt&&(tt=!K&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),tt},at=K&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function st(t){return"function"==typeof t&&/native code/.test(t.toString())}var ct,ut="undefined"!=typeof Symbol&&st(Symbol)&&"undefined"!=typeof Reflect&&st(Reflect.ownKeys);ct="undefined"!=typeof Set&&st(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var lt=null;function ft(t){void 0===t&&(t=null),t||lt&<._scope.off(),lt=t,t&&t._scope.on()}var pt=function(){function t(t,e,n,r,o,i,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),dt=function(t){void 0===t&&(t="");var e=new pt;return e.text=t,e.isComment=!0,e};function ht(t){return new pt(void 0,void 0,void 0,String(t))}function vt(t){var e=new pt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var mt=0,yt=[],gt=function(){function t(){this._pending=!1,this.id=mt++,this.subs=[]}return t.prototype.addSub=function(t){this.subs.push(t)},t.prototype.removeSub=function(t){this.subs[this.subs.indexOf(t)]=null,this._pending||(this._pending=!0,yt.push(this))},t.prototype.depend=function(e){t.target&&t.target.addDep(this)},t.prototype.notify=function(t){var e=this.subs.filter((function(t){return t}));for(var n=0,r=e.length;n0&&(Gt((u=t(u,"".concat(n||"","_").concat(r)))[0])&&Gt(f)&&(p[l]=ht(f.text+u[0].text),u.shift()),p.push.apply(p,u)):c(u)?Gt(f)?p[l]=ht(f.text+u):""!==u&&p.push(ht(u)):Gt(u)&&Gt(f)?p[l]=ht(f.text+u.text):(s(e._isVList)&&a(u.tag)&&i(u.key)&&a(n)&&(u.key="__vlist".concat(n,"_").concat(r,"__")),p.push(u)));return p}(t):void 0}function Gt(t){return a(t)&&a(t.text)&&!1===t.isComment}function Jt(t,e){var n,r,i,s,c=null;if(o(t)||"string"==typeof t)for(c=new Array(t.length),n=0,r=t.length;n0,s=e?!!e.$stable:!a,c=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(s&&o&&o!==r&&c===o.$key&&!a&&!o.$hasNormal)return o;for(var u in i={},e)e[u]&&"$"!==u[0]&&(i[u]=me(t,n,u,e[u]))}else i={};for(var l in n)l in i||(i[l]=ye(n,l));return e&&Object.isExtensible(e)&&(e._normalized=i),H(i,"$stable",s),H(i,"$key",c),H(i,"$hasNormal",a),i}function me(t,e,n,r){var i=function(){var e=lt;ft(t);var n=arguments.length?r.apply(null,arguments):r({}),i=(n=n&&"object"==typeof n&&!o(n)?[n]:Xt(n))&&n[0];return ft(e),n&&(!i||1===n.length&&i.isComment&&!he(i))?void 0:n};return r.proxy&&Object.defineProperty(e,n,{get:i,enumerable:!0,configurable:!0}),i}function ye(t,e){return function(){return t[e]}}function ge(t){return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};H(e,"_v_attr_proxy",!0),be(e,t.$attrs,r,t,"$attrs")}return t._attrsProxy},get listeners(){t._listenersProxy||be(t._listenersProxy={},t.$listeners,r,t,"$listeners");return t._listenersProxy},get slots(){return function(t){t._slotsProxy||xe(t._slotsProxy={},t.$scopedSlots);return t._slotsProxy}(t)},emit:T(t.$emit,t),expose:function(e){e&&Object.keys(e).forEach((function(n){return Bt(t,e,n)}))}}}function be(t,e,n,r,o){var i=!1;for(var a in e)a in t?e[a]!==n[a]&&(i=!0):(i=!0,_e(t,a,r,o));for(var a in t)a in e||(i=!0,delete t[a]);return i}function _e(t,e,n,r){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return n[r][e]}})}function xe(t,e){for(var n in e)t[n]=e[n];for(var n in t)n in e||delete t[n]}var we=null;function Oe(t,e){return(t.__esModule||ut&&"Module"===t[Symbol.toStringTag])&&(t=t.default),l(t)?e.extend(t):t}function $e(t){if(o(t))for(var e=0;edocument.createEvent("Event").timeStamp&&(un=function(){return ln.now()})}var fn=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id};function pn(){var t,e;for(cn=un(),an=!0,en.sort(fn),sn=0;snsn&&en[n].id>t.id;)n--;en.splice(n+1,0,t)}else en.push(t);on||(on=!0,Ne(pn))}}function hn(t,e){if(t){for(var n=Object.create(null),r=ut?Reflect.ownKeys(t):Object.keys(t),o=0;o-1)if(i&&!w(o,"default"))a=!1;else if(""===a||a===j(t)){var c=In(String,o.type);(c<0||s-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!d(t)&&t.test(e)}function Jn(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=a.name;s&&!e(s)&&Qn(n,i,r,o)}}}function Qn(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,_(n,e)}Yn.prototype._init=function(t){var e=this;e._uid=Hn++,e._isVue=!0,e.__v_skip=!0,e._scope=new zt(!0),e._scope._vm=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=En(Wn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._provided=n?n._provided:Object.create(null),t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Xe(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=pe(e._renderChildren,o),t.$scopedSlots=n?ve(t.$parent,n.data.scopedSlots,t.$slots):r,t._c=function(e,n,r,o){return Ce(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return Ce(t,e,n,r,o,!0)};var i=n&&n.data;Rt(t,"$attrs",i&&i.attrs||r,null,!0),Rt(t,"$listeners",e._parentListeners||r,null,!0)}(e),tn(e,"beforeCreate",void 0,!1),function(t){var e=hn(t.$options.inject,t);e&&(Pt(!1),Object.keys(e).forEach((function(n){Rt(t,n,e[n])})),Pt(!0))}(e),Nn(e),function(t){var e=t.$options.provide;if(e){var n=u(e)?e.call(t):e;if(!l(n))return;for(var r=qt(t),o=ut?Reflect.ownKeys(n):Object.keys(n),i=0;i1?E(n):n;for(var r=E(arguments,1),o='event handler for "'.concat(t,'"'),i=0,a=n.length;iparseInt(this.max)&&Qn(t,e[0],e,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Qn(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){Jn(t,(function(t){return Gn(e,t)}))})),this.$watch("exclude",(function(e){Jn(t,(function(t){return!Gn(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=$e(t),n=e&&e.componentOptions;if(n){var r=Xn(n),o=this.include,i=this.exclude;if(o&&(!r||!Gn(o,r))||i&&r&&Gn(i,r))return e;var a=this.cache,s=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;a[c]?(e.componentInstance=a[c].componentInstance,_(s,c),s.push(c)):(this.vnodeToCache=e,this.keyToCache=c),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return z}};Object.defineProperty(t,"config",e),t.util={warn:On,extend:P,mergeOptions:En,defineReactive:Rt},t.set=It,t.delete=Dt,t.nextTick=Ne,t.observable=function(t){return Mt(t),t},t.options=Object.create(null),B.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,P(t.options.components,tr),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=E(arguments,1);return n.unshift(this),u(t.install)?t.install.apply(t,n):u(t)&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=En(this.options,t),this}}(t),Kn(t),function(t){B.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&p(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&u(n)&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(Yn),Object.defineProperty(Yn.prototype,"$isServer",{get:it}),Object.defineProperty(Yn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Yn,"FunctionalRenderContext",{value:vn}),Yn.version="2.7.13";var er=g("style,class"),nr=g("input,textarea,option,select,progress"),rr=g("contenteditable,draggable,spellcheck"),or=g("events,caret,typing,plaintext-only"),ir=g("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),ar="http://www.w3.org/1999/xlink",sr=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},cr=function(t){return sr(t)?t.slice(6,t.length):""},ur=function(t){return null==t||!1===t};function lr(t){for(var e=t.data,n=t,r=t;a(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=fr(r.data,e));for(;a(n=n.parent);)n&&n.data&&(e=fr(e,n.data));return function(t,e){if(a(t)||a(e))return pr(t,dr(e));return""}(e.staticClass,e.class)}function fr(t,e){return{staticClass:pr(t.staticClass,e.staticClass),class:a(t.class)?[t.class,e.class]:e.class}}function pr(t,e){return t?e?t+" "+e:t:e||""}function dr(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r-1?Dr(t,e,n):ir(e)?ur(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):rr(e)?t.setAttribute(e,function(t,e){return ur(e)||"false"===e?"false":"contenteditable"===t&&or(e)?e:"true"}(e,n)):sr(e)?ur(n)?t.removeAttributeNS(ar,cr(e)):t.setAttributeNS(ar,e,n):Dr(t,e,n)}function Dr(t,e,n){if(ur(n))t.removeAttribute(e);else{if(G&&!J&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var Ur={create:Rr,update:Rr};function Nr(t,e){var n=e.elm,r=e.data,o=t.data;if(!(i(r.staticClass)&&i(r.class)&&(i(o)||i(o.staticClass)&&i(o.class)))){var s=lr(e),c=n._transitionClasses;a(c)&&(s=pr(s,dr(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Br,Fr={create:Nr,update:Nr};function zr(t,e,n){var r=Br;return function o(){var i=e.apply(null,arguments);null!==i&&Hr(t,o,n,r)}}var qr=Pe&&!(et&&Number(et[1])<=53);function Vr(t,e,n,r){if(qr){var o=cn,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}Br.addEventListener(t,e,rt?{capture:n,passive:r}:n)}function Hr(t,e,n,r){(r||Br).removeEventListener(t,e._wrapper||e,n)}function Wr(t,e){if(!i(t.data.on)||!i(e.data.on)){var n=e.data.on||{},r=t.data.on||{};Br=e.elm||t.elm,function(t){if(a(t.__r)){var e=G?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}a(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(n),Wt(n,r,Vr,Hr,zr,e.context),Br=void 0}}var Yr,Kr={create:Wr,update:Wr,destroy:function(t){return Wr(t,$r)}};function Xr(t,e){if(!i(t.data.domProps)||!i(e.data.domProps)){var n,r,o=e.elm,c=t.data.domProps||{},u=e.data.domProps||{};for(n in(a(u.__ob__)||s(u._v_attr_proxy))&&(u=e.data.domProps=P({},u)),c)n in u||(o[n]="");for(n in u){if(r=u[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===c[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=r;var l=i(r)?"":String(r);Gr(o,l)&&(o.value=l)}else if("innerHTML"===n&&mr(o.tagName)&&i(o.innerHTML)){(Yr=Yr||document.createElement("div")).innerHTML="".concat(r,"");for(var f=Yr.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;f.firstChild;)o.appendChild(f.firstChild)}else if(r!==c[n])try{o[n]=r}catch(t){}}}}function Gr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(a(r)){if(r.number)return y(n)!==y(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Jr={create:Xr,update:Xr},Qr=O((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}})),e}));function Zr(t){var e=to(t.style);return t.staticStyle?P(t.staticStyle,e):e}function to(t){return Array.isArray(t)?A(t):"string"==typeof t?Qr(t):t}var eo,no=/^--/,ro=/\s*!important$/,oo=function(t,e,n){if(no.test(e))t.style.setProperty(e,n);else if(ro.test(n))t.style.setProperty(j(e),n.replace(ro,""),"important");else{var r=ao(e);if(Array.isArray(n))for(var o=0,i=n.length;o-1?e.split(uo).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" ".concat(t.getAttribute("class")||""," ");n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function fo(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(uo).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" ".concat(t.getAttribute("class")||""," "),r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function po(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&P(e,ho(t.name||"v")),P(e,t),e}return"string"==typeof t?ho(t):void 0}}var ho=O((function(t){return{enterClass:"".concat(t,"-enter"),enterToClass:"".concat(t,"-enter-to"),enterActiveClass:"".concat(t,"-enter-active"),leaveClass:"".concat(t,"-leave"),leaveToClass:"".concat(t,"-leave-to"),leaveActiveClass:"".concat(t,"-leave-active")}})),vo=K&&!J,mo="transition",yo="transitionend",go="animation",bo="animationend";vo&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(mo="WebkitTransition",yo="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(go="WebkitAnimation",bo="webkitAnimationEnd"));var _o=K?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function xo(t){_o((function(){_o(t)}))}function wo(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),lo(t,e))}function Oo(t,e){t._transitionClasses&&_(t._transitionClasses,e),fo(t,e)}function $o(t,e,n){var r=So(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s="transition"===o?yo:bo,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout((function(){c0&&(n="transition",l=a,f=i.length):"animation"===e?u>0&&(n="animation",l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?"transition":"animation":null)?"transition"===n?i.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:"transition"===n&&Co.test(r[mo+"Property"])}}function ko(t,e){for(;t.length1}function Lo(t,e){!0!==e.data.show&&To(e)}var Mo=function(t){var e,n,r={},u=t.modules,l=t.nodeOps;for(e=0;eh?_(t,i(n[y+1])?null:n[y+1].elm,n,d,y,r):d>y&&w(e,f,h)}(f,v,y,n,u):a(y)?(a(t.text)&&l.setTextContent(f,""),_(f,null,y,0,y.length-1,n)):a(v)?w(v,0,v.length-1):a(t.text)&&l.setTextContent(f,""):t.text!==e.text&&l.setTextContent(f,e.text),a(h)&&a(d=h.hook)&&a(d=d.postpatch)&&d(t,e)}}}function S(t,e,n){if(s(n)&&a(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,a.selected!==i&&(a.selected=i);else if(I(No(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function Uo(t,e){return e.every((function(e){return!I(e,t)}))}function No(t){return"_value"in t?t._value:t.value}function Bo(t){t.target.composing=!0}function Fo(t){t.target.composing&&(t.target.composing=!1,zo(t.target,"input"))}function zo(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function qo(t){return!t.componentInstance||t.data&&t.data.transition?t:qo(t.componentInstance._vnode)}var Vo={model:Ro,show:{bind:function(t,e,n){var r=e.value,o=(n=qo(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,To(n,(function(){t.style.display=i}))):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=qo(n)).data&&n.data.transition?(n.data.show=!0,r?To(n,(function(){t.style.display=t.__vOriginalDisplay})):Eo(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},Ho={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Wo(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Wo($e(e.children)):t}function Yo(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var r in o)e[C(r)]=o[r];return e}function Ko(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Xo=function(t){return t.tag||he(t)},Go=function(t){return"show"===t.name},Jo={name:"transition",props:Ho,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Xo)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var i=Wo(o);if(!i)return o;if(this._leaving)return Ko(t,o);var a="__transition-".concat(this._uid,"-");i.key=null==i.key?i.isComment?a+"comment":a+i.tag:c(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var s=(i.data||(i.data={})).transition=Yo(this),u=this._vnode,l=Wo(u);if(i.data.directives&&i.data.directives.some(Go)&&(i.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(i,l)&&!he(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=P({},s);if("out-in"===r)return this._leaving=!0,Yt(f,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Ko(t,o);if("in-out"===r){if(he(i))return u;var p,d=function(){p()};Yt(s,"afterEnter",d),Yt(s,"enterCancelled",d),Yt(f,"delayLeave",(function(t){p=t}))}}return o}}},Qo=P({tag:String,moveClass:String},Ho);function Zo(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function ti(t){t.data.newPos=t.elm.getBoundingClientRect()}function ei(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate(".concat(r,"px,").concat(o,"px)"),i.transitionDuration="0s"}}delete Qo.mode;var ni={Transition:Jo,TransitionGroup:{props:Qo,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Je(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=Yo(this),s=0;s-1?gr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:gr[t]=/HTMLUnknownElement/.test(e.toString())},P(Yn.options.directives,Vo),P(Yn.options.components,ni),Yn.prototype.__patch__=K?Mo:L,Yn.prototype.$mount=function(t,e){return function(t,e,n){var r;t.$el=e,t.$options.render||(t.$options.render=dt),tn(t,"beforeMount"),r=function(){t._update(t._render(),n)},new He(t,r,L,{before:function(){t._isMounted&&!t._isDestroyed&&tn(t,"beforeUpdate")}},!0),n=!1;var o=t._preWatchers;if(o)for(var i=0;i=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),u=e&&e.path||"/",l=c.path?Oi(c.path,u,n||o.append):u,f=function(t,e,n){void 0===e&&(e={});var r,o=n||li;try{r=o(t||"")}catch(t){r={}}for(var i in e){var a=e[i];r[i]=Array.isArray(a)?a.map(ui):ui(a)}return r}(c.query,o.query,r&&r.options.parseQuery),p=o.hash||c.hash;return p&&"#"!==p.charAt(0)&&(p="#"+p),{_normalized:!0,path:l,query:f,hash:p}}var Vi,Hi=function(){},Wi={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,c={},u=n.options.linkActiveClass,l=n.options.linkExactActiveClass,f=null==u?"router-link-active":u,p=null==l?"router-link-exact-active":l,d=null==this.activeClass?f:this.activeClass,h=null==this.exactActiveClass?p:this.exactActiveClass,v=a.redirectedFrom?di(null,qi(a.redirectedFrom),null,n):a;c[h]=gi(r,v,this.exactPath),c[d]=this.exact||this.exactPath?c[h]:function(t,e){return 0===t.path.replace(pi,"/").indexOf(e.path.replace(pi,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var m=c[h]?this.ariaCurrentValue:null,y=function(t){Yi(t)&&(e.replace?n.replace(i,Hi):n.push(i,Hi))},g={click:Yi};Array.isArray(this.event)?this.event.forEach((function(t){g[t]=y})):g[this.event]=y;var b={class:c},_=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:y,isActive:c[d],isExactActive:c[h]});if(_){if(1===_.length)return _[0];if(_.length>1||!_.length)return 0===_.length?t():t("span",{},_)}if("a"===this.tag)b.on=g,b.attrs={href:s,"aria-current":m};else{var x=function t(e){var n;if(e)for(var r=0;r-1&&(s.params[p]=n.params[p]);return s.path=zi(l.path,s.params),c(l,s,a)}if(s.path){s.params={};for(var d=0;d-1}function $a(t,e){return Oa(t)&&t._isRouter&&(null==e||t.type===e)}function Ca(t,e,n){var r=function(o){o>=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}function Sa(t){return function(e,n,r){var o=!1,i=0,a=null;ka(t,(function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var c,u=Ea((function(e){var o;((o=e).__esModule||Ta&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:Vi.extend(e),n.components[s]=e,--i<=0&&r()})),l=Ea((function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=Oa(t)?t:new Error(e),r(a))}));try{c=t(u,l)}catch(t){l(t)}if(c)if("function"==typeof c.then)c.then(u,l);else{var f=c.component;f&&"function"==typeof f.then&&f.then(u,l)}}})),o||r()}}function ka(t,e){return ja(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function ja(t){return Array.prototype.concat.apply([],t)}var Ta="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Ea(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var Pa=function(t,e){this.router=t,this.base=function(t){if(!t)if(Ki){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=vi,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Aa(t,e,n,r){var o=ka(t,(function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=Vi.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map((function(t){return n(t,r,o,i)})):n(a,r,o,i)}));return ja(r?o.reverse():o)}function La(t,e){if(e)return function(){return t.apply(e,arguments)}}Pa.prototype.listen=function(t){this.cb=t},Pa.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},Pa.prototype.onError=function(t){this.errorCbs.push(t)},Pa.prototype.transitionTo=function(t,e,n){var r,o=this;try{r=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach((function(e){e(t)})),t}var i=this.current;this.confirmTransition(r,(function(){o.updateRoute(r),e&&e(r),o.ensureURL(),o.router.afterHooks.forEach((function(t){t&&t(r,i)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(t){t(r)})))}),(function(t){n&&n(t),t&&!o.ready&&($a(t,ga.redirected)&&i===vi||(o.ready=!0,o.readyErrorCbs.forEach((function(e){e(t)}))))}))},Pa.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current;this.pending=t;var i,a,s=function(t){!$a(t)&&Oa(t)&&(r.errorCbs.length?r.errorCbs.forEach((function(e){e(t)})):console.error(t)),n&&n(t)},c=t.matched.length-1,u=o.matched.length-1;if(gi(t,o)&&c===u&&t.matched[c]===o.matched[u])return this.ensureURL(),t.hash&&aa(this.router,o,t,!1),s(((a=xa(i=o,t,ga.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var l=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=va&&n;r&&this.listeners.push(ia());var o=function(){var n=t.current,o=Ra(t.base);t.current===vi&&o===t._startLocation||t.transitionTo(o,(function(t){r&&aa(e,t,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){ma($i(r.base+t.fullPath)),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){ya($i(r.base+t.fullPath)),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(Ra(this.base)!==this.current.fullPath){var e=$i(this.base+this.current.fullPath);t?ma(e):ya(e)}},e.prototype.getCurrentLocation=function(){return Ra(this.base)},e}(Pa);function Ra(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf($i(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Ia=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=Ra(t);if(!/^\/#/.test(e))return window.location.replace($i(t+"/#"+e)),!0}(this.base)||Da()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,n=va&&e;n&&this.listeners.push(ia());var r=function(){var e=t.current;Da()&&t.transitionTo(Ua(),(function(r){n&&aa(t.router,r,e,!0),va||Fa(r.fullPath)}))},o=va?"popstate":"hashchange";window.addEventListener(o,r),this.listeners.push((function(){window.removeEventListener(o,r)}))}},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Ba(t.fullPath),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Fa(t.fullPath),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Ua()!==e&&(t?Ba(e):Fa(e))},e.prototype.getCurrentLocation=function(){return Ua()},e}(Pa);function Da(){var t=Ua();return"/"===t.charAt(0)||(Fa("/"+t),!1)}function Ua(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function Na(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function Ba(t){va?ma(Na(t)):window.location.hash=t}function Fa(t){va?ya(Na(t)):window.location.replace(Na(t))}var za=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach((function(e){e&&e(r,t)}))}),(function(t){$a(t,ga.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(Pa),qa=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Ji(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!va&&!1!==t.fallback,this.fallback&&(e="hash"),Ki||(e="abstract"),this.mode=e,e){case"history":this.history=new Ma(this,t.base);break;case"hash":this.history=new Ia(this,t.base,this.fallback);break;case"abstract":this.history=new za(this,t.base);break;default:0}},Va={currentRoute:{configurable:!0}};qa.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},Va.currentRoute.get=function(){return this.history&&this.history.current},qa.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof Ma||n instanceof Ia){var r=function(t){n.setupListeners(),function(t){var r=n.current,o=e.options.scrollBehavior;va&&o&&"fullPath"in t&&aa(e,t,r,!1)}(t)};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},qa.prototype.beforeEach=function(t){return Wa(this.beforeHooks,t)},qa.prototype.beforeResolve=function(t){return Wa(this.resolveHooks,t)},qa.prototype.afterEach=function(t){return Wa(this.afterHooks,t)},qa.prototype.onReady=function(t,e){this.history.onReady(t,e)},qa.prototype.onError=function(t){this.history.onError(t)},qa.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},qa.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},qa.prototype.go=function(t){this.history.go(t)},qa.prototype.back=function(){this.go(-1)},qa.prototype.forward=function(){this.go(1)},qa.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},qa.prototype.resolve=function(t,e,n){var r=qi(t,e=e||this.history.current,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?$i(t+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},qa.prototype.getRoutes=function(){return this.matcher.getRoutes()},qa.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==vi&&this.history.transitionTo(this.history.getCurrentLocation())},qa.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==vi&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(qa.prototype,Va);var Ha=qa;function Wa(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}qa.install=function t(e){if(!t.installed||Vi!==e){t.installed=!0,Vi=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",xi),e.component("RouterLink",Wi);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},qa.version="3.6.5",qa.isNavigationFailure=$a,qa.NavigationFailureType=ga,qa.START_LOCATION=vi,Ki&&window.Vue&&window.Vue.use(qa);n(96);n(92),n(128);var Ya={NotFound:()=>n.e(9).then(n.bind(null,294)),Layout:()=>Promise.all([n.e(0),n.e(2)]).then(n.bind(null,293))},Ka={"v-fc1d7a0c":()=>n.e(7).then(n.bind(null,297)),"v-62214341":()=>n.e(10).then(n.bind(null,298)),"v-6221a7be":()=>n.e(11).then(n.bind(null,299)),"v-96793b7e":()=>n.e(12).then(n.bind(null,300)),"v-2cf92021":()=>n.e(13).then(n.bind(null,301)),"v-200daea1":()=>n.e(14).then(n.bind(null,302)),"v-055e6e31":()=>n.e(8).then(n.bind(null,303)),"v-22ae4d01":()=>n.e(15).then(n.bind(null,304)),"v-a56a917e":()=>n.e(3).then(n.bind(null,305)),"v-dbe40a3e":()=>n.e(16).then(n.bind(null,306))};function Xa(t){const e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}const Ga=/-(\w)/g,Ja=Xa(t=>t.replace(Ga,(t,e)=>e?e.toUpperCase():"")),Qa=/\B([A-Z])/g,Za=Xa(t=>t.replace(Qa,"-$1").toLowerCase()),ts=Xa(t=>t.charAt(0).toUpperCase()+t.slice(1));function es(t,e){if(!e)return;if(t(e))return t(e);return e.includes("-")?t(ts(Ja(e))):t(ts(e))||t(Za(e))}const ns=Object.assign({},Ya,Ka),rs=t=>ns[t],os=t=>Ka[t],is=t=>Ya[t],as=t=>Yn.component(t);function ss(t){return es(os,t)}function cs(t){return es(is,t)}function us(t){return es(rs,t)}function ls(t){return es(as,t)}function fs(...t){return Promise.all(t.filter(t=>t).map(async t=>{if(!ls(t)&&us(t)){const e=await us(t)();Yn.component(t,e.default)}}))}function ps(t,e){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[t]=e)}var ds=n(88),hs=n.n(ds),vs=n(89),ms=n.n(vs),ys={created(){if(this.siteMeta=this.$site.headTags.filter(([t])=>"meta"===t).map(([t,e])=>e),this.$ssrContext){const e=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(t=e)?t.map(t=>{let e="{e+=` ${n}="${ms()(t[n])}"`}),e+">"}).join("\n "):"",this.$ssrContext.canonicalLink=bs(this.$canonicalUrl)}var t},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const t=this.getMergedMetaTags();this.currentMetaTags=_s(t,this.currentMetaTags)},getMergedMetaTags(){const t=this.$page.frontmatter.meta||[];return hs()([{name:"description",content:this.$description}],t,this.siteMeta,xs)},updateCanonicalLink(){gs(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",bs(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){_s(null,this.currentMetaTags),gs()}};function gs(){const t=document.querySelector("link[rel='canonical']");t&&t.remove()}function bs(t=""){return t?``:""}function _s(t,e){if(e&&[...e].filter(t=>t.parentNode===document.head).forEach(t=>document.head.removeChild(t)),t)return t.map(t=>{const e=document.createElement("meta");return Object.keys(t).forEach(n=>{e.setAttribute(n,t[n])}),document.head.appendChild(e),e})}function xs(t){for(const e of["name","property","itemprop"])if(t.hasOwnProperty(e))return t[e]+e;return JSON.stringify(t)}var ws=n(90),Os={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:n.n(ws)()((function(){this.setActiveHash()}),300),setActiveHash(){const t=[].slice.call(document.querySelectorAll(".sidebar-link")),e=[].slice.call(document.querySelectorAll(".header-anchor")).filter(e=>t.some(t=>t.hash===e.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),r=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=window.innerHeight+n;for(let t=0;t=i.parentElement.offsetTop+10&&(!a||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},$s=n(91),Cs=n.n($s),Ss={mounted(){Cs.a.polyfill()}},ks=n(23),js=n.n(ks),Ts=[ys,Os,Ss,{mounted(){js.a.configure({showSpinner:!1}),this.$router.beforeEach((t,e,n)=>{t.path===e.path||Yn.component(t.name)||js.a.start(),n()}),this.$router.afterEach(()=>{js.a.done(),this.isSidebarOpen=!1})}}],Es={name:"GlobalLayout",computed:{layout(){const t=this.getLayout();return ps("layout",t),Yn.component(t)}},methods:{getLayout(){if(this.$page.path){const t=this.$page.frontmatter.layout;return t&&(this.$vuepress.getLayoutAsyncComponent(t)||this.$vuepress.getVueComponent(t))?t:"Layout"}return"NotFound"}}},Ps=n(14),As=Object(Ps.a)(Es,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;!function(t,e,n){switch(e){case"components":t[e]||(t[e]={}),Object.assign(t[e],n);break;case"mixins":t[e]||(t[e]=[]),t[e].push(...n);break;default:throw new Error("Unknown option name.")}}(As,"mixins",Ts);const Ls=[{name:"v-fc1d7a0c",path:"/",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-fc1d7a0c").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-62214341",path:"/install/install.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-62214341").then(n)}},{name:"v-6221a7be",path:"/participate/adding-decoders.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-6221a7be").then(n)}},{name:"v-96793b7e",path:"/participate/build.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-96793b7e").then(n)}},{name:"v-2cf92021",path:"/participate/development.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-2cf92021").then(n)}},{name:"v-200daea1",path:"/participate/support.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-200daea1").then(n)}},{name:"v-055e6e31",path:"/prerequisites/controller.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-055e6e31").then(n)}},{name:"v-22ae4d01",path:"/prerequisites/devices.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-22ae4d01").then(n)}},{name:"v-a56a917e",path:"/use/use.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-a56a917e").then(n)}},{name:"v-dbe40a3e",path:"/use/privacy.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-dbe40a3e").then(n)}},{path:"*",component:As}],Ms={title:"Theengs BLE App: Vendor agnostic sensor reader",description:"Explore Theengs: the open-source platform that bridges hundreds of sensors and smart devices into one interface. Compatible with major IoT platforms and home automation systems like AWS, OpenHAB, Home Assistant, and Jeedom, Theengs simplifies your smart home experience. It supports MQTT protocol, enabling efficient integration and automation of devices. Theengs enhances interoperability of your your smart home or IoT ecosystem.",base:"/",headTags:[["link",{rel:"apple-touch-icon",sizes:"180x180",href:".apple-touch-icon.png"}],["link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/favicon-32x32.png"}],["link",{rel:"icon",type:"image/png",sizes:"16x16",href:"/favicon-16x16.png"}],["link",{rel:"manifest",href:"/manifest.json"}],["meta",{name:"theme-color",content:"#3eaf7c"}],["meta",{name:"apple-mobile-web-app-capable",content:"yes"}],["meta",{name:"apple-mobile-web-app-status-bar-style",content:"black"}],["link",{rel:"mask-icon",href:"/icons/safari-pinned-tab.svg",color:"#3eaf7c"}],["meta",{name:"msapplication-TileImage",content:"/favicon-144x144.png"}],["meta",{name:"msapplication-TileColor",content:"#000000"}]],pages:[{title:"Theengs BLE mobile application",frontmatter:{title:"Theengs BLE mobile application"},regularPath:"/",relativePath:"README.md",key:"v-fc1d7a0c",path:"/",headers:[{level:2,title:"🌟 Local Smart Sensor Integration 🌟",slug:"🌟-local-smart-sensor-integration-🌟"},{level:2,title:"🔥 Elevate Your Grilling Game",slug:"🔥-elevate-your-grilling-game"},{level:2,title:"🔒Respecting Your Privacy",slug:"🔒respecting-your-privacy"},{level:2,title:"🏡 Take control with Smart Home Integration",slug:"🏡-take-control-with-smart-home-integration"},{level:2,title:"Choose Your Platform and Download Now",slug:"choose-your-platform-and-download-now"},{level:2,title:"Features comparison between Operating Systems",slug:"features-comparison-between-operating-systems"},{level:2,title:"Third party projects used by Theengs app",slug:"third-party-projects-used-by-theengs-app"}],lastUpdated:"1/18/2024, 5:21:23 PM",lastUpdatedTimestamp:1705598483e3},{title:"Install",frontmatter:{},regularPath:"/install/install.html",relativePath:"install/install.md",key:"v-62214341",path:"/install/install.html",headers:[{level:2,title:"Install from the store",slug:"install-from-the-store"}],lastUpdated:"1/18/2024, 5:21:23 PM",lastUpdatedTimestamp:1705598483e3},{title:"Adding decoders",frontmatter:{},regularPath:"/participate/adding-decoders.html",relativePath:"participate/adding-decoders.md",key:"v-6221a7be",path:"/participate/adding-decoders.html",lastUpdated:"1/18/2024, 5:21:23 PM",lastUpdatedTimestamp:1705598483e3},{title:"Build",frontmatter:{},regularPath:"/participate/build.html",relativePath:"participate/build.md",key:"v-96793b7e",path:"/participate/build.html",headers:[{level:2,title:"Dependencies",slug:"dependencies"},{level:2,title:"Cloning Theengs",slug:"cloning-theengs"},{level:2,title:"Building dependencies (with the contribs.py script)",slug:"building-dependencies-with-the-contribs-py-script"},{level:2,title:"Building Theengs",slug:"building-theengs"}],lastUpdated:"1/18/2024, 5:21:23 PM",lastUpdatedTimestamp:1705598483e3},{title:"Development contributions",frontmatter:{},regularPath:"/participate/development.html",relativePath:"participate/development.md",key:"v-2cf92021",path:"/participate/development.html",headers:[{level:2,title:"Developer Certificate Of Origin",slug:"developer-certificate-of-origin"}],lastUpdated:"1/18/2024, 5:21:23 PM",lastUpdatedTimestamp:1705598483e3},{title:"Supporting the project",frontmatter:{},regularPath:"/participate/support.html",relativePath:"participate/support.md",key:"v-200daea1",path:"/participate/support.html",lastUpdated:"1/18/2024, 5:21:23 PM",lastUpdatedTimestamp:1705598483e3},{title:"MQTT integration (option)",frontmatter:{},regularPath:"/prerequisites/controller.html",relativePath:"prerequisites/controller.md",key:"v-055e6e31",path:"/prerequisites/controller.html",headers:[{level:2,title:"Broker",slug:"broker"},{level:2,title:"Controller",slug:"controller"}],lastUpdated:"1/18/2024, 5:21:23 PM",lastUpdatedTimestamp:1705598483e3},{title:"Devices supported",frontmatter:{pageClass:"table-generated-page"},regularPath:"/prerequisites/devices.html",relativePath:"prerequisites/devices.md",key:"v-22ae4d01",path:"/prerequisites/devices.html",lastUpdated:"1/18/2024, 5:21:23 PM",lastUpdatedTimestamp:1705598483e3},{title:"Use",frontmatter:{},regularPath:"/use/use.html",relativePath:"use/use.md",key:"v-a56a917e",path:"/use/use.html",headers:[{level:2,title:"Features comparison between Operating Systems",slug:"features-comparison-between-operating-systems"},{level:2,title:"Overview",slug:"overview"},{level:2,title:"Real time data",slug:"real-time-data"},{level:2,title:"Live BBQ monitoring",slug:"live-bbq-monitoring"},{level:3,title:"Introduction",slug:"introduction"},{level:3,title:"Compatible devices",slug:"compatible-devices"},{level:3,title:"Threshold settings",slug:"threshold-settings"},{level:3,title:"Live monitoring",slug:"live-monitoring"},{level:3,title:"Notifications",slug:"notifications"},{level:2,title:"MQTT integration",slug:"mqtt-integration"},{level:3,title:"iOS specificity",slug:"ios-specificity"},{level:3,title:"Home Assistant Auto Discovery",slug:"home-assistant-auto-discovery"},{level:2,title:"iOS permissions",slug:"ios-permissions"},{level:2,title:"Android permissions",slug:"android-permissions"},{level:3,title:"Android 8+",slug:"android-8"},{level:3,title:"Android 10+",slug:"android-10"}],lastUpdated:"1/18/2024, 5:21:23 PM",lastUpdatedTimestamp:1705598483e3},{title:"Privacy policy",frontmatter:{},regularPath:"/use/privacy.html",relativePath:"use/privacy.md",key:"v-dbe40a3e",path:"/use/privacy.html",lastUpdated:"1/18/2024, 5:21:23 PM",lastUpdatedTimestamp:1705598483e3}],themeConfig:{repo:"theengs/app",smoothScroll:!0,search:!1,docsDir:"docs",docsBranch:"development",lastUpdated:"Last Updated",editLinks:!0,nav:[{text:"Home",link:"https://www.theengs.io",target:"_self",rel:""},{text:"Use cases",items:[{text:"Smart Home",link:"https://www.theengs.io/usecases/smarthome.html",target:"_self",rel:""},{text:"IoT",link:"https://www.theengs.io/usecases/iot.html",target:"_self",rel:""},{text:"Research",link:"https://www.theengs.io/usecases/research.html",target:"_self",rel:""}]},{text:"Solutions",items:[{text:"Hardware",items:[{text:"Theengs Plug",link:"https://shop.theengs.io/products/theengs-plug-smart-plug-ble-gateway-and-energy-consumption",target:"_self",rel:""},{text:"Theengs Bridge",link:"https://shop.theengs.io/products/theengs-bridge-esp32-ble-mqtt-gateway-with-ethernet-and-external-antenna",target:"_self",rel:""}]},{text:"Software",items:[{text:"Mobile App",link:"https://app.theengs.io",target:"_self",rel:""},{text:"OpenMQTTGateway",link:"https://docs.openmqttgateway.com",target:"_self",rel:""},{text:"Gateway",link:"https://gateway.theengs.io",target:"_self",rel:""}]},{text:"Core",items:[{text:"Decoder",link:"https://decoder.theengs.io",target:"_self",rel:""},{text:"Web Parser",link:"https://parser.theengs.io",target:"_self",rel:""}]}]},{text:"Compatible devices",link:"https://decoder.theengs.io/devices/devices.html",target:"_self",rel:""},{text:"Community",link:"https://community.openmqttgateway.com",target:"_self",rel:""},{text:"Shop",link:"https://shop.theengs.io/",target:"_self",rel:""},{text:"Sponsor 🤍",link:"https://github.com/sponsors/theengs",target:"_self",rel:""}],sidebar:[["/","0 - What is it for 🏠"],{title:"1 - Prerequisites🧭",children:["prerequisites/devices","prerequisites/controller"]},["/install/install","2 - Install ✔️"],{title:"3 - Use ✈️",children:["use/use","use/privacy"]},{title:"4 - Participate 💻",children:["participate/adding-decoders","participate/build","participate/support","participate/development"]}]}};n(234);Yn.component("Badge",()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,307))),Yn.component("CodeBlock",()=>Promise.all([n.e(0),n.e(5)]).then(n.bind(null,295))),Yn.component("CodeGroup",()=>Promise.all([n.e(0),n.e(6)]).then(n.bind(null,296)));n(235);function Rs(t){const e=document.documentElement.getBoundingClientRect(),n=t.getBoundingClientRect();return{x:n.left-e.left,y:n.top-e.top}}n(236);var Is=[{},({Vue:t})=>{t.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},({Vue:t,router:e})=>{e.options.scrollBehavior=(e,n,r)=>{if(r)return window.scrollTo({top:r.y,behavior:"smooth"});if(e.hash){if(t.$vuepress.$get("disableScrollBehavior"))return!1;const n=document.querySelector(e.hash);return!!n&&window.scrollTo({top:Rs(n).y,behavior:"smooth"})}return window.scrollTo({top:0,behavior:"smooth"})}},{}],Ds=[];class Us extends class{constructor(){this.store=new Yn({data:{state:{}}})}$get(t){return this.store.state[t]}$set(t,e){Yn.set(this.store.state,t,e)}$emit(...t){this.store.$emit(...t)}$on(...t){this.store.$on(...t)}}{}Object.assign(Us.prototype,{getPageAsyncComponent:ss,getLayoutAsyncComponent:cs,getAsyncComponent:us,getVueComponent:ls});var Ns={install(t){const e=new Us;t.$vuepress=e,t.prototype.$vuepress=e}};function Bs(t,e){const n=e.toLowerCase();return t.options.routes.some(t=>t.path.toLowerCase()===n)}var Fs={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(t){const e=this.pageKey||this.$parent.$page.key;return ps("pageKey",e),Yn.component(e)||Yn.component(e,ss(e)),Yn.component(e)?t(e):t("")}},zs={functional:!0,props:{slotKey:String,required:!0},render:(t,{props:e,slots:n})=>t("div",{class:["content__"+e.slotKey]},n()[e.slotKey])},qs={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},Vs=(n(237),n(238),Object(Ps.a)(qs,(function(){var t=this._self._c;return t("span",[t("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[t("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),this._v(" "),t("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})]),this._v(" "),t("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),Hs={functional:!0,render(t,{parent:e,children:n}){if(e._isMounted)return n;e.$once("hook:mounted",()=>{e.$forceUpdate()})}};Yn.config.productionTip=!1,Yn.use(Ha),Yn.use(Ns),Yn.mixin(function(t,e,n=Yn){!function(t){t.locales&&Object.keys(t.locales).forEach(e=>{t.locales[e].path=e});Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);const r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((t,e)=>(e.startsWith("$")&&(t[e]=o[e].get),t),i),{computed:i}}(t=>class{setPage(t){this.__page=t}get $site(){return t}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:t={}}=this.$site;let e,n;for(const r in t)"/"===r?n=t[r]:0===this.$page.path.indexOf(r)&&(e=t[r]);return e||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:t}=this.$page.frontmatter;return"string"==typeof t&&t}get $title(){const t=this.$page,{metaTitle:e}=this.$page.frontmatter;if("string"==typeof e)return e;const n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const t=function(t){if(t){const e=t.filter(t=>"description"===t.name)[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(t,e){for(let n=0;nn||(t.hash?!Yn.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(t.hash)}:{x:0,y:0})});!function(t){t.beforeEach((e,n,r)=>{if(Bs(t,e.path))r();else if(/(\/|\.html)$/.test(e.path))if(/\/$/.test(e.path)){const n=e.path.replace(/\/$/,"")+".html";Bs(t,n)?r(n):r()}else r();else{const n=e.path+"/",o=e.path+".html";Bs(t,o)?r(o):Bs(t,n)?r(n):r()}})}(n);const r={};try{await Promise.all(Is.filter(t=>"function"==typeof t).map(e=>e({Vue:Yn,options:r,router:n,siteData:Ms,isServer:t})))}catch(t){console.error(t)}return{app:new Yn(Object.assign(r,{router:n,render:t=>t("div",{attrs:{id:"app"}},[t("RouterView",{ref:"layout"}),t("div",{class:"global-ui"},Ds.map(e=>t(e)))])})),router:n}}(!1).then(({app:t,router:e})=>{e.onReady(()=>{t.$mount("#app")})})}]); \ No newline at end of file +var r=Object.freeze({}),o=Array.isArray;function i(t){return null==t}function a(t){return null!=t}function s(t){return!0===t}function c(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function u(t){return"function"==typeof t}function l(t){return null!==t&&"object"==typeof t}var f=Object.prototype.toString;function p(t){return"[object Object]"===f.call(t)}function d(t){return"[object RegExp]"===f.call(t)}function h(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function v(t){return a(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function m(t){return null==t?"":Array.isArray(t)||p(t)&&t.toString===f?JSON.stringify(t,null,2):String(t)}function y(t){var e=parseFloat(t);return isNaN(e)?t:e}function g(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(r,1)}}var x=Object.prototype.hasOwnProperty;function w(t,e){return x.call(t,e)}function O(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var $=/-(\w)/g,C=O((function(t){return t.replace($,(function(t,e){return e?e.toUpperCase():""}))})),S=O((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),k=/\B([A-Z])/g,j=O((function(t){return t.replace(k,"-$1").toLowerCase()}));var T=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function E(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function P(t,e){for(var n in e)t[n]=e[n];return t}function A(t){for(var e={},n=0;n0,Q=X&&X.indexOf("edge/")>0;X&&X.indexOf("android");var Z=X&&/iphone|ipad|ipod|ios/.test(X);X&&/chrome\/\d+/.test(X),X&&/phantomjs/.test(X);var tt,et=X&&X.match(/firefox\/(\d+)/),nt={}.watch,rt=!1;if(K)try{var ot={};Object.defineProperty(ot,"passive",{get:function(){rt=!0}}),window.addEventListener("test-passive",null,ot)}catch(t){}var it=function(){return void 0===tt&&(tt=!K&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),tt},at=K&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function st(t){return"function"==typeof t&&/native code/.test(t.toString())}var ct,ut="undefined"!=typeof Symbol&&st(Symbol)&&"undefined"!=typeof Reflect&&st(Reflect.ownKeys);ct="undefined"!=typeof Set&&st(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var lt=null;function ft(t){void 0===t&&(t=null),t||lt&<._scope.off(),lt=t,t&&t._scope.on()}var pt=function(){function t(t,e,n,r,o,i,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),dt=function(t){void 0===t&&(t="");var e=new pt;return e.text=t,e.isComment=!0,e};function ht(t){return new pt(void 0,void 0,void 0,String(t))}function vt(t){var e=new pt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var mt=0,yt=[],gt=function(){function t(){this._pending=!1,this.id=mt++,this.subs=[]}return t.prototype.addSub=function(t){this.subs.push(t)},t.prototype.removeSub=function(t){this.subs[this.subs.indexOf(t)]=null,this._pending||(this._pending=!0,yt.push(this))},t.prototype.depend=function(e){t.target&&t.target.addDep(this)},t.prototype.notify=function(t){var e=this.subs.filter((function(t){return t}));for(var n=0,r=e.length;n0&&(Gt((u=t(u,"".concat(n||"","_").concat(r)))[0])&&Gt(f)&&(p[l]=ht(f.text+u[0].text),u.shift()),p.push.apply(p,u)):c(u)?Gt(f)?p[l]=ht(f.text+u):""!==u&&p.push(ht(u)):Gt(u)&&Gt(f)?p[l]=ht(f.text+u.text):(s(e._isVList)&&a(u.tag)&&i(u.key)&&a(n)&&(u.key="__vlist".concat(n,"_").concat(r,"__")),p.push(u)));return p}(t):void 0}function Gt(t){return a(t)&&a(t.text)&&!1===t.isComment}function Jt(t,e){var n,r,i,s,c=null;if(o(t)||"string"==typeof t)for(c=new Array(t.length),n=0,r=t.length;n0,s=e?!!e.$stable:!a,c=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(s&&o&&o!==r&&c===o.$key&&!a&&!o.$hasNormal)return o;for(var u in i={},e)e[u]&&"$"!==u[0]&&(i[u]=me(t,n,u,e[u]))}else i={};for(var l in n)l in i||(i[l]=ye(n,l));return e&&Object.isExtensible(e)&&(e._normalized=i),H(i,"$stable",s),H(i,"$key",c),H(i,"$hasNormal",a),i}function me(t,e,n,r){var i=function(){var e=lt;ft(t);var n=arguments.length?r.apply(null,arguments):r({}),i=(n=n&&"object"==typeof n&&!o(n)?[n]:Xt(n))&&n[0];return ft(e),n&&(!i||1===n.length&&i.isComment&&!he(i))?void 0:n};return r.proxy&&Object.defineProperty(e,n,{get:i,enumerable:!0,configurable:!0}),i}function ye(t,e){return function(){return t[e]}}function ge(t){return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};H(e,"_v_attr_proxy",!0),be(e,t.$attrs,r,t,"$attrs")}return t._attrsProxy},get listeners(){t._listenersProxy||be(t._listenersProxy={},t.$listeners,r,t,"$listeners");return t._listenersProxy},get slots(){return function(t){t._slotsProxy||xe(t._slotsProxy={},t.$scopedSlots);return t._slotsProxy}(t)},emit:T(t.$emit,t),expose:function(e){e&&Object.keys(e).forEach((function(n){return Bt(t,e,n)}))}}}function be(t,e,n,r,o){var i=!1;for(var a in e)a in t?e[a]!==n[a]&&(i=!0):(i=!0,_e(t,a,r,o));for(var a in t)a in e||(i=!0,delete t[a]);return i}function _e(t,e,n,r){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return n[r][e]}})}function xe(t,e){for(var n in e)t[n]=e[n];for(var n in t)n in e||delete t[n]}var we=null;function Oe(t,e){return(t.__esModule||ut&&"Module"===t[Symbol.toStringTag])&&(t=t.default),l(t)?e.extend(t):t}function $e(t){if(o(t))for(var e=0;edocument.createEvent("Event").timeStamp&&(un=function(){return ln.now()})}var fn=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id};function pn(){var t,e;for(cn=un(),an=!0,en.sort(fn),sn=0;snsn&&en[n].id>t.id;)n--;en.splice(n+1,0,t)}else en.push(t);on||(on=!0,Ne(pn))}}function hn(t,e){if(t){for(var n=Object.create(null),r=ut?Reflect.ownKeys(t):Object.keys(t),o=0;o-1)if(i&&!w(o,"default"))a=!1;else if(""===a||a===j(t)){var c=In(String,o.type);(c<0||s-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!d(t)&&t.test(e)}function Jn(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=a.name;s&&!e(s)&&Qn(n,i,r,o)}}}function Qn(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,_(n,e)}Yn.prototype._init=function(t){var e=this;e._uid=Hn++,e._isVue=!0,e.__v_skip=!0,e._scope=new zt(!0),e._scope._vm=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=En(Wn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._provided=n?n._provided:Object.create(null),t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Xe(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=pe(e._renderChildren,o),t.$scopedSlots=n?ve(t.$parent,n.data.scopedSlots,t.$slots):r,t._c=function(e,n,r,o){return Ce(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return Ce(t,e,n,r,o,!0)};var i=n&&n.data;Rt(t,"$attrs",i&&i.attrs||r,null,!0),Rt(t,"$listeners",e._parentListeners||r,null,!0)}(e),tn(e,"beforeCreate",void 0,!1),function(t){var e=hn(t.$options.inject,t);e&&(Pt(!1),Object.keys(e).forEach((function(n){Rt(t,n,e[n])})),Pt(!0))}(e),Nn(e),function(t){var e=t.$options.provide;if(e){var n=u(e)?e.call(t):e;if(!l(n))return;for(var r=qt(t),o=ut?Reflect.ownKeys(n):Object.keys(n),i=0;i1?E(n):n;for(var r=E(arguments,1),o='event handler for "'.concat(t,'"'),i=0,a=n.length;iparseInt(this.max)&&Qn(t,e[0],e,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Qn(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){Jn(t,(function(t){return Gn(e,t)}))})),this.$watch("exclude",(function(e){Jn(t,(function(t){return!Gn(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=$e(t),n=e&&e.componentOptions;if(n){var r=Xn(n),o=this.include,i=this.exclude;if(o&&(!r||!Gn(o,r))||i&&r&&Gn(i,r))return e;var a=this.cache,s=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;a[c]?(e.componentInstance=a[c].componentInstance,_(s,c),s.push(c)):(this.vnodeToCache=e,this.keyToCache=c),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return z}};Object.defineProperty(t,"config",e),t.util={warn:On,extend:P,mergeOptions:En,defineReactive:Rt},t.set=It,t.delete=Dt,t.nextTick=Ne,t.observable=function(t){return Mt(t),t},t.options=Object.create(null),B.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,P(t.options.components,tr),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=E(arguments,1);return n.unshift(this),u(t.install)?t.install.apply(t,n):u(t)&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=En(this.options,t),this}}(t),Kn(t),function(t){B.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&p(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&u(n)&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(Yn),Object.defineProperty(Yn.prototype,"$isServer",{get:it}),Object.defineProperty(Yn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Yn,"FunctionalRenderContext",{value:vn}),Yn.version="2.7.13";var er=g("style,class"),nr=g("input,textarea,option,select,progress"),rr=g("contenteditable,draggable,spellcheck"),or=g("events,caret,typing,plaintext-only"),ir=g("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),ar="http://www.w3.org/1999/xlink",sr=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},cr=function(t){return sr(t)?t.slice(6,t.length):""},ur=function(t){return null==t||!1===t};function lr(t){for(var e=t.data,n=t,r=t;a(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=fr(r.data,e));for(;a(n=n.parent);)n&&n.data&&(e=fr(e,n.data));return function(t,e){if(a(t)||a(e))return pr(t,dr(e));return""}(e.staticClass,e.class)}function fr(t,e){return{staticClass:pr(t.staticClass,e.staticClass),class:a(t.class)?[t.class,e.class]:e.class}}function pr(t,e){return t?e?t+" "+e:t:e||""}function dr(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r-1?Dr(t,e,n):ir(e)?ur(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):rr(e)?t.setAttribute(e,function(t,e){return ur(e)||"false"===e?"false":"contenteditable"===t&&or(e)?e:"true"}(e,n)):sr(e)?ur(n)?t.removeAttributeNS(ar,cr(e)):t.setAttributeNS(ar,e,n):Dr(t,e,n)}function Dr(t,e,n){if(ur(n))t.removeAttribute(e);else{if(G&&!J&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var Ur={create:Rr,update:Rr};function Nr(t,e){var n=e.elm,r=e.data,o=t.data;if(!(i(r.staticClass)&&i(r.class)&&(i(o)||i(o.staticClass)&&i(o.class)))){var s=lr(e),c=n._transitionClasses;a(c)&&(s=pr(s,dr(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Br,Fr={create:Nr,update:Nr};function zr(t,e,n){var r=Br;return function o(){var i=e.apply(null,arguments);null!==i&&Hr(t,o,n,r)}}var qr=Pe&&!(et&&Number(et[1])<=53);function Vr(t,e,n,r){if(qr){var o=cn,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}Br.addEventListener(t,e,rt?{capture:n,passive:r}:n)}function Hr(t,e,n,r){(r||Br).removeEventListener(t,e._wrapper||e,n)}function Wr(t,e){if(!i(t.data.on)||!i(e.data.on)){var n=e.data.on||{},r=t.data.on||{};Br=e.elm||t.elm,function(t){if(a(t.__r)){var e=G?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}a(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(n),Wt(n,r,Vr,Hr,zr,e.context),Br=void 0}}var Yr,Kr={create:Wr,update:Wr,destroy:function(t){return Wr(t,$r)}};function Xr(t,e){if(!i(t.data.domProps)||!i(e.data.domProps)){var n,r,o=e.elm,c=t.data.domProps||{},u=e.data.domProps||{};for(n in(a(u.__ob__)||s(u._v_attr_proxy))&&(u=e.data.domProps=P({},u)),c)n in u||(o[n]="");for(n in u){if(r=u[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===c[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=r;var l=i(r)?"":String(r);Gr(o,l)&&(o.value=l)}else if("innerHTML"===n&&mr(o.tagName)&&i(o.innerHTML)){(Yr=Yr||document.createElement("div")).innerHTML="".concat(r,"");for(var f=Yr.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;f.firstChild;)o.appendChild(f.firstChild)}else if(r!==c[n])try{o[n]=r}catch(t){}}}}function Gr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(a(r)){if(r.number)return y(n)!==y(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Jr={create:Xr,update:Xr},Qr=O((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}})),e}));function Zr(t){var e=to(t.style);return t.staticStyle?P(t.staticStyle,e):e}function to(t){return Array.isArray(t)?A(t):"string"==typeof t?Qr(t):t}var eo,no=/^--/,ro=/\s*!important$/,oo=function(t,e,n){if(no.test(e))t.style.setProperty(e,n);else if(ro.test(n))t.style.setProperty(j(e),n.replace(ro,""),"important");else{var r=ao(e);if(Array.isArray(n))for(var o=0,i=n.length;o-1?e.split(uo).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" ".concat(t.getAttribute("class")||""," ");n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function fo(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(uo).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" ".concat(t.getAttribute("class")||""," "),r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function po(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&P(e,ho(t.name||"v")),P(e,t),e}return"string"==typeof t?ho(t):void 0}}var ho=O((function(t){return{enterClass:"".concat(t,"-enter"),enterToClass:"".concat(t,"-enter-to"),enterActiveClass:"".concat(t,"-enter-active"),leaveClass:"".concat(t,"-leave"),leaveToClass:"".concat(t,"-leave-to"),leaveActiveClass:"".concat(t,"-leave-active")}})),vo=K&&!J,mo="transition",yo="transitionend",go="animation",bo="animationend";vo&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(mo="WebkitTransition",yo="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(go="WebkitAnimation",bo="webkitAnimationEnd"));var _o=K?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function xo(t){_o((function(){_o(t)}))}function wo(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),lo(t,e))}function Oo(t,e){t._transitionClasses&&_(t._transitionClasses,e),fo(t,e)}function $o(t,e,n){var r=So(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s="transition"===o?yo:bo,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout((function(){c0&&(n="transition",l=a,f=i.length):"animation"===e?u>0&&(n="animation",l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?"transition":"animation":null)?"transition"===n?i.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:"transition"===n&&Co.test(r[mo+"Property"])}}function ko(t,e){for(;t.length1}function Lo(t,e){!0!==e.data.show&&To(e)}var Mo=function(t){var e,n,r={},u=t.modules,l=t.nodeOps;for(e=0;eh?_(t,i(n[y+1])?null:n[y+1].elm,n,d,y,r):d>y&&w(e,f,h)}(f,v,y,n,u):a(y)?(a(t.text)&&l.setTextContent(f,""),_(f,null,y,0,y.length-1,n)):a(v)?w(v,0,v.length-1):a(t.text)&&l.setTextContent(f,""):t.text!==e.text&&l.setTextContent(f,e.text),a(h)&&a(d=h.hook)&&a(d=d.postpatch)&&d(t,e)}}}function S(t,e,n){if(s(n)&&a(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,a.selected!==i&&(a.selected=i);else if(I(No(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function Uo(t,e){return e.every((function(e){return!I(e,t)}))}function No(t){return"_value"in t?t._value:t.value}function Bo(t){t.target.composing=!0}function Fo(t){t.target.composing&&(t.target.composing=!1,zo(t.target,"input"))}function zo(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function qo(t){return!t.componentInstance||t.data&&t.data.transition?t:qo(t.componentInstance._vnode)}var Vo={model:Ro,show:{bind:function(t,e,n){var r=e.value,o=(n=qo(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,To(n,(function(){t.style.display=i}))):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=qo(n)).data&&n.data.transition?(n.data.show=!0,r?To(n,(function(){t.style.display=t.__vOriginalDisplay})):Eo(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},Ho={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Wo(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Wo($e(e.children)):t}function Yo(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var r in o)e[C(r)]=o[r];return e}function Ko(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Xo=function(t){return t.tag||he(t)},Go=function(t){return"show"===t.name},Jo={name:"transition",props:Ho,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Xo)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var i=Wo(o);if(!i)return o;if(this._leaving)return Ko(t,o);var a="__transition-".concat(this._uid,"-");i.key=null==i.key?i.isComment?a+"comment":a+i.tag:c(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var s=(i.data||(i.data={})).transition=Yo(this),u=this._vnode,l=Wo(u);if(i.data.directives&&i.data.directives.some(Go)&&(i.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(i,l)&&!he(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=P({},s);if("out-in"===r)return this._leaving=!0,Yt(f,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Ko(t,o);if("in-out"===r){if(he(i))return u;var p,d=function(){p()};Yt(s,"afterEnter",d),Yt(s,"enterCancelled",d),Yt(f,"delayLeave",(function(t){p=t}))}}return o}}},Qo=P({tag:String,moveClass:String},Ho);function Zo(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function ti(t){t.data.newPos=t.elm.getBoundingClientRect()}function ei(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate(".concat(r,"px,").concat(o,"px)"),i.transitionDuration="0s"}}delete Qo.mode;var ni={Transition:Jo,TransitionGroup:{props:Qo,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Je(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=Yo(this),s=0;s-1?gr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:gr[t]=/HTMLUnknownElement/.test(e.toString())},P(Yn.options.directives,Vo),P(Yn.options.components,ni),Yn.prototype.__patch__=K?Mo:L,Yn.prototype.$mount=function(t,e){return function(t,e,n){var r;t.$el=e,t.$options.render||(t.$options.render=dt),tn(t,"beforeMount"),r=function(){t._update(t._render(),n)},new He(t,r,L,{before:function(){t._isMounted&&!t._isDestroyed&&tn(t,"beforeUpdate")}},!0),n=!1;var o=t._preWatchers;if(o)for(var i=0;i=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),u=e&&e.path||"/",l=c.path?Oi(c.path,u,n||o.append):u,f=function(t,e,n){void 0===e&&(e={});var r,o=n||li;try{r=o(t||"")}catch(t){r={}}for(var i in e){var a=e[i];r[i]=Array.isArray(a)?a.map(ui):ui(a)}return r}(c.query,o.query,r&&r.options.parseQuery),p=o.hash||c.hash;return p&&"#"!==p.charAt(0)&&(p="#"+p),{_normalized:!0,path:l,query:f,hash:p}}var Vi,Hi=function(){},Wi={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,c={},u=n.options.linkActiveClass,l=n.options.linkExactActiveClass,f=null==u?"router-link-active":u,p=null==l?"router-link-exact-active":l,d=null==this.activeClass?f:this.activeClass,h=null==this.exactActiveClass?p:this.exactActiveClass,v=a.redirectedFrom?di(null,qi(a.redirectedFrom),null,n):a;c[h]=gi(r,v,this.exactPath),c[d]=this.exact||this.exactPath?c[h]:function(t,e){return 0===t.path.replace(pi,"/").indexOf(e.path.replace(pi,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var m=c[h]?this.ariaCurrentValue:null,y=function(t){Yi(t)&&(e.replace?n.replace(i,Hi):n.push(i,Hi))},g={click:Yi};Array.isArray(this.event)?this.event.forEach((function(t){g[t]=y})):g[this.event]=y;var b={class:c},_=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:y,isActive:c[d],isExactActive:c[h]});if(_){if(1===_.length)return _[0];if(_.length>1||!_.length)return 0===_.length?t():t("span",{},_)}if("a"===this.tag)b.on=g,b.attrs={href:s,"aria-current":m};else{var x=function t(e){var n;if(e)for(var r=0;r-1&&(s.params[p]=n.params[p]);return s.path=zi(l.path,s.params),c(l,s,a)}if(s.path){s.params={};for(var d=0;d-1}function $a(t,e){return Oa(t)&&t._isRouter&&(null==e||t.type===e)}function Ca(t,e,n){var r=function(o){o>=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}function Sa(t){return function(e,n,r){var o=!1,i=0,a=null;ka(t,(function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var c,u=Ea((function(e){var o;((o=e).__esModule||Ta&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:Vi.extend(e),n.components[s]=e,--i<=0&&r()})),l=Ea((function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=Oa(t)?t:new Error(e),r(a))}));try{c=t(u,l)}catch(t){l(t)}if(c)if("function"==typeof c.then)c.then(u,l);else{var f=c.component;f&&"function"==typeof f.then&&f.then(u,l)}}})),o||r()}}function ka(t,e){return ja(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function ja(t){return Array.prototype.concat.apply([],t)}var Ta="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Ea(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var Pa=function(t,e){this.router=t,this.base=function(t){if(!t)if(Ki){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=vi,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Aa(t,e,n,r){var o=ka(t,(function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=Vi.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map((function(t){return n(t,r,o,i)})):n(a,r,o,i)}));return ja(r?o.reverse():o)}function La(t,e){if(e)return function(){return t.apply(e,arguments)}}Pa.prototype.listen=function(t){this.cb=t},Pa.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},Pa.prototype.onError=function(t){this.errorCbs.push(t)},Pa.prototype.transitionTo=function(t,e,n){var r,o=this;try{r=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach((function(e){e(t)})),t}var i=this.current;this.confirmTransition(r,(function(){o.updateRoute(r),e&&e(r),o.ensureURL(),o.router.afterHooks.forEach((function(t){t&&t(r,i)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(t){t(r)})))}),(function(t){n&&n(t),t&&!o.ready&&($a(t,ga.redirected)&&i===vi||(o.ready=!0,o.readyErrorCbs.forEach((function(e){e(t)}))))}))},Pa.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current;this.pending=t;var i,a,s=function(t){!$a(t)&&Oa(t)&&(r.errorCbs.length?r.errorCbs.forEach((function(e){e(t)})):console.error(t)),n&&n(t)},c=t.matched.length-1,u=o.matched.length-1;if(gi(t,o)&&c===u&&t.matched[c]===o.matched[u])return this.ensureURL(),t.hash&&aa(this.router,o,t,!1),s(((a=xa(i=o,t,ga.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var l=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=va&&n;r&&this.listeners.push(ia());var o=function(){var n=t.current,o=Ra(t.base);t.current===vi&&o===t._startLocation||t.transitionTo(o,(function(t){r&&aa(e,t,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){ma($i(r.base+t.fullPath)),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){ya($i(r.base+t.fullPath)),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(Ra(this.base)!==this.current.fullPath){var e=$i(this.base+this.current.fullPath);t?ma(e):ya(e)}},e.prototype.getCurrentLocation=function(){return Ra(this.base)},e}(Pa);function Ra(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf($i(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Ia=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=Ra(t);if(!/^\/#/.test(e))return window.location.replace($i(t+"/#"+e)),!0}(this.base)||Da()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,n=va&&e;n&&this.listeners.push(ia());var r=function(){var e=t.current;Da()&&t.transitionTo(Ua(),(function(r){n&&aa(t.router,r,e,!0),va||Fa(r.fullPath)}))},o=va?"popstate":"hashchange";window.addEventListener(o,r),this.listeners.push((function(){window.removeEventListener(o,r)}))}},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Ba(t.fullPath),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Fa(t.fullPath),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Ua()!==e&&(t?Ba(e):Fa(e))},e.prototype.getCurrentLocation=function(){return Ua()},e}(Pa);function Da(){var t=Ua();return"/"===t.charAt(0)||(Fa("/"+t),!1)}function Ua(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function Na(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function Ba(t){va?ma(Na(t)):window.location.hash=t}function Fa(t){va?ya(Na(t)):window.location.replace(Na(t))}var za=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach((function(e){e&&e(r,t)}))}),(function(t){$a(t,ga.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(Pa),qa=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Ji(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!va&&!1!==t.fallback,this.fallback&&(e="hash"),Ki||(e="abstract"),this.mode=e,e){case"history":this.history=new Ma(this,t.base);break;case"hash":this.history=new Ia(this,t.base,this.fallback);break;case"abstract":this.history=new za(this,t.base);break;default:0}},Va={currentRoute:{configurable:!0}};qa.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},Va.currentRoute.get=function(){return this.history&&this.history.current},qa.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof Ma||n instanceof Ia){var r=function(t){n.setupListeners(),function(t){var r=n.current,o=e.options.scrollBehavior;va&&o&&"fullPath"in t&&aa(e,t,r,!1)}(t)};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},qa.prototype.beforeEach=function(t){return Wa(this.beforeHooks,t)},qa.prototype.beforeResolve=function(t){return Wa(this.resolveHooks,t)},qa.prototype.afterEach=function(t){return Wa(this.afterHooks,t)},qa.prototype.onReady=function(t,e){this.history.onReady(t,e)},qa.prototype.onError=function(t){this.history.onError(t)},qa.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},qa.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},qa.prototype.go=function(t){this.history.go(t)},qa.prototype.back=function(){this.go(-1)},qa.prototype.forward=function(){this.go(1)},qa.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},qa.prototype.resolve=function(t,e,n){var r=qi(t,e=e||this.history.current,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?$i(t+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},qa.prototype.getRoutes=function(){return this.matcher.getRoutes()},qa.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==vi&&this.history.transitionTo(this.history.getCurrentLocation())},qa.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==vi&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(qa.prototype,Va);var Ha=qa;function Wa(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}qa.install=function t(e){if(!t.installed||Vi!==e){t.installed=!0,Vi=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",xi),e.component("RouterLink",Wi);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},qa.version="3.6.5",qa.isNavigationFailure=$a,qa.NavigationFailureType=ga,qa.START_LOCATION=vi,Ki&&window.Vue&&window.Vue.use(qa);n(96);n(92),n(128);var Ya={NotFound:()=>n.e(9).then(n.bind(null,294)),Layout:()=>Promise.all([n.e(0),n.e(2)]).then(n.bind(null,293))},Ka={"v-fc1d7a0c":()=>n.e(7).then(n.bind(null,297)),"v-6221a7be":()=>n.e(11).then(n.bind(null,298)),"v-62214341":()=>n.e(10).then(n.bind(null,299)),"v-96793b7e":()=>n.e(12).then(n.bind(null,300)),"v-2cf92021":()=>n.e(13).then(n.bind(null,301)),"v-200daea1":()=>n.e(14).then(n.bind(null,302)),"v-22ae4d01":()=>n.e(15).then(n.bind(null,303)),"v-055e6e31":()=>n.e(8).then(n.bind(null,304)),"v-a56a917e":()=>n.e(3).then(n.bind(null,305)),"v-dbe40a3e":()=>n.e(16).then(n.bind(null,306))};function Xa(t){const e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}const Ga=/-(\w)/g,Ja=Xa(t=>t.replace(Ga,(t,e)=>e?e.toUpperCase():"")),Qa=/\B([A-Z])/g,Za=Xa(t=>t.replace(Qa,"-$1").toLowerCase()),ts=Xa(t=>t.charAt(0).toUpperCase()+t.slice(1));function es(t,e){if(!e)return;if(t(e))return t(e);return e.includes("-")?t(ts(Ja(e))):t(ts(e))||t(Za(e))}const ns=Object.assign({},Ya,Ka),rs=t=>ns[t],os=t=>Ka[t],is=t=>Ya[t],as=t=>Yn.component(t);function ss(t){return es(os,t)}function cs(t){return es(is,t)}function us(t){return es(rs,t)}function ls(t){return es(as,t)}function fs(...t){return Promise.all(t.filter(t=>t).map(async t=>{if(!ls(t)&&us(t)){const e=await us(t)();Yn.component(t,e.default)}}))}function ps(t,e){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[t]=e)}var ds=n(88),hs=n.n(ds),vs=n(89),ms=n.n(vs),ys={created(){if(this.siteMeta=this.$site.headTags.filter(([t])=>"meta"===t).map(([t,e])=>e),this.$ssrContext){const e=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(t=e)?t.map(t=>{let e="{e+=` ${n}="${ms()(t[n])}"`}),e+">"}).join("\n "):"",this.$ssrContext.canonicalLink=bs(this.$canonicalUrl)}var t},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const t=this.getMergedMetaTags();this.currentMetaTags=_s(t,this.currentMetaTags)},getMergedMetaTags(){const t=this.$page.frontmatter.meta||[];return hs()([{name:"description",content:this.$description}],t,this.siteMeta,xs)},updateCanonicalLink(){gs(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",bs(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){_s(null,this.currentMetaTags),gs()}};function gs(){const t=document.querySelector("link[rel='canonical']");t&&t.remove()}function bs(t=""){return t?``:""}function _s(t,e){if(e&&[...e].filter(t=>t.parentNode===document.head).forEach(t=>document.head.removeChild(t)),t)return t.map(t=>{const e=document.createElement("meta");return Object.keys(t).forEach(n=>{e.setAttribute(n,t[n])}),document.head.appendChild(e),e})}function xs(t){for(const e of["name","property","itemprop"])if(t.hasOwnProperty(e))return t[e]+e;return JSON.stringify(t)}var ws=n(90),Os={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:n.n(ws)()((function(){this.setActiveHash()}),300),setActiveHash(){const t=[].slice.call(document.querySelectorAll(".sidebar-link")),e=[].slice.call(document.querySelectorAll(".header-anchor")).filter(e=>t.some(t=>t.hash===e.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),r=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=window.innerHeight+n;for(let t=0;t=i.parentElement.offsetTop+10&&(!a||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},$s=n(91),Cs=n.n($s),Ss={mounted(){Cs.a.polyfill()}},ks=n(23),js=n.n(ks),Ts=[ys,Os,Ss,{mounted(){js.a.configure({showSpinner:!1}),this.$router.beforeEach((t,e,n)=>{t.path===e.path||Yn.component(t.name)||js.a.start(),n()}),this.$router.afterEach(()=>{js.a.done(),this.isSidebarOpen=!1})}}],Es={name:"GlobalLayout",computed:{layout(){const t=this.getLayout();return ps("layout",t),Yn.component(t)}},methods:{getLayout(){if(this.$page.path){const t=this.$page.frontmatter.layout;return t&&(this.$vuepress.getLayoutAsyncComponent(t)||this.$vuepress.getVueComponent(t))?t:"Layout"}return"NotFound"}}},Ps=n(14),As=Object(Ps.a)(Es,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;!function(t,e,n){switch(e){case"components":t[e]||(t[e]={}),Object.assign(t[e],n);break;case"mixins":t[e]||(t[e]=[]),t[e].push(...n);break;default:throw new Error("Unknown option name.")}}(As,"mixins",Ts);const Ls=[{name:"v-fc1d7a0c",path:"/",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-fc1d7a0c").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-6221a7be",path:"/participate/adding-decoders.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-6221a7be").then(n)}},{name:"v-62214341",path:"/install/install.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-62214341").then(n)}},{name:"v-96793b7e",path:"/participate/build.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-96793b7e").then(n)}},{name:"v-2cf92021",path:"/participate/development.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-2cf92021").then(n)}},{name:"v-200daea1",path:"/participate/support.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-200daea1").then(n)}},{name:"v-22ae4d01",path:"/prerequisites/devices.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-22ae4d01").then(n)}},{name:"v-055e6e31",path:"/prerequisites/controller.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-055e6e31").then(n)}},{name:"v-a56a917e",path:"/use/use.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-a56a917e").then(n)}},{name:"v-dbe40a3e",path:"/use/privacy.html",component:As,beforeEnter:(t,e,n)=>{fs("Layout","v-dbe40a3e").then(n)}},{path:"*",component:As}],Ms={title:"Theengs BLE App: Vendor agnostic sensor reader",description:"Explore Theengs: the open-source platform that bridges hundreds of sensors and smart devices into one interface. Compatible with major IoT platforms and home automation systems like AWS, OpenHAB, Home Assistant, and Jeedom, Theengs simplifies your smart home experience. It supports MQTT protocol, enabling efficient integration and automation of devices. Theengs enhances interoperability of your your smart home or IoT ecosystem.",base:"/",headTags:[["link",{rel:"apple-touch-icon",sizes:"180x180",href:".apple-touch-icon.png"}],["link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/favicon-32x32.png"}],["link",{rel:"icon",type:"image/png",sizes:"16x16",href:"/favicon-16x16.png"}],["link",{rel:"manifest",href:"/manifest.json"}],["meta",{name:"theme-color",content:"#3eaf7c"}],["meta",{name:"apple-mobile-web-app-capable",content:"yes"}],["meta",{name:"apple-mobile-web-app-status-bar-style",content:"black"}],["link",{rel:"mask-icon",href:"/icons/safari-pinned-tab.svg",color:"#3eaf7c"}],["meta",{name:"msapplication-TileImage",content:"/favicon-144x144.png"}],["meta",{name:"msapplication-TileColor",content:"#000000"}]],pages:[{title:"Theengs BLE mobile application",frontmatter:{title:"Theengs BLE mobile application"},regularPath:"/",relativePath:"README.md",key:"v-fc1d7a0c",path:"/",headers:[{level:2,title:"🌟 Local Smart Sensor Integration 🌟",slug:"🌟-local-smart-sensor-integration-🌟"},{level:2,title:"🔥 Elevate Your Grilling Game",slug:"🔥-elevate-your-grilling-game"},{level:2,title:"🔒Respecting Your Privacy",slug:"🔒respecting-your-privacy"},{level:2,title:"🏡 Take control with Smart Home Integration",slug:"🏡-take-control-with-smart-home-integration"},{level:2,title:"📲 Choose Your Platform and Download Now",slug:"📲-choose-your-platform-and-download-now"},{level:3,title:"Features comparison between Operating Systems",slug:"features-comparison-between-operating-systems"},{level:3,title:"Third party projects used by Theengs app",slug:"third-party-projects-used-by-theengs-app"},{level:3,title:"Acknowledgements",slug:"acknowledgements"}],lastUpdated:"1/18/2024, 5:34:53 PM",lastUpdatedTimestamp:1705599293e3},{title:"Adding decoders",frontmatter:{},regularPath:"/participate/adding-decoders.html",relativePath:"participate/adding-decoders.md",key:"v-6221a7be",path:"/participate/adding-decoders.html",lastUpdated:"1/18/2024, 5:34:53 PM",lastUpdatedTimestamp:1705599293e3},{title:"Install",frontmatter:{},regularPath:"/install/install.html",relativePath:"install/install.md",key:"v-62214341",path:"/install/install.html",headers:[{level:2,title:"Install from the store",slug:"install-from-the-store"}],lastUpdated:"1/18/2024, 5:34:53 PM",lastUpdatedTimestamp:1705599293e3},{title:"Build",frontmatter:{},regularPath:"/participate/build.html",relativePath:"participate/build.md",key:"v-96793b7e",path:"/participate/build.html",headers:[{level:2,title:"Dependencies",slug:"dependencies"},{level:2,title:"Cloning Theengs",slug:"cloning-theengs"},{level:2,title:"Building dependencies (with the contribs.py script)",slug:"building-dependencies-with-the-contribs-py-script"},{level:2,title:"Building Theengs",slug:"building-theengs"}],lastUpdated:"1/18/2024, 5:34:53 PM",lastUpdatedTimestamp:1705599293e3},{title:"Development contributions",frontmatter:{},regularPath:"/participate/development.html",relativePath:"participate/development.md",key:"v-2cf92021",path:"/participate/development.html",headers:[{level:2,title:"Developer Certificate Of Origin",slug:"developer-certificate-of-origin"}],lastUpdated:"1/18/2024, 5:34:53 PM",lastUpdatedTimestamp:1705599293e3},{title:"Supporting the project",frontmatter:{},regularPath:"/participate/support.html",relativePath:"participate/support.md",key:"v-200daea1",path:"/participate/support.html",lastUpdated:"1/18/2024, 5:34:53 PM",lastUpdatedTimestamp:1705599293e3},{title:"Devices supported",frontmatter:{pageClass:"table-generated-page"},regularPath:"/prerequisites/devices.html",relativePath:"prerequisites/devices.md",key:"v-22ae4d01",path:"/prerequisites/devices.html",lastUpdated:"1/18/2024, 5:34:53 PM",lastUpdatedTimestamp:1705599293e3},{title:"MQTT integration (option)",frontmatter:{},regularPath:"/prerequisites/controller.html",relativePath:"prerequisites/controller.md",key:"v-055e6e31",path:"/prerequisites/controller.html",headers:[{level:2,title:"Broker",slug:"broker"},{level:2,title:"Controller",slug:"controller"}],lastUpdated:"1/18/2024, 5:34:53 PM",lastUpdatedTimestamp:1705599293e3},{title:"Use",frontmatter:{},regularPath:"/use/use.html",relativePath:"use/use.md",key:"v-a56a917e",path:"/use/use.html",headers:[{level:2,title:"Features comparison between Operating Systems",slug:"features-comparison-between-operating-systems"},{level:2,title:"Overview",slug:"overview"},{level:2,title:"Real time data",slug:"real-time-data"},{level:2,title:"Live BBQ monitoring",slug:"live-bbq-monitoring"},{level:3,title:"Introduction",slug:"introduction"},{level:3,title:"Compatible devices",slug:"compatible-devices"},{level:3,title:"Threshold settings",slug:"threshold-settings"},{level:3,title:"Live monitoring",slug:"live-monitoring"},{level:3,title:"Notifications",slug:"notifications"},{level:2,title:"MQTT integration",slug:"mqtt-integration"},{level:3,title:"iOS specificity",slug:"ios-specificity"},{level:3,title:"Home Assistant Auto Discovery",slug:"home-assistant-auto-discovery"},{level:2,title:"iOS permissions",slug:"ios-permissions"},{level:2,title:"Android permissions",slug:"android-permissions"},{level:3,title:"Android 8+",slug:"android-8"},{level:3,title:"Android 10+",slug:"android-10"}],lastUpdated:"1/18/2024, 5:34:53 PM",lastUpdatedTimestamp:1705599293e3},{title:"Privacy policy",frontmatter:{},regularPath:"/use/privacy.html",relativePath:"use/privacy.md",key:"v-dbe40a3e",path:"/use/privacy.html",lastUpdated:"1/18/2024, 5:34:53 PM",lastUpdatedTimestamp:1705599293e3}],themeConfig:{repo:"theengs/app",smoothScroll:!0,search:!1,docsDir:"docs",docsBranch:"development",lastUpdated:"Last Updated",editLinks:!0,nav:[{text:"Home",link:"https://www.theengs.io",target:"_self",rel:""},{text:"Use cases",items:[{text:"Smart Home",link:"https://www.theengs.io/usecases/smarthome.html",target:"_self",rel:""},{text:"IoT",link:"https://www.theengs.io/usecases/iot.html",target:"_self",rel:""},{text:"Research",link:"https://www.theengs.io/usecases/research.html",target:"_self",rel:""}]},{text:"Solutions",items:[{text:"Hardware",items:[{text:"Theengs Plug",link:"https://shop.theengs.io/products/theengs-plug-smart-plug-ble-gateway-and-energy-consumption",target:"_self",rel:""},{text:"Theengs Bridge",link:"https://shop.theengs.io/products/theengs-bridge-esp32-ble-mqtt-gateway-with-ethernet-and-external-antenna",target:"_self",rel:""}]},{text:"Software",items:[{text:"Mobile App",link:"https://app.theengs.io",target:"_self",rel:""},{text:"OpenMQTTGateway",link:"https://docs.openmqttgateway.com",target:"_self",rel:""},{text:"Gateway",link:"https://gateway.theengs.io",target:"_self",rel:""}]},{text:"Core",items:[{text:"Decoder",link:"https://decoder.theengs.io",target:"_self",rel:""},{text:"Web Parser",link:"https://parser.theengs.io",target:"_self",rel:""}]}]},{text:"Compatible devices",link:"https://decoder.theengs.io/devices/devices.html",target:"_self",rel:""},{text:"Community",link:"https://community.openmqttgateway.com",target:"_self",rel:""},{text:"Shop",link:"https://shop.theengs.io/",target:"_self",rel:""},{text:"Sponsor 🤍",link:"https://github.com/sponsors/theengs",target:"_self",rel:""}],sidebar:[["/","0 - What is it for 🏠"],{title:"1 - Prerequisites🧭",children:["prerequisites/devices","prerequisites/controller"]},["/install/install","2 - Install ✔️"],{title:"3 - Use ✈️",children:["use/use","use/privacy"]},{title:"4 - Participate 💻",children:["participate/adding-decoders","participate/build","participate/support","participate/development"]}]}};n(234);Yn.component("Badge",()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,307))),Yn.component("CodeBlock",()=>Promise.all([n.e(0),n.e(5)]).then(n.bind(null,295))),Yn.component("CodeGroup",()=>Promise.all([n.e(0),n.e(6)]).then(n.bind(null,296)));n(235);function Rs(t){const e=document.documentElement.getBoundingClientRect(),n=t.getBoundingClientRect();return{x:n.left-e.left,y:n.top-e.top}}n(236);var Is=[{},({Vue:t})=>{t.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},({Vue:t,router:e})=>{e.options.scrollBehavior=(e,n,r)=>{if(r)return window.scrollTo({top:r.y,behavior:"smooth"});if(e.hash){if(t.$vuepress.$get("disableScrollBehavior"))return!1;const n=document.querySelector(e.hash);return!!n&&window.scrollTo({top:Rs(n).y,behavior:"smooth"})}return window.scrollTo({top:0,behavior:"smooth"})}},{}],Ds=[];class Us extends class{constructor(){this.store=new Yn({data:{state:{}}})}$get(t){return this.store.state[t]}$set(t,e){Yn.set(this.store.state,t,e)}$emit(...t){this.store.$emit(...t)}$on(...t){this.store.$on(...t)}}{}Object.assign(Us.prototype,{getPageAsyncComponent:ss,getLayoutAsyncComponent:cs,getAsyncComponent:us,getVueComponent:ls});var Ns={install(t){const e=new Us;t.$vuepress=e,t.prototype.$vuepress=e}};function Bs(t,e){const n=e.toLowerCase();return t.options.routes.some(t=>t.path.toLowerCase()===n)}var Fs={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(t){const e=this.pageKey||this.$parent.$page.key;return ps("pageKey",e),Yn.component(e)||Yn.component(e,ss(e)),Yn.component(e)?t(e):t("")}},zs={functional:!0,props:{slotKey:String,required:!0},render:(t,{props:e,slots:n})=>t("div",{class:["content__"+e.slotKey]},n()[e.slotKey])},qs={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},Vs=(n(237),n(238),Object(Ps.a)(qs,(function(){var t=this._self._c;return t("span",[t("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[t("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),this._v(" "),t("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})]),this._v(" "),t("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),Hs={functional:!0,render(t,{parent:e,children:n}){if(e._isMounted)return n;e.$once("hook:mounted",()=>{e.$forceUpdate()})}};Yn.config.productionTip=!1,Yn.use(Ha),Yn.use(Ns),Yn.mixin(function(t,e,n=Yn){!function(t){t.locales&&Object.keys(t.locales).forEach(e=>{t.locales[e].path=e});Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);const r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((t,e)=>(e.startsWith("$")&&(t[e]=o[e].get),t),i),{computed:i}}(t=>class{setPage(t){this.__page=t}get $site(){return t}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:t={}}=this.$site;let e,n;for(const r in t)"/"===r?n=t[r]:0===this.$page.path.indexOf(r)&&(e=t[r]);return e||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:t}=this.$page.frontmatter;return"string"==typeof t&&t}get $title(){const t=this.$page,{metaTitle:e}=this.$page.frontmatter;if("string"==typeof e)return e;const n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const t=function(t){if(t){const e=t.filter(t=>"description"===t.name)[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(t,e){for(let n=0;nn||(t.hash?!Yn.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(t.hash)}:{x:0,y:0})});!function(t){t.beforeEach((e,n,r)=>{if(Bs(t,e.path))r();else if(/(\/|\.html)$/.test(e.path))if(/\/$/.test(e.path)){const n=e.path.replace(/\/$/,"")+".html";Bs(t,n)?r(n):r()}else r();else{const n=e.path+"/",o=e.path+".html";Bs(t,o)?r(o):Bs(t,n)?r(n):r()}})}(n);const r={};try{await Promise.all(Is.filter(t=>"function"==typeof t).map(e=>e({Vue:Yn,options:r,router:n,siteData:Ms,isServer:t})))}catch(t){console.error(t)}return{app:new Yn(Object.assign(r,{router:n,render:t=>t("div",{attrs:{id:"app"}},[t("RouterView",{ref:"layout"}),t("div",{class:"global-ui"},Ds.map(e=>t(e)))])})),router:n}}(!1).then(({app:t,router:e})=>{e.onReady(()=>{t.$mount("#app")})})}]); \ No newline at end of file diff --git a/index.html b/index.html index 39a8048..292697c 100644 --- a/index.html +++ b/index.html @@ -17,7 +17,7 @@ - + @@ -97,11 +97,11 @@ Sponsor 🤍 GitHub - (opens new window)

# Theengs BLE mobile application

# 🌟 Local Smart Sensor Integration 🌟

Theengs App seamlessly reads a wide array of Bluetooth Low Energy (BLE) sensors, gathering real-time data on environmental parameters such as temperature, humidity, moisture, etc. It displays these readings intuitively and enables integration with your Smart Home setup via MQTT. Compatible with platforms like Home Assistant, Theengs App is a vendor-agnostic reader of your sensors (opens new window).

Iot

# 🔥 Elevate Your Grilling Game

Theengs App now offers a dedicated live monitoring feature for BBQ enthusiasts. Track your cooking with a dynamic chart that displays temperature trends in real time. Set personalized thresholds for different cooking stages and receive instant notifications based on these criteria. Whether you prefer your meat rare, medium, or well-done, Theengs App ensures your grilling is done to perfection.

live bbq monitoring

# 🔒Respecting Your Privacy

With Theengs App, your data stays local by default. For more details, please refer to our privacy policy (opens new window).

# 🏡 Take control with Smart Home Integration

Theengs App syncs with platforms like Home Assistant via MQTT. Record sensor data on your preferred server - your home, your choice.

# Choose Your Platform and Download Now



Download on the App Store
Get it on Google Play

Note

The Theengs app reads data that is 'broadcasted' by devices, operating primarily in a passive mode without direct connections, except for Mi Flora and ThermoBeacon, where historical data is accessed through a connection. For all other devices, the app captures data as it is emitted by the sensors.

BBQ Live monitoring and notifications require the app to be active on the sensor screen.

# Features comparison between Operating Systems

OS Real time data BBQ monitoring MQTT integration Running in background Home Assistant Auto Discovery
iOS ☑️ ☑️ ☑️ ☑️
Android ☑️ ☑️ ☑️ ☑️ experimental ☑️

Theengs app can be used as a standalone solution or as a complementary solution to OpenMQTTGateway (opens new window) and/or Theengs gateway (opens new window) if you want a continuously running gateway.

# Third party projects used by Theengs app

App Store and Apple logo are registered trademarks of Apple Inc.

Google Play and the Google Play logo are trademarks of Google LLC.

Note

All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.

- + diff --git a/install/install.html b/install/install.html index d6e5e96..0fd48d9 100644 --- a/install/install.html +++ b/install/install.html @@ -17,7 +17,7 @@ - + @@ -97,7 +97,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Install

# Install from the store

  • You can install Theengs app from the Apple or Android store by looking for Theengs BLE, or click the links below:
Download on the App Store
Get it on Google Play

App Store and Apple logo are registered trademarks of Apple Inc.

Google Play and the Google Play logo are trademarks of Google LLC.

- + diff --git a/participate/adding-decoders.html b/participate/adding-decoders.html index 01fc929..ff11eff 100644 --- a/participate/adding-decoders.html +++ b/participate/adding-decoders.html @@ -17,7 +17,7 @@ - + @@ -97,7 +97,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Adding decoders

Adding your device protocol to Theengs enable to increase interoperability and to create new use cases with your device. You will find below some guidance to do that.

You can do a pull request directly to the Decoder Repository (opens new window) by leveraging the Theengs Decoder example (opens new window).

- + diff --git a/participate/build.html b/participate/build.html index 18a51ae..453fd3c 100644 --- a/participate/build.html +++ b/participate/build.html @@ -17,7 +17,7 @@ - + @@ -109,7 +109,7 @@
1
2
3
4
5

# Building Theengs

$ cd TheengsApp/
 $ qmake DEFINES+=QT_CONNECTIVITY_PATCHED
 $ make
-
1
2
3
- + diff --git a/participate/development.html b/participate/development.html index 1d91c22..904025a 100644 --- a/participate/development.html +++ b/participate/development.html @@ -17,7 +17,7 @@ - + @@ -122,11 +122,11 @@ personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

This Developer Certificate Of Origin (DCO) was adopted on June 22, 2022.

The text of this license is available under the Creative Commons Attribution-ShareAlike 3.0 Unported License (opens new window). It is based on the Linux Developer Certificate Of Origin (opens new window).

To accept the DCO it is required to put a x between [ ] on [ ] I accept the DCO in the PR template when submitting it. The [ ] is an opt-in box, so you have to manually accept it.

This Developer Certificate Of Origin (DCO) was adopted on June 22, 2022.

The text of this license is available under the Creative Commons Attribution-ShareAlike 3.0 Unported License (opens new window). It is based on the Linux Developer Certificate Of Origin (opens new window).

To accept the DCO it is required to put a x between [ ] on [ ] I accept the DCO in the PR template when submitting it. The [ ] is an opt-in box, so you have to manually accept it.

- + diff --git a/participate/support.html b/participate/support.html index ea6dd81..fc7e275 100644 --- a/participate/support.html +++ b/participate/support.html @@ -17,7 +17,7 @@ - + @@ -97,7 +97,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Supporting the project

If you like the project and/or used it please consider supporting it! It can be done in different ways:

- + diff --git a/prerequisites/controller.html b/prerequisites/controller.html index 0b372f8..15b4b99 100644 --- a/prerequisites/controller.html +++ b/prerequisites/controller.html @@ -17,7 +17,7 @@ - + @@ -99,7 +99,7 @@ GitHub (opens new window)

# MQTT integration (option)

# Broker

The broker will act as an intermediary between Theengs App and your controller, it can be seen as a centralized hub at the heart of your automation system. It carry on messages following a publish / subscribe mechanism.

All the events or commands could pass by the broker.

There are many choices of brokers, here are some of the most popular:

Note

MQTT broker should be installed on a local network or accessed through a VPN as Theengs app only support unencrypted connexion on port 1883 for now.

This wikipedia list (opens new window) gives you more details about the different choices you have. This github list (opens new window) seems to be the most exhaustive ones. -Here is also some ideas of criteria (opens new window) from HiveMQ.

Once your broker is installed it can be interesting to see the traffic passing to it and to publish data, so as to do that there are several tools available:

MQTT enables you to connect easily a controller so as to monitor, control and automate scenariOS.

# Controller

The following controllers (and many other software) are compatible with MQTT:

controllers

TheengsApp is independent from these projects, you have the liberty of choice among all the compatible software.

- + diff --git a/prerequisites/devices.html b/prerequisites/devices.html index 75cefe4..4c98409 100644 --- a/prerequisites/devices.html +++ b/prerequisites/devices.html @@ -17,7 +17,7 @@ - + @@ -97,7 +97,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Devices supported

Here is the list of supported devices by the app, more details in the Compatible Devices section of the top nav bar.

Model_Id Mobile App
ABTemp
ADHS
TD1in1
TD3in1
TD4in1
BSDOO
CGC1
CGD1
CGDK2
CGDN1
CGG1
CGH1
CGP1W
CGPR1
F525
H5055
H5072
H5074
H5075
H5106
H5101
H5102
H5174
H5177
HHCCJCY01HHCC
HHCCJCY10
HHCCPOT002
IBS-TH1
IBS-TH2
IBS-P01B
IBT_2X(S)
IBT_4X(S/C)
IBT_6X(S)
JQJCY01YM
K6P
K9
LYWSD02
LYWSD03MMC_ATC/PVVX
MJWSD05MMC_ATC/PVVX
LYWSDCGQ
MBXPRO
MHO/MMC-C401_ATC/PVVX
MokoBeacon
M1017
RDL52832
RuuviTag_RAWv1
RuuviTag_RAWv2
W120150X
W070160X
W110150X
THX1(W230150X)
SDLS
SE_MAG
SE_RHT
SE_TEMP
SE_TPROBE
SHT4X
SOLIS_6
T201
T301
WS02/WS08
TP357
TP358
TP359
TP393
TPMS
XMTZC01HM/XMTZC04HM
XMTZC02HM/XMTZC05HM
- + diff --git a/use/privacy.html b/use/privacy.html index 86b792d..3d1b29e 100644 --- a/use/privacy.html +++ b/use/privacy.html @@ -17,7 +17,7 @@ - + @@ -98,7 +98,7 @@ GitHub (opens new window)

# Privacy policy

This privacy policy governs your use of the software application Theengs. -This privacy policy was last updated on July 5, 2022. This privacy policy may change from time to time, for any reason. If you have any questions or concerns about this privacy policy, feel free to contact Theengs at any time (support@theengs.io).

What information does Theengs App obtain and how is it used?

Theengs App does not collect or transmit any personal information about you, such as your name, address, phone number or email address.

How do you handle location data?

Theengs App does not use or collect any data related to your geographic location.

Can users see their personal data?

Theengs App itself does not collect, transmit, or maintain user personal data.

Do you share personal information?

As no personal information is collected, transmitted, or maintained by Theengs App, we do not share personal information.

Do advertising companies collect data?

Theengs App does not collect, transmit, or maintain personal data, so no data is shared with advertising companies.

Do you use vendors or analytics providers?

No. Theengs App does not collect, transmit, or maintaining personal data, so no data is shared with vendors or analytics providers.

Do you comply with the Children's Online Privacy Protection Act (COPPA)?

Yes. We do not solicit nor gather any data from children under the age of 13. If a parent or guardian becomes aware that his or her child has provided us with information without their consent, he or she should contact us.

- + diff --git a/use/use.html b/use/use.html index 0b45edd..4d05892 100644 --- a/use/use.html +++ b/use/use.html @@ -17,7 +17,7 @@ - + @@ -112,7 +112,7 @@ Your browser does not support the video tag.

# iOS specificity

If you want to push data to an MQTT broker you will need to manually enter a MAC address for the sensor, this is done from the sensor page see below:

add-mac

# Home Assistant Auto Discovery

Theengs app can publish your sensor definition following Home Assistant MQTT convention, so as to do this you need to activate “Enable discovery” into your MQTT Options and follow the steps below:

location

The sensor definition will be publish when the app connect to the broker. You can retrigger the publication by deactivating and reactivating the MQTT integration from the application.

# iOS permissions

The application will ask you for permission to use Bluetooth. You can learn more on Apple website (opens new window).

# Android permissions

The Android operating system requires applications to ask for device location permission in order to scan for nearby Bluetooth Low Energy sensors. You would need to go into the app information (long press on the icon -> (i)) so as to configure the app permissions properly.

# Android 8+

  • Click on Permissions
  • Activate "your location"

location

You can now use the application. If you want to run the application in the background follow the process below:

  • Go back
  • Click on "Battery"
  • Click on "Power saving exclusions"
  • Activate the exclusion for Theengs

location

  • And finally go into the app settings and toggle "Enable background updates"

background

# Android 10+

# Running when displayed only

  • Click on Permissions
  • Click on Location permission
  • Select "Allow only while using the app", if you want the app to update sensors data only when the app is running at the front
  • Enable "Use precise location" if you have this option

# Running in the background (experimental)

If you want the app to retrieve data in the background you will need to do the following steps:

  • Click on "Permissions"
  • Click on "Location"
  • Select "Allow all the time" if you want to update the sensors data in the background
  • Enable "Use precise location" if you have this option

location

  • Go back
  • Click on "Nearby devices"
  • Click on "Allow"

nearby

  • Go back 2 times
  • Deactivate "Remove permissions if app is unused"

unused

  • Click on battery

battery

  • Select unrestricted

unrestricted

  • And finally go into the app settings and toggle "Enable background updates"

background

Some devices also require the GPS to be turned on while scanning for new sensors.

Note

Android has drastically reduced the capabilities of apps to run in the background, as a consequence the Update interval set into the app may not be followed by the operating system. -You may also have more regular results when the device is charging.

- +