@mxtommy/kip 3.11.0 → 3.12.0

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 (55) hide show
  1. package/CHANGELOG.md +16 -2
  2. package/README.md +6 -6
  3. package/package.json +1 -1
  4. package/public/3rdpartylicenses.txt +61 -61
  5. package/public/assets/help-docs/community.md +78 -0
  6. package/public/assets/help-docs/configuration.md +1 -1
  7. package/public/assets/help-docs/contact-us.md +58 -8
  8. package/public/assets/help-docs/dashboards.md +117 -42
  9. package/public/assets/help-docs/datainspector.md +1 -1
  10. package/public/assets/help-docs/datasets.md +1 -1
  11. package/public/assets/help-docs/embedwidget.md +1 -1
  12. package/public/assets/help-docs/grafana.md +1 -1
  13. package/public/assets/help-docs/influxdb.md +1 -1
  14. package/public/assets/help-docs/kiosk.md +17 -1
  15. package/public/assets/help-docs/menu.json +4 -3
  16. package/public/assets/help-docs/putcontrols.md +5 -5
  17. package/public/assets/help-docs/welcome.md +46 -23
  18. package/public/assets/help-docs/zones.md +1 -1
  19. package/public/assets/svg/icons.svg +18 -18
  20. package/public/{chunk-K4BST2XF.js → chunk-3LKIOGV7.js} +1 -1
  21. package/public/{chunk-FPMCI7XZ.js → chunk-65TR3CWM.js} +1 -1
  22. package/public/{chunk-G4B4D3XR.js → chunk-6MRJ4C55.js} +1 -1
  23. package/public/{chunk-KPOCVRYH.js → chunk-7S37JBY2.js} +1 -1
  24. package/public/chunk-A5CYPNMD.js +2 -0
  25. package/public/chunk-BSAAN2EI.js +2 -0
  26. package/public/{chunk-2MAVQD65.js → chunk-CDPHRRZR.js} +1 -1
  27. package/public/{chunk-P4K222SI.js → chunk-D4DROTBC.js} +7 -7
  28. package/public/{chunk-PYBIMDD3.js → chunk-D4MWDRNW.js} +1 -1
  29. package/public/chunk-EPTIEPMQ.js +4 -0
  30. package/public/chunk-F5X5MWHG.js +0 -0
  31. package/public/{chunk-XE352AKG.js → chunk-I454VRMK.js} +1 -1
  32. package/public/chunk-IQG4DDQX.js +1 -0
  33. package/public/{chunk-VZ77T3BF.js → chunk-K5OOC3CF.js} +3 -3
  34. package/public/{chunk-IZAPOSYM.js → chunk-NOLKBYOV.js} +1 -1
  35. package/public/chunk-QOXZFV6P.js +47 -0
  36. package/public/{chunk-GMZROOAF.js → chunk-RMLGKVWE.js} +1 -1
  37. package/public/chunk-T6TC7KWG.js +1 -0
  38. package/public/{chunk-6NRGS3BZ.js → chunk-UHKP2PC3.js} +1 -1
  39. package/public/{chunk-I6UWIF55.js → chunk-UTCRLFYC.js} +1 -1
  40. package/public/{chunk-XFU5YJJP.js → chunk-VEJNBHWJ.js} +1 -1
  41. package/public/{chunk-F4VOQO2M.js → chunk-XLJT6YPP.js} +1 -1
  42. package/public/chunk-YCW2UBVQ.js +1 -0
  43. package/public/{chunk-ANRGX57I.js → chunk-YPUCOH35.js} +12 -12
  44. package/public/chunk-YVLZ2UAQ.js +2 -0
  45. package/public/{chunk-5MLB3PYZ.js → chunk-Z5MCM3TT.js} +10 -10
  46. package/public/{chunk-EJ4JM3HG.js → chunk-ZEV6YXHP.js} +1 -1
  47. package/public/{chunk-TIXQ3FAF.js → chunk-ZPCYFQPB.js} +1 -1
  48. package/public/index.html +1 -1
  49. package/public/main-7TSLA2U5.js +5 -0
  50. package/public/chunk-66OJ5PZF.js +0 -2
  51. package/public/chunk-GIZH6HIB.js +0 -2
  52. package/public/chunk-N3HCHSSE.js +0 -2
  53. package/public/chunk-S4OKR5KN.js +0 -1
  54. package/public/chunk-TARCFDF4.js +0 -4
  55. package/public/main-KP322K7A.js +0 -51
@@ -1,4 +1,4 @@
1
- # 5 Minutes with Graphana
1
+ ## 5 Minutes with Graphana
2
2
  Introduction to using Graphana (by Boating with the Baileys)
3
3
 
