@mapsindoors/map-template 1.95.0 → 1.95.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.
Files changed (66) hide show
  1. package/dist/{GoogleMapsMap-BIUan6Mh.mjs → GoogleMapsMap-Dkn60-_e.mjs} +2 -2
  2. package/dist/{MapboxMap-BwTFmd5b.mjs → MapboxMap-B1oo7IUm.mjs} +3 -3
  3. package/dist/_commonjsHelpers-B85MJLTf.js +5 -0
  4. package/dist/app-globals-DQuL1Twl.js +3 -0
  5. package/dist/combo-box-item.entry.js +8 -10
  6. package/dist/icon-DT_sDkmK.js +11 -0
  7. package/dist/index-BZQHyS7V.js +1701 -0
  8. package/dist/loader.js +7 -14
  9. package/dist/mapsindoors-react.es.js +1 -1
  10. package/dist/mapsindoors-react.umd.js +175 -175
  11. package/dist/mapsindoors-webcomponent.es.js +2919 -2907
  12. package/dist/mi-card_2.entry.js +23 -18
  13. package/dist/mi-chip.entry.js +25 -16
  14. package/dist/mi-column.entry.js +47 -23
  15. package/dist/mi-combo-box.entry.js +412 -379
  16. package/dist/mi-components.js +15 -12
  17. package/dist/mi-data-table.entry.js +298 -278
  18. package/dist/mi-distance_2.entry.js +58 -56
  19. package/dist/mi-dropdown-item.entry.js +8 -10
  20. package/dist/mi-dropdown.entry.js +525 -481
  21. package/dist/mi-floor-selector.entry.js +183 -180
  22. package/dist/mi-keyboard.entry.js +207 -186
  23. package/dist/mi-list-item-category.entry.js +44 -41
  24. package/dist/mi-list-item-location.entry.js +168 -162
  25. package/dist/mi-list.entry.js +56 -48
  26. package/dist/mi-location-booking.entry.js +320 -295
  27. package/dist/mi-location-info.entry.js +61 -53
  28. package/dist/mi-map-googlemaps.entry.js +369 -324
  29. package/dist/mi-map-mapbox.entry.js +502 -439
  30. package/dist/mi-metric-card.entry.js +50 -37
  31. package/dist/mi-my-position.entry.js +2341 -874
  32. package/dist/mi-notification.entry.js +112 -102
  33. package/dist/mi-route-instructions-heading.entry.js +70 -65
  34. package/dist/mi-route-instructions-maneuver-legacy.entry.js +80 -76
  35. package/dist/mi-route-instructions-maneuver.entry.js +80 -76
  36. package/dist/mi-route-instructions-step-legacy.entry.js +296 -282
  37. package/dist/mi-route-instructions-step.entry.js +313 -292
  38. package/dist/mi-route-instructions.entry.js +167 -150
  39. package/dist/mi-scroll-buttons.entry.js +104 -98
  40. package/dist/mi-search.entry.js +366 -325
  41. package/dist/mi-share-sms.entry.js +82 -70
  42. package/dist/mi-step-switcher.entry.js +34 -25
  43. package/dist/mi-tab-panel.entry.js +18 -18
  44. package/dist/mi-tab.entry.js +5 -7
  45. package/dist/mi-tabs.entry.js +42 -40
  46. package/dist/mi-time.entry.js +49 -49
  47. package/dist/mi-variables-CDNvnTkH.js +5 -0
  48. package/dist/{reactcomponent-D3K1zzGs.mjs → reactcomponent-2Oa1vSiK.mjs} +8996 -8660
  49. package/dist/route-travel-mode.enum-BvqP1fpw.js +9 -0
  50. package/dist/sort-order.enum-jsLAbYWg.js +566 -0
  51. package/dist/{unit-system.enum-eaefb53e.js → unit-system.enum-BwPgAWqL.js} +2 -2
  52. package/dist/utils-DNHzysQ6.js +61 -0
  53. package/package.json +1 -1
  54. package/dist/_commonjsHelpers-ba3f0406.js +0 -21
  55. package/dist/icon-b8d01d6f.js +0 -24
  56. package/dist/index-7e9696f3.js +0 -1678
  57. package/dist/mi-variables-9a6c8d4d.js +0 -6
  58. package/dist/polyfills/core-js.js +0 -11
  59. package/dist/polyfills/css-shim.js +0 -1
  60. package/dist/polyfills/dom.js +0 -79
  61. package/dist/polyfills/es5-html-element.js +0 -1
  62. package/dist/polyfills/index.js +0 -34
  63. package/dist/polyfills/system.js +0 -6
  64. package/dist/route-travel-mode.enum-7f4ce9c7.js +0 -9
  65. package/dist/sort-order.enum-64ce8998.js +0 -552
  66. package/dist/utils-ae714467.js +0 -61
