@mxtommy/kip 2.3.0 → 2.4.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.
- package/CHANGELOG.md +10 -0
- package/README.md +31 -20
- package/package.json +24 -15
- package/public/3rdpartylicenses.txt +25 -0
- package/public/index.html +6 -10
- package/public/main.js +1 -0
- package/public/styles.css +1 -0
- package/public/main.32aba1d68004481e.js +0 -1
- package/public/styles.5e53fc8bc300bdac.css +0 -1
- /package/public/{polyfills.64db6be9cdc8f808.js → polyfills.js} +0 -0
- /package/public/{runtime.e75056c32c37f59d.js → runtime.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
# V 2.4.0
|
|
2
|
+
## New features
|
|
3
|
+
* Added Numeric, Date and Text Widgets color support
|
|
4
|
+
* Added Next Waypoint bearing indicator to Wind Widget
|
|
5
|
+
* Added support for Widget data expiration (TTL). Previously Widget stayed still when a source stopped sending data or the server connection was lost.
|
|
6
|
+
## Improvements
|
|
7
|
+
* Strengthen Widget configuration management when adding new KIP properties
|
|
8
|
+
## Fixes
|
|
9
|
+
* Numeric Widget HH:MM:SS conversion unit broken
|
|
10
|
+
* Wind Widget speed value indicator sometimes doing a full rotating when passing over zero degrees
|
|
1
11
|
# V 2.3.0
|
|
2
12
|
## New features
|
|
3
13
|
* Added support for Signal K Source Priorities
|
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# About KIP
|
|
2
2
|
|
|
3
|
-
KIP is
|
|
3
|
+
KIP is powerful marine instrumentation package to display Signal K data. KIP, much like modern expensive MFDs, is very flexible and can be split up in any arrangements and display all kinds of data available to Signal K server.
|
|
4
4
|
|
|
5
5
|
# Design Goal
|
|
6
6
|
|
|
7
7
|
The idea is to replicate the functionality of MFDs such as the B&G Triton, Raymarine i70, or Garmin GMI20.
|
|
8
|
-
- Display should
|
|
8
|
+
- Display should use the entire screen and not require any scrolling
|
|
9
9
|
- Anything displayed should be as big as possible in the given space
|
|
10
10
|
- Touchscreen user experience should be excellent
|
|
11
11
|
- Layout and configuration should be both easy to operate and flexible
|
|
@@ -14,52 +14,59 @@ The idea is to replicate the functionality of MFDs such as the B&G Triton, Rayma
|
|
|
14
14
|
|
|
15
15
|
# Features
|
|
16
16
|
## Access from Phones, Tablets, Raspberry Pi and Computers
|
|
17
|
-
Simply navigate to `http://<Signal K Server URL>:<Signal K Server port>/@mxtommy/kip` to load KIP and enjoy it's features
|
|
17
|
+
Simply navigate to `http://<Signal K Server URL>:<Signal K Server port>/@mxtommy/kip` to load KIP and enjoy it's features remotely on any device.
|
|
18
|
+
|
|
19
|
+
### Responsive Design
|
|
20
|
+
KIP adjust to the device type and form factor for the best possible user experience.
|
|
21
|
+
|
|
22
|
+
### Touch Devices
|
|
23
|
+
- Swipe left and right to cycle trough your Widget layouts.
|
|
24
|
+
- Double tap to toggle night mode.
|
|
18
25
|
|
|
19
26
|
## Multiple User Profiles
|
|
20
|
-
If you have different roles on board;
|
|
27
|
+
If you have different roles on board; captain, skipper, tactician, navigator, engineers or simply different people with different needs, each can tailor as they wish. The use of profiles can also offers the ability to tie specific configuration arrangements to use case or form factors.
|
|
21
28
|
|
|
22
29
|
## User Experience
|
|
30
|
+
|
|
31
|
+
### Night Mode
|
|
32
|
+
Keep your night vision with a simple tap, regardless of the selected theme. The below image looks very dark, but at night...it's perfect!
|
|
33
|
+
|
|
34
|
+

|
|
35
|
+
|
|
23
36
|
### Built-in Themes
|
|
24
37
|
Use your favorite style from the built-in themes gallery.
|
|
25
38
|
|
|
26
39
|
Modern Dark Theme
|
|
27
40
|

|
|
28
|
-
|
|
41
|
+
|
|
29
42
|
Signal K Inspired Theme
|
|
30
43
|

|
|
31
|
-
|
|
44
|
+
|
|
32
45
|
Light Blue Theme
|
|
33
46
|

|
|
34
47
|
|
|
35
48
|
NOTE: Request a new theme by sending us inspirational/reference material (web sites, picture, etc.).
|
|
36
49
|
If we fall in love, we will do it. Even better, branch and contribute yourself. We will assist and guide!
|
|
37
50
|
|
|
38
|
-
### Night Mode
|
|
39
|
-
Keep your night vision woth a simple tab, regardless of the selected theme. The below image looks very dark, but at night...it's perfect!
|
|
40
|
-
|
|
41
|
-

|
|
42
|
-
|
|
43
|
-
|
|
44
51
|
## Gauge Layout and Configuration
|
|
45
52
|
### Flexible and Easy
|
|
46
53
|
Meant to build purposeful screen(s) with however many gauges or widgets you want, where you want them.
|
|
47
54
|
|
|
48
|
-
Quickly
|
|
55
|
+
Quickly divide the screen area into zones, resize and position, add the gauge of your choosing. Need more? Add as many additional pages as you whish to keep screens purposeful. Simply tap the navigation button keys to quickly rotate from page to page.
|
|
49
56
|

|
|
50
57
|
|
|
51
|
-
Easy basic gauge and widget
|
|
58
|
+
Easy basic gauge and widget configuration.
|
|
52
59
|

|
|
53
60
|
|
|
54
61
|
See what Signal K has to offer that you can leverage in a gauge. Select it and tweak the display options for your purpose.
|
|
55
62
|

|
|
56
63
|
|
|
57
|
-
Many units are supported. Choose your
|
|
64
|
+
Many units are supported. Choose your preferred App defaults, than tweak it gauge-by-gauge as necessary. KIP will convert the displayed units for you.
|
|
58
65
|

|
|
59
66
|
|
|
60
67
|
### Reusable Gauge and Widget Library
|
|
61
|
-
All KIP Gauges and Widgets are visual presentation controls that are very versatile with multiple configuration options available to suit your needs:
|
|
62
|
-
- Text display: Create gauges to display any textual data sent by your system - MPPT state,
|
|
68
|
+
All KIP Gauges and Widgets are visual presentation controls that are very versatile with multiple advanced configuration options available to suit your needs:
|
|
69
|
+
- Text display: Create gauges to display any textual data sent by your system - MPPT state, vessel details,Next Waypoint, Fusion radio song information, noon and sun phases, any system components configuration detail or statues available, etc.
|
|
63
70
|
- Numeric display: Create gauges to display any numerical data sent by your system - SOG, Depth, Winds Speed, VMG, refrigerator temperature, weather data, etc.
|
|
64
71
|
- Wind gauge: Your typical sailboat wind gauge
|
|
65
72
|
- Autopilot: Operate your autopilot from any device remotely
|
|
@@ -67,8 +74,8 @@ The idea is to replicate the functionality of MFDs such as the B&G Triton, Rayma
|
|
|
67
74
|
- Linear electrical gauge: A visual display for electrical numerical data - chargers, MPPT, shunt, etc.
|
|
68
75
|
- Radial gauge: Visually display any numerical data on a radial scale - heading, compass, Speed, etc.
|
|
69
76
|
- Radial and linear Steel gauge: Old school look & fell gauges
|
|
70
|
-
- Button and Switch control: Operate remote devices - light switches,
|
|
71
|
-
- Date display: a timezone aware control with flexible presentation
|
|
77
|
+
- Button and Switch control: Operate remote devices - light switches, bilge pump, solenoid, any Signal K path that support boolean PUT operations
|
|
78
|
+
- Date display: a timezone aware control with flexible presentation formatting support
|
|
72
79
|
- Race Timer: Track regatta start sequence
|
|
73
80
|
- Historical datagram chart: Display numerical data over time on a chart
|
|
74
81
|
- Embedded Webpage: A powerful way of integrating any web based content or application within with your KIP layout - Grafana dashboards, Node-RED dashboard, internet weather services, Youtube, Netflix, Twitter, Gmail, your own standalone webapp, you name it!
|
|
@@ -84,6 +91,10 @@ The idea is to replicate the functionality of MFDs such as the B&G Triton, Rayma
|
|
|
84
91
|
Grafana Embedded Webpage sample
|
|
85
92
|

|
|
86
93
|
|
|
94
|
+
### Harness The Power Of Data State Notifications
|
|
95
|
+
Stay informed with notifications about the state of the data you are interested in.
|
|
96
|
+
As an example, KIP can notify (inform, warn, alert) you when the water depth or a temperature sensor reaches certain levels. In addition to KIP's centralized basic visual and audio notification support, each type of Widget offers a tailored visual representation appropriate
|
|
97
|
+
to their design objectives for an optimal user experience.
|
|
87
98
|
|
|
88
99
|
# Developing
|
|
89
100
|
|
|
@@ -132,7 +143,7 @@ Join us on Slack -> Signalk-dev / Apps_and_client channel. We will hook up and a
|
|
|
132
143
|
* Improved Zones support
|
|
133
144
|
* Add a KIP Widget CLI Schematic to automate new Widget creation and improve contribution
|
|
134
145
|
* Improved error logging / performance gain
|
|
135
|
-
* Retire outdated
|
|
146
|
+
* Retire outdated SteelGauges
|
|
136
147
|
* Rebuild alerting to new Signal K Specifications
|
|
137
148
|
* Attitude Indicator Widget - Help Wanted
|
|
138
149
|
* Sailing Polars Widget - Help Wanted
|
package/package.json
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mxtommy/kip",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"description": "An advanced and versatile marine instrumentation package to display Signal K data.",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"author": {
|
|
7
|
-
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Thomas St.Pierre",
|
|
8
|
+
"email": "thomas@samoht.ca"
|
|
9
|
+
},
|
|
10
|
+
"contributors": [
|
|
11
|
+
{
|
|
12
|
+
"name": "David Godin",
|
|
13
|
+
"email": "godind@hotmail.com"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
8
16
|
"homepage": "https://github.com/mxtommy/Kip",
|
|
9
17
|
"bugs": "https://github.com/mxtommy/Kip/issues",
|
|
10
18
|
"repository": {
|
|
@@ -40,6 +48,7 @@
|
|
|
40
48
|
"@angular/compiler-cli": "14.3.0",
|
|
41
49
|
"@angular/language-service": "14.3.0",
|
|
42
50
|
"@types/canvas-gauges": "^2.1.2",
|
|
51
|
+
"@types/hammerjs": "^2.0.45",
|
|
43
52
|
"@types/howler": "^2.2.10",
|
|
44
53
|
"@types/jasmine": "~3.6.0",
|
|
45
54
|
"@types/jasminewd2": "^2.0.9",
|
|
@@ -63,31 +72,31 @@
|
|
|
63
72
|
"typescript": "^4.6.4"
|
|
64
73
|
},
|
|
65
74
|
"dependencies": {
|
|
66
|
-
"@angular/compiler": "14.3.0",
|
|
67
75
|
"@angular/animations": "14.3.0",
|
|
68
|
-
"@angular/common": "14.3.0",
|
|
69
76
|
"@angular/cdk": "^14.2.7",
|
|
77
|
+
"@angular/common": "14.3.0",
|
|
78
|
+
"@angular/compiler": "14.3.0",
|
|
70
79
|
"@angular/core": "14.3.0",
|
|
71
80
|
"@angular/forms": "14.3.0",
|
|
81
|
+
"@angular/material": "^14.2.7",
|
|
72
82
|
"@angular/platform-browser": "14.3.0",
|
|
73
83
|
"@angular/platform-browser-dynamic": "14.3.0",
|
|
74
84
|
"@angular/router": "14.3.0",
|
|
75
|
-
"@angular/material": "^14.2.7",
|
|
76
|
-
"rxjs": "^7.5.7",
|
|
77
|
-
"rx-dom-html": "^7.0.3",
|
|
78
|
-
"zone.js": "~0.11.4",
|
|
79
|
-
"core-js": "^3.13.1",
|
|
80
|
-
"screenfull": "^6.0.2",
|
|
81
|
-
"hammerjs": "^2.0.8",
|
|
82
|
-
"howler": "^2.2.4",
|
|
83
|
-
"compare-versions": "^5.0.1",
|
|
84
85
|
"angular-resize-event": "^3.2.0",
|
|
85
86
|
"angular-split": "^14.1.0",
|
|
86
87
|
"canvas-gauges": "^2.1.7",
|
|
87
88
|
"chart.js": "^3.5.1",
|
|
88
89
|
"chartjs-adapter-date-fns": "^3.0.0",
|
|
90
|
+
"compare-versions": "^5.0.1",
|
|
91
|
+
"core-js": "^3.13.1",
|
|
89
92
|
"date-fns": "^2.30.0",
|
|
93
|
+
"hammerjs": "^2.0.8",
|
|
94
|
+
"howler": "^2.2.4",
|
|
90
95
|
"js-quantities": "^1.8.0",
|
|
91
|
-
"lodash-es": "^4.17.21"
|
|
96
|
+
"lodash-es": "^4.17.21",
|
|
97
|
+
"rx-dom-html": "^7.0.3",
|
|
98
|
+
"rxjs": "^7.5.7",
|
|
99
|
+
"screenfull": "^6.0.2",
|
|
100
|
+
"zone.js": "~0.11.4"
|
|
92
101
|
}
|
|
93
102
|
}
|
|
@@ -399,6 +399,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
399
399
|
SOFTWARE.
|
|
400
400
|
|
|
401
401
|
|
|
402
|
+
hammerjs
|
|
403
|
+
MIT
|
|
404
|
+
The MIT License (MIT)
|
|
405
|
+
|
|
406
|
+
Copyright (C) 2011-2014 by Jorik Tangelder (Eight Media)
|
|
407
|
+
|
|
408
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
409
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
410
|
+
in the Software without restriction, including without limitation the rights
|
|
411
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
412
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
413
|
+
furnished to do so, subject to the following conditions:
|
|
414
|
+
|
|
415
|
+
The above copyright notice and this permission notice shall be included in
|
|
416
|
+
all copies or substantial portions of the Software.
|
|
417
|
+
|
|
418
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
419
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
420
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
421
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
422
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
423
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
424
|
+
THE SOFTWARE.
|
|
425
|
+
|
|
426
|
+
|
|
402
427
|
howler
|
|
403
428
|
MIT
|
|
404
429
|
Copyright (c) 2013-2020 James Simpson and GoldFire Studios, Inc.
|
package/public/index.html
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head>
|
|
2
|
-
<meta charset="utf-8">
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><base href="./">
|
|
2
|
+
<meta charset="utf-8" name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1">
|
|
3
3
|
<title>KIP</title>
|
|
4
|
-
<
|
|
5
|
-
|
|
4
|
+
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
|
5
|
+
<style>@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:root{--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}</style><link rel="stylesheet" href="assets/fontawesome6/css/all.min.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="assets/fontawesome6/css/all.min.css"></noscript>
|
|
6
6
|
<script src="assets/tween-min.js"></script>
|
|
7
7
|
<script src="assets/steelseries-min.js"></script>
|
|
8
8
|
<script src="assets/NoSleep.min.js"></script>
|
|
9
|
-
|
|
10
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
11
|
-
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
|
12
|
-
<style>@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:root{--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}</style><link rel="stylesheet" href="assets/fontawesome6/css/all.min.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="assets/fontawesome6/css/all.min.css"></noscript>
|
|
13
|
-
<style>html,body,app-root{height:100%}body{margin:0}</style><link rel="stylesheet" href="styles.5e53fc8bc300bdac.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.5e53fc8bc300bdac.css"></noscript><link rel="manifest" href="manifest.json" crossorigin="use-credentials"></head>
|
|
9
|
+
<style>html,body,app-root{height:100%}body{margin:0}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript><link rel="manifest" href="manifest.json" crossorigin="use-credentials"></head>
|
|
14
10
|
|
|
15
11
|
<body>
|
|
16
12
|
<app-root></app-root>
|
|
17
|
-
<script src="runtime.
|
|
13
|
+
<script src="runtime.js" type="module"></script><script src="polyfills.js" type="module"></script><script src="main.js" type="module"></script>
|
|
18
14
|
|
|
19
15
|
</body></html>
|