node-red-contrib-power-saver 3.3.2 → 3.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/.firebase/hosting.ZG9jcy8udnVlcHJlc3MvZGlzdA.cache +94 -0
  2. package/.firebaserc +5 -0
  3. package/.github/workflows/firebase-hosting-merge.yml +20 -0
  4. package/.github/workflows/firebase-hosting-pull-request.yml +17 -0
  5. package/README.md +1 -1
  6. package/docs/.vuepress/components/BestSaveVerificator.vue +3 -3
  7. package/docs/.vuepress/config.js +15 -1
  8. package/docs/.vuepress/dist/404.html +23 -5
  9. package/docs/.vuepress/dist/assets/css/896.styles.21a80cb6.css +1 -0
  10. package/docs/.vuepress/dist/assets/css/styles.1c48cbd0.css +10 -0
  11. package/docs/.vuepress/dist/assets/img/heat-capacitor-temperatureVsPrice.6e74905b.png +0 -0
  12. package/docs/.vuepress/dist/assets/img/node-ps-strategy-heat-capacitor-cascade-control.2e75ed9e.png +0 -0
  13. package/docs/.vuepress/dist/assets/img/node-ps-strategy-heat-capacitor-simple-flow-example.29d9bf59.png +0 -0
  14. package/docs/.vuepress/dist/assets/img/oven-setpoint-calculation.5bda0eec.png +0 -0
  15. package/docs/.vuepress/dist/assets/img/overshoot-time.b3b5d70e.png +0 -0
  16. package/docs/.vuepress/dist/assets/js/229.5c5378fa.js +1 -0
  17. package/docs/.vuepress/dist/assets/js/331.872104cd.js +1 -0
  18. package/docs/.vuepress/dist/assets/js/405.f4edd94d.js +2 -0
  19. package/docs/.vuepress/dist/assets/js/{619.8ba1b1f6.js.LICENSE.txt → 405.f4edd94d.js.LICENSE.txt} +0 -0
  20. package/docs/.vuepress/dist/assets/js/490.1e639e05.js +1 -0
  21. package/docs/.vuepress/dist/assets/js/{491.17a98f38.js → 491.bd938119.js} +1 -1
  22. package/docs/.vuepress/dist/assets/js/555.d8963d84.js +1 -0
  23. package/docs/.vuepress/dist/assets/js/{811.6a3392d5.js → 811.5f659592.js} +0 -0
  24. package/docs/.vuepress/dist/assets/js/app.dfdee6f9.js +1 -0
  25. package/docs/.vuepress/dist/assets/js/runtime~app.f6ac32d7.js +1 -0
  26. package/docs/.vuepress/dist/assets/js/v-0607240a.0193a377.js +1 -0
  27. package/docs/.vuepress/dist/assets/js/v-08683c60.52e94cb6.js +1 -0
  28. package/docs/.vuepress/dist/assets/js/v-0aca7ba6.cac5d4b9.js +1 -0
  29. package/docs/.vuepress/dist/assets/js/v-0b5e3c8c.18561f6e.js +1 -0
  30. package/docs/.vuepress/dist/assets/js/v-1ad821fa.6697a349.js +1 -0
  31. package/docs/.vuepress/dist/assets/js/v-1b3a0ab8.c6c4e19b.js +1 -0
  32. package/docs/.vuepress/dist/assets/js/v-1e2b191e.07b8ab21.js +1 -0
  33. package/docs/.vuepress/dist/assets/js/v-29504124.00be7399.js +1 -0
  34. package/docs/.vuepress/dist/assets/js/v-30acb564.28af12af.js +1 -0
  35. package/docs/.vuepress/dist/assets/js/{v-3706649a.d7f73384.js → v-3706649a.c76d575b.js} +1 -1
  36. package/docs/.vuepress/dist/assets/js/v-4637f9e4.d334c29a.js +1 -0
  37. package/docs/.vuepress/dist/assets/js/v-4c28314d.8cbb0f9d.js +1 -0
  38. package/docs/.vuepress/dist/assets/js/v-510ed0d4.c04bc2e4.js +1 -0
  39. package/docs/.vuepress/dist/assets/js/{v-5954bcb2.937005d0.js → v-5954bcb2.dff3fc67.js} +1 -1
  40. package/docs/.vuepress/dist/assets/js/v-5db8da3a.e5e6d7a6.js +1 -0
  41. package/docs/.vuepress/dist/assets/js/v-61f728ca.81968036.js +1 -0
  42. package/docs/.vuepress/dist/assets/js/v-677dfaed.c159b0f4.js +1 -0
  43. package/docs/.vuepress/dist/assets/js/v-7446a652.8fc2c591.js +1 -0
  44. package/docs/.vuepress/dist/assets/js/v-7c87f26e.8ed52391.js +1 -0
  45. package/docs/.vuepress/dist/assets/js/v-84304104.f3f07ed3.js +1 -0
  46. package/docs/.vuepress/dist/assets/js/{v-8daa1a0e.c63afc2b.js → v-8daa1a0e.ed84ca09.js} +1 -1
  47. package/docs/.vuepress/dist/assets/js/{v-b4a42144.733e4e7c.js → v-b4a42144.9a2a0c9f.js} +1 -1
  48. package/docs/.vuepress/dist/assets/js/v-e8c55052.b7d52fc6.js +1 -0
  49. package/docs/.vuepress/dist/assets/js/v-fffb8e28.d09ab959.js +1 -0
  50. package/docs/.vuepress/dist/changelog/index.html +23 -5
  51. package/docs/.vuepress/dist/contribute/index.html +23 -5
  52. package/docs/.vuepress/dist/examples/example-cascade-temperature-control.html +304 -0
  53. package/docs/.vuepress/dist/examples/example-heat-capacitor.html +247 -0
  54. package/docs/.vuepress/dist/examples/example-next-schedule-entity.html +27 -9
  55. package/docs/.vuepress/dist/examples/example-nordpool-current-state.html +24 -6
  56. package/docs/.vuepress/dist/examples/example-nordpool-events-state.html +24 -6
  57. package/docs/.vuepress/dist/examples/example-tibber-mqtt.html +24 -6
  58. package/docs/.vuepress/dist/examples/index.html +23 -5
  59. package/docs/.vuepress/dist/faq/best-save-viewer.html +23 -5
  60. package/docs/.vuepress/dist/faq/index.html +23 -5
  61. package/docs/.vuepress/dist/guide/index.html +24 -6
  62. package/docs/.vuepress/dist/index.html +23 -5
  63. package/docs/.vuepress/dist/nodes/index.html +23 -5
  64. package/docs/.vuepress/dist/nodes/old-power-saver-doc.html +25 -7
  65. package/docs/.vuepress/dist/nodes/power-saver.html +23 -5
  66. package/docs/.vuepress/dist/nodes/ps-elvia-add-tariff.html +23 -5
  67. package/docs/.vuepress/dist/nodes/ps-general-add-tariff.html +23 -5
  68. package/docs/.vuepress/dist/nodes/ps-receive-price.html +26 -8
  69. package/docs/.vuepress/dist/nodes/ps-strategy-best-save.html +32 -9
  70. package/docs/.vuepress/dist/nodes/ps-strategy-heat-capacitor.html +260 -0
  71. package/docs/.vuepress/dist/nodes/ps-strategy-lowest-price.html +30 -7
  72. package/docs/.vuepress/dist/nodes/strategy-input.html +24 -6
  73. package/docs/README.md +1 -1
  74. package/docs/changelog/README.md +14 -0
  75. package/docs/contribute/README.md +8 -0
  76. package/docs/examples/README.md +8 -2
  77. package/docs/examples/example-cascade-temperature-control.md +346 -0
  78. package/docs/examples/example-heat-capacitor.md +271 -0
  79. package/docs/images/heat-capacitor-temperatureVsPrice.png +0 -0
  80. package/docs/images/node-ps-strategy-heat-capacitor-cascade-control.png +0 -0
  81. package/docs/images/node-ps-strategy-heat-capacitor-simple-flow-example.png +0 -0
  82. package/docs/images/node-ps-strategy-heat-capacitor.png +0 -0
  83. package/docs/images/oven-setpoint-calculation.png +0 -0
  84. package/docs/images/overshoot-time.png +0 -0
  85. package/docs/images/temperature-manipulation-config.png +0 -0
  86. package/docs/nodes/README.md +7 -1
  87. package/docs/nodes/ps-strategy-heat-capacitor.md +346 -0
  88. package/examples/add-general-tariff.json +103 -0
  89. package/examples/best-save-for-water-heater.json +140 -0
  90. package/examples/elvia-add-tariff.json +99 -0
  91. package/examples/elvia-get-tariff-types.json +58 -0
  92. package/examples/elvia-get-tariff.json +60 -0
  93. package/examples/heat-capacitor-for-room-heating.json +186 -0
  94. package/examples/lowest-price-for-heating-cables.json +159 -0
  95. package/firebase.json +6 -0
  96. package/package.json +17 -9
  97. package/public/404.html +33 -0
  98. package/public/index.html +89 -0
  99. package/src/elvia/elvia-tariff.js +2 -1
  100. package/src/handle-input.js +6 -3
  101. package/src/strategy-heat-capacitor-functions.js +246 -0
  102. package/src/strategy-heat-capacitor.html +85 -0
  103. package/src/strategy-heat-capacitor.js +125 -0
  104. package/test/data/converted-prices.json +1 -1
  105. package/test/data/multiple-trades.json +53 -0
  106. package/test/data/tibber-decreasing-24h.json +101 -0
  107. package/test/data/tibber-decreasing2-24h.json +101 -0
  108. package/test/strategy-heat-capacitor-node.test.js +183 -0
  109. package/test/strategy-heat-capacitor.test.js +103 -0
  110. package/test/strategy-lowest-price-functions.test.js +1 -1
  111. package/test/utils.test.js +0 -2
  112. package/docs/.vuepress/dist/.nojekyll +0 -0
  113. package/docs/.vuepress/dist/assets/css/563.styles.99f4a8aa.css +0 -1
  114. package/docs/.vuepress/dist/assets/css/styles.031dcf27.css +0 -9
  115. package/docs/.vuepress/dist/assets/js/262.cf2c57d2.js +0 -1
  116. package/docs/.vuepress/dist/assets/js/293.08ea5200.js +0 -1
  117. package/docs/.vuepress/dist/assets/js/331.15ee3c51.js +0 -1
  118. package/docs/.vuepress/dist/assets/js/619.8ba1b1f6.js +0 -2
  119. package/docs/.vuepress/dist/assets/js/app.b705176c.js +0 -1
  120. package/docs/.vuepress/dist/assets/js/runtime~app.47f4f812.js +0 -1
  121. package/docs/.vuepress/dist/assets/js/v-0607240a.a57c2199.js +0 -1
  122. package/docs/.vuepress/dist/assets/js/v-08683c60.ccafdcab.js +0 -1
  123. package/docs/.vuepress/dist/assets/js/v-0aca7ba6.25903946.js +0 -1
  124. package/docs/.vuepress/dist/assets/js/v-0b5e3c8c.a6a015b4.js +0 -1
  125. package/docs/.vuepress/dist/assets/js/v-1ad821fa.5978386f.js +0 -1
  126. package/docs/.vuepress/dist/assets/js/v-1e2b191e.88dc5555.js +0 -1
  127. package/docs/.vuepress/dist/assets/js/v-29504124.4aca27d5.js +0 -1
  128. package/docs/.vuepress/dist/assets/js/v-30acb564.529a3c16.js +0 -1
  129. package/docs/.vuepress/dist/assets/js/v-4637f9e4.703b1d96.js +0 -1
  130. package/docs/.vuepress/dist/assets/js/v-510ed0d4.7b142a81.js +0 -1
  131. package/docs/.vuepress/dist/assets/js/v-5db8da3a.3de3588d.js +0 -1
  132. package/docs/.vuepress/dist/assets/js/v-61f728ca.21d432fe.js +0 -1
  133. package/docs/.vuepress/dist/assets/js/v-677dfaed.44a653b9.js +0 -1
  134. package/docs/.vuepress/dist/assets/js/v-7446a652.74b21d0b.js +0 -1
  135. package/docs/.vuepress/dist/assets/js/v-7c87f26e.ee5be992.js +0 -1
  136. package/docs/.vuepress/dist/assets/js/v-e8c55052.ab0a79ec.js +0 -1
  137. package/docs/.vuepress/dist/assets/js/v-fffb8e28.525be02a.js +0 -1
