mechanic-map 0.14.0 → 0.15.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 (73) hide show
  1. package/README.md +447 -0
  2. package/dist/css/color.css +113 -112
  3. package/dist/css/mobile.css +108 -0
  4. package/dist/map-dist.js +493 -248
  5. package/dist/map-dist.js.map +1 -1
  6. package/package.json +27 -19
  7. package/.babelrc +0 -9
  8. package/.eslintrc.js +0 -56
  9. package/.idea/encodings.xml +0 -4
  10. package/.idea/mechanic-map.iml +0 -12
  11. package/.idea/misc.xml +0 -6
  12. package/.idea/modules.xml +0 -8
  13. package/.idea/vcs.xml +0 -6
  14. package/.idea/workspace.xml +0 -1171
  15. package/dist/.gitkeep +0 -0
  16. package/dist/css/map.css +0 -1506
  17. package/dist/img/close.png +0 -0
  18. package/dist/img/close@2x.png +0 -0
  19. package/dist/img/closedhand.png +0 -0
  20. package/dist/img/cross.png +0 -0
  21. package/dist/img/cross@2x.png +0 -0
  22. package/dist/img/down.gif +0 -0
  23. package/dist/img/end-red-pin.png +0 -0
  24. package/dist/img/end-red-pin@2x.png +0 -0
  25. package/dist/img/error-icon.png +0 -0
  26. package/dist/img/foot-icon.png +0 -0
  27. package/dist/img/foot-left.png +0 -0
  28. package/dist/img/foot-right.png +0 -0
  29. package/dist/img/loader.gif +0 -0
  30. package/dist/img/man.png +0 -0
  31. package/dist/img/man.svg +0 -1
  32. package/dist/img/man2.svg +0 -12
  33. package/dist/img/openhand.png +0 -0
  34. package/dist/img/pin-blue-large.png +0 -0
  35. package/dist/img/pin-blue-large@2x.png +0 -0
  36. package/dist/img/pin-blue.png +0 -0
  37. package/dist/img/pin-blue@2x.png +0 -0
  38. package/dist/img/pin-filled.png +0 -0
  39. package/dist/img/pin-green-large.png +0 -0
  40. package/dist/img/pin-green-large@2x.png +0 -0
  41. package/dist/img/pin-green-start.png +0 -0
  42. package/dist/img/pin-green-start@2x.png +0 -0
  43. package/dist/img/pin-green.png +0 -0
  44. package/dist/img/pin-green@2x.png +0 -0
  45. package/dist/img/pin-large.png +0 -0
  46. package/dist/img/pin-large@2x.png +0 -0
  47. package/dist/img/pin-orange-large.png +0 -0
  48. package/dist/img/pin-orange-large@2x.png +0 -0
  49. package/dist/img/pin-orange.png +0 -0
  50. package/dist/img/pin-orange@2x.png +0 -0
  51. package/dist/img/pin-purple-large.png +0 -0
  52. package/dist/img/pin-purple-large@2x.png +0 -0
  53. package/dist/img/pin-purple.png +0 -0
  54. package/dist/img/pin-purple@2x.png +0 -0
  55. package/dist/img/pin-red-end.png +0 -0
  56. package/dist/img/pin-red-end@2x.png +0 -0
  57. package/dist/img/pin-yellow-large.png +0 -0
  58. package/dist/img/pin-yellow-large@2x.png +0 -0
  59. package/dist/img/pin-yellow.png +0 -0
  60. package/dist/img/pin-yellow@2x.png +0 -0
  61. package/dist/img/pin.png +0 -0
  62. package/dist/img/pin@2x.png +0 -0
  63. package/dist/img/right-arrow-black.png +0 -0
  64. package/dist/img/right-arrow-dark-grey.png +0 -0
  65. package/dist/img/right-arrow-fuchsia.png +0 -0
  66. package/dist/img/start-green-pin.png +0 -0
  67. package/dist/img/start-green-pin@2x.png +0 -0
  68. package/dist/img/up.gif +0 -0
  69. package/dist/kuntsevo-color.css +0 -162
  70. package/dist/palmcity-color.css +0 -158
  71. package/webpack.config.js +0 -59
  72. package/webpack.config.mobile.js +0 -54
  73. package/yarn.lock +0 -2658
