iobroker.modbus 4.0.4 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -30
- package/admin/asset-manifest.json +6 -16
- package/admin/index_m.html +1 -1
- package/admin/static/css/main.fb1757a1.css +2 -0
- package/admin/static/css/main.fb1757a1.css.map +1 -0
- package/admin/static/js/main.dca2f512.js +3 -0
- package/admin/static/js/{2.29338295.chunk.js.LICENSE.txt → main.dca2f512.js.LICENSE.txt} +31 -45
- package/admin/static/js/main.dca2f512.js.map +1 -0
- package/io-package.json +82 -37
- package/lib/jsmodbus/handler/client/ReadCoils.js +9 -8
- package/lib/jsmodbus/handler/client/ReadDiscreteInputs.js +6 -6
- package/lib/jsmodbus/handler/client/ReadHoldingRegisters.js +5 -5
- package/lib/jsmodbus/handler/client/ReadInputRegisters.js +6 -6
- package/lib/jsmodbus/handler/client/WriteMultipleCoils.js +5 -5
- package/lib/jsmodbus/handler/client/WriteMultipleRegisters.js +5 -5
- package/lib/jsmodbus/handler/client/WriteSingleCoil.js +4 -4
- package/lib/jsmodbus/handler/client/WriteSingleRegister.js +5 -5
- package/lib/jsmodbus/handler/server/ReadCoils.js +32 -15
- package/lib/jsmodbus/handler/server/ReadDiscreteInputs.js +3 -2
- package/lib/jsmodbus/handler/server/ReadHoldingRegisters.js +10 -11
- package/lib/jsmodbus/handler/server/ReadInputRegisters.js +3 -2
- package/lib/jsmodbus/handler/server/WriteMultipleCoils.js +5 -2
- package/lib/jsmodbus/handler/server/WriteMultipleRegisters.js +6 -3
- package/lib/jsmodbus/handler/server/WriteSingleCoil.js +5 -2
- package/lib/jsmodbus/handler/server/WriteSingleRegister.js +5 -2
- package/lib/master.js +6 -2
- package/main.js +17 -12
- package/package.json +6 -6
- package/admin/static/css/2.faf2f676.chunk.css +0 -2
- package/admin/static/css/2.faf2f676.chunk.css.map +0 -1
- package/admin/static/css/main.e2d673ee.chunk.css +0 -2
- package/admin/static/css/main.e2d673ee.chunk.css.map +0 -1
- package/admin/static/js/2.29338295.chunk.js +0 -3
- package/admin/static/js/2.29338295.chunk.js.map +0 -1
- package/admin/static/js/main.6af5c534.chunk.js +0 -2
- package/admin/static/js/main.6af5c534.chunk.js.map +0 -1
- package/admin/static/js/runtime-main.3ac94131.js +0 -2
- package/admin/static/js/runtime-main.3ac94131.js.map +0 -1
package/README.md
CHANGED
|
@@ -124,7 +124,7 @@ This offset is added to the read value after above multiplication. So the calcul
|
|
|
124
124
|
|
|
125
125
|
### Formula
|
|
126
126
|
This field can be used for advanced calculations if Factor and Offset is not sufficient. If this field is set, then the Factor and Offset field is ignored.
|
|
127
|
-
The Formula is executed by the eval() function. Therefore all common functions are supported. Especially the Math functions. The formula must comply with Javascript syntax, therefore also take care about upper and lower cases.
|
|
127
|
+
The Formula is executed by the eval() function. Therefore, all common functions are supported. Especially the Math functions. The formula must comply with Javascript syntax, therefore also take care about upper and lower cases.
|
|
128
128
|
|
|
129
129
|
In the formula, "x" has to be used for the read value from Modbus. E.g. `x * Math.pow(10, sf['40065'])`
|
|
130
130
|
|
|
@@ -151,36 +151,36 @@ Cyclic write
|
|
|
151
151
|
Use value as scaling factor. This is needed to used dynamic scaling factors which are on some systems provided through values on interface. If a value is marked with this flac, then the value will stored into a variable with following naming convention: sf['Modbus_address']. This variable can then later used in any formula for other parameters. E.g. following formula can set: "(x * sf['40065']) + 50;"
|
|
152
152
|
|
|
153
153
|
## Data types
|
|
154
|
-
- uint16be - Unsigned 16 bit (Big Endian): AABB => AABB
|
|
155
|
-
- uint16le - Unsigned 16 bit (Little Endian): AABB => BBAA
|
|
156
|
-
- int16be - Signed 16 bit (Big Endian): AABB => AABB
|
|
157
|
-
- int16le - Signed 16 bit (Little Endian): AABB => BBAA
|
|
158
|
-
- uint32be - Unsigned 32 bit (Big Endian): AABBCCDD => AABBCCDD
|
|
159
|
-
- uint32le - Unsigned 32 bit (Little Endian): AABBCCDD => DDCCBBAA
|
|
160
|
-
- uint32sw - Unsigned 32 bit (Big Endian Word Swap): AABBCCDD => CCDDAABB
|
|
161
|
-
- uint32sb - Unsigned 32 bit (Big Endian Byte Swap): AABBCCDD => DDCCBBAA
|
|
162
|
-
- int32be - Signed 32 bit (Big Endian): AABBCCDD => AABBCCDD
|
|
163
|
-
- int32le - Signed 32 bit (Little Endian): ABBCCDD => DDCCBBAA
|
|
164
|
-
- int32sw - Signed 32 bit (Big Endian Word Swap): AABBCCDD => CCDDAABB
|
|
165
|
-
- int32sb - Signed 32 bit (Big Endian Byte Swap): AABBCCDD => DDCCBBAA
|
|
166
|
-
- uint64be - Unsigned 64 bit (Big Endian): AABBCCDDEEFFGGHH => AABBCCDDEEFFGGHH
|
|
167
|
-
- uint64le - Unsigned 64 bit (Little Endian): AABBCCDDEEFFGGHH => HHGGFFEEDDCCBBAA
|
|
168
|
-
- uint8be - Unsigned 8 bit (Big Endian): AA => AA
|
|
169
|
-
- uint8le - Unsigned 8 bit (Little Endian): AA => AA
|
|
170
|
-
- int8be - Signed 8 bit (Big Endian): AA => AA
|
|
171
|
-
- int8le - Signed 8 bit (Little Endian): AA => AA
|
|
172
|
-
- floatbe - Float (Big Endian): AABBCCDD => AABBCCDD
|
|
173
|
-
- floatle - Float (Little Endian): AABBCCDD => DDCCBBAA
|
|
174
|
-
- floatsw - Float (Big Endian Word Swap): AABBCCDD => CCDDAABB
|
|
175
|
-
- floatsb - Float (Big Endian Byte Swap): AABBCCDD => DDCCBBAA
|
|
176
|
-
- doublebe - Double (Big Endian): AABBCCDDEEFFGGHH => AABBCCDDEEFFGGHH
|
|
177
|
-
- doublele - Double (Little Endian): AABBCCDDEEFFGGHH => HHGGFFEEDDCCBBAA
|
|
178
|
-
- string - String (Zero-end): ABCDEF\0 => ABCDEF\0
|
|
179
|
-
- stringle - String (Little Endian, Zero-end): BADCFE\0 => ABCDEF\0
|
|
154
|
+
- `uint16be` - `Unsigned 16 bit (Big Endian): AABB => AABB`
|
|
155
|
+
- `uint16le` - `Unsigned 16 bit (Little Endian): AABB => BBAA`
|
|
156
|
+
- `int16be` - `Signed 16 bit (Big Endian): AABB => AABB`
|
|
157
|
+
- `int16le` - `Signed 16 bit (Little Endian): AABB => BBAA`
|
|
158
|
+
- `uint32be` - `Unsigned 32 bit (Big Endian): AABBCCDD => AABBCCDD`
|
|
159
|
+
- `uint32le` - `Unsigned 32 bit (Little Endian): AABBCCDD => DDCCBBAA`
|
|
160
|
+
- `uint32sw` - `Unsigned 32 bit (Big Endian Word Swap): AABBCCDD => CCDDAABB`
|
|
161
|
+
- `uint32sb` - `Unsigned 32 bit (Big Endian Byte Swap): AABBCCDD => DDCCBBAA`
|
|
162
|
+
- `int32be` - `Signed 32 bit (Big Endian): AABBCCDD => AABBCCDD`
|
|
163
|
+
- `int32le` - `Signed 32 bit (Little Endian): ABBCCDD => DDCCBBAA`
|
|
164
|
+
- `int32sw` - `Signed 32 bit (Big Endian Word Swap): AABBCCDD => CCDDAABB`
|
|
165
|
+
- `int32sb` - `Signed 32 bit (Big Endian Byte Swap): AABBCCDD => DDCCBBAA`
|
|
166
|
+
- `uint64be` - `Unsigned 64 bit (Big Endian): AABBCCDDEEFFGGHH => AABBCCDDEEFFGGHH`
|
|
167
|
+
- `uint64le` - `Unsigned 64 bit (Little Endian): AABBCCDDEEFFGGHH => HHGGFFEEDDCCBBAA`
|
|
168
|
+
- `uint8be` - `Unsigned 8 bit (Big Endian): AA => AA`
|
|
169
|
+
- `uint8le` - `Unsigned 8 bit (Little Endian): AA => AA`
|
|
170
|
+
- `int8be` - `Signed 8 bit (Big Endian): AA => AA`
|
|
171
|
+
- `int8le` - `Signed 8 bit (Little Endian): AA => AA`
|
|
172
|
+
- `floatbe` - `Float (Big Endian): AABBCCDD => AABBCCDD`
|
|
173
|
+
- `floatle` - `Float (Little Endian): AABBCCDD => DDCCBBAA`
|
|
174
|
+
- `floatsw` - `Float (Big Endian Word Swap): AABBCCDD => CCDDAABB`
|
|
175
|
+
- `floatsb` - `Float (Big Endian Byte Swap): AABBCCDD => DDCCBBAA`
|
|
176
|
+
- `doublebe` - `Double (Big Endian): AABBCCDDEEFFGGHH => AABBCCDDEEFFGGHH`
|
|
177
|
+
- `doublele` - `Double (Little Endian): AABBCCDDEEFFGGHH => HHGGFFEEDDCCBBAA`
|
|
178
|
+
- `string` - `String (Zero-end): ABCDEF\0 => ABCDEF\0`
|
|
179
|
+
- `stringle` - `String (Little Endian, Zero-end): BADCFE\0 => ABCDEF\0`
|
|
180
180
|
|
|
181
181
|
Following description was copied from [here](http://www.chipkin.com/how-real-floating-point-and-32-bit-data-is-encoded-in-modbus-rtu-messages/)
|
|
182
182
|
|
|
183
|
-
The point-to-point Modbus protocol is a popular choice for RTU communications if for no other reason that
|
|
183
|
+
The point-to-point Modbus protocol is a popular choice for RTU communications if for no other reason that its basic convenience. The protocol itself controls the interactions of each device on a Modbus network, how device establishes a known address, how each device recognizes its messages and how basic information is extracted from the data. In essence, the protocol is the foundation of the entire Modbus network.
|
|
184
184
|
|
|
185
185
|
Such convenience does not come without some complications however, and Modbus RTU Message protocol is no exception. The protocol itself was designed based on devices with a 16-bit register length. Consequently, special considerations were required when implementing 32-bit data elements. This implementation settled on using two consecutive 16-bit registers to represent 32 bits of data or essentially 4 bytes of data. It is within these 4 bytes of data that single-precision floating point data can be encoded into a Modbus RTU message.
|
|
186
186
|
|
|
@@ -191,7 +191,7 @@ For example, the number 123/456.00 as defined in the IEEE 754 standard for singl
|
|
|
191
191
|
|
|
192
192
|

|
|
193
193
|
|
|
194
|
-
The affects of various byte orderings are significant. For example, ordering the 4 bytes of data that represent 123456.00 in a
|
|
194
|
+
The affects of various byte orderings are significant. For example, ordering the 4 bytes of data that represent 123456.00 in a `B A D C` sequence in known as a “byte swap”. When interpreted as an IEEE 744 floating point data type, the result is quite different:
|
|
195
195
|
|
|
196
196
|

|
|
197
197
|
|
|
@@ -209,7 +209,8 @@ Clearly, when using network protocols such as Modbus, strict attention must be p
|
|
|
209
209
|
|
|
210
210
|
The Modbus protocol itself is declared as a ‘big-Endian’ protocol, as per the Modbus Application Protocol Specification, V1.1.b:
|
|
211
211
|
|
|
212
|
-
|
|
212
|
+
**Modbus uses a “big-Endian” representation for addresses and data items.
|
|
213
|
+
This means that when a numerical quantity larger than a single byte is transmitted, the most significant byte is sent first.**
|
|
213
214
|
|
|
214
215
|
Big-Endian is the most commonly used format for network protocols – so common, in fact, that it is also referred to as ‘network order’.
|
|
215
216
|
|
|
@@ -275,6 +276,14 @@ There are some programs in folder *test' to test the TCP communication:
|
|
|
275
276
|
### **WORK IN PROGRESS**
|
|
276
277
|
-->
|
|
277
278
|
## Changelog
|
|
279
|
+
### 5.0.2 (2022-05-13)
|
|
280
|
+
* (bluefox) Added debug outputs to catch errors
|
|
281
|
+
|
|
282
|
+
### 5.0.0 (2022-05-11)
|
|
283
|
+
* BREAKING: All space characters will be replaced with underscores now in the Objects IDs, not only the first one.
|
|
284
|
+
* (Apollon77) Catch error reported by sentry when invalid Master port is entered
|
|
285
|
+
* (bluefox) GUI migrated to mui-v5
|
|
286
|
+
|
|
278
287
|
### 4.0.4 (2022-03-25)
|
|
279
288
|
* (Apollon77/UncleSamSwiss) Prevent invalid state log
|
|
280
289
|
|
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files": {
|
|
3
|
-
"main.css": "./static/css/main.
|
|
4
|
-
"main.js": "./static/js/main.
|
|
5
|
-
"main.js.map": "./static/js/main.6af5c534.chunk.js.map",
|
|
6
|
-
"runtime-main.js": "./static/js/runtime-main.3ac94131.js",
|
|
7
|
-
"runtime-main.js.map": "./static/js/runtime-main.3ac94131.js.map",
|
|
8
|
-
"static/css/2.faf2f676.chunk.css": "./static/css/2.faf2f676.chunk.css",
|
|
9
|
-
"static/js/2.29338295.chunk.js": "./static/js/2.29338295.chunk.js",
|
|
10
|
-
"static/js/2.29338295.chunk.js.map": "./static/js/2.29338295.chunk.js.map",
|
|
3
|
+
"main.css": "./static/css/main.fb1757a1.css",
|
|
4
|
+
"main.js": "./static/js/main.dca2f512.js",
|
|
11
5
|
"index.html": "./index.html",
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"static/js/2.29338295.chunk.js.LICENSE.txt": "./static/js/2.29338295.chunk.js.LICENSE.txt"
|
|
6
|
+
"main.fb1757a1.css.map": "./static/css/main.fb1757a1.css.map",
|
|
7
|
+
"main.dca2f512.js.map": "./static/js/main.dca2f512.js.map"
|
|
15
8
|
},
|
|
16
9
|
"entrypoints": [
|
|
17
|
-
"static/
|
|
18
|
-
"static/
|
|
19
|
-
"static/js/2.29338295.chunk.js",
|
|
20
|
-
"static/css/main.e2d673ee.chunk.css",
|
|
21
|
-
"static/js/main.6af5c534.chunk.js"
|
|
10
|
+
"static/css/main.fb1757a1.css",
|
|
11
|
+
"static/js/main.dca2f512.js"
|
|
22
12
|
]
|
|
23
13
|
}
|
package/admin/index_m.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="./manifest.json"/><script type="text/javascript" src="./../../lib/js/socket.io.js"></script><title>Modbus</title><
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="./manifest.json"/><script type="text/javascript" src="./../../lib/js/socket.io.js"></script><title>Modbus</title><script defer="defer" src="./static/js/main.dca2f512.js"></script><link href="./static/css/main.fb1757a1.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
::-webkit-scrollbar{width:6px}.logo-background-colored,.logo-background-light{background:#fff}.logo-background-blue,.logo-background-dark{background:#000}.logo-div{left:50%;overflow:hidden;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);z-index:2}.logo-border,.logo-div{border-radius:50%;position:absolute}.logo-border{border-color:#39c #164477 #164477;border-style:solid;box-sizing:border-box;height:100%;width:100%}.logo-top{height:16%;position:absolute;top:0;width:4.5%;z-index:2}.logo-i{height:60%;top:20%}.logo-i,.logo-i-top{background:#39c;left:42%;position:absolute;width:14.5%}.logo-i-top{border-radius:100%;height:4%}.logo-back{height:100%;overflow:hidden;width:100%;z-index:0}@-webkit-keyframes logo-grow{0%{height:230px;opacity:1;-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);width:230px}99%{height:230px;opacity:0;-webkit-transform:translate(-50%,-50%) scale(10);transform:translate(-50%,-50%) scale(10);width:230px}to{height:0;opacity:0;width:0}}@keyframes logo-grow{0%{height:230px;opacity:1;-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);width:230px}99%{height:230px;opacity:0;-webkit-transform:translate(-50%,-50%) scale(10);transform:translate(-50%,-50%) scale(10);width:230px}to{height:0;opacity:0;width:0}}@-webkit-keyframes logo-spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes logo-spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes logo-color-inside-light{0%{background:#fefefe}to{background:#39c}}@keyframes logo-color-inside-light{0%{background:#fefefe}to{background:#39c}}@-webkit-keyframes logo-color-inside-dark{0%{background:#030303}to{background:#39c}}@keyframes logo-color-inside-dark{0%{background:#030303}to{background:#39c}}@-webkit-keyframes logo-color-inside-colored{0%{background:#fefefe}to{background:#39c}}@keyframes logo-color-inside-colored{0%{background:#fefefe}to{background:#39c}}@-webkit-keyframes logo-color-inside-blue{0%{background:#030303}to{background:#39c}}@keyframes logo-color-inside-blue{0%{background:#030303}to{background:#39c}}@-webkit-keyframes logo-color-outside-light{0%{border-color:#fefefe}to{border-color:#39c #164477 #164477}}@keyframes logo-color-outside-light{0%{border-color:#fefefe}to{border-color:#39c #164477 #164477}}@-webkit-keyframes logo-color-outside-dark{0%{border-color:#040404}to{border-color:#39c #164477 #164477}}@keyframes logo-color-outside-dark{0%{border-color:#040404}to{border-color:#39c #164477 #164477}}@-webkit-keyframes logo-color-outside-colored{0%{border-color:#fefefe}to{border-color:#39c #164477 #164477}}@keyframes logo-color-outside-colored{0%{border-color:#fefefe}to{border-color:#39c #164477 #164477}}@-webkit-keyframes logo-color-outside-blue{0%{border-color:#040404}to{border-color:#39c #164477 #164477}}@keyframes logo-color-outside-blue{0%{border-color:#040404}to{border-color:#39c #164477 #164477}}.logo-animate-wait{-webkit-animation:logo-color-outside 1.5s,logo-spin 1.5s linear infinite;animation:logo-color-outside 1.5s,logo-spin 1.5s linear infinite}.logo-animate-grow-light{background:#ddd}.logo-animate-grow-dark{background:#1d1d1d}.logo-animate-grow-colored{background:#ddd}.logo-animate-grow-blue{background:#1d1d1d}.logo-animate-grow{-webkit-animation:logo-grow 1s ease 1 forwards;animation:logo-grow 1s ease 1 forwards;border-radius:50%;display:inline-block;height:245px;left:50%;position:absolute;text-align:center;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:245px;z-index:1}.logo-animate-color-inside-light{-webkit-animation:logo-color-inside-light 2.5s;animation:logo-color-inside-light 2.5s}.logo-animate-color-inside-dark{-webkit-animation:logo-color-inside-dark 2.5s;animation:logo-color-inside-dark 2.5s}.logo-animate-color-inside-colored{-webkit-animation:logo-color-inside-colored 2.5s;animation:logo-color-inside-colored 2.5s}.logo-animate-color-inside-blue{-webkit-animation:logo-color-inside-blue 2.5s;animation:logo-color-inside-blue 2.5s}.logo-animate-color-outside-light{-webkit-animation:logo-color-outside-light 1.5s;animation:logo-color-outside-light 1.5s}.logo-animate-color-outside-dark{-webkit-animation:logo-color-outside-dark 1.5s;animation:logo-color-outside-dark 1.5s}.logo-animate-color-outside-colored{-webkit-animation:logo-color-outside-colored 1.5s;animation:logo-color-outside-colored 1.5s}.logo-animate-color-outside-blue{-webkit-animation:logo-color-outside-blue 1.5s;animation:logo-color-outside-blue 1.5s}body,html{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;overflow:hidden;padding:0;width:100%}::-webkit-scrollbar-track{background-color:#ccc;border-radius:5px}::-webkit-scrollbar{background-color:#ccc;height:5px;width:5px}::-webkit-scrollbar-thumb{background-color:#575757;border-radius:5px}#root,.App{height:100%}@-webkit-keyframes glow{0%{background-color:initial}to{background-color:#58c458}}@keyframes glow{0%{background-color:initial}to{background-color:#58c458}}
|
|
2
|
+
/*# sourceMappingURL=main.fb1757a1.css.map*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/css/main.fb1757a1.css","mappings":"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","sources":["index.css","../node_modules/@iobroker/adapter-react-v5/Components/loader.css","../node_modules/@iobroker/adapter-react-v5/index.css"],"sourcesContent":["html {\n height: 100%;\n}\nbody {\n margin: 0;\n padding: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n/* scrollbar */\n*::-webkit-scrollbar-track {\n background-color: #ccc;\n}\n*::-webkit-scrollbar {\n width: 6px;\n background-color: #ccc;\n}\n*::-webkit-scrollbar-thumb {\n background-color: #575757;\n}\n\n\n#root {\n height: 100%;\n}\n.App {\n height: 100%;\n}","/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\n\n.logo-background-light, .logo-background-colored {\n background: white;\n}\n.logo-background-dark, .logo-background-blue {\n background: black;\n}\n.logo-div {\n position: absolute;\n top: 50%;\n left: 50%;\n -ms-transform: translateX(-50%) translateY(-50%);\n -webkit-transform: translate(-50%,-50%);\n transform: translate(-50%,-50%);\n overflow: hidden;\n border-radius: 50%;\n z-index: 2;\n}\n.logo-border {\n /*border-color: #164477;*/\n border-top-color: #3399CC;\n border-left-color: #164477;\n border-bottom-color: #164477;\n border-right-color: #164477;\n border-radius: 50%;\n border-style: solid;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n position: absolute;\n}\n.logo-top {\n position: absolute;\n width: 4.5%;\n height: 16%;\n top: 0;\n z-index: 2;\n}\n.logo-i {\n position: absolute;\n width: 14.5%;\n height: 60%;\n top: 20%;\n left: 42%;\n background: #3399CC;\n}\n.logo-i-top {\n position: absolute;\n width: 14.5%;\n height: 4%;\n left: 42%;\n background: #3399CC;\n border-radius: 100%;\n}\n.logo-back {\n width: 100%;\n height: 100%;\n z-index: 0;\n overflow: hidden;\n}\n@keyframes logo-grow {\n 0% {\n width: 230px;\n height: 230px;\n transform: translate(-50%,-50%) scale(1);\n opacity: 1\n }\n 99% {\n width: 230px;\n height: 230px;\n transform: translate(-50%,-50%) scale(10);\n opacity: 0;\n }\n 100% {\n width: 0;\n height: 0;\n opacity: 0;\n }\n}\n@keyframes logo-spin { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } }\n@keyframes logo-color-inside-light {\n 0% {\n background: #FEFEFE;\n }\n 100% {\n background: #3399CC;\n }\n}\n@keyframes logo-color-inside-dark {\n 0% {\n background: #030303;\n }\n 100% {\n background: #3399CC;\n }\n}\n@keyframes logo-color-inside-colored {\n 0% {\n background: #FEFEFE;\n }\n 100% {\n background: #3399CC;\n }\n}\n@keyframes logo-color-inside-blue {\n 0% {\n background: #030303;\n }\n 100% {\n background: #3399CC;\n }\n}\n\n@keyframes logo-color-outside-light {\n 0% {\n border-color: #FEFEFE;\n }\n 100% {\n border-top-color: #3399CC;\n border-left-color: #164477;\n border-bottom-color: #164477;\n border-right-color: #164477;\n }\n}\n@keyframes logo-color-outside-dark {\n 0% {\n border-color: #040404;\n }\n 100% {\n border-top-color: #3399CC;\n border-left-color: #164477;\n border-bottom-color: #164477;\n border-right-color: #164477;\n }\n}\n@keyframes logo-color-outside-colored {\n 0% {\n border-color: #FEFEFE;\n }\n 100% {\n border-top-color: #3399CC;\n border-left-color: #164477;\n border-bottom-color: #164477;\n border-right-color: #164477;\n }\n}\n@keyframes logo-color-outside-blue {\n 0% {\n border-color: #040404;\n }\n 100% {\n border-top-color: #3399CC;\n border-left-color: #164477;\n border-bottom-color: #164477;\n border-right-color: #164477;\n }\n}\n\n.logo-animate-wait {\n animation: logo-color-outside 1.5s, logo-spin 1.5s linear infinite;\n}\n\n.logo-animate-grow-light {\n background: #DDD;\n}\n.logo-animate-grow-dark {\n background: #1d1d1d;\n}\n.logo-animate-grow-colored {\n background: #DDD;\n}\n.logo-animate-grow-blue {\n background: #1d1d1d;\n}\n\n.logo-animate-grow {\n display: inline-block;\n text-align: center;\n z-index: 1;\n top: 50%;\n left: 50%;\n -ms-transform: translateX(-50%) translateY(-50%);\n -webkit-transform: translate(-50%,-50%);\n transform: translate(-50%,-50%);\n width: 245px;\n height: 245px;\n border-radius: 50%;\n position: absolute;\n animation: logo-grow 1s 1 ease forwards;\n}\n\n.logo-animate-color-inside-light {\n animation: logo-color-inside-light 2.5s;\n}\n.logo-animate-color-inside-dark {\n animation: logo-color-inside-dark 2.5s;\n}\n.logo-animate-color-inside-colored {\n animation: logo-color-inside-colored 2.5s;\n}\n.logo-animate-color-inside-blue {\n animation: logo-color-inside-blue 2.5s;\n}\n\n.logo-animate-color-outside-light {\n animation: logo-color-outside-light 1.5s;\n}\n.logo-animate-color-outside-dark {\n animation: logo-color-outside-dark 1.5s;\n}\n.logo-animate-color-outside-colored {\n animation: logo-color-outside-colored 1.5s;\n}\n.logo-animate-color-outside-blue {\n animation: logo-color-outside-blue 1.5s;\n}","/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\n\nhtml {\n height: 100%;\n}\n\nbody {\n margin: 0;\n padding: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n/* scrollbar */\n::-webkit-scrollbar-track {\n background-color: #ccc;\n border-radius: 5px;\n}\n\n::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background-color: #ccc;\n}\n\n::-webkit-scrollbar-thumb {\n background-color: #575757;\n border-radius: 5px;\n}\n\n#root {\n height: 100%;\n}\n\n.App {\n height: 100%;\n}\n\n@keyframes glow {\n from {\n background-color: initial;\n }\n to {\n background-color: #58c458;\n }\n}"],"names":[],"sourceRoot":""}
|