@mxtommy/kip 3.9.0-beta.11 → 3.9.0-beta.12

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 (32) hide show
  1. package/README.md +49 -12
  2. package/package.json +2 -2
  3. package/public/3rdpartylicenses.txt +38 -38
  4. package/public/{chunk-PKNLASTF.js → chunk-22UVF7E4.js} +1 -1
  5. package/public/{chunk-65LQUQJE.js → chunk-2NEY3YTE.js} +2 -2
  6. package/public/{chunk-VHFBF47T.js → chunk-3FJFLAW2.js} +1 -1
  7. package/public/{chunk-ZBCOJLI4.js → chunk-4WLU7SQK.js} +1 -1
  8. package/public/{chunk-JY3WVS7C.js → chunk-5KJ57S2K.js} +1 -1
  9. package/public/{chunk-53YH6WHF.js → chunk-7RQUFCX7.js} +1 -1
  10. package/public/{chunk-NS2FPVWM.js → chunk-7TU3ZWML.js} +1 -1
  11. package/public/{chunk-2YVW3TBK.js → chunk-BPFSYA37.js} +1 -1
  12. package/public/{chunk-RRTCHHRC.js → chunk-EO34EE4V.js} +1 -1
  13. package/public/{chunk-KTDDP73O.js → chunk-EWHP4JKO.js} +1 -1
  14. package/public/{chunk-4JJLPUET.js → chunk-EZMEBXXM.js} +1 -1
  15. package/public/{chunk-TA4GACKT.js → chunk-FEXPC4HW.js} +1 -1
  16. package/public/{chunk-HCXH72CD.js → chunk-FVALI6JO.js} +1 -1
  17. package/public/{chunk-3LEMFOCV.js → chunk-G5XHTLTP.js} +1 -1
  18. package/public/{chunk-35L7BBBD.js → chunk-H5OPY2IR.js} +12 -12
  19. package/public/{chunk-VYUMZVH2.js → chunk-IAZ6ZOIN.js} +1 -1
  20. package/public/{chunk-AS4F4I3P.js → chunk-LFVNB44Z.js} +1 -1
  21. package/public/{chunk-CQXWGD3T.js → chunk-LR2ASNFJ.js} +1 -1
  22. package/public/{chunk-JNFARXLF.js → chunk-M5VFYACR.js} +10 -10
  23. package/public/{chunk-7O6MKSQ3.js → chunk-MIQ7Z5UW.js} +1 -1
  24. package/public/{chunk-NMEZOCU2.js → chunk-RQ23BH6Q.js} +1 -1
  25. package/public/{chunk-CBUY7NMR.js → chunk-SWYOATEE.js} +1 -1
  26. package/public/{chunk-Q2Y75POI.js → chunk-TOY6DYVQ.js} +1 -1
  27. package/public/{chunk-KKHPIFEB.js → chunk-Y27DLVLA.js} +1 -1
  28. package/public/{chunk-TXPLRBW5.js → chunk-YAK5FQIH.js} +2 -2
  29. package/public/index.html +2 -2
  30. package/public/main-J5SSLV3T.js +53 -0
  31. package/public/{styles-GMXUNVLC.css → styles-AE6JMQ4R.css} +1 -1
  32. package/public/main-5BGEDP4B.js +0 -53
package/README.md CHANGED
@@ -16,20 +16,9 @@ Key features include:
16
16
  - **Multiple User Profiles**: Tailor configurations for different roles, devices, or use cases.
17
17
  - **Cross-Device Compatibility**: Access KIP remotely on any device by navigating to `http://<Signal K Server URL>:<port>/@mxtommy/kip`.
18
18
 
19
- Typical complementary components you may install (many are often bundled with Signal K distributions):
20
-
21
- **Navigation & Charting**
22
- - **Freeboard‑SK** – Multi‑station, web chart plotter dedicated to Signal K: routes, waypoints, charts, alarms, weather layers, and instrument overlays.
23
-
24
- **Visual Flow / Automation**
25
- - **Node‑RED** – Low‑code, flow‑based wiring of devices, APIs, online services, and custom logic (alert escalation, device control automation, data enrichment, protocol bridging).
26
-
27
- **Data Storage & Analytics**
28
- - **InfluxDB / other TSDB** – High‑resolution historical storage of sensor & performance metrics beyond what lightweight widget charts should retain.
29
- - **Grafana** – Rich exploratory / comparative dashboards, ad‑hoc queries, alert rules on stored metrics, correlation across heterogeneous data sources.
30
-
31
19
  KIP is open-source under the MIT license, built by the community and 100% free. Join the community on Discord or contribute to the project on GitHub!
32
20
 
21
+ ## Read the Help introduction How-to
33
22
  ## Read the Help introduction How-to