package/README.md ADDED
@@ -0,0 +1,447 @@
1
+ # Mechanic Map SDK
2
+
3
+ ## Setup
4
+
5
+ ```sh
6
+ node -v # v12.x.x
7
+ ```
8
+
9
+ ```js
10
+ // Initialize MechanicMap
11
+
12
+ const svgMapParams = {
13
+ id: "x-map", // map id - required
14
+ developer: false, // developer mode | default = false
15
+ rotate: 0, // map rotation
16
+ height: 800, // viewport height
17
+ maxScale: 2,
18
+ textOnRect: { // location text configs
19
+ enabled: true,
20
+ maxFontSize: 96,
21
+ minFontSize: 12,
22
+ fontFamily: "sans-serif",
23
+ mode: "dynamic",
24
+ },
25
+ animation: {
26
+ mode: "line",
27
+ },
28
+ stackMode: false,
29
+ data: { // map data - required
30
+ mapWidth: 4000,// map (svg) width - required
31
+ mapHeight: 3000,// map (svg) height - required
32
+ levels: [], // required - required
33
+ nodes: [], // required for SP
34
+ paths: [], // required for SP
35
+ }
36
+ }
37
+
38
+ (MechanicMap && MechanicMap.default)($);
39
+ const $svgMap = $("#svg-map"); // map container
40
+ const map = $svgMap.svgMap(svgMapParams).data("svg-map");
41
+
42
+ ```
43
+
44
+
45
+ ## Parameters
46
+
47
+ ### Store Names (textOnRect)
48
+ ```js
49
+ // defaults
50
+ const svgMapParams = {
51
+ textOnRect: true
52
+ // if textOnRect=true when;
53
+ // textOnRect: {
54
+ // enabled: true,
55
+ // fontFamily: 'sans-serif',
56
+ // fontSize: 24,
57
+ // maxFontSize: 32,
58
+ // minFontSize: 16,
59
+ // mode: 'dynamic',
60
+ // }
61
+ };
62
+
63
+ // static
64
+ const svgMapParams = {
65
+ textOnRect: {
66
+ maxFontSize: 48,
67
+ minFontSize: 1,
68
+ mode: 'static'
69
+ }
70
+ };
71
+
72
+
73
+ // dynamic
74
+ const svgMapParams = {
75
+ textOnRect: {
76
+ maxFontSize: 48,
77
+ minFontSize: 1,
78
+ mode: 'dynamic'
79
+ }
80
+ };
81
+ ```
82
+
83
+
84
+ ### Tooltip
85
+ ```js
86
+ // defaults
87
+ const svgMapParams = {
88
+ tooltip: {
89
+ enabled: true,
90
+ navigation: false,
91
+ detail: false,
92
+ },
93
+ }
94
+
95
+ // add navigation text
96
+ const svgMapParams = {
97
+ tooltip: {
98
+ enabled: true,
99
+ navigation: {
100
+ text: "Navigate Here"
101
+ // listener of navigationClicked
102
+ },
103
+ },
104
+ }
105
+
106
+ // add navigation text
107
+ const svgMapParams = {
108
+ tooltip: {
109
+ enabled: true,
110
+ detail: {
111
+ text: "Go To Details"
112
+ // listener of detailClicked
113
+ },
114
+ },
115
+ }
116
+
117
+ ```
118
+
119
+ ### Location Pin
120
+ ```js
121
+ const svgMapParams = {
122
+ // ... others
123
+ data: {
124
+ // ... others
125
+ landmark: {
126
+ id: 'K1_store_301',
127
+ zoom: false, // default
128
+ duraction: 1.2 // default (seconds)
129
+ }
130
+ }
131
+ }
132
+ ```
133
+
134
+ ### Animation Modes
135
+ ```js
136
+ const svgMapParams = {
137
+ // ... others
138
+ animation: {
139
+ // ... others
140
+ mode: "line" // "line", "dot", "arrow", "foot", "feet"
141
+ }
142
+ }
143
+
144
+ // look in styles
145
+ ```
146
+
147
+ ### Animation Speed
148
+ ```js
149
+ const svgMapParams = {
150
+ // ... others
151
+ animation: {
152
+ // ... others
153
+ speedFactor: 8,
154
+ frequencyFactor: 8,
155
+ }
156
+ }
157
+ ```
158
+
159
+ ### Stack Mode
160
+ ```js
161
+ const svgMapParams = {
162
+ // ... others
163
+ cssAnimation: true, // If this value is false, it will cause tooltip errors.
164
+ stackMode: {
165
+ enabled: true,
166
+ offset: 10, // distance between floors
167
+ switchFloorTime: 5 * SECOND
168
+ },
169
+ }
170
+ ```
171
+
172
+ ## Listeners
173
+
174
+ ### Selected Location (store)
175
+ ```js
176
+ $svgMap.on("locationOpened", function (event, location) {
177
+ console.log("on:locationOpened", location);
178
+ });
179
+ ```
180
+
181
+ ### Selected Location (service)
182
+ ```js
183
+ $svgMap.on("serviceLocationOpened", function (event, location) {
184
+ console.log("on:serviceLocationOpened", location);
185
+ });
186
+ ```
187
+
188
+ ### Level Switched
189
+ ```js
190
+ $svgMap.on("switchLevel", function (event, selectedLevelId, selectedLevelNo) {
191
+ console.log("on:switchLevel", selectedLevelId, selectedLevelNo);
192
+ });
193
+ ```
194
+
195
+ ### Navigation Clicked (tooltip navigation button)
196
+ ```js
197
+ $svgMap.on("navigationClicked", function (event, locationId) {
198
+ console.log("on:navigationClicked", locationId);
199
+ });
200
+ ```
201
+
202
+ ### Detail Clicked (tooltip detail button)
203
+ ```js
204
+ $svgMap.on("detailClicked", function (event, locationId) {
205
+ console.log("on:detailClicked", locationId);
206
+ });
207
+ ```
208
+
209
+ ### Close Clicked (tooltip close button)
210
+ ```js
211
+ $svgMap.on("closeClicked", function (event, locationId) {
212
+ console.log("on:closeClicked", locationId);
213
+ });
214
+ ```
215
+
216
+ ### Navigation
217
+ With this listener, you can: What floor am I on? Am I on the floor where navigation begins? Am I on the last floor? Is there a next floor?
218
+ ```js
219
+ $svgMap.on('navigation', function(event, { current, isFirst, isLast, next }) {
220
+ console.log('on:navigation', current, isFirst, isLast, next);
221
+ });
222
+ ```
223
+
224
+ ## Functions
225
+
226
+
227
+ ### Calculate SP Navigation
228
+ This function can be used with kiosk data
229
+ ```js
230
+ /*
231
+ levels, paths and nodes required this function...
232
+ const svgMapParameters = {
233
+ // ... others
234
+ data: {
235
+ // ... others
236
+ levels: [], // required - required
237
+ nodes: [], // required for SP
238
+ paths: [], // required for SP
239
+ }
240
+ }
241
+ */
242
+
243
+ // start_location, end_location, routeType = 'auto' | 'p' | 'd'
244
+ // p = pedestrian, d = disabled
245
+ const sp = map.calculateSP('K0_kiosk_01', 'K1_store_50', 'p');
246
+
247
+ if (sp.length) {
248
+ map.showNavigation(sp, true, true, true);
249
+ } else {
250
+ // No suitable directions found
251
+ }
252
+ ```
253
+
254
+
255
+ ### Start Navigation
256
+ ```js
257
+ // navigationDetails, autoMode = true, zoomEnabled = true, showPins = true
258
+ // navigationDetails = sp function data
259
+ map.showNavigation(sp, true, true, true);
260
+ ```
261
+
262
+
263
+ ### Stop Navigation
264
+ ```js
265
+ // ?reset map zoom = default true
266
+ map.closeNavigation(true);
267
+ ```
268
+
269
+
270
+ ### Restart Navigation (run with last startNavigation function parameters)
271
+ ```js
272
+ map.restartNavigation();
273
+ ```
274
+
275
+ ### Update Localized Texts
276
+ ```js
277
+ map.updateLocalized({
278
+ floorText: '',
279
+ navigationText: '',
280
+ detailText: '',
281
+ closeText: ''
282
+ });
283
+ ```
284
+
285
+ ### Show All Floors on Stack Mode
286
+ ```js
287
+ map.stackMode();
288
+ ```
289
+
290
+ ## styles
291
+ ```css
292
+ text {
293
+ fill: #fff;
294
+ }
295
+
296
+ /* Tooltip */
297
+ .svg-map-tooltip {
298
+ background-color: #233b49;
299
+ /*background-color: #828486;*/
300
+ }
301
+
302
+ .svg-map-tooltip-triangle {
303
+ border-color: #272727 transparent transparent transparent;
304
+ }
305
+
306
+ .svg-map-tooltip-title {
307
+ color: #f2f2f2;
308
+ }
309
+
310
+ a.svg-map-tooltip-navigation-button {
311
+ background: #288a13;
312
+ color: #fff;
313
+ }
314
+
315
+ a.svg-map-tooltip-detail-button {
316
+ background: #3f3e8a;
317
+ color: #fff;
318
+ }
319
+
320
+ /* INTERACTIVE ELEMENTS */
321
+
322
+ /* clickable elements */
323
+ .svg-map-not-clickable:not(g),
324
+ g.svg-map-not-clickable > * {
325
+ fill: #000000;
326
+ }
327
+
328
+ /* order is important */
329
+ /* all stores */
330
+ g#stores > * {
331
+ stroke: none;
332
+ fill: #3486ac;
333
+ }
334
+
335
+ /* store default colors */
336
+ g:not(#services) .svg-map-clickable:not(g),
337
+ g:not(#services) g.svg-map-clickable > * {
338
+ fill: #0794d9;
339
+ stroke-width: 1px;
340
+ }
341
+
342
+ /* hovered stores */
343
+ g:not(#services) .svg-map-clickable:not(g):hover,
344
+ g:not(#services) g.svg-map-clickable:hover > * {
345
+ fill: #94ccff;
346
+ stroke: #94ccff;
347
+ }
348
+
349
+ /* selected store */
350
+ g:not(#services) .svg-map-clickable.svg-map-active:not(g),
351
+ g:not(#services) g.svg-map-clickable.svg-map-active > * {
352
+ fill: aqua;
353
+ stroke: aqua;
354
+ }
355
+
356
+ @keyframes navigation-fill-start {
357
+ 0% {
358
+ fill: #208F27;
359
+ stroke: #208F27;
360
+ }
361
+ 50% {
362
+ fill: #42A047;
363
+ stroke: rgba(66, 160, 71, 0.8);
364
+ /*fill: #ff0013;*/
365
+ }
366
+ 100% {
367
+ fill: #208F27;
368
+ stroke: #208F27;
369
+ }
370
+ }
371
+
372
+ /* active navigate - target color animation */
373
+ @keyframes navigation-fill-end {
374
+ 0% {
375
+
376
+ }
377
+ 50% {
378
+ fill: #0794d9;
379
+ stroke: #0794d9;
380
+ }
381
+ 100% {
382
+ }
383
+ }
384
+
385
+ /*
386
+ ------ services -----
387
+ */
388
+ /* service default colors */
389
+ g:not(#stores) .svg-map-clickable:not(g),
390
+ g:not(#stores) g.svg-map-clickable > * {
391
+ fill: #ff7c11;
392
+ stroke-width: 1px;
393
+ }
394
+
395
+ /* hovered service */
396
+ g#services .svg-map-clickable:not(g):hover,
397
+ g#services g.svg-map-clickable:hover > * {
398
+ fill: #ffa965;
399
+ }
400
+
401
+ /* selected service animation */
402
+ @keyframes navigation-fill-services {
403
+ 0% {
404
+ fill: #ffa965;
405
+ stroke: #ffa965;
406
+
407
+ }
408
+ 50% {
409
+ fill: #ff7c11;
410
+ stroke: #ff7c11;
411
+ }
412
+ 100% {
413
+ fill: #ffa965;
414
+ stroke: #ffa965;
415
+ }
416
+ }
417
+
418
+ /*
419
+ ------ navigation animation ------
420
+ */
421
+
422
+ /*
423
+ ------ animation type = dot ------
424
+ */
425
+ a.circle.walking {
426
+ background-color: #2cc197;
427
+ }
428
+
429
+ a.circle.walking.with-pulse:before {
430
+ border: 2px solid #2cc197;
431
+ }
432
+
433
+ /*
434
+ ------ animation type = line ------
435
+ */
436
+ @keyframes navigation-line-animation {
437
+ 0% {
438
+ stroke: #2cc197;
439
+ }
440
+ 50% {
441
+ stroke: #8C3753;
442
+ }
443
+ 100% {
444
+ stroke: #2cc197;
445
+ }
446
+ }
447
+ ```
@@ -1,154 +1,155 @@
1
+ text {
2
+ fill: #fff;
3
+ }
4
+
1
5
  /* Tooltip */
