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.
- package/README.md +447 -0
- package/dist/css/color.css +113 -112
- package/dist/css/mobile.css +108 -0
- package/dist/map-dist.js +493 -248
- package/dist/map-dist.js.map +1 -1
- package/package.json +27 -19
- package/.babelrc +0 -9
- package/.eslintrc.js +0 -56
- package/.idea/encodings.xml +0 -4
- package/.idea/mechanic-map.iml +0 -12
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/vcs.xml +0 -6
- package/.idea/workspace.xml +0 -1171
- package/dist/.gitkeep +0 -0
- package/dist/css/map.css +0 -1506
- package/dist/img/close.png +0 -0
- package/dist/img/close@2x.png +0 -0
- package/dist/img/closedhand.png +0 -0
- package/dist/img/cross.png +0 -0
- package/dist/img/cross@2x.png +0 -0
- package/dist/img/down.gif +0 -0
- package/dist/img/end-red-pin.png +0 -0
- package/dist/img/end-red-pin@2x.png +0 -0
- package/dist/img/error-icon.png +0 -0
- package/dist/img/foot-icon.png +0 -0
- package/dist/img/foot-left.png +0 -0
- package/dist/img/foot-right.png +0 -0
- package/dist/img/loader.gif +0 -0
- package/dist/img/man.png +0 -0
- package/dist/img/man.svg +0 -1
- package/dist/img/man2.svg +0 -12
- package/dist/img/openhand.png +0 -0
- package/dist/img/pin-blue-large.png +0 -0
- package/dist/img/pin-blue-large@2x.png +0 -0
- package/dist/img/pin-blue.png +0 -0
- package/dist/img/pin-blue@2x.png +0 -0
- package/dist/img/pin-filled.png +0 -0
- package/dist/img/pin-green-large.png +0 -0
- package/dist/img/pin-green-large@2x.png +0 -0
- package/dist/img/pin-green-start.png +0 -0
- package/dist/img/pin-green-start@2x.png +0 -0
- package/dist/img/pin-green.png +0 -0
- package/dist/img/pin-green@2x.png +0 -0
- package/dist/img/pin-large.png +0 -0
- package/dist/img/pin-large@2x.png +0 -0
- package/dist/img/pin-orange-large.png +0 -0
- package/dist/img/pin-orange-large@2x.png +0 -0
- package/dist/img/pin-orange.png +0 -0
- package/dist/img/pin-orange@2x.png +0 -0
- package/dist/img/pin-purple-large.png +0 -0
- package/dist/img/pin-purple-large@2x.png +0 -0
- package/dist/img/pin-purple.png +0 -0
- package/dist/img/pin-purple@2x.png +0 -0
- package/dist/img/pin-red-end.png +0 -0
- package/dist/img/pin-red-end@2x.png +0 -0
- package/dist/img/pin-yellow-large.png +0 -0
- package/dist/img/pin-yellow-large@2x.png +0 -0
- package/dist/img/pin-yellow.png +0 -0
- package/dist/img/pin-yellow@2x.png +0 -0
- package/dist/img/pin.png +0 -0
- package/dist/img/pin@2x.png +0 -0
- package/dist/img/right-arrow-black.png +0 -0
- package/dist/img/right-arrow-dark-grey.png +0 -0
- package/dist/img/right-arrow-fuchsia.png +0 -0
- package/dist/img/start-green-pin.png +0 -0
- package/dist/img/start-green-pin@2x.png +0 -0
- package/dist/img/up.gif +0 -0
- package/dist/kuntsevo-color.css +0 -162
- package/dist/palmcity-color.css +0 -158
- package/webpack.config.js +0 -59
- package/webpack.config.mobile.js +0 -54
- 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
|
+
```
|
package/dist/css/color.css
CHANGED
|
@@ -1,154 +1,155 @@
|
|
|
1
|
+
text {
|
|
2
|
+
fill: #fff;
|
|
3
|
+
}
|
|
4
|
+
|
|
1
5
|
/* Tooltip */
|
|
2
6
|
.svg-map-tooltip {
|
|
3
|
-
|
|
4
|
-
|
|
7
|
+
background-color: #233b49;
|
|
8
|
+
/*background-color: #828486;*/
|
|
5
9
|
}
|
|
6
10
|
|
|
7
11
|
.svg-map-tooltip-triangle {
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
34
|
+
fill: #11bf14;
|
|
17
35
|
}
|
|
18
36
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
47
|
+
fill: #0794d9;
|
|
48
|
+
stroke-width: 1px;
|
|
27
49
|
}
|
|
28
50
|
|
|
29
|
-
/* hovered
|
|
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
|
-
|
|
33
|
-
|
|
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
|
-
|
|
39
|
-
|
|
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
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
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
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
-
|
|
142
|
-
/*background-color: #3F2B2F;*/
|
|
135
|
+
background-color: #2cc197;
|
|
143
136
|
}
|
|
144
137
|
|
|
145
138
|
a.circle.walking.with-pulse:before {
|
|
146
|
-
|
|
147
|
-
/*border: 2px solid #3F2B2F;*/
|
|
139
|
+
border: 2px solid #2cc197;
|
|
148
140
|
}
|
|
149
141
|
|
|
150
|
-
/*
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
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
|
+
}
|