@@ -0,0 +1,94 @@
1
+ 404.html,1645811434412,addf965cf1261688558a31883296f39b2f4f4deef29686ea625d7dbc60b24aab
2
+ euro.png,1645811429838,e6a1d246a05e447333de6e1099b1c3a5ae8ad050b2389e51ff53289e4dc1b8e4
3
+ index.html,1645811433976,06fa65afbcca0c52835a4f44f0e194f510d10896bc967048ad113d27c16e32c7
4
+ assets/img/back-to-top.8b37f773.svg,1645811429403,c6af5f9d1f495b4bb193a957cf5cbddd69b3df8346fb0ad8421ff29e872e660b
5
+ assets/css/835.styles.c5afb22b.css,1645811429836,54c8fc773468d5ab5cacbd55f0535bf1cacbd57cb0ab43cde2a6bc4ea405b80e
6
+ assets/css/styles.1c48cbd0.css,1645811429835,d38c8f7fb1e27516179de03c640af9e818968bc17ae1de343bbad594c8f070e7
7
+ assets/img/next-schedule-flow.413ad62b.png,1645811429478,dc39e108b2e1c231df8172b375f73bbdce6dba5e7b19b16524c81a15a1ce1036
8
+ assets/img/next-schedule-sensor.eb896bdd.png,1645811429478,3017cdc42afaeeccd07240a18729b59264175c8ef7f17d4bf89ecc12dcfd1723
9
+ assets/img/node-power-saver.51ff2e5d.png,1645811429572,bc03e13706d001771796195e67e237873c2f2b3fd014e7f8003d80e3c5e09ea9
10
+ assets/img/node-ps-strategy-best-save.392292d5.png,1645811429572,d9e48500b4df8cdcb2696faeaea1c5e9f462299a07b0231c1a2e4e8d4d88f7bb
11
+ assets/img/node-ps-elvia-add-tariff.94ea2b09.png,1645811429572,82f83794ebee8920524f2c8fb0123014cf8ef0182600c34ca2c170b2adefd970
12
+ assets/img/node-ps-strategy-heat-capacitor-simple-flow-example.29d9bf59.png,1645811429404,31d4e2481f50bf3d26b77e1f53899bb10ee214a8c9675114738a4f8fa2c361d2
13
+ assets/img/node-ps-receive-price.76eaa418.png,1645811429572,9d8f62d2b5bee458952cd895a143a2c757ba5ae6cd7e13afd3103b7872619571
14
+ assets/img/node-ps-general-add-tariff.a3cf6f06.png,1645811429572,0e6ef51de245944acad043cbf6b4c1a9f3762cb0d59c721afd67b8a9fa93dc90
15
+ assets/js/229.5c5378fa.js,1645811429830,a649744039e357eab133a3e44074efc5665b3a4383c379fb0cc55f1df088fec2
16
+ assets/img/node-ps-strategy-lowest-price.3a4ad347.png,1645811429573,dd4e368f5c81e87f64770a5d80b4c026d92fc89a72589f2d8b163e6a251c3662
17
+ assets/js/331.872104cd.js,1645811429830,ac8099e339f2179b45098df3f3501bf9c9cbecc49d93e89c17fa1b607db590a9
18
+ assets/js/491.bd938119.js,1645811429830,539cd56bfe8011f139c577cd90fc6673eb8e50822b8d9a807525f7a334249cbe
19
+ assets/js/555.d8963d84.js,1645811429830,a354ff7311608a93d08a80fe8e7aff411f4686e294327513d4452d17ee3a0245
20
+ assets/js/app.dfdee6f9.js,1645811429403,ccaf87278783d889e683b34df5ddf58f79140e6c8af3f199c5faf86ae7bbabe9
21
+ assets/js/v-0607240a.0193a377.js,1645811429404,e9df5a61d68a4d048016061b2e91795ab26b42e07076b5a8fbba6a96691316a5
22
+ assets/js/runtime~app.f6ac32d7.js,1645811429403,3c96eeef778202b135996b788cc7ec43a5b81d3771351c9240d68b7bb80019e9
23
+ assets/js/811.5f659592.js,1645811429830,4f6777db824062a896831c035032022dcd45d93f634d5afb37e610442f146eef
24
+ assets/css/896.styles.21a80cb6.css,1645811429836,bf775e319685fb2df3ca08ddfecb2a6c0670886b5e9829fa0df3b7723b1d9610
25
+ logo.png,1645811429838,b0d240bb816f26ca3207f1c99f0db945e48b75928ce80b4b3500035a2627583c
26
+ assets/img/elvia-config-no-config.b4bb972c.png,1645811429765,b6d893cf4f56713f3004aff49f28339645ec68e885ec30503740ff071050b643
27
+ assets/img/elvia-config-no-tariff.3f89aba8.png,1645811429765,00eee1c51ab3b19e3db8b139071d7596f61601b4295edcc69ad503bcea026d2f
28
+ assets/img/elvia-config-subscription-key.8be8ab8a.png,1645811429766,1e8f457772d4941c9f4a245e84e0cd89f8d0387b11464a3eab3533ed50780e9b
29
+ assets/img/next-schedule-entity.4406856a.png,1645811429404,d6f36c55bef22fdb27e7a793144016b9b5688fdb7c0f358f446bec4871cb59f1
30
+ assets/js/405.f4edd94d.js.LICENSE.txt,1645811429852,adc4d946db037aab89d8d540dc5ba92ec41212a9777b284c2189f3e90729031c
31
+ assets/img/node-ps-strategy-heat-capacitor-cascade-control.2e75ed9e.png,1645811429404,277fec95ceb1f4a608c512a361778e21da49cfa48f630f43ced60abf7b586c00
32
+ assets/js/v-08683c60.52e94cb6.js,1645811429765,8fd25e78ba78bf62dd075a073b9086ea02abcc6dc868432651192b73d76ef356
33
+ assets/img/oven-setpoint-calculation.5bda0eec.png,1645811429404,d59c196f156dbb561106368065b08b9fa16b0555e0683d3d9c6ef2a123b6b787
34
+ assets/img/add-tariff-flow.eb700d4f.png,1645811429766,a27790951f13dec75da0da079edeb58378aaa6f74c1d708a0c1b5aea846ae808
35
+ assets/img/lowest-price-config.6d66a8c2.png,1645811429817,2e8328c5ccb07158c1c2edb5a5a1b4746f7a773b3a380d88fff2f9da279ffed2
36
+ assets/img/heat-capacitor-temperatureVsPrice.6e74905b.png,1645811429404,4ec0ee90f5f8c110e17a07f1c6572c1d6ef31a318e3cc58125680aae6ac39a30
37
+ assets/js/490.1e639e05.js,1645811429830,006ac095ab16f790b2c0dd877e05da95dfe6781a5fe3b97f0aa20ba1cec548a4
38
+ assets/img/overshoot-time.b3b5d70e.png,1645811429404,c855af9a434f7d56928446dba5466f7fbf62958acf6f53d1230db16d0c40712f
39
+ assets/img/best-save-config.79a2f39a.png,1645811429817,0e854e0ad8521268786a86789707053d08f60f7810bf9bbb1c6cbfc9485c657d
40
+ assets/img/power-saver-nordpool-events-state.8c392507.png,1645811429479,d8cb79a6ded596050e5ba9a81c21d2277a76ac6c43f388d664aae9559f420780
41
+ assets/img/elvia-flow.bae2a4d5.png,1645811429766,a3bbae90b0a528c8975ed92cad0d3cf354aaf6b2df8a8ec8c2f92d55d21e97df
42
+ assets/img/elvia-config-select-tariff.0f73fd56.png,1645811429766,db2bce470db8a714b87e3d07b915d225395b49ae2bc99a271f37844d3356e22f
43
+ assets/img/migrate-power-saver.aae13f9d.png,1645811429765,0f2c1fd39fcea757d41d48b07d2d02832c14d289ee63ed7175d5fddc8f62bcf6
44
+ assets/img/example-flow-2.b653b58d.png,1645811429572,44970df39fb4d1a30778770f91211ef95f13cf14a2137324b955aadff47ab17e
45
+ assets/img/power-saver-nordpool-current-state.bf14afde.png,1645811429478,51824f9b48565e1f6f1f1ab8472bce7a2f5045f4bb9312989a10819c1502945c
46
+ assets/js/v-0aca7ba6.cac5d4b9.js,1645811429404,fd917a61330af443c75121fe1b5e75c4ceaa301b41aa1d3f9b732433d6a51f08
47
+ assets/js/v-1ad821fa.6697a349.js,1645811429648,5e234e0b6d24a8d5916ad639ba74e8eeed633189cecd2d94378d5a2ad1a44afe
48
+ assets/js/v-0b5e3c8c.18561f6e.js,1645811429766,0524b7021c8108c02443e57036de24a8a5813b411680cb8e87bc58b61f51ad9a
49
+ assets/js/v-1e2b191e.07b8ab21.js,1645811429766,f5a6522cd598f7cb571516449564ae6a9b7b462631c8418a010a28b4a2c3f629
50
+ assets/js/v-1b3a0ab8.c6c4e19b.js,1645811429404,529c684f973444575730eeec02703784e32c2904cf74674211a5c163b2fe1e10
51
+ assets/js/v-29504124.00be7399.js,1645811429479,c0373166d28da75d579079f694caa8698c63db39ab793bd653aa2b5266c93546
52
+ assets/js/v-3706649a.c76d575b.js,1645811429830,c1af291965ecc14041d9aa38724848f00d33561d315b43b2bf6e48d200b0e2ff
53
+ assets/js/v-30acb564.28af12af.js,1645811429478,969bd26194d7167ee1d2cd806bc661b57de72b78c20556ef627a182b5b06a6b7
54
+ assets/img/migrate-best-save.f73420f6.png,1645811429572,7dbcde0717bc45d78d3d1e77282f9750aba2a49f3364604a7e29911fbfc490eb
55
+ assets/js/v-510ed0d4.c04bc2e4.js,1645811429403,01aa6cacf6019a9a13c26aab563249af4af8d624cf20637509d124e0432da722
56
+ assets/js/v-5954bcb2.dff3fc67.js,1645811429830,5adc728d7d199c2c278d9849b9d854eccd6153f9fbbc0215038b1ca39ca4ba74
57
+ assets/js/v-4637f9e4.d334c29a.js,1645811429817,66b8a40eefc05a5fdf776b56cdc57ef82764007fc3e56274109ab268e26f2ae2
58
+ assets/js/v-677dfaed.c159b0f4.js,1645811429766,986de6433a55b6b829ab497b789b3990bec8be3d1eeb65a1ec07015729204fd9
59
+ assets/js/v-5db8da3a.e5e6d7a6.js,1645811429479,2584b0b9bb3cdd4567c6d4f9d98caa717f832f12b9060f44b248038dd9280429
60
+ assets/js/v-7c87f26e.8ed52391.js,1645811429479,0fba319bf35d8c3c07bf9b0c31a75a6b304af1e732ef08aab71a759af099c3d0
61
+ assets/js/v-61f728ca.81968036.js,1645811429478,79e92e6e9b476275dd1472045777f9326be5f3c97850fe3a9be6bddc808da23e
62
+ assets/js/v-8daa1a0e.ed84ca09.js,1645811429403,84a5a30cb2e59ada56691b1df6fe69be6d786cec8b75e14801825519af70dcb1
63
+ assets/js/v-7446a652.8fc2c591.js,1645811429479,d1615da751dd371cb5bed434cbef5b6fbff6d7a8cf6d4c00c6dff6409a85d8b8
64
+ assets/js/v-b4a42144.9a2a0c9f.js,1645811429573,d3142bccc90c0404147ea31a45103ced4b2eda0117492868a433cd9b408493c0
65
+ assets/js/v-84304104.f3f07ed3.js,1645811429404,7439928b4c8e094cb03a4c2a58c72391981867578fd39665604d91d76c8699ef
66
+ assets/js/v-e8c55052.b7d52fc6.js,1645811429572,fc09eb3b7463332fc69dd5ab437216f91948ae8f91f6c62b0f47e3f3d82da9cc
67
+ assets/js/v-fffb8e28.d09ab959.js,1645811429568,979fe0e5f53f986da5ef18761193d3a0be919dcc5378c5df4fd68ee6883f126a
68
+ changelog/index.html,1645811434019,f94505f81d65a9359ad42b61d6a8967430655f72af37b1fea126f08f249ad968
69
+ contribute/index.html,1645811434125,369de0bd83f5df6d05ffef6063228093570480c1ba7b375658235cc1c4c530dd
70
+ examples/example-next-schedule-entity.html,1645811434083,5a0924250f7a0558e6faf85a37226e6dc999d882b0e141b2227a90618cdbfb65
71
+ assets/img/copy-payload-best-save.b9192985.png,1645811429480,7b12f6464e3fc8a83222e1e55d0ecdc81c9fdf5356eadd173c98313a45f44f75
72
+ examples/example-heat-capacitor.html,1645811434072,8fd6265569df05dd7ec38a2a20a011e0f2afd6e9b2adb6a219901a0f62a7d0c8
73
+ examples/example-nordpool-current-state.html,1645811434092,271c108f7953fff08d601564d028721e49f9164ba8414b2d19c7a91ef383e1d0
74
+ examples/example-nordpool-events-state.html,1645811434102,a4735ce22fa2a7300366027b1aeb9e9fc670ff92bbc0bd7181b93927e6395360
75
+ examples/example-tibber-mqtt.html,1645811434115,195ccc9339fd616fe3e0f279cf45e40477686b3358ccde46df4fd6fc7356167f
76
+ examples/index.html,1645811434044,e220d9feb2d2bb3cf8efcb2875cd5b51d47c7a26487ce99faf3c9bcf375e3166
77
+ faq/best-save-viewer.html,1645811434172,fb7bbed04ccbfeb1e22ba05e3e2fbdcfc3d68532fb6823ccbcfe2d1ce9027c7a
78
+ assets/img/power-saver-tibber-mqtt.16891dd2.png,1645811429479,24f2cad039c83c9031aa7f9d3decadc107b7cc257676e0e466078b2089632fcf
79
+ assets/img/example-flow-1.3ff3e23f.png,1645811429572,9602bdee071fd442bc5c466600970ad5b639a8e15c09206c8f824840979b6122
80
+ assets/js/405.f4edd94d.js,1645811429836,b1ab4766249e1c371d6fad1120f70a29eddafedbec8fcd4ced179e1e3e1ea3bb
81
+ guide/index.html,1645811434203,344d07b979e6f673cb2c58ceb468fe90be6709d341080278b046da2ee7040f9d
82
+ faq/index.html,1645811434142,5048881bfe07b5c4e4a5bc42d7d789c15885ef323384eedba512d4acda810dfc
83
+ examples/example-cascade-temperature-control.html,1645811434059,006d0d0c6c62c571fe425e6b0345ba6d5df26680cbb12375847c20a67d51c7ef
84
+ nodes/index.html,1645811434238,7fef763cdef1ac91215dd691b71f95bbd2baaacdba99d245dd54db71c241873b
85
+ nodes/old-power-saver-doc.html,1645811434257,277ff09f7750f9a5089d6d3a034f6b9532271b9458ef5f83c17e9ffe00450b29
86
+ nodes/power-saver.html,1645811434272,00e7695c6d5ac103b48037e07164b9e74064b4dc64dfef916ffd23eecdb68dde
87
+ nodes/ps-elvia-add-tariff.html,1645811434283,d43458926d9a30fdb9d6e5bbf8cf4034a4832a987c66e7b4c3b5a09ea94f1a20
88
+ nodes/ps-receive-price.html,1645811434318,41fbfd1b9daba9c39a32f19f7ca22c273231332629bf56b6e924a70449867951
89
+ assets/js/v-4c28314d.8cbb0f9d.js,1645811429817,b24bc2e669f9e2a79198b8a7680c65d63f2e3db962e8b6719ea13a38ec5975e1
90
+ nodes/ps-general-add-tariff.html,1645811434304,d83d9995fe8154bc04d618a6239510754cbf862920c2f8edbb29280bb2668635
91
+ nodes/ps-strategy-lowest-price.html,1645811434400,d3064b70fa5d28d14e282a893544f586c63dd88b606c89f0391d004f81d06b52
92
+ nodes/ps-strategy-best-save.html,1645811434338,d9fa9da54318ed33671177b04f4416a23e329e1d3306ea68a71cc9647999d54c
93
+ nodes/strategy-input.html,1645811434408,a62cb80a8a2ddf419b8a778f25e77ce8c982337de0405341f561848aac76def1
94
+ nodes/ps-strategy-heat-capacitor.html,1645811434379,e92a1e16315898e798bd84cd54ef9221bb39cfcb6c35c37f25ad3d1c379f47d9
package/.firebaserc ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "projects": {
3
+ "default": "powersaver-c98d0"
4
+ }
5
+ }
@@ -0,0 +1,20 @@
1
+ # This file was auto-generated by the Firebase CLI
2
+ # https://github.com/firebase/firebase-tools
3
+
4
+ name: Deploy to Firebase Hosting on merge
5
+ 'on':
6
+ push:
7
+ branches:
8
+ - gh-pages
9
+ jobs:
10
+ build_and_deploy:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - run: 'npm run docs:build'
15
+ - uses: FirebaseExtended/action-hosting-deploy@v0
16
+ with:
17
+ repoToken: '${{ secrets.GITHUB_TOKEN }}'
18
+ firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_POWERSAVER_C98D0 }}'
19
+ channelId: live
20
+ projectId: powersaver-c98d0
@@ -0,0 +1,17 @@
1
+ # This file was auto-generated by the Firebase CLI
2
+ # https://github.com/firebase/firebase-tools
3
+
4
+ name: Deploy to Firebase Hosting on PR
5
+ 'on': pull_request
6
+ jobs:
7
+ build_and_preview:
8
+ if: '${{ github.event.pull_request.head.repo.full_name == github.repository }}'
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v2
12
+ - run: 'npm run docs:build'
13
+ - uses: FirebaseExtended/action-hosting-deploy@v0
14
+ with:
15
+ repoToken: '${{ secrets.GITHUB_TOKEN }}'
16
+ firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_POWERSAVER_C98D0 }}'
17
+ projectId: powersaver-c98d0
package/README.md CHANGED
@@ -4,4 +4,4 @@ A Node-RED node to save money when power prices are changing by the hour.
4
4
 