2
6
  .svg-map-tooltip {
3
- background-color: #272727;
4
- /*background-color: #828486;*/
7
+ background-color: #233b49;
8
+ /*background-color: #828486;*/
5
9
  }
6
10
 
7
11
  .svg-map-tooltip-triangle {
8
- border-color: #272727 transparent transparent transparent;
9
- /*border-color: #828486 transparent transparent transparent;*/
12
+ border-color: #272727 transparent transparent transparent;
13
+ }
14
+
15
+ .svg-map-tooltip-title {
16
+ color: #f2f2f2;
17
+ }
18
+
19
+ a.svg-map-tooltip-navigation-button {
20
+ background: #288a13;
21
+ color: #fff;
22
+ }
23
+
24
+ a.svg-map-tooltip-detail-button {
25
+ background: #3f3e8a;
26
+ color: #fff;
10
27
  }
11
28
 
12
29
  /* INTERACTIVE ELEMENTS */
30
+
13
31
  /* clickable elements */
14
32
  .svg-map-not-clickable:not(g),
15
33
  g.svg-map-not-clickable > * {
16
- /*fill: #7b8c94 !important;*/
34
+ fill: #11bf14;
17
35
  }
18
36
 
19
- .svg-map-not-clickable.svg-map-active:not(g),
20
- g.svg-map-not-clickable.svg-map-active > * {
21
- /*fill: #b62025 !important;*/
37
+ /* order is important */
38
+ /* all stores */
39
+ g#stores > * {
40
+ stroke: none;
41
+ fill: #3486ac;
22
42
  }