@@ -0,0 +1,9 @@
1
+ var RouteTravelMode;
2
+ (function (RouteTravelMode) {
3
+ RouteTravelMode["Walking"] = "walking";
4
+ RouteTravelMode["Bicycling"] = "bicycling";
5
+ RouteTravelMode["Transit"] = "transit";
6
+ RouteTravelMode["Driving"] = "driving";
7
+ })(RouteTravelMode || (RouteTravelMode = {}));
8
+
9
+ export { RouteTravelMode as R };
@@ -0,0 +1,566 @@
1
+ import { g as getDefaultExportFromCjs } from './_commonjsHelpers-B85MJLTf.js';
2
+
3
+ var fuzzysort$2 = {exports: {}};
4
+
5
+ var fuzzysort$1 = fuzzysort$2.exports;
6
+
7
+ var hasRequiredFuzzysort;
8
+
9
+ function requireFuzzysort () {
10
+ if (hasRequiredFuzzysort) return fuzzysort$2.exports;
11
+ hasRequiredFuzzysort = 1;
12
+ (function (module) {
13
+ ((root, UMD) => {
14
+ if(module.exports) module.exports = UMD();
15
+ else root['fuzzysort'] = UMD();
16
+ })(fuzzysort$1, _ => {
17
+
18
+ var single = (search, target) => { if(search=='farzher')return {target:"farzher was here (^-^*)/",score:0,_indexes:[0]}
19
+ if(!search || !target) return NULL
20
+
21
+ var preparedSearch = getPreparedSearch(search);
22
+ if(!isObj(target)) target = getPrepared(target);
23
+
24
+ var searchBitflags = preparedSearch.bitflags;
25
+ if((searchBitflags & target._bitflags) !== searchBitflags) return NULL
26
+
27
+ return algorithm(preparedSearch, target)
28
+ };
29
+
30
+
31
+ var go = (search, targets, options) => { if(search=='farzher')return [{target:"farzher was here (^-^*)/",score:0,_indexes:[0],obj:targets?targets[0]:NULL}]
32
+ if(!search) return options&&options.all ? all(search, targets, options) : noResults
33
+
34
+ var preparedSearch = getPreparedSearch(search);
35
+ var searchBitflags = preparedSearch.bitflags;
36
+
37
+ var threshold = options&&options.threshold || INT_MIN;
38
+ var limit = options&&options['limit'] || INT_MAX; // for some reason only limit breaks when minified
39
+
40
+ var resultsLen = 0; var limitedCount = 0;
41
+ var targetsLen = targets.length;
42
+
43
+ // This code is copy/pasted 3 times for performance reasons [options.keys, options.key, no keys]
44
+
45
+ // options.key
46
+ if(options && options.key) {
47
+ var key = options.key;
48
+ for(var i = 0; i < targetsLen; ++i) { var obj = targets[i];
49
+ var target = getValue(obj, key);
50
+ if(!target) continue
51
+ if(!isObj(target)) target = getPrepared(target);
52
+
53
+ if((searchBitflags & target._bitflags) !== searchBitflags) continue
54
+ var result = algorithm(preparedSearch, target);
55
+ if(result === NULL) continue
56
+ if(result.score < threshold) continue
57
+
58
+ // have to clone result so duplicate targets from different obj can each reference the correct obj
59
+ result = {target:result.target, _targetLower:'', _targetLowerCodes:NULL, _nextBeginningIndexes:NULL, _bitflags:0, score:result.score, _indexes:result._indexes, obj:obj}; // hidden
60
+
61
+ if(resultsLen < limit) { q.add(result); ++resultsLen; }
62
+ else {
63
+ ++limitedCount;
64
+ if(result.score > q.peek().score) q.replaceTop(result);
65
+ }
66
+ }
67
+
68
+ // options.keys
69
+ } else if(options && options.keys) {
70
+ var scoreFn = options['scoreFn'] || defaultScoreFn;
71
+ var keys = options.keys;
72
+ var keysLen = keys.length;
73
+ for(var i = 0; i < targetsLen; ++i) { var obj = targets[i];
74
+ var objResults = new Array(keysLen);
75
+ for (var keyI = 0; keyI < keysLen; ++keyI) {
76
+ var key = keys[keyI];
77
+ var target = getValue(obj, key);
78
+ if(!target) { objResults[keyI] = NULL; continue }
79
+ if(!isObj(target)) target = getPrepared(target);
80
+
81
+ if((searchBitflags & target._bitflags) !== searchBitflags) objResults[keyI] = NULL;
82
+ else objResults[keyI] = algorithm(preparedSearch, target);
83
+ }
84
+ objResults.obj = obj; // before scoreFn so scoreFn can use it
85
+ var score = scoreFn(objResults);
86
+ if(score === NULL) continue
87
+ if(score < threshold) continue
88
+ objResults.score = score;
89
+ if(resultsLen < limit) { q.add(objResults); ++resultsLen; }
90
+ else {
91
+ ++limitedCount;
92
+ if(score > q.peek().score) q.replaceTop(objResults);
93
+ }
94
+ }
95
+
96
+ // no keys
97
+ } else {
98
+ for(var i = 0; i < targetsLen; ++i) { var target = targets[i];
99
+ if(!target) continue
100
+ if(!isObj(target)) target = getPrepared(target);
101
+
102
+ if((searchBitflags & target._bitflags) !== searchBitflags) continue
103
+ var result = algorithm(preparedSearch, target);
104
+ if(result === NULL) continue
105
+ if(result.score < threshold) continue
106
+ if(resultsLen < limit) { q.add(result); ++resultsLen; }
107
+ else {
108
+ ++limitedCount;
109
+ if(result.score > q.peek().score) q.replaceTop(result);
110
+ }
111
+ }
112
+ }
113
+
114
+ if(resultsLen === 0) return noResults
115
+ var results = new Array(resultsLen);
116
+ for(var i = resultsLen - 1; i >= 0; --i) results[i] = q.poll();
117
+ results.total = resultsLen + limitedCount;
118
+ return results
119
+ };
120
+
121
+
122
+ var highlight = (result, hOpen, hClose) => {
123
+ if(typeof hOpen === 'function') return highlightCallback(result, hOpen)
124
+ if(result === NULL) return NULL
125
+ if(hOpen === undefined) hOpen = '<b>';
126
+ if(hClose === undefined) hClose = '</b>';
127
+ var highlighted = '';
128
+ var matchesIndex = 0;
129
+ var opened = false;
130
+ var target = result.target;
131
+ var targetLen = target.length;
132
+ var indexes = result._indexes;
133
+ indexes = indexes.slice(0, indexes.len).sort((a,b)=>a-b);
134
+ for(var i = 0; i < targetLen; ++i) { var char = target[i];
135
+ if(indexes[matchesIndex] === i) {
136
+ ++matchesIndex;
137
+ if(!opened) { opened = true;
138
+ highlighted += hOpen;
139
+ }
140
+
141
+ if(matchesIndex === indexes.length) {
142
+ highlighted += char + hClose + target.substr(i+1);
143
+ break
144
+ }
145
+ } else {
146
+ if(opened) { opened = false;
147
+ highlighted += hClose;
148
+ }
149
+ }
150
+ highlighted += char;
151
+ }
152
+
153
+ return highlighted
154
+ };
155
+ var highlightCallback = (result, cb) => {
156
+ if(result === NULL) return NULL
157
+ var target = result.target;
158
+ var targetLen = target.length;
159
+ var indexes = result._indexes;
160
+ indexes = indexes.slice(0, indexes.len).sort((a,b)=>a-b);
161
+ var highlighted = '';
162
+ var matchI = 0;
163
+ var indexesI = 0;
164
+ var opened = false;
165
+ var result = [];
166
+ for(var i = 0; i < targetLen; ++i) { var char = target[i];
167
+ if(indexes[indexesI] === i) {
168
+ ++indexesI;
169
+ if(!opened) { opened = true;
170
+ result.push(highlighted); highlighted = '';
171
+ }
172
+
173
+ if(indexesI === indexes.length) {
174
+ highlighted += char;
175
+ result.push(cb(highlighted, matchI++)); highlighted = '';
176
+ result.push(target.substr(i+1));
177
+ break
178
+ }
179
+ } else {
180
+ if(opened) { opened = false;
181
+ result.push(cb(highlighted, matchI++)); highlighted = '';
182
+ }
183
+ }
184
+ highlighted += char;
185
+ }
186
+ return result
187
+ };
188
+
189
+
190
+ var indexes = result => result._indexes.slice(0, result._indexes.len).sort((a,b)=>a-b);
191
+
192
+
193
+ var prepare = (target) => {
194
+ if(typeof target !== 'string') target = '';
195
+ var info = prepareLowerInfo(target);
196
+ return {'target':target, _targetLower:info._lower, _targetLowerCodes:info.lowerCodes, _nextBeginningIndexes:NULL, _bitflags:info.bitflags, 'score':NULL, _indexes:[0], 'obj':NULL} // hidden
197
+ };
198
+
199
+
200
+ // Below this point is only internal code
201
+ // Below this point is only internal code
202
+ // Below this point is only internal code
203
+ // Below this point is only internal code
204
+
205
+
206
+ var prepareSearch = (search) => {
207
+ if(typeof search !== 'string') search = '';
208
+ search = search.trim();
209
+ var info = prepareLowerInfo(search);
210
+
211
+ var spaceSearches = [];
212
+ if(info.containsSpace) {
213
+ var searches = search.split(/\s+/);
214
+ searches = [...new Set(searches)]; // distinct
215
+ for(var i=0; i<searches.length; i++) {
216
+ if(searches[i] === '') continue
217
+ var _info = prepareLowerInfo(searches[i]);
218
+ spaceSearches.push({lowerCodes:_info.lowerCodes, _lower:searches[i].toLowerCase(), containsSpace:false});
219
+ }
220
+ }
221
+
222
+ return {lowerCodes: info.lowerCodes, bitflags: info.bitflags, containsSpace: info.containsSpace, _lower: info._lower, spaceSearches: spaceSearches}
223
+ };
224
+
225
+
226
+
227
+ var getPrepared = (target) => {
228
+ if(target.length > 999) return prepare(target) // don't cache huge targets
229
+ var targetPrepared = preparedCache.get(target);
230
+ if(targetPrepared !== undefined) return targetPrepared
231
+ targetPrepared = prepare(target);
232
+ preparedCache.set(target, targetPrepared);
233
+ return targetPrepared
234
+ };
235
+ var getPreparedSearch = (search) => {
236
+ if(search.length > 999) return prepareSearch(search) // don't cache huge searches
237
+ var searchPrepared = preparedSearchCache.get(search);
238
+ if(searchPrepared !== undefined) return searchPrepared
239
+ searchPrepared = prepareSearch(search);
240
+ preparedSearchCache.set(search, searchPrepared);
241
+ return searchPrepared
242
+ };
243
+
244
+
245
+ var all = (search, targets, options) => {
246
+ var results = []; results.total = targets.length;
247
+
248
+ var limit = options && options.limit || INT_MAX;
249
+
250
+ if(options && options.key) {
251
+ for(var i=0;i<targets.length;i++) { var obj = targets[i];
252
+ var target = getValue(obj, options.key);
253
+ if(!target) continue
254
+ if(!isObj(target)) target = getPrepared(target);
255
+ target.score = INT_MIN;
256
+ target._indexes.len = 0;
257
+ var result = target;
258
+ result = {target:result.target, _targetLower:'', _targetLowerCodes:NULL, _nextBeginningIndexes:NULL, _bitflags:0, score:target.score, _indexes:NULL, obj:obj}; // hidden
259
+ results.push(result); if(results.length >= limit) return results
260
+ }
261
+ } else if(options && options.keys) {
262
+ for(var i=0;i<targets.length;i++) { var obj = targets[i];
263
+ var objResults = new Array(options.keys.length);
264
+ for (var keyI = options.keys.length - 1; keyI >= 0; --keyI) {
265
+ var target = getValue(obj, options.keys[keyI]);
266
+ if(!target) { objResults[keyI] = NULL; continue }
267
+ if(!isObj(target)) target = getPrepared(target);
268
+ target.score = INT_MIN;
269
+ target._indexes.len = 0;
270
+ objResults[keyI] = target;
271
+ }
272
+ objResults.obj = obj;
273
+ objResults.score = INT_MIN;
274
+ results.push(objResults); if(results.length >= limit) return results
275
+ }
276
+ } else {
277
+ for(var i=0;i<targets.length;i++) { var target = targets[i];
278
+ if(!target) continue
279
+ if(!isObj(target)) target = getPrepared(target);
280
+ target.score = INT_MIN;
281
+ target._indexes.len = 0;
282
+ results.push(target); if(results.length >= limit) return results
283
+ }
284
+ }
285
+
286
+ return results
287
+ };
288
+
289
+
290
+ var algorithm = (preparedSearch, prepared, allowSpaces=false) => {
291
+ if(allowSpaces===false && preparedSearch.containsSpace) return algorithmSpaces(preparedSearch, prepared)
292
+
293
+ var searchLower = preparedSearch._lower;
294
+ var searchLowerCodes = preparedSearch.lowerCodes;
295
+ var searchLowerCode = searchLowerCodes[0];
296
+ var targetLowerCodes = prepared._targetLowerCodes;
297
+ var searchLen = searchLowerCodes.length;
298
+ var targetLen = targetLowerCodes.length;
299
+ var searchI = 0; // where we at
300
+ var targetI = 0; // where you at
301
+ var matchesSimpleLen = 0;
302
+
303
+ // very basic fuzzy match; to remove non-matching targets ASAP!
304
+ // walk through target. find sequential matches.
305
+ // if all chars aren't found then exit
306
+ for(;;) {
307
+ var isMatch = searchLowerCode === targetLowerCodes[targetI];
308
+ if(isMatch) {
309
+ matchesSimple[matchesSimpleLen++] = targetI;
310
+ ++searchI; if(searchI === searchLen) break
311
+ searchLowerCode = searchLowerCodes[searchI];
312
+ }
313
+ ++targetI; if(targetI >= targetLen) return NULL // Failed to find searchI
314
+ }
315
+
316
+ var searchI = 0;
317
+ var successStrict = false;
318
+ var matchesStrictLen = 0;
319
+
320
+ var nextBeginningIndexes = prepared._nextBeginningIndexes;
321
+ if(nextBeginningIndexes === NULL) nextBeginningIndexes = prepared._nextBeginningIndexes = prepareNextBeginningIndexes(prepared.target);
322
+ targetI = matchesSimple[0]===0 ? 0 : nextBeginningIndexes[matchesSimple[0]-1];
323
+
324
+ // Our target string successfully matched all characters in sequence!
325
+ // Let's try a more advanced and strict test to improve the score
326
+ // only count it as a match if it's consecutive or a beginning character!
327
+ var backtrackCount = 0;
328
+ if(targetI !== targetLen) for(;;) {
329
+ if(targetI >= targetLen) {
330
+ // We failed to find a good spot for this search char, go back to the previous search char and force it forward
331
+ if(searchI <= 0) break // We failed to push chars forward for a better match
332
+
333
+ ++backtrackCount; if(backtrackCount > 200) break // exponential backtracking is taking too long, just give up and return a bad match
334
+
335
+ --searchI;
336
+ var lastMatch = matchesStrict[--matchesStrictLen];
337
+ targetI = nextBeginningIndexes[lastMatch];
338
+
339
+ } else {
340
+ var isMatch = searchLowerCodes[searchI] === targetLowerCodes[targetI];
341
+ if(isMatch) {
342
+ matchesStrict[matchesStrictLen++] = targetI;
343
+ ++searchI; if(searchI === searchLen) { successStrict = true; break }
344
+ ++targetI;
345
+ } else {
346
+ targetI = nextBeginningIndexes[targetI];
347
+ }
348
+ }
349
+ }
350
+
351
+ // check if it's a substring match
352
+ var substringIndex = prepared._targetLower.indexOf(searchLower, matchesSimple[0]); // perf: this is slow
353
+ var isSubstring = ~substringIndex;
354
+ if(isSubstring && !successStrict) { // rewrite the indexes from basic to the substring
355
+ for(var i=0; i<matchesSimpleLen; ++i) matchesSimple[i] = substringIndex+i;
356
+ }
357
+ var isSubstringBeginning = false;
358
+ if(isSubstring) {
359
+ isSubstringBeginning = prepared._nextBeginningIndexes[substringIndex-1] === substringIndex;
360
+ }
361
+
362
+ { // tally up the score & keep track of matches for highlighting later
363
+ if(successStrict) { var matchesBest = matchesStrict; var matchesBestLen = matchesStrictLen; }
364
+ else { var matchesBest = matchesSimple; var matchesBestLen = matchesSimpleLen; }
365
+
366
+ var score = 0;
367
+
368
+ var extraMatchGroupCount = 0;
369
+ for(var i = 1; i < searchLen; ++i) {
370
+ if(matchesBest[i] - matchesBest[i-1] !== 1) {score -= matchesBest[i]; ++extraMatchGroupCount;}
371
+ }
372
+ var unmatchedDistance = matchesBest[searchLen-1] - matchesBest[0] - (searchLen-1);
373
+
374
+ score -= (12+unmatchedDistance) * extraMatchGroupCount; // penality for more groups
375
+
376
+ if(matchesBest[0] !== 0) score -= matchesBest[0]*matchesBest[0]*.2; // penality for not starting near the beginning
377
+
378
+ if(!successStrict) {
379
+ score *= 1000;
380
+ } else {
381
+ // successStrict on a target with too many beginning indexes loses points for being a bad target
382
+ var uniqueBeginningIndexes = 1;
383
+ for(var i = nextBeginningIndexes[0]; i < targetLen; i=nextBeginningIndexes[i]) ++uniqueBeginningIndexes;
384
+
385
+ if(uniqueBeginningIndexes > 24) score *= (uniqueBeginningIndexes-24)*10; // quite arbitrary numbers here ...
386
+ }
387
+
388
+ if(isSubstring) score /= 1+searchLen*searchLen*1; // bonus for being a full substring
389
+ if(isSubstringBeginning) score /= 1+searchLen*searchLen*1; // bonus for substring starting on a beginningIndex
390
+
391
+ score -= targetLen - searchLen; // penality for longer targets
392
+ prepared.score = score;
393
+
394
+ for(var i = 0; i < matchesBestLen; ++i) prepared._indexes[i] = matchesBest[i];
395
+ prepared._indexes.len = matchesBestLen;
396
+
397
+ return prepared
398
+ }
399
+ };
400
+ var algorithmSpaces = (preparedSearch, target) => {
401
+ var seen_indexes = new Set();
402
+ var score = 0;
403
+ var result = NULL;
404
+
405
+ var first_seen_index_last_search = 0;
406
+ var searches = preparedSearch.spaceSearches;
407
+ for(var i=0; i<searches.length; ++i) {
408
+ var search = searches[i];
409
+
410
+ result = algorithm(search, target);
411
+ if(result === NULL) return NULL
412
+
413
+ score += result.score;
414
+
415
+ // dock points based on order otherwise "c man" returns Manifest.cpp instead of CheatManager.h
416
+ if(result._indexes[0] < first_seen_index_last_search) {
417
+ score -= first_seen_index_last_search - result._indexes[0];
418
+ }
419
+ first_seen_index_last_search = result._indexes[0];
420
+
421
+ for(var j=0; j<result._indexes.len; ++j) seen_indexes.add(result._indexes[j]);
422
+ }
423
+
424
+ // allows a search with spaces that's an exact substring to score well
425
+ var allowSpacesResult = algorithm(preparedSearch, target, /*allowSpaces=*/true);
426
+ if(allowSpacesResult !== NULL && allowSpacesResult.score > score) {
427
+ return allowSpacesResult
428
+ }
429
+
430
+ result.score = score;
431
+
432
+ var i = 0;
433
+ for (let index of seen_indexes) result._indexes[i++] = index;
434
+ result._indexes.len = i;
435
+
436
+ return result
437
+ };
438
+
439
+
440
+ var prepareLowerInfo = (str) => {
441
+ var strLen = str.length;
442
+ var lower = str.toLowerCase();
443
+ var lowerCodes = []; // new Array(strLen) sparse array is too slow
444
+ var bitflags = 0;
445
+ var containsSpace = false; // space isn't stored in bitflags because of how searching with a space works
446
+
447
+ for(var i = 0; i < strLen; ++i) {
448
+ var lowerCode = lowerCodes[i] = lower.charCodeAt(i);
449
+
450
+ if(lowerCode === 32) {
451
+ containsSpace = true;
452
+ continue // it's important that we don't set any bitflags for space
453
+ }
454
+
455
+ var bit = lowerCode>=97&&lowerCode<=122 ? lowerCode-97 // alphabet
456
+ : lowerCode>=48&&lowerCode<=57 ? 26 // numbers
457
+ // 3 bits available
458
+ : lowerCode<=127 ? 30 // other ascii
459
+ : 31; // other utf8
460
+ bitflags |= 1<<bit;
461
+ }
462
+
463
+ return {lowerCodes:lowerCodes, bitflags:bitflags, containsSpace:containsSpace, _lower:lower}
464
+ };
465
+ var prepareBeginningIndexes = (target) => {
466
+ var targetLen = target.length;
467
+ var beginningIndexes = []; var beginningIndexesLen = 0;
468
+ var wasUpper = false;
469
+ var wasAlphanum = false;
470
+ for(var i = 0; i < targetLen; ++i) {
471
+ var targetCode = target.charCodeAt(i);
472
+ var isUpper = targetCode>=65&&targetCode<=90;
473
+ var isAlphanum = isUpper || targetCode>=97&&targetCode<=122 || targetCode>=48&&targetCode<=57;
474
+ var isBeginning = isUpper && !wasUpper || !wasAlphanum || !isAlphanum;
475
+ wasUpper = isUpper;
476
+ wasAlphanum = isAlphanum;
477
+ if(isBeginning) beginningIndexes[beginningIndexesLen++] = i;
478
+ }
479
+ return beginningIndexes
480
+ };
481
+ var prepareNextBeginningIndexes = (target) => {
482
+ var targetLen = target.length;
483
+ var beginningIndexes = prepareBeginningIndexes(target);
484
+ var nextBeginningIndexes = []; // new Array(targetLen) sparse array is too slow
485
+ var lastIsBeginning = beginningIndexes[0];
486
+ var lastIsBeginningI = 0;
487
+ for(var i = 0; i < targetLen; ++i) {
488
+ if(lastIsBeginning > i) {
489
+ nextBeginningIndexes[i] = lastIsBeginning;
490
+ } else {
491
+ lastIsBeginning = beginningIndexes[++lastIsBeginningI];
492
+ nextBeginningIndexes[i] = lastIsBeginning===undefined ? targetLen : lastIsBeginning;
493
+ }
494
+ }
495
+ return nextBeginningIndexes
496
+ };
497
+
498
+
499
+ var cleanup = () => { preparedCache.clear(); preparedSearchCache.clear(); matchesSimple = []; matchesStrict = []; };
500
+
501
+ var preparedCache = new Map();
502
+ var preparedSearchCache = new Map();
503
+ var matchesSimple = []; var matchesStrict = [];
504
+
505
+
506
+ // for use with keys. just returns the maximum score
507
+ var defaultScoreFn = (a) => {
508
+ var max = INT_MIN;
509
+ var len = a.length;
510
+ for (var i = 0; i < len; ++i) {
511
+ var result = a[i]; if(result === NULL) continue
512
+ var score = result.score;
513
+ if(score > max) max = score;
514
+ }
515
+ if(max === INT_MIN) return NULL
516
+ return max
517
+ };
518
+
519
+ // prop = 'key' 2.5ms optimized for this case, seems to be about as fast as direct obj[prop]
520
+ // prop = 'key1.key2' 10ms
521
+ // prop = ['key1', 'key2'] 27ms
522
+ var getValue = (obj, prop) => {
523
+ var tmp = obj[prop]; if(tmp !== undefined) return tmp
524
+ var segs = prop;
525
+ if(!Array.isArray(prop)) segs = prop.split('.');
526
+ var len = segs.length;
527
+ var i = -1;
528
+ while (obj && (++i < len)) obj = obj[segs[i]];
529
+ return obj
530
+ };
531
+
532
+ var isObj = (x) => { return typeof x === 'object' }; // faster as a function
533
+ // var INT_MAX = 9007199254740991; var INT_MIN = -INT_MAX
534
+ var INT_MAX = Infinity; var INT_MIN = -INT_MAX;
535
+ var noResults = []; noResults.total = 0;
536
+ var NULL = null;
537
+
538
+
539
+ // Hacked version of https://github.com/lemire/FastPriorityQueue.js
540
+ var fastpriorityqueue=r=>{var e=[],o=0,a={},v=r=>{for(var a=0,v=e[a],c=1;c<o;){var s=c+1;a=c,s<o&&e[s].score<e[c].score&&(a=s),e[a-1>>1]=e[a],c=1+(a<<1);}for(var f=a-1>>1;a>0&&v.score<e[f].score;f=(a=f)-1>>1)e[a]=e[f];e[a]=v;};return a.add=(r=>{var a=o;e[o++]=r;for(var v=a-1>>1;a>0&&r.score<e[v].score;v=(a=v)-1>>1)e[a]=e[v];e[a]=r;}),a.poll=(r=>{if(0!==o){var a=e[0];return e[0]=e[--o],v(),a}}),a.peek=(r=>{if(0!==o)return e[0]}),a.replaceTop=(r=>{e[0]=r,v();}),a};
541
+ var q = fastpriorityqueue(); // reuse this
542
+
543
+
544
+ // fuzzysort is written this way for minification. all names are mangeled unless quoted
545
+ return {'single':single, 'go':go, 'highlight':highlight, 'prepare':prepare, 'indexes':indexes, 'cleanup':cleanup}
546
+ }); // UMD
547
+
548
+ // TODO: (feature) frecency
549
+ // TODO: (perf) use different sorting algo depending on the # of results?
550
+ // TODO: (perf) preparedCache is a memory leak
551
+ // TODO: (like sublime) backslash === forwardslash
552
+ // TODO: (perf) prepareSearch seems slow
553
+ } (fuzzysort$2));
554
+ return fuzzysort$2.exports;
555
+ }
556
+
557
+ var fuzzysortExports = requireFuzzysort();
558
+ var fuzzysort = /*@__PURE__*/getDefaultExportFromCjs(fuzzysortExports);
559
+
560
+ var SortOrder;
561
+ (function (SortOrder) {
562
+ SortOrder["Asc"] = "asc";
563
+ SortOrder["Desc"] = "desc";
564
+ })(SortOrder || (SortOrder = {}));
565
+
566
+ export { SortOrder as S, fuzzysort as f };
@@ -1,7 +1,7 @@
1
1
  var UnitSystem;