34
23
  Read the [Introduction](https://github.com/mxtommy/Kip/blob/master/src/assets/help-docs/welcome.md) help file.
35
24
 
@@ -134,6 +123,32 @@ For example, Signal K will notify KIP when a water depth or temperature sensor r
134
123
  ## Multiple User Profiles
135
124
  If you have different roles on board: captain, skipper, tactician, navigator, engineer—or simply different people with different needs, each can tailor KIP as they wish. The use of profiles also allows you to tie specific configuration arrangements to use cases or device form factors.
136
125
 
126
+ ## Complementary Components
127
+ Typical complementary components you may install (many are often bundled with Signal K distributions):
128
+
129
+ **Navigation & Charting**
130
+ - **Freeboard‑SK** – Multi‑station, web chart plotter dedicated to Signal K: routes, waypoints, charts, alarms, weather layers, and instrument overlays.
131
+
132
+ **Visual Flow / Automation**
133
+ - **Node‑RED** – Low‑code, flow‑based wiring of devices, APIs, online services, and custom logic (alert escalation, device control automation, data enrichment, protocol bridging).
134
+
135
+ **Data Storage & Analytics**
136
+ - **InfluxDB / other TSDB** – High‑resolution historical storage of sensor & performance metrics beyond what lightweight widget charts should retain.
137
+ - **Grafana** – Rich exploratory / comparative dashboards, ad‑hoc queries, alert rules on stored metrics, correlation across heterogeneous data sources.
138
+
139
+ ## Complementary Components
140
+ Typical complementary components you may install (many are often bundled with Signal K distributions):
141
+
142
+ **Navigation & Charting**
143
+ - **Freeboard‑SK** – Multi‑station, web chart plotter dedicated to Signal K: routes, waypoints, charts, alarms, weather layers, and instrument overlays.
144
+
145
+ **Visual Flow / Automation**
146
+ - **Node‑RED** – Low‑code, flow‑based wiring of devices, APIs, online services, and custom logic (alert escalation, device control automation, data enrichment, protocol bridging).
147
+
148
+ **Data Storage & Analytics**
149
+ - **InfluxDB / other TSDB** – High‑resolution historical storage of sensor & performance metrics beyond what lightweight widget charts should retain.
150
+ - **Grafana** – Rich exploratory / comparative dashboards, ad‑hoc queries, alert rules on stored metrics, correlation across heterogeneous data sources.
151
+
137
152
  # Connect, Share, and Support
138
153
  KIP has its own Discord Signal K channel for getting in touch. Join us at https://discord.gg/AMDYT2DQga
139
154
 
@@ -166,6 +181,28 @@ Keeping KIP focused preserves responsiveness (lower CPU / memory), reduces UI cl
166
181
 
167
182
  In short: use KIP to see & act on live sailing information; use the complementary tools to store it long‑term, analyze it deeply, automate decisions, or build advanced integrations.
168
183
 
184
+ ## Project Scope
185
+ What KIP IS about:
186
+ - Real‑time presentation of vessel & environment data (navigation, performance, systems) pulled from Signal K.
187
+ - Fast, legible, touchscreen‑friendly dashboards for underway decision making.
188
+ - Configurable widgets (gauges, charts, timers, controls) tuned for sailing operations.
189
+
190
+ What KIP deliberately IS NOT trying to become:
191
+ - A full data lake / long‑term time‑series historian.
192
+ - A general purpose automation / rules / orchestration engine.
193
+ - A universal external web‑app embedding or mash‑up framework.
194
+ - A low‑code integration hub for arbitrarily wiring protocols and services.
195
+
196
+ Those domains already have excellent, specialized open‑source tools. Instead of re‑implementing them, KIP plays nicely alongside them within a Signal K based onboard stack.
197
+
198
+ **Processing & Extensions**
199
+ - **Signal K Plugins** – Domain‑specific enrichment (polars, performance calculations, derived environmental data, routing aids) published directly into the Signal K data model that KIP can then display.
200
+
201
+ **Why this separation matters**
202
+ Keeping KIP focused preserves responsiveness (lower CPU / memory), reduces UI clutter, and accelerates iteration on core sailing UX. Heavy analytics, complex workflow logic, and broad third‑party embedding stay where they are strongest—outside—but still feed KIP through the common Signal K data fabric.
203
+
204
+ In short: use KIP to see & act on live sailing information; use the complementary tools to store it long‑term, analyze it deeply, automate decisions, or build advanced integrations.
205
+
169
206
  **Tools**
170
207
  Linux, Mac, RPi, or Windows dev platform supported
171
208
  1. Install the latest Node version (v16+, v18 recommended)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mxtommy/kip",
3
- "version": "3.9.0-beta.11",
3
+ "version": "3.9.0-beta.12",
4
4
  "description": "An advanced and versatile marine instrumentation package to display Signal K data.",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -69,6 +69,7 @@
69
69
  "@types/js-quantities": "^1.6.6",
70
70
  "@types/lodash-es": "^4.17.9",
71
71
  "@types/node": "^24.1.0",
72
+ "@zakj/no-sleep": "^0.13.5",
72
73
  "angular-eslint": "20.1.1",
73
74
  "chart.js": "^4.4.9",
74
75
  "chartjs-adapter-date-fns": "^3.0.0",
@@ -98,7 +99,6 @@
98
99
  "rxjs": "^7.8.2",
99
100
  "sass": "^1.49.9",
100
101
  "screenfull": "^6.0.2",
101
- "@zakj/no-sleep": "^0.13.5",
102
102
  "steelseries": "^2.0.9",
103
103
  "ts-node": "^10.9.2",
104
104
  "tslib": "^2.6.2",
@@ -1,28 +1,4 @@
1
1
 
2
- --------------------------------------------------------------------------------
3
- Package: howler
4
- License: "MIT"
5
-
6
- Copyright (c) 2013-2020 James Simpson and GoldFire Studios, Inc.
7
-
8
- Permission is hereby granted, free of charge, to any person obtaining
9
- a copy of this software and associated documentation files (the
10
- "Software"), to deal in the Software without restriction, including
11
- without limitation the rights to use, copy, modify, merge, publish,
12
- distribute, sublicense, and/or sell copies of the Software, and to
13
- permit persons to whom the Software is furnished to do so, subject to
14
- the following conditions:
15
-
16
- The above copyright notice and this permission notice shall be
17
- included in all copies or substantial portions of the Software.
18
-
19
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
23
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
24
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
25
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26
2
  --------------------------------------------------------------------------------
27
3
  Package: @godind/canvas-gauges
28
4
  License: "MIT"
@@ -49,6 +25,30 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
49
25
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
50
26
  SOFTWARE.
51
27
 
28
+ --------------------------------------------------------------------------------
29
+ Package: howler
30
+ License: "MIT"
31
+
32
+ Copyright (c) 2013-2020 James Simpson and GoldFire Studios, Inc.
33
+
34
+ Permission is hereby granted, free of charge, to any person obtaining
35
+ a copy of this software and associated documentation files (the
36
+ "Software"), to deal in the Software without restriction, including
37
+ without limitation the rights to use, copy, modify, merge, publish,
38
+ distribute, sublicense, and/or sell copies of the Software, and to
39
+ permit persons to whom the Software is furnished to do so, subject to
40
+ the following conditions:
41
+
42
+ The above copyright notice and this permission notice shall be
43
+ included in all copies or substantial portions of the Software.
44
+
45
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
46
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
47
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
48
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
49
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
50
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
51
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
52
52
  --------------------------------------------------------------------------------
53
53
  Package: gridstack
54
54
  License: "MIT"
@@ -102,12 +102,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
102
102
  THE SOFTWARE.
103
103
 
104
104
  --------------------------------------------------------------------------------
105
- Package: @angular/material
105
+ Package: ngx-resize-observer
106
106
  License: "MIT"
107
107
 
108
- The MIT License
109
-
110
- Copyright (c) 2025 Google LLC.
108
+ Copyright (c) 2017 Tyler Akins
111
109
 
112
110
  Permission is hereby granted, free of charge, to any person obtaining a copy
113
111
  of this software and associated documentation files (the "Software"), to deal
@@ -116,22 +114,24 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
116
114
  copies of the Software, and to permit persons to whom the Software is
117
115
  furnished to do so, subject to the following conditions:
118
116
 
119
- The above copyright notice and this permission notice shall be included in
120
- all copies or substantial portions of the Software.
117
+ The above copyright notice and this permission notice shall be included in all
118
+ copies or substantial portions of the Software.
121
119
 
122
120
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
123
121
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
124
122
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
125
123
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
126
124
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
127
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
128
- THE SOFTWARE.
125
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
126
+ SOFTWARE.
129
127
 
130
128
  --------------------------------------------------------------------------------
131
- Package: ngx-resize-observer
129
+ Package: @angular/material
132
130
  License: "MIT"
133
131
 
134
- Copyright (c) 2017 Tyler Akins
132
+ The MIT License
133
+
134
+ Copyright (c) 2025 Google LLC.
135
135
 
136
136
  Permission is hereby granted, free of charge, to any person obtaining a copy
137
137
  of this software and associated documentation files (the "Software"), to deal
@@ -140,16 +140,16 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
140
140
  copies of the Software, and to permit persons to whom the Software is
141
141
  furnished to do so, subject to the following conditions:
142
142
 
143
- The above copyright notice and this permission notice shall be included in all
144
- copies or substantial portions of the Software.
143
+ The above copyright notice and this permission notice shall be included in
144
+ all copies or substantial portions of the Software.
145
145
 
146
146
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
147
147
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
148
148
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
149
149
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
150
150
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
151
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
152
- SOFTWARE.
151
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
152
+ THE SOFTWARE.
153
153
 
154
154
  --------------------------------------------------------------------------------
155
155
  Package: chartjs-plugin-annotation
@@ -1,4 +1,4 @@
1
- import{S as Ut,e as Ht}from"./chunk-TA4GACKT.js";import{$b as j,Aa as c,Ab as L,Ac as At,Be as ct,Cb as tt,Ce as Gt,Da as Y,Db as Lt,Fb as u,Gb as Q,Hb as z,I as kt,Ja as X,K as H,Ke as $t,L as Tt,Mc as A,Na as Rt,Ne as qt,Oa as N,Oe as mt,P as Ct,Qa as R,Qd as Vt,Ra as Pt,Rb as k,Sb as et,Tb as at,Vb as it,Ve as Kt,Wb as nt,Wd as st,We as Zt,Xb as rt,Yb as T,Zb as h,Zc as Ft,_b as y,ae as Nt,be as Ot,ea as xt,ed as q,f as P,fa as V,fe as Qt,g as w,ga as wt,gc as E,ha as M,ic as C,id as _,j as gt,jd as K,kc as g,lb as f,lc as W,le as zt,m as F,mc as G,me as jt,nb as O,nc as S,oa as It,oc as p,oe as Wt,pa as Dt,pb as J,pc as m,qc as b,r as vt,ra as D,sb as Mt,se as lt,t as yt,ta as o,te as dt,uc as ot,vc as Et,wb as B,wc as v,we as Z,xb as Bt,yb as I,yc as $,za as d,zc as St}from"./chunk-35L7BBBD.js";var ut=["*"];function oe(n,l){n&1&&G(0)}var se=["tabListContainer"],le=["tabList"],de=["tabListInner"],ce=["nextPaginator"],me=["previousPaginator"],be=["content"];function he(n,l){}var pe=["tabBodyWrapper"],_e=["tabHeader"];function ue(n,l){}function fe(n,l){if(n&1&&tt(0,ue,0,0,"ng-template",12),n&2){let t=g().$implicit;T("cdkPortalOutlet",t.templateLabel)}}function ge(n,l){if(n&1&&St(0),n&2){let t=g().$implicit;At(t.textLabel)}}function ve(n,l){if(n&1){let t=E();h(0,"div",7,2),C("click",function(){let a=d(t),i=a.$implicit,r=a.$index,s=g(),x=ot(1);return c(s._handleClick(i,x,r))})("cdkFocusChange",function(a){let i=d(t).$index,r=g();return c(r._tabFocusChanged(a,i))}),j(2,"span",8)(3,"div",9),h(4,"span",10)(5,"span",11),et(6,fe,1,1,null,12)(7,ge,1,1),y()()()}if(n&2){let t=l.$implicit,e=l.$index,a=ot(1),i=g();$(t.labelClass),v("mdc-tab--active",i.selectedIndex===e),T("id",i._getTabLabelId(t,e))("disabled",t.disabled)("fitInkBarToContent",i.fitInkBarToContent),k("tabIndex",i._getTabIndex(e))("aria-posinset",e+1)("aria-setsize",i._tabs.length)("aria-controls",i._getTabContentId(e))("aria-selected",i.selectedIndex===e)("aria-label",t.ariaLabel||null)("aria-labelledby",!t.ariaLabel&&t.ariaLabelledby?t.ariaLabelledby:null),f(3),T("matRippleTrigger",a)("matRippleDisabled",t.disabled||i.disableRipple),f(3),at(t.templateLabel?6:7)}}function ye(n,l){n&1&&G(0)}function ke(n,l){if(n&1){let t=E();h(0,"mat-tab-body",13),C("_onCentered",function(){d(t);let a=g();return c(a._removeTabBodyWrapperHeight())})("_onCentering",function(a){d(t);let i=g();return c(i._setTabBodyWrapperHeight(a))})("_beforeCentering",function(a){d(t);let i=g();return c(i._bodyCentered(a))}),y()}if(n&2){let t=l.$implicit,e=l.$index,a=g();$(t.bodyClass),T("id",a._getTabContentId(e))("content",t.content)("position",t.position)("animationDuration",a.animationDuration)("preserveContent",a.preserveContent),k("tabindex",a.contentTabIndex!=null&&a.selectedIndex===e?a.contentTabIndex:null)("aria-labelledby",a._getTabLabelId(t,e))("aria-hidden",a.selectedIndex!==e)}}var Te=new D("MatTabContent"),Ce=(()=>{class n{template=o(O);constructor(){}static \u0275fac=function(e){return new(e||n)};static \u0275dir=I({type:n,selectors:[["","matTabContent",""]],features:[A([{provide:Te,useExisting:n}])]})}return n})(),xe=new D("MatTabLabel"),te=new D("MAT_TAB"),we=(()=>{class n extends qt{_closestTab=o(te,{optional:!0});static \u0275fac=(()=>{let t;return function(a){return(t||(t=N(n)))(a||n)}})();static \u0275dir=I({type:n,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[A([{provide:xe,useExisting:n}]),L]})}return n})(),ee=new D("MAT_TAB_GROUP"),Ie=(()=>{class n{_viewContainerRef=o(Mt);_closestTabGroup=o(ee,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(t){this._setTemplateLabelInput(t)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;id=null;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new F;position=null;origin=null;isActive=!1;constructor(){o(Ot).load(Gt)}ngOnChanges(t){(t.hasOwnProperty("textLabel")||t.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new $t(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(t){t&&t._closestTab===this&&(this._templateLabel=t)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=B({type:n,selectors:[["mat-tab"]],contentQueries:function(e,a,i){if(e&1&&(S(i,we,5),S(i,Ce,7,O)),e&2){let r;m(r=b())&&(a.templateLabel=r.first),m(r=b())&&(a._explicitContent=r.first)}},viewQuery:function(e,a){if(e&1&&p(O,7),e&2){let i;m(i=b())&&(a._implicitContent=i.first)}},hostAttrs:["hidden",""],hostVars:1,hostBindings:function(e,a){e&2&&k("id",null)},inputs:{disabled:[2,"disabled","disabled",_],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass",id:"id"},exportAs:["matTab"],features:[A([{provide:te,useExisting:n}]),Rt],ngContentSelectors:ut,decls:1,vars:0,template:function(e,a){e&1&&(W(),Lt(0,oe,1,0,"ng-template"))},encapsulation:2})}return n})(),bt="mdc-tab-indicator--active",Yt="mdc-tab-indicator--no-transition",ht=class{_items;_currentItem;constructor(l){this._items=l}hide(){this._items.forEach(l=>l.deactivateInkBar()),this._currentItem=void 0}alignToElement(l){let t=this._items.find(a=>a.elementRef.nativeElement===l),e=this._currentItem;if(t!==e&&(e?.deactivateInkBar(),t)){let a=e?.elementRef.nativeElement.getBoundingClientRect?.();t.activateInkBar(a),this._currentItem=t}}},De=(()=>{class n{_elementRef=o(R);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(t){this._fitToContent!==t&&(this._fitToContent=t,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(t){let e=this._elementRef.nativeElement;if(!t||!e.getBoundingClientRect||!this._inkBarContentElement){e.classList.add(bt);return}let a=e.getBoundingClientRect(),i=t.width/a.width,r=t.left-a.left;e.classList.add(Yt),this._inkBarContentElement.style.setProperty("transform",`translateX(${r}px) scaleX(${i})`),e.getBoundingClientRect(),e.classList.remove(Yt),e.classList.add(bt),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(bt)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let t=this._elementRef.nativeElement.ownerDocument||document,e=this._inkBarElement=t.createElement("span"),a=this._inkBarContentElement=t.createElement("span");e.className="mdc-tab-indicator",a.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",e.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let t=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;t.appendChild(this._inkBarElement)}static \u0275fac=function(e){return new(e||n)};static \u0275dir=I({type:n,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",_]}})}return n})();var ae=(()=>{class n extends De{elementRef=o(R);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let t;return function(a){return(t||(t=N(n)))(a||n)}})();static \u0275dir=I({type:n,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(e,a){e&2&&(k("aria-disabled",!!a.disabled),v("mat-mdc-tab-disabled",a.disabled))},inputs:{disabled:[2,"disabled","disabled",_]},features:[L]})}return n})(),Xt={passive:!0},Re=650,Pe=100,Me=(()=>{class n{_elementRef=o(R);_changeDetectorRef=o(q);_viewportRuler=o(Zt);_dir=o(lt,{optional:!0});_ngZone=o(Q);_platform=o(st);_sharedResizeObserver=o(Ut);_injector=o(Y);_renderer=o(J);_animationsDisabled=Z();_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new F;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new F;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(t){let e=isNaN(t)?0:t;this._selectedIndex!=e&&(this._selectedIndexChanged=!0,this._selectedIndex=e,this._keyManager&&this._keyManager.updateActiveItem(e))}_selectedIndex=0;selectFocusedIndex=new u;indexFocused=new u;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(this._renderer.listen(this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),Xt),this._renderer.listen(this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),Xt))}ngAfterContentInit(){let t=this._dir?this._dir.change:yt("ltr"),e=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(Ct(32),M(this._destroyed)),a=this._viewportRuler.change(150).pipe(M(this._destroyed)),i=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new Wt(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(Math.max(this._selectedIndex,0)),z(i,{injector:this._injector}),H(t,a,e,this._items.changes,this._itemsResized()).pipe(M(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),i()})}),this._keyManager?.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(r=>{this.indexFocused.emit(r),this._setTabFocus(r)})}_itemsResized(){return typeof ResizeObserver!="function"?vt:this._items.changes.pipe(V(this._items),wt(t=>new gt(e=>this._ngZone.runOutsideAngular(()=>{let a=new ResizeObserver(i=>e.next(i));return t.forEach(i=>a.observe(i.elementRef.nativeElement)),()=>{a.disconnect()}}))),xt(1),Tt(t=>t.some(e=>e.contentRect.width>0&&e.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._eventCleanups.forEach(t=>t()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(t){if(!jt(t))switch(t.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let e=this._items.get(this.focusIndex);e&&!e.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(t))}break;default:this._keyManager?.onKeydown(t)}}_onContentChanges(){let t=this._elementRef.nativeElement.textContent;t!==this._currentTextContent&&(this._currentTextContent=t||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(t){!this._isValidIndex(t)||this.focusIndex===t||!this._keyManager||this._keyManager.setActiveItem(t)}_isValidIndex(t){return this._items?!!this._items.toArray()[t]:!0}_setTabFocus(t){if(this._showPaginationControls&&this._scrollToLabel(t),this._items&&this._items.length){this._items.toArray()[t].focus();let e=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?e.scrollLeft=0:e.scrollLeft=e.scrollWidth-e.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let t=this.scrollDistance,e=this._getLayoutDirection()==="ltr"?-t:t;this._tabList.nativeElement.style.transform=`translateX(${Math.round(e)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(t){this._scrollTo(t)}_scrollHeader(t){let e=this._tabListContainer.nativeElement.offsetWidth,a=(t=="before"?-1:1)*e/3;return this._scrollTo(this._scrollDistance+a)}_handlePaginatorClick(t){this._stopInterval(),this._scrollHeader(t)}_scrollToLabel(t){if(this.disablePagination)return;let e=this._items?this._items.toArray()[t]:null;if(!e)return;let a=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:i,offsetWidth:r}=e.elementRef.nativeElement,s,x;this._getLayoutDirection()=="ltr"?(s=i,x=s+r):(x=this._tabListInner.nativeElement.offsetWidth-i,s=x-r);let U=this.scrollDistance,ft=this.scrollDistance+a;s<U?this.scrollDistance-=U-s:x>ft&&(this.scrollDistance+=Math.min(x-ft,s-U))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let t=this._tabListInner.nativeElement.scrollWidth,e=this._elementRef.nativeElement.offsetWidth,a=t-e>=5;a||(this.scrollDistance=0),a!==this._showPaginationControls&&(this._showPaginationControls=a,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=this.scrollDistance==0,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){let t=this._tabListInner.nativeElement.scrollWidth,e=this._tabListContainer.nativeElement.offsetWidth;return t-e||0}_alignInkBarToSelectedTab(){let t=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,e=t?t.elementRef.nativeElement:null;e?this._inkBar.alignToElement(e):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(t,e){e&&e.button!=null&&e.button!==0||(this._stopInterval(),kt(Re,Pe).pipe(M(H(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:a,distance:i}=this._scrollHeader(t);(i===0||i>=a)&&this._stopInterval()}))}_scrollTo(t){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let e=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(e,t)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:e,distance:this._scrollDistance}}static \u0275fac=function(e){return new(e||n)};static \u0275dir=I({type:n,inputs:{disablePagination:[2,"disablePagination","disablePagination",_],selectedIndex:[2,"selectedIndex","selectedIndex",K]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return n})(),Be=(()=>{class n extends Me{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new ht(this._items),super.ngAfterContentInit()}_itemSelected(t){t.preventDefault()}static \u0275fac=(()=>{let t;return function(a){return(t||(t=N(n)))(a||n)}})();static \u0275cmp=B({type:n,selectors:[["mat-tab-header"]],contentQueries:function(e,a,i){if(e&1&&S(i,ae,4),e&2){let r;m(r=b())&&(a._items=r)}},viewQuery:function(e,a){if(e&1&&(p(se,7),p(le,7),p(de,7),p(ce,5),p(me,5)),e&2){let i;m(i=b())&&(a._tabListContainer=i.first),m(i=b())&&(a._tabList=i.first),m(i=b())&&(a._tabListInner=i.first),m(i=b())&&(a._nextPaginator=i.first),m(i=b())&&(a._previousPaginator=i.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(e,a){e&2&&v("mat-mdc-tab-header-pagination-controls-enabled",a._showPaginationControls)("mat-mdc-tab-header-rtl",a._getLayoutDirection()=="rtl")},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",_]},features:[L],ngContentSelectors:ut,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(e,a){if(e&1){let i=E();W(),h(0,"div",5,0),C("click",function(){return d(i),c(a._handlePaginatorClick("before"))})("mousedown",function(s){return d(i),c(a._handlePaginatorPress("before",s))})("touchend",function(){return d(i),c(a._stopInterval())}),j(2,"div",6),y(),h(3,"div",7,1),C("keydown",function(s){return d(i),c(a._handleKeydown(s))}),h(5,"div",8,2),C("cdkObserveContent",function(){return d(i),c(a._onContentChanges())}),h(7,"div",9,3),G(9),y()()(),h(10,"div",10,4),C("mousedown",function(s){return d(i),c(a._handlePaginatorPress("after",s))})("click",function(){return d(i),c(a._handlePaginatorClick("after"))})("touchend",function(){return d(i),c(a._stopInterval())}),j(12,"div",6),y()}e&2&&(v("mat-mdc-tab-header-pagination-disabled",a._disableScrollBefore),T("matRippleDisabled",a._disableScrollBefore||a.disableRipple),f(3),v("_mat-animation-noopable",a._animationsDisabled),f(2),k("aria-label",a.ariaLabel||null)("aria-labelledby",a.ariaLabelledby||null),f(5),v("mat-mdc-tab-header-pagination-disabled",a._disableScrollAfter),T("matRippleDisabled",a._disableScrollAfter||a.disableRipple))},dependencies:[ct,Qt],styles:[`.mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-divider-height, 1px);border-bottom-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-divider-height, 1px);border-top-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mat-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}
1
+ import{S as Ut,e as Ht}from"./chunk-FEXPC4HW.js";import{$b as j,Aa as c,Ab as L,Ac as At,Cb as tt,Ce as ct,Da as Y,Db as Lt,De as Gt,Fb as u,Gb as Q,Hb as z,I as kt,Ja as X,K as H,L as Tt,Le as $t,Mc as A,Na as Rt,Oa as N,Oe as qt,P as Ct,Pe as mt,Qa as R,Ra as Pt,Rb as k,Rd as Vt,Sb as et,Tb as at,Vb as it,Wb as nt,We as Kt,Xb as rt,Xd as st,Xe as Zt,Yb as T,Zb as h,_b as y,_c as Ft,be as Nt,ce as Ot,ea as xt,f as P,fa as V,fd as q,g as w,ga as wt,gc as E,ge as Qt,ha as M,ic as C,j as gt,jd as _,kc as g,kd as K,lb as f,lc as W,m as F,mc as G,me as zt,nb as O,nc as S,ne as jt,oa as It,oc as p,pa as Dt,pb as J,pc as m,pe as Wt,qc as b,r as vt,ra as D,sb as Mt,t as yt,ta as o,te as lt,uc as ot,ue as dt,vc as Et,wb as B,wc as v,xb as Bt,xe as Z,yb as I,yc as $,za as d,zc as St}from"./chunk-H5OPY2IR.js";var ut=["*"];function oe(n,l){n&1&&G(0)}var se=["tabListContainer"],le=["tabList"],de=["tabListInner"],ce=["nextPaginator"],me=["previousPaginator"],be=["content"];function he(n,l){}var pe=["tabBodyWrapper"],_e=["tabHeader"];function ue(n,l){}function fe(n,l){if(n&1&&tt(0,ue,0,0,"ng-template",12),n&2){let t=g().$implicit;T("cdkPortalOutlet",t.templateLabel)}}function ge(n,l){if(n&1&&St(0),n&2){let t=g().$implicit;At(t.textLabel)}}function ve(n,l){if(n&1){let t=E();h(0,"div",7,2),C("click",function(){let a=d(t),i=a.$implicit,r=a.$index,s=g(),x=ot(1);return c(s._handleClick(i,x,r))})("cdkFocusChange",function(a){let i=d(t).$index,r=g();return c(r._tabFocusChanged(a,i))}),j(2,"span",8)(3,"div",9),h(4,"span",10)(5,"span",11),et(6,fe,1,1,null,12)(7,ge,1,1),y()()()}if(n&2){let t=l.$implicit,e=l.$index,a=ot(1),i=g();$(t.labelClass),v("mdc-tab--active",i.selectedIndex===e),T("id",i._getTabLabelId(t,e))("disabled",t.disabled)("fitInkBarToContent",i.fitInkBarToContent),k("tabIndex",i._getTabIndex(e))("aria-posinset",e+1)("aria-setsize",i._tabs.length)("aria-controls",i._getTabContentId(e))("aria-selected",i.selectedIndex===e)("aria-label",t.ariaLabel||null)("aria-labelledby",!t.ariaLabel&&t.ariaLabelledby?t.ariaLabelledby:null),f(3),T("matRippleTrigger",a)("matRippleDisabled",t.disabled||i.disableRipple),f(3),at(t.templateLabel?6:7)}}function ye(n,l){n&1&&G(0)}function ke(n,l){if(n&1){let t=E();h(0,"mat-tab-body",13),C("_onCentered",function(){d(t);let a=g();return c(a._removeTabBodyWrapperHeight())})("_onCentering",function(a){d(t);let i=g();return c(i._setTabBodyWrapperHeight(a))})("_beforeCentering",function(a){d(t);let i=g();return c(i._bodyCentered(a))}),y()}if(n&2){let t=l.$implicit,e=l.$index,a=g();$(t.bodyClass),T("id",a._getTabContentId(e))("content",t.content)("position",t.position)("animationDuration",a.animationDuration)("preserveContent",a.preserveContent),k("tabindex",a.contentTabIndex!=null&&a.selectedIndex===e?a.contentTabIndex:null)("aria-labelledby",a._getTabLabelId(t,e))("aria-hidden",a.selectedIndex!==e)}}var Te=new D("MatTabContent"),Ce=(()=>{class n{template=o(O);constructor(){}static \u0275fac=function(e){return new(e||n)};static \u0275dir=I({type:n,selectors:[["","matTabContent",""]],features:[A([{provide:Te,useExisting:n}])]})}return n})(),xe=new D("MatTabLabel"),te=new D("MAT_TAB"),we=(()=>{class n extends qt{_closestTab=o(te,{optional:!0});static \u0275fac=(()=>{let t;return function(a){return(t||(t=N(n)))(a||n)}})();static \u0275dir=I({type:n,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[A([{provide:xe,useExisting:n}]),L]})}return n})(),ee=new D("MAT_TAB_GROUP"),Ie=(()=>{class n{_viewContainerRef=o(Mt);_closestTabGroup=o(ee,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(t){this._setTemplateLabelInput(t)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;id=null;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new F;position=null;origin=null;isActive=!1;constructor(){o(Ot).load(Gt)}ngOnChanges(t){(t.hasOwnProperty("textLabel")||t.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new $t(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(t){t&&t._closestTab===this&&(this._templateLabel=t)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=B({type:n,selectors:[["mat-tab"]],contentQueries:function(e,a,i){if(e&1&&(S(i,we,5),S(i,Ce,7,O)),e&2){let r;m(r=b())&&(a.templateLabel=r.first),m(r=b())&&(a._explicitContent=r.first)}},viewQuery:function(e,a){if(e&1&&p(O,7),e&2){let i;m(i=b())&&(a._implicitContent=i.first)}},hostAttrs:["hidden",""],hostVars:1,hostBindings:function(e,a){e&2&&k("id",null)},inputs:{disabled:[2,"disabled","disabled",_],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass",id:"id"},exportAs:["matTab"],features:[A([{provide:te,useExisting:n}]),Rt],ngContentSelectors:ut,decls:1,vars:0,template:function(e,a){e&1&&(W(),Lt(0,oe,1,0,"ng-template"))},encapsulation:2})}return n})(),bt="mdc-tab-indicator--active",Yt="mdc-tab-indicator--no-transition",ht=class{_items;_currentItem;constructor(l){this._items=l}hide(){this._items.forEach(l=>l.deactivateInkBar()),this._currentItem=void 0}alignToElement(l){let t=this._items.find(a=>a.elementRef.nativeElement===l),e=this._currentItem;if(t!==e&&(e?.deactivateInkBar(),t)){let a=e?.elementRef.nativeElement.getBoundingClientRect?.();t.activateInkBar(a),this._currentItem=t}}},De=(()=>{class n{_elementRef=o(R);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(t){this._fitToContent!==t&&(this._fitToContent=t,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(t){let e=this._elementRef.nativeElement;if(!t||!e.getBoundingClientRect||!this._inkBarContentElement){e.classList.add(bt);return}let a=e.getBoundingClientRect(),i=t.width/a.width,r=t.left-a.left;e.classList.add(Yt),this._inkBarContentElement.style.setProperty("transform",`translateX(${r}px) scaleX(${i})`),e.getBoundingClientRect(),e.classList.remove(Yt),e.classList.add(bt),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(bt)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let t=this._elementRef.nativeElement.ownerDocument||document,e=this._inkBarElement=t.createElement("span"),a=this._inkBarContentElement=t.createElement("span");e.className="mdc-tab-indicator",a.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",e.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let t=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;t.appendChild(this._inkBarElement)}static \u0275fac=function(e){return new(e||n)};static \u0275dir=I({type:n,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",_]}})}return n})();var ae=(()=>{class n extends De{elementRef=o(R);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let t;return function(a){return(t||(t=N(n)))(a||n)}})();static \u0275dir=I({type:n,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(e,a){e&2&&(k("aria-disabled",!!a.disabled),v("mat-mdc-tab-disabled",a.disabled))},inputs:{disabled:[2,"disabled","disabled",_]},features:[L]})}return n})(),Xt={passive:!0},Re=650,Pe=100,Me=(()=>{class n{_elementRef=o(R);_changeDetectorRef=o(q);_viewportRuler=o(Zt);_dir=o(lt,{optional:!0});_ngZone=o(Q);_platform=o(st);_sharedResizeObserver=o(Ut);_injector=o(Y);_renderer=o(J);_animationsDisabled=Z();_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new F;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new F;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(t){let e=isNaN(t)?0:t;this._selectedIndex!=e&&(this._selectedIndexChanged=!0,this._selectedIndex=e,this._keyManager&&this._keyManager.updateActiveItem(e))}_selectedIndex=0;selectFocusedIndex=new u;indexFocused=new u;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(this._renderer.listen(this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),Xt),this._renderer.listen(this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),Xt))}ngAfterContentInit(){let t=this._dir?this._dir.change:yt("ltr"),e=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(Ct(32),M(this._destroyed)),a=this._viewportRuler.change(150).pipe(M(this._destroyed)),i=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new Wt(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(Math.max(this._selectedIndex,0)),z(i,{injector:this._injector}),H(t,a,e,this._items.changes,this._itemsResized()).pipe(M(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),i()})}),this._keyManager?.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(r=>{this.indexFocused.emit(r),this._setTabFocus(r)})}_itemsResized(){return typeof ResizeObserver!="function"?vt:this._items.changes.pipe(V(this._items),wt(t=>new gt(e=>this._ngZone.runOutsideAngular(()=>{let a=new ResizeObserver(i=>e.next(i));return t.forEach(i=>a.observe(i.elementRef.nativeElement)),()=>{a.disconnect()}}))),xt(1),Tt(t=>t.some(e=>e.contentRect.width>0&&e.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._eventCleanups.forEach(t=>t()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(t){if(!jt(t))switch(t.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let e=this._items.get(this.focusIndex);e&&!e.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(t))}break;default:this._keyManager?.onKeydown(t)}}_onContentChanges(){let t=this._elementRef.nativeElement.textContent;t!==this._currentTextContent&&(this._currentTextContent=t||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(t){!this._isValidIndex(t)||this.focusIndex===t||!this._keyManager||this._keyManager.setActiveItem(t)}_isValidIndex(t){return this._items?!!this._items.toArray()[t]:!0}_setTabFocus(t){if(this._showPaginationControls&&this._scrollToLabel(t),this._items&&this._items.length){this._items.toArray()[t].focus();let e=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?e.scrollLeft=0:e.scrollLeft=e.scrollWidth-e.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let t=this.scrollDistance,e=this._getLayoutDirection()==="ltr"?-t:t;this._tabList.nativeElement.style.transform=`translateX(${Math.round(e)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(t){this._scrollTo(t)}_scrollHeader(t){let e=this._tabListContainer.nativeElement.offsetWidth,a=(t=="before"?-1:1)*e/3;return this._scrollTo(this._scrollDistance+a)}_handlePaginatorClick(t){this._stopInterval(),this._scrollHeader(t)}_scrollToLabel(t){if(this.disablePagination)return;let e=this._items?this._items.toArray()[t]:null;if(!e)return;let a=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:i,offsetWidth:r}=e.elementRef.nativeElement,s,x;this._getLayoutDirection()=="ltr"?(s=i,x=s+r):(x=this._tabListInner.nativeElement.offsetWidth-i,s=x-r);let U=this.scrollDistance,ft=this.scrollDistance+a;s<U?this.scrollDistance-=U-s:x>ft&&(this.scrollDistance+=Math.min(x-ft,s-U))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let t=this._tabListInner.nativeElement.scrollWidth,e=this._elementRef.nativeElement.offsetWidth,a=t-e>=5;a||(this.scrollDistance=0),a!==this._showPaginationControls&&(this._showPaginationControls=a,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=this.scrollDistance==0,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){let t=this._tabListInner.nativeElement.scrollWidth,e=this._tabListContainer.nativeElement.offsetWidth;return t-e||0}_alignInkBarToSelectedTab(){let t=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,e=t?t.elementRef.nativeElement:null;e?this._inkBar.alignToElement(e):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(t,e){e&&e.button!=null&&e.button!==0||(this._stopInterval(),kt(Re,Pe).pipe(M(H(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:a,distance:i}=this._scrollHeader(t);(i===0||i>=a)&&this._stopInterval()}))}_scrollTo(t){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let e=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(e,t)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:e,distance:this._scrollDistance}}static \u0275fac=function(e){return new(e||n)};static \u0275dir=I({type:n,inputs:{disablePagination:[2,"disablePagination","disablePagination",_],selectedIndex:[2,"selectedIndex","selectedIndex",K]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return n})(),Be=(()=>{class n extends Me{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new ht(this._items),super.ngAfterContentInit()}_itemSelected(t){t.preventDefault()}static \u0275fac=(()=>{let t;return function(a){return(t||(t=N(n)))(a||n)}})();static \u0275cmp=B({type:n,selectors:[["mat-tab-header"]],contentQueries:function(e,a,i){if(e&1&&S(i,ae,4),e&2){let r;m(r=b())&&(a._items=r)}},viewQuery:function(e,a){if(e&1&&(p(se,7),p(le,7),p(de,7),p(ce,5),p(me,5)),e&2){let i;m(i=b())&&(a._tabListContainer=i.first),m(i=b())&&(a._tabList=i.first),m(i=b())&&(a._tabListInner=i.first),m(i=b())&&(a._nextPaginator=i.first),m(i=b())&&(a._previousPaginator=i.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(e,a){e&2&&v("mat-mdc-tab-header-pagination-controls-enabled",a._showPaginationControls)("mat-mdc-tab-header-rtl",a._getLayoutDirection()=="rtl")},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",_]},features:[L],ngContentSelectors:ut,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(e,a){if(e&1){let i=E();W(),h(0,"div",5,0),C("click",function(){return d(i),c(a._handlePaginatorClick("before"))})("mousedown",function(s){return d(i),c(a._handlePaginatorPress("before",s))})("touchend",function(){return d(i),c(a._stopInterval())}),j(2,"div",6),y(),h(3,"div",7,1),C("keydown",function(s){return d(i),c(a._handleKeydown(s))}),h(5,"div",8,2),C("cdkObserveContent",function(){return d(i),c(a._onContentChanges())}),h(7,"div",9,3),G(9),y()()(),h(10,"div",10,4),C("mousedown",function(s){return d(i),c(a._handlePaginatorPress("after",s))})("click",function(){return d(i),c(a._handlePaginatorClick("after"))})("touchend",function(){return d(i),c(a._stopInterval())}),j(12,"div",6),y()}e&2&&(v("mat-mdc-tab-header-pagination-disabled",a._disableScrollBefore),T("matRippleDisabled",a._disableScrollBefore||a.disableRipple),f(3),v("_mat-animation-noopable",a._animationsDisabled),f(2),k("aria-label",a.ariaLabel||null)("aria-labelledby",a.ariaLabelledby||null),f(5),v("mat-mdc-tab-header-pagination-disabled",a._disableScrollAfter),T("matRippleDisabled",a._disableScrollAfter||a.disableRipple))},dependencies:[ct,Qt],styles:[`.mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-divider-height, 1px);border-bottom-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-divider-height, 1px);border-top-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mat-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}
2
2
  `],encapsulation:2})}return n})(),Le=new D("MAT_TABS_CONFIG"),Jt=(()=>{class n extends mt{_host=o(pt);_centeringSub=w.EMPTY;_leavingSub=w.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(V(this._host._isCenterPosition())).subscribe(t=>{this._host._content&&t&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(e){return new(e||n)};static \u0275dir=I({type:n,selectors:[["","matTabBodyHost",""]],features:[L]})}return n})(),pt=(()=>{class n{_elementRef=o(R);_dir=o(lt,{optional:!0});_ngZone=o(Q);_injector=o(Y);_renderer=o(J);_diAnimationsDisabled=Z();_eventCleanups;_initialized;_fallbackTimer;_positionIndex;_dirChangeSubscription=w.EMPTY;_position;_previousPosition;_onCentering=new u;_beforeCentering=new u;_afterLeavingCenter=new u;_onCentered=new u(!0);_portalHost;_contentElement;_content;animationDuration="500ms";preserveContent=!1;set position(t){this._positionIndex=t,this._computePositionAnimationState()}constructor(){if(this._dir){let t=o(q);this._dirChangeSubscription=this._dir.change.subscribe(e=>{this._computePositionAnimationState(e),t.markForCheck()})}}ngOnInit(){this._bindTransitionEvents(),this._position==="center"&&(this._setActiveClass(!0),z(()=>this._onCentering.emit(this._elementRef.nativeElement.clientHeight),{injector:this._injector})),this._initialized=!0}ngOnDestroy(){clearTimeout(this._fallbackTimer),this._eventCleanups?.forEach(t=>t()),this._dirChangeSubscription.unsubscribe()}_bindTransitionEvents(){this._ngZone.runOutsideAngular(()=>{let t=this._elementRef.nativeElement,e=a=>{a.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.remove("mat-tab-body-animating"),a.type==="transitionend"&&this._transitionDone())};this._eventCleanups=[this._renderer.listen(t,"transitionstart",a=>{a.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.add("mat-tab-body-animating"),this._transitionStarted())}),this._renderer.listen(t,"transitionend",e),this._renderer.listen(t,"transitioncancel",e)]})}_transitionStarted(){clearTimeout(this._fallbackTimer);let t=this._position==="center";this._beforeCentering.emit(t),t&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_transitionDone(){this._position==="center"?this._onCentered.emit():this._previousPosition==="center"&&this._afterLeavingCenter.emit()}_setActiveClass(t){this._elementRef.nativeElement.classList.toggle("mat-mdc-tab-body-active",t)}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_isCenterPosition(){return this._positionIndex===0}_computePositionAnimationState(t=this._getLayoutDirection()){this._previousPosition=this._position,this._positionIndex<0?this._position=t=="ltr"?"left":"right":this._positionIndex>0?this._position=t=="ltr"?"right":"left":this._position="center",this._animationsDisabled()?this._simulateTransitionEvents():this._initialized&&(this._position==="center"||this._previousPosition==="center")&&(clearTimeout(this._fallbackTimer),this._fallbackTimer=this._ngZone.runOutsideAngular(()=>setTimeout(()=>this._simulateTransitionEvents(),100)))}_simulateTransitionEvents(){this._transitionStarted(),z(()=>this._transitionDone(),{injector:this._injector})}_animationsDisabled(){return this._diAnimationsDisabled||this.animationDuration==="0ms"||this.animationDuration==="0s"}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=B({type:n,selectors:[["mat-tab-body"]],viewQuery:function(e,a){if(e&1&&(p(Jt,5),p(be,5)),e&2){let i;m(i=b())&&(a._portalHost=i.first),m(i=b())&&(a._contentElement=i.first)}},hostAttrs:[1,"mat-mdc-tab-body"],hostVars:1,hostBindings:function(e,a){e&2&&k("inert",a._position==="center"?null:"")},inputs:{_content:[0,"content","_content"],animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(e,a){e&1&&(h(0,"div",1,0),tt(2,he,0,0,"ng-template",2),y()),e&2&&v("mat-tab-body-content-left",a._position==="left")("mat-tab-body-content-right",a._position==="right")("mat-tab-body-content-can-animate",a._position==="center"||a._previousPosition==="center")},dependencies:[Jt,Kt],styles:[`.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto;transform:none;visibility:hidden}.mat-tab-body-animating>.mat-mdc-tab-body-content,.mat-mdc-tab-body-active>.mat-mdc-tab-body-content{visibility:visible}.mat-tab-body-animating>.mat-mdc-tab-body-content{min-height:1px}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-tab-body-content-can-animate{transition:transform var(--mat-tab-animation-duration) 1ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable .mat-tab-body-content-can-animate{transition:none}.mat-tab-body-content-left{transform:translate3d(-100%, 0, 0)}.mat-tab-body-content-right{transform:translate3d(100%, 0, 0)}
3
3
  `],encapsulation:2})}return n})(),ba=(()=>{class n{_elementRef=o(R);_changeDetectorRef=o(q);_ngZone=o(Q);_tabsSubscription=w.EMPTY;_tabLabelSubscription=w.EMPTY;_tabBodySubscription=w.EMPTY;_diAnimationsDisabled=Z();_allTabs;_tabBodies;_tabBodyWrapper;_tabHeader;_tabs=new Pt;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(t){this._fitInkBarToContent=t,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(t){this._indexToSelect=isNaN(t)?null:t}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(t){let e=t+"";this._animationDuration=/^\d+$/.test(e)?t+"ms":e}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(t){this._contentTabIndex=isNaN(t)?null:t}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(t){let e=this._elementRef.nativeElement.classList;e.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),t&&e.add("mat-tabs-with-background",`mat-background-${t}`),this._backgroundColor=t}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new u;focusChange=new u;animationDone=new u;selectedTabChange=new u(!0);_groupId;_isServer=!o(st).isBrowser;constructor(){let t=o(Le,{optional:!0});this._groupId=o(zt).getId("mat-tab-group-"),this.animationDuration=t&&t.animationDuration?t.animationDuration:"500ms",this.disablePagination=t&&t.disablePagination!=null?t.disablePagination:!1,this.dynamicHeight=t&&t.dynamicHeight!=null?t.dynamicHeight:!1,t?.contentTabIndex!=null&&(this.contentTabIndex=t.contentTabIndex),this.preserveContent=!!t?.preserveContent,this.fitInkBarToContent=t&&t.fitInkBarToContent!=null?t.fitInkBarToContent:!1,this.stretchTabs=t&&t.stretchTabs!=null?t.stretchTabs:!0,this.alignTabs=t&&t.alignTabs!=null?t.alignTabs:null}ngAfterContentChecked(){let t=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=t){let e=this._selectedIndex==null;if(!e){this.selectedTabChange.emit(this._createChangeEvent(t));let a=this._tabBodyWrapper.nativeElement;a.style.minHeight=a.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((a,i)=>a.isActive=i===t),e||(this.selectedIndexChange.emit(t),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((e,a)=>{e.position=a-t,this._selectedIndex!=null&&e.position==0&&!e.origin&&(e.origin=t-this._selectedIndex)}),this._selectedIndex!==t&&(this._selectedIndex=t,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{let t=this._clampTabIndex(this._indexToSelect);if(t===this._selectedIndex){let e=this._tabs.toArray(),a;for(let i=0;i<e.length;i++)if(e[i].isActive){this._indexToSelect=this._selectedIndex=i,this._lastFocusedTabIndex=null,a=e[i];break}!a&&e[t]&&Promise.resolve().then(()=>{e[t].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(t))})}this._changeDetectorRef.markForCheck()})}ngAfterViewInit(){this._tabBodySubscription=this._tabBodies.changes.subscribe(()=>this._bodyCentered(!0))}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(V(this._allTabs)).subscribe(t=>{this._tabs.reset(t.filter(e=>e._closestTabGroup===this||!e._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe(),this._tabBodySubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(t){let e=this._tabHeader;e&&(e.focusIndex=t)}_focusChanged(t){this._lastFocusedTabIndex=t,this.focusChange.emit(this._createChangeEvent(t))}_createChangeEvent(t){let e=new _t;return e.index=t,this._tabs&&this._tabs.length&&(e.tab=this._tabs.toArray()[t]),e}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=H(...this._tabs.map(t=>t._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(t){return Math.min(this._tabs.length-1,Math.max(t||0,0))}_getTabLabelId(t,e){return t.id||`${this._groupId}-label-${e}`}_getTabContentId(t){return`${this._groupId}-content-${t}`}_setTabBodyWrapperHeight(t){if(!this.dynamicHeight||!this._tabBodyWrapperHeight){this._tabBodyWrapperHeight=t;return}let e=this._tabBodyWrapper.nativeElement;e.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(e.style.height=t+"px")}_removeTabBodyWrapperHeight(){let t=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=t.clientHeight,t.style.height="",this._ngZone.run(()=>this.animationDone.emit())}_handleClick(t,e,a){e.focusIndex=a,t.disabled||(this.selectedIndex=a)}_getTabIndex(t){let e=this._lastFocusedTabIndex??this.selectedIndex;return t===e?0:-1}_tabFocusChanged(t,e){t&&t!=="mouse"&&t!=="touch"&&(this._tabHeader.focusIndex=e)}_bodyCentered(t){t&&this._tabBodies?.forEach((e,a)=>e._setActiveClass(a===this._selectedIndex))}_animationsDisabled(){return this._diAnimationsDisabled||this.animationDuration==="0"||this.animationDuration==="0ms"}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=B({type:n,selectors:[["mat-tab-group"]],contentQueries:function(e,a,i){if(e&1&&S(i,Ie,5),e&2){let r;m(r=b())&&(a._allTabs=r)}},viewQuery:function(e,a){if(e&1&&(p(pe,5),p(_e,5),p(pt,5)),e&2){let i;m(i=b())&&(a._tabBodyWrapper=i.first),m(i=b())&&(a._tabHeader=i.first),m(i=b())&&(a._tabBodies=i)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(e,a){e&2&&(k("mat-align-tabs",a.alignTabs),$("mat-"+(a.color||"primary")),Et("--mat-tab-animation-duration",a.animationDuration),v("mat-mdc-tab-group-dynamic-height",a.dynamicHeight)("mat-mdc-tab-group-inverted-header",a.headerPosition==="below")("mat-mdc-tab-group-stretch-tabs",a.stretchTabs))},inputs:{color:"color",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",_],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",_],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",_],selectedIndex:[2,"selectedIndex","selectedIndex",K],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",K],disablePagination:[2,"disablePagination","disablePagination",_],disableRipple:[2,"disableRipple","disableRipple",_],preserveContent:[2,"preserveContent","preserveContent",_],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[A([{provide:ee,useExisting:n}])],ngContentSelectors:ut,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","class","content","position","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","_beforeCentering","id","content","position","animationDuration","preserveContent"]],template:function(e,a){if(e&1){let i=E();W(),h(0,"mat-tab-header",3,0),C("indexFocused",function(s){return d(i),c(a._focusChanged(s))})("selectFocusedIndex",function(s){return d(i),c(a.selectedIndex=s)}),nt(2,ve,8,17,"div",4,it),y(),et(4,ye,1,0),h(5,"div",5,1),nt(7,ke,1,10,"mat-tab-body",6,it),y()}e&2&&(T("selectedIndex",a.selectedIndex||0)("disableRipple",a.disableRipple)("disablePagination",a.disablePagination)("aria-label",a.ariaLabel)("aria-labelledby",a.ariaLabelledby),f(2),rt(a._tabs),f(2),at(a._isServer?4:-1),f(),v("_mat-animation-noopable",a._animationsDisabled()),f(2),rt(a._tabs))},dependencies:[Be,ae,Nt,ct,mt,pt],styles:[`.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1;touch-action:manipulation}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mat-tab-container-height, 48px);font-family:var(--mat-tab-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mat-tab-active-indicator-height, 2px);border-radius:var(--mat-tab-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-disabled-ripple-color, var(--mat-sys-on-surface-variant))}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}
4
4
  `],encapsulation:2})}return n})(),_t=class{index;tab};var ha=(()=>{class n{static \u0275fac=function(e){return new(e||n)};static \u0275mod=Bt({type:n});static \u0275inj=Dt({imports:[dt,dt]})}return n})();var va=(()=>{class n{_TRACKED_PLUGINS=[{id:"derived-data",versionRequirement:null},{id:"signalk-autostate",versionRequirement:null},{id:"signalk-polar-performance-plugin",versionRequirement:null},{id:"autopilot",versionRequirement:null}];_connectionSvc=o(Ht);_API_URL=X(null);_connection=Vt(this._connectionSvc.getServiceEndpointStatusAsO());_pluginInformation=Ft({loader:e=>P(this,[e],function*({abortSignal:t}){let a=this._API_URL();if(!a)return console.error("API URL not set yet."),[];try{let i=yield fetch(a,{signal:t});return i.ok?yield i.json():(console.error("[SkPlugin Service] Error fetching plugin information:",i.statusText),[])}catch(i){return console.error("[SkPlugin Service] Error fetching plugin information:",i),[]}})});constructor(){this._API_URL.set(`${this._connectionSvc.signalKURL.url}/signalk/v2/features?enabled=enabled`)}getPluginInformation(){return P(this,null,function*(){for(this._pluginInformation.reload();this._pluginInformation.isLoading();)yield new Promise(t=>setTimeout(t,100));return this._pluginInformation.value()?.plugins||[]})}isInstalled(t){return P(this,null,function*(){let e=yield this.getPluginInformation();return!e||e.length===0?!1:e.some(a=>a.id===t)})}isEnabled(t){return P(this,null,function*(){let e=yield this.getPluginInformation();return!e||e.length===0?!1:e.some(a=>a.id===t&&a.enabled)})}static \u0275fac=function(e){return new(e||n)};static \u0275prov=It({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();export{va as a,we as b,Ie as c,ba as d,ha as e};