4
4
  [![Watch the video](https://img.youtube.com/vi/b3lHwLnYgx0/0.jpg)](https://www.youtube.com/watch?v=b3lHwLnYgx0)
@@ -1,4 +1,4 @@
1
- # Signal K to InfluxDB
1
+ ## Signal K to InfluxDB
2
2
  Database to store historical data (by Boating with the Baileys)
3
3
 
4
4
  [![Watch the video](https://img.youtube.com/vi/ULnN-cByQXE/0.jpg)](https://www.youtube.com/watch?v=ULnN-cByQXE)
@@ -1,4 +1,4 @@
1
- # Raspberry Pi Kiosk Mode (Chromium)
1
+ ## Raspberry Pi Kiosk Mode (Chromium)
2
2
 
3
3
  This guide launches Chromium in kiosk mode to display KIP at:
4
4
  http://<sk_server_IP>:3000/@mxtommy/kip/#/page/0
@@ -99,6 +99,22 @@ exec "$BROWSER" \
99
99
  --app="$URL"
100
100
  ```
101
101
 
102
+ Optionally, you can also add the following `exec "BROWSER" \` flags:
103
+
104
+ Force Chromium to keep all threads active and not optimyze resource usage
105
+ ```
106
+ --disable-background-timer-throttling \
107
+ --disable-renderer-backgrounding \
108
+ --disable-backgrounding-occluded-windows
109
+ ```
110
+
111
+ Reduce memory consumption (Pi Zero)
112
+ ```
113
+ --disable-gpu \
114
+ --single-process \
115
+ --js-flags="--max-old-space-size=512"
116
+ ```
117
+
102
118
  Save, then:
103
119
 
104
120
  ```
@@ -4,11 +4,12 @@
4
4
  { "title": "Dashboards and Layout", "file": "dashboards.md" },
5
5
  { "title": "Zones, Notifications and Highlights", "file": "zones.md" },
6
6
  { "title": "Data Inspector", "file": "datainspector.md" },
7
- { "title": "Updating Signal K data", "file": "putcontrols.md" },
7
+ { "title": "Digital Switching and PUT", "file": "putcontrols.md" },
8
8
  { "title": "The Embed Page Viewer", "file": "embedwidget.md" },
9
9
  { "title": "Datasets and Data Chart Widget", "file": "datasets.md" },
10
- { "title": "Gafana Integration", "file": "grafana.md" },
11
- { "title": "InfluxDB and Signal K", "file": "influxdb.md" },
12
10
  { "title": "Kiosk Mode", "file": "kiosk.md" },
11
+ { "title": "Grafana Integration", "file": "grafana.md" },
12
+ { "title": "InfluxDB and Signal K", "file": "influxdb.md" },
13
+ { "title": "Online Community Content", "file": "community.md" },
13
14
  { "title": "Contact Us", "file": "contact-us.md" }
14
15
  ]
@@ -1,14 +1,14 @@
1
- # Updating Signal K Data with PUT Commands
1
+ ## Digital Switching and using PUT Commands
2
2
 
3
3
  Signal K allows users to update data paths and trigger device reactions. This can include turning a light on or off, dimming it, activating a bilge pump, or other similar actions. This guide explains how to use the Switch Panel or Slider widgets to achieve this, how to verify if a path supports data reception (known as PUT-enabled in Signal K terms), and what is required to enable PUT functionality.
4
4
 
5
5
  ## What is Required to Trigger Device Reactions
6
- For Signal K to accept any data from a client application, the application must be authenticated with a valid security token. Read the **Login & Configurations** help section for details on how to setup login in KIP. By default, sending data to a Signal K path only updates the value and broadcasts it to the network. No actions are taken unless a plugin or handler is configured to respond to the updated value. For example:
7
- - Sending a PUT 'engage' command to `self.steering.autopilot.state` will update the state value, but the autopilot will not engage unless a plugin or handler is set up to process the command and communicate with the hardware.
6
+ For Signal K to accept any data from a client application, the application must be authenticated with a valid security token. Read the **Login & Configurations** help section for details on how to setup login in KIP. By default, sending data to a Signal K path only updates the value and broadcasts it to the network. No actions are taken unless an action handler is configured to respond to the updated value. For example:
7
+ - Sending a PUT 'engage' command to `self.steering.autopilot.state` will update the state value, but the autopilot will not engage unless a handler (the autopilot plugin in this case) is set up to process the command and communicate with the hardware.
8
8
 
9
- To enable actions, you have several options:
9
+ To enable action handles, you have several options:
10
10
  1. **Install a Plugin**:
11
- - The simplest option is to look in Signal K's Appstore. There are many plugins already available in the Signal K ecosystem. Search for the plugin you need, install it, and configure it.
11
+ - The simplest option is to look in Signal K's Appstore. There are many plugins already available in the Signal K ecosystem such as plugins for (Shelly)[https://www.shelly.com], (Sonoff)[https://sonoff.tech/collections/diy-smart-switches] and standard N2K, like the (Yacht Devices)[https://www.yachtd.com] YDCC. Search for the plugin you need, install it, and configure it.
12
12
 
13
13
  2. **Use Node-RED's Signal K PUT Handler**:
14
14
  - Node-RED is a visual and easy-to-learn automation platform installed with Signal K. The Signal K team has created Signal K-specific Node-RED nodes, allowing you to easily automate your vessel. You can find Node-RED in the Webapps section of the Signal K Admin site.
@@ -60,26 +60,49 @@ Save your night vision by automatically switching KIP to day or night mode based
60
60
  KIP supports multiple user profiles, allowing different roles on board—such as captain, skipper, tactician, navigator, or engineer—to tailor the interface to their needs. Profiles can also be used to tie specific configuration arrangements to use cases or device form factors. See the Login & Configurations help sections for mode details.
61
61
 
62
62
  ## Remote Control Other KIP Displays
63
- Control which dashboard is shown on another KIP instance (e.g., a mast display, hard-to-reach screen, or a non‑touch device).
64
-
65
- Use cases
66
- - Mast display: change dashboards from the cockpit.
67
- - Wall/helm screens: toggle dashboards without standing up or reaching for controls.
68
- - Headless/non‑touch: select dashboards when no keyboard/mouse is connected.
69
-
70
- Setup
71
- 1) On the device you want to control (Target KIP)
72
- - Open Options DisplayRemote Control.
73
- - Enable “Allow this KIP dashboard to be managed remotely.”
74
- - Set an Instance Name (easier to recognize later).
75
-
76
- 2) On the device you’ll control from (Controller KIP)
77
- - Open the Actions menu, access Settings and choose Remote Control.
78
- - Pick a device from the list (by Instance Name).
79
- - Choose a dashboard tile to set it active on the target device.
80
-
81
- Notes and tips
82
- - Both devices must connect to the same Signal K server.
83
- - Permissions: you must use an authenticated connection to Signal K user (Connectivity Login to Server toggle).
84
- - If the device list is empty, verify the Target KIP has “Allow this dashboard to be managed remotely” enabled and a name set.
85
- - Changes are sent instantly; the UI shows the currently active dashboard.
63
+ Control which dashboard is shown on another KIP instance (for example: a mast display, a TV or pilot‑house screen that is hard to reach, or a device with no local input hardware).
64
+
65
+ ### Typical Use Cases
66
+ - Mast display: change dashboards from the cockpit without going forward.
67
+ - Salon / TV screen: rotate between navigation and status dashboards easily.
68
+ - Headless / no input device: select dashboards when there is no keyboard/mouse or touch is disabled.
69
+
70
+ ### Requirements
71
+ - Both devices must be connected to the same Signal K server.
72
+ - You must be logged in (authenticated) on both devices (Connectivity tab Login to Server enabled).
73
+ - The target device must explicitly allow remote control (Display tab → Remote Control option group).
74
+
75
+ ### Good Naming Practice
76
+ If multiple devices log in with the same Signal K user to share configuration, they inevitably share the same Instance Name. Whilst being confusing, it will still work. To fix this, you must use different Signal K users and set a descriptive name on each configuration (e.g. Mast Display, Helm Port, Nav Station) so you can identify them quickly.
77
+
78
+ ### Setup
79
+ 1. On the device you want to control (Target KIP)
80
+ - Open: Options → Display → Remote Control.
81
+ - Enable: Allow this KIP dashboard to be managed remotely.
82
+ - Set: Instance Name (this is what will appear in the controller list).
83
+ 2. On the controlling device
84
+ - Open: Actions menu Settings Remote Control.
85
+ - Select the target device by its Instance Name.
86
+ - Click / tap a dashboard tile to activate it on the target device.
87
+
88
+ ### Using Remote Control
89
+ - The currently active dashboard on the target device is highlighted.
90
+ - Switching is usually instantaneous; brief delays can indicate network latency.
91
+ - You can leave the Remote Control panel open to “page” through dashboards live.
92
+
93
+ ### Troubleshooting
94
+ | Problem | What to Check |
95
+ |---------|----------------|
96
+ | Target device not listed | Is remote control enabled there? Is Instance Name set? Both on same Signal K server? |
97
+ | No highlight / not switching | Confirm target device stays online (no sleep / browser closed). Refresh controller panel. |
98
+ | Wrong device switched | Two devices share same Instance Name—rename one. |
99
+ | Works, then stops | Network drop or Signal K reconnect in progress—wait a few seconds or reload. |
100
+
101
+ ### Tips
102
+ - Keep Instance Names short but meaningful (e.g. Mast, Helm, NavTV).
103
+ - For unattended displays, enable the browser’s keep‑awake / no‑sleep features if supported.
104
+ - Combine with Night Mode + per‑profile layouts for role‑specific remote switching.
105
+ - Use different Signal K users if you want fully isolated configurations.
106
+
107
+ ### Privacy / Safety Note
108
+ Anyone with access to a logged‑in controlling KIP instance can switch dashboards on enabled targets. Only enable remote management on displays where that is acceptable.
@@ -1,4 +1,4 @@
1
- # Harness the Power of Data State Notifications
1
+ ## Harness the Power of Data State Notifications
2
2
 
3
3
  Stay informed about your vessel’s data with Signal K’s state notifications. For example, Signal K can flag certain sensor readings—such as depth or temperature—when they reach critical levels. KIP can then visually or audibly alert you. For instance, if the depth drops to 3 meters or less, KIP can highlight this with a warning sound or visual cue. This powerful feature combines **Zones Configuration** and **Notification Methods** in Signal K.
4
4
 
@@ -300,43 +300,43 @@
300
300
  <g stroke-linecap="round" stroke-linejoin="round" stroke="currentColor" stroke-width="0.06"/>
301
301
  <path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M10.3004 7.49991C10.3004 8.4943 9.49426 9.30041 8.49988 9.30041C7.50549 9.30041 6.69938 8.4943 6.69938 7.49991C6.69938 6.50553 7.50549 5.69942 8.49988 5.69942C9.49426 5.69942 10.3004 6.50553 10.3004 7.49991ZM11.205 8C10.9699 9.28029 9.84816 10.2504 8.49988 10.2504C7.1516 10.2504 6.0299 9.28029 5.79473 8H0.5C0.223858 8 0 7.77614 0 7.5C0 7.22386 0.223858 7 0.5 7H5.7947C6.0298 5.71962 7.15154 4.74942 8.49988 4.74942C9.84822 4.74942 10.9699 5.71962 11.2051 7H14.5C14.7761 7 15 7.22386 15 7.5C15 7.77614 14.7761 8 14.5 8H11.205Z" />
302
302
  </svg>
303
+ <svg id="dashboard-beating-starboard" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
304
+ <g id="g9" transform="matrix(-0.70710678,0.70710678,0.70710678,0.70710678,8.8211956,-6.2237242)">
305
+ <path d="M 12,5.9999999 C 16,9.777778 17.777778,15.444445 16,23 H 8.0000001 C 6.2222223,15.444445 8.0000001,9.777778 12,5.9999999 Z" fill="var(--mat-sys-tertiary)" id="path1" style="stroke-width:0.229061" />
306
+ <path id="path7" style="fill:currentColor;fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 12.069681,9.6382333 a 0.96030863,1.0734967 0 0 0 -0.958792,1.0749837 0.96030863,1.0734967 0 0 0 0.958792,1.073188 0.96030863,1.0734967 0 0 0 0.637302,-0.269195 c 3.680548,0.746895 5.386596,6.527297 6.17257,11.243351 h 0.633521 C 19.183957,11.372496 14.186219,9.9876196 12.619992,9.8338481 A 0.96030863,1.0734967 0 0 0 12.069681,9.6382333 Z" />
307
+ </g>
308
+ <path id="rect10" style="fill:currentColor;stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
309
+ </svg>
303
310
  <svg id="dashboard-beating-port" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
304
311
  <g id="g9" transform="rotate(45,15.102102,15.210576)">
305
312
  <path d="M 12,5.9999999 C 16,9.777778 17.777778,15.444445 16,23 H 8.0000001 C 6.2222223,15.444445 8.0000001,9.777778 12,5.9999999 Z" fill="var(--mat-sys-tertiary)" id="path1" style="stroke-width:0.229061" />
306
- <path id="path7" style="fill:var(--mat-sys-primary);fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 12.069681,9.6382333 a 0.96030863,1.0734967 0 0 0 -0.958792,1.0749837 0.96030863,1.0734967 0 0 0 0.958792,1.073188 0.96030863,1.0734967 0 0 0 0.637302,-0.269195 c 3.680548,0.746895 5.386596,6.527297 6.17257,11.243351 h 0.633521 C 19.183957,11.372496 14.186219,9.9876196 12.619992,9.8338481 A 0.96030863,1.0734967 0 0 0 12.069681,9.6382333 Z" />
313
+ <path id="path7" style="fill:currentColor;fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 12.069681,9.6382333 a 0.96030863,1.0734967 0 0 0 -0.958792,1.0749837 0.96030863,1.0734967 0 0 0 0.958792,1.073188 0.96030863,1.0734967 0 0 0 0.637302,-0.269195 c 3.680548,0.746895 5.386596,6.527297 6.17257,11.243351 h 0.633521 C 19.183957,11.372496 14.186219,9.9876196 12.619992,9.8338481 A 0.96030863,1.0734967 0 0 0 12.069681,9.6382333 Z" />
307
314
  </g>
308
- <path id="rect10" style="fill:var(--mat-sys-primary);stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
315
+ <path id="rect10" style="fill:currentColor;stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
309
316
  </svg>
310
317
  <svg id="dashboard-running-starboard" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
311
318
  <g id="g9" transform="matrix(0.70710678,0.70710678,0.70710678,-0.70710678,-9.4726469,18.427727)">
312
319
  <path d="M 12,5.9999999 C 16,9.777778 17.777778,15.444445 16,23 H 8.0000001 C 6.2222223,15.444445 8.0000001,9.777778 12,5.9999999 Z" fill="var(--mat-sys-tertiary)" id="path1" style="stroke-width:0.229061" />
313
- <path id="path7" style="fill:var(--mat-sys-primary);fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 12.069681,9.6382333 a 0.96030863,1.0734967 0 0 0 -0.958792,1.0749837 0.96030863,1.0734967 0 0 0 0.958792,1.073188 0.96030863,1.0734967 0 0 0 0.637302,-0.269195 c 3.680548,0.746895 5.386596,6.527297 6.17257,11.243351 h 0.633521 C 19.183957,11.372496 14.186219,9.9876196 12.619992,9.8338481 A 0.96030863,1.0734967 0 0 0 12.069681,9.6382333 Z" />
320
+ <path id="path7" style="fill:currentColor;fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 12.069681,9.6382333 a 0.96030863,1.0734967 0 0 0 -0.958792,1.0749837 0.96030863,1.0734967 0 0 0 0.958792,1.073188 0.96030863,1.0734967 0 0 0 0.637302,-0.269195 c 3.680548,0.746895 5.386596,6.527297 6.17257,11.243351 h 0.633521 C 19.183957,11.372496 14.186219,9.9876196 12.619992,9.8338481 A 0.96030863,1.0734967 0 0 0 12.069681,9.6382333 Z" />
314
321
  </g>
315
- <path id="rect10" style="fill:var(--mat-sys-primary);stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
322
+ <path id="rect10" style="fill:currentColor;stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
316
323
  </svg>
317
324
  <svg id="dashboard-running-port" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
318
325
  <g id="g9" transform="rotate(135,12.919816,16.146276)">
319
326
  <path d="M 12,5.9999999 C 16,9.777778 17.777778,15.444445 16,23 H 8.0000001 C 6.2222223,15.444445 8.0000001,9.777778 12,5.9999999 Z" fill="var(--mat-sys-tertiary)" id="path1" style="stroke-width:0.229061" />
320
- <path id="path7" style="fill:var(--mat-sys-primary);fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 12.069681,9.6382333 a 0.96030863,1.0734967 0 0 0 -0.958792,1.0749837 0.96030863,1.0734967 0 0 0 0.958792,1.073188 0.96030863,1.0734967 0 0 0 0.637302,-0.269195 c 3.680548,0.746895 5.386596,6.527297 6.17257,11.243351 h 0.633521 C 19.183957,11.372496 14.186219,9.9876196 12.619992,9.8338481 A 0.96030863,1.0734967 0 0 0 12.069681,9.6382333 Z" />
327
+ <path id="path7" style="fill:currentColor;fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 12.069681,9.6382333 a 0.96030863,1.0734967 0 0 0 -0.958792,1.0749837 0.96030863,1.0734967 0 0 0 0.958792,1.073188 0.96030863,1.0734967 0 0 0 0.637302,-0.269195 c 3.680548,0.746895 5.386596,6.527297 6.17257,11.243351 h 0.633521 C 19.183957,11.372496 14.186219,9.9876196 12.619992,9.8338481 A 0.96030863,1.0734967 0 0 0 12.069681,9.6382333 Z" />
321
328
  </g>
322
- <path id="rect10" style="fill:var(--mat-sys-primary);stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
329
+ <path id="rect10" style="fill:currentColor;stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
323
330
  </svg>
324
331
  <svg id="dashboard-reaching-starboard" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
325
332
  <path d="m 3.4612526,13.243576 c 3.769169,4.008113 9.4320004,5.798071 16.9913604,4.036543 l 0.0172,-7.9999815 C 12.918099,7.4861187 7.2476226,9.2517085 3.4612526,13.243576 Z" fill="var(--mat-sys-tertiary)" id="path1" style="stroke-width:0.229061" />
326
- <path id="path7" style="fill:var(--mat-sys-primary);fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 6.7815056,13.059872 a 1.0734967,0.96030863 15.070902 0 1 1.287308,-0.646302 1.0734967,0.96030863 15.070902 0 1 0.786977,1.204856 1.0734967,0.96030863 15.070902 0 1 -0.425644,0.545389 c -0.235789,3.748157 4.9021984,6.898512 9.2516774,8.883693 l -0.164763,0.61172 C 6.6063046,20.380385 6.5685446,15.194457 6.8273026,13.642119 a 1.0734967,0.96030863 15.070902 0 1 -0.0458,-0.582247 z" />
327
- <path id="rect10" style="fill:var(--mat-sys-primary);stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.934501,2.1291734 8.8158206,1.1393855 11.931066,5.2427964 15.04631,1.1393852 Z" />
333
+ <path id="path7" style="fill:currentColor;fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 6.7815056,13.059872 a 1.0734967,0.96030863 15.070902 0 1 1.287308,-0.646302 1.0734967,0.96030863 15.070902 0 1 0.786977,1.204856 1.0734967,0.96030863 15.070902 0 1 -0.425644,0.545389 c -0.235789,3.748157 4.9021984,6.898512 9.2516774,8.883693 l -0.164763,0.61172 C 6.6063046,20.380385 6.5685446,15.194457 6.8273026,13.642119 a 1.0734967,0.96030863 15.070902 0 1 -0.0458,-0.582247 z" />
334
+ <path id="rect10" style="fill:currentColor;stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.934501,2.1291734 8.8158206,1.1393855 11.931066,5.2427964 15.04631,1.1393852 Z" />
328
335
  </svg>
329
336
  <svg id="dashboard-reaching-port" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
330
337
  <path d="m 20.469813,13.243576 c -3.769169,4.008113 -9.432,5.798071 -16.9913604,4.036543 l -0.0172,-7.9999815 C 11.012967,7.4861187 16.683443,9.2517085 20.469813,13.243576 Z" fill="var(--mat-sys-tertiary)" id="path1" style="stroke-width:0.229061" />
331
- <path id="path7" style="fill:var(--mat-sys-primary);fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 17.14956,13.059872 a 0.96030863,1.0734967 74.929098 0 0 -1.287308,-0.646302 0.96030863,1.0734967 74.929098 0 0 -0.786977,1.204856 0.96030863,1.0734967 74.929098 0 0 0.425644,0.545389 c 0.235789,3.748157 -4.902198,6.898512 -9.2516774,8.883693 l 0.164763,0.61172 C 17.324761,20.380385 17.362521,15.194457 17.103763,13.642119 a 0.96030863,1.0734967 74.929098 0 0 0.0458,-0.582247 z" />
332
- <path id="rect10" style="fill:var(--mat-sys-primary);stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
333
- </svg>
334
- <svg id="dashboard-beating-starboard" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
335
- <g id="g9" transform="matrix(-0.70710678,0.70710678,0.70710678,0.70710678,8.8211956,-6.2237242)">
336
- <path d="M 12,5.9999999 C 16,9.777778 17.777778,15.444445 16,23 H 8.0000001 C 6.2222223,15.444445 8.0000001,9.777778 12,5.9999999 Z" fill="var(--mat-sys-tertiary)" id="path1" style="stroke-width:0.229061" />
337
- <path id="path7" style="fill:var(--mat-sys-primary);fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 12.069681,9.6382333 a 0.96030863,1.0734967 0 0 0 -0.958792,1.0749837 0.96030863,1.0734967 0 0 0 0.958792,1.073188 0.96030863,1.0734967 0 0 0 0.637302,-0.269195 c 3.680548,0.746895 5.386596,6.527297 6.17257,11.243351 h 0.633521 C 19.183957,11.372496 14.186219,9.9876196 12.619992,9.8338481 A 0.96030863,1.0734967 0 0 0 12.069681,9.6382333 Z" />
338
- </g>
339
- <path id="rect10" style="fill:var(--mat-sys-primary);stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
338
+ <path id="path7" style="fill:currentColor;fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 17.14956,13.059872 a 0.96030863,1.0734967 74.929098 0 0 -1.287308,-0.646302 0.96030863,1.0734967 74.929098 0 0 -0.786977,1.204856 0.96030863,1.0734967 74.929098 0 0 0.425644,0.545389 c 0.235789,3.748157 -4.902198,6.898512 -9.2516774,8.883693 l 0.164763,0.61172 C 17.324761,20.380385 17.362521,15.194457 17.103763,13.642119 a 0.96030863,1.0734967 74.929098 0 0 0.0458,-0.582247 z" />
339
+ <path id="rect10" style="fill:currentColor;stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
340
340
  </svg>
341
341
  <svg id="dashboard-motor-boat" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
342
342
  <defs>
@@ -351,7 +351,7 @@
351
351
  <path id="water-right-inner" d="M 13.75,24 L 13,19" fill="none" style="stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" />
352
352
  <path id="water-right" d="M 16,24 L 12,10" fill="none" style="stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" />
353
353
  <path id="hull" d="M 12,0 C 16,3.777778 17.777778,9.444445 16,17 H 8 C 6.222222,9.444445 8,3.777778 12,0 Z" fill="var(--mat-sys-tertiary)" style="stroke-width:0.229061" transform="translate(12,8.5) scale(0.8) translate(-12,-8.5)" />
354
- <rect id="engine" x="10.5" y="14" rx="1.25" width="3" height="4" style="fill:var(--mat-sys-primary);fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" transform="translate(12,16) scale(0.8) translate(-12,-16)" />
354
+ <rect id="engine" x="10.5" y="14" rx="1.25" width="3" height="4" style="fill:currentColor;fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" transform="translate(12,16) scale(0.8) translate(-12,-16)" />
355
355
  </svg>
356
356
  <svg id="dashboard-anchored-boat" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
357
357
  <defs>
@@ -1 +1 @@
1
- import{a as c}from"./chunk-GMZROOAF.js";import{b as g}from"./chunk-S4OKR5KN.js";import"./chunk-G4B4D3XR.js";import{n as l}from"./chunk-XFU5YJJP.js";import{h as a,j as r}from"./chunk-GIZH6HIB.js";import"./chunk-IZAPOSYM.js";import{Oa as s,ga as t}from"./chunk-ANRGX57I.js";var v=(()=>{class o{dialog=t(l);auth=t(a);appService=t(g);appSettingsService=t(r);connectionConfig=null;ngOnInit(){this.connectionConfig=this.appSettingsService.getConnectionConfig(),this.openUserCredentialModal("Sign in failed: Incorrect user/password. Enter valide credentials or access the Confifuration/Settings menu, validate the server URL or/and disable the user Sign in option")}openUserCredentialModal(e){this.dialog.open(c,{disableClose:!0,data:{user:this.connectionConfig.loginName,password:this.connectionConfig.loginPassword,error:e}}).afterClosed().subscribe(i=>{i===void 0||!i||(this.connectionConfig.loginName=i.user,this.connectionConfig.loginPassword=i.password,this.appSettingsService.setConnectionConfig(this.connectionConfig),this.serverLogin())})}serverLogin(e){this.auth.login({usr:this.connectionConfig.loginName,pwd:this.connectionConfig.loginPassword,newUrl:e}).then(()=>{this.appSettingsService.reloadApp()}).catch(n=>{n.status==401?(this.openUserCredentialModal("Sign in failed: Invalide user/password. Enter valide credentials"),console.log("[Setting-SignalK Component] Sign in failed: "+n.error.message)):n.status==404?(this.appService.sendSnackbarNotification("Sign in failed: Login API not found at URL. See connection detail status in Configuration/Settings",5e3,!1),console.log("[Setting-SignalK Component] Sign in failed: "+n.error.message)):n.status==0?(this.appService.sendSnackbarNotification("Sign in failed: Cannot reach server at Signal K URL. See connection detail status in Configuration/Settings",5e3,!1),console.log("[Setting-SignalK Component] Sign in failed: Cannot reach server at Signal K URL:"+n.message)):(this.appService.sendSnackbarNotification("Unknown authentication failure: "+JSON.stringify(n),5e3,!1),console.log("[Setting-SignalK Component] Unknown login error response: "+JSON.stringify(n)))})}static \u0275fac=function(n){return new(n||o)};static \u0275cmp=s({type:o,selectors:[["app-widget-login"]],decls:0,vars:0,template:function(n,i){},encapsulation:2})}return o})();export{v as WidgetLoginComponent};
1
+ import{a as c}from"./chunk-RMLGKVWE.js";import{b as g}from"./chunk-YCW2UBVQ.js";import"./chunk-6MRJ4C55.js";import{n as l}from"./chunk-VEJNBHWJ.js";import{h as a,j as r}from"./chunk-A5CYPNMD.js";import"./chunk-NOLKBYOV.js";import{Oa as s,ga as t}from"./chunk-YPUCOH35.js";var v=(()=>{class o{dialog=t(l);auth=t(a);appService=t(g);appSettingsService=t(r);connectionConfig=null;ngOnInit(){this.connectionConfig=this.appSettingsService.getConnectionConfig(),this.openUserCredentialModal("Sign in failed: Incorrect user/password. Enter valide credentials or access the Confifuration/Settings menu, validate the server URL or/and disable the user Sign in option")}openUserCredentialModal(e){this.dialog.open(c,{disableClose:!0,data:{user:this.connectionConfig.loginName,password:this.connectionConfig.loginPassword,error:e}}).afterClosed().subscribe(i=>{i===void 0||!i||(this.connectionConfig.loginName=i.user,this.connectionConfig.loginPassword=i.password,this.appSettingsService.setConnectionConfig(this.connectionConfig),this.serverLogin())})}serverLogin(e){this.auth.login({usr:this.connectionConfig.loginName,pwd:this.connectionConfig.loginPassword,newUrl:e}).then(()=>{this.appSettingsService.reloadApp()}).catch(n=>{n.status==401?(this.openUserCredentialModal("Sign in failed: Invalide user/password. Enter valide credentials"),console.log("[Setting-SignalK Component] Sign in failed: "+n.error.message)):n.status==404?(this.appService.sendSnackbarNotification("Sign in failed: Login API not found at URL. See connection detail status in Configuration/Settings",5e3,!1),console.log("[Setting-SignalK Component] Sign in failed: "+n.error.message)):n.status==0?(this.appService.sendSnackbarNotification("Sign in failed: Cannot reach server at Signal K URL. See connection detail status in Configuration/Settings",5e3,!1),console.log("[Setting-SignalK Component] Sign in failed: Cannot reach server at Signal K URL:"+n.message)):(this.appService.sendSnackbarNotification("Unknown authentication failure: "+JSON.stringify(n),5e3,!1),console.log("[Setting-SignalK Component] Unknown login error response: "+JSON.stringify(n)))})}static \u0275fac=function(n){return new(n||o)};static \u0275cmp=s({type:o,selectors:[["app-widget-login"]],decls:0,vars:0,template:function(n,i){},encapsulation:2})}return o})();export{v as WidgetLoginComponent};
@@ -1,4 +1,4 @@
1
- import{i as It,n as ye}from"./chunk-TIXQ3FAF.js";import{b as bt,g as ft,t as Tt}from"./chunk-XFU5YJJP.js";import{a as st,f as dt,j as mt,k as ke,m as Ct}from"./chunk-GIZH6HIB.js";import{b as vt,e as kt,f as Le}from"./chunk-IZAPOSYM.js";import{$ as Xe,Ab as h,Ad as pt,Bb as u,C as Ue,D as $e,E as be,Ed as Ee,F as We,Fa as f,Fb as de,Ga as ve,Gb as nt,Gd as j,Hb as x,Ia as ce,J as Ke,Jb as J,Kb as ot,La as tt,Lb as rt,Oa as A,Od as q,Pa as X,Pc as lt,Qa as B,Sa as se,U as he,Ua as Te,Ud as K,V as ue,Va as at,Vd as te,W as Ze,Wa as k,X as ne,Xa as H,Xb as O,Xd as gt,Ya as Y,ab as w,ba as _e,bb as Ie,ca as pe,cb as we,da as Z,ea as P,eb as De,f as ie,fb as Re,fe as yt,g as U,ga as r,gb as Pe,gd as Se,ge as xt,hb as g,hc as ct,i as je,ib as b,ic as le,j as me,ja as l,jb as _,ka as m,kb as D,la as Ye,ld as Me,m as Ne,ma as Je,md as ht,na as oe,nd as ee,o as He,oc as z,p as Ge,q as Qe,qc as d,ra as re,rb as F,rc as V,rd as ut,sb as it,tb as y,ua as fe,va as ge,vb as E,wa as S,wb as G,xa as et,xb as Q,xd as W,y as qe,yb as $,yd as _t,zb as v}from"./chunk-ANRGX57I.js";var Sa=(()=>{class n{appSettings=r(mt);data=r(ft);_svcDatasetConfigs=[];_svcDataSource=[];_svcSubjectObserverRegistry=[];signedAnglePaths=new Set(["self.navigation.attitude.roll","self.navigation.attitude.pitch","self.navigation.attitude.yaw","self.environment.wind.angleApparent","self.environment.wind.angleTrueGround","self.environment.wind.angleTrueWater","self.steering.rudderAngle"]);constructor(){let e=this.appSettings;this._svcDatasetConfigs=e.getDataSets(),this.startAll()}setupServiceSubjectRegistry(e,t){let a=this._svcSubjectObserverRegistry.findIndex(i=>i.datasetUuid==e);a>=0&&(this._svcSubjectObserverRegistry[a].rxjsSubject.complete(),this._svcSubjectObserverRegistry.splice(a,1)),this._svcSubjectObserverRegistry.push({datasetUuid:e,rxjsSubject:new Ne(t)})}createDataSourceConfiguration(e){let a={uuid:e.uuid,pathObserverSubscription:null,sampleTime:null,maxDataPoints:null,smoothingPeriod:null,historicalData:[]};switch(e.timeScaleFormat){case"Last 30 Minutes":a.maxDataPoints=120,a.sampleTime=15e3,a.smoothingPeriod=50;break;case"Last 5 Minutes":a.maxDataPoints=60,a.sampleTime=5e3,a.smoothingPeriod=25;break;case"Last Minute":a.maxDataPoints=60,a.sampleTime=1e3,a.smoothingPeriod=25;break;case"hour":a.maxDataPoints=e.period*120,a.sampleTime=3e4,a.smoothingPeriod=Math.floor(a.maxDataPoints*.25);break;case"minute":a.maxDataPoints=e.period*60,a.sampleTime=1e3,a.smoothingPeriod=Math.floor(a.maxDataPoints*.25);break;default:a.maxDataPoints=e.period*5,a.sampleTime=200,a.smoothingPeriod=Math.floor(a.maxDataPoints*.25);break}return(!a.maxDataPoints||a.maxDataPoints<1)&&(a.maxDataPoints=1),a}startAll(){console.log("[Dataset Service] Auto Starting "+this._svcDatasetConfigs.length.toString()+" Datasets");for(let e of this._svcDatasetConfigs)this.start(e.uuid)}start(e){let t=this._svcDatasetConfigs.find(s=>s.uuid==e);if(!t){console.warn(`[Dataset Service] Dataset UUID:${e} not found`);return}let a=this.createDataSourceConfiguration(t);this.setupServiceSubjectRegistry(a.uuid,a.maxDataPoints);let i=this._svcDataSource[this._svcDataSource.push(a)-1];console.log(`[Dataset Service] Starting recording process: ${t.path}, Scale: ${t.timeScaleFormat}, Period: ${t.period}, Datapoints: ${a.maxDataPoints}`);function o(s){return T=>$e(s).pipe(Xe(T,(I,M)=>M))}let c=this.resolveAngleDomain(t.path,t.baseUnit);i.pathObserverSubscription=this.data.subscribePath(t.path,t.pathSource).pipe(o(a.sampleTime)).subscribe(s=>{if(s.data.value===null)return;i.maxDataPoints>0&&i.historicalData.length>=i.maxDataPoints&&i.historicalData.shift(),i.historicalData.push(s.data.value);let T=this.updateDataset(i,t.baseUnit,c);this._svcSubjectObserverRegistry.find(I=>I.datasetUuid===i.uuid).rxjsSubject.next(T)})}stop(e){let t=this._svcDataSource.findIndex(a=>a.uuid==e);console.log(`[Dataset Service] Stopping Dataset ${e} data capture`),this._svcDataSource[t].pathObserverSubscription.unsubscribe(),this._svcDataSource.splice(t,1)}list(){return bt(this._svcDatasetConfigs)}getDatasetConfig(e){return this._svcDatasetConfigs.find(t=>t.uuid===e)}getDataSourceInfo(e){return this._svcDataSource.find(t=>t.uuid===e)}create(e,t,a,i,o,c=!0,s=!0,T){if(!e||!t||!a||!i||!o)return null;let I=T||st.create(),M={uuid:I,path:e,pathSource:t,baseUnit:this.data.getPathUnitType(e),timeScaleFormat:a,period:i,label:o,editable:s};return console.log(`[Dataset Service] Creating ${c?"":"non-"}persistent ${s?"":"hidden "}dataset: ${M.uuid}, Path: ${M.path}, Source: ${M.pathSource} Scale: ${M.timeScaleFormat}, Period: ${M.period}`),this._svcDatasetConfigs.push(M),this.start(I),c===!0&&this.appSettings.saveDataSets(this._svcDatasetConfigs),I}edit(e){let t=this._svcDatasetConfigs.find(a=>a.uuid===e.uuid);return t?JSON.stringify(t)===JSON.stringify(e)?(console.log(`[Dataset Service] No changes detected for Dataset ${e.uuid}.`),!1):(this.stop(e.uuid),console.log(`[Dataset Service] Updating Dataset: ${e.uuid}`),e.baseUnit=this.data.getPathUnitType(e.path),this._svcDatasetConfigs.splice(this._svcDatasetConfigs.findIndex(a=>a.uuid===e.uuid),1,e),this.start(e.uuid),this.appSettings.saveDataSets(this._svcDatasetConfigs),!0):!1}remove(e,t=!0){return!e||e===""||this._svcDatasetConfigs.findIndex(a=>a.uuid===e)===-1?!1:(this.stop(e),console.log(`[Dataset Service] Removing ${t?"":"non-"}persistent Dataset: ${e}`),this._svcDatasetConfigs.splice(this._svcDatasetConfigs.findIndex(a=>a.uuid===e),1),this._svcSubjectObserverRegistry.find(a=>a.datasetUuid===e).rxjsSubject.complete(),this._svcSubjectObserverRegistry.splice(this._svcSubjectObserverRegistry.findIndex(a=>a.datasetUuid===e),1),t===!0&&this.appSettings.saveDataSets(this._svcDatasetConfigs),!0)}getDatasetObservable(e){let t=this._svcSubjectObserverRegistry.find(a=>a.datasetUuid==e);return t?t.rxjsSubject.asObservable():null}getDatasetBatchThenLiveObservable(e){let t=this._svcSubjectObserverRegistry.find(s=>s.datasetUuid==e);if(!t)return null;let a=t.rxjsSubject,i=a._buffer?a._buffer.slice():[],o=Ge([i]),c=a.pipe(he(i.length));return qe(o,c)}updateDataset(e,t,a="scalar"){let i=null,o=null,c=null,s=null;if(t==="rad"){i=this.circularMeanRad(e.historicalData);let R=e.historicalData.slice(-e.smoothingPeriod);o=this.circularMeanRad(R);let{min:L,max:N}=this.circularMinMaxRad(e.historicalData);a==="direction"?(i=this.normalizeToDirection(i),o=this.normalizeToDirection(o),c=this.normalizeToDirection(L),s=this.normalizeToDirection(N)):a==="signed"?(i=this.normalizeToSigned(i),o=this.normalizeToSigned(o),c=this.normalizeToSigned(L),s=this.normalizeToSigned(N)):(c=L,s=N)}else i=I(e.historicalData),o=M(e.historicalData,e.smoothingPeriod),c=Math.min(...e.historicalData),s=Math.max(...e.historicalData);return{timestamp:Date.now(),data:{value:t==="rad"?a==="signed"?this.normalizeToSigned(e.historicalData[e.historicalData.length-1]):this.normalizeToDirection(e.historicalData[e.historicalData.length-1]):e.historicalData[e.historicalData.length-1],sma:o,ema:null,doubleEma:null,lastAverage:i,lastMinimum:c,lastMaximum:s}};function I(R){return R.length===0?null:R.reduce((N,ae)=>N+ae,0)/R.length}function M(R,L){R.length<L&&(L=R.length);let N=0;for(let ae=R.length-L;ae<R.length;ae++)N+=R[ae];return N/L}}circularMeanRad(e){if(e.length===0)return 0;let t=e.reduce((i,o)=>i+Math.sin(o),0),a=e.reduce((i,o)=>i+Math.cos(o),0);return Math.atan2(t/e.length,a/e.length)}circularMinMaxRad(e){if(e.length===0)return{min:0,max:0};let t=e.map(s=>(s*180/Math.PI+360)%360).sort((s,T)=>s-T),a=0,i=0;for(let s=0;s<t.length;s++){let T=(s+1)%t.length,I=(t[T]-t[s]+360)%360;I>a&&(a=I,i=T)}let o=t[i]*Math.PI/180,c=t[(i-1+t.length)%t.length]*Math.PI/180;return{min:o,max:c}}resolveAngleDomain(e,t){if(t!=="rad")return"scalar";let a=this.normalizePathKey(e);for(let i of this.signedAnglePaths)if(a===this.normalizePathKey(i))return"signed";return"direction"}normalizePathKey(e){return e.replace(/^vessels\.self\./,"").replace(/^self\./,"")}mod(e,t){return(e%t+t)%t}normalizeToDirection(e){let t=2*Math.PI;return this.mod(e,t)}normalizeToSigned(e){let t=2*Math.PI;return this.mod(e+Math.PI,t)-Math.PI}removeIfExists(e,t=!0){return!e||this._svcDatasetConfigs.findIndex(a=>a.uuid===e)===-1?!1:this.remove(e,t)}ngOnDestroy(){[...this._svcDataSource].forEach(e=>{try{this.stop(e.uuid)}catch{}}),this._svcSubjectObserverRegistry.forEach(e=>e.rxjsSubject.complete()),this._svcSubjectObserverRegistry=[]}static \u0275fac=function(t){return new(t||n)};static \u0275prov=pe({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var ze=["*"];function zt(n,p){n&1&&Q(0)}var Vt=["tabListContainer"],jt=["tabList"],Nt=["tabListInner"],Ht=["nextPaginator"],Gt=["previousPaginator"],Qt=["content"];function qt(n,p){}var Ut=["tabBodyWrapper"],$t=["tabHeader"];function Wt(n,p){}function Kt(n,p){if(n&1&&Te(0,Wt,0,0,"ng-template",12),n&2){let e=E().$implicit;g("cdkPortalOutlet",e.templateLabel)}}function Zt(n,p){if(n&1&&ot(0),n&2){let e=E().$implicit;rt(e.textLabel)}}function Xt(n,p){if(n&1){let e=F();b(0,"div",7,2),y("click",function(){let a=l(e),i=a.$implicit,o=a.$index,c=E(),s=de(1);return m(c._handleClick(i,s,o))})("cdkFocusChange",function(a){let i=l(e).$index,o=E();return m(o._tabFocusChanged(a,i))}),D(2,"span",8)(3,"div",9),b(4,"span",10)(5,"span",11),Ie(6,Kt,1,1,null,12)(7,Zt,1,1),_()()()}if(n&2){let e=p.$implicit,t=p.$index,a=de(1),i=E();J(e.labelClass),x("mdc-tab--active",i.selectedIndex===t),g("id",i._getTabLabelId(e,t))("disabled",e.disabled)("fitInkBarToContent",i.fitInkBarToContent),w("tabIndex",i._getTabIndex(t))("aria-posinset",t+1)("aria-setsize",i._tabs.length)("aria-controls",i._getTabContentId(t))("aria-selected",i.selectedIndex===t)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),f(3),g("matRippleTrigger",a)("matRippleDisabled",e.disabled||i.disableRipple),f(3),we(e.templateLabel?6:7)}}function Yt(n,p){n&1&&Q(0)}function Jt(n,p){if(n&1){let e=F();b(0,"mat-tab-body",13),y("_onCentered",function(){l(e);let a=E();return m(a._removeTabBodyWrapperHeight())})("_onCentering",function(a){l(e);let i=E();return m(i._setTabBodyWrapperHeight(a))})("_beforeCentering",function(a){l(e);let i=E();return m(i._bodyCentered(a))}),_()}if(n&2){let e=p.$implicit,t=p.$index,a=E();J(e.bodyClass),g("id",a._getTabContentId(t))("content",e.content)("position",e.position)("animationDuration",a.animationDuration)("preserveContent",a.preserveContent),w("tabindex",a.contentTabIndex!=null&&a.selectedIndex===t?a.contentTabIndex:null)("aria-labelledby",a._getTabLabelId(e,t))("aria-hidden",a.selectedIndex!==t)}}var ea=new P("MatTabContent"),ta=(()=>{class n{template=r(ve);constructor(){}static \u0275fac=function(t){return new(t||n)};static \u0275dir=B({type:n,selectors:[["","matTabContent",""]],features:[O([{provide:ea,useExisting:n}])]})}return n})(),aa=new P("MatTabLabel"),Pt=new P("MAT_TAB"),ia=(()=>{class n extends kt{_closestTab=r(Pt,{optional:!0});static \u0275fac=(()=>{let e;return function(a){return(e||(e=ge(n)))(a||n)}})();static \u0275dir=B({type:n,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[O([{provide:aa,useExisting:n}]),se]})}return n})(),St=new P("MAT_TAB_GROUP"),na=(()=>{class n{_viewContainerRef=r(tt);_closestTabGroup=r(St,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;id=null;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new me;position=null;origin=null;isActive=!1;constructor(){r(ee).load(te)}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new vt(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=A({type:n,selectors:[["mat-tab"]],contentQueries:function(t,a,i){if(t&1&&($(i,ia,5),$(i,ta,7,ve)),t&2){let o;h(o=u())&&(a.templateLabel=o.first),h(o=u())&&(a._explicitContent=o.first)}},viewQuery:function(t,a){if(t&1&&v(ve,7),t&2){let i;h(i=u())&&(a._implicitContent=i.first)}},hostAttrs:["hidden",""],hostVars:1,hostBindings:function(t,a){t&2&&w("id",null)},inputs:{disabled:[2,"disabled","disabled",d],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass",id:"id"},exportAs:["matTab"],features:[O([{provide:Pt,useExisting:n}]),fe],ngContentSelectors:ze,decls:1,vars:0,template:function(t,a){t&1&&(G(),at(0,zt,1,0,"ng-template"))},encapsulation:2})}return n})(),Ae="mdc-tab-indicator--active",wt="mdc-tab-indicator--no-transition",Be=class{_items;_currentItem;constructor(p){this._items=p}hide(){this._items.forEach(p=>p.deactivateInkBar()),this._currentItem=void 0}alignToElement(p){let e=this._items.find(a=>a.elementRef.nativeElement===p),t=this._currentItem;if(e!==t&&(t?.deactivateInkBar(),e)){let a=t?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(a),this._currentItem=e}}},oa=(()=>{class n{_elementRef=r(S);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(e){this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(e){let t=this._elementRef.nativeElement;if(!e||!t.getBoundingClientRect||!this._inkBarContentElement){t.classList.add(Ae);return}let a=t.getBoundingClientRect(),i=e.width/a.width,o=e.left-a.left;t.classList.add(wt),this._inkBarContentElement.style.setProperty("transform",`translateX(${o}px) scaleX(${i})`),t.getBoundingClientRect(),t.classList.remove(wt),t.classList.add(Ae),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(Ae)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let e=this._elementRef.nativeElement.ownerDocument||document,t=this._inkBarElement=e.createElement("span"),a=this._inkBarContentElement=e.createElement("span");t.className="mdc-tab-indicator",a.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",t.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let e=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;e.appendChild(this._inkBarElement)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=B({type:n,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",d]}})}return n})();var Mt=(()=>{class n extends oa{elementRef=r(S);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let e;return function(a){return(e||(e=ge(n)))(a||n)}})();static \u0275dir=B({type:n,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(t,a){t&2&&(w("aria-disabled",!!a.disabled),x("mat-mdc-tab-disabled",a.disabled))},inputs:{disabled:[2,"disabled","disabled",d]},features:[se]})}return n})(),Dt={passive:!0},ra=650,ca=100,sa=(()=>{class n{_elementRef=r(S);_changeDetectorRef=r(z);_viewportRuler=r(xt);_dir=r(Ee,{optional:!0});_ngZone=r(H);_platform=r(Se);_sharedResizeObserver=r(Tt);_injector=r(oe);_renderer=r(ce);_animationsDisabled=q();_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new me;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new me;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){let t=isNaN(e)?0:e;this._selectedIndex!=t&&(this._selectedIndexChanged=!0,this._selectedIndex=t,this._keyManager&&this._keyManager.updateActiveItem(t))}_selectedIndex=0;selectFocusedIndex=new k;indexFocused=new k;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"),Dt),this._renderer.listen(this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),Dt))}ngAfterContentInit(){let e=this._dir?this._dir.change:Qe("ltr"),t=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(Ke(32),ne(this._destroyed)),a=this._viewportRuler.change(150).pipe(ne(this._destroyed)),i=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new pt(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(Math.max(this._selectedIndex,0)),Y(i,{injector:this._injector}),be(e,a,t,this._items.changes,this._itemsResized()).pipe(ne(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(o=>{this.indexFocused.emit(o),this._setTabFocus(o)})}_itemsResized(){return typeof ResizeObserver!="function"?He:this._items.changes.pipe(ue(this._items),Ze(e=>new je(t=>this._ngZone.runOutsideAngular(()=>{let a=new ResizeObserver(i=>t.next(i));return e.forEach(i=>a.observe(i.elementRef.nativeElement)),()=>{a.disconnect()}}))),he(1),We(e=>e.some(t=>t.contentRect.width>0&&t.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(e=>e()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!_t(e))switch(e.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let t=this._items.get(this.focusIndex);t&&!t.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e))}break;default:this._keyManager?.onKeydown(e)}}_onContentChanges(){let e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",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(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){return this._items?!!this._items.toArray()[e]:!0}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();let t=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?t.scrollLeft=0:t.scrollLeft=t.scrollWidth-t.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let e=this.scrollDistance,t=this._getLayoutDirection()==="ltr"?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(t)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){let t=this._tabListContainer.nativeElement.offsetWidth,a=(e=="before"?-1:1)*t/3;return this._scrollTo(this._scrollDistance+a)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;let t=this._items?this._items.toArray()[e]:null;if(!t)return;let a=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:i,offsetWidth:o}=t.elementRef.nativeElement,c,s;this._getLayoutDirection()=="ltr"?(c=i,s=c+o):(s=this._tabListInner.nativeElement.offsetWidth-i,c=s-o);let T=this.scrollDistance,I=this.scrollDistance+a;c<T?this.scrollDistance-=T-c:s>I&&(this.scrollDistance+=Math.min(s-I,c-T))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let e=this._tabListInner.nativeElement.scrollWidth,t=this._elementRef.nativeElement.offsetWidth,a=e-t>=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 e=this._tabListInner.nativeElement.scrollWidth,t=this._tabListContainer.nativeElement.offsetWidth;return e-t||0}_alignInkBarToSelectedTab(){let e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,t=e?e.elementRef.nativeElement:null;t?this._inkBar.alignToElement(t):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,t){t&&t.button!=null&&t.button!==0||(this._stopInterval(),Ue(ra,ca).pipe(ne(be(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:a,distance:i}=this._scrollHeader(e);(i===0||i>=a)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let t=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(t,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:t,distance:this._scrollDistance}}static \u0275fac=function(t){return new(t||n)};static \u0275dir=B({type:n,inputs:{disablePagination:[2,"disablePagination","disablePagination",d],selectedIndex:[2,"selectedIndex","selectedIndex",V]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return n})(),da=(()=>{class n extends sa{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new Be(this._items),super.ngAfterContentInit()}_itemSelected(e){e.preventDefault()}static \u0275fac=(()=>{let e;return function(a){return(e||(e=ge(n)))(a||n)}})();static \u0275cmp=A({type:n,selectors:[["mat-tab-header"]],contentQueries:function(t,a,i){if(t&1&&$(i,Mt,4),t&2){let o;h(o=u())&&(a._items=o)}},viewQuery:function(t,a){if(t&1&&(v(Vt,7),v(jt,7),v(Nt,7),v(Ht,5),v(Gt,5)),t&2){let i;h(i=u())&&(a._tabListContainer=i.first),h(i=u())&&(a._tabList=i.first),h(i=u())&&(a._tabListInner=i.first),h(i=u())&&(a._nextPaginator=i.first),h(i=u())&&(a._previousPaginator=i.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(t,a){t&2&&x("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",d]},features:[se],ngContentSelectors:ze,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(t,a){if(t&1){let i=F();G(),b(0,"div",5,0),y("click",function(){return l(i),m(a._handlePaginatorClick("before"))})("mousedown",function(c){return l(i),m(a._handlePaginatorPress("before",c))})("touchend",function(){return l(i),m(a._stopInterval())}),D(2,"div",6),_(),b(3,"div",7,1),y("keydown",function(c){return l(i),m(a._handleKeydown(c))}),b(5,"div",8,2),y("cdkObserveContent",function(){return l(i),m(a._onContentChanges())}),b(7,"div",9,3),Q(9),_()()(),b(10,"div",10,4),y("mousedown",function(c){return l(i),m(a._handlePaginatorPress("after",c))})("click",function(){return l(i),m(a._handlePaginatorClick("after"))})("touchend",function(){return l(i),m(a._stopInterval())}),D(12,"div",6),_()}t&2&&(x("mat-mdc-tab-header-pagination-disabled",a._disableScrollBefore),g("matRippleDisabled",a._disableScrollBefore||a.disableRipple),f(3),x("_mat-animation-noopable",a._animationsDisabled),f(2),w("aria-label",a.ariaLabel||null)("aria-labelledby",a.ariaLabelledby||null),f(5),x("mat-mdc-tab-header-pagination-disabled",a._disableScrollAfter),g("matRippleDisabled",a._disableScrollAfter||a.disableRipple))},dependencies:[K,ut],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{i as It,n as ye}from"./chunk-ZPCYFQPB.js";import{b as bt,g as ft,t as Tt}from"./chunk-VEJNBHWJ.js";import{a as st,f as dt,j as mt,k as ke,m as Ct}from"./chunk-A5CYPNMD.js";import{b as vt,e as kt,f as Le}from"./chunk-NOLKBYOV.js";import{$ as Xe,Ab as h,Bb as u,Bd as pt,C as Ue,D as $e,E as be,F as We,Fa as f,Fb as de,Fd as Ee,Ga as ve,Gb as nt,Hb as x,Hd as j,Ia as ce,J as Ke,Jb as J,Kb as ot,La as tt,Lb as rt,Oa as A,Pa as X,Pd as q,Qa as B,Qc as lt,Sa as se,U as he,Ua as Te,V as ue,Va as at,Vd as K,W as Ze,Wa as k,Wd as te,X as ne,Xa as H,Xb as O,Ya as Y,Yd as gt,ab as w,ba as _e,bb as Ie,ca as pe,cb as we,da as Z,ea as P,eb as De,f as ie,fb as Re,g as U,ga as r,gb as Pe,ge as yt,hb as g,hd as Se,he as xt,i as je,ib as b,ic as ct,j as me,ja as l,jb as _,jc as le,ka as m,kb as D,la as Ye,m as Ne,ma as Je,md as Me,na as oe,nd as ht,o as He,od as ee,p as Ge,pc as z,q as Qe,ra as re,rb as F,rc as d,sb as it,sc as V,sd as ut,tb as y,ua as fe,va as ge,vb as E,wa as S,wb as G,xa as et,xb as Q,y as qe,yb as $,yd as W,zb as v,zd as _t}from"./chunk-YPUCOH35.js";var Sa=(()=>{class n{appSettings=r(mt);data=r(ft);_svcDatasetConfigs=[];_svcDataSource=[];_svcSubjectObserverRegistry=[];signedAnglePaths=new Set(["self.navigation.attitude.roll","self.navigation.attitude.pitch","self.navigation.attitude.yaw","self.environment.wind.angleApparent","self.environment.wind.angleTrueGround","self.environment.wind.angleTrueWater","self.steering.rudderAngle"]);constructor(){let e=this.appSettings;this._svcDatasetConfigs=e.getDataSets(),this.startAll()}setupServiceSubjectRegistry(e,t){let a=this._svcSubjectObserverRegistry.findIndex(i=>i.datasetUuid==e);a>=0&&(this._svcSubjectObserverRegistry[a].rxjsSubject.complete(),this._svcSubjectObserverRegistry.splice(a,1)),this._svcSubjectObserverRegistry.push({datasetUuid:e,rxjsSubject:new Ne(t)})}createDataSourceConfiguration(e){let a={uuid:e.uuid,pathObserverSubscription:null,sampleTime:null,maxDataPoints:null,smoothingPeriod:null,historicalData:[]};switch(e.timeScaleFormat){case"Last 30 Minutes":a.maxDataPoints=120,a.sampleTime=15e3,a.smoothingPeriod=50;break;case"Last 5 Minutes":a.maxDataPoints=60,a.sampleTime=5e3,a.smoothingPeriod=25;break;case"Last Minute":a.maxDataPoints=60,a.sampleTime=1e3,a.smoothingPeriod=25;break;case"hour":a.maxDataPoints=e.period*120,a.sampleTime=3e4,a.smoothingPeriod=Math.floor(a.maxDataPoints*.25);break;case"minute":a.maxDataPoints=e.period*60,a.sampleTime=1e3,a.smoothingPeriod=Math.floor(a.maxDataPoints*.25);break;default:a.maxDataPoints=e.period*5,a.sampleTime=200,a.smoothingPeriod=Math.floor(a.maxDataPoints*.25);break}return(!a.maxDataPoints||a.maxDataPoints<1)&&(a.maxDataPoints=1),a}startAll(){console.log("[Dataset Service] Auto Starting "+this._svcDatasetConfigs.length.toString()+" Datasets");for(let e of this._svcDatasetConfigs)this.start(e.uuid)}start(e){let t=this._svcDatasetConfigs.find(s=>s.uuid==e);if(!t){console.warn(`[Dataset Service] Dataset UUID:${e} not found`);return}let a=this.createDataSourceConfiguration(t);this.setupServiceSubjectRegistry(a.uuid,a.maxDataPoints);let i=this._svcDataSource[this._svcDataSource.push(a)-1];console.log(`[Dataset Service] Starting recording process: ${t.path}, Scale: ${t.timeScaleFormat}, Period: ${t.period}, Datapoints: ${a.maxDataPoints}`);function o(s){return T=>$e(s).pipe(Xe(T,(I,M)=>M))}let c=this.resolveAngleDomain(t.path,t.baseUnit);i.pathObserverSubscription=this.data.subscribePath(t.path,t.pathSource).pipe(o(a.sampleTime)).subscribe(s=>{if(s.data.value===null)return;i.maxDataPoints>0&&i.historicalData.length>=i.maxDataPoints&&i.historicalData.shift(),i.historicalData.push(s.data.value);let T=this.updateDataset(i,t.baseUnit,c);this._svcSubjectObserverRegistry.find(I=>I.datasetUuid===i.uuid).rxjsSubject.next(T)})}stop(e){let t=this._svcDataSource.findIndex(a=>a.uuid==e);console.log(`[Dataset Service] Stopping Dataset ${e} data capture`),this._svcDataSource[t].pathObserverSubscription.unsubscribe(),this._svcDataSource.splice(t,1)}list(){return bt(this._svcDatasetConfigs)}getDatasetConfig(e){return this._svcDatasetConfigs.find(t=>t.uuid===e)}getDataSourceInfo(e){return this._svcDataSource.find(t=>t.uuid===e)}create(e,t,a,i,o,c=!0,s=!0,T){if(!e||!t||!a||!i||!o)return null;let I=T||st.create(),M={uuid:I,path:e,pathSource:t,baseUnit:this.data.getPathUnitType(e),timeScaleFormat:a,period:i,label:o,editable:s};return console.log(`[Dataset Service] Creating ${c?"":"non-"}persistent ${s?"":"hidden "}dataset: ${M.uuid}, Path: ${M.path}, Source: ${M.pathSource} Scale: ${M.timeScaleFormat}, Period: ${M.period}`),this._svcDatasetConfigs.push(M),this.start(I),c===!0&&this.appSettings.saveDataSets(this._svcDatasetConfigs),I}edit(e){let t=this._svcDatasetConfigs.find(a=>a.uuid===e.uuid);return t?JSON.stringify(t)===JSON.stringify(e)?(console.log(`[Dataset Service] No changes detected for Dataset ${e.uuid}.`),!1):(this.stop(e.uuid),console.log(`[Dataset Service] Updating Dataset: ${e.uuid}`),e.baseUnit=this.data.getPathUnitType(e.path),this._svcDatasetConfigs.splice(this._svcDatasetConfigs.findIndex(a=>a.uuid===e.uuid),1,e),this.start(e.uuid),this.appSettings.saveDataSets(this._svcDatasetConfigs),!0):!1}remove(e,t=!0){return!e||e===""||this._svcDatasetConfigs.findIndex(a=>a.uuid===e)===-1?!1:(this.stop(e),console.log(`[Dataset Service] Removing ${t?"":"non-"}persistent Dataset: ${e}`),this._svcDatasetConfigs.splice(this._svcDatasetConfigs.findIndex(a=>a.uuid===e),1),this._svcSubjectObserverRegistry.find(a=>a.datasetUuid===e).rxjsSubject.complete(),this._svcSubjectObserverRegistry.splice(this._svcSubjectObserverRegistry.findIndex(a=>a.datasetUuid===e),1),t===!0&&this.appSettings.saveDataSets(this._svcDatasetConfigs),!0)}getDatasetObservable(e){let t=this._svcSubjectObserverRegistry.find(a=>a.datasetUuid==e);return t?t.rxjsSubject.asObservable():null}getDatasetBatchThenLiveObservable(e){let t=this._svcSubjectObserverRegistry.find(s=>s.datasetUuid==e);if(!t)return null;let a=t.rxjsSubject,i=a._buffer?a._buffer.slice():[],o=Ge([i]),c=a.pipe(he(i.length));return qe(o,c)}updateDataset(e,t,a="scalar"){let i=null,o=null,c=null,s=null;if(t==="rad"){i=this.circularMeanRad(e.historicalData);let R=e.historicalData.slice(-e.smoothingPeriod);o=this.circularMeanRad(R);let{min:L,max:N}=this.circularMinMaxRad(e.historicalData);a==="direction"?(i=this.normalizeToDirection(i),o=this.normalizeToDirection(o),c=this.normalizeToDirection(L),s=this.normalizeToDirection(N)):a==="signed"?(i=this.normalizeToSigned(i),o=this.normalizeToSigned(o),c=this.normalizeToSigned(L),s=this.normalizeToSigned(N)):(c=L,s=N)}else i=I(e.historicalData),o=M(e.historicalData,e.smoothingPeriod),c=Math.min(...e.historicalData),s=Math.max(...e.historicalData);return{timestamp:Date.now(),data:{value:t==="rad"?a==="signed"?this.normalizeToSigned(e.historicalData[e.historicalData.length-1]):this.normalizeToDirection(e.historicalData[e.historicalData.length-1]):e.historicalData[e.historicalData.length-1],sma:o,ema:null,doubleEma:null,lastAverage:i,lastMinimum:c,lastMaximum:s}};function I(R){return R.length===0?null:R.reduce((N,ae)=>N+ae,0)/R.length}function M(R,L){R.length<L&&(L=R.length);let N=0;for(let ae=R.length-L;ae<R.length;ae++)N+=R[ae];return N/L}}circularMeanRad(e){if(e.length===0)return 0;let t=e.reduce((i,o)=>i+Math.sin(o),0),a=e.reduce((i,o)=>i+Math.cos(o),0);return Math.atan2(t/e.length,a/e.length)}circularMinMaxRad(e){if(e.length===0)return{min:0,max:0};let t=e.map(s=>(s*180/Math.PI+360)%360).sort((s,T)=>s-T),a=0,i=0;for(let s=0;s<t.length;s++){let T=(s+1)%t.length,I=(t[T]-t[s]+360)%360;I>a&&(a=I,i=T)}let o=t[i]*Math.PI/180,c=t[(i-1+t.length)%t.length]*Math.PI/180;return{min:o,max:c}}resolveAngleDomain(e,t){if(t!=="rad")return"scalar";let a=this.normalizePathKey(e);for(let i of this.signedAnglePaths)if(a===this.normalizePathKey(i))return"signed";return"direction"}normalizePathKey(e){return e.replace(/^vessels\.self\./,"").replace(/^self\./,"")}mod(e,t){return(e%t+t)%t}normalizeToDirection(e){let t=2*Math.PI;return this.mod(e,t)}normalizeToSigned(e){let t=2*Math.PI;return this.mod(e+Math.PI,t)-Math.PI}removeIfExists(e,t=!0){return!e||this._svcDatasetConfigs.findIndex(a=>a.uuid===e)===-1?!1:this.remove(e,t)}ngOnDestroy(){[...this._svcDataSource].forEach(e=>{try{this.stop(e.uuid)}catch{}}),this._svcSubjectObserverRegistry.forEach(e=>e.rxjsSubject.complete()),this._svcSubjectObserverRegistry=[]}static \u0275fac=function(t){return new(t||n)};static \u0275prov=pe({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var ze=["*"];function zt(n,p){n&1&&Q(0)}var Vt=["tabListContainer"],jt=["tabList"],Nt=["tabListInner"],Ht=["nextPaginator"],Gt=["previousPaginator"],Qt=["content"];function qt(n,p){}var Ut=["tabBodyWrapper"],$t=["tabHeader"];function Wt(n,p){}function Kt(n,p){if(n&1&&Te(0,Wt,0,0,"ng-template",12),n&2){let e=E().$implicit;g("cdkPortalOutlet",e.templateLabel)}}function Zt(n,p){if(n&1&&ot(0),n&2){let e=E().$implicit;rt(e.textLabel)}}function Xt(n,p){if(n&1){let e=F();b(0,"div",7,2),y("click",function(){let a=l(e),i=a.$implicit,o=a.$index,c=E(),s=de(1);return m(c._handleClick(i,s,o))})("cdkFocusChange",function(a){let i=l(e).$index,o=E();return m(o._tabFocusChanged(a,i))}),D(2,"span",8)(3,"div",9),b(4,"span",10)(5,"span",11),Ie(6,Kt,1,1,null,12)(7,Zt,1,1),_()()()}if(n&2){let e=p.$implicit,t=p.$index,a=de(1),i=E();J(e.labelClass),x("mdc-tab--active",i.selectedIndex===t),g("id",i._getTabLabelId(e,t))("disabled",e.disabled)("fitInkBarToContent",i.fitInkBarToContent),w("tabIndex",i._getTabIndex(t))("aria-posinset",t+1)("aria-setsize",i._tabs.length)("aria-controls",i._getTabContentId(t))("aria-selected",i.selectedIndex===t)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),f(3),g("matRippleTrigger",a)("matRippleDisabled",e.disabled||i.disableRipple),f(3),we(e.templateLabel?6:7)}}function Yt(n,p){n&1&&Q(0)}function Jt(n,p){if(n&1){let e=F();b(0,"mat-tab-body",13),y("_onCentered",function(){l(e);let a=E();return m(a._removeTabBodyWrapperHeight())})("_onCentering",function(a){l(e);let i=E();return m(i._setTabBodyWrapperHeight(a))})("_beforeCentering",function(a){l(e);let i=E();return m(i._bodyCentered(a))}),_()}if(n&2){let e=p.$implicit,t=p.$index,a=E();J(e.bodyClass),g("id",a._getTabContentId(t))("content",e.content)("position",e.position)("animationDuration",a.animationDuration)("preserveContent",a.preserveContent),w("tabindex",a.contentTabIndex!=null&&a.selectedIndex===t?a.contentTabIndex:null)("aria-labelledby",a._getTabLabelId(e,t))("aria-hidden",a.selectedIndex!==t)}}var ea=new P("MatTabContent"),ta=(()=>{class n{template=r(ve);constructor(){}static \u0275fac=function(t){return new(t||n)};static \u0275dir=B({type:n,selectors:[["","matTabContent",""]],features:[O([{provide:ea,useExisting:n}])]})}return n})(),aa=new P("MatTabLabel"),Pt=new P("MAT_TAB"),ia=(()=>{class n extends kt{_closestTab=r(Pt,{optional:!0});static \u0275fac=(()=>{let e;return function(a){return(e||(e=ge(n)))(a||n)}})();static \u0275dir=B({type:n,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[O([{provide:aa,useExisting:n}]),se]})}return n})(),St=new P("MAT_TAB_GROUP"),na=(()=>{class n{_viewContainerRef=r(tt);_closestTabGroup=r(St,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;id=null;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new me;position=null;origin=null;isActive=!1;constructor(){r(ee).load(te)}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new vt(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=A({type:n,selectors:[["mat-tab"]],contentQueries:function(t,a,i){if(t&1&&($(i,ia,5),$(i,ta,7,ve)),t&2){let o;h(o=u())&&(a.templateLabel=o.first),h(o=u())&&(a._explicitContent=o.first)}},viewQuery:function(t,a){if(t&1&&v(ve,7),t&2){let i;h(i=u())&&(a._implicitContent=i.first)}},hostAttrs:["hidden",""],hostVars:1,hostBindings:function(t,a){t&2&&w("id",null)},inputs:{disabled:[2,"disabled","disabled",d],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass",id:"id"},exportAs:["matTab"],features:[O([{provide:Pt,useExisting:n}]),fe],ngContentSelectors:ze,decls:1,vars:0,template:function(t,a){t&1&&(G(),at(0,zt,1,0,"ng-template"))},encapsulation:2})}return n})(),Ae="mdc-tab-indicator--active",wt="mdc-tab-indicator--no-transition",Be=class{_items;_currentItem;constructor(p){this._items=p}hide(){this._items.forEach(p=>p.deactivateInkBar()),this._currentItem=void 0}alignToElement(p){let e=this._items.find(a=>a.elementRef.nativeElement===p),t=this._currentItem;if(e!==t&&(t?.deactivateInkBar(),e)){let a=t?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(a),this._currentItem=e}}},oa=(()=>{class n{_elementRef=r(S);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(e){this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(e){let t=this._elementRef.nativeElement;if(!e||!t.getBoundingClientRect||!this._inkBarContentElement){t.classList.add(Ae);return}let a=t.getBoundingClientRect(),i=e.width/a.width,o=e.left-a.left;t.classList.add(wt),this._inkBarContentElement.style.setProperty("transform",`translateX(${o}px) scaleX(${i})`),t.getBoundingClientRect(),t.classList.remove(wt),t.classList.add(Ae),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(Ae)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let e=this._elementRef.nativeElement.ownerDocument||document,t=this._inkBarElement=e.createElement("span"),a=this._inkBarContentElement=e.createElement("span");t.className="mdc-tab-indicator",a.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",t.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let e=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;e.appendChild(this._inkBarElement)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=B({type:n,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",d]}})}return n})();var Mt=(()=>{class n extends oa{elementRef=r(S);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let e;return function(a){return(e||(e=ge(n)))(a||n)}})();static \u0275dir=B({type:n,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(t,a){t&2&&(w("aria-disabled",!!a.disabled),x("mat-mdc-tab-disabled",a.disabled))},inputs:{disabled:[2,"disabled","disabled",d]},features:[se]})}return n})(),Dt={passive:!0},ra=650,ca=100,sa=(()=>{class n{_elementRef=r(S);_changeDetectorRef=r(z);_viewportRuler=r(xt);_dir=r(Ee,{optional:!0});_ngZone=r(H);_platform=r(Se);_sharedResizeObserver=r(Tt);_injector=r(oe);_renderer=r(ce);_animationsDisabled=q();_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new me;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new me;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){let t=isNaN(e)?0:e;this._selectedIndex!=t&&(this._selectedIndexChanged=!0,this._selectedIndex=t,this._keyManager&&this._keyManager.updateActiveItem(t))}_selectedIndex=0;selectFocusedIndex=new k;indexFocused=new k;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"),Dt),this._renderer.listen(this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),Dt))}ngAfterContentInit(){let e=this._dir?this._dir.change:Qe("ltr"),t=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(Ke(32),ne(this._destroyed)),a=this._viewportRuler.change(150).pipe(ne(this._destroyed)),i=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new pt(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(Math.max(this._selectedIndex,0)),Y(i,{injector:this._injector}),be(e,a,t,this._items.changes,this._itemsResized()).pipe(ne(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(o=>{this.indexFocused.emit(o),this._setTabFocus(o)})}_itemsResized(){return typeof ResizeObserver!="function"?He:this._items.changes.pipe(ue(this._items),Ze(e=>new je(t=>this._ngZone.runOutsideAngular(()=>{let a=new ResizeObserver(i=>t.next(i));return e.forEach(i=>a.observe(i.elementRef.nativeElement)),()=>{a.disconnect()}}))),he(1),We(e=>e.some(t=>t.contentRect.width>0&&t.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(e=>e()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!_t(e))switch(e.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let t=this._items.get(this.focusIndex);t&&!t.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e))}break;default:this._keyManager?.onKeydown(e)}}_onContentChanges(){let e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",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(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){return this._items?!!this._items.toArray()[e]:!0}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();let t=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?t.scrollLeft=0:t.scrollLeft=t.scrollWidth-t.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let e=this.scrollDistance,t=this._getLayoutDirection()==="ltr"?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(t)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){let t=this._tabListContainer.nativeElement.offsetWidth,a=(e=="before"?-1:1)*t/3;return this._scrollTo(this._scrollDistance+a)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;let t=this._items?this._items.toArray()[e]:null;if(!t)return;let a=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:i,offsetWidth:o}=t.elementRef.nativeElement,c,s;this._getLayoutDirection()=="ltr"?(c=i,s=c+o):(s=this._tabListInner.nativeElement.offsetWidth-i,c=s-o);let T=this.scrollDistance,I=this.scrollDistance+a;c<T?this.scrollDistance-=T-c:s>I&&(this.scrollDistance+=Math.min(s-I,c-T))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let e=this._tabListInner.nativeElement.scrollWidth,t=this._elementRef.nativeElement.offsetWidth,a=e-t>=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 e=this._tabListInner.nativeElement.scrollWidth,t=this._tabListContainer.nativeElement.offsetWidth;return e-t||0}_alignInkBarToSelectedTab(){let e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,t=e?e.elementRef.nativeElement:null;t?this._inkBar.alignToElement(t):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,t){t&&t.button!=null&&t.button!==0||(this._stopInterval(),Ue(ra,ca).pipe(ne(be(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:a,distance:i}=this._scrollHeader(e);(i===0||i>=a)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let t=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(t,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:t,distance:this._scrollDistance}}static \u0275fac=function(t){return new(t||n)};static \u0275dir=B({type:n,inputs:{disablePagination:[2,"disablePagination","disablePagination",d],selectedIndex:[2,"selectedIndex","selectedIndex",V]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return n})(),da=(()=>{class n extends sa{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new Be(this._items),super.ngAfterContentInit()}_itemSelected(e){e.preventDefault()}static \u0275fac=(()=>{let e;return function(a){return(e||(e=ge(n)))(a||n)}})();static \u0275cmp=A({type:n,selectors:[["mat-tab-header"]],contentQueries:function(t,a,i){if(t&1&&$(i,Mt,4),t&2){let o;h(o=u())&&(a._items=o)}},viewQuery:function(t,a){if(t&1&&(v(Vt,7),v(jt,7),v(Nt,7),v(Ht,5),v(Gt,5)),t&2){let i;h(i=u())&&(a._tabListContainer=i.first),h(i=u())&&(a._tabList=i.first),h(i=u())&&(a._tabListInner=i.first),h(i=u())&&(a._nextPaginator=i.first),h(i=u())&&(a._previousPaginator=i.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(t,a){t&2&&x("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",d]},features:[se],ngContentSelectors:ze,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(t,a){if(t&1){let i=F();G(),b(0,"div",5,0),y("click",function(){return l(i),m(a._handlePaginatorClick("before"))})("mousedown",function(c){return l(i),m(a._handlePaginatorPress("before",c))})("touchend",function(){return l(i),m(a._stopInterval())}),D(2,"div",6),_(),b(3,"div",7,1),y("keydown",function(c){return l(i),m(a._handleKeydown(c))}),b(5,"div",8,2),y("cdkObserveContent",function(){return l(i),m(a._onContentChanges())}),b(7,"div",9,3),Q(9),_()()(),b(10,"div",10,4),y("mousedown",function(c){return l(i),m(a._handlePaginatorPress("after",c))})("click",function(){return l(i),m(a._handlePaginatorClick("after"))})("touchend",function(){return l(i),m(a._stopInterval())}),D(12,"div",6),_()}t&2&&(x("mat-mdc-tab-header-pagination-disabled",a._disableScrollBefore),g("matRippleDisabled",a._disableScrollBefore||a.disableRipple),f(3),x("_mat-animation-noopable",a._animationsDisabled),f(2),w("aria-label",a.ariaLabel||null)("aria-labelledby",a.ariaLabelledby||null),f(5),x("mat-mdc-tab-header-pagination-disabled",a._disableScrollAfter),g("matRippleDisabled",a._disableScrollAfter||a.disableRipple))},dependencies:[K,ut],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})(),la=new P("MAT_TABS_CONFIG"),Rt=(()=>{class n extends Le{_host=r(Fe);_centeringSub=U.EMPTY;_leavingSub=U.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(ue(this._host._isCenterPosition())).subscribe(e=>{this._host._content&&e&&!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(t){return new(t||n)};static \u0275dir=B({type:n,selectors:[["","matTabBodyHost",""]],features:[se]})}return n})(),Fe=(()=>{class n{_elementRef=r(S);_dir=r(Ee,{optional:!0});_ngZone=r(H);_injector=r(oe);_renderer=r(ce);_diAnimationsDisabled=q();_eventCleanups;_initialized;_fallbackTimer;_positionIndex;_dirChangeSubscription=U.EMPTY;_position;_previousPosition;_onCentering=new k;_beforeCentering=new k;_afterLeavingCenter=new k;_onCentered=new k(!0);_portalHost;_contentElement;_content;animationDuration="500ms";preserveContent=!1;set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(){if(this._dir){let e=r(z);this._dirChangeSubscription=this._dir.change.subscribe(t=>{this._computePositionAnimationState(t),e.markForCheck()})}}ngOnInit(){this._bindTransitionEvents(),this._position==="center"&&(this._setActiveClass(!0),Y(()=>this._onCentering.emit(this._elementRef.nativeElement.clientHeight),{injector:this._injector})),this._initialized=!0}ngOnDestroy(){clearTimeout(this._fallbackTimer),this._eventCleanups?.forEach(e=>e()),this._dirChangeSubscription.unsubscribe()}_bindTransitionEvents(){this._ngZone.runOutsideAngular(()=>{let e=this._elementRef.nativeElement,t=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(e,"transitionstart",a=>{a.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.add("mat-tab-body-animating"),this._transitionStarted())}),this._renderer.listen(e,"transitionend",t),this._renderer.listen(e,"transitioncancel",t)]})}_transitionStarted(){clearTimeout(this._fallbackTimer);let e=this._position==="center";this._beforeCentering.emit(e),e&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_transitionDone(){this._position==="center"?this._onCentered.emit():this._previousPosition==="center"&&this._afterLeavingCenter.emit()}_setActiveClass(e){this._elementRef.nativeElement.classList.toggle("mat-mdc-tab-body-active",e)}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_isCenterPosition(){return this._positionIndex===0}_computePositionAnimationState(e=this._getLayoutDirection()){this._previousPosition=this._position,this._positionIndex<0?this._position=e=="ltr"?"left":"right":this._positionIndex>0?this._position=e=="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(),Y(()=>this._transitionDone(),{injector:this._injector})}_animationsDisabled(){return this._diAnimationsDisabled||this.animationDuration==="0ms"||this.animationDuration==="0s"}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=A({type:n,selectors:[["mat-tab-body"]],viewQuery:function(t,a){if(t&1&&(v(Rt,5),v(Qt,5)),t&2){let i;h(i=u())&&(a._portalHost=i.first),h(i=u())&&(a._contentElement=i.first)}},hostAttrs:[1,"mat-mdc-tab-body"],hostVars:1,hostBindings:function(t,a){t&2&&w("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(t,a){t&1&&(b(0,"div",1,0),Te(2,qt,0,0,"ng-template",2),_()),t&2&&x("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:[Rt,yt],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})(),di=(()=>{class n{_elementRef=r(S);_changeDetectorRef=r(z);_ngZone=r(H);_tabsSubscription=U.EMPTY;_tabLabelSubscription=U.EMPTY;_tabBodySubscription=U.EMPTY;_diAnimationsDisabled=q();_allTabs;_tabBodies;_tabBodyWrapper;_tabHeader;_tabs=new et;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=e,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=isNaN(e)?null:e}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(e){let t=e+"";this._animationDuration=/^\d+$/.test(t)?e+"ms":t}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=isNaN(e)?null:e}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(e){let t=this._elementRef.nativeElement.classList;t.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),e&&t.add("mat-tabs-with-background",`mat-background-${e}`),this._backgroundColor=e}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new k;focusChange=new k;animationDone=new k;selectedTabChange=new k(!0);_groupId;_isServer=!r(Se).isBrowser;constructor(){let e=r(la,{optional:!0});this._groupId=r(W).getId("mat-tab-group-"),this.animationDuration=e&&e.animationDuration?e.animationDuration:"500ms",this.disablePagination=e&&e.disablePagination!=null?e.disablePagination:!1,this.dynamicHeight=e&&e.dynamicHeight!=null?e.dynamicHeight:!1,e?.contentTabIndex!=null&&(this.contentTabIndex=e.contentTabIndex),this.preserveContent=!!e?.preserveContent,this.fitInkBarToContent=e&&e.fitInkBarToContent!=null?e.fitInkBarToContent:!1,this.stretchTabs=e&&e.stretchTabs!=null?e.stretchTabs:!0,this.alignTabs=e&&e.alignTabs!=null?e.alignTabs:null}ngAfterContentChecked(){let e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){let t=this._selectedIndex==null;if(!t){this.selectedTabChange.emit(this._createChangeEvent(e));let a=this._tabBodyWrapper.nativeElement;a.style.minHeight=a.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((a,i)=>a.isActive=i===e),t||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((t,a)=>{t.position=a-e,this._selectedIndex!=null&&t.position==0&&!t.origin&&(t.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{let e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){let t=this._tabs.toArray(),a;for(let i=0;i<t.length;i++)if(t[i].isActive){this._indexToSelect=this._selectedIndex=i,this._lastFocusedTabIndex=null,a=t[i];break}!a&&t[e]&&Promise.resolve().then(()=>{t[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}ngAfterViewInit(){this._tabBodySubscription=this._tabBodies.changes.subscribe(()=>this._bodyCentered(!0))}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(ue(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(t=>t._closestTabGroup===this||!t._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(e){let t=this._tabHeader;t&&(t.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){let t=new Oe;return t.index=e,this._tabs&&this._tabs.length&&(t.tab=this._tabs.toArray()[e]),t}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=be(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e,t){return e.id||`${this._groupId}-label-${t}`}_getTabContentId(e){return`${this._groupId}-content-${e}`}_setTabBodyWrapperHeight(e){if(!this.dynamicHeight||!this._tabBodyWrapperHeight){this._tabBodyWrapperHeight=e;return}let t=this._tabBodyWrapper.nativeElement;t.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(t.style.height=e+"px")}_removeTabBodyWrapperHeight(){let e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this._ngZone.run(()=>this.animationDone.emit())}_handleClick(e,t,a){t.focusIndex=a,e.disabled||(this.selectedIndex=a)}_getTabIndex(e){let t=this._lastFocusedTabIndex??this.selectedIndex;return e===t?0:-1}_tabFocusChanged(e,t){e&&e!=="mouse"&&e!=="touch"&&(this._tabHeader.focusIndex=t)}_bodyCentered(e){e&&this._tabBodies?.forEach((t,a)=>t._setActiveClass(a===this._selectedIndex))}_animationsDisabled(){return this._diAnimationsDisabled||this.animationDuration==="0"||this.animationDuration==="0ms"}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=A({type:n,selectors:[["mat-tab-group"]],contentQueries:function(t,a,i){if(t&1&&$(i,na,5),t&2){let o;h(o=u())&&(a._allTabs=o)}},viewQuery:function(t,a){if(t&1&&(v(Ut,5),v($t,5),v(Fe,5)),t&2){let i;h(i=u())&&(a._tabBodyWrapper=i.first),h(i=u())&&(a._tabHeader=i.first),h(i=u())&&(a._tabBodies=i)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(t,a){t&2&&(w("mat-align-tabs",a.alignTabs),J("mat-"+(a.color||"primary")),nt("--mat-tab-animation-duration",a.animationDuration),x("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",d],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",d],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",d],selectedIndex:[2,"selectedIndex","selectedIndex",V],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",V],disablePagination:[2,"disablePagination","disablePagination",d],disableRipple:[2,"disableRipple","disableRipple",d],preserveContent:[2,"preserveContent","preserveContent",d],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[O([{provide:St,useExisting:n}])],ngContentSelectors:ze,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(t,a){if(t&1){let i=F();G(),b(0,"mat-tab-header",3,0),y("indexFocused",function(c){return l(i),m(a._focusChanged(c))})("selectFocusedIndex",function(c){return l(i),m(a.selectedIndex=c)}),Re(2,Xt,8,17,"div",4,De),_(),Ie(4,Yt,1,0),b(5,"div",5,1),Re(7,Jt,1,10,"mat-tab-body",6,De),_()}t&2&&(g("selectedIndex",a.selectedIndex||0)("disableRipple",a.disableRipple)("disablePagination",a.disablePagination)("aria-label",a.ariaLabel)("aria-labelledby",a.ariaLabelledby),f(2),Pe(a._tabs),f(2),we(a._isServer?4:-1),f(),x("_mat-animation-noopable",a._animationsDisabled()),f(2),Pe(a._tabs))},dependencies:[da,Mt,ht,K,Le,Fe],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})(),Oe=class{index;tab};var li=(()=>{class n{static \u0275fac=function(t){return new(t||n)};static \u0275mod=X({type:n});static \u0275inj=Z({imports:[j,j]})}return n})();var ma=["input"],ba=["label"],ha=["*"],ua=new P("mat-checkbox-default-options",{providedIn:"root",factory:Lt});function Lt(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var C=(function(n){return n[n.Init=0]="Init",n[n.Checked=1]="Checked",n[n.Unchecked=2]="Unchecked",n[n.Indeterminate=3]="Indeterminate",n})(C||{}),Ve=class{source;checked},Et=Lt(),_a=(()=>{class n{_elementRef=r(S);_changeDetectorRef=r(z);_ngZone=r(H);_animationsDisabled=q();_options=r(ua,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){let t=new Ve;return t.source=this,t.checked=e,t}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required;labelPosition="after";name=null;change=new k;indeterminateChange=new k;value;disableRipple;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=C.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){r(ee).load(te);let e=r(new le("tabindex"),{optional:!0});this._options=this._options||Et,this.color=this._options.color||Et.color,this.tabIndex=e==null?0:parseInt(e)||0,this.id=this._uniqueId=r(W).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(e){e.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this.indeterminate)}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate()}set indeterminate(e){let t=e!=this._indeterminate();this._indeterminate.set(e),t&&(e?this._transitionCheckState(C.Indeterminate):this._transitionCheckState(this.checked?C.Checked:C.Unchecked),this.indeterminateChange.emit(e)),this._syncIndeterminate(e)}_indeterminate=re(!1);_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}validate(e){return this.required&&e.value!==!0?{required:!0}:null}registerOnValidatorChange(e){this._validatorChangeFn=e}_transitionCheckState(e){let t=this._currentCheckState,a=this._getAnimationTargetElement();if(!(t===e||!a)&&(this._currentAnimationClass&&a.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(t,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){a.classList.add(this._currentAnimationClass);let i=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{a.classList.remove(i)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){let e=this._options?.clickAction;!this.disabled&&e!=="noop"?(this.indeterminate&&e!=="check"&&Promise.resolve().then(()=>{this._indeterminate.set(!1),this.indeterminateChange.emit(!1)}),this._checked=!this._checked,this._transitionCheckState(this._checked?C.Checked:C.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&e==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate)}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,t){if(this._animationsDisabled)return"";switch(e){case C.Init:if(t===C.Checked)return this._animationClasses.uncheckedToChecked;if(t==C.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case C.Unchecked:return t===C.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case C.Checked:return t===C.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case C.Indeterminate:return t===C.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){let t=this._inputElement;t&&(t.nativeElement.indeterminate=e)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=A({type:n,selectors:[["mat-checkbox"]],viewQuery:function(t,a){if(t&1&&(v(ma,5),v(ba,5)),t&2){let i;h(i=u())&&(a._inputElement=i.first),h(i=u())&&(a._labelElement=i.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(t,a){t&2&&(it("id",a.id),w("tabindex",null)("aria-label",null)("aria-labelledby",null),J(a.color?"mat-"+a.color:"mat-accent"),x("_mat-animation-noopable",a._animationsDisabled)("mdc-checkbox--disabled",a.disabled)("mat-mdc-checkbox-disabled",a.disabled)("mat-mdc-checkbox-checked",a.checked)("mat-mdc-checkbox-disabled-interactive",a.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",d],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",d],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",d],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?void 0:V(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",d],checked:[2,"checked","checked",d],disabled:[2,"disabled","disabled",d],indeterminate:[2,"indeterminate","indeterminate",d]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[O([{provide:ke,useExisting:_e(()=>n),multi:!0},{provide:Ct,useExisting:n,multi:!0}]),fe],ngContentSelectors:ha,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(t,a){if(t&1){let i=F();G(),b(0,"div",3),y("click",function(c){return l(i),m(a._preventBubblingFromLabel(c))}),b(1,"div",4,0)(3,"div",5),y("click",function(){return l(i),m(a._onTouchTargetClick())}),_(),b(4,"input",6,1),y("blur",function(){return l(i),m(a._onBlur())})("click",function(){return l(i),m(a._onInputClick())})("change",function(c){return l(i),m(a._onInteractionEvent(c))}),_(),D(6,"div",7),b(7,"div",8),Ye(),b(8,"svg",9),D(9,"path",10),_(),Je(),D(10,"div",11),_(),D(11,"div",12),_(),b(12,"label",13,2),Q(14),_()()}if(t&2){let i=de(2);g("labelPosition",a.labelPosition),f(4),x("mdc-checkbox--selected",a.checked),g("checked",a.checked)("indeterminate",a.indeterminate)("disabled",a.disabled&&!a.disabledInteractive)("id",a.inputId)("required",a.required)("tabIndex",a.disabled&&!a.disabledInteractive?-1:a.tabIndex),w("aria-label",a.ariaLabel||null)("aria-labelledby",a.ariaLabelledby)("aria-describedby",a.ariaDescribedby)("aria-checked",a.indeterminate?"mixed":null)("aria-controls",a.ariaControls)("aria-disabled",a.disabled&&a.disabledInteractive?!0:null)("aria-expanded",a.ariaExpanded)("aria-owns",a.ariaOwns)("name",a.name)("value",a.value),f(7),g("matRippleTrigger",i)("matRippleDisabled",a.disableRipple||a.disabled)("matRippleCentered",!0),f(),g("for",a.inputId)}},dependencies:[K,ye],styles:[`.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom;padding:calc((var(--mat-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mat-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1;width:var(--mat-checkbox-state-layer-size, 40px);height:var(--mat-checkbox-state-layer-size, 40px);top:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2);right:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2);left:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}@media(forced-colors: active){.mdc-checkbox--disabled{opacity:.5}}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mat-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mat-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mat-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mat-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mat-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-focus-indicator::before{content:""}
@@ -1,2 +1,2 @@
1
- import{Gd as o,Hb as v,Oa as n,Pa as s,Qd as a,ab as l,da as d}from"./chunk-ANRGX57I.js";var u=(()=>{class t{get vertical(){return this._vertical}set vertical(i){this._vertical=a(i)}_vertical=!1;get inset(){return this._inset}set inset(i){this._inset=a(i)}_inset=!1;static \u0275fac=function(e){return new(e||t)};static \u0275cmp=n({type:t,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(e,r){e&2&&(l("aria-orientation",r.vertical?"vertical":"horizontal"),v("mat-divider-vertical",r.vertical)("mat-divider-horizontal",!r.vertical)("mat-divider-inset",r.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(e,r){},styles:[`.mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}
1
+ import{Hb as v,Hd as o,Oa as n,Pa as s,Rd as a,ab as l,da as d}from"./chunk-YPUCOH35.js";var u=(()=>{class t{get vertical(){return this._vertical}set vertical(i){this._vertical=a(i)}_vertical=!1;get inset(){return this._inset}set inset(i){this._inset=a(i)}_inset=!1;static \u0275fac=function(e){return new(e||t)};static \u0275cmp=n({type:t,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(e,r){e&2&&(l("aria-orientation",r.vertical?"vertical":"horizontal"),v("mat-divider-vertical",r.vertical)("mat-divider-horizontal",!r.vertical)("mat-divider-inset",r.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(e,r){},styles:[`.mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}
2
2
  `],encapsulation:2,changeDetection:0})}return t})(),f=(()=>{class t{static \u0275fac=function(e){return new(e||t)};static \u0275mod=s({type:t});static \u0275inj=d({imports:[o,o]})}return t})();export{u as a,f as b};