homebridge-config-ui-x 5.11.2-beta.2 → 5.11.2-beta.4

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 (246) hide show
  1. package/CHANGELOG.md +19 -2
  2. package/dist/core/auth/auth.controller.d.ts +4 -0
  3. package/dist/core/config/config.interfaces.d.ts +14 -0
  4. package/dist/core/config/config.service.d.ts +6 -0
  5. package/dist/core/config/config.service.js +8 -0
  6. package/dist/core/config/config.service.js.map +1 -1
  7. package/dist/core/config/config.startup.js +48 -17
  8. package/dist/core/config/config.startup.js.map +1 -1
  9. package/dist/core/feature-flags/feature-flags.registry.js +5 -0
  10. package/dist/core/feature-flags/feature-flags.registry.js.map +1 -1
  11. package/dist/core/homebridge-ipc/homebridge-ipc.service.js +1 -0
  12. package/dist/core/homebridge-ipc/homebridge-ipc.service.js.map +1 -1
  13. package/dist/core/spa/spa-html.service.d.ts +5 -0
  14. package/dist/core/spa/spa-html.service.js +32 -0
  15. package/dist/core/spa/spa-html.service.js.map +1 -0
  16. package/dist/core/spa/spa.filter.d.ts +3 -0
  17. package/dist/core/spa/spa.filter.js +22 -2
  18. package/dist/core/spa/spa.filter.js.map +1 -1
  19. package/dist/core/ssl/ssl-cert-generator.service.d.ts +15 -0
  20. package/dist/core/ssl/ssl-cert-generator.service.js +125 -0
  21. package/dist/core/ssl/ssl-cert-generator.service.js.map +1 -0
  22. package/dist/globalDefaults.js +3 -0
  23. package/dist/globalDefaults.js.map +1 -1
  24. package/dist/main.js +18 -4
  25. package/dist/main.js.map +1 -1
  26. package/dist/modules/accessories/accessories.controller.d.ts +1 -1
  27. package/dist/modules/accessories/accessories.interfaces.d.ts +94 -0
  28. package/dist/modules/accessories/accessories.interfaces.js +2 -0
  29. package/dist/modules/accessories/accessories.interfaces.js.map +1 -0
  30. package/dist/modules/accessories/accessories.module.js +2 -0
  31. package/dist/modules/accessories/accessories.module.js.map +1 -1
  32. package/dist/modules/accessories/accessories.service.d.ts +21 -3
  33. package/dist/modules/accessories/accessories.service.js +280 -17
  34. package/dist/modules/accessories/accessories.service.js.map +1 -1
  35. package/dist/modules/child-bridges/child-bridges.interfaces.d.ts +9 -0
  36. package/dist/modules/config-editor/config-editor.controller.d.ts +4 -0
  37. package/dist/modules/config-editor/config-editor.controller.js +64 -0
  38. package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
  39. package/dist/modules/config-editor/config-editor.service.d.ts +6 -1
  40. package/dist/modules/config-editor/config-editor.service.js +45 -1
  41. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  42. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +1 -1
  43. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
  44. package/dist/modules/plugins/plugins.service.js +15 -0
  45. package/dist/modules/plugins/plugins.service.js.map +1 -1
  46. package/dist/modules/server/server.controller.d.ts +50 -0
  47. package/dist/modules/server/server.controller.js +201 -2
  48. package/dist/modules/server/server.controller.js.map +1 -1
  49. package/dist/modules/server/server.service.d.ts +48 -0
  50. package/dist/modules/server/server.service.js +502 -14
  51. package/dist/modules/server/server.service.js.map +1 -1
  52. package/dist/modules/status/status.gateway.d.ts +2 -0
  53. package/dist/modules/status/status.interfaces.d.ts +11 -0
  54. package/dist/modules/status/status.service.d.ts +4 -1
  55. package/dist/modules/status/status.service.js +21 -2
  56. package/dist/modules/status/status.service.js.map +1 -1
  57. package/docs/matter-todo.md +15 -0
  58. package/docs/ssl-upload-pr.md +103 -0
  59. package/package.json +3 -1
  60. package/public/3rdpartylicenses.txt +595 -621
  61. package/public/assets/matter.svg +8 -0
  62. package/public/assets/plugin-ui-utils/ui.js +3 -0
  63. package/public/assets/plugin-ui-utils/ui.js.map +1 -1
  64. package/public/chunk-2TQEV57U.js +2 -0
  65. package/public/chunk-2Y6QBPFY.js +1 -0
  66. package/public/chunk-3LKYOCGJ.js +1 -0
  67. package/public/chunk-3YTNATAH.js +1 -0
  68. package/public/chunk-42Y35W3J.js +2 -0
  69. package/public/chunk-47QTMPRY.js +1 -0
  70. package/public/chunk-4KXPUEE3.js +4 -0
  71. package/public/chunk-4PQ5WRGK.js +1 -0
  72. package/public/chunk-4TAGCB7R.js +1 -0
  73. package/public/chunk-4VLAXCSY.js +1 -0
  74. package/public/chunk-5K3S6ZXB.js +1 -0
  75. package/public/chunk-6BRZAIW2.js +3 -0
  76. package/public/chunk-6QJUZNZL.js +1 -0
  77. package/public/chunk-6ZOSTYPR.js +1 -0
  78. package/public/{chunk-ZV26JTV7.js → chunk-7JNVXXNR.js} +1 -1
  79. package/public/chunk-7PPGGAHV.js +1 -0
  80. package/public/chunk-AM5CKSLZ.js +1 -0
  81. package/public/chunk-B4AJQJMI.js +1 -0
  82. package/public/chunk-BBRC6PRL.js +1 -0
  83. package/public/chunk-BGCYR25X.js +1 -0
  84. package/public/chunk-BHA7V2NQ.js +1 -0
  85. package/public/{chunk-KI6BE77G.js → chunk-BMOLDRJ3.js} +1 -1
  86. package/public/chunk-BVJS76CN.js +1 -0
  87. package/public/chunk-CNUIQJSO.js +1 -0
  88. package/public/chunk-CPECPTSN.js +1 -0
  89. package/public/{chunk-75KR2TK6.js → chunk-DBMKB5Z2.js} +1 -1
  90. package/public/chunk-DEM3FH7C.js +1 -0
  91. package/public/chunk-E35SHTFY.js +1 -0
  92. package/public/chunk-EAYA44IV.js +1 -0
  93. package/public/chunk-EBHP3YOF.js +1 -0
  94. package/public/chunk-EMF6ZINV.js +4 -0
  95. package/public/chunk-FJB6YCFU.js +1 -0
  96. package/public/chunk-FKJY3Z2V.js +1 -0
  97. package/public/chunk-FQDRGOO5.js +1 -0
  98. package/public/chunk-FRMRAPF2.js +1 -0
  99. package/public/chunk-FYHEIYSO.js +5 -0
  100. package/public/chunk-GEQRIXEF.js +1 -0
  101. package/public/chunk-GJ42U6LP.js +16 -0
  102. package/public/chunk-GT2YL2TI.js +1 -0
  103. package/public/chunk-GTIVJH6Y.js +1 -0
  104. package/public/chunk-GYMWB5SQ.js +1 -0
  105. package/public/chunk-H2D3SCVU.js +1 -0
  106. package/public/{chunk-OMFNURQZ.js → chunk-H7F7H5MW.js} +1 -1
  107. package/public/chunk-HKOUIAFO.js +1 -0
  108. package/public/chunk-I5V7VF5M.js +1 -0
  109. package/public/chunk-IBFLM7UM.js +1 -0
  110. package/public/chunk-IZHFI46L.js +2 -0
  111. package/public/chunk-JNSPIONO.js +1 -0
  112. package/public/chunk-JUCPYKUR.js +1 -0
  113. package/public/chunk-KJH2IPMR.js +1 -0
  114. package/public/chunk-KPSGNAPN.js +1 -0
  115. package/public/chunk-LH4WRTR2.js +1 -0
  116. package/public/chunk-LHXNE56J.js +1 -0
  117. package/public/chunk-LOEOVQRM.js +1 -0
  118. package/public/chunk-LRB7FQNQ.js +1 -0
  119. package/public/chunk-LTYAICHT.js +1 -0
  120. package/public/chunk-LVBVUIJY.js +12 -0
  121. package/public/chunk-MKV5RAJQ.js +4 -0
  122. package/public/chunk-MPQEE6FH.js +1 -0
  123. package/public/chunk-MRPQNEON.js +35 -0
  124. package/public/chunk-MS4K4KAK.js +5 -0
  125. package/public/chunk-N6AN65NK.js +3 -0
  126. package/public/chunk-NCLG2ZY5.js +1 -0
  127. package/public/chunk-OHJQJ73S.js +1 -0
  128. package/public/chunk-P3DOEH3R.js +1 -0
  129. package/public/chunk-PEOTW7KR.js +1 -0
  130. package/public/chunk-PQM33D72.js +1 -0
  131. package/public/chunk-Q4PUZM2R.js +1 -0
  132. package/public/chunk-QBG7SKRK.js +68 -0
  133. package/public/chunk-QGLAR7UC.js +1 -0
  134. package/public/chunk-QK4CWVVD.js +1 -0
  135. package/public/chunk-QPGHC7OK.js +1 -0
  136. package/public/chunk-RAG53DHZ.js +1 -0
  137. package/public/chunk-RHJRKBK2.js +1 -0
  138. package/public/chunk-RQ42YKAP.js +1 -0
  139. package/public/chunk-S4BMZ4C4.js +1 -0
  140. package/public/chunk-S4O5HRCM.js +1 -0
  141. package/public/chunk-SE6AXFTZ.js +1 -0
  142. package/public/chunk-SIODBMHU.js +1 -0
  143. package/public/chunk-SS725Q7L.js +1 -0
  144. package/public/chunk-STXA2UWR.js +1 -0
  145. package/public/chunk-SVEGWVQJ.js +1 -0
  146. package/public/chunk-T472BWYK.js +1 -0
  147. package/public/chunk-TPGJVI7J.js +1 -0
  148. package/public/chunk-TRDYZJYI.js +1 -0
  149. package/public/chunk-TTX3XSDC.js +1 -0
  150. package/public/chunk-TVEZZ2CK.js +1 -0
  151. package/public/chunk-UDXPJS32.js +1 -0
  152. package/public/chunk-UO7KCTHV.js +1 -0
  153. package/public/chunk-UOOJPKZJ.js +1 -0
  154. package/public/chunk-VAD47NOZ.js +1 -0
  155. package/public/chunk-VBQ2CSUE.js +1 -0
  156. package/public/chunk-VWBS6KRT.js +1 -0
  157. package/public/chunk-VYAAI7PY.js +1 -0
  158. package/public/chunk-WBTFILXV.js +19 -0
  159. package/public/chunk-WO6QHRQI.js +1 -0
  160. package/public/chunk-WOMMYJV2.js +1 -0
  161. package/public/chunk-WOXYSKNU.js +1 -0
  162. package/public/{chunk-BKCIVF4W.js → chunk-WX345PMX.js} +52 -2
  163. package/public/chunk-XGK5YFH6.js +19 -0
  164. package/public/chunk-XLJ6VVK3.js +8 -0
  165. package/public/chunk-XPSIQPO4.js +1 -0
  166. package/public/chunk-XQXAVYM6.js +1 -0
  167. package/public/chunk-YBGB3IOQ.js +1 -0
  168. package/public/chunk-YHH6UACV.js +1 -0
  169. package/public/chunk-YLRX4V4V.js +1 -0
  170. package/public/chunk-YM6RL7NW.js +1 -0
  171. package/public/chunk-YMEXNW5V.js +1 -0
  172. package/public/chunk-YSJHLHJ6.js +1 -0
  173. package/public/chunk-ZCGZM7LU.js +1 -0
  174. package/public/chunk-ZDUAXPNP.js +1 -0
  175. package/public/index.html +2 -2
  176. package/public/main-SPPQL5YI.js +1 -0
  177. package/public/media/matter-P563JGDL.svg +8 -0
  178. package/public/polyfills-34U4WL3Z.js +1 -0
  179. package/public/styles-CT2LPGES.css +1 -0
  180. package/scripts/extract-plugin-alias.js +53 -2
  181. package/public/chunk-2VYCMFLK.js +0 -1
  182. package/public/chunk-337WAYBF.js +0 -1
  183. package/public/chunk-3F6KNL45.js +0 -5
  184. package/public/chunk-3GUIMBZA.js +0 -50
  185. package/public/chunk-4BH7J5ZU.js +0 -1
  186. package/public/chunk-4MSKGZXZ.js +0 -1
  187. package/public/chunk-4STYOKXR.js +0 -1
  188. package/public/chunk-5GRM2PNI.js +0 -8
  189. package/public/chunk-6C5CYDDU.js +0 -1
  190. package/public/chunk-6T52JN5R.js +0 -1
  191. package/public/chunk-7EKDGIG7.js +0 -1
  192. package/public/chunk-7O3SPIWC.js +0 -1
  193. package/public/chunk-ACK5QKZR.js +0 -1
  194. package/public/chunk-ADJ6TEYQ.js +0 -5
  195. package/public/chunk-ADWZU2CD.js +0 -1
  196. package/public/chunk-AGDDSLXN.js +0 -1
  197. package/public/chunk-ASZKPQUN.js +0 -1
  198. package/public/chunk-AZY2DNUN.js +0 -1
  199. package/public/chunk-B6MBMYJR.js +0 -1
  200. package/public/chunk-BBLJIMXX.js +0 -1
  201. package/public/chunk-BON2K2BD.js +0 -2
  202. package/public/chunk-BRP3EHP7.js +0 -1
  203. package/public/chunk-C5VP7CRC.js +0 -1
  204. package/public/chunk-C6X7E5CS.js +0 -1
  205. package/public/chunk-CM3N3C3W.js +0 -1
  206. package/public/chunk-CV2KW5FI.js +0 -1
  207. package/public/chunk-EDQF53QR.js +0 -1
  208. package/public/chunk-EZJQ5APU.js +0 -1
  209. package/public/chunk-FRNPHIV3.js +0 -1
  210. package/public/chunk-GBTKBQ2X.js +0 -16
  211. package/public/chunk-HDF4JHFI.js +0 -4
  212. package/public/chunk-JEUVQW5P.js +0 -1
  213. package/public/chunk-KWAS7MXI.js +0 -1
  214. package/public/chunk-KWC5QURK.js +0 -8
  215. package/public/chunk-KXNC6WH6.js +0 -1
  216. package/public/chunk-MMBLECEN.js +0 -1
  217. package/public/chunk-NQB7BEZZ.js +0 -1
  218. package/public/chunk-OKAPP6YO.js +0 -1
  219. package/public/chunk-OM7GHRRK.js +0 -1
  220. package/public/chunk-OOM2PIRM.js +0 -5
  221. package/public/chunk-OZKGVJ4N.js +0 -1
  222. package/public/chunk-PT24GQ5K.js +0 -1
  223. package/public/chunk-QPI2YWGC.js +0 -1
  224. package/public/chunk-QQRM2O4S.js +0 -3
  225. package/public/chunk-QXD4RXA4.js +0 -1
  226. package/public/chunk-QZU43P2A.js +0 -1
  227. package/public/chunk-R3Y3VSF7.js +0 -4
  228. package/public/chunk-R7Q4CXAE.js +0 -1
  229. package/public/chunk-RAG7VYNH.js +0 -40
  230. package/public/chunk-RY3E4AUI.js +0 -1
  231. package/public/chunk-SCWBTFUY.js +0 -1
  232. package/public/chunk-SRFINKMY.js +0 -1
  233. package/public/chunk-TRDROX2J.js +0 -1
  234. package/public/chunk-UH7ZNLL5.js +0 -19
  235. package/public/chunk-V2WJ2SKN.js +0 -1
  236. package/public/chunk-VZ3XY34I.js +0 -2
  237. package/public/chunk-W663VLRG.js +0 -1
  238. package/public/chunk-WDXU4PPN.js +0 -1
  239. package/public/chunk-WEXOQCVG.js +0 -1
  240. package/public/chunk-XDFBUXFD.js +0 -1
  241. package/public/chunk-XPGJPK66.js +0 -4
  242. package/public/chunk-YXLLPJEL.js +0 -1
  243. package/public/chunk-ZXUIFQS4.js +0 -51
  244. package/public/main-YD5INHXP.js +0 -1
  245. package/public/polyfills-5KWHJ7II.js +0 -2
  246. package/public/styles-7EFV5QBG.css +0 -1