5
5
  ![Logo](docs/.vuepress/public/logo.png)
6
6
 
7
- ## Please read more in the [documentation](http://power-saver.smoky.no/).
7
+ ## Please read more in the [documentation](https://powersaver.no/).
@@ -105,10 +105,10 @@
105
105
  </template>
106
106
 
107
107
  <script setup>
108
- import { computed, onMounted, reactive, ref, watch } from "vue";
108
+ import { computed, reactive, ref, watch } from "vue";
109
109
 
110
- const { roundPrice } = require("../../../src/utils");
111
- const { DateTime } = require("luxon");
110
+ const { roundPrice } = import("../../../src/utils");
111
+ const { DateTime } = import("luxon");
112
112
 
113
113
  const message = ref("");
114
114
  const showNegative = ref(false);
@@ -1,4 +1,6 @@
1
1
  const { path } = require("@vuepress/utils");
2
+ const vue = require("@vitejs/plugin-vue");
3
+
2
4
  module.exports = {
3
5
  lang: "en-US",
4
6
  title: "Power Saver",
@@ -45,7 +47,11 @@ module.exports = {
45
47
  { text: "Power Saver", link: "/nodes/power-saver.md" },
46
48
  {
47
49
  text: "Strategy nodes",
48
- children: ["/nodes/ps-strategy-best-save.md", "/nodes/ps-strategy-lowest-price.md"],
50
+ children: [
51
+ "/nodes/ps-strategy-best-save.md",
52
+ "/nodes/ps-strategy-lowest-price.md",
53
+ { text: "ps-strategy-heat-capacitor", link: "/nodes/ps-strategy-heat-capacitor.md" },
54
+ ],
49
55
  },
50
56
  { text: "Utility nodes", children: ["/nodes/ps-receive-price.md"] },
51
57
  {
@@ -66,6 +72,8 @@ module.exports = {
66
72
  "/examples/example-nordpool-current-state.md",
67
73
  "/examples/example-nordpool-events-state.md",
68
74
  "/examples/example-tibber-mqtt.md",
75
+ "/examples/example-heat-capacitor.md",
76
+ "/examples/example-cascade-temperature-control.md",
69
77
  ],
70
78
  },
71
79
  ],
@@ -96,4 +104,10 @@ module.exports = {
96
104
  },
97
105
  ],
98
106
  ],
107
+ bundler: "@vuepress/bundler-webpack",
108
+ bundlerConfig: {
109
+ viteOptions: {
110
+ plugins: [vue()],
111
+ },
112
+ },
99
113
  };
@@ -3,13 +3,31 @@
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width,initial-scale=1">
6
- <meta name="generator" content="VuePress 2.0.0-beta.27">
6
+ <meta name="generator" content="VuePress 2.0.0-beta.35">
7
+ <style>
8
+ :root {
9
+ --c-bg: #fff;
10
+ }
11
+ html.dark {
12
+ --c-bg: #22272e;
13
+ }
14
+ html, body {
15
+ background-color: var(--c-bg);
16
+ }
17
+ </style>
18
+ <script>
19
+ const userMode = localStorage.getItem('vuepress-color-scheme');
20
+ const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
21
+ if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
22
+ document.documentElement.classList.toggle('dark', true);
23
+ }
24
+ </script>
7
25
  <link rel="shortcut icon" type="image/x-icon" href="euro.png"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9857859182772006" crossorigin="anonymous"></script><title>Power Saver</title><meta name="description" content="A Node-RED note to save money on hourly changing power prices">
8
- <link rel="preload" href="/assets/js/runtime~app.47f4f812.js" as="script"><link rel="preload" href="/assets/css/styles.031dcf27.css" as="style"><link rel="preload" href="/assets/js/619.8ba1b1f6.js" as="script"><link rel="preload" href="/assets/js/app.b705176c.js" as="script">
9
- <link rel="stylesheet" href="/assets/css/styles.031dcf27.css">
26
+ <link rel="preload" href="/assets/js/runtime~app.f6ac32d7.js" as="script"><link rel="preload" href="/assets/css/styles.1c48cbd0.css" as="style"><link rel="preload" href="/assets/js/405.f4edd94d.js" as="script"><link rel="preload" href="/assets/js/app.dfdee6f9.js" as="script">
27
+ <link rel="stylesheet" href="/assets/css/styles.1c48cbd0.css">
10
28
  </head>
11
29
  <body>