23
43
 
44
+ /* store default colors */
24
45
  g:not(#services) .svg-map-clickable:not(g),
25
46
  g:not(#services) g.svg-map-clickable > * {
26
- /*fill: #466777 !important;*/
47
+ fill: #0794d9;
48
+ stroke-width: 1px;
27
49
  }
28
50
 
29
- /* hovered elements */
51
+ /* hovered stores */
30
52
  g:not(#services) .svg-map-clickable:not(g):hover,
31
53
  g:not(#services) g.svg-map-clickable:hover > * {
32
- /*fill: #466777 !important;*/
33
- fill: #3f2f32 !important;
54
+ fill: #94ccff;
55
+ stroke: #94ccff;
34
56
  }
35
57
 
58
+ /* selected store */
36
59
  g:not(#services) .svg-map-clickable.svg-map-active:not(g),
37
60
  g:not(#services) g.svg-map-clickable.svg-map-active > * {
38
- /*fill: #b62025 !important;*/
39
- fill: #3F2B2F !important;
40
- }
41
-
42
- g:not(#services) .svg-map-clickable.svg-map-active.svg-map-navigation-start:not(g),
43
- g:not(#services) g.svg-map-clickable.svg-map-active.svg-map-navigation-start > * {
44
- /*fill: #466777 !important;*/
45
- }
46
-
47
- g:not(#services) .svg-map-clickable.svg-map-active.svg-map-navigation-end:not(g),
48
- g:not(#services) g.svg-map-clickable.svg-map-active.svg-map-navigation-end> * {
49
- /*fill: #466777 !important;*/
50
- }
51
-
52
- /* hovered elements SERVICE */
53
- g#services .svg-map-clickable:not(g):hover,
54
- g#services g.svg-map-clickable:hover > * {
55
- /*fill: #466777 !important;*/
56
- /*fill: #3f2f32 !important;*/
57
- }
58
-
59
- g#services .svg-map-clickable.svg-map-active:not(g),
60
- g#services g.svg-map-clickable.svg-map-active > * {
61
- /*fill: #b62025 !important;*/
62
- animation: navigation-fill-services 2s infinite;
63
- }
64
-
65
- .navigation-line-animation {
66
- /*fill: #b62025 !important;*/
67
- animation: navigation-line-animation 2s infinite;
68
- }
69
-
70
-
71
- @keyframes navigation-line-animation {
72
- 0% {
73
- stroke: #4df750;
74
- }
75
- 50% {
76
- stroke: #206220;
77
- }
78
- 100% {
79
- stroke: #4df750;
80
- }
61
+ fill: aqua;
62
+ stroke: aqua;
81
63
  }
82
64
 
83
65
  @keyframes navigation-fill-start {
84
- 0% {
85
- fill: #466777;
86
- /*fill: #828486;*/
87
- }
88
- 50% {
89
- fill: #42A047;
90
- /*fill: #3F2B2F;*/
91
- }
92
- 100% {
93
- fill: #466777;
94
- /*fill: #828486;*/
95
- }
96
- }
97
-
66
+ 0% {
67
+ fill: #208F27;
68
+ stroke: #208F27;
69
+ }
70
+ 50% {
71
+ fill: #42A047;
72
+ stroke: rgba(66, 160, 71, 0.8);
73
+ /*fill: #ff0013;*/
74
+ }
75
+ 100% {
76
+ fill: #208F27;
77
+ stroke: #208F27;
78
+ }
79
+ }
80
+
81
+ /* active navigate - target color animation */
98
82
  @keyframes navigation-fill-end {
99
- 0% {
100
- fill: #466777;
101
- /*fill: #828486;*/
102
- }
103
- 50% {
104
- fill: #b62025;
105
- /*fill: #3F2B2F;*/
106
- }
107
- 100% {
108
- fill: #466777;
109
- /*fill: #828486;*/
110
- }
111
- }
83
+ 0% {
112
84
 
113
- @keyframes navigation-fill-services {
114
- 0% {
115
- fill: #EDEDED;
116
- }
117
- 50% {
118
- /*fill: #b62025;*/
119
- fill: rgba(63,43,47, 0.8);
120
- }
121
- 100% {
122
- fill: #EDEDED;
123
- }
85
+ }
86
+ 50% {
87
+ fill: #0794d9;
88
+ stroke: #0794d9;
89
+ }
90
+ 100% {
91
+ }
124
92
  }
125
93
 
126
- g#stores > path {
127
- /*stroke: none;*/
128
- /*fill: #7b8c94;*/
94
+ /*
95
+ ------ services -----
96
+ */
97
+ /* service default colors */
98
+ g:not(#stores) .svg-map-clickable:not(g),
99
+ g:not(#stores) g.svg-map-clickable > * {
100
+ fill: #ff7c11;
101
+ stroke-width: 1px;
129
102
  }
130
103
 
131
- g#shadow > path {
132
- /*stroke: none;*/
133
- /*fill: #424242;*/
134
- }
135
-
136
- g[id^=text] > text {
137
- /*fill: #fff;*/
104
+ /* hovered service */
105
+ g#services .svg-map-clickable:not(g):hover,
106
+ g#services g.svg-map-clickable:hover > * {
107
+ fill: #ffa965;
138
108
  }
139
109
 
110
+ /* selected service animation */
111
+ @keyframes navigation-fill-services {
112
+ 0% {
113
+ fill: #ffa965;
114
+ stroke: #ffa965;
115
+
116
+ }
117
+ 50% {
118
+ fill: #ff7c11;
119
+ stroke: #ff7c11;
120
+ }
121
+ 100% {
122
+ fill: #ffa965;
123
+ stroke: #ffa965;
124
+ }
125
+ }
126
+
127
+ /*
128
+ ------ navigation animation ------
129
+ */
130
+
131
+ /*
132
+ ------ animation type = dot ------
133
+ */
140
134
  a.circle.walking {
141
- background-color: #8C3753;
142
- /*background-color: #3F2B2F;*/
135
+ background-color: #2cc197;
143
136
  }
144
137
 
145
138
  a.circle.walking.with-pulse:before {
146
- border: 2px solid #8C3753;
147
- /*border: 2px solid #3F2B2F;*/
139
+ border: 2px solid #2cc197;
148
140
  }
149
141
 
150
- /* category coloring here */
151
- g:not(#services) .svg-map-clickable.CATEGORY-SLUG-HERE:not(g),
152
- g:not(#services) g.svg-map-clickable.CATEGORY-SLUG-HERE > * {
153
- fill: #466777 !important;
154
- }
142
+ /*
143
+ ------ animation type = line ------
144
+ */
145
+ @keyframes navigation-line-animation {
146
+ 0% {
147
+ stroke: #2cc197;
148
+ }
149
+ 50% {
150
+ stroke: #8C3753;
151
+ }
152
+ 100% {
153
+ stroke: #2cc197;
154
+ }
155
+ }