@@ -0,0 +1,5 @@
1
+ import{a as ct}from"./chunk-BGCYR25X.js";import{a as Dn}from"./chunk-UO7KCTHV.js";import{g as mi}from"./chunk-2TQEV57U.js";import{$b as lt,A as ei,Aa as W,Ab as xt,Ac as yn,B as Mt,Bb as di,Cb as un,Db as kt,Eb as Ft,Fb as We,G as tt,Gb as ui,H as on,Hb as hi,Hc as wn,I as sn,Ib as hn,J as rn,Jb as st,Kb as rt,Lb as pn,O as an,Ob as _n,P as ln,Pb as fn,Q as ti,Qb as gn,R as j,Rb as pi,S as it,Sb as ee,Sc as fe,T as Ct,W as ii,X as K,Xb as pe,Y as N,Yb as mn,Yc as Bt,Za as Fe,Zb as le,_ as cn,_b as at,aa as c,ac as _e,bc as Pt,c as Zi,cb as It,cc as Y,d as $,db as nt,dc as q,e as en,ea as ni,eb as ot,g as Et,ga as Tt,gc as vn,ha as Nt,i as et,ic as P,jc as De,ka as ue,kb as ai,kc as _i,la as re,lc as fi,ma as oi,nb as ge,o as xe,oa as D,ob as I,pa as ae,pb as T,q as tn,rb as dn,sb as li,tb as Rt,v as X,w as nn,wc as gi,xa as je,xb as ci,ya as si,yb as he,yc as bn,z as ke,za as ri,zb as St}from"./chunk-MKV5RAJQ.js";import{a as Zt,b as qi}from"./chunk-B4AJQJMI.js";var R="top",U="bottom",B="right",x="left",At="auto",Oe=[R,U,B,x],me="start",Pe="end",On="clippingParents",Gt="viewport",ze="popper",En="reference",vi=Oe.reduce(function(e,o){return e.concat([o+"-"+me,o+"-"+Pe])},[]),Ht=[].concat(Oe,[At]).reduce(function(e,o){return e.concat([o,o+"-"+me,o+"-"+Pe])},[]),To="beforeRead",No="read",Io="afterRead",Ro="beforeMain",So="main",xo="afterMain",ko="beforeWrite",Fo="write",Po="afterWrite",Mn=[To,No,Io,Ro,So,xo,ko,Fo,Po];function A(e){return e?(e.nodeName||"").toLowerCase():null}function O(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var o=e.ownerDocument;return o&&o.defaultView||window}return e}function te(e){var o=O(e).Element;return e instanceof o||e instanceof Element}function k(e){var o=O(e).HTMLElement;return e instanceof o||e instanceof HTMLElement}function Xe(e){if(typeof ShadowRoot>"u")return!1;var o=O(e).ShadowRoot;return e instanceof o||e instanceof ShadowRoot}function Bo(e){var o=e.state;Object.keys(o.elements).forEach(function(t){var i=o.styles[t]||{},n=o.attributes[t]||{},s=o.elements[t];!k(s)||!A(s)||(Object.assign(s.style,i),Object.keys(n).forEach(function(r){var a=n[r];a===!1?s.removeAttribute(r):s.setAttribute(r,a===!0?"":a)}))})}function Ao(e){var o=e.state,t={popper:{position:o.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(o.elements.popper.style,t.popper),o.styles=t,o.elements.arrow&&Object.assign(o.elements.arrow.style,t.arrow),function(){Object.keys(o.elements).forEach(function(i){var n=o.elements[i],s=o.attributes[i]||{},r=Object.keys(o.styles.hasOwnProperty(i)?o.styles[i]:t[i]),a=r.reduce(function(l,u){return l[u]="",l},{});!k(n)||!A(n)||(Object.assign(n.style,a),Object.keys(s).forEach(function(l){n.removeAttribute(l)}))})}}var Cn={name:"applyStyles",enabled:!0,phase:"write",fn:Bo,effect:Ao,requires:["computeStyles"]};function G(e){return e.split("-")[0]}var ce=Math.max,Be=Math.min,ve=Math.round;function Ke(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(o){return o.brand+"/"+o.version}).join(" "):navigator.userAgent}function dt(){return!/^((?!chrome|android).)*safari/i.test(Ke())}function ie(e,o,t){o===void 0&&(o=!1),t===void 0&&(t=!1);var i=e.getBoundingClientRect(),n=1,s=1;o&&k(e)&&(n=e.offsetWidth>0&&ve(i.width)/e.offsetWidth||1,s=e.offsetHeight>0&&ve(i.height)/e.offsetHeight||1);var r=te(e)?O(e):window,a=r.visualViewport,l=!dt()&&t,u=(i.left+(l&&a?a.offsetLeft:0))/n,d=(i.top+(l&&a?a.offsetTop:0))/s,f=i.width/n,p=i.height/s;return{width:f,height:p,top:d,right:u+f,bottom:d+p,left:u,x:u,y:d}}function Ae(e){var o=ie(e),t=e.offsetWidth,i=e.offsetHeight;return Math.abs(o.width-t)<=1&&(t=o.width),Math.abs(o.height-i)<=1&&(i=o.height),{x:e.offsetLeft,y:e.offsetTop,width:t,height:i}}function ut(e,o){var t=o.getRootNode&&o.getRootNode();if(e.contains(o))return!0;if(t&&Xe(t)){var i=o;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function Q(e){return O(e).getComputedStyle(e)}function bi(e){return["table","td","th"].indexOf(A(e))>=0}function L(e){return((te(e)?e.ownerDocument:e.document)||window.document).documentElement}function be(e){return A(e)==="html"?e:e.assignedSlot||e.parentNode||(Xe(e)?e.host:null)||L(e)}function Tn(e){return!k(e)||Q(e).position==="fixed"?null:e.offsetParent}function Go(e){var o=/firefox/i.test(Ke()),t=/Trident/i.test(Ke());if(t&&k(e)){var i=Q(e);if(i.position==="fixed")return null}var n=be(e);for(Xe(n)&&(n=n.host);k(n)&&["html","body"].indexOf(A(n))<0;){var s=Q(n);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||o&&s.willChange==="filter"||o&&s.filter&&s.filter!=="none")return n;n=n.parentNode}return null}function de(e){for(var o=O(e),t=Tn(e);t&&bi(t)&&Q(t).position==="static";)t=Tn(t);return t&&(A(t)==="html"||A(t)==="body"&&Q(t).position==="static")?o:t||Go(e)||o}function Ge(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function He(e,o,t){return ce(e,Be(o,t))}function Nn(e,o,t){var i=He(e,o,t);return i>t?t:i}function ht(){return{top:0,right:0,bottom:0,left:0}}function pt(e){return Object.assign({},ht(),e)}function _t(e,o){return o.reduce(function(t,i){return t[i]=e,t},{})}var Ho=function(o,t){return o=typeof o=="function"?o(Object.assign({},t.rects,{placement:t.placement})):o,pt(typeof o!="number"?o:_t(o,Oe))};function Uo(e){var o,t=e.state,i=e.name,n=e.options,s=t.elements.arrow,r=t.modifiersData.popperOffsets,a=G(t.placement),l=Ge(a),u=[x,B].indexOf(a)>=0,d=u?"height":"width";if(!(!s||!r)){var f=Ho(n.padding,t),p=Ae(s),h=l==="y"?R:x,v=l==="y"?U:B,_=t.rects.reference[d]+t.rects.reference[l]-r[l]-t.rects.popper[d],g=r[l]-t.rects.reference[l],w=de(s),E=w?l==="y"?w.clientHeight||0:w.clientWidth||0:0,C=_/2-g/2,m=f[h],b=E-p[d]-f[v],y=E/2-p[d]/2+C,M=He(m,y,b),H=l;t.modifiersData[i]=(o={},o[H]=M,o.centerOffset=M-y,o)}}function Lo(e){var o=e.state,t=e.options,i=t.element,n=i===void 0?"[data-popper-arrow]":i;n!=null&&(typeof n=="string"&&(n=o.elements.popper.querySelector(n),!n)||ut(o.elements.popper,n)&&(o.elements.arrow=n))}var yi={name:"arrow",enabled:!0,phase:"main",fn:Uo,effect:Lo,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ne(e){return e.split("-")[1]}var Vo={top:"auto",right:"auto",bottom:"auto",left:"auto"};function $o(e,o){var t=e.x,i=e.y,n=o.devicePixelRatio||1;return{x:ve(t*n)/n||0,y:ve(i*n)/n||0}}function In(e){var o,t=e.popper,i=e.popperRect,n=e.placement,s=e.variation,r=e.offsets,a=e.position,l=e.gpuAcceleration,u=e.adaptive,d=e.roundOffsets,f=e.isFixed,p=r.x,h=p===void 0?0:p,v=r.y,_=v===void 0?0:v,g=typeof d=="function"?d({x:h,y:_}):{x:h,y:_};h=g.x,_=g.y;var w=r.hasOwnProperty("x"),E=r.hasOwnProperty("y"),C=x,m=R,b=window;if(u){var y=de(t),M="clientHeight",H="clientWidth";if(y===O(t)&&(y=L(t),Q(y).position!=="static"&&a==="absolute"&&(M="scrollHeight",H="scrollWidth")),y=y,n===R||(n===x||n===B)&&s===Pe){m=U;var F=f&&y===b&&b.visualViewport?b.visualViewport.height:y[M];_-=F-i.height,_*=l?1:-1}if(n===x||(n===R||n===U)&&s===Pe){C=B;var S=f&&y===b&&b.visualViewport?b.visualViewport.width:y[H];h-=S-i.width,h*=l?1:-1}}var V=Object.assign({position:a},u&&Vo),oe=d===!0?$o({x:h,y:_},O(t)):{x:h,y:_};if(h=oe.x,_=oe.y,l){var z;return Object.assign({},V,(z={},z[m]=E?"0":"",z[C]=w?"0":"",z.transform=(b.devicePixelRatio||1)<=1?"translate("+h+"px, "+_+"px)":"translate3d("+h+"px, "+_+"px, 0)",z))}return Object.assign({},V,(o={},o[m]=E?_+"px":"",o[C]=w?h+"px":"",o.transform="",o))}function jo(e){var o=e.state,t=e.options,i=t.gpuAcceleration,n=i===void 0?!0:i,s=t.adaptive,r=s===void 0?!0:s,a=t.roundOffsets,l=a===void 0?!0:a,u={placement:G(o.placement),variation:ne(o.placement),popper:o.elements.popper,popperRect:o.rects.popper,gpuAcceleration:n,isFixed:o.options.strategy==="fixed"};o.modifiersData.popperOffsets!=null&&(o.styles.popper=Object.assign({},o.styles.popper,In(Object.assign({},u,{offsets:o.modifiersData.popperOffsets,position:o.options.strategy,adaptive:r,roundOffsets:l})))),o.modifiersData.arrow!=null&&(o.styles.arrow=Object.assign({},o.styles.arrow,In(Object.assign({},u,{offsets:o.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),o.attributes.popper=Object.assign({},o.attributes.popper,{"data-popper-placement":o.placement})}var Rn={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:jo,data:{}};var Ut={passive:!0};function Wo(e){var o=e.state,t=e.instance,i=e.options,n=i.scroll,s=n===void 0?!0:n,r=i.resize,a=r===void 0?!0:r,l=O(o.elements.popper),u=[].concat(o.scrollParents.reference,o.scrollParents.popper);return s&&u.forEach(function(d){d.addEventListener("scroll",t.update,Ut)}),a&&l.addEventListener("resize",t.update,Ut),function(){s&&u.forEach(function(d){d.removeEventListener("scroll",t.update,Ut)}),a&&l.removeEventListener("resize",t.update,Ut)}}var Sn={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Wo,data:{}};var zo={left:"right",right:"left",bottom:"top",top:"bottom"};function Qe(e){return e.replace(/left|right|bottom|top/g,function(o){return zo[o]})}var Xo={start:"end",end:"start"};function Lt(e){return e.replace(/start|end/g,function(o){return Xo[o]})}function Ue(e){var o=O(e),t=o.pageXOffset,i=o.pageYOffset;return{scrollLeft:t,scrollTop:i}}function Le(e){return ie(L(e)).left+Ue(e).scrollLeft}function wi(e,o){var t=O(e),i=L(e),n=t.visualViewport,s=i.clientWidth,r=i.clientHeight,a=0,l=0;if(n){s=n.width,r=n.height;var u=dt();(u||!u&&o==="fixed")&&(a=n.offsetLeft,l=n.offsetTop)}return{width:s,height:r,x:a+Le(e),y:l}}function Di(e){var o,t=L(e),i=Ue(e),n=(o=e.ownerDocument)==null?void 0:o.body,s=ce(t.scrollWidth,t.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),r=ce(t.scrollHeight,t.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),a=-i.scrollLeft+Le(e),l=-i.scrollTop;return Q(n||t).direction==="rtl"&&(a+=ce(t.clientWidth,n?n.clientWidth:0)-s),{width:s,height:r,x:a,y:l}}function Ve(e){var o=Q(e),t=o.overflow,i=o.overflowX,n=o.overflowY;return/auto|scroll|overlay|hidden/.test(t+n+i)}function Vt(e){return["html","body","#document"].indexOf(A(e))>=0?e.ownerDocument.body:k(e)&&Ve(e)?e:Vt(be(e))}function Ee(e,o){var t;o===void 0&&(o=[]);var i=Vt(e),n=i===((t=e.ownerDocument)==null?void 0:t.body),s=O(i),r=n?[s].concat(s.visualViewport||[],Ve(i)?i:[]):i,a=o.concat(r);return n?a:a.concat(Ee(be(r)))}function Je(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Ko(e,o){var t=ie(e,!1,o==="fixed");return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function xn(e,o,t){return o===Gt?Je(wi(e,t)):te(o)?Ko(o,t):Je(Di(L(e)))}function Qo(e){var o=Ee(be(e)),t=["absolute","fixed"].indexOf(Q(e).position)>=0,i=t&&k(e)?de(e):e;return te(i)?o.filter(function(n){return te(n)&&ut(n,i)&&A(n)!=="body"}):[]}function Oi(e,o,t,i){var n=o==="clippingParents"?Qo(e):[].concat(o),s=[].concat(n,[t]),r=s[0],a=s.reduce(function(l,u){var d=xn(e,u,i);return l.top=ce(d.top,l.top),l.right=Be(d.right,l.right),l.bottom=Be(d.bottom,l.bottom),l.left=ce(d.left,l.left),l},xn(e,r,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function ft(e){var o=e.reference,t=e.element,i=e.placement,n=i?G(i):null,s=i?ne(i):null,r=o.x+o.width/2-t.width/2,a=o.y+o.height/2-t.height/2,l;switch(n){case R:l={x:r,y:o.y-t.height};break;case U:l={x:r,y:o.y+o.height};break;case B:l={x:o.x+o.width,y:a};break;case x:l={x:o.x-t.width,y:a};break;default:l={x:o.x,y:o.y}}var u=n?Ge(n):null;if(u!=null){var d=u==="y"?"height":"width";switch(s){case me:l[u]=l[u]-(o[d]/2-t[d]/2);break;case Pe:l[u]=l[u]+(o[d]/2-t[d]/2);break;default:}}return l}function Me(e,o){o===void 0&&(o={});var t=o,i=t.placement,n=i===void 0?e.placement:i,s=t.strategy,r=s===void 0?e.strategy:s,a=t.boundary,l=a===void 0?On:a,u=t.rootBoundary,d=u===void 0?Gt:u,f=t.elementContext,p=f===void 0?ze:f,h=t.altBoundary,v=h===void 0?!1:h,_=t.padding,g=_===void 0?0:_,w=pt(typeof g!="number"?g:_t(g,Oe)),E=p===ze?En:ze,C=e.rects.popper,m=e.elements[v?E:p],b=Oi(te(m)?m:m.contextElement||L(e.elements.popper),l,d,r),y=ie(e.elements.reference),M=ft({reference:y,element:C,strategy:"absolute",placement:n}),H=Je(Object.assign({},C,M)),F=p===ze?H:y,S={top:b.top-F.top+w.top,bottom:F.bottom-b.bottom+w.bottom,left:b.left-F.left+w.left,right:F.right-b.right+w.right},V=e.modifiersData.offset;if(p===ze&&V){var oe=V[n];Object.keys(S).forEach(function(z){var Te=[B,U].indexOf(z)>=0?1:-1,Ne=[R,U].indexOf(z)>=0?"y":"x";S[z]+=oe[Ne]*Te})}return S}function Ei(e,o){o===void 0&&(o={});var t=o,i=t.placement,n=t.boundary,s=t.rootBoundary,r=t.padding,a=t.flipVariations,l=t.allowedAutoPlacements,u=l===void 0?Ht:l,d=ne(i),f=d?a?vi:vi.filter(function(v){return ne(v)===d}):Oe,p=f.filter(function(v){return u.indexOf(v)>=0});p.length===0&&(p=f);var h=p.reduce(function(v,_){return v[_]=Me(e,{placement:_,boundary:n,rootBoundary:s,padding:r})[G(_)],v},{});return Object.keys(h).sort(function(v,_){return h[v]-h[_]})}function Jo(e){if(G(e)===At)return[];var o=Qe(e);return[Lt(e),o,Lt(o)]}function Yo(e){var o=e.state,t=e.options,i=e.name;if(!o.modifiersData[i]._skip){for(var n=t.mainAxis,s=n===void 0?!0:n,r=t.altAxis,a=r===void 0?!0:r,l=t.fallbackPlacements,u=t.padding,d=t.boundary,f=t.rootBoundary,p=t.altBoundary,h=t.flipVariations,v=h===void 0?!0:h,_=t.allowedAutoPlacements,g=o.options.placement,w=G(g),E=w===g,C=l||(E||!v?[Qe(g)]:Jo(g)),m=[g].concat(C).reduce(function($e,we){return $e.concat(G(we)===At?Ei(o,{placement:we,boundary:d,rootBoundary:f,padding:u,flipVariations:v,allowedAutoPlacements:_}):we)},[]),b=o.rects.reference,y=o.rects.popper,M=new Map,H=!0,F=m[0],S=0;S<m.length;S++){var V=m[S],oe=G(V),z=ne(V)===me,Te=[R,U].indexOf(oe)>=0,Ne=Te?"width":"height",J=Me(o,{placement:V,boundary:d,rootBoundary:f,altBoundary:p,padding:u}),se=Te?z?B:x:z?U:R;b[Ne]>y[Ne]&&(se=Qe(se));var bt=Qe(se),Ie=[];if(s&&Ie.push(J[oe]<=0),a&&Ie.push(J[se]<=0,J[bt]<=0),Ie.every(function($e){return $e})){F=V,H=!1;break}M.set(V,Ie)}if(H)for(var yt=v?3:1,Qt=function(we){var Ze=m.find(function(Dt){var Re=M.get(Dt);if(Re)return Re.slice(0,we).every(function(Jt){return Jt})});if(Ze)return F=Ze,"break"},qe=yt;qe>0;qe--){var wt=Qt(qe);if(wt==="break")break}o.placement!==F&&(o.modifiersData[i]._skip=!0,o.placement=F,o.reset=!0)}}var Mi={name:"flip",enabled:!0,phase:"main",fn:Yo,requiresIfExists:["offset"],data:{_skip:!1}};function qo(e,o,t){var i=G(e),n=[x,R].indexOf(i)>=0?-1:1,s=typeof t=="function"?t(Object.assign({},o,{placement:e})):t,r=s[0],a=s[1];return r=r||0,a=(a||0)*n,[x,B].indexOf(i)>=0?{x:a,y:r}:{x:r,y:a}}function Zo(e){var o=e.state,t=e.options,i=e.name,n=t.offset,s=n===void 0?[0,0]:n,r=Ht.reduce(function(d,f){return d[f]=qo(f,o.rects,s),d},{}),a=r[o.placement],l=a.x,u=a.y;o.modifiersData.popperOffsets!=null&&(o.modifiersData.popperOffsets.x+=l,o.modifiersData.popperOffsets.y+=u),o.modifiersData[i]=r}var Ci={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Zo};function es(e){var o=e.state,t=e.name;o.modifiersData[t]=ft({reference:o.rects.reference,element:o.rects.popper,strategy:"absolute",placement:o.placement})}var kn={name:"popperOffsets",enabled:!0,phase:"read",fn:es,data:{}};function Ti(e){return e==="x"?"y":"x"}function ts(e){var o=e.state,t=e.options,i=e.name,n=t.mainAxis,s=n===void 0?!0:n,r=t.altAxis,a=r===void 0?!1:r,l=t.boundary,u=t.rootBoundary,d=t.altBoundary,f=t.padding,p=t.tether,h=p===void 0?!0:p,v=t.tetherOffset,_=v===void 0?0:v,g=Me(o,{boundary:l,rootBoundary:u,padding:f,altBoundary:d}),w=G(o.placement),E=ne(o.placement),C=!E,m=Ge(w),b=Ti(m),y=o.modifiersData.popperOffsets,M=o.rects.reference,H=o.rects.popper,F=typeof _=="function"?_(Object.assign({},o.rects,{placement:o.placement})):_,S=typeof F=="number"?{mainAxis:F,altAxis:F}:Object.assign({mainAxis:0,altAxis:0},F),V=o.modifiersData.offset?o.modifiersData.offset[o.placement]:null,oe={x:0,y:0};if(y){if(s){var z,Te=m==="y"?R:x,Ne=m==="y"?U:B,J=m==="y"?"height":"width",se=y[m],bt=se+g[Te],Ie=se-g[Ne],yt=h?-H[J]/2:0,Qt=E===me?M[J]:H[J],qe=E===me?-H[J]:-M[J],wt=o.elements.arrow,$e=h&&wt?Ae(wt):{width:0,height:0},we=o.modifiersData["arrow#persistent"]?o.modifiersData["arrow#persistent"].padding:ht(),Ze=we[Te],Dt=we[Ne],Re=He(0,M[J],$e[J]),Jt=C?M[J]/2-yt-Re-Ze-S.mainAxis:Qt-Re-Ze-S.mainAxis,wo=C?-M[J]/2+yt+Re+Dt+S.mainAxis:qe+Re+Dt+S.mainAxis,Yt=o.elements.arrow&&de(o.elements.arrow),Do=Yt?m==="y"?Yt.clientTop||0:Yt.clientLeft||0:0,$i=(z=V?.[m])!=null?z:0,Oo=se+Jt-$i-Do,Eo=se+wo-$i,ji=He(h?Be(bt,Oo):bt,se,h?ce(Ie,Eo):Ie);y[m]=ji,oe[m]=ji-se}if(a){var Wi,Mo=m==="x"?R:x,Co=m==="x"?U:B,Se=y[b],Ot=b==="y"?"height":"width",zi=Se+g[Mo],Xi=Se-g[Co],qt=[R,x].indexOf(w)!==-1,Ki=(Wi=V?.[b])!=null?Wi:0,Qi=qt?zi:Se-M[Ot]-H[Ot]-Ki+S.altAxis,Ji=qt?Se+M[Ot]+H[Ot]-Ki-S.altAxis:Xi,Yi=h&&qt?Nn(Qi,Se,Ji):He(h?Qi:zi,Se,h?Ji:Xi);y[b]=Yi,oe[b]=Yi-Se}o.modifiersData[i]=oe}}var Ni={name:"preventOverflow",enabled:!0,phase:"main",fn:ts,requiresIfExists:["offset"]};function Ii(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function Ri(e){return e===O(e)||!k(e)?Ue(e):Ii(e)}function is(e){var o=e.getBoundingClientRect(),t=ve(o.width)/e.offsetWidth||1,i=ve(o.height)/e.offsetHeight||1;return t!==1||i!==1}function Si(e,o,t){t===void 0&&(t=!1);var i=k(o),n=k(o)&&is(o),s=L(o),r=ie(e,n,t),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!t)&&((A(o)!=="body"||Ve(s))&&(a=Ri(o)),k(o)?(l=ie(o,!0),l.x+=o.clientLeft,l.y+=o.clientTop):s&&(l.x=Le(s))),{x:r.left+a.scrollLeft-l.x,y:r.top+a.scrollTop-l.y,width:r.width,height:r.height}}function ns(e){var o=new Map,t=new Set,i=[];e.forEach(function(s){o.set(s.name,s)});function n(s){t.add(s.name);var r=[].concat(s.requires||[],s.requiresIfExists||[]);r.forEach(function(a){if(!t.has(a)){var l=o.get(a);l&&n(l)}}),i.push(s)}return e.forEach(function(s){t.has(s.name)||n(s)}),i}function xi(e){var o=ns(e);return Mn.reduce(function(t,i){return t.concat(o.filter(function(n){return n.phase===i}))},[])}function ki(e){var o;return function(){return o||(o=new Promise(function(t){Promise.resolve().then(function(){o=void 0,t(e())})})),o}}function Fi(e){var o=e.reduce(function(t,i){var n=t[i.name];return t[i.name]=n?Object.assign({},n,i,{options:Object.assign({},n.options,i.options),data:Object.assign({},n.data,i.data)}):i,t},{});return Object.keys(o).map(function(t){return o[t]})}var Fn={placement:"bottom",modifiers:[],strategy:"absolute"};function Pn(){for(var e=arguments.length,o=new Array(e),t=0;t<e;t++)o[t]=arguments[t];return!o.some(function(i){return!(i&&typeof i.getBoundingClientRect=="function")})}function Bn(e){e===void 0&&(e={});var o=e,t=o.defaultModifiers,i=t===void 0?[]:t,n=o.defaultOptions,s=n===void 0?Fn:n;return function(a,l,u){u===void 0&&(u=s);var d={placement:"bottom",orderedModifiers:[],options:Object.assign({},Fn,s),modifiersData:{},elements:{reference:a,popper:l},attributes:{},styles:{}},f=[],p=!1,h={state:d,setOptions:function(w){var E=typeof w=="function"?w(d.options):w;_(),d.options=Object.assign({},s,d.options,E),d.scrollParents={reference:te(a)?Ee(a):a.contextElement?Ee(a.contextElement):[],popper:Ee(l)};var C=xi(Fi([].concat(i,d.options.modifiers)));return d.orderedModifiers=C.filter(function(m){return m.enabled}),v(),h.update()},forceUpdate:function(){if(!p){var w=d.elements,E=w.reference,C=w.popper;if(Pn(E,C)){d.rects={reference:Si(E,de(C),d.options.strategy==="fixed"),popper:Ae(C)},d.reset=!1,d.placement=d.options.placement,d.orderedModifiers.forEach(function(S){return d.modifiersData[S.name]=Object.assign({},S.data)});for(var m=0;m<d.orderedModifiers.length;m++){if(d.reset===!0){d.reset=!1,m=-1;continue}var b=d.orderedModifiers[m],y=b.fn,M=b.options,H=M===void 0?{}:M,F=b.name;typeof y=="function"&&(d=y({state:d,options:H,name:F,instance:h})||d)}}}},update:ki(function(){return new Promise(function(g){h.forceUpdate(),g(d)})}),destroy:function(){_(),p=!0}};if(!Pn(a,l))return h;h.setOptions(u).then(function(g){!p&&u.onFirstUpdate&&u.onFirstUpdate(g)});function v(){d.orderedModifiers.forEach(function(g){var w=g.name,E=g.options,C=E===void 0?{}:E,m=g.effect;if(typeof m=="function"){var b=m({state:d,name:w,instance:h,options:C}),y=function(){};f.push(b||y)}})}function _(){f.forEach(function(g){return g()}),f=[]}return h}}var os=[Sn,kn,Rn,Cn],Pi=Bn({defaultModifiers:os});var ss=["container"],rs=["ngbAccordionBody",""],zt=["*"];function as(e,o){if(e&1){let t=pi();st(0,"button",1),mn("click",function(){Tt(t);let n=le();return Nt(n.close())}),rt()}}var ls=e=>({$implicit:e});var cs=["dialog"],ds=["ngbNavOutlet",""];function us(e,o){}function hs(e,o){if(e&1&&(ui(0,"div",0),Rt(1,us,0,0,"ng-template",1),hi()),e&2){let t=le().$implicit,i=le();We("item",t)("nav",i.nav)("role",i.paneRole),Fe(),We("ngTemplateOutlet",(t.contentTpl==null?null:t.contentTpl.templateRef)||null)("ngTemplateOutletContext",bn(5,ls,t.active||i.isPanelTransitioning(t)))}}function ps(e,o){if(e&1&&St(0,hs,2,7,"div",0),e&2){let t=o.$implicit,i=le();xt(t.isPanelInDom()||i.isPanelTransitioning(t)?0:-1)}}function _s(e,o){if(e&1&&(st(0,"span"),_i(1),rt()),e&2){let t=le().$implicit,i=le();De(i.highlightClass),Fe(),fi(t)}}function fs(e,o){if(e&1&&(_n(0),_i(1),fn()),e&2){let t=le().$implicit;Fe(),fi(t)}}function gs(e,o){if(e&1&&St(0,_s,2,3,"span",0)(1,fs,2,1,"ng-container"),e&2){let t=o.$index;xt(t%2!==0?0:1)}}var ms=(e,o,t)=>({result:e,term:o,formatter:t});function vs(e,o){if(e&1&&hn(0,"ngb-highlight",2),e&2){let t=o.result,i=o.term,n=o.formatter;We("result",n(t))("term",i)}}function bs(e,o){}function ys(e,o){if(e&1){let t=pi();ui(0,"button",3),pe("mouseenter",function(){let n=Tt(t).$index,s=le();return Nt(s.markActive(n))})("click",function(){let n=Tt(t).$implicit,s=le();return Nt(s.select(n))}),Rt(1,bs,0,0,"ng-template",4),hi()}if(e&2){let t=o.$implicit,i=o.$index,n=le(),s=vn(1);P("active",i===n.activeIdx),We("id",n.id+"-"+i),Fe(),We("ngTemplateOutlet",n.resultTemplate||s)("ngTemplateOutletContext",yn(5,ms,t,n.term,n.formatter))}}var Wn={animation:!0,transitionTimerDelayMs:5},Ye=(()=>{class e{constructor(){this.animation=Wn.animation}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),ws=(()=>{class e{constructor(){this._ngbConfig=c(Ye),this.closeOthers=!1,this.destroyOnHide=!0}get animation(){return this._animation??this._ngbConfig.animation}set animation(t){this._animation=t}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();function Ds(e){let{transitionDelay:o,transitionDuration:t}=window.getComputedStyle(e),i=parseFloat(o),n=parseFloat(t);return(i+n)*1e3}function mt(e){return e!=null?`${e}`:""}function Xt(e){return typeof e=="string"}function Ce(e){return e!=null}function Os(e){return e&&e.then}function Es(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}function Ms(e,o){return!o||typeof e.closest>"u"?null:e.closest(o)}function Kt(e){return(e||document.body).getBoundingClientRect()}function Cs(e){return o=>new Zi(t=>{let i=r=>e.run(()=>t.next(r)),n=r=>e.run(()=>t.error(r)),s=()=>e.run(()=>t.complete());return o.subscribe({next:i,error:n,complete:s})})}function An(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function zn(e=document){let o=e?.activeElement;return o?o.shadowRoot?zn(o.shadowRoot):o:null}var Ts=()=>{},{transitionTimerDelayMs:Ns}=Wn,gt=new Map,Z=(e,o,t,i)=>{let n=i.context||{},s=gt.get(o);if(s)switch(i.runningTransition){case"continue":return Et;case"stop":e.run(()=>s.transition$.complete()),n=Object.assign(s.context,n),gt.delete(o)}let r=t(o,i.animation,n)||Ts;if(!i.animation||window.getComputedStyle(o).transitionProperty==="none")return e.run(()=>r()),et(void 0).pipe(Cs(e));let a=new $,l=new $,u=a.pipe(rn(!0));gt.set(o,{transition$:a,complete:()=>{l.next(),l.complete()},context:n});let d=Ds(o);return e.runOutsideAngular(()=>{let f=X(o,"transitionend").pipe(j(u),ke(({target:h})=>h===o)),p=nn(d+Ns).pipe(j(u));ei(p,f,l).pipe(j(u)).subscribe(()=>{gt.delete(o),e.run(()=>{r(),a.next(),a.complete()})})}),a.asObservable()},Gn=e=>{gt.get(e)?.complete()};function Is(e,o){if(typeof navigator>"u")return"0px";let{classList:t}=e,i=t.contains("show");i||t.add("show"),e.style[o]="";let n=e.getBoundingClientRect()[o]+"px";return i||t.remove("show"),n}var Rs=(e,o,t)=>{let{direction:i,maxSize:n,dimension:s}=t,{classList:r}=e;function a(){r.add("collapse"),i==="show"?r.add("show"):r.remove("show")}if(!o){a();return}return n||(n=Is(e,s),t.maxSize=n,e.style[s]=i!=="show"?n:"0px",r.remove("collapse","collapsing","show"),Kt(e),r.add("collapsing")),e.style[s]=i==="show"?n:"0px",()=>{a(),r.remove("collapsing"),e.style[s]=""}},Ss=(()=>{class e{constructor(){this._ngbConfig=c(Ye),this.horizontal=!1}get animation(){return this._animation??this._ngbConfig.animation}set animation(t){this._animation=t}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),Hn=(()=>{class e{constructor(){this._config=c(Ss),this._element=c(W),this._zone=c(ae),this.animation=this._config.animation,this._afterInit=!1,this._isCollapsed=!1,this.ngbCollapseChange=new D,this.horizontal=this._config.horizontal,this.shown=new D,this.hidden=new D}set collapsed(t){this._isCollapsed!==t&&(this._isCollapsed=t,this._afterInit&&this._runTransitionWithEvents(t,this.animation))}ngOnInit(){this._runTransition(this._isCollapsed,!1),this._afterInit=!0}toggle(t=this._isCollapsed){this.collapsed=!t,this.ngbCollapseChange.next(this._isCollapsed)}_runTransition(t,i){return Z(this._zone,this._element.nativeElement,Rs,{animation:i,runningTransition:"stop",context:{direction:t?"hide":"show",dimension:this.horizontal?"width":"height"}})}_runTransitionWithEvents(t,i){this._runTransition(t,i).subscribe(()=>{t?this.hidden.emit():this.shown.emit()})}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["","ngbCollapse",""]],hostVars:2,hostBindings:function(i,n){i&2&&P("collapse-horizontal",n.horizontal)},inputs:{animation:"animation",collapsed:[0,"ngbCollapse","collapsed"],horizontal:"horizontal"},outputs:{ngbCollapseChange:"ngbCollapseChange",shown:"shown",hidden:"hidden"},exportAs:["ngbCollapse"]})}}return e})(),xs=0,tu=(()=>{class e{constructor(){this._item=c(vt),this._viewRef=null,this.elementRef=c(W)}ngAfterContentChecked(){this._bodyTpl&&(this._item._shouldBeInDOM?this._createViewIfNotExists():this._destroyViewIfExists())}ngOnDestroy(){this._destroyViewIfExists()}_destroyViewIfExists(){this._viewRef?.destroy(),this._viewRef=null}_createViewIfNotExists(){this._viewRef||(this._viewRef=this._vcr.createEmbeddedView(this._bodyTpl),this._viewRef.detectChanges())}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=ge({type:e,selectors:[["","ngbAccordionBody",""]],contentQueries:function(i,n,s){if(i&1&&_e(s,ot,7),i&2){let r;Y(r=q())&&(n._bodyTpl=r.first)}},viewQuery:function(i,n){if(i&1&&Pt(ss,7,ai),i&2){let s;Y(s=q())&&(n._vcr=s.first)}},hostAttrs:[1,"accordion-body"],attrs:rs,ngContentSelectors:zt,decls:3,vars:0,consts:[["container",""]],template:function(i,n){i&1&&(at(),gn(0,null,0),lt(2))},encapsulation:2})}}return e})(),ks=(()=>{class e{constructor(){this.item=c(vt),this.ngbCollapse=c(Hn)}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["","ngbAccordionCollapse",""]],hostAttrs:["role","region",1,"accordion-collapse"],hostVars:2,hostBindings:function(i,n){i&2&&(ee("id",n.item.collapseId),he("aria-labelledby",n.item.toggleId))},exportAs:["ngbAccordionCollapse"],features:[dn([Hn])]})}}return e})(),iu=(()=>{class e{constructor(){this.item=c(vt),this.accordion=c(Xn)}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["","ngbAccordionToggle",""]],hostVars:5,hostBindings:function(i,n){i&1&&pe("click",function(){return!n.item.disabled&&n.accordion.toggle(n.item.id)}),i&2&&(ee("id",n.item.toggleId),he("aria-controls",n.item.collapseId)("aria-expanded",!n.item.collapsed),P("collapsed",n.item.collapsed))}})}}return e})();var nu=(()=>{class e{constructor(){this.item=c(vt)}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["","ngbAccordionHeader",""]],hostAttrs:["role","heading",1,"accordion-header"],hostVars:2,hostBindings:function(i,n){i&2&&P("collapsed",n.item.collapsed)}})}}return e})(),vt=(()=>{class e{constructor(){this._accordion=c(Xn),this._cd=c(fe),this._destroyRef=c(oi),this._collapsed=!0,this._id=`ngb-accordion-item-${xs++}`,this._collapseAnimationRunning=!1,this.disabled=!1,this.show=new D,this.shown=new D,this.hide=new D,this.hidden=new D}set id(t){Xt(t)&&t!==""&&(this._id=t)}set destroyOnHide(t){this._destroyOnHide=t}get destroyOnHide(){return this._destroyOnHide===void 0?this._accordion.destroyOnHide:this._destroyOnHide}set collapsed(t){t?this.collapse():this.expand()}get collapsed(){return this._collapsed}get id(){return`${this._id}`}get toggleId(){return`${this.id}-toggle`}get collapseId(){return`${this.id}-collapse`}get _shouldBeInDOM(){return!this.collapsed||this._collapseAnimationRunning||!this.destroyOnHide}ngAfterContentInit(){let{ngbCollapse:t}=this._collapse;t.animation=!1,t.collapsed=this.collapsed,t.animation=this._accordion.animation,t.hidden.pipe(ct(this._destroyRef)).subscribe(()=>{this._collapseAnimationRunning=!1,this.hidden.emit(),this._accordion.hidden.emit(this.id),this._cd.markForCheck()}),t.shown.pipe(ct(this._destroyRef)).subscribe(()=>{this.shown.emit(),this._accordion.shown.emit(this.id),this._cd.markForCheck()})}toggle(){this.collapsed=!this.collapsed}expand(){if(this.collapsed){if(!this._accordion._ensureCanExpand(this))return;this._collapsed=!1,this._cd.markForCheck(),this._cd.detectChanges(),this.show.emit(),this._accordion.show.emit(this.id),this._collapse.ngbCollapse.animation=this._accordion.animation,this._collapse.ngbCollapse.collapsed=!1}}collapse(){this.collapsed||(this._collapsed=!0,this._collapseAnimationRunning=!0,this._cd.markForCheck(),this.hide.emit(),this._accordion.hide.emit(this.id),this._collapse.ngbCollapse.animation=this._accordion.animation,this._collapse.ngbCollapse.collapsed=!0)}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["","ngbAccordionItem",""]],contentQueries:function(i,n,s){if(i&1&&_e(s,ks,7),i&2){let r;Y(r=q())&&(n._collapse=r.first)}},hostAttrs:[1,"accordion-item"],hostVars:1,hostBindings:function(i,n){i&2&&ee("id",n.id)},inputs:{id:[0,"ngbAccordionItem","id"],destroyOnHide:"destroyOnHide",disabled:"disabled",collapsed:"collapsed"},outputs:{show:"show",shown:"shown",hide:"hide",hidden:"hidden"},exportAs:["ngbAccordionItem"]})}}return e})(),Xn=(()=>{class e{constructor(){this._config=c(ws),this._anItemWasAlreadyExpandedDuringInitialisation=!1,this.animation=this._config.animation,this.closeOthers=this._config.closeOthers,this.destroyOnHide=this._config.destroyOnHide,this.show=new D,this.shown=new D,this.hide=new D,this.hidden=new D}toggle(t){this._getItem(t)?.toggle()}expand(t){this._getItem(t)?.expand()}expandAll(){this._items&&(this.closeOthers?this._items.find(t=>!t.collapsed)||this._items.first.expand():this._items.forEach(t=>t.expand()))}collapse(t){this._getItem(t)?.collapse()}collapseAll(){this._items?.forEach(t=>t.collapse())}isExpanded(t){let i=this._getItem(t);return i?!i.collapsed:!1}_ensureCanExpand(t){return this.closeOthers?this._items?(this._items.find(i=>!i.collapsed&&t!==i)?.collapse(),!0):this._anItemWasAlreadyExpandedDuringInitialisation?!1:(this._anItemWasAlreadyExpandedDuringInitialisation=!0,!0):!0}_getItem(t){return this._items?.find(i=>i.id===t)}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["","ngbAccordion",""]],contentQueries:function(i,n,s){if(i&1&&_e(s,vt,4),i&2){let r;Y(r=q())&&(n._items=r)}},hostAttrs:[1,"accordion"],inputs:{animation:"animation",closeOthers:"closeOthers",destroyOnHide:"destroyOnHide"},outputs:{show:"show",shown:"shown",hide:"hide",hidden:"hidden"},exportAs:["ngbAccordion"]})}}return e})();var Kn=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})(),Fs=(()=>{class e{constructor(){this._ngbConfig=c(Ye),this.dismissible=!0,this.type="warning"}get animation(){return this._animation??this._ngbConfig.animation}set animation(t){this._animation=t}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),Ps=({classList:e})=>{e.remove("show")},ou=(()=>{class e{constructor(){this._config=c(Fs),this._elementRef=c(W),this._zone=c(ae),this.animation=this._config.animation,this.dismissible=this._config.dismissible,this.type=this._config.type,this.closed=new D}close(){let t=Z(this._zone,this._elementRef.nativeElement,Ps,{animation:this.animation,runningTransition:"continue"});return t.subscribe(()=>this.closed.emit()),t}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=ge({type:e,selectors:[["ngb-alert"]],hostAttrs:["role","alert"],hostVars:6,hostBindings:function(i,n){i&2&&(De("alert show"+(n.type?" alert-"+n.type:"")),P("fade",n.animation)("alert-dismissible",n.dismissible))},inputs:{animation:"animation",dismissible:"dismissible",type:"type"},outputs:{closed:"closed"},exportAs:["ngbAlert"],ngContentSelectors:zt,decls:2,vars:1,consts:()=>{let t;return t=$localize`:@@ngb.alert.close:Close`,[["type","button","aria-label",t,1,"btn-close"],["type","button","aria-label",t,1,"btn-close",3,"click"]]},template:function(i,n){i&1&&(at(),lt(0),St(1,as,1,0,"button",0)),i&2&&(Fe(),xt(n.dismissible?1:-1))},styles:[`ngb-alert{display:block}
2
+ `],encapsulation:2,changeDetection:0})}}return e})(),Qn=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})();var Jn=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})(),Yn=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})();var $t=(e,o)=>o?o.some(t=>t.contains(e)):!1,Un=(e,o)=>!o||Ms(e,o)!=null,Bs=(()=>{let e=()=>/iPad|iPhone|iPod/.test(navigator.userAgent)||/Macintosh/.test(navigator.userAgent)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2,o=()=>/Android/.test(navigator.userAgent);return typeof navigator<"u"?!!navigator.userAgent&&(e()||o()):!1})(),As=e=>Bs?()=>setTimeout(()=>e(),100):e;function Hi(e,o,t,i,n,s,r,a){t&&e.runOutsideAngular(As(()=>{let l=p=>{let h=p.target;return p.button===2||$t(h,r)?!1:t==="inside"?$t(h,s)&&Un(h,a):t==="outside"?!$t(h,s):Un(h,a)||!$t(h,s)},u=X(o,"keydown").pipe(j(n),ke(p=>p.key==="Escape"),it(p=>p.preventDefault())),d=X(o,"mousedown").pipe(xe(l),j(n)),f=X(o,"mouseup").pipe(Ct(d),ke(([p,h])=>h),on(0),j(n));ei([u.pipe(xe(p=>0)),f.pipe(xe(p=>1))]).subscribe(p=>e.run(()=>i(p)))}))}var qn=["a[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(", ");function Zn(e){let o=Array.from(e.querySelectorAll(qn)).filter(t=>t.tabIndex!==-1);return[o[0],o[o.length-1]]}var Gs=(e,o,t,i=!1)=>{e.runOutsideAngular(()=>{let n=X(o,"focusin").pipe(j(t),xe(s=>s.target));X(o,"keydown").pipe(j(t),ke(s=>s.key==="Tab"),Ct(n)).subscribe(([s,r])=>{let[a,l]=Zn(o);(r===a||r===o)&&s.shiftKey&&(l.focus(),s.preventDefault()),r===l&&!s.shiftKey&&(a.focus(),s.preventDefault())}),i&&X(o,"click").pipe(j(t),Ct(n),xe(s=>s[1])).subscribe(s=>s.focus())})},Hs=(()=>{class e{constructor(){this._element=c(re).documentElement}isRTL(){return(this._element.getAttribute("dir")||"").toLowerCase()==="rtl"}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),Us=/\s+/,Ls=/ +/gi,Vs={top:["top"],bottom:["bottom"],start:["left","right"],left:["left"],end:["right","left"],right:["right"],"top-start":["top-start","top-end"],"top-left":["top-start"],"top-end":["top-end","top-start"],"top-right":["top-end"],"bottom-start":["bottom-start","bottom-end"],"bottom-left":["bottom-start"],"bottom-end":["bottom-end","bottom-start"],"bottom-right":["bottom-end"],"start-top":["left-start","right-start"],"left-top":["left-start"],"start-bottom":["left-end","right-end"],"left-bottom":["left-end"],"end-top":["right-start","left-start"],"right-top":["right-start"],"end-bottom":["right-end","left-end"],"right-bottom":["right-end"]};function $s(e,o){let[t,i]=Vs[e];return o&&i||t}var js=/^left/,Ws=/^right/,zs=/^start/,Xs=/^end/;function Ks(e,o){let[t,i]=o.split("-"),n=t.replace(js,"start").replace(Ws,"end"),s=[n];if(i){let r=i;(t==="left"||t==="right")&&(r=r.replace(zs,"top").replace(Xs,"bottom")),s.push(`${n}-${r}`)}return e&&(s=s.map(r=>`${e}-${r}`)),s.join(" ")}function Ln({placement:e,baseClass:o},t){let i=Array.isArray(e)?e:e.split(Us),n=["top","bottom","start","end","top-start","top-end","bottom-start","bottom-end","start-top","start-bottom","end-top","end-bottom"],s=i.findIndex(u=>u==="auto");s>=0&&n.forEach(function(u){i.find(d=>d.search("^"+u)!==-1)==null&&i.splice(s++,1,u)});let r=i.map(u=>$s(u,t.isRTL()));return{placement:r.shift(),modifiers:[{name:"bootstrapClasses",enabled:!!o,phase:"write",fn({state:u}){let d=new RegExp(o+"(-[a-z]+)*","gi"),f=u.elements.popper,p=u.placement,h=f.className;h=h.replace(d,""),h+=` ${Ks(o,p)}`,h=h.trim().replace(Ls," "),f.className=h}},Mi,Ni,yi,{enabled:!0,name:"flip",options:{fallbackPlacements:r}}]}}function Vn(e){return e}function Ui(){let e=c(Hs),o=null;return{createPopper(t){if(!o){let n=(t.updatePopperOptions||Vn)(Ln(t,e));o=Pi(t.hostElement,t.targetElement,n)}},update(){o&&o.update()},setOptions(t){if(o){let n=(t.updatePopperOptions||Vn)(Ln(t,e));o.setOptions(n)}},destroy(){o&&(o.destroy(),o=null)}}}function Li(e){return o=>(o.modifiers.push(Ci,{name:"offset",options:{offset:()=>e}}),o)}var su=new Date(1882,10,12),ru=new Date(2174,10,25);var au=1e3*60*60*24;var Vi=1080,Qs=24*Vi,Js=12*Vi+793,lu=29*Qs+Js,cu=11*Vi+204;var eo=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})(),Ys=(()=>{class e{constructor(){this.autoClose=!0,this.placement=["bottom-start","bottom-end","top-start","top-end"],this.popperOptions=t=>t,this.container=null}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),to=(()=>{class e{constructor(){this._disabled=!1,this.nativeElement=c(W).nativeElement,this.tabindex=0}set disabled(t){this._disabled=t===""||t===!0}get disabled(){return this._disabled}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["","ngbDropdownItem",""]],hostAttrs:[1,"dropdown-item"],hostVars:3,hostBindings:function(i,n){i&2&&(ee("tabIndex",n.disabled?-1:n.tabindex),P("disabled",n.disabled))},inputs:{tabindex:"tabindex",disabled:"disabled"}})}}return e})(),du=(()=>{class e{constructor(){this.item=c(to)}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["button","ngbDropdownItem",""]],hostVars:1,hostBindings:function(i,n){i&2&&ee("disabled",n.item.disabled)}})}}return e})(),qs=(()=>{class e{constructor(){this.dropdown=c(io),this.nativeElement=c(W).nativeElement}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["","ngbDropdownMenu",""]],contentQueries:function(i,n,s){if(i&1&&_e(s,to,4),i&2){let r;Y(r=q())&&(n.menuItems=r)}},hostAttrs:[1,"dropdown-menu"],hostVars:2,hostBindings:function(i,n){i&1&&pe("keydown.ArrowUp",function(r){return n.dropdown.onKeyDown(r)})("keydown.ArrowDown",function(r){return n.dropdown.onKeyDown(r)})("keydown.Home",function(r){return n.dropdown.onKeyDown(r)})("keydown.End",function(r){return n.dropdown.onKeyDown(r)})("keydown.Enter",function(r){return n.dropdown.onKeyDown(r)})("keydown.Space",function(r){return n.dropdown.onKeyDown(r)})("keydown.Tab",function(r){return n.dropdown.onKeyDown(r)})("keydown.Shift.Tab",function(r){return n.dropdown.onKeyDown(r)}),i&2&&P("show",n.dropdown.isOpen())}})}}return e})(),Bi=(()=>{class e{constructor(){this.dropdown=c(io),this.nativeElement=c(W).nativeElement}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["","ngbDropdownAnchor",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(i,n){i&2&&(he("aria-expanded",n.dropdown.isOpen()),P("show",n.dropdown.isOpen()))}})}}return e})(),uu=(()=>{class e extends Bi{static{this.\u0275fac=(()=>{let t;return function(n){return(t||(t=si(e)))(n||e)}})()}static{this.\u0275dir=T({type:e,selectors:[["","ngbDropdownToggle",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(i,n){i&1&&pe("click",function(){return n.dropdown.toggle()})("keydown.ArrowUp",function(r){return n.dropdown.onKeyDown(r)})("keydown.ArrowDown",function(r){return n.dropdown.onKeyDown(r)})("keydown.Home",function(r){return n.dropdown.onKeyDown(r)})("keydown.End",function(r){return n.dropdown.onKeyDown(r)})("keydown.Tab",function(r){return n.dropdown.onKeyDown(r)})("keydown.Shift.Tab",function(r){return n.dropdown.onKeyDown(r)}),i&2&&(he("aria-expanded",n.dropdown.isOpen()),P("show",n.dropdown.isOpen()))},features:[gi([{provide:Bi,useExisting:ii(()=>e)}]),li]})}}return e})(),io=(()=>{class e{constructor(){this._changeDetector=c(fe),this._config=c(Ys),this._document=c(re),this._injector=c(ue),this._ngZone=c(ae),this._nativeElement=c(W).nativeElement,this._destroyCloseHandlers$=new $,this._bodyContainer=null,this._positioning=Ui(),this.autoClose=this._config.autoClose,this._open=!1,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.container=this._config.container,this.openChange=new D}ngOnInit(){this.display||(this.display=this._nativeElement.closest(".navbar")?"static":"dynamic")}ngAfterContentInit(){nt({write:()=>{this._applyPlacementClasses(),this._open&&this._setCloseHandlers()}},{injector:this._injector})}ngOnChanges(t){if(t.container&&this._open&&this._applyContainer(this.container),t.placement&&!t.placement.firstChange&&(this._positioning.setOptions({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement}),this._applyPlacementClasses()),t.dropdownClass){let{currentValue:i,previousValue:n}=t.dropdownClass;this._applyCustomDropdownClass(i,n)}t.autoClose&&this._open&&(this.autoClose=t.autoClose.currentValue,this._setCloseHandlers())}isOpen(){return this._open}open(){this._open||(this._open=!0,this._applyContainer(this.container),this.openChange.emit(!0),this._setCloseHandlers(),this._anchor&&(this._anchor.nativeElement.focus(),this.display==="dynamic"&&this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,updatePopperOptions:t=>this.popperOptions(Li([0,2])(t))}),this._applyPlacementClasses(),this._afterRenderRef=It({write:()=>{this._positionMenu()}},{injector:this._injector})})))}_setCloseHandlers(){this._destroyCloseHandlers$.next(),Hi(this._ngZone,this._document,this.autoClose,t=>{this.close(),t===0&&this._anchor.nativeElement.focus()},this._destroyCloseHandlers$,this._menu?[this._menu.nativeElement]:[],this._anchor?[this._anchor.nativeElement]:[],".dropdown-item,.dropdown-divider")}close(){this._open&&(this._open=!1,this._resetContainer(),this._positioning.destroy(),this._afterRenderRef?.destroy(),this._destroyCloseHandlers$.next(),this.openChange.emit(!1),this._changeDetector.markForCheck())}toggle(){this.isOpen()?this.close():this.open()}ngOnDestroy(){this.close()}onKeyDown(t){let{key:i}=t,n=this._getMenuElements(),s=-1,r=null,a=this._isEventFromToggle(t);if(!a&&n.length&&n.forEach((l,u)=>{l.contains(t.target)&&(r=l),l===zn(this._document)&&(s=u)}),i===" "||i==="Enter"){r&&(this.autoClose===!0||this.autoClose==="inside")&&X(r,"click").pipe(tt(1)).subscribe(()=>this.close());return}if(i==="Tab"){if(t.target&&this.isOpen()&&this.autoClose)if(this._anchor.nativeElement===t.target){this.container==="body"&&!t.shiftKey?(this._menu.nativeElement.setAttribute("tabindex","0"),this._menu.nativeElement.focus(),this._menu.nativeElement.removeAttribute("tabindex")):t.shiftKey&&this.close();return}else if(this.container==="body"){let l=this._menu.nativeElement.querySelectorAll(qn);t.shiftKey&&t.target===l[0]?(this._anchor.nativeElement.focus(),t.preventDefault()):!t.shiftKey&&t.target===l[l.length-1]&&(this._anchor.nativeElement.focus(),this.close())}else X(t.target,"focusout").pipe(tt(1)).subscribe(({relatedTarget:l})=>{this._nativeElement.contains(l)||this.close()});return}if(a||r){if(this.open(),n.length){switch(i){case"ArrowDown":s=Math.min(s+1,n.length-1);break;case"ArrowUp":if(this._isDropup()&&s===-1){s=n.length-1;break}s=Math.max(s-1,0);break;case"Home":s=0;break;case"End":s=n.length-1;break}n[s].focus()}t.preventDefault()}}_isDropup(){return this._nativeElement.classList.contains("dropup")}_isEventFromToggle(t){return this._anchor.nativeElement.contains(t.target)}_getMenuElements(){return this._menu?this._menu.menuItems.filter(({disabled:t})=>!t).map(({nativeElement:t})=>t):[]}_positionMenu(){let t=this._menu;this.isOpen()&&t&&(this.display==="dynamic"?(this._positioning.update(),this._applyPlacementClasses()):this._applyPlacementClasses(this._getFirstPlacement(this.placement)))}_getFirstPlacement(t){return Array.isArray(t)?t[0]:t.split(" ")[0]}_resetContainer(){this._menu&&this._nativeElement.appendChild(this._menu.nativeElement),this._bodyContainer&&(this._document.body.removeChild(this._bodyContainer),this._bodyContainer=null)}_applyContainer(t=null){if(this._resetContainer(),t==="body"){let i=this._menu.nativeElement,n=this._bodyContainer=this._bodyContainer||this._document.createElement("div");n.style.position="absolute",i.style.position="static",n.style.zIndex="1055",n.appendChild(i),this._document.body.appendChild(n)}this._applyCustomDropdownClass(this.dropdownClass)}_applyCustomDropdownClass(t,i){let n=this.container==="body"?this._bodyContainer:this._nativeElement;n&&(i&&n.classList.remove(i),t&&n.classList.add(t))}_applyPlacementClasses(t){if(this._menu){t||(t=this._getFirstPlacement(this.placement)),this._nativeElement.classList.remove("dropup","dropdown"),this.display==="static"?this._menu.nativeElement.setAttribute("data-bs-popper","static"):this._menu.nativeElement.removeAttribute("data-bs-popper");let i=t.search("^top")!==-1?"dropup":"dropdown";this._nativeElement.classList.add(i),this._bodyContainer&&(this._bodyContainer.classList.remove("dropup","dropdown"),this._bodyContainer.classList.add(i))}}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["","ngbDropdown",""]],contentQueries:function(i,n,s){if(i&1&&(_e(s,qs,5),_e(s,Bi,5)),i&2){let r;Y(r=q())&&(n._menu=r.first),Y(r=q())&&(n._anchor=r.first)}},hostVars:2,hostBindings:function(i,n){i&2&&P("show",n.isOpen())},inputs:{autoClose:"autoClose",dropdownClass:"dropdownClass",_open:[0,"open","_open"],placement:"placement",popperOptions:"popperOptions",container:"container",display:"display"},outputs:{openChange:"openChange"},exportAs:["ngbDropdown"],features:[je]})}}return e})();var no=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})(),Zs=(()=>{class e{constructor(){this._ngbConfig=c(Ye),this.backdrop=!0,this.fullscreen=!1,this.keyboard=!0,this.role="dialog"}get animation(){return this._animation??this._ngbConfig.animation}set animation(t){this._animation=t}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),ye=class{constructor(o,t,i){this.nodes=o,this.viewRef=t,this.componentRef=i}},jt=class{constructor(o){this._componentType=o,this._windowRef=null,this._contentRef=null,this._document=c(re),this._applicationRef=c(ci),this._injector=c(ue),this._viewContainerRef=c(ai),this._ngZone=c(ae)}open(o,t,i=!1){this._windowRef||(this._contentRef=this._getContentRef(o,t),this._windowRef=this._viewContainerRef.createComponent(this._componentType,{injector:this._injector,projectableNodes:this._contentRef.nodes}));let{nativeElement:n}=this._windowRef.location,s=new $;nt({mixedReadWrite:()=>{s.next(),s.complete()}},{injector:this._injector});let r=s.pipe(tn(()=>Z(this._ngZone,n,({classList:a})=>a.add("show"),{animation:i,runningTransition:"continue"})));return{windowRef:this._windowRef,transition$:r}}close(o=!1){return this._windowRef?Z(this._ngZone,this._windowRef.location.nativeElement,({classList:t})=>t.remove("show"),{animation:o,runningTransition:"stop"}).pipe(it(()=>{this._windowRef?.destroy(),this._contentRef?.viewRef?.destroy(),this._windowRef=null,this._contentRef=null})):et(void 0)}_getContentRef(o,t){if(o)if(o instanceof ot){let i=o.createEmbeddedView(t);return this._applicationRef.attachView(i),new ye([i.rootNodes],i)}else return new ye([[this._document.createTextNode(`${o}`)]]);else return new ye([])}},er=(()=>{class e{constructor(){this._document=c(re)}hide(){let t=Math.abs(window.innerWidth-this._document.documentElement.clientWidth),i=this._document.body,n=i.style,{overflow:s,paddingRight:r}=n;if(t>0){let a=parseFloat(window.getComputedStyle(i).paddingRight);n.paddingRight=`${a+t}px`}return n.overflow="hidden",()=>{t>0&&(n.paddingRight=r),n.overflow=s}}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),tr=["animation","backdropClass"],ir=(()=>{class e{constructor(){this._nativeElement=c(W).nativeElement,this._zone=c(ae),this._injector=c(ue),this._cdRef=c(fe)}ngOnInit(){nt({mixedReadWrite:()=>Z(this._zone,this._nativeElement,(t,i)=>{i&&Kt(t),t.classList.add("show")},{animation:this.animation,runningTransition:"continue"})},{injector:this._injector})}hide(){return Z(this._zone,this._nativeElement,({classList:t})=>t.remove("show"),{animation:this.animation,runningTransition:"stop"})}updateOptions(t){tr.forEach(i=>{Ce(t[i])&&(this[i]=t[i])}),this._cdRef.markForCheck()}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=ge({type:e,selectors:[["ngb-modal-backdrop"]],hostAttrs:[2,"z-index","1055"],hostVars:6,hostBindings:function(i,n){i&2&&(De("modal-backdrop"+(n.backdropClass?" "+n.backdropClass:"")),P("show",!n.animation)("fade",n.animation))},inputs:{animation:"animation",backdropClass:"backdropClass"},decls:0,vars:0,template:function(i,n){},encapsulation:2})}}return e})(),Wt=class{update(o){}close(o){}dismiss(o){}},Ai=class{update(o){this._windowCmptRef.instance.updateOptions(o),this._backdropCmptRef&&this._backdropCmptRef.instance&&this._backdropCmptRef.instance.updateOptions(o)}get componentInstance(){if(this._contentRef&&this._contentRef.componentRef)return this._contentRef.componentRef.instance}get closed(){return this._closed.asObservable().pipe(j(this._hidden))}get dismissed(){return this._dismissed.asObservable().pipe(j(this._hidden))}get hidden(){return this._hidden.asObservable()}get shown(){return this._windowCmptRef.instance.shown.asObservable()}constructor(o,t,i,n){this._windowCmptRef=o,this._contentRef=t,this._backdropCmptRef=i,this._beforeDismiss=n,this._closed=new $,this._dismissed=new $,this._hidden=new $,o.instance.dismissEvent.subscribe(s=>{this.dismiss(s)}),this.result=new Promise((s,r)=>{this._resolve=s,this._reject=r}),this.result.then(null,()=>{})}close(o){this._windowCmptRef&&(this._closed.next(o),this._resolve(o),this._removeModalElements())}_dismiss(o){this._dismissed.next(o),this._reject(o),this._removeModalElements()}dismiss(o){if(this._windowCmptRef)if(!this._beforeDismiss)this._dismiss(o);else{let t=this._beforeDismiss();Os(t)?t.then(i=>{i!==!1&&this._dismiss(o)},()=>{}):t!==!1&&this._dismiss(o)}}_removeModalElements(){let o=this._windowCmptRef.instance.hide(),t=this._backdropCmptRef?this._backdropCmptRef.instance.hide():et(void 0);o.subscribe(()=>{let{nativeElement:i}=this._windowCmptRef.location;i.parentNode.removeChild(i),this._windowCmptRef.destroy(),this._contentRef?.viewRef?.destroy(),this._windowCmptRef=null,this._contentRef=null}),t.subscribe(()=>{if(this._backdropCmptRef){let{nativeElement:i}=this._backdropCmptRef.location;i.parentNode.removeChild(i),this._backdropCmptRef.destroy(),this._backdropCmptRef=null}}),Mt(o,t).subscribe(()=>{this._hidden.next(),this._hidden.complete()})}},Gi=(function(e){return e[e.BACKDROP_CLICK=0]="BACKDROP_CLICK",e[e.ESC=1]="ESC",e})(Gi||{}),nr=["animation","ariaLabelledBy","ariaDescribedBy","backdrop","centered","fullscreen","keyboard","role","scrollable","size","windowClass","modalDialogClass"],or=(()=>{class e{constructor(){this._document=c(re),this._elRef=c(W),this._zone=c(ae),this._injector=c(ue),this._cdRef=c(fe),this._closed$=new $,this._elWithFocus=null,this.backdrop=!0,this.keyboard=!0,this.role="dialog",this.dismissEvent=new D,this.shown=new $,this.hidden=new $}get fullscreenClass(){return this.fullscreen===!0?" modal-fullscreen":Xt(this.fullscreen)?` modal-fullscreen-${this.fullscreen}-down`:""}dismiss(t){this.dismissEvent.emit(t)}ngOnInit(){this._elWithFocus=this._document.activeElement,nt({mixedReadWrite:()=>this._show()},{injector:this._injector})}ngOnDestroy(){this._disableEventHandling()}hide(){let{nativeElement:t}=this._elRef,i={animation:this.animation,runningTransition:"stop"},n=Z(this._zone,t,()=>t.classList.remove("show"),i),s=Z(this._zone,this._dialogEl.nativeElement,()=>{},i),r=Mt(n,s);return r.subscribe(()=>{this.hidden.next(),this.hidden.complete()}),this._disableEventHandling(),this._restoreFocus(),r}updateOptions(t){nr.forEach(i=>{Ce(t[i])&&(this[i]=t[i])}),this._cdRef.markForCheck()}_show(){let t={animation:this.animation,runningTransition:"continue"},i=Z(this._zone,this._elRef.nativeElement,(s,r)=>{r&&Kt(s),s.classList.add("show")},t),n=Z(this._zone,this._dialogEl.nativeElement,()=>{},t);Mt(i,n).subscribe(()=>{this.shown.next(),this.shown.complete()}),this._enableEventHandling(),this._setFocus()}_enableEventHandling(){let{nativeElement:t}=this._elRef;this._zone.runOutsideAngular(()=>{X(t,"keydown").pipe(j(this._closed$),ke(n=>n.key==="Escape")).subscribe(n=>{this.keyboard?requestAnimationFrame(()=>{n.defaultPrevented||this._zone.run(()=>this.dismiss(Gi.ESC))}):this.backdrop==="static"&&this._bumpBackdrop()});let i=!1;X(this._dialogEl.nativeElement,"mousedown").pipe(j(this._closed$),it(()=>i=!1),ti(()=>X(t,"mouseup").pipe(j(this._closed$),tt(1))),ke(({target:n})=>t===n)).subscribe(()=>{i=!0}),X(t,"click").pipe(j(this._closed$)).subscribe(({target:n})=>{t===n&&(this.backdrop==="static"?this._bumpBackdrop():this.backdrop===!0&&!i&&this._zone.run(()=>this.dismiss(Gi.BACKDROP_CLICK))),i=!1})})}_disableEventHandling(){this._closed$.next()}_setFocus(){let{nativeElement:t}=this._elRef;if(!t.contains(document.activeElement)){let i=t.querySelector("[ngbAutofocus]"),n=Zn(t)[0];(i||n||t).focus()}}_restoreFocus(){let t=this._document.body,i=this._elWithFocus,n;i&&i.focus&&t.contains(i)?n=i:n=t,this._zone.runOutsideAngular(()=>{setTimeout(()=>n.focus()),this._elWithFocus=null})}_bumpBackdrop(){this.backdrop==="static"&&Z(this._zone,this._elRef.nativeElement,({classList:t})=>(t.add("modal-static"),()=>t.remove("modal-static")),{animation:this.animation,runningTransition:"continue"})}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=ge({type:e,selectors:[["ngb-modal-window"]],viewQuery:function(i,n){if(i&1&&Pt(cs,7),i&2){let s;Y(s=q())&&(n._dialogEl=s.first)}},hostAttrs:["tabindex","-1"],hostVars:8,hostBindings:function(i,n){i&2&&(he("aria-modal",!0)("aria-labelledby",n.ariaLabelledBy)("aria-describedby",n.ariaDescribedBy)("role",n.role),De("modal d-block"+(n.windowClass?" "+n.windowClass:"")),P("fade",n.animation))},inputs:{animation:"animation",ariaLabelledBy:"ariaLabelledBy",ariaDescribedBy:"ariaDescribedBy",backdrop:"backdrop",centered:"centered",fullscreen:"fullscreen",keyboard:"keyboard",role:"role",scrollable:"scrollable",size:"size",windowClass:"windowClass",modalDialogClass:"modalDialogClass"},outputs:{dismissEvent:"dismiss"},ngContentSelectors:zt,decls:4,vars:2,consts:[["dialog",""],["role","document"],[1,"modal-content"]],template:function(i,n){i&1&&(at(),st(0,"div",1,0)(2,"div",2),lt(3),rt()()),i&2&&De("modal-dialog"+(n.size?" modal-"+n.size:"")+(n.centered?" modal-dialog-centered":"")+n.fullscreenClass+(n.scrollable?" modal-dialog-scrollable":"")+(n.modalDialogClass?" "+n.modalDialogClass:""))},styles:[`ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}
3
+ `],encapsulation:2})}}return e})(),sr=(()=>{class e{constructor(){this._applicationRef=c(ci),this._injector=c(ue),this._environmentInjector=c(ni),this._document=c(re),this._scrollBar=c(er),this._activeWindowCmptHasChanged=new $,this._ariaHiddenValues=new Map,this._scrollBarRestoreFn=null,this._modalRefs=[],this._windowCmpts=[],this._activeInstances=new D;let t=c(ae);this._activeWindowCmptHasChanged.subscribe(()=>{if(this._windowCmpts.length){let i=this._windowCmpts[this._windowCmpts.length-1];Gs(t,i.location.nativeElement,this._activeWindowCmptHasChanged),this._revertAriaHidden(),this._setAriaHidden(i.location.nativeElement)}})}_restoreScrollBar(){let t=this._scrollBarRestoreFn;t&&(this._scrollBarRestoreFn=null,t())}_hideScrollBar(){this._scrollBarRestoreFn||(this._scrollBarRestoreFn=this._scrollBar.hide())}open(t,i,n){let s=n.container instanceof HTMLElement?n.container:Ce(n.container)?this._document.querySelector(n.container):this._document.body;if(!s)throw new Error(`The specified modal container "${n.container||"body"}" was not found in the DOM.`);this._hideScrollBar();let r=new Wt;t=n.injector||t;let a=t.get(ni,null)||this._environmentInjector,l=this._getContentRef(t,a,i,r,n),u=n.backdrop!==!1?this._attachBackdrop(s):void 0,d=this._attachWindowComponent(s,l.nodes),f=new Ai(d,l,u,n.beforeDismiss);return this._registerModalRef(f),this._registerWindowCmpt(d),f.hidden.pipe(tt(1)).subscribe(()=>Promise.resolve(!0).then(()=>{this._modalRefs.length||(this._document.body.classList.remove("modal-open"),this._restoreScrollBar(),this._revertAriaHidden())})),r.close=p=>{f.close(p)},r.dismiss=p=>{f.dismiss(p)},r.update=p=>{f.update(p)},f.update(n),this._modalRefs.length===1&&this._document.body.classList.add("modal-open"),u&&u.instance&&u.changeDetectorRef.detectChanges(),d.changeDetectorRef.detectChanges(),f}get activeInstances(){return this._activeInstances}dismissAll(t){this._modalRefs.forEach(i=>i.dismiss(t))}hasOpenModals(){return this._modalRefs.length>0}_attachBackdrop(t){let i=Bt(ir,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector});return this._applicationRef.attachView(i.hostView),t.appendChild(i.location.nativeElement),i}_attachWindowComponent(t,i){let n=Bt(or,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector,projectableNodes:i});return this._applicationRef.attachView(n.hostView),t.appendChild(n.location.nativeElement),n}_getContentRef(t,i,n,s,r){return n?n instanceof ot?this._createFromTemplateRef(n,s):Xt(n)?this._createFromString(n):this._createFromComponent(t,i,n,s,r):new ye([])}_createFromTemplateRef(t,i){let n={$implicit:i,close(r){i.close(r)},dismiss(r){i.dismiss(r)}},s=t.createEmbeddedView(n);return this._applicationRef.attachView(s),new ye([s.rootNodes],s)}_createFromString(t){let i=this._document.createTextNode(`${t}`);return new ye([[i]])}_createFromComponent(t,i,n,s,r){let a=ue.create({providers:[{provide:Wt,useValue:s}],parent:t}),l=Bt(n,{environmentInjector:i,elementInjector:a}),u=l.location.nativeElement;return r.scrollable&&u.classList.add("component-host-scrollable"),this._applicationRef.attachView(l.hostView),new ye([[u]],l.hostView,l)}_setAriaHidden(t){let i=t.parentElement;i&&t!==this._document.body&&(Array.from(i.children).forEach(n=>{n!==t&&n.nodeName!=="SCRIPT"&&(this._ariaHiddenValues.set(n,n.getAttribute("aria-hidden")),n.setAttribute("aria-hidden","true"))}),this._setAriaHidden(i))}_revertAriaHidden(){this._ariaHiddenValues.forEach((t,i)=>{t?i.setAttribute("aria-hidden",t):i.removeAttribute("aria-hidden")}),this._ariaHiddenValues.clear()}_registerModalRef(t){let i=()=>{let n=this._modalRefs.indexOf(t);n>-1&&(this._modalRefs.splice(n,1),this._activeInstances.emit(this._modalRefs))};this._modalRefs.push(t),this._activeInstances.emit(this._modalRefs),t.result.then(i,i)}_registerWindowCmpt(t){this._windowCmpts.push(t),this._activeWindowCmptHasChanged.next(),t.onDestroy(()=>{let i=this._windowCmpts.indexOf(t);i>-1&&(this._windowCmpts.splice(i,1),this._activeWindowCmptHasChanged.next())})}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),rr=(()=>{class e{constructor(){this._injector=c(ue),this._modalStack=c(sr),this._config=c(Zs)}open(t,i={}){let n=Zt(qi(Zt({},this._config),{animation:this._config.animation}),i);return this._modalStack.open(this._injector,t,n)}get activeInstances(){return this._modalStack.activeInstances}dismissAll(t){this._modalStack.dismissAll(t)}hasOpenModals(){return this._modalStack.hasOpenModals()}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),oo=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({providers:[rr]})}}return e})(),ar=(()=>{class e{constructor(){this._ngbConfig=c(Ye),this.destroyOnHide=!0,this.orientation="horizontal",this.roles="tablist",this.keyboard=!0}get animation(){return this._animation??this._ngbConfig.animation}set animation(t){this._animation=t}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),so=e=>Ce(e)&&e!=="",lr=0,cr=(()=>{class e{constructor(){this.templateRef=c(ot)}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["ng-template","ngbNavContent",""]]})}}return e})();var ro=(()=>{class e{constructor(){this._nav=c(ao),this._nativeElement=c(W).nativeElement,this.disabled=!1,this.shown=new D,this.hidden=new D}ngOnInit(){Ce(this.domId)||(this.domId=`ngb-nav-${lr++}`)}get active(){return this._nav.activeId===this.id}get id(){return so(this._id)?this._id:this.domId}get panelDomId(){return`${this.domId}-panel`}isPanelInDom(){return(Ce(this.destroyOnHide)?!this.destroyOnHide:!this._nav.destroyOnHide)||this.active}isNgContainer(){return this._nativeElement.nodeType===Node.COMMENT_NODE}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["","ngbNavItem",""]],contentQueries:function(i,n,s){if(i&1&&_e(s,cr,4),i&2){let r;Y(r=q())&&(n.contentTpl=r.first)}},hostAttrs:[1,"nav-item"],inputs:{destroyOnHide:"destroyOnHide",disabled:"disabled",domId:"domId",_id:[0,"ngbNavItem","_id"]},outputs:{shown:"shown",hidden:"hidden"},exportAs:["ngbNavItem"]})}}return e})(),ao=(()=>{class e{constructor(t){this.role=t,this._config=c(ar),this._cd=c(fe),this._document=c(re),this._nativeElement=c(W).nativeElement,this.destroyRef=c(oi),this._navigatingWithKeyboard=!1,this.activeIdChange=new D,this.animation=this._config.animation,this.destroyOnHide=this._config.destroyOnHide,this.orientation=this._config.orientation,this.roles=this._config.roles,this.keyboard=this._config.keyboard,this.shown=new D,this.hidden=new D,this.navItemChange$=new $,this.navChange=new D}click(t){t.disabled||this._updateActiveId(t.id)}onFocusout({relatedTarget:t}){this._nativeElement.contains(t)||(this._navigatingWithKeyboard=!1)}onKeyDown(t){if(this.roles!=="tablist"||!this.keyboard)return;let i=this.links.filter(r=>!r.navItem.disabled),{length:n}=i,s=-1;if(i.forEach((r,a)=>{r.nativeElement===this._document.activeElement&&(s=a)}),n){switch(t.key){case"ArrowUp":case"ArrowLeft":s=(s-1+n)%n;break;case"ArrowRight":case"ArrowDown":s=(s+1)%n;break;case"Home":s=0;break;case"End":s=n-1;break}this.keyboard==="changeWithArrows"&&this.select(i[s].navItem.id),i[s].nativeElement.focus(),this._navigatingWithKeyboard=!0,t.preventDefault()}}select(t){this._updateActiveId(t,!1)}ngAfterContentInit(){if(!Ce(this.activeId)){let t=this.items.first?this.items.first.id:null;so(t)&&(this._updateActiveId(t,!1),this._cd.detectChanges())}this.items.changes.pipe(ct(this.destroyRef)).subscribe(()=>this._notifyItemChanged(this.activeId))}ngOnChanges({activeId:t}){t&&!t.firstChange&&this._notifyItemChanged(t.currentValue)}_updateActiveId(t,i=!0){if(this.activeId!==t){let n=!1;i&&this.navChange.emit({activeId:this.activeId,nextId:t,preventDefault:()=>{n=!0}}),n||(this.activeId=t,this.activeIdChange.emit(t),this._notifyItemChanged(t))}}_notifyItemChanged(t){this.navItemChange$.next(this._getItemById(t))}_getItemById(t){return this.items&&this.items.find(i=>i.id===t)||null}static{this.\u0275fac=function(i){return new(i||e)(ri("role"))}}static{this.\u0275dir=T({type:e,selectors:[["","ngbNav",""]],contentQueries:function(i,n,s){if(i&1&&(_e(s,ro,4),_e(s,lo,5)),i&2){let r;Y(r=q())&&(n.items=r),Y(r=q())&&(n.links=r)}},hostAttrs:[1,"nav"],hostVars:4,hostBindings:function(i,n){i&1&&pe("keydown.arrowLeft",function(r){return n.onKeyDown(r)})("keydown.arrowRight",function(r){return n.onKeyDown(r)})("keydown.arrowDown",function(r){return n.onKeyDown(r)})("keydown.arrowUp",function(r){return n.onKeyDown(r)})("keydown.Home",function(r){return n.onKeyDown(r)})("keydown.End",function(r){return n.onKeyDown(r)})("focusout",function(r){return n.onFocusout(r)}),i&2&&(he("aria-orientation",n.orientation==="vertical"&&n.roles==="tablist"?"vertical":void 0)("role",n.role?n.role:n.roles?"tablist":void 0),P("flex-column",n.orientation==="vertical"))},inputs:{activeId:"activeId",animation:"animation",destroyOnHide:"destroyOnHide",orientation:"orientation",roles:"roles",keyboard:"keyboard"},outputs:{activeIdChange:"activeIdChange",shown:"shown",hidden:"hidden",navChange:"navChange"},exportAs:["ngbNav"],features:[je]})}}return e})(),lo=(()=>{class e{constructor(t){this.role=t,this.navItem=c(ro),this.nav=c(ao),this.nativeElement=c(W).nativeElement}get tabindex(){return this.nav.keyboard===!1?this.navItem.disabled?-1:void 0:this.nav._navigatingWithKeyboard||this.navItem.disabled||!this.navItem.active?-1:void 0}static{this.\u0275fac=function(i){return new(i||e)(ri("role"))}}static{this.\u0275dir=T({type:e,selectors:[["","ngbNavLink",""]],hostAttrs:[1,"nav-link"],hostVars:12,hostBindings:function(i,n){i&2&&(ee("id",n.navItem.domId),he("role",n.role?n.role:n.nav.roles?"tab":void 0)("tabindex",n.tabindex)("aria-controls",n.navItem.isPanelInDom()?n.navItem.panelDomId:null)("aria-selected",n.navItem.active)("aria-disabled",n.navItem.disabled),P("nav-item",n.navItem.isNgContainer())("active",n.navItem.active)("disabled",n.navItem.disabled))}})}}return e})(),hu=(()=>{class e extends lo{static{this.\u0275fac=(()=>{let t;return function(n){return(t||(t=si(e)))(n||e)}})()}static{this.\u0275dir=T({type:e,selectors:[["button","ngbNavLink",""]],hostAttrs:["type","button"],hostVars:1,hostBindings:function(i,n){i&1&&pe("click",function(){return n.nav.click(n.navItem)}),i&2&&ee("disabled",n.navItem.disabled)},features:[li]})}}return e})();var dr=({classList:e})=>(e.remove("show"),()=>e.remove("active")),ur=(e,o)=>{o&&Kt(e),e.classList.add("show")},$n=(()=>{class e{constructor(){this.nativeElement=c(W).nativeElement}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["","ngbNavPane",""]],hostAttrs:[1,"tab-pane"],hostVars:5,hostBindings:function(i,n){i&2&&(ee("id",n.item.panelDomId),he("role",n.role?n.role:n.nav.roles?"tabpanel":void 0)("aria-labelledby",n.item.domId),P("fade",n.nav.animation))},inputs:{item:"item",nav:"nav",role:"role"}})}}return e})(),pu=(()=>{class e{constructor(){this._cd=c(fe),this._ngZone=c(ae),this._activePane=null}isPanelTransitioning(t){return this._activePane?.item===t}ngAfterViewInit(){this._updateActivePane(),this.nav.navItemChange$.pipe(ct(this.nav.destroyRef),ln(this._activePane?.item||null),sn(),an(1)).subscribe(t=>{let i={animation:this.nav.animation,runningTransition:"stop"};this._cd.detectChanges(),this._activePane?Z(this._ngZone,this._activePane.nativeElement,dr,i).subscribe(()=>{let n=this._activePane?.item;this._activePane=this._getPaneForItem(t),this._cd.markForCheck(),this._activePane&&(this._activePane.nativeElement.classList.add("active"),Z(this._ngZone,this._activePane.nativeElement,ur,i).subscribe(()=>{t&&(t.shown.emit(),this.nav.shown.emit(t.id))})),n&&(n.hidden.emit(),this.nav.hidden.emit(n.id))}):this._updateActivePane()})}_updateActivePane(){this._activePane=this._getActivePane(),this._activePane?.nativeElement.classList.add("show","active")}_getPaneForItem(t){return this._panes&&this._panes.find(i=>i.item===t)||null}_getActivePane(){return this._panes&&this._panes.find(t=>t.item.active)||null}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=ge({type:e,selectors:[["","ngbNavOutlet",""]],viewQuery:function(i,n){if(i&1&&Pt($n,5),i&2){let s;Y(s=q())&&(n._panes=s)}},hostAttrs:[1,"tab-content"],inputs:{paneRole:"paneRole",nav:[0,"ngbNavOutlet","nav"]},attrs:ds,decls:2,vars:0,consts:[["ngbNavPane","",3,"item","nav","role"],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(i,n){i&1&&kt(0,ps,1,1,null,null,un),i&2&&Ft(n.nav.items)},dependencies:[$n,mi],encapsulation:2,changeDetection:0})}}return e})();var co=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})();var uo=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})(),hr={hover:["mouseenter","mouseleave"],focus:["focusin","focusout"]};function pr(e){let o=(e||"").trim();if(o.length===0)return[];let t=o.split(/\s+/).map(n=>n.split(":")).map(n=>hr[n[0]]||n),i=t.filter(n=>n.includes("manual"));if(i.length>1)throw"Triggers parse error: only one manual trigger is allowed";if(i.length===1&&t.length>1)throw"Triggers parse error: manual trigger can't be mixed with other triggers";return i.length?[]:t}function _r(e,o,t,i,n,s=0,r=0,a=Et,l=Et){let u=pr(o);if(u.length===0)return()=>{};let d=new Set,f=[],p;function h(_,g){e.addEventListener(_,g),f.push(()=>e.removeEventListener(_,g))}function v(_,g){clearTimeout(p),g>0?p=setTimeout(_,g):_()}for(let[_,g]of u)if(g?(h(_,()=>{d.add(_),v(()=>d.size>0&&i(),s)}),h(g,()=>{d.delete(_),v(()=>d.size===0&&n(),r)})):h(_,()=>t()?v(n,r):v(i,s)),_==="mouseenter"&&g==="mouseleave"&&r>0){let w=a.subscribe(()=>{d.delete(_),clearTimeout(p)}),E=l.subscribe(()=>{d.delete(_),v(()=>d.size===0&&n(),r)});f.push(()=>w.unsubscribe(),()=>E.unsubscribe())}return f.push(()=>clearTimeout(p)),()=>f.forEach(_=>_())}var ho=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})();var po=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})();var _o=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})();var fo=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})();var go=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})();var mo=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})(),fr=(()=>{class e{constructor(){this._ngbConfig=c(Ye),this.autoClose=!0,this.placement="auto",this.popperOptions=t=>t,this.triggers="hover focus",this.disableTooltip=!1,this.openDelay=0,this.closeDelay=0}get animation(){return this._animation??this._ngbConfig.animation}set animation(t){this._animation=t}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),gr=0,mr=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=ge({type:e,selectors:[["ngb-tooltip-window"]],hostAttrs:["role","tooltip"],hostVars:5,hostBindings:function(i,n){i&1&&pe("mouseenter",function(){return n.onMouseEnter()})("mouseleave",function(){return n.onMouseLeave()}),i&2&&(ee("id",n.id),De("tooltip"+(n.tooltipClass?" "+n.tooltipClass:"")),P("fade",n.animation))},inputs:{animation:"animation",id:"id",tooltipClass:"tooltipClass",onMouseEnter:"onMouseEnter",onMouseLeave:"onMouseLeave"},ngContentSelectors:zt,decls:3,vars:0,consts:[["data-popper-arrow","",1,"tooltip-arrow"],[1,"tooltip-inner"]],template:function(i,n){i&1&&(at(),pn(0,"div",0),st(1,"div",1),lt(2),rt())},styles:[`ngb-tooltip-window{pointer-events:none;position:absolute}ngb-tooltip-window .tooltip-inner{pointer-events:auto}ngb-tooltip-window.bs-tooltip-top,ngb-tooltip-window.bs-tooltip-bottom{padding-left:0;padding-right:0}ngb-tooltip-window.bs-tooltip-start,ngb-tooltip-window.bs-tooltip-end{padding-top:0;padding-bottom:0}
4
+ `],encapsulation:2,changeDetection:0})}}return e})(),_u=(()=>{class e{constructor(){this._config=c(fr),this.animation=this._config.animation,this.autoClose=this._config.autoClose,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.triggers=this._config.triggers,this.container=this._config.container,this.disableTooltip=this._config.disableTooltip,this.tooltipClass=this._config.tooltipClass,this.openDelay=this._config.openDelay,this.closeDelay=this._config.closeDelay,this.shown=new D,this.hidden=new D,this._nativeElement=c(W).nativeElement,this._ngZone=c(ae),this._document=c(re),this._changeDetector=c(fe),this._injector=c(ue),this._ngbTooltipWindowId=`ngb-tooltip-${gr++}`,this._popupService=new jt(mr),this._windowRef=null,this._positioning=Ui(),this._mouseEnterTooltip=new $,this._mouseLeaveTooltip=new $,this._opening=!0,this._transitioning=!1}set ngbTooltip(t){this._ngbTooltip=t,!t&&this._windowRef&&this.close()}get ngbTooltip(){return this._ngbTooltip}open(t){if(!this._opening&&this._transitioning&&(this._transitioning=!1,Gn(this._windowRef.location.nativeElement)),!this._windowRef&&this._ngbTooltip&&!this.disableTooltip){let{windowRef:i,transition$:n}=this._popupService.open(this._ngbTooltip,t??this.tooltipContext,this.animation);this._opening=!0,this._transitioning=!0,this._windowRef=i,this._windowRef.setInput("animation",this.animation),this._windowRef.setInput("tooltipClass",this.tooltipClass),this._windowRef.setInput("id",this._ngbTooltipWindowId),this._windowRef.setInput("onMouseEnter",()=>this._mouseEnterTooltip.next()),this._windowRef.setInput("onMouseLeave",()=>this._mouseLeaveTooltip.next()),this._getPositionTargetElement().setAttribute("aria-describedby",this._ngbTooltipWindowId),this.container==="body"&&this._document.body.appendChild(this._windowRef.location.nativeElement),this._windowRef.changeDetectorRef.detectChanges(),this._windowRef.changeDetectorRef.markForCheck(),this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._getPositionTargetElement(),targetElement:this._windowRef.location.nativeElement,placement:this.placement,baseClass:"bs-tooltip",updatePopperOptions:s=>this.popperOptions(Li([0,6])(s))}),Promise.resolve().then(()=>{this._positioning.update()}),this._afterRenderRef=It({mixedReadWrite:()=>{this._positioning.update()}},{injector:this._injector})}),Hi(this._ngZone,this._document,this.autoClose,()=>this.close(),this.hidden,[this._windowRef.location.nativeElement],[this._nativeElement]),n.subscribe(()=>{this._transitioning&&(this._transitioning=!1,this.shown.emit())})}}close(t=this.animation){this._opening&&this._transitioning&&(this._transitioning=!1,Gn(this._windowRef.location.nativeElement)),this._windowRef!=null&&(this._getPositionTargetElement().removeAttribute("aria-describedby"),this._opening=!1,this._transitioning=!0,this._popupService.close(t).subscribe(()=>{this._windowRef=null,this._positioning.destroy(),this._afterRenderRef?.destroy(),this._transitioning&&(this._transitioning=!1,this.hidden.emit()),this._changeDetector.markForCheck()}))}toggle(){this._windowRef?this.close():this.open()}isOpen(){return this._windowRef!=null}ngOnInit(){this._unregisterListenersFn=_r(this._nativeElement,this.triggers,this.isOpen.bind(this),this.open.bind(this),this.close.bind(this),+this.openDelay,+this.closeDelay,this._mouseEnterTooltip,this._mouseLeaveTooltip)}ngOnChanges({tooltipClass:t}){t&&this.isOpen()&&this._windowRef.setInput("tooltipClass",t.currentValue)}ngOnDestroy(){this.close(!1),this._unregisterListenersFn?.()}_getPositionTargetElement(){return(Xt(this.positionTarget)?this._document.querySelector(this.positionTarget):this.positionTarget)||this._nativeElement}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["","ngbTooltip",""]],inputs:{animation:"animation",autoClose:"autoClose",placement:"placement",popperOptions:"popperOptions",triggers:"triggers",positionTarget:"positionTarget",container:"container",disableTooltip:"disableTooltip",tooltipClass:"tooltipClass",tooltipContext:"tooltipContext",openDelay:"openDelay",closeDelay:"closeDelay",ngbTooltip:"ngbTooltip"},outputs:{shown:"shown",hidden:"hidden"},exportAs:["ngbTooltip"],features:[je]})}}return e})(),vo=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})(),vr=(()=>{class e{constructor(){this.highlightClass="ngb-highlight",this.accentSensitive=!0}ngOnChanges(t){!this.accentSensitive&&!String.prototype.normalize&&(console.warn("The `accentSensitive` input in `ngb-highlight` cannot be set to `false` in a browser that does not implement the `String.normalize` function. You will have to include a polyfill in your application to use this feature in the current browser."),this.accentSensitive=!0);let i=mt(this.result),n=Array.isArray(this.term)?this.term:[this.term],s=u=>this.accentSensitive?u:An(u),r=n.map(u=>Es(s(mt(u)))).filter(u=>u),a=this.accentSensitive?i:An(i),l=r.length?a.split(new RegExp(`(${r.join("|")})`,"gmi")):[i];if(this.accentSensitive)this.parts=l;else{let u=0;this.parts=l.map(d=>i.substring(u,u+=d.length))}}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=ge({type:e,selectors:[["ngb-highlight"]],inputs:{highlightClass:"highlightClass",result:"result",term:"term",accentSensitive:"accentSensitive"},features:[je],decls:2,vars:0,consts:[[3,"class"]],template:function(i,n){i&1&&kt(0,gs,2,1,null,null,di),i&2&&Ft(n.parts)},styles:[`.ngb-highlight{font-weight:700}
5
+ `],encapsulation:2,changeDetection:0})}}return e})(),br=new cn("live announcer delay",{providedIn:"root",factory:()=>100});function jn(e,o=!1){let t=e.body.querySelector("#ngb-live");return t==null&&o&&(t=e.createElement("div"),t.setAttribute("id","ngb-live"),t.setAttribute("aria-live","polite"),t.setAttribute("aria-atomic","true"),t.classList.add("visually-hidden"),e.body.appendChild(t)),t}var yr=(()=>{class e{constructor(){this._document=c(re),this._delay=c(br)}ngOnDestroy(){let t=jn(this._document);t&&t.parentElement.removeChild(t)}say(t){let i=jn(this._document,!0),n=this._delay;if(i!=null){i.textContent="";let s=()=>i.textContent=t;n===null?s():setTimeout(s,n)}}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),wr=(()=>{class e{constructor(){this.editable=!0,this.focusFirst=!0,this.selectOnExact=!1,this.showHint=!1,this.placement=["bottom-start","bottom-end","top-start","top-end"],this.popperOptions=t=>t}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),Dr=(()=>{class e{constructor(){this.activeIdx=0,this.focusFirst=!0,this.formatter=mt,this.selectEvent=new D,this.activeChangeEvent=new D}hasActive(){return this.activeIdx>-1&&this.activeIdx<this.results.length}getActive(){return this.results[this.activeIdx]}markActive(t){this.activeIdx=t,this._activeChanged()}next(){this.activeIdx===this.results.length-1?this.activeIdx=this.focusFirst?(this.activeIdx+1)%this.results.length:-1:this.activeIdx++,this._activeChanged()}prev(){this.activeIdx<0?this.activeIdx=this.results.length-1:this.activeIdx===0?this.activeIdx=this.focusFirst?this.results.length-1:-1:this.activeIdx--,this._activeChanged()}resetActive(){this.activeIdx=this.focusFirst?0:-1,this._activeChanged()}select(t){this.selectEvent.emit(t)}ngOnInit(){this.resetActive()}_activeChanged(){this.activeChangeEvent.emit(this.activeIdx>=0?this.id+"-"+this.activeIdx:void 0)}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=ge({type:e,selectors:[["ngb-typeahead-window"]],hostAttrs:["role","listbox"],hostVars:3,hostBindings:function(i,n){i&1&&pe("mousedown",function(r){return r.preventDefault()}),i&2&&(ee("id",n.id),De("dropdown-menu show"+(n.popupClass?" "+n.popupClass:"")))},inputs:{id:"id",focusFirst:"focusFirst",results:"results",term:"term",formatter:"formatter",resultTemplate:"resultTemplate",popupClass:"popupClass"},outputs:{selectEvent:"select",activeChangeEvent:"activeChange"},exportAs:["ngbTypeaheadWindow"],decls:4,vars:0,consts:[["rt",""],["type","button","role","option",1,"dropdown-item",3,"id","active"],[3,"result","term"],["type","button","role","option",1,"dropdown-item",3,"mouseenter","click","id"],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(i,n){i&1&&(Rt(0,vs,1,2,"ng-template",null,0,wn),kt(2,ys,2,9,"button",1,di)),i&2&&(Fe(2),Ft(n.results))},dependencies:[vr,mi],encapsulation:2})}}return e})(),Or=0,fu=(()=>{class e{constructor(){this._nativeElement=c(W).nativeElement,this._config=c(wr),this._live=c(yr),this._document=c(re),this._ngZone=c(ae),this._changeDetector=c(fe),this._injector=c(ue),this._popupService=new jt(Dr),this._positioning=Ui(),this._subscription=null,this._closed$=new $,this._inputValueBackup=null,this._inputValueForSelectOnExact=null,this._valueChanges$=X(this._nativeElement,"input").pipe(xe(t=>t.target.value)),this._resubscribeTypeahead$=new en(null),this._windowRef=null,this.autocomplete="off",this.container=this._config.container,this.editable=this._config.editable,this.focusFirst=this._config.focusFirst,this.selectOnExact=this._config.selectOnExact,this.showHint=this._config.showHint,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.selectItem=new D,this.activeDescendant=null,this.popupId=`ngb-typeahead-${Or++}`,this._onTouched=()=>{},this._onChange=t=>{}}ngOnInit(){this._subscribeToUserInput()}ngOnChanges({ngbTypeahead:t}){t&&!t.firstChange&&(this._unsubscribeFromUserInput(),this._subscribeToUserInput())}ngOnDestroy(){this._closePopup(),this._unsubscribeFromUserInput()}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}writeValue(t){this._writeInputValue(this._formatItemForInput(t)),this.showHint&&(this._inputValueBackup=t)}setDisabledState(t){this._nativeElement.disabled=t}dismissPopup(){this.isPopupOpen()&&(this._resubscribeTypeahead$.next(null),this._closePopup(),this.showHint&&this._inputValueBackup!==null&&this._writeInputValue(this._inputValueBackup),this._changeDetector.markForCheck())}isPopupOpen(){return this._windowRef!=null}handleBlur(){this._resubscribeTypeahead$.next(null),this._onTouched()}handleKeyDown(t){if(this.isPopupOpen())switch(t.key){case"ArrowDown":t.preventDefault(),this._windowRef.instance.next(),this._showHint();break;case"ArrowUp":t.preventDefault(),this._windowRef.instance.prev(),this._showHint();break;case"Enter":case"Tab":{let i=this._windowRef.instance.getActive();Ce(i)&&(t.preventDefault(),t.stopPropagation(),this._selectResult(i)),this._closePopup();break}}}_openPopup(){if(!this.isPopupOpen()){this._inputValueBackup=this._nativeElement.value;let{windowRef:t}=this._popupService.open();this._windowRef=t,this._windowRef.setInput("id",this.popupId),this._windowRef.setInput("popupClass",this.popupClass),this._windowRef.instance.selectEvent.subscribe(i=>this._selectResultClosePopup(i)),this._windowRef.instance.activeChangeEvent.subscribe(i=>this.activeDescendant=i),this.container==="body"&&(this._windowRef.location.nativeElement.style.zIndex="1055",this._document.body.appendChild(this._windowRef.location.nativeElement)),this._changeDetector.markForCheck(),this._ngZone.runOutsideAngular(()=>{this._windowRef&&(this._positioning.createPopper({hostElement:this._nativeElement,targetElement:this._windowRef.location.nativeElement,placement:this.placement,updatePopperOptions:i=>this.popperOptions(Li([0,2])(i))}),this._afterRenderRef=It({mixedReadWrite:()=>{this._positioning.update()}},{injector:this._injector}))}),Hi(this._ngZone,this._document,"outside",()=>this.dismissPopup(),this._closed$,[this._nativeElement,this._windowRef.location.nativeElement])}}_closePopup(){this._popupService.close().subscribe(()=>{this._positioning.destroy(),this._afterRenderRef?.destroy(),this._closed$.next(),this._windowRef=null,this.activeDescendant=null})}_selectResult(t){let i=!1;this.selectItem.emit({item:t,preventDefault:()=>{i=!0}}),this._resubscribeTypeahead$.next(null),i||(this.writeValue(t),this._onChange(t))}_selectResultClosePopup(t){this._selectResult(t),this._closePopup()}_showHint(){if(this.showHint&&this._windowRef?.instance.hasActive()&&this._inputValueBackup!=null){let t=this._inputValueBackup.toLowerCase(),i=this._formatItemForInput(this._windowRef.instance.getActive());t===i.substring(0,this._inputValueBackup.length).toLowerCase()?(this._writeInputValue(this._inputValueBackup+i.substring(this._inputValueBackup.length)),this._nativeElement.setSelectionRange.apply(this._nativeElement,[this._inputValueBackup.length,i.length])):this._writeInputValue(i)}}_formatItemForInput(t){return t!=null&&this.inputFormatter?this.inputFormatter(t):mt(t)}_writeInputValue(t){this._nativeElement.value=mt(t)}_subscribeToUserInput(){let t=this._valueChanges$.pipe(it(i=>{this._inputValueBackup=this.showHint?i:null,this._inputValueForSelectOnExact=this.selectOnExact?i:null,this._onChange(this.editable?i:null)}),this.ngbTypeahead?this.ngbTypeahead:()=>et([]));this._subscription=this._resubscribeTypeahead$.pipe(ti(()=>t)).subscribe(i=>{!i||i.length===0?this._closePopup():this.selectOnExact&&i.length===1&&this._formatItemForInput(i[0])===this._inputValueForSelectOnExact?(this._selectResult(i[0]),this._closePopup()):(this._openPopup(),this._windowRef.setInput("focusFirst",this.focusFirst),this._windowRef.setInput("results",i),this._windowRef.setInput("term",this._nativeElement.value),this.resultFormatter&&this._windowRef.setInput("formatter",this.resultFormatter),this.resultTemplate&&this._windowRef.setInput("resultTemplate",this.resultTemplate),this._windowRef.instance.resetActive(),this._windowRef.changeDetectorRef.detectChanges(),this._showHint());let n=i?i.length:0;this._live.say(n===0?"No results available":`${n} result${n===1?"":"s"} available`)})}_unsubscribeFromUserInput(){this._subscription&&this._subscription.unsubscribe(),this._subscription=null}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=T({type:e,selectors:[["input","ngbTypeahead",""]],hostAttrs:["autocapitalize","off","autocorrect","off","role","combobox"],hostVars:7,hostBindings:function(i,n){i&1&&pe("blur",function(){return n.handleBlur()})("keydown",function(r){return n.handleKeyDown(r)}),i&2&&(ee("autocomplete",n.autocomplete),he("aria-autocomplete",n.showHint?"both":"list")("aria-activedescendant",n.activeDescendant)("aria-controls",n.isPopupOpen()?n.popupId:null)("aria-expanded",n.isPopupOpen()),P("open",n.isPopupOpen()))},inputs:{autocomplete:"autocomplete",container:"container",editable:"editable",focusFirst:"focusFirst",inputFormatter:"inputFormatter",ngbTypeahead:"ngbTypeahead",resultFormatter:"resultFormatter",resultTemplate:"resultTemplate",selectOnExact:"selectOnExact",showHint:"showHint",placement:"placement",popperOptions:"popperOptions",popupClass:"popupClass"},outputs:{selectItem:"selectItem"},exportAs:["ngbTypeahead"],features:[gi([{provide:Dn,useExisting:ii(()=>e),multi:!0}]),je]})}}return e})(),bo=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})();var yo=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({})}}return e})(),Er=[Kn,Qn,Jn,Yn,eo,no,oo,co,yo,uo,ho,po,_o,fo,go,mo,vo,bo],gu=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=I({type:e})}static{this.\u0275inj=N({imports:[Er,Kn,Qn,Jn,Yn,eo,no,oo,co,yo,uo,ho,po,_o,fo,go,mo,vo,bo]})}}return e})();export{tu as a,ks as b,iu as c,nu as d,vt as e,Xn as f,ou as g,to as h,du as i,qs as j,uu as k,io as l,Wt as m,rr as n,cr as o,ro as p,ao as q,hu as r,pu as s,_u as t,fu as u,gu as v};
@@ -0,0 +1,3 @@
1
+ import{a as ee}from"./chunk-LVBVUIJY.js";import"./chunk-BMOLDRJ3.js";import{a as B}from"./chunk-QGLAR7UC.js";import{a as re}from"./chunk-H7F7H5MW.js";import"./chunk-6ZOSTYPR.js";import{n as Y,t as Z}from"./chunk-MS4K4KAK.js";import"./chunk-BGCYR25X.js";import{b as A}from"./chunk-E35SHTFY.js";import{D as X,c as G,e as Q,f as H,g as R,j as W,m as J,r as K,s as U}from"./chunk-UO7KCTHV.js";import{b as O}from"./chunk-T472BWYK.js";import{E as P,F as N,H as j,K as z}from"./chunk-2TQEV57U.js";import{Ab as v,Ec as s,Fb as f,Fc as l,Gb as m,Hb as a,Ib as d,Pc as $,Rb as x,Xb as h,Ya as E,Za as n,Zb as p,aa as c,d as I,ec as y,fc as M,ga as u,ha as g,ic as S,jc as k,kc as F,lc as q,nb as V,sa as C,vc as D,yb as _,zb as w}from"./chunk-MKV5RAJQ.js";import{g as ne,h as b}from"./chunk-B4AJQJMI.js";var T=ne(re(),1);var ae=["logoutput"],se=["searchInput"];function le(i,L){if(i&1){let e=x();m(0,"div",5)(1,"button",9),s(2,"translate"),s(3,"translate"),h("click",function(){u(e);let o=p();return g(o.showSearch())}),d(4,"i"),a(),m(5,"button",9),s(6,"translate"),s(7,"translate"),h("click",function(){u(e);let o=p();return g(o.downloadLogFile())}),d(8,"i",10),a(),m(9,"button",11),s(10,"translate"),s(11,"translate"),h("click",function(){u(e);let o=p();return g(o.truncateLogFile())}),d(12,"i",12),a()()}if(i&2){let e=p();n(),f("openDelay",150)("ngbTooltip",l(2,12,"form.search")),_("aria-label",l(3,14,"form.search")),n(3),k(D("fas",e.showSearchBar()?" primary-text":""," fa-search")),n(),f("openDelay",150)("ngbTooltip",l(6,16,"form.button_download")),_("aria-label",l(7,18,"form.button_download")),n(4),f("openDelay",150)("ngbTooltip",l(10,20,"form.button_delete")),_("aria-label",l(11,22,"form.button_delete"))}}function ce(i,L){if(i&1){let e=x();m(0,"a",17),h("click",function(){u(e);let o=p(2);return g(o.onClearSearch())}),d(1,"i",18),a()}}function me(i,L){if(i&1){let e=x();m(0,"div",6)(1,"div",13)(2,"form",14),h("ngSubmit",function(){u(e);let o=p();return g(o.onSubmit(o.form.value))}),d(3,"input",15,1),s(5,"translate"),w(6,ce,2,0,"a",16),a()()()}if(i&2){let e=p();n(2),f("formGroup",e.form),n(),S("is-invalid",e.searchInputInvalid),f("placeholder",l(5,5,"logs.placeholder_search_logs")),n(3),v(e.showExitButton()?6:-1)}}var Te=(()=>{class i{$api=c(z);$auth=c(A);$log=c(ee);$modal=c(Y);$settings=c(O);$toastr=c(j);$translate=c(P);termTarget=$("logoutput",{});searchInput=$("searchInput",{});resizeEvent=new I;valueChangesSubscription;isAdmin=this.$auth.user.admin;showSearchBar=C(!1,{});showExitButton=C(!1,{});form=new R({query:new W("")});get searchInputInvalid(){let e=(this.form.get("query")?.value||"").trim();return e.length>0&&e.length<3}onWindowResize(){this.resizeEvent.next(void 0)}ngOnInit(){let e=this.$translate.instant("menu.linux.label_logs");this.$settings.setPageTitle(e),window.document.querySelector("body").classList.add("bg-black"),this.$log.startTerminal(this.termTarget(),{allowProposedApi:!0},this.resizeEvent),this.valueChangesSubscription=this.form.get("query")?.valueChanges.subscribe(t=>{let o=t||"",r=o.trim();r!==o&&this.form.get("query")?.setValue(r,{emitEvent:!1}),this.showExitButton()&&r.length<3&&(this.showExitButton.set(!1),this.$log.clearSearchFilter(),this.$log.scrollToBottom())})}showSearch(){if(this.showSearchBar())this.showSearchBar.set(!1),this.showExitButton.set(!1),this.form.setValue({query:""}),this.$log.clearSearchFilter(),this.$log.scrollToBottom();else{this.showSearchBar.set(!0);let e=this.searchInput();e&&setTimeout(()=>e.nativeElement.focus(),0)}}onSubmit(e){let t=(e.query||"").trim();!t.length||t.length<3?(this.form.setValue({query:""}),this.showExitButton.set(!1),this.$log.clearSearchFilter(),this.$log.scrollToBottom()):(this.showExitButton.set(!0),this.$log.setSearchFilter(t),this.$log.scrollToBottom())}onClearSearch(){this.form.setValue({query:""}),this.showExitButton.set(!1),this.$log.clearSearchFilter(),this.$log.scrollToBottom()}ngOnDestroy(){window.document.querySelector("body").classList.remove("bg-black"),this.valueChangesSubscription&&this.valueChangesSubscription.unsubscribe(),this.resizeEvent.complete(),this.$log.destroyTerminal()}downloadLogFile(){return b(this,null,function*(){let e=this.$modal.open(B,{size:"lg",backdrop:"static"});e.componentInstance.title=this.$translate.instant("logs.title_download_log_file"),e.componentInstance.message=this.$translate.instant("logs.download_warning"),e.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_download"),e.componentInstance.faIconClass="fas fa-user-secret primary-text",e.result.then(()=>b(this,null,function*(){try{let t=yield this.$api.get("/platform-tools/hb-service/log/download",{observe:"response",responseType:"blob"}),o=this.$log.getSearchFilter();if(o){let te=(yield t.body.text()).split(`
2
+ `).filter(ie=>ie.replace(/\x1b\[[0-9;]*m/g,"").toLowerCase().includes(o.toLowerCase())),oe=new Blob([te.join(`
3
+ `)],{type:"text/plain"});(0,T.saveAs)(oe,"homebridge.log.txt")}else(0,T.saveAs)(t.body,"homebridge.log.txt")}catch(t){let o;try{if(t&&typeof t=="object"&&"error"in t){let r=yield t.error.text();o=JSON.parse(r).message}}catch(r){console.error(r)}this.$toastr.error(o||this.$translate.instant("logs.download.error"),this.$translate.instant("toast.title_error"))}})).catch(()=>{})})}truncateLogFile(){let e=this.$modal.open(B,{size:"lg",backdrop:"static"});e.componentInstance.title=this.$translate.instant("logs.title_truncate_log_file"),e.componentInstance.message=this.$translate.instant("logs.truncate_log_warning"),e.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_delete"),e.componentInstance.confirmButtonClass="btn-danger",e.componentInstance.faIconClass="fas fa-circle-exclamation primary-text",e.result.then(()=>b(this,null,function*(){try{yield this.$api.put("/platform-tools/hb-service/log/truncate",{}),this.$toastr.success(this.$translate.instant("logs.log_file_truncated"),this.$translate.instant("toast.title_success")),this.$log.term.clear()}catch(t){console.error(t);let o=t&&typeof t=="object"&&"error"in t&&t.error&&typeof t.error=="object"&&"message"in t.error?String(t.error.message):this.$translate.instant("logs.truncate.error");this.$toastr.error(o,this.$translate.instant("toast.title_error"))}})).catch(()=>{})}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=V({type:i,selectors:[["ng-component"]],viewQuery:function(t,o){t&1&&(y(o.termTarget,ae,5),y(o.searchInput,se,5)),t&2&&M(2)},hostBindings:function(t,o){t&1&&h("resize",function(){return o.onWindowResize()},E)},decls:10,vars:9,consts:[["logoutput",""],["searchInput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],[1,"row"],[1,"flex-column","d-flex","align-items-stretch"],["id","log-output",1,"align-self-end","w-100","h-100","mb-1"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-download"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-0",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-trash-alt"],[1,"col-md-12"],["novalidate","",3,"ngSubmit","formGroup"],["type","text","formControlName","query",1,"search-bar",3,"placeholder"],["href","javascript:void(0)",1,"search-bar-clear"],["href","javascript:void(0)",1,"search-bar-clear",3,"click"],[1,"fas","fa-square-xmark"]],template:function(t,o){t&1&&(m(0,"div",2)(1,"div",3)(2,"h3",4),F(3),s(4,"translate"),a()(),w(5,le,13,24,"div",5),a(),w(6,me,7,7,"div",6),m(7,"div",7),d(8,"div",8,0),a()),t&2&&(n(3),q(l(4,7,"menu.linux.label_logs")),n(2),v(o.isAdmin?5:-1),n(),v(o.showSearchBar()?6:-1),n(),S("adjust-for-mobile",!o.showSearchBar())("adjust-for-mobile-with-search",o.showSearchBar()))},dependencies:[Z,X,J,G,Q,H,U,K,N],styles:[".search-bar[_ngcontent-%COMP%]{outline:none;box-sizing:inherit!important;background-color:inherit;height:50px!important;width:100%;border-width:.5px;padding:10px;margin-bottom:15px}@media(hover:hover){.search-bar[_ngcontent-%COMP%]:hover{border:1px solid #000000}}.search-bar[_ngcontent-%COMP%]:focus{border:1px solid #000000;box-shadow:0 1px #000}.search-bar.is-invalid[_ngcontent-%COMP%]{border:1px solid #d32f2f!important;box-shadow:0 1px #d32f2f!important}@media(hover:hover){.search-bar.is-invalid[_ngcontent-%COMP%]:hover{border:1px solid #d32f2f!important;box-shadow:0 1px #d32f2f!important}}.search-bar.is-invalid[_ngcontent-%COMP%]:focus{border:1px solid #d32f2f!important;box-shadow:0 1px #d32f2f!important}.search-bar-clear[_ngcontent-%COMP%]{position:absolute;right:30px;font-size:25px;color:#d0d0d0;line-height:50px;cursor:pointer}.adjust-for-mobile-with-search[_ngcontent-%COMP%]{height:calc(100% - 95px);width:calc(100% + 17px);overflow:hidden}@media(max-width:767px){.adjust-for-mobile-with-search[_ngcontent-%COMP%]{height:calc(100% - 125px)}}"]})}return i})();export{Te as LogsComponent};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-YSJHLHJ6.js";import"./chunk-B4AJQJMI.js";export default a();
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-HKOUIAFO.js";import"./chunk-B4AJQJMI.js";export default a();
@@ -0,0 +1 @@
1
+ import{e}from"./chunk-B4AJQJMI.js";var s=e((i,t)=>{t.exports={"accessories.accessory_info":"Accessory Information","accessories.bridge_ip":"Bridge IP","accessories.bridge_port":"Bridge Port","accessories.button_add_room":"Lis\xE4\xE4 huone","accessories.button_hidden_hide":"Piilota piilotettu","accessories.button_hidden_show":"N\xE4yt\xE4 piilotettu","accessories.button_remove":"Remove From Cache","accessories.control.adaptive_lighting":"Adaptive Lighting","accessories.control.adaptive_lighting_note":"Some plugins may automatically re-enable Adaptive Lighting when changing this.","accessories.control.auto":"Automaattinen","accessories.control.away":"Pois","accessories.control.battery_charged":"Charged","accessories.control.battery_charging":"Lataa","accessories.control.battery_low":"Battery Low","accessories.control.battery_notchargeable":"Ei ladattava","accessories.control.battery_notcharging":"Ei lataa","accessories.control.brightness":"Kirkkaus","accessories.control.cleaning":"Cleaning","accessories.control.closed":"Suljettu","accessories.control.closing":"Sulkeutuu","accessories.control.color_temperature":"Color Temperature","accessories.control.cool":"J\xE4\xE4hdytys","accessories.control.current":"Current","accessories.control.default_room":"Oletus huone","accessories.control.dehumidify":"Dehumidify","accessories.control.detected":"Havaittu","accessories.control.direction_control":"Direction Control","accessories.control.drag_here":"Raaha t\xE4h\xE4n","accessories.control.filter_level":"Filter Life","accessories.control.heat":"L\xE4mmitys","accessories.control.home":"Koti","accessories.control.hue":"Hue","accessories.control.humidify":"Humidify","accessories.control.idle":"Idle","accessories.control.input":"Input List","accessories.control.input_control":"Input Control","accessories.control.jammed":"Juuttunut","accessories.control.lock_auto":"Auto Lock Timer","accessories.control.locked":"Lukittu","accessories.control.manual":"Manual","accessories.control.media_control":"Media Control","accessories.control.microphone":"Microphone","accessories.control.mode":"Mode","accessories.control.mode_control":"Mode Control","accessories.control.mute":"Vaimennus","accessories.control.mute_control":"Mute Control","accessories.control.night":"Y\xF6","accessories.control.no_data":"No Data","accessories.control.not_detected":"Ei havaittu","accessories.control.not_mute":"P\xE4\xE4ll\xE4","accessories.control.obstructed":"Obstructed","accessories.control.off":"Pois","accessories.control.on":"P\xE4\xE4ll\xE4","accessories.control.open":"Auki","accessories.control.opening":"Avautuu","accessories.control.pause":"Pause","accessories.control.paused":"Paused","accessories.control.play":"Play","accessories.control.replace":"Replace","accessories.control.rotation_c_clockwise":"Counter Clockwise","accessories.control.rotation_clockwise":"Clockwise","accessories.control.rotation_direction":"Rotation Direction","accessories.control.rotation_speed":"Py\xF6rimisnopeus","accessories.control.running":"K\xE4ynniss\xE4","accessories.control.saturation":"Saturation","accessories.control.set_duration":"Set Duration","accessories.control.speaker":"Speaker","accessories.control.speaker_volume":"\xC4\xE4nenvoimakkuus","accessories.control.state_control":"State Control","accessories.control.stateless":"Stateless","accessories.control.stop":"Stop","accessories.control.stopped":"Pys\xE4ytetty","accessories.control.target":"Kohde","accessories.control.target_auto":"Auto Target","accessories.control.threshold_auto":"Auto Threshold","accessories.control.triggered":"Liipaistunut","accessories.control.unknown":"Tuntematon","accessories.control.unlocked":"Lukitsematon","accessories.control_disabled":"Homebridge laitehallinta pois k\xE4yt\xF6st\xE4","accessories.core.air_purifier":"Air Purifier","accessories.core.air_quality_sensor":"Air Quality Sensor","accessories.core.battery":"Battery","accessories.core.carbon_dioxide_sensor":"Carbon Dioxide Sensor","accessories.core.carbon_monoxide_sensor":"Carbon Monoxide Sensor","accessories.core.contact_sensor":"Contact Sensor","accessories.core.cooler":"Cooler","accessories.core.dehumidifier":"Dehumidifier","accessories.core.door":"Door","accessories.core.doorbell":"Doorbell","accessories.core.fan":"Fan","accessories.core.faucet_valve":"Valve","accessories.core.filter_maintenance":"Filter Maintenance","accessories.core.garage_door_opener":"Garage Door Opener","accessories.core.generic_valve":"Valve","accessories.core.heater":"Heater","accessories.core.heater_cooler":"Heater Cooler","accessories.core.humidifier":"Humidifier","accessories.core.humidifier_dehumidifier":"Humidifier Dehumidifier","accessories.core.humidity_sensor":"Humidity Sensor","accessories.core.irrigation_system":"Irrigation System","accessories.core.irrigation_valve":"Valve","accessories.core.leak_sensor":"Leak Sensor","accessories.core.light_sensor":"Light Sensor","accessories.core.lightbulb":"Lightbulb","accessories.core.lock_mechanism":"Lock Mechanism","accessories.core.microphone":"Microphone","accessories.core.motion_sensor":"Motion Sensor","accessories.core.occupancy_sensor":"Occupancy Sensor","accessories.core.on_off_light":"Lightbulb","accessories.core.on_off_light_switch":"Switch","accessories.core.on_off_plug_in_unit":"Outlet","accessories.core.outlet":"Outlet","accessories.core.robot_vacuum":"Robot Vacuum","accessories.core.robotic_vacuum_cleaner":"Robot Vacuum","accessories.core.security_system":"Security System","accessories.core.shower_head_valve":"Valve","accessories.core.smoke_sensor":"Smoke Sensor","accessories.core.speaker":"Speaker","accessories.core.stateless_programmable_switch":"Stateless Programmable Switch","accessories.core.switch":"Switch","accessories.core.television":"Television","accessories.core.temperature_sensor":"Temperature Sensor","accessories.core.thermostat":"Thermostat","accessories.core.valve":"Valve","accessories.core.washing_machine":"Washing Machine","accessories.core.window":"Window","accessories.core.window_covering":"Window Covering","accessories.custom_name":"Custom Name","accessories.custom_type":"Custom Type","accessories.hide_this_accessory":"Piilota t\xE4m\xE4 laite","accessories.message_must_use_insecure_mode":"Laitteiden hallitsemiseksi Homebridge on on oltava suojaamattomassa tilassa {{ link }}.","accessories.name":"Nimi","accessories.no_plugins.message_1":"Accessories are created and managed by Homebridge plugins.","accessories.no_plugins.message_2":"You can find and install plugins from the plugins page.","accessories.no_plugins.title":"No Plugins Installed","accessories.only_ui":"These settings are only for the Homebridge UI and <strong>will not be reflected in HomeKit</strong>.","accessories.only_ui_2":"These options are unique to your Homebridge UI account.","accessories.plugin":"Plugin","accessories.room_name":"Huoneen Nimi","accessories.service":"Service","accessories.service_info":"Service Information","accessories.settings_link":"P\xE4\xE4set tarvittaessa Homebridge asetuksiin sivuvalikosta","accessories.show_on_dashboard":"N\xE4yt\xE4 hallintapaneelissa","accessories.support.acc_1":"Accessories may take a few minutes to appear on this screen after a Homebridge restart or after being added. If accessories are consistently missing, try changing the mDNS advertiser in the settings.","accessories.support.acc_2":"You can change the type of certain accessories in the UI (like showing a switch as a heater). You can do this by clicking on the three bars that appear in the top-right corner of the accessory tile as you hover over it. A 'Custom Type' option will appear if the accessory supports this. Note this will not change the accessory in HomeKit (only a plugin can do this).","accessories.support.rooms_1":"Huoneet jotka luot t\xE4\xE4ll\xE4 eiv\xE4t n\xE4y HomeKit:s\xE4, ne ovat vain Homebridge UI:ta varten","accessories.support.rooms_2":"To rename an existing room, create a new room with the desired name and move the accessories to the new room.","accessories.support.rooms_3":"To delete an existing room, move all its accessories to another room and refresh the page.","accessories.title_rooms":"Rooms","backup.backup_delete_failed":"Varmuuskopion poisto ep\xE4onnistui. Katso lokitiedoista tarkemmin.","backup.backup_download_failed":"Varmuuskopion lataus ep\xE4onnistui","backup.backup_exceeds_max_size":"Varmuuskopion koko ({{ backupSize }}) ylitt\xE4\xE4 maksimikoon {{ maxBackupSizeText }}","backup.backup_help_one":"Lataa varmuuskopio koko Homebridge ymp\xE4rist\xF6st\xE4. Varmuuskopioidaan koko Homebridge talletus hakemisto. Voit palauttaa varmuuskopion mihin tahansa Homebridge asennukseen","backup.backup_help_two":"Laajennukset joita ei hallita npm:st\xE4 ja laajennukset jotka on asennettu suoraan GitHub:sta eiv\xE4t sis\xE4lly varmuuskopiointiin tai palautukseen.","backup.backup_now":"Backup Now","backup.backup_now_desc":"Generate and download an up-to-date backup file.","backup.backup_now_save_desc":"Generate an up-to-date backup file in your backup storage directory.","backup.backup_restored":"Varmuuskopio palautettu","backup.backup_warning":"Varmuuskopio sis\xE4lt\xE4\xE4 arkaluontoista tietoa, \xE4l\xE4 jaa sit\xE4 muille.","backup.files_auto":"Stored Backup Files","backup.label_extracting":"Extracting Archive","backup.label_uploading":"Ladataan","backup.load_error":"Asetus varmuuskopion lataus ep\xE4onnistui.","backup.restore_failed":"Palautus ep\xE4onnistui","backup.restore_help_one":"Palauta aiemmin Homebridge-k\xE4ytt\xF6liittym\xE4ll\xE4 luomasi varmuuskopioarkisto. Homebridge-kokoonpanosi, v\xE4limuistissa olevat lis\xE4varusteet, HomeKit-pariliitokset ja Homebridge-k\xE4ytt\xF6liittym\xE4n k\xE4ytt\xE4j\xE4tilit palautetaan. Kaikki asentamasi Homebridge-laajennukset ladataan my\xF6s npm-rekisterist\xE4.","backup.restore_help_two":"Palautuksen j\xE4lkeen sinun on kirjauduttava Homebridge-k\xE4ytt\xF6liittym\xE4\xE4n k\xE4ytt\xE4m\xE4ll\xE4 palautetun ilmentym\xE4n tunnistetietoja.","backup.restore_max_size":"Palautettavan varmuuskoion maksimikoko on {{ maxBackupSizeText }}.","backup.restore_now":"Restore Now","backup.restore_now_desc":"Restore from a previously downloaded backup file.","backup.restore_warning":"Varmuuskopiosta palauttaminen korvaa peruuttamattomasti nykyisen Homebridge-kokoonpanon.","backup.scheduled_backup_disabled":"Scheduled backups have been disabled via the configuration.","backup.scheduled_backup_time":"Homebridgen t\xE4ydellinen varmuuskopio luodaan automaattisesti joka p\xE4iv\xE4 klo {{ backupTime }}, ja sit\xE4 s\xE4ilytet\xE4\xE4n {{ dayCount }} p\xE4iv\xE4\xE4.","backup.settings_enable":"Enable Automated Backups","backup.settings_path":"Backup Storage Path","backup.settings_path_desc":"If you are changing this from the default, please ensure the directory exists and is writable by the Homebridge user.","backup.settings_title":"Backup Settings","backup.title_backup":"Backup & Restore","child_bridge.about":"Homebridgen avulla voit k\xE4ytt\xE4\xE4 laajennuksen alustaa tai lis\xE4laitetta erillisen\xE4 lapsisiltana {{ link }}. T\xE4m\xE4 voi parantaa Homebridgen yleist\xE4 reagointikyky\xE4 ja luotettavuutta.","child_bridge.bridge_connect":"Yhdist\xE4 HomeKit","child_bridge.bridge_settings":"Lapsisillan asetukset","child_bridge.bridges":"Sillat","child_bridge.bridges_paired":"Jokainen lapsisilta, alusta ja laite t\xE4ytyy parittaa HomeKit:in kanssa erikseen.","child_bridge.bridges_paired_2":"If you set up a child bridge now and later disable it, any accessories on this bridge will be removed and re-created on the main Homebridge bridge.","child_bridge.config.accessory":"Accessory","child_bridge.config.debug":"Vianhaku tila","child_bridge.config.enable_hap":"Enable HAP","child_bridge.config.firmware":"Firmware Versio","child_bridge.config.hide_pairing_alert":"Hide Pairing Alert","child_bridge.config.manufacturer":"Valmistaja","child_bridge.config.matter_note_1":"Plugins must be updated by the developer to support Matter accessories. There is no use in enabling Matter here unless you definitely know the plugin supports it.","child_bridge.config.matter_note_2":"Matter accessories don't appear in the Homebridge UI accessories screen. They can be managed using the Home app or other Matter controllers.","child_bridge.config.model":"Malli","child_bridge.config.name":"Nimi","child_bridge.config.or_link":"Link Existing Bridge","child_bridge.config.platform":"Platform","child_bridge.config.port":"Port","child_bridge.config.prevent":"Cannot disable a child bridge with linked accessories.","child_bridge.config.select_existing":"Select an existing bridge...","child_bridge.config.use":"Use Child Bridge","child_bridge.confirm_delete_1":"The following child bridges will be removed.","child_bridge.confirm_delete_2":"You will need to remove the paired bridges manually from the Home app. Any accessories will be removed and re-created on the main Homebridge bridge.","child_bridge.must_configure_plugin":"Sinun t\xE4ytyy m\xE4\xE4ritell\xE4 lis\xE4osan asetukset ennnekuin voit hallita sen silta-asetuksia.","child_bridge.reset_accessories":"Nollaa laitteet","child_bridge.restart":"Uudelleenk\xE4ynnist\xE4 lapsisilta","child_bridge.restart_plural":"Uudellenk\xE4ynnist\xE4 lapsisillat","child_bridge.return_to_pair":"Palaa t\xE4h\xE4n n\xE4kym\xE4\xE4n Homebridgen uudelleenk\xE4ynnistyksen j\xE4lkeen n\xE4hd\xE4ksesi parituksen QR koodi.","child_bridge.setup":"M\xE4\xE4rittele lapsisilta","child_bridge.start":"K\xE4ynnist\xE4 lapsisilta","child_bridge.start_plural":"K\xE4ynnist\xE4 lapsisillat","child_bridge.stop":"Pys\xE4yt\xE4 lapsisilta","child_bridge.stop_plural":"Pys\xE4yt\xE4 lapsisillat","common.labels.beta":"beta","common.labels.no_confirmation":"There is no confirmation when clicking the button, it will immediately perform the action.","common.phrases.are_you_sure":"Haluatko kuitenkin jatkaa?","common.phrases.support":"Feel like there is something useful we could add here? Let us know on {{ github }} or {{ discord }}!","config.config_accessory_must_be_array":"laitelistan on oltava array []","config.config_bridge_missing":"Sillan asetukset puuttuvat","config.config_invalid_json":"Asetuksissa on virheellinen JSON","config.config_platform_must_be_array":"alustalistan on oltava array []","config.config_saved":"Configuration Saved","config.config_username_error":"Sillan k\xE4ytt\xE4j\xE4nimen on oltava 6 paria pisteell\xE4 erotettuja heksadesimaali merkkej\xE4 (A-F 0-9)","config.error_blocks_objects":"Kaikkien {{ type }} lohkojen on oltava objekteja.","config.error_blocks_type":"kaikkien {{ type }} lohkojen pit\xE4\xE4 sis\xE4lt\xE4\xE4 {{ type }} ominaisuus.","config.error_string_array":"Jokaisen arvon {{ key }} joukossa pit\xE4\xE4 olla merkkijono.","config.error_string_type":"{{ type }} ominaisuuden pit\xE4\xE4 olla merkkijono.","config.failed_to_save_config":"Asetusten talletus ep\xE4onnistui","config.hide_hap_pairing":"Hide HAP Pairing Alert","config.hide_matter_pairing":"Hide Matter Pairing Alert","config.hide_plugin_updates":"Hide Plugin Updates For","config.no_restart":"A restart is not needed as no changes were made to the Homebridge configuration.","config.restore.confirm":"Napauta Talleta hyv\xE4ksy\xE4ksesi t\xE4m\xE4n varmuuskopion palautuksen.","config.restore.copy_to_editor":"Kopioi muokattavaksi","config.restore.download":"Download your current configuration as a JSON file.","config.restore.help_1":"A backup of your config file is created each time it is updated from actions you take in the Homebridge UI.","config.restore.help_2":"You can restore a previous version of your config file by selecting it from the list below. You will be able to compare this version with your current config before deciding whether to restore it.","config.restore.title":"Config File Backup & Restore","config.restore.toast_backups_deleted":"Kaikki varmuuskopiot poistettu","config.restore.view_inline":"Inline View","config.restore.view_side_by_side":"Side-By-Side View","config.title_backup_loaded":"Varmuuskopio ladattu","form.button_allow":"Allow","form.button_back":"Back","form.button_cancel":"Peru","form.button_close":"Sulje","form.button_continue":"Jatka","form.button_delete":"Poista","form.button_delete_all":"Delete All","form.button_disable":"Poista k\xE4yt\xF6st\xE4","form.button_download":"Lataa","form.button_edit":"Muokkaa","form.button_enable":"Ota k\xE4ytt\xF6\xF6n","form.button_lock":"Lukitse","form.button_more_info":"Lis\xE4\xE4 tietoa","form.button_remove":"Poista","form.button_reset":"Nollaa","form.button_restore":"Palauta","form.button_save":"Talleta","form.button_show":"N\xE4yt\xE4","form.button_unlock":"Poista lukitus","form.button_unpair":"Pura pariliitos","form.label.changes_kept":"Note that existing selections/changes are preserved when switching between items.","form.label_invalid":"Asetuksia ei hyv\xE4ksytty - voit siit\xE4 huolimatta tallentaa muutokset.","form.label_invalid_strict":"Asetuksia ei hyv\xE4ksytty - ole hyv\xE4 ja tarkista tiedot ennen tallentamista.","form.label_valid":"Asetukset hyv\xE4ksytty.","form.optional":"Optional","form.search":"Search...","form.select.auto":"Automattinen (K\xE4yt\xE4 selaimen asetuksia)","login.invalid_code":"The code entered is incorrect or has expired","login.invalid_credentials":"V\xE4\xE4r\xE4 k\xE4ytt\xE4j\xE4tunnus tai salasana","login.invalid_credentials_2":"If you lose access, delete the <code>auth.json</code> file in your Homebridge storage directory and restart Homebridge. Then refresh this page to set up a new admin account. Your Homebridge/UI settings will remain unchanged, except for UI user accounts. The only user account will be the admin account that you are setting up now.","login.invalid_password":"Invalid Password","login.label_2fa_code":"Kaksivaiheisen tunnistautumisen koodi","logs.download.error":"Lokitiedoston lataus ep\xE4onnistui.","logs.download_warning":"Homebridge lokitiedosto voi sis\xE4lt\xE4\xE4 henkil\xF6kohtaisia tietoja, salasanoja tai p\xE4\xE4sykoodeja. Ole hyv\xE4 ja tarkasta lokitiedosto ja poista arkaluontoiset tiedot ennen jakamista.","logs.log_file_truncated":"Lokitiedosto katkaistu.","logs.placeholder_search_logs":"Search logs (min. 3 characters)...","logs.title_download_log_file":"Lataa lokitiedosto","logs.title_truncate_log_file":"Poista lokitiedot","logs.truncate.error":"Lokitiedoston katkaisu ep\xE4onnistui.","logs.truncate_log_warning":"T\xE4m\xE4 toiminto poistaa peruuttamattomasti Homebridgen lokitiedot. Haluatko varmasti jatkaa?","matter_bridge.config.use":"Enable Matter","menu.config_json_editor":"JSON Asetukset","menu.docker.restart_container":"Uudellenk\xE4ynnist\xE4 Container","menu.docker.startup_script":"K\xE4ynnistys skripti","menu.docker.terminal":"P\xE4\xE4te","menu.hbrestart.confirm_hb":"Uudelleenk\xE4ynnist\xE4 Homebridge","menu.hbrestart.confirm_ui":"Uudelleenk\xE4ynnist\xE4 HB Palvelu & UI","menu.hbrestart.title":"Uudelleenk\xE4ynnist\xE4 Homebridge","menu.label_accessories":"Laitteet","menu.label_plugins":"Laajennukset","menu.label_settings":"Asetukset","menu.label_status":"Tila","menu.linux.label_logs":"Lokitiedot","menu.linux.label_restart_server":"Uudellenk\xE4ynnist\xE4 j\xE4rjestelm\xE4","menu.linux.label_shutdown_modal":"Are you sure you want to shut down the operating system? You will need physical access to turn it back on.","menu.linux.label_shutdown_server":"Sulje j\xE4rjestelm\xE4","menu.linux.label_terminal":"P\xE4\xE4te","menu.reload":"Reload","menu.restart.title":"K\xE4ynnistys valinnat","menu.settings.title":"Asetukset","menu.tooltip_logout":"Kirjaudu ulos","menu.tooltip_restart":"Uudelleenk\xE4ynnist\xE4","menu.tooltip_user_accounts":"K\xE4ytt\xE4j\xE4tunnukset","menu.tooltip_view_logs":"N\xE4yt\xE4 lokitiedot","platform.docker.container_restarted":"Docker Container uudelleenk\xE4ynnistetty","platform.docker.must_use_hashbang":"Komentojonossa pt\xE4\xE4 olla #!/bin/sh hashbang.","platform.docker.restart_required":"Docker container t\xE4ytyy uudelleenk\xE4ynnist\xE4\xE4 muutosten k\xE4ytt\xF6\xF6nottamiseksi.","platform.docker.run_with_restart":"Varmista ett\xE4 Docker containerin k\xE4ynnistys komennossa on parametri: {{ command }}","platform.docker.script_help":"T\xE4m\xE4 komentojono suoritetaan aina kun docker container k\xE4ynnistyy. Voita k\xE4ytt\xE4\xE4 t\xE4t\xE4 asentaaksesi lis\xE4-asennuksia joita laajennukset saattavat tarvita, kuten ffmpeg tai libpcap-dev.","platform.docker.script_saved":"K\xE4ynnistys komentojono talletettu","platform.docker.server_long_time":"Uudelleenk\xE4ynnistys tuntuu kest\xE4v\xE4n. Sinun t\xE4ytyy ehk\xE4 k\xE4ynnist\xE4\xE4 Docker container k\xE4sin.","platform.docker.title_restarting":"Uudelleenk\xE4ynnistet\xE4\xE4n Docker Container","platform.linux.long_time":"Palvelimen uudelleenk\xE4ynnistys tuntuu kest\xE4v\xE4n. Sinun t\xE4ytyy ehk\xE4 k\xE4ynnist\xE4\xE4 palvelin k\xE4sin.","platform.linux.restart":"Odota ole hyv\xE4, t\xE4m\xE4 sivu p\xE4ivittyy automaattisesti kun Homebridge on taas k\xE4ynniss\xE4.","platform.linux.restarting_server":"Uudellenk\xE4ynnistet\xE4\xE4n palvelin","platform.linux.server_restart_error":"Tapahtui virhe uudelleenk\xE4ynnistys komennon l\xE4hett\xE4misess\xE4 palvelimelle","platform.linux.server_restarted":"Palvelin uudelleenk\xE4ynnistetty","platform.linux.server_taking_long_time":"Palvelimen k\xE4ynnistyminen tuntuu kest\xE4v\xE4n","platform.linux.server_will_power_down":"Palvelin sammutetaan piakkoin.","platform.linux.shutting_down_server":"Palvelinta sammutetaan","platform.terminal.terminate_message_1":"Navigating away from this page will terminate your current session, all foreground processes will be terminated.","platform.terminal.terminate_message_2":"To avoid this warning, enable <strong>Terminal Session Persistence</strong> from the settings page.","platform.terminal.terminate_title":"Session Termination","platform.terminal.terminate_unload":"Your terminal session will be terminated. Enable Terminal Session Persistence in Settings to prevent this.","platform.version.restart_required":"Homebridge UI v{{ uiVersion }} on asennettu, mutta k\xE4ynniss\xE4 olevan palvelimen versio on viel\xE4 v{{ serverVersion }}.","platform.version.service_restart_required":"Tarvitaan uudellenk\xE4ynnistys","plugins.bridge.action_error":"Virhe toiminnossa: {{ action }} lapsisillassa.","plugins.bridge.name_error":"Bridge name must start and end with a letter or number, and can only contain letters, numbers, spaces, and apostrophes.","plugins.bridge.port_error":"{{ type }} port must be an integer between 1025 and 65533, excluding 5353, 8080, 8443 and any other already-configured port.","plugins.button_homepage":"Laajennuksen kotisivu","plugins.button_set_up":"M\xE4\xE4rit\xE4 asetukset","plugins.button_settings":"Laajennuksen asetukset","plugins.button_uninstall":"Poista asennus","plugins.button_update":"P\xE4ivit\xE4","plugins.compat.hb_node_too_low":"{{ packageName }} v{{ latestVersion }} tarvitsee Node.js v{{ minVersion }} tai uudemman. K\xE4yt\xF6ss\xE4 on Node.js {{ installedVersion }}.","plugins.compat.hb_too_low":"{{ pluginName }} laajennus suosittelee Homebridge v{{ minVersion }} tai uudemman k\xE4ytt\xF6\xE4. K\xE4yt\xF6ss\xE4 on Homebridge v{{ installedVersion }}.","plugins.compat.node_first":"Ole hyv\xE4 ja p\xE4ivit\xE4 Node.js ennen {{ packageName }} p\xE4ivitt\xE4mist\xE4.","plugins.compat.node_link":"Kuinka p\xE4ivitt\xE4\xE4 Node.js","plugins.compat.node_too_low":"{{ pluginName }} laajennus suosittelee Node.js v{{ minVersion }} tai uudemman k\xE4ytt\xF6\xE4. K\xE4yt\xF6ss\xE4 on Node.js {{ installedVersion }}.","plugins.compat.title":"Yhteensopivuuden tarkastus","plugins.config.load_error":"Laajennuksen asetusten lataus ep\xE4onnistui.","plugins.config.must_be_array":"Laajennuksen asetusten on oltava joukko.","plugins.config.must_be_array_objects":"Laajennuksen asetusten on oltava oliojoukko.","plugins.config.must_be_object":"Asetusten osion pit\xE4\xE4 olla olio.","plugins.config.name_property":'Laitteella on oltava "name" ominaisuus',"plugins.config.please_fix":"Ole hyv\xE4 ja korjaa l\xF6ydetyt virheet ennen uuden osion lis\xE4\xE4mist\xE4.","plugins.disable.error":"Laajennuksen k\xE4yt\xF6st\xE4 poisto ep\xE4onnistui.","plugins.donate.message_1":"Useammiten k\xE4ytt\xE4j\xE4t asentavat laajennuksiaan suoraan Homebridge-k\xE4ytt\xF6liittym\xE4n kautta joten he eiv\xE4t todenn\xE4k\xF6isesti vieraile projektien GitHub-sivulla jossa kerrotaan tavoista tukea kehitt\xE4j\xE4\xE4.","plugins.donate.message_2":"Lahjoituslinkkien lis\xE4\xE4minen suoraan Homebridge-k\xE4ytt\xF6liittym\xE4\xE4n varmistaa, ett\xE4 k\xE4ytt\xE4j\xE4t osaavat halutessaan tukea Homebridge-kehitt\xE4ji\xE4.","plugins.donate.tile_donate_to":"Lahjoita {{ author }}","plugins.enable.error":"Laajennuksen k\xE4ytt\xF6\xF6notto ep\xE4onnistui.","plugins.manage.all_versions":"Kaikki versiot","plugins.manage.backup":"Download a backup before updating?","plugins.manage.changelog":"Full Changelog","plugins.manage.changelog_none":"Could not retrieve changelog, perhaps this plugin does not provide a <code>CHANGELOG.md</code> file.","plugins.manage.child_bridge_restart":"Lapsisilta uudellenk\xE4ynnistetty onnistuneesti.","plugins.manage.child_bridge_restart_failed":"Laajennuksen uudelleenk\xE4ynnistys ep\xE4onnistui, ole hyv\xE4 ja uudelleenk\xE4ynnist\xE4 Homebridge k\xE4sin.","plugins.manage.confirm_disable":"Haluatko varmasti poistaa k\xE4yt\xF6st\xE4 {{ pluginName }}?","plugins.manage.confirm_disable_accessory_1":"Kaikki t\xE4m\xE4n laajennuksen k\xE4ytt\xE4m\xE4t lis\xE4varusteet poistetaan Homebridge UI -lis\xE4varusten\xE4yt\xF6st\xE4 ja HomeKitist\xE4.","plugins.manage.confirm_disable_accessory_2":"Kun otat laajennuksen uudelleen k\xE4ytt\xF6\xF6n, lis\xE4varusteet tulevat takaisin Homebridge-k\xE4ytt\xF6liittym\xE4\xE4n ja HomeKitiin. Lis\xE4varusteet menett\xE4v\xE4t HomeKit-tietonsa (kuten liittyv\xE4t kohtaukset ja automaatio).","plugins.manage.confirm_disable_platform_1":"Kaikki t\xE4m\xE4n laajennuksen k\xE4ytt\xE4m\xE4t lis\xE4varusteet poistetaan Homebridge-k\xE4ytt\xF6liittym\xE4n lis\xE4laiten\xE4yt\xF6st\xE4, mutta ne j\xE4\xE4v\xE4t HomeKitiin Ei vastausta -merkinn\xE4ll\xE4.","plugins.manage.confirm_disable_platform_2":"Kun otat laajennuksen uudelleen k\xE4ytt\xF6\xF6n, lis\xE4varusteet tulevat takaisin Homebridge-k\xE4ytt\xF6liittym\xE4\xE4n ja niit\xE4 voidaan taas ohjata HomeKitissa. Lis\xE4varusteet eiv\xE4t menet\xE4 HomeKit-tietojaan (kuten niihin liittyvi\xE4 kohtauksia ja automaatioita).","plugins.manage.confirm_disable_setting":"Your setting for {{ setting }} is currently {{ value }}, therefore:","plugins.manage.confirm_enable":"Haluatko varmasti ottaa k\xE4ytt\xF6\xF6n {{ pluginName }}?","plugins.manage.disable":"Poista k\xE4yt\xF6st\xE4","plugins.manage.enable":"Ota k\xE4ytt\xF6\xF6n","plugins.manage.github_support":"You can show your support by giving this plugin a {{ iconStar }} (or the release a {{ iconThumbsUp }}) on GitHub!","plugins.manage.hb_restart":"Homebridge and the UI will automatically restart after any version change.","plugins.manage.hide_updates":"Disable Update Notifications","plugins.manage.hide_updates_desc":"If you don't want to see update notifications for this plugin, you can turn them off here.","plugins.manage.information":"Tietoja laajennuksesta","plugins.manage.install":"Asenna","plugins.manage.installed":"Asennettu","plugins.manage.json_config":"JSON asetukset","plugins.manage.manage_version":"Hallitse versioita","plugins.manage.manual_update_command":"P\xE4ivit\xE4 paketti suorittamalla Node.js-komentokehote P\xE4\xE4k\xE4ytt\xE4j\xE4n oikeuksilla ja suorita seuraavat komennot:","plugins.manage.more_info":"More information about scoped {{ scopedLink }} and verified {{ verifiedLink }} plugins.","plugins.manage.notes":"Release Notes","plugins.manage.notes_beta_1":"Thank you for helping improve {{ pluginName }} by testing a pre-release version.","plugins.manage.notes_beta_2":"You can use the Homebridge UI to revert back to the stable version at any time.","plugins.manage.notes_beta_3":"Please remember this is a pre-release version, and report any issues to the plugin's GitHub repository page.","plugins.manage.notes_latest":"Release notes are only shown when updating to the latest version.","plugins.manage.notes_none":"Could not retrieve release notes, perhaps this version does not have a GitHub release.","plugins.manage.online_updates":"Online p\xE4ivitykset eiv\xE4t toimi Windowsissa. Sinun on teht\xE4v\xE4 p\xE4ivitys k\xE4sin Homebridge palvelun pys\xE4ytt\xE4misen j\xE4lkeen.","plugins.manage.plugin_logs":"Laajennusten lokitiedot","plugins.manage.scoped.error":"Virhe havaittu. Alapuolelta voit ladata lokitiedot.","plugins.manage.scoped.info_1":"Homebridge scoped plugins have names beginning with {{ prefix }}.","plugins.manage.scoped.info_2":"For more information about scoped plugins and why to switch, see the wiki page {{ link }}.","plugins.manage.scoped.process":"T\xE4m\xE4 prosessi ei vaikuta Homebridge/HomeKit lis\xE4laitteisiin. Prosessia ei voi peruuttaa en\xE4\xE4 k\xE4ynnistyksen j\xE4lkeen. Se:","plugins.manage.scoped.switch":"Switch To Scoped Plugin","plugins.manage.scoped.windows":"Online-p\xE4ivityksi\xE4 ei tueta Windowsissa. Sinun on asennettava uusi laajennus ja poistettava vanha laajennus k\xE4sin.","plugins.manage.scoped_message":"Scoped plugins improve long-term reliability and ensure consistent maintenance by combining centralized oversight from the Homebridge team with continued involvement from the original maintainer.","plugins.manage.scoped_subtitle":"This plugin is scoped and verified.","plugins.manage.select_version":"Valitse asennettava versio","plugins.manage.uninstall":"Poista asennus","plugins.manage.uninstalled":"Poistettu","plugins.manage.unverified_message":"Vahvistamaton laajennus tarkoittaa ett\xE4 sille ei ole suoritettu Homebridge project teamin hyv\xE4ksymisprosessia. Hyv\xE4ksymisen puuttuminen ei v\xE4ltt\xE4m\xE4tt\xE4 ole haitallista. Laajennuksen yll\xE4pit\xE4jill\xE4 on erilaisia syit\xE4 j\xE4tt\xE4\xE4 hyv\xE4ksyminen hakematta.","plugins.manage.unverified_subtitle":"This plugin on vahvistamaton.","plugins.manage.update":"P\xE4ivit\xE4","plugins.manage.updated":"P\xE4ivitetty","plugins.manage.verified_message":"Laajennukset jotka on merkitty vahvistetuksi ovat l\xE4p\xE4isseet Homebridge project teamin hyv\xE4ksymisprosessin jossa varmistetaan ett\xE4 ne t\xE4ytt\xE4v\xE4t erilaisia vaatimuksia jotka kannustavat parhaisiin k\xE4yt\xE4nt\xF6ihin ja ongelmattomaan k\xE4ytt\xF6kokemukseen.","plugins.manage.verified_subtitle":"This plugin on vahvistettu.","plugins.placeholder_search_first":"K\xE4yt\xE4 yl\xE4puolista hakukentt\xE4\xE4 l\xF6yt\xE4\xE4ksesi ensimm\xE4isen laajennuksesi","plugins.placeholder_search_none":"No results were found","plugins.placeholder_search_plugin":"Etsi aennettavia laajennuksia","plugins.settings.custom.homebridge-gsh.label_account_linked":"Tili Linkitetty","plugins.settings.custom.homebridge-gsh.label_link_account":"Linkit\xE4 Tili","plugins.settings.custom.homebridge-gsh.message_about":"<strong>Homebridge Google Smart Home</strong> laajennus mahdollistaa Homebridge laitteidesi hallinnan Google Home \xE4lykaiuttimella tai sovelluksella.","plugins.settings.custom.homebridge-gsh.message_account_link_required":"Toiminnon k\xE4ytt\xF6\xF6nottamiseksi sinun on kirjauduttava Google tai GitHub tilillesi; varmista ett\xE4 k\xE4yt\xE4t samaa tili\xE4 kun lis\xE4\xE4t Homebridge toiminnon Google Home sovellukseesi.","plugins.settings.custom.homebridge-gsh.message_homebridge_restart_required":"Homebridge t\xE4ytyy uudelleenk\xE4ynnist\xE4\xE4 toimintojen k\xE4ytt\xF6\xF6nottamiseksi.","plugins.settings.deconz.dump_no_exist":"Homebridge deCONZ dump tiedostoa ei viel\xE4 ole.","plugins.settings.hue.dump_no_exist":"Homebridge Hue dump tiedostoa ei viel\xE4 ole.","plugins.settings.label_open_config_editor":"Avaa Asetusten muokkain","plugins.settings.message_consult_documentation":"Ole hyv\xE4 ja tutustu laajennuksen ohjeisiin asetusten m\xE4\xE4rittelelmiseksi.","plugins.settings.message_manual_config_required":"T\xE4m\xE4 laajennus t\xE4ytyy m\xE4\xE4ritell\xE4 k\xE4sin Homebridge UI Asetusten muokkaimella.","plugins.settings.plugin_config_saved":"Laajennuksen asetukset talletettu","plugins.settings.restart_required":"Uudelleenk\xE4ynnist\xE4 Homebridge toimintojen k\xE4ytt\xF6\xF6nottamiseksi.","plugins.stats":"Plugin Statistics","plugins.stats_note":"Plugins cannot be installed from this page, this is provided just for interest.","plugins.status_disabled":"Poistettu k\xE4yt\xF6st\xE4","plugins.status_installed":"Asennettu","plugins.support.list_1":"Homebridge plugins are the building blocks of Homebridge, allowing you to add support for new accessories and platforms. Plugins add support for smart lights, cameras, TVs, etc, for brands that don't natively support HomeKit. For example, to bring your Ring doorbells and cameras into HomeKit, you can install the <code>homebridge-ring</code> plugin.","plugins.support.list_2":"Homebridge plugins are created by public contributors in the Homebridge community, and are not typically associated with the Homebridge maintainers, nor with the manufacturers of the accessories themselves. If you have a question about a specific plugin, you should let the plugin developer know via the plugin's GitHub page.","plugins.support.list_3":"There are currently over 4,700 plugins available for Homebridge, so you should be able to find plugins to suit your needs. If you are a Javascript/TypeScript developer (or want to take the opportunity to learn), you can also create your own plugin and share it with the Homebridge community. Check out the Support section for some handy links to get you started.","plugins.support.list_4":"Some plugins allow you to create 'virtual/dummy' accessories, which are accessories that do not have a physical counterpart. These can be used to create virtual accessories in HomeKit, such as virtual switches, lights, or sensors. Try searching for <code>dummy</code> or <code>virtual</code> in the search bar to find some examples.","plugins.toast_failed_to_load_plugin_schema":"Laajennuksen asetusten m\xE4\xE4rittelyn lataaminen ep\xE4onnistui.","plugins.toast_failed_to_load_plugins":"Laajennusten lataaminen eop\xE4onnistui","plugins.toast_failed_to_search_plugins":"Failed to search plugins","plugins.uninstall_remove_child_bridge":"Remove plugin child bridge?","plugins.uninstall_remove_child_bridges":"Remove {{ count }} plugin child bridges?","plugins.uninstall_remove_config_required":"Jos poistat laajennuksen pysyv\xE4sti, poista my\xF6s kaikki siihen liittyv\xE4t asetukset config.json tiedostosta ennen uudelleenk\xE4ynnistyst\xE4.","plugins.uninstall_remove_confirmation":"Haluatko varmasti poistaa {{ pluginName }}?","plugins.uninstall_remove_plugin_config":"Poistetaanko laajennuksen asetukset?","plugins.uninstall_warn_1":"When removing a child bridge, any accessories published by this bridge will be removed from the Homebridge cache.","plugins.uninstall_warn_2":"Lis\xE4varusteet vanhenevat HomeKitissa (ei vastausta). Poistaaksesi ne, sinun on poistettava t\xE4m\xE4 silta manuaalisesti HomeKitista. Voit tehd\xE4 t\xE4m\xE4n Home-sovelluksessa Kotiasetukset-osiosta.","reset.accessory_all.desc":"Poista kaikki lis\xE4varusteet v\xE4limuistista.","reset.accessory_all.list_1":"Kun napautat alla olevaa poistopainiketta, Homebridge k\xE4ynnistyy uudelleen ja kaikki nykyiset lis\xE4varusteet poistetaan Homebridgest\xE4 ja HomeKitist\xE4.","reset.accessory_all.list_2":"My\xF6s kaikki siihen liittyv\xE4t HomeKit-tiedot poistetaan, mukaan lukien t\xE4m\xE4n lis\xE4varusteen k\xE4ytt\xE4m\xE4t huoneyhteydet, kohtaukset ja automatiikat.","reset.accessory_all.list_3":"Kun Homebridge on k\xE4ynnistetty uudelleen, laajennukset lis\xE4\xE4v\xE4t kaikki lis\xE4laitteet uudelleen ik\xE4\xE4n kuin laajennus asennettaisiin ensimm\xE4ist\xE4 kertaa.","reset.accessory_all.title":"Poista kaikki lis\xE4varusteet","reset.accessory_ind.bridge":"Bridge","reset.accessory_ind.desc":"Remove individual accessories from the cache.","reset.accessory_ind.done":"Finished removing accessories from the cache, check the log for confirmation and/or errors.","reset.accessory_ind.fail":"Failed to remove accessories from cache, check the log for errors.","reset.accessory_ind.list_1":"Some plugins don't clean up after themselves properly. If you have stale accessories, you can remove them from the cache. This function can also be used to reset an existing accessory in HomeKit.","reset.accessory_ind.list_2":"The accessories will be removed from Homebridge and HomeKit, along with their related room associations, scenes and automations.","reset.accessory_ind.list_3":"After Homebridge restarts, your plugins will re-add any removed accessories as if the plugin was being installed for the first time.","reset.accessory_ind.title":"Remove Individual Accessories","reset.accessory_ind.unknown":"Unknown Name","reset.accessory_reset":"Homebridge sillan nollaus","reset.action_is_irreversible":"T\xE4m\xE4 toiminto on peruuttamaton. Ole hyv\xE4 ja lue huolellisesti ennen hyv\xE4ksymist\xE4.","reset.bridge_accessories.desc":"Remove all accessories published by a child bridge from the cache.","reset.bridge_accessories.empty":"Sinulla ei ole siltoja, joista voit poistaa lis\xE4varusteita.","reset.bridge_accessories.list_1":"This function can be used to reset a plugin's existing accessories in HomeKit. They will be removed from Homebridge and HomeKit, and then re-added by the plugin as new accessories.","reset.bridge_accessories.list_2":"Lapsisillan paritustiedot ja tila pysyv\xE4t ennallaan.","reset.bridge_accessories.title":"Poista siltojen lis\xE4varusteita","reset.bridge_all.desc":"Reset all bridges by removing them from the cache. T\xE4m\xE4 sis\xE4lt\xE4\xE4 Homebridgen p\xE4\xE4sillan, lapsisillat ja sillat ulkoisille lis\xE4varusteille.","reset.bridge_all.list_1":"This will reset the Homebridge bridge, all child bridges and bridges for external accessories from HomeKit.","reset.bridge_all.list_2":"Huomaa, ett\xE4 lis\xE4varusteet n\xE4kyv\xE4t HomeKitissa ilman vastausta, kunnes sillat on poistettu manuaalisesti HomeKitista. Voit tehd\xE4 t\xE4m\xE4n Home-sovelluksessa avaamalla Kodin asetukset > Koti keskittimet & sillat > {Bridge} > Poista Silta.","reset.bridge_all.list_3":"Kaikki Homebridgeen liittyyv\xE4t HomeKitin lis\xE4varusteet, kohtaukset ja automaatiot on m\xE4\xE4ritett\xE4v\xE4 uudelleen pariliitoksen purkamisen j\xE4lkeen.","reset.bridge_all.list_4":"Homebridge-sillan ja HomeKitin pariliitoksen PIN-koodi vaihdetaan. N\xE4et uudet arvot Homebridge-kokoonpanossa pariliitoksen purkamisen j\xE4lkeen.","reset.bridge_all.title":"Reset All Bridges","reset.bridge_ind.desc":"Reset an individual bridge by removing it from the cache. T\xE4m\xE4 voi olla lapsisilta tai silta ulkoiselle lis\xE4varusteelle, kuten kameralle tai televisiolle.","reset.bridge_ind.desc_child_active":"Homebridge has detected that these child bridges are in-use. Once removed, their accessories will be removed from the Homebridge cache. If paired with HomeKit, the bridge's accessories will show as 'No Response', and the bridge will need to be removed via the Home app. The child bridge's pairing information will be changed. Once Homebridge has restarted, the plugin will create the new child bridge and accessories. The new bridge will need to be re-paired with HomeKit. You can view the new pairing information from the corresponding plugin's bridge settings page.","reset.bridge_ind.desc_child_stale":"Homebridge has detected that these bridges are not in-use, but double-check before deleting. They could be left-over from previously uninstalled plugins. If paired with HomeKit, the accessories will show as 'No Response', and the bridge will need to be removed via the Home app.","reset.bridge_ind.desc_non_child":"Homebridge has detected that these bridges are in-use. You can remove them from the cache, but they will likely be re-added by the plugin when Homebridge restarts. The pairing information will remain unchanged.","reset.bridge_ind.done":"Finished resetting bridges, check the log for confirmation and/or errors.","reset.bridge_ind.fail":"Failed to reset bridges, check the log for errors.","reset.bridge_ind.head_child_active":"Active Child Bridges","reset.bridge_ind.head_child_stale":"Stale Child Bridges","reset.bridge_ind.head_non_child":"Non Child Bridges","reset.bridge_ind.title":"Reset Individual Bridges","reset.bridges.desc":"Jos sinulla on ongelmia Homebridgen, ulkoisen lis\xE4laitteen tai lapsisillan yhdist\xE4misess\xE4 HomeKitiin, saatat joutua poistamaan sen pariliitoksen HomeKitista aloittaaksesi uudelleen.","reset.bridges.empty":"Sinulla ei ole siltoja HomeKit-parin muodostamiseksi.","reset.bridges.title":"Sillat","reset.clear_cache_single.list_3":"Kun lis\xE4varuste poistetaan v\xE4limuistista, kaikki siihen liittyv\xE4t HomeKit-tiedot poistetaan. T\xE4m\xE4 sis\xE4lt\xE4\xE4 kaikki kohtaukset ja automaatiot, jotka k\xE4ytt\xE4v\xE4t t\xE4t\xE4 lis\xE4varustetta.","reset.delete_success":"Homebridgen uudelleenk\xE4ynnistys ja laitteiden v\xE4limuistin tyhjent\xE4minen.","reset.error_message":"Laitteiden v\xE4limuistia ei voitu ladata. Sinulla ei ehk\xE4 ole v\xE4limuistissa olevia laitteita.","reset.failed_to_reset":"Homebridgen nollaus ep\xE4onnistui. Katso lokitiedot.","reset.force_restart_hb_help_text":"K\xE4yt\xE4 t\xE4t\xE4 toimintoa pakottaaksesi hb-service-palvelu suorittamaan t\xE4yden uudelleenk\xE4ynnistyksen.","reset.no_accessories":"Sinulla ei ole v\xE4limuistissa olevia laitteita poistettaviksi.","restart.child_bridge_list":"Ole hyv\xE4 ja k\xE4ynnist\xE4 uudelleen n\xE4m\xE4 lapsisillat, jotta muutokset tulevat voimaan:","restart.child_bridges":"Ole hyv\xE4 ja k\xE4ynnist\xE4 laajennuksen lapsisillat uudelleen, jotta muutokset tulevat voimaan.","restart.label_restart_command_executed":"Uudelleenk\xE4ynnistys komento suoritettu","restart.please_wait_while_server_restarts":"Ole hyv\xE4 ja odota, t\xE4m\xE4 sivu p\xE4ivittyy automaattisesti kun Homebridge on taas toiminnassa.","restart.server_is_taking_long_time_to_restart":"Homebridgen k\xE4ynnistyminen tuntuu kest\xE4v\xE4n. Voi olla ett\xE4 joudut k\xE4ynnist\xE4m\xE4\xE4n Homebridge palvelun k\xE4sin.","restart.service_ready":"Homebridge valmiina","restart.title_restart":"Homebridge k\xE4ynnistyy uudelleen","restart.toast_server_restart_error":"Tapahtui virhe uudellenk\xE4ynnistys komennon l\xE4hett\xE4misess\xE4 palvelimelle","restart.toast_server_restart_timeout":"Homebridgen k\xE4ynnistyminen tuntuu kest\xE4v\xE4n","restart.toast_server_restarted":"Homebridge Uudellenk\xE4ynnistetty","restart.ui_online":"HB Palvelin & UI Valmiina","rpi.throttled.currently_message":"Raspberry Pi ilmoittaa juuri havainneensa alij\xE4nnitteen; tarkista, ett\xE4 se on kytketty sopivaan virtal\xE4hteeseen. Alij\xE4nnite voi johtaa j\xE4rjestelm\xE4n ep\xE4vakauteen ja SD-kortin vioittumiseen.","rpi.throttled.previously_message":"Raspberry Pi ilmoittaa havainneensa alij\xE4nnitteen uudelleenk\xE4ynnistyksen j\xE4lkeenkin; tarkista, ett\xE4 se on kytketty sopivaan virtal\xE4hteeseen.","rpi.throttled.undervoltage_title":"Alij\xE4nnite","settings.accessory.debug":"Accessory Debug Mode","settings.accessory.debug_desc":"If enabled, the Homebridge UI will log debug level messages to the console.","settings.cache.desc":"Homebridge s\xE4ilytt\xE4\xE4 tietoja laitteista v\xE4limuistissa joten niit\xE4 ei poisteta ja lis\xE4t\xE4 uudelleen HomeKit:in joka kerta kun Homebridge k\xE4ynnistyy uudelleen. Joskus n\xE4m\xE4 tiedot poikkeavat Homebridgen todellisesta laitteistosta.","settings.changes.saved":"Muutokset on tallennettu ja niiden k\xE4ytt\xF6\xF6notto vaatii uudellenk\xE4ynnistyksen.","settings.datetime.incorrect":"J\xE4rjestelm\xE4n aika n\xE4ytt\xE4isi olevan virheellinen. Sill\xE4 voi olla yll\xE4tt\xE4vi\xE4 vaikutuksia toimintaan. Lis\xE4tietoja t\xE4st\xE4.","settings.display.blue":"Sininen","settings.display.bluegrey":"Siniharmaa","settings.display.brown":"Ruskea","settings.display.cyan":"Syaani","settings.display.dark":"Tumma","settings.display.deep_purple":"Syv\xE4 purppura","settings.display.green":"Vihre\xE4","settings.display.grey":"Harmaa","settings.display.indigo":"Indigo","settings.display.lang":"Kieli","settings.display.light":"Valoisa","settings.display.lighting_mode":"N\xE4kym\xE4n valoisuus","settings.display.menu_default":"Default","settings.display.menu_freeze":"Keep Closed (On Desktop)","settings.display.menu_mode":"Menu Mode","settings.display.orange":"Oranssi","settings.display.pink":"Pinkki","settings.display.purple":"Puppura","settings.display.red":"Punainen","settings.display.show_betas":"Prefer Beta Versions","settings.display.teal":"Sinivihre\xE4","settings.display.temp_units":"L\xE4mp\xF6tilan yksikk\xF6","settings.display.temp_units.c":"Celsius (\xB0C)","settings.display.temp_units.f":"Fahrenheit (\xB0F)","settings.display.theme":"Teema","settings.display.wallpaper":"Wallpaper","settings.display.wallpaper_intro":"Upload a wallpaper for your Homebridge UI. This is currently shown on the login screen.","settings.display.wallpaper_rule":"You can choose an image file which is up to {{ maxFileSizeText }}.","settings.display.wallpaper_rule2":"You will need to click Save to upload the wallpaper to your Homebridge storage directory.","settings.display.wallpaper_success":"Wallpaper was successfully updated.","settings.general.title_display":"N\xE4ytt\xF6","settings.general.title_general":"Yleiset","settings.linux.restart":"Restart Command","settings.linux.restart_desc":"If no restart command is set the process will terminate with a non-zero exit code.","settings.linux.shutdown":"Shutdown Command","settings.linux.shutdown_desc":"If no shutdown command is set the process will terminate with a non-zero exit code.","settings.linux.temp":"Temperature File Path","settings.linux.temp_desc":"If you are running Homebridge on a Raspberry Pi, you can enter the path to the OS temperature file here. This will display the current temperature on the UI status page.","settings.matter.desc":"Enables Matter accessories on the main bridge. If only using Matter with child bridges, this setting does not need to be enabled - child bridges have independent Matter settings in their plugin bridge settings.","settings.matter.enabled":"Enabled","settings.matter.enabled_desc":"Whether to start a Matter instance and allow plugins to expose Matter accessories.","settings.matter.port":"Port","settings.matter.port_desc":"This must be between 1025 and 65533, and unique to any other configured port.","settings.matter.title":"Matter Settings","settings.mdns_advertiser":"mDNS mainostaja","settings.mdns_advertiser_exp":"kokeellinen","settings.mdns_advertiser_help":"Jos sinulla on ongelmia Homebridgen yhdist\xE4misess\xE4 HomeKitiin (kaikki lis\xE4varusteet n\xE4ytt\xE4v\xE4t Home-sovelluksessa No Response), yrit\xE4 k\xE4ytt\xE4\xE4 jotakin vaihtoehtoista mDNS-mainostajaa.","settings.mdns_advertiser_not_connected":"Ei yhdistetty","settings.mdns_advertiser_rec":"suositeltava","settings.name":"Homebridge Name","settings.network.hb_package":"Homebridge Module Path","settings.network.hb_package_desc":"If you have multiple versions of Homebridge installed, you can specify the path to the version you want to use here.","settings.network.host":"Host IP Address","settings.network.host_desc":"The host IP address to listen on. In most cases this will be <code>::</code> or <code>0.0.0.0</code>.","settings.network.mdns_advertise":"Advertise Via mDNS","settings.network.mdns_advertise_help":"Enable mDNS advertising (using Bonjour) for your Homebridge UI, making it discoverable as an HTTP service on your local network.","settings.network.message_network_interface":"Jos verkkosovitinta ei valita, Homebridge yritt\xE4\xE4 automaattisesti valita sovittimen jota k\xE4ytt\xE4\xE4.","settings.network.port_end":"End Port","settings.network.port_end_desc":"Control the end of the range of ports that separate accessories (like camera or television) should run on. This must be between 1025 and 65533, and higher than the start port above.","settings.network.port_hb":"Homebridgen Portti","settings.network.port_hb_desc":"Homebridgen k\xE4ytt\xE4m\xE4n portin numero. On oltava v\xE4lilt\xE4 1025-65533, ei saa olla sama kuin Homebridge UI:n portti.","settings.network.port_start":"Start Port","settings.network.port_start_desc":"Control the start of the range of ports that separate accessories (like camera or television) should run on. This must be between 1025 and 65533, and lower than the end port below.","settings.network.port_ui":"Homebridge UI:n Portti","settings.network.port_ui_desc":"Homebridge UI:n k\xE4ytt\xE4m\xE4n portin numero. On oltava v\xE4lilt\xE4 1025-65533, ei saa olla sama kuin Homebridgen portti.","settings.network.proxy":"Reverse Proxy Hostname","settings.network.proxy_desc":"When running behind a reverse proxy you may need to enter the hostname you use to access the UI.","settings.network.title_network":"Verkkosovitin","settings.network.title_network_interfaces":"Verkkosovittimet","settings.network.title_security":"Security","settings.network.title_terminal":"Logging & Terminal","settings.network.webroot":"Webroot Path","settings.network.webroot_desc":"This can be configured if you want to access the Homebridge UI under a specific URL path.","settings.reset_bridge.error":"Failed to reset bridge.","settings.security.auth":"Authentication","settings.security.auth_desc":"Whether to enable authentication for the Homebridge UI with a username and password.","settings.security.cert":"Certificate Path","settings.security.https":"Enable HTTPS","settings.security.https_desc":"Enable HTTPS using an auto-generated self-signed certificate or by providing your own certificate files.","settings.security.https_keycert":"Private Key + Certificate","settings.security.https_pfx":"PKCS#12 Certificate + Passphrase","settings.security.https_raspbian":"HTTPS is already enabled by default when running the Homebridge Raspbian image {{ link }}.","settings.security.https_selfsigned":"Self-Signed Certificate","settings.security.key":"Private Key Path","settings.security.pass":"PKCS#12 Certificate Passphrase","settings.security.pfx":"PKCS#12 Certificate Path","settings.security.selfsigned_generate_keycert":"Generate Self\u2011Signed & Use as Key + Cert","settings.security.selfsigned_generate_selfsigned":"Generate & Enable Self\u2011Signed Mode","settings.security.selfsigned_generate_success_keycert":"Generated self\u2011signed certificate and set as Key + Cert","settings.security.selfsigned_generate_success_selfsigned":"Generated self\u2011signed certificate and enabled Self\u2011signed mode","settings.security.selfsigned_hostnames":"Certificate Hostnames","settings.security.selfsigned_hostnames_desc":"Comma-separated list of hostnames or IP addresses to include in the certificate (e.g., localhost, 127.0.0.1, homebridge.local, 192.168.1.100)","settings.security.ssl_upload_keycert_aria":"Upload private key and certificate","settings.security.ssl_upload_pfx_aria":"Upload PKCS#12 certificate","settings.security.ssl_upload_success_keycert":"Certificate and private key uploaded","settings.security.ssl_upload_success_pfx":"PKCS#12 certificate uploaded","settings.security.ssl_validate":"Validate SSL","settings.security.ssl_validate_error":"SSL configuration is invalid.","settings.security.ssl_validate_success":"SSL configuration is valid.","settings.security.ui_control":"Accessory Control Lists","settings.security.ui_control_desc":"Define which bridges and bridged accessories can be controlled or blocked by the Homebridge UI.","settings.security.ui_control_desc_2":"Allow the UI to control the accessories on a bridge by toggling on the switch below.","settings.service.debug_tooltip":"Jotkut laajennukset tarvitsevat DEBUG {{ link }} ymp\xE4rist\xF6muuttujan jotta voivat kirjata debug tason lokitietoja.","settings.service.node_tooltip":"Node.js ajonaikaiset asetukset t\xE4lle prosessille. J\xE4t\xE4 tyhj\xE4ksi, ellet tied\xE4 mit\xE4 olet tekem\xE4ss\xE4.","settings.startup.debug":"Homebridge vianhaku tila","settings.startup.debug_desc_v1":"Ota t\xE4m\xE4 k\xE4ytt\xF6\xF6n, jos tarvitset yksityiskohtaisempia lokeja. T\xE4m\xE4 asetus koskee Homebridgen p\xE4\xE4siltaa sek\xE4 kaikkia lapsisiltoja. Jotkut laajennukset voivat my\xF6s noudattaa t\xE4t\xE4 asetusta ja tuottaa yksityiskohtaisempia lokeja.","settings.startup.debug_desc_v2":"Ota t\xE4m\xE4 k\xE4ytt\xF6\xF6n, jos tarvitset yksityiskohtaisempia lokeja. T\xE4m\xE4 asetus koskee Homebridgen p\xE4\xE4siltaa. Lapsisiltojen asetukset l\xF6ytyv\xE4t liit\xE4nn\xE4issivun lapsisiltam\xE4\xE4rityksist\xE4. Jotkut laajennukset voivat my\xF6s noudattaa t\xE4t\xE4 asetusta ja tuottaa yksityiskohtaisempia lokeja.","settings.startup.insecure":"Enable UI Accessory Control","settings.startup.insecure_desc":"Hallitaksesi laitteitasi Homebridge UI:n kautta Homebridgen on toimittava turvattomassa tilassa.","settings.startup.keep_accessories":"Pid\xE4 poistettujen lis\xE4osien laitteet","settings.startup.keep_accessories_desc":"Jos valittu, niin laitteiden tiedot s\xE4ilytet\xE4\xE4n v\xE4limuistissa vaikka siihen liittyv\xE4 lis\xE4osa poistetaan. T\xE4st\xE4 voi olla hy\xF6ty\xE4 jos my\xF6hemmin asennat lis\xE4osan uudelleen.","settings.startup.metrics":"Enable Server Metric Monitoring","settings.startup.metrics_desc":"When enabled, the Homebridge UI will collect and show CPU and memory stats on the status page.","settings.startup.scheduled_restart":"Scheduled Restart Cron","settings.startup.scheduled_restart_desc":"Schedule automatic restarts relative to your timezone using a cron expression. Leave empty to disable. Create a cron expression {{ link }}.","settings.startup.scheduled_restart_desc_2":"You can apply this setting per child bridge from the plugin bridge configuration.","settings.startup.session":"Session Timeout","settings.startup.session_days":"days","settings.startup.session_desc":"The number of seconds before a user will be logged out of the UI. Defaults to 8 hours.","settings.startup.session_hours":"hours","settings.startup.session_inactivity_based":"Inactivity-Based Session Refresh","settings.startup.session_inactivity_based_desc":"When enabled, the session will automatically refresh on navigation to prevent logout during active use.","settings.startup.session_minutes":"minutes","settings.terminal.buffer_size":"Terminal Buffer Character Size","settings.terminal.buffer_size_help":"Amount of terminal output to preserve for persistent sessions. Larger values use more memory.","settings.terminal.log_max":"Log Max Size","settings.terminal.log_max_desc":"The max log size (bytes). Set to -1 to disable log truncation.","settings.terminal.log_truncate":"Log Truncate Size","settings.terminal.log_truncate_desc":"The size (bytes) to truncate the log to once it goes over the max size specified above.","settings.terminal.persistence":"Terminal Session Persistence","settings.terminal.persistence_confirm_message":"Disabling terminal session persistence will terminate your current terminal session.","settings.terminal.persistence_confirm_title":"Disable Terminal Session Persistence","settings.terminal.persistence_help":"When enabled, terminal sessions will persist when navigating away and can be resumed when returning to the terminal page (or status page widget). Terminal sessions are shared across Homebridge UI admin users.","settings.terminal.warning":"Hide Terminal Termination Warning","settings.terminal.warning_help":"When enabled, the warning dialog will not be shown before terminating non-persistent terminal sessions.","settings.title_startup_options":"K\xE4ynnist\xE4minen ja ymp\xE4rist\xF6","settings.unpair_bridge.load_error":"Paritettuja siltoja ei voitu otta k\xE4ytt\xF6\xF6n.","settings.warning_pwa":"This setting cannot be changed when accessing the UI from a PWA, please use a regular browser.","settings.warning_webroot":"Homebridge does not have write access to the served <code>index.html</code> file. To set up a webroot, please fix this issue and restart the Homebridge service.","setup.button_get_started":"Aloitetaan","setup.create_account":"Luo k\xE4ytt\xE4j\xE4tunnus","setup.intro":"If you are setting up for the first time, or if you just need to reset the password for your existing Homebridge setup, then choose <strong>Get Started</strong>.","setup.welcome_to_homebridge":"Tervetuloa Homebridge j\xE4rjestelm\xE4\xE4n",setup_wizard_complete:"Restore Complete!",setup_wizard_complete_title:"Onnea!",setup_wizard_completed:"Asetukset ovat valmiit ja Homebridge on valmis k\xE4ytt\xF6\xF6n.",setup_wizard_create_info:"Once Homebridge is set up, you can set up 2FA on your account, or disable the need for authentication altogether.",setup_wizard_page_title:"Setup Homebridge",setup_wizard_restore:"Palauta varmuuskopiosta",setup_wizard_restoring:"Restoring Backup...",setup_wizard_starting:"Starting Homebridge...","status.code_scan":"Skannaa lis\xE4t\xE4ksesi HomeKit j\xE4rjestelm\xE4\xE4n","status.cpu.load":"K\xE4ytt\xF6aste","status.cpu.temp":"L\xE4mp\xF6tila","status.cpu.title_cpu":"CPU","status.credits.plugins_thanks":"Homebridge plugins are created by awesome developers in the Homebridge community.","status.credits.supporters":"Supporters","status.credits.title":"Ansiot","status.credits.translations":"Translations","status.credits.translations_thanks":"Homebridge UI translations are provided by the community, with special thanks to:","status.homebridge.checking":"Tarkistetaan p\xE4ivityksi\xE4","status.homebridge.up_to_date":"Ajan tasalla","status.memory.label_available":"Saatavilla","status.memory.label_total":"Yhteens\xE4","status.memory.title_memory":"Muisti","status.network.received_per_second":"Vastaanotettu","status.network.sent_per_second":"L\xE4hetetty","status.network.title_network":"Verkon aktiivisuus","status.readiness.node_no":"Your version of Node.js is not compatible with {{ app }}.","status.readiness.node_yes":"Your version of Node.js is compatible with {{ app }}.","status.readiness.title":"{{ app }} Readiness","status.services.label_not_enabled":"Not Enabled","status.services.label_not_running":"Ei k\xE4ynniss\xE4","status.services.label_running":"K\xE4ynniss\xE4","status.services.updates":"Update Information","status.uptime.title_uptime":"K\xE4yntiaika","status.widget.accessories.choose_accessories":"Valitse t\xE4ss\xE4 sovelmassa n\xE4ytett\xE4v\xE4t lis\xE4varusteet Lis\xE4varusteet-v\xE4lilehdelt\xE4.","status.widget.account_1":"The widget layout is shared among all Homebridge UI users.","status.widget.account_2":"Admin users can modify the layout, while non-admin users cannot make changes.","status.widget.add.label_pairing_code":"Paritus koodi","status.widget.add.matter_pairing_code":"Matter Pairing Code","status.widget.bridge.restart_error":"Lapsisillan uudelleenk\xE4ynnistys ep\xE4onnistui.","status.widget.clock":"Kello","status.widget.clock_dateformat":"P\xE4iv\xE4yksen muoto","status.widget.clock_timeformat":"Ajan muoto","status.widget.expand_docker":"Expand Docker Container Information","status.widget.font_size":"Kirjasinkoko","status.widget.font_weight":"Kirjasimen paksuus","status.widget.hide_node_info":"Hide Node.js Updates","status.widget.hide_npm":"Show npm Version","status.widget.hide_on_mobile":"Piilota supistetussa n\xE4kym\xE4ss\xE4 (mobiilin\xE4yt\xF6t)","status.widget.homebridge_logs":"Homebridge lokitiedot","status.widget.info":"Tietoja j\xE4rjestelm\xE4st\xE4","status.widget.info.arch":"Arch.","status.widget.info.config_path":"asetusten Polku","status.widget.info.docker":"Docker","status.widget.info.docker_update_message":"Updating the Docker container requires manually pulling the latest image and restarting the container. Homebridge does not perform this automatically. Refer to your Docker image's documentation for update instructions.","status.widget.info.docker_update_title":"Docker Container Update","status.widget.info.hostname":"Is\xE4nt\xE4nimi","status.widget.info.ipv4":"IPv4","status.widget.info.ipv6":"IPv6","status.widget.info.no":"Ei","status.widget.info.node_major":"Node.js Major Versions","status.widget.info.node_next_no":"Your current architecture ({{ architecture }}) is 32-bit, which is not supported. You will need to migrate to a 64-bit system. Please use Node.js v22 instead, which we will be supporting until April 2027.","status.widget.info.node_next_yes":"Your current architecture ({{ architecture }}) supports Node.js v24, so you can upgrade when you are ready.","status.widget.info.node_unsupp":"Ei tuettu","status.widget.info.node_unsupp_message":"K\xE4yt\xE4t Node.js-versiota, jota Homebridge ei tue virallisesti. Sinun tulisi harkita vaihtamista tuettuun versioon.","status.widget.info.node_update_message":"Homebridge vaatii toimiakseen Node.js:n, joka on asennettu j\xE4rjestelm\xE4\xE4n. Sinun on aika ajoin p\xE4ivitett\xE4v\xE4 Node.js, jotta voit ottaa k\xE4ytt\xF6\xF6n tuen uusille ominaisuuksille. Homebridge (ja vahvistetut laajennukset) tukevat kaikkia Node.js:n nykyisi\xE4 Active- ja Maintenance LTS -julkaisuja.","status.widget.info.node_update_message_2":"For Docker/Synology users, the Node.js version is managed by the Docker image or Synology package. You can hide Node.js update information using the widget settings.","status.widget.info.nodejs_path":"Node.js polku","status.widget.info.os":"K\xE4ytt\xF6j\xE4rjestelm\xE4","status.widget.info.plugin_path":"Laajennusten polku","status.widget.info.service_user":"K\xE4ytt\xE4j\xE4","status.widget.info.storage_path":"Tallennuskansio","status.widget.info.synology_package":"Synology ohjelmisto","status.widget.info.timezone":"Aikavy\xF6hyke","status.widget.info.yes":"Kyll\xE4","status.widget.network.history_items":"edelliset kohteet","status.widget.network.items":"kohteet","status.widget.network.network_interface":"Verkkosovitin","status.widget.network.none_selected":"Using Default","status.widget.network.refresh_interval":"P\xE4ivityksen aikav\xE4li ","status.widget.network.seconds":"sekuntia","status.widget.qr_paired":"Paritettu","status.widget.qr_unpaired":"Ei paritettu","status.widget.show_hide":"N\xE4yt\xE4/Piilota sovelmat","status.widget.title_manage_widget":"Hallitse sovelmaa","status.widget.update_node_no":"{{ pluginName }} is not compatible with Node {{ nodeVersion }}.","status.widget.update_node_unknown":"The developer of {{ pluginName }} has not specified the Node version compatibility.","status.widget.update_node_yes":"{{ pluginName }} is compatible with Node {{ nodeVersion }}.","status.widget.uptime.label_process":"Prosessi","status.widget.uptime.label_server":"Palvelin","status.widget.weather.label_config_required_help":"Ole hyv\xE4 ja valitse kaupunki sovelman asetuksissa.","status.widget.weather.label_search_for_your_city":"Hae kaupunkia Englanniksi:","status.widget.weather.title_weather":"S\xE4\xE4","support.dev.api":"Homebridge API","support.dev.api_hap":"HAP-NodeJS API","support.dev.api_hap_sub":"HAP-NodeJS on HomeKit Accessory Server -sovelluksen toteutus, joka on m\xE4\xE4ritelty HomeKit Accessory Protocol (HAP) -protokollassa, jonka Apple m\xE4\xE4rittelee osaksi HomeKit Frameworkia.","support.dev.api_sub":"Homebridge on kevyt Node.js-palvelin, jota voit k\xE4ytt\xE4\xE4 kotiverkossasi k\xE4ytt\xE4\xE4ksesi HomeKit Accessory Protocol (HAP) -protokollaa.","support.dev.item_swagger":"Swagger Docs","support.dev.item_swagger_sub":"Homebridge REST API antaa sinun olla vuorovaikutuksessa Homebridge-palvelimesi kanssa HTTP-pyynt\xF6jen avulla.","support.dev.template":"Plugin Template Repo","support.dev.template_sub":"Malli Homebridge-laajennus, jota voidaan k\xE4ytt\xE4\xE4 pohjana oman laajennuksen kehitt\xE4miseen.","support.dev.title":"Kehitt\xE4j\xE4t","support.dev.verified":"Verified By Homebridge","support.dev.verified_sub":"Verified By Homebridge -ohjelman avulla laajennuskehitt\xE4j\xE4t voivat saada Homebridge-projektitiimin tarkistamaan ja hyv\xE4ksym\xE4\xE4n lis\xE4osat.","support.links.discord":"Discord Palvelin","support.links.discord_sub":"Liity Homebridge Discord -chat-palvelimeen keskustellaksesi muiden k\xE4ytt\xE4jien ja kehitt\xE4jien kanssa.","support.links.documentation":"Dokumentaatio","support.links.documentation_sub":"Homebridgen dokumentaatiossa on runsaasti tietoa Homebridgen k\xE4yt\xF6n aloittamisesta ja yleisist\xE4 ongelmien ratkaisuista.","support.links.issue":"Raportoi virhetoiminto","support.links.issue_sub":"Jos sinulla ilmenee virhetoiminto Homebridge:sa, ole hyv\xE4 ja avaa asiasta uusi aihe GitHub:sa. T\xE4m\xE4 ei koske laajennuksiin liittyvi\xE4 virheit\xE4.","support.links.reddit":"Reddit yhteis\xF6","support.links.reddit_sub":"Homebridge subreddit on hyv\xE4 paikka jakaa Homebridge asetuksesi ja etsi\xE4 apua.","support.links.title":"Hy\xF6dyllisi\xE4 linkkej\xE4","support.title":"Tuki","toast.no_auth":"Vain p\xE4\xE4k\xE4ytt\xE4jill\xE4 on p\xE4\xE4sy pyydetylle sivulle.","toast.title_error":"Virhe","toast.title_success":"Onnistui","toast.title_warning":"Varoitus","users.button_add_user":"Lis\xE4\xE4 K\xE4ytt\xE4j\xE4","users.label_admin_user":"P\xE4\xE4k\xE4ytt\xE4j\xE4","users.label_confirm_password":"Vahvista salasana","users.label_full_name":"Koko nimi","users.label_new_password":"Uusi salasana","users.label_password":"Salasana","users.label_username":"K\xE4ytt\xE4j\xE4tunnus","users.setup_2fa":"M\xE4\xE4rittele 2FA","users.setup_2fa_activate_error":"2FA:n aktivoinnissa tapahtui virhe","users.setup_2fa_cannot_setup_2fa":"2FA:ta ei voitu m\xE4\xE4ritell\xE4","users.setup_2fa_disable":"Lopeta 2FA:n k\xE4ytt\xF6","users.setup_2fa_disable_current_password":"Sy\xF6t\xE4 salasana poistaaksesi kaksivaiheinen tunnistautuminen k\xE4yt\xF6st\xE4:","users.setup_2fa_disable_success":"Kaksivaiheinen tunnistautuminen on poistettu k\xE4yt\xF6st\xE4.","users.setup_2fa_enable":"Ota k\xE4ytt\xF6\xF6n 2FA","users.setup_2fa_enable_error":"Tapahtui virhe 2FA:n k\xE4ytt\xF6\xF6notossa","users.setup_2fa_enabled_success":"Kaksivaiheinen tunnistautuminen on otettu k\xE4ytt\xF6\xF6n.","users.setup_2fa_enter_code":"Sy\xF6t\xE4 authenticator sovelluksesi koodi:","users.setup_2fa_scan_qr_code":"Lue alapuolinen QR koodi authenticator sovelluksellasi:","users.setup_2fa_scan_qr_manual":"If you cannot scan the QR code, you can enter the following secret key manually:","users.setup_2fa_server_time_out":"Palvelimesi aika eroaa oikeasta ajasta {{ timeDiffError }} ms. maksimi virhe on +/-5000 ms.","users.setup_2fa_warning":"Kaksivaiheinen tunnistautuminen vaatii Homebridge palvelimen olevan tarkasti oikeassa ajassa. Jos palvelimen aikaa ei ole mahdollista synkronoida niin 2FA:ta ei kannata ottaa k\xE4ytt\xF6\xF6n koska on olemassa riski ett\xE4 kirjautuminen estyy.","users.support.acc_1":"There are two types of users that can access the Homebridge UI: admin and non-admin users. Admins can access and control everything available in the UI. Non-admin users have a read-only view of the following pages:","users.support.acc_2":"2FA can only be set up on admin accounts, and must do this via the users page logged in as themselves.","users.support.control":"can be controlled","users.title_add_user":"Lis\xE4\xE4 k\xE4ytt\xE4j\xE4","users.title_edit_user":"Muokkaa k\xE4ytt\xE4j\xE4\xE4","users.title_users":"K\xE4ytt\xE4j\xE4t","users.toast_added_new_user":"Uusi k\xE4ytt\xE4j\xE4 lis\xE4tty","users.toast_failed_to_add_user":"K\xE4ytt\xE4j\xE4n lis\xE4ys ep\xE4onnistui","users.toast_failed_to_delete_user":"K\xE4ytt\xE4j\xE4n poisto ep\xE4onnistui","users.toast_updated_user":"K\xE4ytt\xE4j\xE4 p\xE4ivitetty","users.toast_user_deleted":"K\xE4ytt\xE4j\xE4 poistettu"}});export{s as a};
@@ -0,0 +1 @@
1
+ import{b as T,c as D,d as N}from"./chunk-WX345PMX.js";import{m as w}from"./chunk-MS4K4KAK.js";import{F as L}from"./chunk-2TQEV57U.js";import{Ab as r,Ec as _,Fb as p,Fc as u,Gb as o,Hb as a,Ib as m,Rb as P,Ua as C,Va as v,Xb as M,Za as i,Zb as d,aa as O,ga as k,ha as x,jc as S,kc as f,lc as B,mc as h,nb as y,sa as l,vc as I,yb as b,zb as s}from"./chunk-MKV5RAJQ.js";function H(n,c){if(n&1&&m(0,"i",16),n&2){let t=d();S(I("fas ",t.faIconClassSignal()," mb-3"))}}function E(n,c){if(n&1&&m(0,"h5",6),n&2){let t=d();p("innerHTML",t.subtitleSignal(),C)}}function R(n,c){if(n&1&&m(0,"p",8),n&2){let t=d();p("innerHTML",t.message2Signal(),C)}}function z(n,c){if(n&1&&m(0,"markdown",9),n&2){let t=d();p("data",t.markdownMessage2Signal())}}function V(n,c){if(n&1){let t=P();o(0,"button",17),_(1,"translate"),M("click",function(){k(t);let e=d();return x(e.dismissModal())}),f(2),_(3,"translate"),a()}n&2&&(b("aria-label",u(1,2,"form.button_close")),i(2),h(" ",u(3,4,"form.button_close")," "))}function j(n,c){if(n&1){let t=P();o(0,"button",17),_(1,"translate"),M("click",function(){k(t);let e=d();return x(e.dismissModal())}),f(2),_(3,"translate"),a()}n&2&&(b("aria-label",u(1,2,"form.button_close")),i(2),h(" ",u(3,4,"form.button_close")," "))}function A(n,c){if(n&1&&(o(0,"a",15),f(1),m(2,"i",18),a()),n&2){let t=d();p("href",t.ctaButtonLinkSignal(),v),i(),h(" ",t.ctaButtonLabelSignal()," ")}}var X=(()=>{class n{$activeModal=O(w);_title=l(null,{});_subtitle=l(void 0,{});_message=l(null,{});_message2=l(void 0,{});_ctaButtonLabel=l(void 0,{});_ctaButtonLink=l(void 0,{});_faIconClass=l(null,{});_markdownMessage2=l(void 0,{});set title(t){this._title.set(t)}get title(){return this._title()}set subtitle(t){this._subtitle.set(t)}get subtitle(){return this._subtitle()}set message(t){this._message.set(t)}get message(){return this._message()}set message2(t){this._message2.set(t)}get message2(){return this._message2()}set ctaButtonLabel(t){this._ctaButtonLabel.set(t)}get ctaButtonLabel(){return this._ctaButtonLabel()}set ctaButtonLink(t){this._ctaButtonLink.set(t)}get ctaButtonLink(){return this._ctaButtonLink()}set faIconClass(t){this._faIconClass.set(t)}get faIconClass(){return this._faIconClass()}set markdownMessage2(t){this._markdownMessage2.set(t)}get markdownMessage2(){return this._markdownMessage2()}titleSignal=this._title.asReadonly();subtitleSignal=this._subtitle.asReadonly();messageSignal=this._message.asReadonly();message2Signal=this._message2.asReadonly();ctaButtonLabelSignal=this._ctaButtonLabel.asReadonly();ctaButtonLinkSignal=this._ctaButtonLink.asReadonly();faIconClassSignal=this._faIconClass.asReadonly();markdownMessage2Signal=this._markdownMessage2.asReadonly();dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(g){return new(g||n)};static \u0275cmp=y({type:n,selectors:[["ng-component"]],decls:19,vars:13,consts:[["role","dialog","aria-modal","true",1,"modal-content"],[1,"modal-header"],["id","information-modal-title",1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body","text-center"],[2,"font-size","75px",3,"class"],[1,"mb-3",3,"innerHTML"],[1,"mb-0",3,"innerHTML"],[1,"mb-0","mt-3",3,"innerHTML"],[1,"plugin-md",3,"data"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none",3,"href"],[2,"font-size","75px"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"fas","fa-external-link-alt"]],template:function(g,e){g&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),f(3),a(),o(4,"button",3),_(5,"translate"),M("click",function(){return e.dismissModal()}),a()(),o(6,"div",4),s(7,H,1,3,"i",5),s(8,E,1,1,"h5",6),m(9,"p",7),s(10,R,1,1,"p",8),s(11,z,1,1,"markdown",9),a(),o(12,"div",10)(13,"div",11),s(14,V,4,6,"button",12),a(),o(15,"div",13),s(16,j,4,6,"button",12),a(),o(17,"div",14),s(18,A,3,2,"a",15),a()()()),g&2&&(b("aria-labelledby","information-modal-title"),i(3),B(e.titleSignal()),i(),b("aria-label",u(5,11,"form.button_close")),i(3),r(e.faIconClassSignal()?7:-1),i(),r(e.subtitleSignal()?8:-1),i(),p("innerHTML",e.messageSignal(),C),i(),r(e.message2Signal()?10:-1),i(),r(e.markdownMessage2Signal()?11:-1),i(3),r(e.ctaButtonLinkSignal()?14:-1),i(2),r(e.ctaButtonLinkSignal()?-1:16),i(2),r(e.ctaButtonLinkSignal()?18:-1))},dependencies:[D,T,N,L],styles:["[_nghost-%COMP%] .plugin-md{display:block!important;background-color:#f6f8fa!important;border-radius:6px!important;padding:16px!important;margin:16px auto!important;width:100%!important;max-width:632px!important}[_nghost-%COMP%] .plugin-md table{width:100%;max-width:600px;margin:0 auto!important;border-collapse:collapse;border:1px solid #d0d7de!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif!important;font-size:14px!important;color:#24292e!important}[_nghost-%COMP%] .plugin-md th, [_nghost-%COMP%] .plugin-md td{padding:6px 13px!important;border:1px solid #d0d7de!important;text-align:left;color:#24292e!important}[_nghost-%COMP%] .plugin-md th{background-color:#f6f8fa!important;font-weight:600!important;text-align:center!important}[_nghost-%COMP%] .plugin-md td[align=center]{text-align:center!important}[_nghost-%COMP%] .plugin-md tr{color:#24292e!important}[_nghost-%COMP%] .plugin-md tr:nth-child(odd){background-color:#fff!important}[_nghost-%COMP%] .plugin-md tr:nth-child(2n){background-color:#f6f8fa!important}[_nghost-%COMP%] .plugin-md tr:hover{background-color:#f0f2f5!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%]{background-color:#2b2b2b!important;color:#fff!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] table[_ngcontent-%COMP%], [_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] tr[_ngcontent-%COMP%], [_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] th[_ngcontent-%COMP%], [_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{color:#fff!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{background-color:#3c3c3c!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(odd){background-color:#323232!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(2n){background-color:#2b2b2b!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover{background-color:#454545!important}"]})}return n})();export{X as a};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-SVEGWVQJ.js";import"./chunk-B4AJQJMI.js";export default a();