12
- <div id="app"><!--[--><div class="theme-container"><div class="theme-default-content"><h1>404</h1><blockquote>That&#39;s a Four-Oh-Four.</blockquote><a href="/" class="">Take me home</a></div></div><!----><!--]--></div>
13
- <script src="/assets/js/runtime~app.47f4f812.js" defer></script><script src="/assets/js/619.8ba1b1f6.js" defer></script><script src="/assets/js/app.b705176c.js" defer></script>
30
+ <div id="app"><!--[--><div class="theme-container"><div class="theme-default-content"><h1>404</h1><blockquote>Looks like we&#39;ve got some broken links.</blockquote><a href="/" class="">Take me home</a></div></div><!----><!--]--></div>
31
+ <script src="/assets/js/runtime~app.f6ac32d7.js" defer></script><script src="/assets/js/405.f4edd94d.js" defer></script><script src="/assets/js/app.dfdee6f9.js" defer></script>
14
32
  </body>
15
33
  </html>
@@ -0,0 +1 @@
1
+ .config>p[data-v-a3dd0286]{margin:0;padding:0}td[data-v-a3dd0286],th[data-v-a3dd0286]{margin:2px 4px;padding:2px 4px;font-size:small}.highlightSequence[data-v-a3dd0286]{background-color:#87cefa}.highlightSaving[data-v-a3dd0286]{background-color:#ff0}.highlightBoth[data-v-a3dd0286]{background-color:#90ee90}.belowMin[data-v-a3dd0286]{color:red}.selectable[data-v-a3dd0286]{cursor:pointer}.sepcol[data-v-a3dd0286]{background-color:#a9a9a9}
@@ -0,0 +1,10 @@
1
+ :root{--external-link-icon-color:#aaa}
2
+ .external-link-icon{position:relative;display:inline-block;color:var(--external-link-icon-color);vertical-align:middle;top:-1px}.external-link-icon-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
3
+ :root{--medium-zoom-z-index:100;--medium-zoom-bg-color:#ffffff;--medium-zoom-opacity:1}
4
+ .medium-zoom-overlay{background-color:var(--medium-zoom-bg-color)!important;z-index:var(--medium-zoom-z-index)}.medium-zoom-overlay~img{z-index:calc(var(--medium-zoom-z-index) + 1)}.medium-zoom--opened .medium-zoom-overlay{opacity:var(--medium-zoom-opacity)}
5
+ :root{--c-brand:#3eaf7c;--c-brand-light:#4abf8a;--c-bg:#ffffff;--c-bg-light:#f3f4f5;--c-bg-lighter:#eeeeee;--c-bg-navbar:var(--c-bg);--c-bg-sidebar:var(--c-bg);--c-bg-arrow:#cccccc;--c-text:#2c3e50;--c-text-accent:var(--c-brand);--c-text-light:#3a5169;--c-text-lighter:#4e6e8e;--c-text-lightest:#6a8bad;--c-text-quote:#999999;--c-border:#eaecef;--c-border-dark:#dfe2e5;--c-tip:#42b983;--c-tip-bg:var(--c-bg-light);--c-tip-title:var(--c-text);--c-tip-text:var(--c-text);--c-tip-text-accent:var(--c-text-accent);--c-warning:#e7c000;--c-warning-bg:#fffae3;--c-warning-title:#ad9000;--c-warning-text:#746000;--c-warning-text-accent:var(--c-text);--c-danger:#cc0000;--c-danger-bg:#ffe0e0;--c-danger-title:#990000;--c-danger-text:#660000;--c-danger-text-accent:var(--c-text);--c-details-bg:#eeeeee;--c-badge-tip:var(--c-tip);--c-badge-warning:var(--c-warning);--c-badge-danger:var(--c-danger);--t-color:0.3s ease;--t-transform:0.3s ease;--code-bg-color:#282c34;--code-hl-bg-color:rgba(0, 0, 0, 0.66);--code-ln-color:#9e9e9e;--code-ln-wrapper-width:3.5rem;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-code:Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;--navbar-height:3.6rem;--navbar-padding-v:0.7rem;--navbar-padding-h:1.5rem;--sidebar-width:20rem;--sidebar-width-mobile:calc(var(--sidebar-width) * 0.82);--content-width:740px;--homepage-width:960px}.back-to-top{--back-to-top-color:var(--c-brand);--back-to-top-color-hover:var(--c-brand-light)}.DocSearch{--docsearch-primary-color:var(--c-brand);--docsearch-text-color:var(--c-text);--docsearch-highlight-color:var(--c-brand);--docsearch-muted-color:var(--c-text-quote);--docsearch-container-background:rgba(9, 10, 17, 0.8);--docsearch-modal-background:var(--c-bg-light);--docsearch-searchbox-background:var(--c-bg-lighter);--docsearch-searchbox-focus-background:var(--c-bg);--docsearch-searchbox-shadow:inset 0 0 0 2px var(--c-brand);--docsearch-hit-color:var(--c-text-light);--docsearch-hit-active-color:var(--c-bg);--docsearch-hit-background:var(--c-bg);--docsearch-hit-shadow:0 1px 3px 0 var(--c-border-dark);--docsearch-footer-background:var(--c-bg)}.external-link-icon{--external-link-icon-color:var(--c-text-quote)}.medium-zoom-overlay{--medium-zoom-bg-color:var(--c-bg)}#nprogress{--nprogress-color:var(--c-brand)}.pwa-popup{--pwa-popup-text-color:var(--c-text);--pwa-popup-bg-color:var(--c-bg);--pwa-popup-border-color:var(--c-brand);--pwa-popup-shadow:0 4px 16px var(--c-brand);--pwa-popup-btn-text-color:var(--c-bg);--pwa-popup-btn-bg-color:var(--c-brand);--pwa-popup-btn-hover-bg-color:var(--c-brand-light)}.search-box{--search-bg-color:var(--c-bg);--search-accent-color:var(--c-brand);--search-text-color:var(--c-text);--search-border-color:var(--c-border);--search-item-text-color:var(--c-text-lighter);--search-item-focus-bg-color:var(--c-bg-light)}html.dark{--c-brand:#3aa675;--c-brand-light:#349469;--c-bg:#22272e;--c-bg-light:#2b313a;--c-bg-lighter:#262c34;--c-text:#adbac7;--c-text-light:#96a7b7;--c-text-lighter:#8b9eb0;--c-text-lightest:#8094a8;--c-border:#3e4c5a;--c-border-dark:#34404c;--c-tip:#318a62;--c-warning:#ceab00;--c-warning-bg:#7e755b;--c-warning-title:#ceac03;--c-warning-text:#362e00;--c-danger:#940000;--c-danger-bg:#806161;--c-danger-title:#610000;--c-danger-text:#3a0000;--c-details-bg:#323843;--code-hl-bg-color:#363b46;color-scheme:dark}html.dark .DocSearch{--docsearch-logo-color:var(--c-text);--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40, 0 3px 8px 0 #000309;--docsearch-key-shadow:inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d, 0 2px 2px 0 rgba(3, 4, 9, 0.3);--docsearch-key-gradient:linear-gradient(-225deg, #444950, #1c1e21);--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73, 76, 106, 0.5), 0 -4px 8px 0 rgba(0, 0, 0, 0.2)}body,html{padding:0;margin:0;background-color:var(--c-bg);transition:background-color var(--t-color)}body{font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}a,p a code{color:var(--c-text-accent)}a{font-weight:500;text-decoration:none;overflow-wrap:break-word}p a code{font-weight:400}code,kbd{font-family:var(--font-family-code)}body,kbd{color:var(--c-text)}kbd{background:var(--c-bg-lighter);border:solid .15rem var(--c-border-dark);border-bottom:solid .25rem var(--c-border-dark);border-radius:.15rem;padding:0 .15em}code{color:var(--c-text-lighter);padding:.25rem .5rem;font-size:.85em;background-color:var(--c-bg-light);border-radius:3px;overflow-wrap:break-word;transition:background-color var(--t-color)}blockquote{font-size:1rem;color:var(--c-text-quote);border-left:.2rem solid var(--c-border-dark);margin:1rem 0;padding:.25rem 0 .25rem 1rem}blockquote>p,code{margin:0}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}h1:focus-visible,h2:focus-visible,h3:focus-visible,h4:focus-visible,h5:focus-visible,h6:focus-visible{outline:0}h1:hover .header-anchor,h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor,h5:hover .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid var(--c-border);transition:border-color var(--t-color)}h3{font-size:1.35rem}h4{font-size:1.15rem}h5{font-size:1.05rem}h6{font-size:1rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:hover{text-decoration:none}a.header-anchor:focus-visible{opacity:1}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid var(--c-border)}table,tr{transition:border-color var(--t-color)}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid var(--c-border-dark)}tr:nth-child(2n){background-color:var(--c-bg-light);transition:background-color var(--t-color)}td,th{padding:.6em 1em;border:1px solid var(--c-border-dark);transition:border-color var(--t-color)}.arrow,.badge{display:inline-block}.arrow{width:0;height:0}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.up{border-bottom:6px solid var(--c-bg-arrow)}.arrow.down{border-top:6px solid var(--c-bg-arrow)}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.right{border-left:6px solid var(--c-bg-arrow)}.arrow.left{border-right:6px solid var(--c-bg-arrow)}.badge{font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:var(--c-bg);vertical-align:top;transition:color var(--t-color),background-color var(--t-color)}.badge.tip{background-color:var(--c-badge-tip)}.badge.warning{background-color:var(--c-badge-warning)}.badge.danger{background-color:var(--c-badge-danger)}.badge+.badge{margin-left:5px}code[class*=language-],pre[class*=language-]{color:#ccc;background:0 0;font-family:var(--font-family-code);font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#ec5975}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:#3eaf7c}.theme-default-content pre,.theme-default-content pre[class*=language-]{line-height:1.4;padding:1.3rem 1.5rem;margin:.85rem 0;border-radius:6px;overflow:auto}.theme-default-content pre code,.theme-default-content pre[class*=language-] code{color:#fff;padding:0;background-color:transparent;border-radius:0;overflow-wrap:unset;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.theme-default-content .line-number{font-family:var(--font-family-code)}div[class*=language-]{position:relative;background-color:var(--code-bg-color);border-radius:6px}div[class*=language-]::before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:var(--code-ln-color)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:0 0!important;position:relative;z-index:1}div[class*=language-] .highlight-lines{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlight-line{background-color:var(--code-hl-bg-color)}div[class*=language-]:not(.line-numbers-mode) .line-numbers{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlight-line{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlight-line::before{content:" ";position:absolute;z-index:2;left:0;top:0;display:block;width:var(--code-ln-wrapper-width);height:100%}div[class*=language-].line-numbers-mode pre{margin-left:var(--code-ln-wrapper-width);padding-left:1rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers{position:absolute;top:0;width:var(--code-ln-wrapper-width);text-align:center;color:var(--code-ln-color);padding-top:1.25rem;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers .line-number,div[class*=language-].line-numbers-mode .line-numbers br{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers .line-number{position:relative;z-index:3;font-size:.85em;line-height:0}div[class*=language-].line-numbers-mode::after{content:"";position:absolute;top:0;left:0;width:var(--code-ln-wrapper-width);height:100%;border-radius:6px 0 0 6px;border-right:1px solid var(--code-hl-bg-color)}div[class*=language-].ext-c:before{content:"c"}div[class*=language-].ext-cpp:before{content:"cpp"}div[class*=language-].ext-cs:before{content:"cs"}div[class*=language-].ext-css:before{content:"css"}div[class*=language-].ext-dart:before{content:"dart"}div[class*=language-].ext-docker:before{content:"docker"}div[class*=language-].ext-fs:before{content:"fs"}div[class*=language-].ext-go:before{content:"go"}div[class*=language-].ext-html:before{content:"html"}div[class*=language-].ext-java:before{content:"java"}div[class*=language-].ext-js:before{content:"js"}div[class*=language-].ext-json:before{content:"json"}div[class*=language-].ext-kt:before{content:"kt"}div[class*=language-].ext-less:before{content:"less"}div[class*=language-].ext-makefile:before{content:"makefile"}div[class*=language-].ext-md:before{content:"md"}div[class*=language-].ext-php:before{content:"php"}div[class*=language-].ext-py:before{content:"py"}div[class*=language-].ext-rb:before{content:"rb"}div[class*=language-].ext-rs:before{content:"rs"}div[class*=language-].ext-sass:before{content:"sass"}div[class*=language-].ext-scss:before{content:"scss"}div[class*=language-].ext-sh:before{content:"sh"}div[class*=language-].ext-styl:before{content:"styl"}div[class*=language-].ext-ts:before{content:"ts"}div[class*=language-].ext-toml:before{content:"toml"}div[class*=language-].ext-vue:before{content:"vue"}div[class*=language-].ext-yml:before{content:"yml"}@media (max-width:419px){.theme-default-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.code-group__nav{margin-top:.85rem;margin-bottom:calc(-1.7rem - 6px);padding-bottom:calc(1.7rem - 6px);padding-left:10px;padding-top:10px;border-top-left-radius:6px;border-top-right-radius:6px;background-color:var(--code-bg-color)}.code-group__ul{margin:auto 0;padding-left:0;display:inline-flex;list-style:none}.code-group__nav-tab{border:0;padding:5px;cursor:pointer;background-color:transparent;font-size:.85em;line-height:1.4;color:rgba(255,255,255,.9);font-weight:600}.code-group__nav-tab:focus{outline:0}.code-group__nav-tab:focus-visible{outline:1px solid rgba(255,255,255,.9)}.code-group__nav-tab-active{border-bottom:var(--c-brand) 1px solid}@media (max-width:419px){.code-group__nav{margin-left:-1.5rem;margin-right:-1.5rem;border-radius:0}}.code-group-item,.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subtitle>a.router-link-active::after{display:none}.code-group-item__active{display:block}.code-group-item>pre{background-color:orange}.custom-container{transition:color var(--t-color),border-color var(--t-color),background-color var(--t-color)}.custom-container .custom-container-title{font-weight:600;margin-bottom:-.4rem}.custom-container.danger,.custom-container.tip,.custom-container.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-container.tip{border-color:var(--c-tip);background-color:var(--c-tip-bg);color:var(--c-tip-text)}.custom-container.tip .custom-container-title{color:var(--c-tip-title)}.custom-container.tip a{color:var(--c-tip-text-accent)}.custom-container.warning{border-color:var(--c-warning);background-color:var(--c-warning-bg);color:var(--c-warning-text)}.custom-container.warning .custom-container-title{color:var(--c-warning-title)}.custom-container.warning a{color:var(--c-warning-text-accent)}.custom-container.danger{border-color:var(--c-danger);background-color:var(--c-danger-bg);color:var(--c-danger-text)}.custom-container.danger .custom-container-title{color:var(--c-danger-title)}.custom-container.danger a{color:var(--c-danger-text-accent)}.custom-container.details{display:block;position:relative;border-radius:2px;margin:1.6em 0;padding:1.6em;background-color:var(--c-details-bg)}.custom-container.details h4{margin-top:0}.custom-container.details figure:last-child,.custom-container.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-container.details summary{outline:0;cursor:pointer}.home{padding:var(--navbar-height) 2rem 0;max-width:var(--homepage-width);margin:0 auto;display:block}.home .hero{text-align:center}.home .hero img{max-width:100%;max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero .actions,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.home .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:var(--c-text-lightest)}.home .hero .action-button{display:inline-block;font-size:1.2rem;padding:.8rem 1.6rem;border-width:2px;border-style:solid;border-radius:4px;transition:background-color var(--t-color);box-sizing:border-box}.home .hero .action-button.primary{color:var(--c-bg);background-color:var(--c-brand);border-color:var(--c-brand)}.home .hero .action-button.primary:hover{background-color:var(--c-brand-light)}.home .hero .action-button.secondary{color:var(--c-brand);background-color:var(--c-bg);border-color:var(--c-brand)}.home .hero .action-button.secondary:hover{color:var(--c-bg);background-color:var(--c-brand-light)}.home .features{border-top:1px solid var(--c-border);transition:border-color var(--t-color);padding:1.2rem 0;margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home .feature{flex-grow:1;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:var(--c-text-light)}.home .feature p,.home .footer{color:var(--c-text-lighter)}.home .footer{padding:2.5rem;border-top:1px solid var(--c-border);text-align:center;transition:border-color var(--t-color)}@media (max-width:719px){.home .features{flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:419px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .actions,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.page{padding-top:var(--navbar-height);padding-left:var(--sidebar-width)}.navbar,.sidebar{position:fixed;left:0;box-sizing:border-box}.navbar{z-index:20;top:0;right:0;height:var(--navbar-height);border-bottom:1px solid var(--c-border);background-color:var(--c-bg-navbar);transition:background-color var(--t-color),border-color var(--t-color)}.sidebar{font-size:16px;width:var(--sidebar-width);z-index:10;margin:0;top:var(--navbar-height);bottom:0;border-right:1px solid var(--c-border);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--c-brand) var(--c-border);background-color:var(--c-bg-sidebar);transition:transform var(--t-transform),background-color var(--t-color),border-color var(--t-color)}.sidebar::-webkit-scrollbar{width:7px}.sidebar::-webkit-scrollbar-track{background-color:var(--c-border)}.sidebar::-webkit-scrollbar-thumb{background-color:var(--c-brand)}.sidebar-mask{position:fixed;z-index:9;top:0;left:0;width:100vw;height:100vh;display:none}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.sidebar-open .navbar>.toggle-sidebar-button .icon span:nth-child(1){transform:rotate(45deg) translate3d(5.5px,5.5px,0)}.theme-container.sidebar-open .navbar>.toggle-sidebar-button .icon span:nth-child(2){transform:scale3d(0,1,1)}.theme-container.sidebar-open .navbar>.toggle-sidebar-button .icon span:nth-child(3){transform:rotate(-45deg) translate3d(6px,-6px,0)}.theme-container.sidebar-open .navbar>.toggle-sidebar-button .icon span:nth-child(1),.theme-container.sidebar-open .navbar>.toggle-sidebar-button .icon span:nth-child(3){transform-origin:center}.theme-container.no-navbar .theme-default-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .page{padding-top:0}.theme-container.no-navbar .sidebar{top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}.theme-default-content:not(.custom)>h1,.theme-default-content:not(.custom)>h2,.theme-default-content:not(.custom)>h3,.theme-default-content:not(.custom)>h4,.theme-default-content:not(.custom)>h5,.theme-default-content:not(.custom)>h6{margin-top:calc(.5rem - var(--navbar-height));padding-top:calc(1rem + var(--navbar-height));margin-bottom:0}.theme-default-content:not(.custom)>h1:first-child,.theme-default-content:not(.custom)>h2:first-child,.theme-default-content:not(.custom)>h3:first-child,.theme-default-content:not(.custom)>h4:first-child,.theme-default-content:not(.custom)>h5:first-child,.theme-default-content:not(.custom)>h6:first-child{margin-bottom:1rem}.theme-default-content:not(.custom)>h1:first-child+.custom-container,.theme-default-content:not(.custom)>h1:first-child+p,.theme-default-content:not(.custom)>h1:first-child+pre,.theme-default-content:not(.custom)>h2:first-child+.custom-container,.theme-default-content:not(.custom)>h2:first-child+p,.theme-default-content:not(.custom)>h2:first-child+pre,.theme-default-content:not(.custom)>h3:first-child+.custom-container,.theme-default-content:not(.custom)>h3:first-child+p,.theme-default-content:not(.custom)>h3:first-child+pre,.theme-default-content:not(.custom)>h4:first-child+.custom-container,.theme-default-content:not(.custom)>h4:first-child+p,.theme-default-content:not(.custom)>h4:first-child+pre,.theme-default-content:not(.custom)>h5:first-child+.custom-container,.theme-default-content:not(.custom)>h5:first-child+p,.theme-default-content:not(.custom)>h5:first-child+pre,.theme-default-content:not(.custom)>h6:first-child+.custom-container,.theme-default-content:not(.custom)>h6:first-child+p,.theme-default-content:not(.custom)>h6:first-child+pre{margin-top:2rem}.theme-default-content:not(.custom){max-width:var(--content-width);margin:0 auto;padding:2rem 2.5rem;padding-top:0}@media (max-width:959px){.theme-default-content:not(.custom){padding:2rem}}@media (max-width:419px){.theme-default-content:not(.custom){padding:1.5rem}}.theme-default-content:not(.custom) a:hover{text-decoration:underline}.theme-default-content:not(.custom) img{max-width:100%}.theme-default-content.custom{padding:0;margin:0}.theme-default-content.custom img{max-width:100%}@media (max-width:959px){.sidebar{font-size:15px;width:var(--sidebar-width-mobile)}.page{padding-left:var(--sidebar-width-mobile)}}@media (max-width:719px){.sidebar{top:0;padding-top:var(--navbar-height);transform:translateX(-100%)}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}}.navbar{--navbar-line-height:calc( var(--navbar-height) - 2 * var(--navbar-padding-v) );padding:var(--navbar-padding-v) var(--navbar-padding-h);line-height:var(--navbar-line-height)}.navbar .logo{height:var(--navbar-line-height);margin-right:var(--navbar-padding-v);vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:var(--c-text);position:relative}.navbar .navbar-items-wrapper{display:flex;position:absolute;box-sizing:border-box;top:var(--navbar-padding-v);right:var(--navbar-padding-h);height:var(--navbar-line-height);padding-left:var(--navbar-padding-h);white-space:nowrap;font-size:.9rem}.navbar .navbar-items-wrapper .search-box{flex:0 0 auto;vertical-align:top}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .site-name{width:calc(100vw - 9.4rem);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.navbar-items,.navbar-items a{display:inline-block}.navbar-items a{line-height:1.4rem;color:inherit}.navbar-items a.router-link-active,.navbar-items a:hover{color:var(--c-text-accent)}.navbar-items .navbar-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:var(--navbar-line-height)}.navbar-items .navbar-item:first-child{margin-left:0}@media (max-width:719px){.navbar-items .navbar-item{margin-left:0}}@media (min-width:719px){.navbar-items a.router-link-active,.navbar-items a:hover{color:var(--c-text)}.navbar-item>a.router-link-active,.navbar-item>a:hover{margin-bottom:-2px;border-bottom:2px solid var(--c-text-accent)}}.toggle-sidebar-button{position:absolute;top:.6rem;left:1rem;display:none;padding:.6rem;cursor:pointer}.toggle-sidebar-button .icon{display:flex;flex-direction:column;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;cursor:inherit}.toggle-sidebar-button .icon span{display:inline-block;width:100%;height:2px;border-radius:2px;background-color:var(--c-text);transition:transform var(--t-transform)}.toggle-sidebar-button .icon span:nth-child(2){margin:6px 0}@media screen and (max-width:719px){.toggle-sidebar-button{display:block}}.toggle-dark-button{display:flex;margin:auto;margin-left:1rem;border:0;background:0 0;color:var(--c-text);opacity:.8;cursor:pointer}.toggle-dark-button:hover{opacity:1}.toggle-dark-button .icon{width:1.25rem;height:1.25rem}.DocSearch{transition:background-color var(--t-color)}.navbar-dropdown-wrapper{cursor:pointer}.navbar-dropdown-wrapper .navbar-dropdown-title,.navbar-dropdown-wrapper .navbar-dropdown-title-mobile{display:block;font-size:.9rem;font-family:inherit;cursor:inherit;padding:inherit;line-height:1.4rem;background:0 0;border:0;font-weight:500;color:var(--c-text)}.navbar-dropdown-wrapper .navbar-dropdown-title-mobile{display:none;font-weight:600;font-size:inherit}.navbar-dropdown-wrapper .navbar-dropdown-title-mobile:hover,.navbar-dropdown-wrapper .navbar-dropdown-title:hover{border-color:transparent}.navbar-dropdown-wrapper .navbar-dropdown-title .arrow,.navbar-dropdown-wrapper .navbar-dropdown-title-mobile .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.navbar-dropdown-wrapper .navbar-dropdown-title-mobile:hover{color:var(--c-text-accent)}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item{color:inherit;line-height:1.7rem}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subtitle{margin:.45rem 0 0;border-top:1px solid var(--c-border);padding:1rem 0 .45rem;font-size:.9rem}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subtitle>span{padding:0 1.5rem 0 1.25rem}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subtitle>a{font-weight:inherit}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subitem-wrapper{padding:0;list-style:none}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subitem-wrapper .navbar-dropdown-subitem{font-size:.9em}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item a.router-link-active,.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item a:hover{color:var(--c-text-accent)}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item a.router-link-active::after{content:"";width:0;height:0;border-left:5px solid var(--c-text-accent);border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item:first-child .navbar-dropdown-subtitle{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.navbar-dropdown-wrapper.open .navbar-dropdown-title,.navbar-dropdown-wrapper.open .navbar-dropdown-title-mobile{margin-bottom:.5rem}.navbar-dropdown-wrapper .navbar-dropdown-title{display:none}.navbar-dropdown-wrapper .navbar-dropdown-title-mobile{display:block}.navbar-dropdown-wrapper .navbar-dropdown{transition:height .1s ease-out;overflow:hidden}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subtitle{border-top:0;margin-top:0;padding-top:0;padding-bottom:0;font-size:15px;line-height:2rem}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item>a{font-size:15px;line-height:2rem}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:720px){.navbar-dropdown-wrapper{height:1.8rem}.navbar-dropdown-wrapper.open .navbar-dropdown,.navbar-dropdown-wrapper:hover .navbar-dropdown{display:block!important}.navbar-dropdown-wrapper.open:blur{display:none}.navbar-dropdown-wrapper .navbar-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:var(--c-bg-navbar);padding:.6rem 0;border:1px solid var(--c-border);border-bottom-color:var(--c-border-dark);text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.page{padding-bottom:2rem;display:block}.page-meta{max-width:var(--content-width);margin:0 auto;padding:1rem 2.5rem;overflow:auto}@media (max-width:959px){.page-meta{padding:2rem}}@media (max-width:419px){.page-meta{padding:1.5rem}}.page-meta .meta-item{cursor:default;margin-top:.8rem}.page-meta .meta-item .meta-item-label{font-weight:500;color:var(--c-text-lighter)}.page-meta .meta-item .meta-item-info{font-weight:400;color:var(--c-text-quote)}.page-meta .edit-link{display:inline-block;margin-right:.25rem}.page-meta .last-updated{float:right}@media (max-width:719px){.page-meta .last-updated{font-size:.8em;float:none}.page-meta .contributors{font-size:.8em}}.page-nav{max-width:var(--content-width);margin:0 auto;padding:1rem 2.5rem 2rem;padding-bottom:0}@media (max-width:959px){.page-nav{padding:2rem}}@media (max-width:419px){.page-nav{padding:1.5rem}}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid var(--c-border);transition:border-color var(--t-color);padding-top:1rem;overflow:auto}.page-nav .prev a:before{content:"←"}.page-nav .next{float:right}.page-nav .next a:after{content:"→"}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .navbar-items{display:none;border-bottom:1px solid var(--c-border);transition:border-color var(--t-color);padding:.5rem 0 .75rem}.sidebar .navbar-items a{font-weight:600}.sidebar .navbar-items .navbar-item{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar .sidebar-items{padding:1.5rem 0}@media (max-width:719px){.sidebar .navbar-items{display:block}.sidebar .navbar-items .navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item a.router-link-active::after{top:calc(1rem - 2px)}.sidebar .sidebar-items{padding:1rem 0}}.sidebar-item{cursor:default;border-left:.25rem solid transparent;color:var(--c-text)}.sidebar-item:focus-visible{outline-width:1px;outline-offset:-1px}.sidebar-item.active:not(p.sidebar-heading){font-weight:600;color:var(--c-text-accent);border-left-color:var(--c-text-accent)}.sidebar-item.sidebar-heading{transition:color .15s ease;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0}.sidebar-item.sidebar-heading.collapsible,a.sidebar-item{cursor:pointer}.sidebar-item.sidebar-heading.collapsible+.sidebar-item-children{transition:height .1s ease-out;overflow:hidden;margin-bottom:.75rem}.sidebar-item.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-item:not(.sidebar-heading){font-size:1em;font-weight:400;display:inline-block;margin:0;padding:.35rem 1rem .35rem 2rem;line-height:1.4;width:100%;box-sizing:border-box}.sidebar-item:not(.sidebar-heading)+.sidebar-item-children{padding-left:1rem;font-size:.95em}.sidebar-item-children .sidebar-item-children .sidebar-item:not(.sidebar-heading){padding:.25rem 1rem .25rem 1.75rem}.sidebar-item-children .sidebar-item-children .sidebar-item:not(.sidebar-heading).active{font-weight:500;border-left-color:transparent}a.sidebar-heading+.sidebar-item-children .sidebar-item:not(.sidebar-heading).active{border-left-color:transparent}a.sidebar-item:hover{color:var(--c-text-accent)}.table-of-contents .badge{vertical-align:middle}.dropdown-enter-from,.dropdown-leave-to{height:0!important}.fade-slide-y-enter-active{transition:all .2s ease}.fade-slide-y-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)}.fade-slide-y-enter-from,.fade-slide-y-leave-to{transform:translateY(10px);opacity:0}
6
+ .resize-observer[data-v-b329ee4c]{border:0;background-color:transparent;opacity:0}.resize-observer[data-v-b329ee4c],.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper__popper{z-index:10000;top:0;left:0}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper{width:-webkit-max-content;width:-moz-max-content;width:max-content}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}
7
+ :root{--back-to-top-z-index:5;--back-to-top-color:#3eaf7c;--back-to-top-color-hover:#71cda3}
8
+ .back-to-top{cursor:pointer;position:fixed;bottom:2rem;right:2.5rem;width:2rem;height:1.2rem;background-color:var(--back-to-top-color);-webkit-mask:url(/assets/img/back-to-top.8b37f773.svg)no-repeat;mask:url(/assets/img/back-to-top.8b37f773.svg)no-repeat;z-index:var(--back-to-top-z-index)}.back-to-top:hover{background-color:var(--back-to-top-color-hover)}@media (max-width:959px){.back-to-top{display:none}}.back-to-top-enter-active,.back-to-top-leave-active{transition:opacity .3s}.back-to-top-enter-from,.back-to-top-leave-to{opacity:0}
9
+ :root{--nprogress-color:#29d;--nprogress-z-index:1031}
10
+ #nprogress{pointer-events:none}#nprogress .bar{background:var(--nprogress-color);position:fixed;z-index:var(--nprogress-z-index);top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px var(--nprogress-color),0 0 5px var(--nprogress-color);opacity:1;transform:rotate(3deg) translate(0,-4px)}
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunknode_red_contrib_power_saver=self.webpackChunknode_red_contrib_power_saver||[]).push([[229],{4229:(e,l,t)=>{t.r(l),t.d(l,{default:()=>xe});var a=t(6252),n=t(3577),u=t(2262),r=t(9963);const i={class:"theme-default-content custom"},o={},s=(0,t(3744).Z)(o,[["render",function(e,l){const t=(0,a.up)("Content");return(0,a.wg)(),(0,a.iD)("div",i,[(0,a.Wm)(t)])}]]);var c=t(7621),v=t(480);const d={key:0,class:"features"},p=(0,a.aZ)({setup(e){const l=(0,c.I2)(),t=(0,a.Fl)((()=>(0,v.kJ)(l.value.features)?l.value.features:[]));return(e,l)=>(0,u.SU)(t).length?((0,a.wg)(),(0,a.iD)("div",d,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,u.SU)(t),(e=>((0,a.wg)(),(0,a.iD)("div",{key:e.title,class:"feature"},[(0,a._)("h2",null,(0,n.zw)(e.title),1),(0,a._)("p",null,(0,n.zw)(e.details),1)])))),128))])):(0,a.kq)("",!0)}}),g=["innerHTML"],h=["textContent"],m=(0,a.aZ)({setup(e){const l=(0,c.I2)(),t=(0,a.Fl)((()=>l.value.footer)),r=(0,a.Fl)((()=>l.value.footerHtml));return(e,l)=>(0,u.SU)(t)?((0,a.wg)(),(0,a.iD)(a.HY,{key:0},[(0,u.SU)(r)?((0,a.wg)(),(0,a.iD)("div",{key:0,class:"footer",innerHTML:(0,u.SU)(t)},null,8,g)):((0,a.wg)(),(0,a.iD)("div",{key:1,class:"footer",textContent:(0,n.zw)((0,u.SU)(t))},null,8,h))],64)):(0,a.kq)("",!0)}});var k=t(2119);const w=["href","rel","target","aria-label"],b=(0,a.aZ)({inheritAttrs:!1}),f=(0,a.aZ)({...b,props:{item:{type:Object,required:!0}},setup(e){const l=e,t=(0,k.yj)(),r=(0,c.WF)(),{item:i}=(0,u.BK)(l),o=(0,a.Fl)((()=>(0,v.ak)(i.value.link))),s=(0,a.Fl)((()=>(0,v.B2)(i.value.link)||(0,v.R5)(i.value.link))),d=(0,a.Fl)((()=>{if(!s.value)return i.value.target?i.value.target:o.value?"_blank":void 0})),p=(0,a.Fl)((()=>"_blank"===d.value)),g=(0,a.Fl)((()=>!o.value&&!s.value&&!p.value)),h=(0,a.Fl)((()=>{if(!s.value)return i.value.rel?i.value.rel:p.value?"noopener noreferrer":void 0})),m=(0,a.Fl)((()=>i.value.ariaLabel||i.value.text)),b=(0,a.Fl)((()=>{const e=Object.keys(r.value.locales);return e.length?!e.some((e=>e===i.value.link)):"/"!==i.value.link})),f=(0,a.Fl)((()=>!!b.value&&t.path.startsWith(i.value.link))),U=(0,a.Fl)((()=>!!g.value&&(i.value.activeMatch?new RegExp(i.value.activeMatch).test(t.path):f.value)));return(e,l)=>{const t=(0,a.up)("RouterLink"),r=(0,a.up)("ExternalLinkIcon");return(0,u.SU)(g)?((0,a.wg)(),(0,a.j4)(t,(0,a.dG)({key:0,class:{"router-link-active":(0,u.SU)(U)},to:(0,u.SU)(i).link,"aria-label":(0,u.SU)(m)},e.$attrs),{default:(0,a.w5)((()=>[(0,a.WI)(e.$slots,"before"),(0,a.Uk)(" "+(0,n.zw)((0,u.SU)(i).text)+" ",1),(0,a.WI)(e.$slots,"after")])),_:3},16,["class","to","aria-label"])):((0,a.wg)(),(0,a.iD)("a",(0,a.dG)({key:1,class:"external-link",href:(0,u.SU)(i).link,rel:(0,u.SU)(h),target:(0,u.SU)(d),"aria-label":(0,u.SU)(m)},e.$attrs),[(0,a.WI)(e.$slots,"before"),(0,a.Uk)(" "+(0,n.zw)((0,u.SU)(i).text)+" ",1),(0,u.SU)(p)?((0,a.wg)(),(0,a.j4)(r,{key:0})):(0,a.kq)("",!0),(0,a.WI)(e.$slots,"after")],16,w))}}});var U=t(3311);const S={class:"hero"},y={key:0,id:"main-title"},D={key:1,class:"description"},_={key:2,class:"actions"},F=(0,a.aZ)({setup(e){const l=(0,c.I2)(),t=(0,c.I5)(),r=(0,U.vs)(),i=(0,a.Fl)((()=>r.value&&void 0!==l.value.heroImageDark?l.value.heroImageDark:l.value.heroImage)),o=(0,a.Fl)((()=>null===l.value.heroText?null:l.value.heroText||t.value.title||"Hello")),s=(0,a.Fl)((()=>l.value.heroAlt||o.value||"hero")),d=(0,a.Fl)((()=>null===l.value.tagline?null:l.value.tagline||t.value.description||"Welcome to your VuePress site")),p=(0,a.Fl)((()=>(0,v.kJ)(l.value.actions)?l.value.actions.map((({text:e,link:l,type:t="primary"})=>({text:e,link:l,type:t}))):[])),g=()=>{if(!i.value)return null;const e=(0,a.h)("img",{src:(0,c.pJ)(i.value),alt:s.value});return void 0===l.value.heroImageDark?e:(0,a.h)(c.qx,e)};return(e,l)=>((0,a.wg)(),(0,a.iD)("header",S,[(0,a.Wm)(g),(0,u.SU)(o)?((0,a.wg)(),(0,a.iD)("h1",y,(0,n.zw)((0,u.SU)(o)),1)):(0,a.kq)("",!0),(0,u.SU)(d)?((0,a.wg)(),(0,a.iD)("p",D,(0,n.zw)((0,u.SU)(d)),1)):(0,a.kq)("",!0),(0,u.SU)(p).length?((0,a.wg)(),(0,a.iD)("p",_,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,u.SU)(p),(e=>((0,a.wg)(),(0,a.j4)(f,{key:e.text,class:(0,n.C_)(["action-button",[e.type]]),item:e},null,8,["class","item"])))),128))])):(0,a.kq)("",!0)]))}}),W={class:"home"},x=(0,a.aZ)({setup:e=>(e,l)=>((0,a.wg)(),(0,a.iD)("main",W,[(0,a.Wm)(F),(0,a.Wm)(p),(0,a.Wm)(s),(0,a.Wm)(m)]))}),I=(0,a.aZ)({setup(e){const l=(0,c.I)(),t=(0,c.I5)(),r=(0,U.X6)(),i=(0,U.vs)(),o=(0,a.Fl)((()=>r.value.home||l.value)),s=(0,a.Fl)((()=>t.value.title)),v=(0,a.Fl)((()=>i.value&&void 0!==r.value.logoDark?r.value.logoDark:r.value.logo)),d=()=>{if(!v.value)return null;const e=(0,a.h)("img",{class:"logo",src:(0,c.pJ)(v.value),alt:s.value});return void 0===r.value.logoDark?e:(0,a.h)(c.qx,e)};return(e,l)=>{const t=(0,a.up)("RouterLink");return(0,a.wg)(),(0,a.j4)(t,{to:(0,u.SU)(o)},{default:(0,a.w5)((()=>[(0,a.Wm)(d),(0,u.SU)(s)?((0,a.wg)(),(0,a.iD)("span",{key:0,class:(0,n.C_)(["site-name",{"can-hide":(0,u.SU)(v)}])},(0,n.zw)((0,u.SU)(s)),3)):(0,a.kq)("",!0)])),_:1},8,["to"])}}}),$=(0,a.aZ)({setup(e){const l=e=>{e.style.height=e.scrollHeight+"px"},t=e=>{e.style.height=""};return(e,n)=>((0,a.wg)(),(0,a.j4)(r.uT,{name:"dropdown",onEnter:l,onAfterEnter:t,onBeforeLeave:l},{default:(0,a.w5)((()=>[(0,a.WI)(e.$slots,"default")])),_:3}))}}),C=["aria-label"],L={class:"title"},H=(0,a._)("span",{class:"arrow down"},null,-1),j=["aria-label"],z={class:"title"},q={class:"navbar-dropdown"},Z={class:"navbar-dropdown-subtitle"},M={key:1},T={class:"navbar-dropdown-subitem-wrapper"},B=(0,a.aZ)({props:{item:{type:Object,required:!0}},setup(e){const l=e,{item:t}=(0,u.BK)(l),i=(0,a.Fl)((()=>t.value.ariaLabel||t.value.text)),o=(0,u.iH)(!1),s=(0,k.yj)();(0,a.YP)((()=>s.path),(()=>{o.value=!1}));const c=e=>{const l=0===e.detail;o.value=!!l&&!o.value},v=(e,l)=>l[l.length-1]===e;return(e,l)=>((0,a.wg)(),(0,a.iD)("div",{class:(0,n.C_)(["navbar-dropdown-wrapper",{open:o.value}])},[(0,a._)("button",{class:"navbar-dropdown-title",type:"button","aria-label":(0,u.SU)(i),onClick:c},[(0,a._)("span",L,(0,n.zw)((0,u.SU)(t).text),1),H],8,C),(0,a._)("button",{class:"navbar-dropdown-title-mobile",type:"button","aria-label":(0,u.SU)(i),onClick:l[0]||(l[0]=e=>o.value=!o.value)},[(0,a._)("span",z,(0,n.zw)((0,u.SU)(t).text),1),(0,a._)("span",{class:(0,n.C_)(["arrow",o.value?"down":"right"])},null,2)],8,j),(0,a.Wm)($,null,{default:(0,a.w5)((()=>[(0,a.wy)((0,a._)("ul",q,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,u.SU)(t).children,(e=>((0,a.wg)(),(0,a.iD)("li",{key:e.text,class:"navbar-dropdown-item"},[e.children?((0,a.wg)(),(0,a.iD)(a.HY,{key:0},[(0,a._)("h4",Z,[e.link?((0,a.wg)(),(0,a.j4)(f,{key:0,item:e,onFocusout:l=>v(e,(0,u.SU)(t).children)&&0===e.children.length&&(o.value=!1)},null,8,["item","onFocusout"])):((0,a.wg)(),(0,a.iD)("span",M,(0,n.zw)(e.text),1))]),(0,a._)("ul",T,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.children,(l=>((0,a.wg)(),(0,a.iD)("li",{key:l.link,class:"navbar-dropdown-subitem"},[(0,a.Wm)(f,{item:l,onFocusout:a=>v(l,e.children)&&v(e,(0,u.SU)(t).children)&&(o.value=!1)},null,8,["item","onFocusout"])])))),128))])],64)):((0,a.wg)(),(0,a.j4)(f,{key:1,item:e,onFocusout:l=>v(e,(0,u.SU)(t).children)&&(o.value=!1)},null,8,["item","onFocusout"]))])))),128))],512),[[r.F8,o.value]])])),_:1})],2))}}),R=e=>decodeURI(e).replace(/#.*$/,"").replace(/(index)?\.(md|html)$/,""),Y=(e,l)=>!(!e.link||!((e,l)=>l.hash===e||R(l.path)===R(e))(e.link,l))||!!e.children&&e.children.some((e=>Y(e,l))),P=e=>!(0,v.ak)(e)||/github\.com/.test(e)?"GitHub":/bitbucket\.org/.test(e)?"Bitbucket":/gitlab\.com/.test(e)?"GitLab":/gitee\.com/.test(e)?"Gitee":null,X={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},E={key:0,class:"navbar-items"},K=(0,a.aZ)({setup(e){const l=e=>(0,v.HD)(e)?(0,U.sC)(e):e.children?{...e,children:e.children.map(l)}:e,t=(()=>{const e=(0,U.X6)();return(0,a.Fl)((()=>(e.value.navbar||[]).map(l)))})(),n=(()=>{const e=(0,k.tv)(),l=(0,c.I)(),t=(0,c.I5)(),n=(0,U.X6)();return(0,a.Fl)((()=>{var a,u;const r=Object.keys(t.value.locales);if(r.length<2)return[];const i=e.currentRoute.value.path,o=e.currentRoute.value.fullPath;return[{text:null!=(a=n.value.selectLanguageText)?a:"unknown language",ariaLabel:null!=(u=n.value.selectLanguageAriaLabel)?u:"unkown language",children:r.map((a=>{var u,r,s,c,v,d;const p=null!=(r=null==(u=t.value.locales)?void 0:u[a])?r:{},g=null!=(c=null==(s=n.value.locales)?void 0:s[a])?c:{},h=`${p.lang}`,m=null!=(v=g.selectLanguageName)?v:h;let k;if(h===t.value.lang)k=o;else{const t=i.replace(l.value,a);k=e.getRoutes().some((e=>e.path===t))?t:null!=(d=g.home)?d:a}return{text:m,link:k}}))}]}))})(),r=(()=>{const e=(0,U.X6)(),l=(0,a.Fl)((()=>e.value.repo)),t=(0,a.Fl)((()=>l.value?P(l.value):null)),n=(0,a.Fl)((()=>l.value&&!(0,v.ak)(l.value)?`https://github.com/${l.value}`:l.value)),u=(0,a.Fl)((()=>n.value?e.value.repoLabel?e.value.repoLabel:null===t.value?"Source":t.value:null));return(0,a.Fl)((()=>n.value&&u.value?[{text:u.value,link:n.value}]:[]))})(),i=(0,a.Fl)((()=>[...t.value,...n.value,...r.value]));return(e,l)=>(0,u.SU)(i).length?((0,a.wg)(),(0,a.iD)("nav",E,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,u.SU)(i),(e=>((0,a.wg)(),(0,a.iD)("div",{key:e.text,class:"navbar-item"},[e.children?((0,a.wg)(),(0,a.j4)(B,{key:0,item:e},null,8,["item"])):((0,a.wg)(),(0,a.j4)(f,{key:1,item:e},null,8,["item"]))])))),128))])):(0,a.kq)("",!0)}}),V=["title"],G={class:"icon",focusable:"false",viewBox:"0 0 32 32"},O=[(0,a.uE)('<path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path>',9)],A={class:"icon",focusable:"false",viewBox:"0 0 32 32"},N=[(0,a._)("path",{d:"M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z",fill:"currentColor"},null,-1)],J=(0,a.aZ)({setup(e){const l=(0,U.X6)(),t=(0,U.vs)(),n=()=>{t.value=!t.value};return(e,i)=>((0,a.wg)(),(0,a.iD)("button",{class:"toggle-dark-button",title:(0,u.SU)(l).toggleDarkMode,onClick:n},[(0,a.wy)(((0,a.wg)(),(0,a.iD)("svg",G,O,512)),[[r.F8,!(0,u.SU)(t)]]),(0,a.wy)(((0,a.wg)(),(0,a.iD)("svg",A,N,512)),[[r.F8,(0,u.SU)(t)]])],8,V))}}),Q=["title"],ee=[(0,a._)("div",{class:"icon","aria-hidden":"true"},[(0,a._)("span"),(0,a._)("span"),(0,a._)("span")],-1)],le=(0,a.aZ)({emits:["toggle"],setup(e){const l=(0,U.X6)();return(e,t)=>((0,a.wg)(),(0,a.iD)("div",{class:"toggle-sidebar-button",title:(0,u.SU)(l).toggleSidebar,"aria-expanded":"false",role:"button",tabindex:"0",onClick:t[0]||(t[0]=l=>e.$emit("toggle"))},ee,8,Q))}}),te=(0,a.aZ)({emits:["toggle-sidebar"],setup(e){const l=(0,U.X6)(),t=(0,u.iH)(null),r=(0,u.iH)(null),i=(0,u.iH)(0),o=(0,a.Fl)((()=>i.value?{maxWidth:i.value+"px"}:{})),s=(0,a.Fl)((()=>l.value.darkMode));function c(e,l){var t,a,n;const u=null==(n=null==(a=null==(t=null==e?void 0:e.ownerDocument)?void 0:t.defaultView)?void 0:a.getComputedStyle(e,null))?void 0:n[l],r=Number.parseInt(u,10);return Number.isNaN(r)?0:r}return(0,a.bv)((()=>{const e=c(t.value,"paddingLeft")+c(t.value,"paddingRight"),l=()=>{var l;window.innerWidth<=719?i.value=0:i.value=t.value.offsetWidth-e-((null==(l=r.value)?void 0:l.offsetWidth)||0)};l(),window.addEventListener("resize",l,!1),window.addEventListener("orientationchange",l,!1)})),(e,l)=>{const i=(0,a.up)("NavbarSearch");return(0,a.wg)(),(0,a.iD)("header",{ref_key:"navbar",ref:t,class:"navbar"},[(0,a.Wm)(le,{onToggle:l[0]||(l[0]=l=>e.$emit("toggle-sidebar"))}),(0,a._)("span",{ref_key:"navbarBrand",ref:r},[(0,a.Wm)(I)],512),(0,a._)("div",{class:"navbar-items-wrapper",style:(0,n.j5)((0,u.SU)(o))},[(0,a.WI)(e.$slots,"before"),(0,a.Wm)(K,{class:"can-hide"}),(0,a.WI)(e.$slots,"after"),(0,u.SU)(s)?((0,a.wg)(),(0,a.j4)(J,{key:0})):(0,a.kq)("",!0),(0,a.Wm)(i)],4)],512)}}}),ae={class:"page-meta"},ne={key:0,class:"meta-item edit-link"},ue={key:1,class:"meta-item last-updated"},re={class:"meta-item-label"},ie={class:"meta-item-info"},oe={key:2,class:"meta-item contributors"},se={class:"meta-item-label"},ce={class:"meta-item-info"},ve=["title"],de=(0,a.Uk)(", "),pe=(0,a.aZ)({setup(e){const l=(0,U.X6)(),t=(()=>{const e=(0,U.X6)(),l=(0,c.Vi)(),t=(0,c.I2)();return(0,a.Fl)((()=>{var a,n,u;if(null!=(n=null!=(a=t.value.editLink)?a:e.value.editLink)&&!n)return null;const{repo:r,docsRepo:i=r,docsBranch:o="main",docsDir:s="",editLinkText:c}=e.value;if(!i)return null;const d=(({docsRepo:e,docsBranch:l,docsDir:t,filePathRelative:a,editLinkPattern:n})=>{if(!a)return null;const u=(({docsRepo:e,editLinkPattern:l})=>{if(l)return l;const t=P(e);return null!==t?X[t]:null})({docsRepo:e,editLinkPattern:n});return u?u.replace(/:repo/,(0,v.ak)(e)?e:`https://github.com/${e}`).replace(/:branch/,l).replace(/:path/,(0,v.FY)(`${(0,v.U1)(t)}/${a}`)):null})({docsRepo:i,docsBranch:o,docsDir:s,filePathRelative:l.value.filePathRelative,editLinkPattern:null!=(u=t.value.editLinkPattern)?u:e.value.editLinkPattern});return d?{text:null!=c?c:"Edit this page",link:d}:null}))})(),r=(()=>{const e=(0,U.X6)(),l=(0,c.Vi)(),t=(0,c.I2)();return(0,a.Fl)((()=>{var a,n,u,r;return(null==(n=null!=(a=t.value.lastUpdated)?a:e.value.lastUpdated)||n)&&(null==(u=l.value.git)?void 0:u.updatedTime)?new Date(null==(r=l.value.git)?void 0:r.updatedTime).toLocaleString():null}))})(),i=(()=>{const e=(0,U.X6)(),l=(0,c.Vi)(),t=(0,c.I2)();return(0,a.Fl)((()=>{var a,n,u,r;return null!=(n=null!=(a=t.value.contributors)?a:e.value.contributors)&&!n||null==(r=null==(u=l.value.git)?void 0:u.contributors)?null:r}))})();return(e,o)=>{const s=(0,a.up)("ClientOnly");return(0,a.wg)(),(0,a.iD)("footer",ae,[(0,u.SU)(t)?((0,a.wg)(),(0,a.iD)("div",ne,[(0,a.Wm)(f,{class:"meta-item-label",item:(0,u.SU)(t)},null,8,["item"])])):(0,a.kq)("",!0),(0,u.SU)(r)?((0,a.wg)(),(0,a.iD)("div",ue,[(0,a._)("span",re,(0,n.zw)((0,u.SU)(l).lastUpdatedText)+": ",1),(0,a.Wm)(s,null,{default:(0,a.w5)((()=>[(0,a._)("span",ie,(0,n.zw)((0,u.SU)(r)),1)])),_:1})])):(0,a.kq)("",!0),(0,u.SU)(i)&&(0,u.SU)(i).length?((0,a.wg)(),(0,a.iD)("div",oe,[(0,a._)("span",se,(0,n.zw)((0,u.SU)(l).contributorsText)+": ",1),(0,a._)("span",ce,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,u.SU)(i),((e,l)=>((0,a.wg)(),(0,a.iD)(a.HY,{key:l},[(0,a._)("span",{class:"contributor",title:`email: ${e.email}`},(0,n.zw)(e.name),9,ve),l!==(0,u.SU)(i).length-1?((0,a.wg)(),(0,a.iD)(a.HY,{key:0},[de],64)):(0,a.kq)("",!0)],64)))),128))])])):(0,a.kq)("",!0)])}}}),ge={key:0,class:"page-nav"},he={class:"inner"},me={key:0,class:"prev"},ke={key:1,class:"next"},we=(0,a.aZ)({setup(e){const l=e=>!1===e?null:(0,v.HD)(e)?(0,U.sC)(e):!!(0,v.PO)(e)&&e,t=(e,l,a)=>{const n=e.findIndex((e=>e.link===l));if(-1!==n){const l=e[n+a];return(null==l?void 0:l.link)?l:null}for(const n of e)if(n.children){const e=t(n.children,l,a);if(e)return e}return null},n=(0,c.I2)(),r=(0,U.VU)(),i=(0,k.yj)(),o=(0,a.Fl)((()=>{const e=l(n.value.prev);return!1!==e?e:t(r.value,i.path,-1)})),s=(0,a.Fl)((()=>{const e=l(n.value.next);return!1!==e?e:t(r.value,i.path,1)}));return(e,l)=>(0,u.SU)(o)||(0,u.SU)(s)?((0,a.wg)(),(0,a.iD)("nav",ge,[(0,a._)("p",he,[(0,u.SU)(o)?((0,a.wg)(),(0,a.iD)("span",me,[(0,a.Wm)(f,{item:(0,u.SU)(o)},null,8,["item"])])):(0,a.kq)("",!0),(0,u.SU)(s)?((0,a.wg)(),(0,a.iD)("span",ke,[(0,a.Wm)(f,{item:(0,u.SU)(s)},null,8,["item"])])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0)}}),be={class:"page"},fe={class:"theme-default-content"},Ue=(0,a.aZ)({setup:e=>(e,l)=>{const t=(0,a.up)("Content");return(0,a.wg)(),(0,a.iD)("main",be,[(0,a.WI)(e.$slots,"top"),(0,a._)("div",fe,[(0,a.Wm)(t)]),(0,a.Wm)(pe),(0,a.Wm)(we),(0,a.WI)(e.$slots,"bottom")])}}),Se={class:"sidebar-item-children"},ye=(0,a.aZ)({props:{item:{type:Object,required:!0},depth:{type:Number,required:!1,default:0}},setup(e){const l=e,{item:t,depth:i}=(0,u.BK)(l),o=(0,k.yj)(),s=(0,k.tv)(),c=(0,a.Fl)((()=>Y(t.value,o))),v=(0,a.Fl)((()=>({"sidebar-item":!0,"sidebar-heading":0===i.value,active:c.value,collapsible:t.value.collapsible}))),d=(0,u.iH)(!0),p=(0,u.iH)(void 0);return t.value.collapsible&&(d.value=c.value,p.value=()=>{d.value=!d.value},s.afterEach((()=>{d.value=c.value}))),(e,l)=>{var o;const s=(0,a.up)("SidebarItem",!0);return(0,a.wg)(),(0,a.iD)("li",null,[(0,u.SU)(t).link?((0,a.wg)(),(0,a.j4)(f,{key:0,class:(0,n.C_)((0,u.SU)(v)),item:(0,u.SU)(t)},null,8,["class","item"])):((0,a.wg)(),(0,a.iD)("p",{key:1,tabindex:"0",class:(0,n.C_)((0,u.SU)(v)),onClick:l[0]||(l[0]=(...e)=>p.value&&p.value(...e)),onKeydown:l[1]||(l[1]=(0,r.D2)(((...e)=>p.value&&p.value(...e)),["enter"]))},[(0,a.Uk)((0,n.zw)((0,u.SU)(t).text)+" ",1),(0,u.SU)(t).collapsible?((0,a.wg)(),(0,a.iD)("span",{key:0,class:(0,n.C_)(["arrow",d.value?"down":"right"])},null,2)):(0,a.kq)("",!0)],34)),(null==(o=(0,u.SU)(t).children)?void 0:o.length)?((0,a.wg)(),(0,a.j4)($,{key:2},{default:(0,a.w5)((()=>[(0,a.wy)((0,a._)("ul",Se,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,u.SU)(t).children,(e=>((0,a.wg)(),(0,a.j4)(s,{key:`${(0,u.SU)(i)}${e.text}${e.link}`,item:e,depth:(0,u.SU)(i)+1},null,8,["item","depth"])))),128))],512),[[r.F8,d.value]])])),_:1})):(0,a.kq)("",!0)])}}}),De={key:0,class:"sidebar-items"},_e=(0,a.aZ)({setup(e){const l=(0,U.VU)();return(e,t)=>(0,u.SU)(l).length?((0,a.wg)(),(0,a.iD)("ul",De,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,u.SU)(l),(e=>((0,a.wg)(),(0,a.j4)(ye,{key:e.link||e.text,item:e},null,8,["item"])))),128))])):(0,a.kq)("",!0)}}),Fe={class:"sidebar"},We=(0,a.aZ)({setup:e=>(e,l)=>((0,a.wg)(),(0,a.iD)("aside",Fe,[(0,a.Wm)(K),(0,a.WI)(e.$slots,"top"),(0,a.Wm)(_e),(0,a.WI)(e.$slots,"bottom")]))}),xe=(0,a.aZ)({setup(e){const l=(0,c.Vi)(),t=(0,c.I2)(),i=(0,U.X6)(),o=(0,a.Fl)((()=>!1!==t.value.navbar&&!1!==i.value.navbar)),s=(0,U.VU)(),v=(0,u.iH)(!1),d=e=>{v.value="boolean"==typeof e?e:!v.value},p={x:0,y:0},g=e=>{p.x=e.changedTouches[0].clientX,p.y=e.changedTouches[0].clientY},h=e=>{const l=e.changedTouches[0].clientX-p.x,t=e.changedTouches[0].clientY-p.y;Math.abs(l)>Math.abs(t)&&Math.abs(l)>40&&(l>0&&p.x<=80?d(!0):d(!1))},m=(0,a.Fl)((()=>[{"no-navbar":!o.value,"no-sidebar":!s.value.length,"sidebar-open":v.value},t.value.pageClass]));let w;(0,a.bv)((()=>{const e=(0,k.tv)();w=e.afterEach((()=>{d(!1)}))})),(0,a.Ah)((()=>{w()}));const b=(0,U.P$)(),f=b.resolve,S=b.pending;return(e,i)=>((0,a.wg)(),(0,a.iD)("div",{class:(0,n.C_)(["theme-container",(0,u.SU)(m)]),onTouchstart:g,onTouchend:h},[(0,a.WI)(e.$slots,"navbar",{},(()=>[(0,u.SU)(o)?((0,a.wg)(),(0,a.j4)(te,{key:0,onToggleSidebar:d},{before:(0,a.w5)((()=>[(0,a.WI)(e.$slots,"navbar-before")])),after:(0,a.w5)((()=>[(0,a.WI)(e.$slots,"navbar-after")])),_:3})):(0,a.kq)("",!0)])),(0,a._)("div",{class:"sidebar-mask",onClick:i[0]||(i[0]=e=>d(!1))}),(0,a.WI)(e.$slots,"sidebar",{},(()=>[(0,a.Wm)(We,null,{top:(0,a.w5)((()=>[(0,a.WI)(e.$slots,"sidebar-top")])),bottom:(0,a.w5)((()=>[(0,a.WI)(e.$slots,"sidebar-bottom")])),_:3})])),(0,a.WI)(e.$slots,"page",{},(()=>[(0,u.SU)(t).home?((0,a.wg)(),(0,a.j4)(x,{key:0})):((0,a.wg)(),(0,a.j4)(r.uT,{key:1,name:"fade-slide-y",mode:"out-in",onBeforeEnter:(0,u.SU)(f),onBeforeLeave:(0,u.SU)(S)},{default:(0,a.w5)((()=>[((0,a.wg)(),(0,a.j4)(Ue,{key:(0,u.SU)(l).path},{top:(0,a.w5)((()=>[(0,a.WI)(e.$slots,"page-top")])),bottom:(0,a.w5)((()=>[(0,a.WI)(e.$slots,"page-bottom")])),_:3}))])),_:3},8,["onBeforeEnter","onBeforeLeave"]))]))],34))}})},3744:(e,l)=>{l.Z=(e,l)=>{const t=e.__vccOpts||e;for(const[e,a]of l)t[e]=a;return t}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunknode_red_contrib_power_saver=self.webpackChunknode_red_contrib_power_saver||[]).push([[331],{6331:(l,e,n)=>{n.r(e),n.d(e,{default:()=>G});var t=n(6252),u=n(9963),o=n(3577),a=n(2262);const r=l=>((0,t.dD)("data-v-a3dd0286"),l=l(),(0,t.Cn)(),l),s={key:0,class:"config"},c=r((()=>(0,t._)("h3",null,"Config:",-1))),i=r((()=>(0,t._)("h3",null,"Meta data:",-1))),d=r((()=>(0,t._)("hr",null,null,-1))),h=r((()=>(0,t._)("h3",null,"Days:",-1))),g=r((()=>(0,t._)("th",null,"Date",-1))),w=[(0,t.Uk)("Hours")],v=[(0,t.Uk)("Count on")],f=[(0,t.Uk)("Count off")],S=[(0,t.Uk)("Avg price")],_=[(0,t.Uk)("Count saved")],p=[(0,t.Uk)("Sum saved")],m=[(0,t.Uk)("Avg saved 1")],U=[(0,t.Uk)("Avg saved 2")],y=r((()=>(0,t._)("h3",null,"Hours:",-1))),D=r((()=>(0,t._)("label",{for:"showNegative"},"Show negative",-1))),z=r((()=>(0,t._)("label",{style:{"margin-left":"40px"}},"Show saving per sequence as:",-1))),k=r((()=>(0,t._)("label",{for:"sum"},"Sum",-1))),O=r((()=>(0,t._)("label",{for:"avg"},"Average",-1))),H=r((()=>(0,t._)("th",{colspan:"5"},"Input data",-1))),b=r((()=>(0,t._)("th",{class:"sepcol"},null,-1))),q=["colspan"],C=r((()=>(0,t._)("th",{class:"sepcol"},null,-1))),I=["colspan"],j=r((()=>(0,t._)("th",null,"Date",-1))),N=r((()=>(0,t._)("th",null,"Hour",-1))),x=r((()=>(0,t._)("th",null,"Price",-1))),P=r((()=>(0,t._)("th",null,"On/Off",-1))),Y=r((()=>(0,t._)("th",null,"Saving",-1))),M=r((()=>(0,t._)("th",{class:"sepcol"},null,-1))),A=r((()=>(0,t._)("th",{class:"sepcol"},null,-1))),K=r((()=>(0,t._)("td",{class:"sepcol"},null,-1))),T=["onClick"],V=r((()=>(0,t._)("td",{class:"sepcol"},null,-1))),E=["onClick"],F={setup(l){const{roundPrice:e}=Promise.all([n.e(490),n.e(555)]).then(n.t.bind(n,3555,23)),{DateTime:r}=n.e(490).then(n.bind(n,9490)),F=(0,a.iH)(""),G=(0,a.iH)(!1),J=(0,a.iH)("avg"),L=(0,t.Fl)((()=>"sum"===J.value));console.log("This is the setup script");const W=(0,a.iH)("");(0,t.YP)(W,(l=>{!function(l){try{const e=JSON.parse(l),n=e.payload??e;Object.keys(n).forEach((l=>Z[l]=n[l])),F.value=""}catch(l){F.value="No legal JSON data"}}(l),function(){const l=Z.hours;for(let l=0;l<Z.config.maxHoursToSaveInSequence;l++)Q[l]=l+1;for(let n=0;n<l.length;n++){const t=(0,a.qj)([]);for(let u=0;u<Q.length;u++)t[u]=n+u+1<l.length?e(l[n].price-l[n+u+1].price):null;B[n]=t}for(let n=0;n<l.length;n++){const t=(0,a.qj)([]),u=(0,a.qj)([]);for(let o=0;o<Q.length;o++){t[o]=0;for(let a=0;a<=o;a++){const r=t[o]+(n+a<l.length?B[n+a][o-a]:0);t[o]=e(r),u[o]=e(r/(o+1))}R[n]=t,X[n]=u}}}(),ll.length=0,el.row=null,el.col=null,nl.row=null,nl.col=null}));const Z=(0,a.qj)({}),B=(0,a.qj)([]),Q=(0,a.qj)([]),R=(0,a.qj)([]),X=(0,a.qj)([]),$=(0,t.Fl)((()=>{const l=Z.hours,n=[...new Set(l.map((l=>r.fromISO(l.start).toISODate())))].map((l=>({date:l})));return n.forEach((n=>{const t=l.filter((l=>r.fromISO(l.start).toISODate()===n.date));n.countHours=t.length,n.countOn=t.filter((l=>l.onOff)).length,n.countOff=t.filter((l=>!l.onOff)).length,n.countSaved=t.filter((l=>null!==l.saving)).length,n.avgPrice=e(t.reduce(((l,e)=>l+e.price),0)/n.countHours),n.sumSaved=n.countSaved>0?e(t.reduce(((l,e)=>l+e.saving??0),0)):null,n.avgSaved1=n.countSaved>0?e(n.sumSaved/n.countSaved):null,n.avgSaved2=n.countSaved>0?e(n.sumSaved/n.countHours):null})),n})),ll=(0,a.qj)([]),el=(0,a.qj)({row:null,col:null}),nl=(0,a.qj)({row:null,col:null});function tl(l){return null===nl.row||nl.row!==l&&nl.row+nl.col!==l-1?" ":"highlightSaving "}function ul(l,e){const n=ll.some((n=>n.row===l&&n.col===e)),t=l===nl.row&&e===nl.col,u="selectable ";return n&t?u+"highlightBoth":n?u+"highlightSequence":t?u+"highlightSaving":u}function ol(l,e){let n=el.row===l&&el.col===e?"highlightSequence ":" ";return X[l][e]<Z.config.minSaving&&(n+="belowMin "),n+"selectable"}return(l,e)=>{const n=(0,t.Q2)("tooltip");return(0,t.wg)(),(0,t.iD)(t.HY,null,[(0,t.wy)((0,t._)("textarea",{rows:"5",cols:"80",name:"rawData",placeHolder:"Paste data here","onUpdate:modelValue":e[0]||(e[0]=l=>W.value=l)},null,512),[[u.nr,W.value]]),(0,t._)("p",null,(0,o.zw)(F.value),1),""===F.value&&(0,a.SU)(Z).version?((0,t.wg)(),(0,t.iD)("div",s,[c,(0,t._)("p",null,"Max in sequence: "+(0,o.zw)((0,a.SU)(Z).config.maxHoursToSaveInSequence),1),(0,t._)("p",null,"Min on after max: "+(0,o.zw)((0,a.SU)(Z).config.minHoursOnAfterMaxSequenceSaved),1),(0,t._)("p",null,"Minimum saving: "+(0,o.zw)((0,a.SU)(Z).config.minSaving),1),(0,t._)("p",null,"Send when rescheduling: "+(0,o.zw)((0,a.SU)(Z).config.sendCurrentValueWhenRescheduling?"Yes":"No"),1),(0,t._)("p",null,"If no schedule, output: "+(0,o.zw)((0,a.SU)(Z).config.outputIfNoSchedule?"On":"Off"),1),i,(0,t._)("p",null,"Node version: "+(0,o.zw)((0,a.SU)(Z).version),1),(0,t._)("p",null,"Data timestamp: "+(0,o.zw)((0,a.SU)(Z).time),1),(0,t._)("p",null,"Price source: "+(0,o.zw)((0,a.SU)(Z).source),1),(0,t._)("p",null,"Current output: "+(0,o.zw)((0,a.SU)(Z).current?"On":"Off"),1),d,h,(0,t._)("table",null,[(0,t._)("tr",null,[g,(0,t.wy)(((0,t.wg)(),(0,t.iD)("th",null,w)),[[n,"Number of hours for the day"]]),(0,t.wy)(((0,t.wg)(),(0,t.iD)("th",null,v)),[[n,"Number of hours that are on"]]),(0,t.wy)(((0,t.wg)(),(0,t.iD)("th",null,f)),[[n,"Number of hours that are off"]]),(0,t.wy)(((0,t.wg)(),(0,t.iD)("th",null,S)),[[n,"Average price for the day"]]),(0,t.wy)(((0,t.wg)(),(0,t.iD)("th",null,_)),[[n,"Number of hours that are turned off (saved)"]]),(0,t.wy)(((0,t.wg)(),(0,t.iD)("th",null,p)),[[n,"Sum saved per kWh for the hours that are saved"]]),(0,t.wy)(((0,t.wg)(),(0,t.iD)("th",null,m)),[[n,"Sum saved / count saved"]]),(0,t.wy)(((0,t.wg)(),(0,t.iD)("th",null,U)),[[n,"Sum saved / Hours (whole day)"]])]),((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)((0,a.SU)($),(l=>((0,t.wg)(),(0,t.iD)("tr",{key:l.date},[(0,t._)("td",null,(0,o.zw)(l.date),1),(0,t._)("td",null,(0,o.zw)(l.countHours),1),(0,t._)("td",null,(0,o.zw)(l.countOn),1),(0,t._)("td",null,(0,o.zw)(l.countOff),1),(0,t._)("td",null,(0,o.zw)(l.avgPrice),1),(0,t._)("td",null,(0,o.zw)(l.countSaved),1),(0,t._)("td",null,(0,o.zw)(l.sumSaved),1),(0,t._)("td",null,(0,o.zw)(l.avgSaved1),1),(0,t._)("td",null,(0,o.zw)(l.avgSaved2),1)])))),128))]),y,(0,t._)("div",null,[(0,t.wy)((0,t._)("input",{type:"checkbox",id:"showNegative","onUpdate:modelValue":e[1]||(e[1]=l=>G.value=l)},null,512),[[u.e8,G.value]]),D,z,(0,t.wy)((0,t._)("input",{type:"radio",id:"sum",value:"sum","onUpdate:modelValue":e[2]||(e[2]=l=>J.value=l)},null,512),[[u.G2,J.value]]),k,(0,t.wy)((0,t._)("input",{type:"radio",id:"avg",value:"avg","onUpdate:modelValue":e[3]||(e[3]=l=>J.value=l)},null,512),[[u.G2,J.value]]),O]),(0,t._)("table",null,[(0,t._)("tr",null,[H,b,(0,t._)("th",{colspan:(0,a.SU)(Q).length},"Saving if turned off x hours",8,q),C,(0,t._)("th",{colspan:(0,a.SU)(Q).length},"Saving for sequence of x hours",8,I)]),(0,t._)("tr",null,[j,N,x,P,Y,M,((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)((0,a.SU)(Q),(l=>((0,t.wg)(),(0,t.iD)("th",{key:l},(0,o.zw)(l),1)))),128)),A,((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)((0,a.SU)(Q),(l=>((0,t.wg)(),(0,t.iD)("th",{key:l},(0,o.zw)(l),1)))),128))]),((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)((0,a.SU)(Z).hours,((l,e)=>((0,t.wg)(),(0,t.iD)("tr",{key:l.start},[(0,t._)("td",null,(0,o.zw)((0,a.SU)(r).fromISO(l.start).day),1),(0,t._)("td",null,(0,o.zw)((0,a.SU)(r).fromISO(l.start).toLocaleString((0,a.SU)(r).TIME_SIMPLE)),1),(0,t._)("td",{class:(0,o.C_)(tl(e))},(0,o.zw)(l.price),3),(0,t._)("td",null,(0,o.zw)(l.onOff?"On":"Off"),1),(0,t._)("td",null,(0,o.zw)(l.saving??""),1),K,((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)((0,a.SU)(Q),((l,n)=>((0,t.wg)(),(0,t.iD)("td",{key:l,onClick:l=>function(l,e){const n=l===nl.row&&e===nl.col;nl.row=n?null:l,nl.col=n?null:e}(e,n),class:(0,o.C_)(ul(e,n))},(0,o.zw)(G.value||(0,a.SU)(B)[e][n]>0?(0,a.SU)(B)[e][n]:""),11,T)))),128)),V,((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)((0,a.SU)(Q),((l,n)=>((0,t.wg)(),(0,t.iD)("td",{key:l,onClick:l=>function(l,e){const n=l===el.row&&e===el.col;ll.length=0,el.row=n?null:l,el.col=n?null:e;for(let t=0;t<=e&&!n;t++)ll.push({row:l+t,col:e-t})}(e,n),class:(0,o.C_)(ol(e,n))},(0,o.zw)(G.value||(0,a.SU)(R)[e][n]>0?""+((0,a.SU)(L)?(0,a.SU)(R)[e][n]:(0,a.SU)(X)[e][n]):""),11,E)))),128))])))),128))])])):(0,t.kq)("",!0)],64)}}},G=(0,n(3744).Z)(F,[["__scopeId","data-v-a3dd0286"]])},3744:(l,e)=>{e.Z=(l,e)=>{const n=l.__vccOpts||l;for(const[l,t]of e)n[l]=t;return n}}}]);