2
2
  (function (UnitSystem) {
3
- UnitSystem["Imperial"] = "imperial";
4
- UnitSystem["Metric"] = "metric";
3
+ UnitSystem["Imperial"] = "imperial";
4
+ UnitSystem["Metric"] = "metric";
5
5
  })(UnitSystem || (UnitSystem = {}));
6
6
 
7
7
  export { UnitSystem as U };
@@ -0,0 +1,61 @@
1
+ function isNumber(str) {
2
+ return str !== null && str > '' && !isNaN(Number(str));
3
+ }
4
+ function formatNumber(n) {
5
+ return Number(n).toLocaleString(undefined, { minimumFractionDigits: 0 });
6
+ }
7
+ function isNullOrUndefined(input) {
8
+ return (input === null || input === undefined);
9
+ }
10
+ /**
11
+ * Check if current browser is Internet Explorer.
12
+ *
13
+ * @export
14
+ * @returns {boolean}
15
+ */
16
+ function isInternetExplorer() {
17
+ return (navigator.userAgent.match(/Trident/g) || navigator.userAgent.match(/MSIE/g)) ? true : false;
18
+ }
19
+ /**
20
+ * Check if string is a valid URL.
21
+ * @param {string} urlString
22
+ * @returns {boolean}
23
+ */
24
+ function isUrlValid(urlString) {
25
+ try {
26
+ new URL(urlString);
27
+ return true;
28
+ }
29
+ catch (err) {
30
+ return false;
31
+ }
32
+ }
33
+ /**
34
+ * Append query parameters to image URL hosted by MapsIndoors to request with specific size or scale depending on hostname.
35
+ * @param {string} imageURL - URL for image
36
+ * @param {number} iconDisplaySize - The width and height that the icon should be displayed in
37
+ * @returns string
38
+ */
39
+ function appendMapsIndoorsImageQueryParameters(imageURL, iconDisplaySize) {
40
+ if (isUrlValid(imageURL) === false) {
41
+ return;
42
+ }
43
+ const url = new URL(imageURL);
44
+ const hostname = url.hostname;
45
+ if (hostname === 'image.mapsindoors.com') {
46
+ // Add query parameters for image size and fitMode.
47
+ const devicePixelRatio = Math.max(2, window.devicePixelRatio || 1); // Forced minimum of 2 to circumvent poor scaling quality delivered from the image API (see MIBAPI-2566)
48
+ const imageRequestWidth = iconDisplaySize * devicePixelRatio;
49
+ const imageRequestHeight = iconDisplaySize * devicePixelRatio;
50
+ url.searchParams.set('width', imageRequestWidth.toString());
51
+ url.searchParams.set('height', imageRequestHeight.toString());
52
+ url.searchParams.set('fitMode', 'cover');
53
+ }
54
+ if (['app.mapsindoors.com', 'v2.mapsindoors.com'].includes(hostname)) {
55
+ // For legacy images, add a scale parameter
56
+ url.searchParams.set('scale', '2');
57
+ }
58
+ return url.toString();
59
+ }
60
+
61
+ export { isNumber as a, appendMapsIndoorsImageQueryParameters as b, isInternetExplorer as c, formatNumber as f, isNullOrUndefined as i };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mapsindoors/map-template",
3
3
  "description": "Get a MapsIndoors map up and running in less than 10 mins.",
4
- "version": "1.95.0",
4
+ "version": "1.95.2",
5
5
  "private": false,
6
6
  "files": [
7
7
  "dist/*.js",
@@ -1,21 +0,0 @@
1
- var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
2
-
3
- function getDefaultExportFromCjs (x) {
4
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
5
- }
6
-
7
- function createCommonjsModule(fn, basedir, module) {
8
- return module = {
9
- path: basedir,
10
- exports: {},
11
- require: function (path, base) {
12
- return commonjsRequire();
13
- }
14
- }, fn(module, module.exports), module.exports;
15
- }
16
-
17
- function commonjsRequire () {
18
- throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
19
- }
20
-
21
- export { commonjsGlobal as a, createCommonjsModule as c, getDefaultExportFromCjs as g };