atriusmaps-node-sdk 3.2.21 → 3.3.1

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 (51) hide show
  1. package/README.md +34 -36
  2. package/dist/cjs/_virtual/_empty_module_placeholder.js +2 -2
  3. package/dist/cjs/deploy/nodeEntry.js +4 -4
  4. package/dist/cjs/deploy/prepareSDKConfig.js +2 -2
  5. package/dist/cjs/package.json.js +3 -3
  6. package/dist/cjs/plugins/dynamicPois/src/dynamicPois.js +1 -1
  7. package/dist/cjs/plugins/poiDataManager/src/poiDataManager.js +1 -1
  8. package/dist/cjs/plugins/sdkServer/src/sdkServer.js +1 -1
  9. package/dist/cjs/plugins/searchService/src/poiSearch.js +1 -1
  10. package/dist/cjs/plugins/searchService/src/searchTypeahead.js +2 -2
  11. package/dist/cjs/plugins/venueDataLoader/src/venueDataLoader.js +1 -1
  12. package/dist/cjs/plugins/venueDataLoader/src/venueLoadingUtils.js +5 -4
  13. package/dist/cjs/plugins/wayfinder/src/minPriorityQueue.js +2 -2
  14. package/dist/cjs/plugins/wayfinder/src/segmentBadges.js +2 -2
  15. package/dist/cjs/plugins/wayfinder/src/segmentCategories.js +2 -2
  16. package/dist/cjs/plugins/wayfinder/src/stepBuilder.js +1 -1
  17. package/dist/cjs/src/app.js +2 -2
  18. package/dist/cjs/src/configs/sdkHeadless.json.js +0 -4
  19. package/dist/cjs/src/debugTools.js +1 -1
  20. package/dist/cjs/src/extModules/bustle.js +1 -1
  21. package/dist/cjs/src/utils/configUtils.js +2 -2
  22. package/dist/cjs/src/utils/geom.js +6 -6
  23. package/dist/cjs/src/utils/i18n.js +2 -2
  24. package/lib/_virtual/_empty_module_placeholder.js +1 -0
  25. package/lib/deploy/nodeEntry.js +1 -1
  26. package/lib/deploy/prepareSDKConfig.js +1 -1
  27. package/lib/package.json.js +1 -1
  28. package/lib/plugins/dynamicPois/src/dynamicPois.js +1 -1
  29. package/lib/plugins/poiDataManager/src/poiDataManager.js +1 -1
  30. package/lib/plugins/sdkServer/src/sdkServer.js +1 -1
  31. package/lib/plugins/searchService/src/poiSearch.js +1 -1
  32. package/lib/plugins/searchService/src/searchTypeahead.js +1 -1
  33. package/lib/plugins/venueDataLoader/src/venueDataLoader.js +1 -1
  34. package/lib/plugins/venueDataLoader/src/venueLoadingUtils.js +1 -1
  35. package/lib/plugins/wayfinder/src/minPriorityQueue.js +1 -1
  36. package/lib/plugins/wayfinder/src/segmentBadges.js +1 -1
  37. package/lib/plugins/wayfinder/src/segmentCategories.js +1 -1
  38. package/lib/plugins/wayfinder/src/stepBuilder.js +1 -1
  39. package/lib/src/app.js +1 -1
  40. package/lib/src/auth/Auth.js +1 -1
  41. package/lib/src/configs/sdkHeadless.json +0 -4
  42. package/lib/src/configs/sdkHeadless.json.js +1 -1
  43. package/lib/src/debugTools.js +1 -1
  44. package/lib/src/extModules/bustle.js +1 -1
  45. package/lib/src/extModules/flexapi/src/index.js +1 -1
  46. package/lib/src/utils/configUtils.js +1 -1
  47. package/lib/src/utils/geom.js +1 -1
  48. package/lib/src/utils/i18n.js +1 -1
  49. package/lib/src/utils/observable.js +1 -1
  50. package/package.json +2 -2
  51. package/lib/_virtual/_empty_module_placeholder +0 -1
package/README.md CHANGED
@@ -1,78 +1,76 @@
1
1
  # atriusmaps-node-sdk
2
2
 
3
- ## To Install:
3
+ ## To Install:
4
4
 
5
5
  `npm install atriusmaps-node-sdk`
6
6
 
7
- Or with yarn:
7
+ Or with yarn:
8
8
 
9
9
  `yarn add atriusmaps-node-sdk`
10
10
 
11
- Then within your code, import the map initializer via:
11
+ Then within your code, import the map initializer via:
12
12
 
13
13
  `import Init from 'atriusmaps-node-sdk'`
14
14
 
15
15
  or use `require`
16
16
 
17
- `const Init = require("atriusmas-node-sdk")`
17
+ `const Init = require("atriusmaps-node-sdk")`
18
18
 
19
19
  ## To Use
20
20
 
21
- The Init object contains 3 methods:
21
+ The Init object contains 3 methods:
22
+
23
+ - `Init.setLogging(boolean logging)` : To turn on/off the logging
24
+ - `Init.getVersion()` : Returns the current version of the library
25
+ - `Init.newMap(Object configuration)` : This is how your initialize a new map. This returns a Promise that resolves to your map.
22
26
 
23
- - `Init.setLogging(boolean logging)` : To turn on/off the logging
24
- - `Init.getVersion()` : Returns the current version of the library
25
- - `Init.newMap(Object configuration)` : This is how your initialize a new map. This returns a Promise that resolves to your map.
26
-
27
27
  The configuration object is documented in full at https://locusmapsjs.readme.io/docs/sdk-configuration - with the only difference being that headless is forced to true for this node (non-browser) version.
28
-
29
- At a minimum, a configuration would contain an accountId and a venueId:
28
+
29
+ At a minimum, a configuration would contain an accountId and a venueId:
30
30
 
31
31
  ```js
32
- const config = {
33
- venueId: '<venueId>',
32
+ const config = {
33
+ venueId: '<venueId>',
34
34
  accountId: '<accountId>'
35
- }
35
+ }
36
36
  ```
37
37
 
38
- You then initialize your map:
38
+ You then initialize your map:
39
39
 
40
40
  ```js
41
- const map = await Init.newMap(config)
41
+ const map = await Init.newMap(config)
42
42
  ```
43
43
 
44
- Your map function is ready to receive commands – of which the following are currently supported:
44
+ Your map function is ready to receive commands – of which the following are currently supported:
45
45
 
46
- - `help` : Returns a string indicating all available commands and their arguments
47
- - `getDirections`: Get time, distance and navigation steps from one point to another
48
- - `getPOIDetails`: Get detailed information about a POI by ID
49
- - `getAllPOIs`: Get a list of all POIs for the venue
50
- - `getStructures`: Returns a list of structures (buildings) within the venue along with their properties
51
- - `getVenueData`: Returns a complete venue object containing all venue details
52
- - `search`: Performs a search against a term specified
46
+ - `help` : Returns a string indicating all available commands and their arguments
47
+ - `getDirections`: Get time, distance and navigation steps from one point to another
48
+ - `getPOIDetails`: Get detailed information about a POI by ID
49
+ - `getAllPOIs`: Get a list of all POIs for the venue
50
+ - `getStructures`: Returns a list of structures (buildings) within the venue along with their properties
51
+ - `getVenueData`: Returns a complete venue object containing all venue details
52
+ - `search`: Performs a search against a term specified
53
53
 
54
- For details on these commands, including their arguments, return value formats, and examples, see https://locusmapsjs.readme.io/docs/commands
54
+ For details on these commands, including their arguments, return value formats, and examples, see https://locusmapsjs.readme.io/docs/commands
55
55
 
56
- Note that all these commands are asynchronous, and return a promise. So use them with `await` or a `then` clause.
56
+ Note that all these commands are asynchronous, and return a promise. So use them with `await` or a `then` clause.
57
57
 
58
- Examples:
58
+ Examples:
59
59
 
60
60
  ```js
61
- const poi = await map.getPOIDetails(11)
62
- console.log(`Got POI details for ${poi.name}.`)
61
+ const poi = await map.getPOIDetails(11)
62
+ console.log(`Got POI details for ${poi.name}.`)
63
63
  ```
64
64
 
65
- Or
65
+ Or
66
66
 
67
67
  ```js
68
- map.getPOIDetails(11)
69
- .then(poi => console.log(`Got POI Details for ${poi.name}.`))
68
+ map.getPOIDetails(11)
69
+ .then(poi => console.log(`Got POI Details for ${poi.name}.`))
70
70
  ```
71
71
 
72
- **Note**: This library involves loading JSON resources and thus requires the `--experimental-json-modules` flag be specified when launching.
73
-
74
72
  For example:
75
73
 
76
74
  ```bash
77
- node --experimental-json-modules main.js
78
- ```
75
+ node main.js
76
+ ```
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var _empty_module_placeholder = {};
3
+ var a={};
4
4
 
5
- module.exports = _empty_module_placeholder;
5
+ module.exports = a;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var o = require('node-fetch');
3
+ var e = require('node-fetch');
4
4
  var package_json = require('../package.json.js');
5
5
  var controller = require('../src/controller.js');
6
6
  var observable = require('../src/utils/observable.js');
@@ -8,8 +8,8 @@ var prepareSDKConfig = require('./prepareSDKConfig.js');
8
8
 
9
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
10
 
11
- var o__default = /*#__PURE__*/_interopDefaultLegacy(o);
11
+ var e__default = /*#__PURE__*/_interopDefaultLegacy(e);
12
12
 
13
- const s=package_json["default"].version;globalThis.fetch||(globalThis.fetch=o__default["default"]);const c={getVersion:()=>s,newMap:o=>async function(o){return new Promise(((e,s)=>{o.headless=!0;const c=prepareSDKConfig(o);controller.create(c).then((o=>{const n=(e,n)=>("string"==typeof e&&(e={...n,command:e}),o.bus.get("clientAPI/execute",e));observable(n),o.eventListener.observe((function(){n.fire.apply(n,arguments);})),n.on("ready",((o,t)=>{const{commands:r}=t.commandJSON;!function(o,e){e.forEach((e=>{o[e.command]=function(){const n={command:e.command};for(let o=0;o<arguments.length;o++)n[e.args[o].name]=arguments[o];return o(n)};}));}(n,r),e(n);}));}));}))}(o)};
13
+ const r=package_json["default"].version;globalThis.fetch||(globalThis.fetch=e__default["default"]);let c=!1;const i=e=>e.toString().length<2?"0"+e:e,a=()=>`AtriusMaps Node SDK (${(()=>{const e=new Date;return `${e.getHours()}:${i(e.getMinutes())}:${i(e.getSeconds())}.${e.getMilliseconds()}`})()}): `,g=function(){if(c){let e=a()+Array.from(arguments).map((e=>"object"==typeof e?JSON.stringify(e):e)).join(" ");const n=e.split("\n");n.length>1?e=n[0]+`… (+ ${n.length-1} lines)`:e.length>256&&(e=e.substring(0,255)+`… (length: ${e.length} chars)`),console.log(e);}};const l={getVersion:()=>r,newMap:e=>async function(e){return new Promise(((n,r)=>{e.headless=!0;const c=prepareSDKConfig(e);controller.create(c).then((e=>{const t=(n,t)=>("string"==typeof n&&(n={...t,command:n}),g("Sending command object: ",n),e.bus.get("clientAPI/execute",n).then((e=>(g("Received Message: ",e),e))).catch((e=>{throw g("Error: ",e.message),e})));observable(t),e.eventListener.observe((function(){t.fire.apply(t,arguments);})),t.on("ready",((e,o)=>{const{commands:s}=o.commandJSON;!function(e,n){n.forEach((n=>{e[n.command]=function(){const t={command:n.command};for(let e=0;e<arguments.length;e++)t[n.args[e].name]=arguments[e];return e(t)};}));}(t,s),n(t),g("map ready");}));}));}))}(e),setLogging:e=>{c=e,e&&g(`Atrius Maps JS SDK Client v${r} Logging enabled.`);}};
14
14
 
15
- module.exports = c;
15
+ module.exports = l;
@@ -4,6 +4,6 @@ var postprocMolUrlParms = require('../src/configs/postproc-mol-url-parms.js');
4
4
  var postprocStateTracking = require('../src/configs/postproc-stateTracking.js');
5
5
  var funcs = require('../src/utils/funcs.js');
6
6
 
7
- function i(i){const{name:n,debug:r,headless:a,theme:c,defaultSearchTerms:p,venueId:d,accountId:l,poiCategories:u,preserveStateInURL:h,supportURLDeepLinks:g,initState:m,deepLinkParms:f,uiHide:k,renderDiv:v,parentConfig:S,desktopViewMinWidth:P,forceDesktop:A,hostAppId:V,hostAppVersion:b,hostAppProperties:I,logFilter:L,searchPlaceholder:j}=i,w=S?[S]:a?["sdkHeadless"]:["sdkVisual"],y=(e,t)=>e&&e.length>t?e.substring(0,t):e,D={name:n,extends:w,debug:r,logFilter:L,theme:c,uiHide:k,renderDiv:v,configPostProc:[],plugins:{venueDataLoader:{venueId:d,accountId:l},sdkServer:{headless:a},analytics2:{hostAppId:(e=>e?y(e.toString(),128):void 0)(V),hostAppVersion:(e=>e?y(e.toString(),128):void 0)(b),hostAppProperties:(e=>{if(!e||"object"!=typeof e)return;const t={},o=Object.keys(e);return o.length>10&&(o.length=10),o.forEach((o=>{let i=y(o.toString().replaceAll(/[^a-zA-Z0-9_]/g,""),128);i.match(/^[a-zA-Z]+/)||(i="X"+i);let s=e[o];null==s&&(s=""),s=y(s.toString(),128),t[i]=s;})),t})(I)}},uuid:"undefined"!=typeof document&&document&&document.location?document.location.host:"unknown"};return a||(D.plugins["online/headerOnline"]={searchPlaceholder:j}),D.plugins.searchService=p?{defaultSearchTerms:p}:{},s(i,"defaultSearchTerms",D.plugins.searchService),w.includes("sdkVisual")&&(D.plugins["online/homeView"]=u?{poiCategories:u}:{},s(i,"poiCategories",D.plugins["online/homeView"])),h&&(D.configPostProc.push("stateTracking"),D.plugins.deepLinking={trackURL:!0}),g&&D.configPostProc.push("mol-url-parms"),m&&postprocStateTracking.setStateFromStateString(D,atob(m),!0),f&&postprocMolUrlParms.setDeepLinksForParms(D,f,!0),void 0!==P&&(D.desktopViewMinWidth=P),A&&(D.desktopViewMinWidth=0),funcs.filterOb(((e,t)=>void 0!==t),D)}function s(e,t,o){Object.keys(e).filter((e=>e.startsWith(t+"-"))).forEach((t=>o[t]=e[t]));}
7
+ function o(o){const{name:n,debug:r,headless:a,theme:c,defaultSearchTerms:d,venueId:l,accountId:p,poiCategories:u,preserveStateInURL:h,supportURLDeepLinks:g,initState:m,deepLinkParms:f,uiHide:k,renderDiv:v,parentConfig:P,desktopViewMinWidth:S,forceDesktop:V,hostAppId:A,hostAppVersion:b,hostAppProperties:y,logFilter:I,searchPlaceholder:L,dataFetch:j,engineName:w,dynamicPoisUrlBaseV1:D}=o,T=P?[P]:a?["sdkHeadless"]:["sdkVisual"],C=(e,t)=>e&&e.length>t?e.substring(0,t):e,F={name:n,engineName:w,extends:T,debug:r,logFilter:I,theme:c,uiHide:k,renderDiv:v,configPostProc:[],plugins:{venueDataLoader:{dataFetch:j,venueId:l,accountId:p},sdkServer:{headless:a},analytics2:{hostAppId:(e=>e?C(e.toString(),128):void 0)(A),hostAppVersion:(e=>e?C(e.toString(),128):void 0)(b),hostAppProperties:(e=>{if(!e||"object"!=typeof e)return;const t={},i=Object.keys(e);return i.length>10&&(i.length=10),i.forEach((i=>{let o=C(i.toString().replaceAll(/[^a-zA-Z0-9_]/g,""),128);o.match(/^[a-zA-Z]+/)||(o="X"+o);let s=e[i];null==s&&(s=""),s=C(s.toString(),128),t[o]=s;})),t})(y)}},uuid:"undefined"!=typeof document&&document&&document.location?document.location.host:"unknown"};return a||(F.plugins["online/headerOnline"]={searchPlaceholder:L}),F.plugins.searchService=d?{defaultSearchTerms:d}:{},s(o,"defaultSearchTerms",F.plugins.searchService),T.includes("sdkVisual")&&(F.plugins["online/homeView"]=u?{poiCategories:u}:{},s(o,"poiCategories",F.plugins["online/homeView"])),h&&(F.configPostProc.push("stateTracking"),F.plugins.deepLinking={trackURL:!0}),g&&F.configPostProc.push("mol-url-parms"),m&&postprocStateTracking.setStateFromStateString(F,atob(m),!0),f&&postprocMolUrlParms.setDeepLinksForParms(F,f,!0),void 0!==S&&(F.desktopViewMinWidth=S),V&&(F.desktopViewMinWidth=0),D&&(F.plugins.dynamicPois={urlBaseV1:D}),funcs.filterOb(((e,t)=>void 0!==t),F)}function s(e,t,i){Object.keys(e).filter((e=>e.startsWith(t+"-"))).forEach((t=>i[t]=e[t]));}
8
8
 
9
- module.exports = i;
9
+ module.exports = o;
@@ -2,10 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var a={demo:"cd demo/ && yarn start",e2eTest:"percy exec -- cypress run --browser chrome",goProd:"cd deploy && scripts/goProd.sh",goStaging:"deploy/scripts/goStaging.sh",mod:"demo/startMod.sh",mol:"demo/startMol.sh",mos:"demo/startMos.sh",prepare:"husky install",test:"jest --no-cache --verbose","test-watch":"jest --verbose --watch"},t={"@aws-amplify/auth":"^4.1.2","@azure/event-hubs":"^5.6.0","@john-osullivan/react-window-dynamic-fork":"^1.9.0-alpha.1","@locus-labs/mod-badge":"^0.1.11","@locus-labs/mod-default-theme":"^0.0.27","@locus-labs/mod-footer":"^0.0.25","@locus-labs/mod-header":"^0.0.19","@locus-labs/mod-location-marker":"^0.0.18","@locus-labs/mod-map-legend":"^0.0.18","@locus-labs/mod-offscreen-indicator":"^0.0.18","@locus-labs/mod-pin":"^0.0.18","@locus-labs/mod-qr-code-card":"^0.0.18","@locus-labs/mod-qr-code-window":"^0.0.19","@locus-labs/mod-walk-time-matrix":"^0.0.17","@locus-labs/mol-desktop-building-level-selector":"^0.1.15","@locus-labs/mol-desktop-compass":"^0.1.29","@locus-labs/mol-desktop-default-theme":"^0.2.13","@locus-labs/mol-desktop-icon":"^0.1.45","@locus-labs/mol-desktop-logo":"^0.1.10","@locus-labs/mol-desktop-map-nav-button":"^0.1.39","@locus-labs/mol-desktop-submenu":"^0.1.30","@locus-labs/mol-desktop-tooltip":"^0.3.11","@locus-labs/mol-desktop-zoom-control":"^0.1.37","@locus-labs/mol-mobile-floating-action-button":"^0.0.20","@locus-labs/mol-mobile-toast":"^0.1.11","@turf/circle":"^6.5.0",IObject:"^0.6.2","crypto-browserify":"^3.12.0","file-loader":"^6.2.0",flexsearch:"0.6.32",i18next:"^20.3.4","i18next-browser-languagedetector":"^6.1.1",jsonschema:"^1.2.6",luxon:"^2.0.1","mapbox-gl":"^1.12.0","mini-css-extract-plugin":"^1.6.0",msal:"1.4.11","node-polyfill-webpack-plugin":"^1.1.4","path-browserify":"^1.0.1",polished:"^4.0.2","prop-types":"^15.7.2","query-string":"7.0.1",ramda:"^0.27.0",react:"^17.0.2","react-compound-slider":"^3.3.1","react-dom":"^17.0.2","react-json-editor-ajrm":"^2.5.13","react-qr-svg":"^2.2.1","react-svg":"^11.2.5","react-tageditor":"^0.2.3","react-virtualized-auto-sizer":"^1.0.2","smoothscroll-polyfill":"^0.4.4","styled-components":"5.1.0","styled-normalize":"^8.0.6","throttle-debounce":"^3.0.1",trackjs:"^3.7.4","ua-parser-js":"^0.7.23",uuid:"3.3.2",zousan:"^3.0.1","zousan-plus":"^4.0.1"},r={"@babel/core":"^7.14.8","@babel/plugin-proposal-class-properties":"^7.8.3","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.8.3","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.14.8","@babel/preset-react":"^7.8.3","@percy/cli":"^1.0.0-beta.60","@percy/cypress":"^3.1.0","babel-eslint":"^10.0.1","babel-jest":"^27.0.6","babel-loader":"^8.2.2","babel-plugin-inline-json-import":"^0.3.2","babel-plugin-module-resolver":"^4.0.0","babel-polyfill":"^6.26.0","chai-colors":"^1.0.1","css-loader":"^5.2.4",cypress:"^7.4.0","cypress-wait-until":"^1.7.1",eslint:"^7.4.0","eslint-config-standard":"^16.0.3","eslint-plugin-cypress":"^2.11.1","eslint-plugin-import":"^2.16.0","eslint-plugin-jest":"^24.3.6","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-react":"^7.12.4","eslint-plugin-standard":"^5.0.0","fetch-mock-jest":"^1.3.0",husky:"^6.0.0",jest:"^26.0.0","jest-transform-css":"^2.0.0","lint-staged":"^11.0.1","node-fetch":"^2.6.0","null-loader":"^4.0.1",webpack:"^5.45.1","webpack-merge":"^5.8.0"},n=["demo","deploy","pageSrc","src/extModules/flexapi"],i={name:"web-engine",version:"3.2.21",main:"src/main.js",type:"module",scripts:a,dependencies:t,devDependencies:r,"lint-staged":{"*.js":["eslint --fix"]},license:"UNLICENSED",workspaces:n,private:!0};
5
+ var a={demo:"cd demo/ && yarn start",e2eTest:"percy exec -- cypress run --browser chrome",goProd:"cd deploy && scripts/goProd.sh",goStaging:"deploy/scripts/goStaging.sh",mod:"demo/startMod.sh",mol:"demo/startMol.sh",mos:"demo/startMos.sh",prepare:"husky install",test:"jest --no-cache --verbose","test-watch":"jest --verbose --watch"},t={"@aws-amplify/auth":"^4.1.2","@azure/event-hubs":"^5.6.0","@john-osullivan/react-window-dynamic-fork":"^1.9.0-alpha.1","@locus-labs/mod-badge":"^0.1.11","@locus-labs/mod-default-theme":"^0.0.27","@locus-labs/mod-footer":"^0.0.25","@locus-labs/mod-header":"^0.0.19","@locus-labs/mod-location-marker":"^0.0.18","@locus-labs/mod-map-legend":"^0.0.18","@locus-labs/mod-offscreen-indicator":"^0.0.18","@locus-labs/mod-pin":"^0.0.18","@locus-labs/mod-qr-code-card":"^0.0.18","@locus-labs/mod-qr-code-window":"^0.0.19","@locus-labs/mod-walk-time-matrix":"^0.0.17","@locus-labs/mol-desktop-building-level-selector":"^0.1.15","@locus-labs/mol-desktop-compass":"^0.1.29","@locus-labs/mol-desktop-default-theme":"^0.2.13","@locus-labs/mol-desktop-icon":"^0.1.45","@locus-labs/mol-desktop-logo":"^0.1.10","@locus-labs/mol-desktop-map-nav-button":"^0.1.39","@locus-labs/mol-desktop-submenu":"^0.1.30","@locus-labs/mol-desktop-tooltip":"^0.3.11","@locus-labs/mol-desktop-zoom-control":"^0.1.37","@locus-labs/mol-mobile-floating-action-button":"^0.0.20","@locus-labs/mol-mobile-toast":"^0.1.11","@turf/circle":"^6.5.0",IObject:"^0.6.2","crypto-browserify":"^3.12.0","file-loader":"^6.2.0",flexsearch:"0.6.32",i18next:"^20.3.4","i18next-browser-languagedetector":"^6.1.1",jsonschema:"^1.2.6",luxon:"^2.0.1","maplibre-gl":"~2.1.9","mini-css-extract-plugin":"^1.6.0",msal:"1.4.11","node-polyfill-webpack-plugin":"^1.1.4","path-browserify":"^1.0.1",polished:"^4.0.2","prop-types":"^15.7.2","query-string":"7.0.1",ramda:"^0.27.0",react:"^17.0.2","react-compound-slider":"^3.3.1","react-dom":"^17.0.2","react-json-editor-ajrm":"^2.5.13","react-qr-svg":"^2.2.1","react-svg":"^11.2.5","react-tageditor":"^0.2.3","react-virtualized-auto-sizer":"^1.0.2","smoothscroll-polyfill":"^0.4.4","styled-components":"5.1.0","styled-normalize":"^8.0.6","throttle-debounce":"^3.0.1",trackjs:"^3.7.4","ua-parser-js":"^0.7.23",uuid:"3.3.2",zousan:"^3.0.1","zousan-plus":"^4.0.1"},r={"@babel/core":"^7.14.8","@babel/plugin-proposal-class-properties":"^7.8.3","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.8.3","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.14.8","@babel/preset-react":"^7.8.3","@percy/cli":"^1.0.0-beta.60","@percy/cypress":"^3.1.0","babel-eslint":"^10.0.1","babel-jest":"^27.0.6","babel-loader":"^8.2.2","babel-plugin-inline-json-import":"^0.3.2","babel-plugin-module-resolver":"^4.0.0","babel-polyfill":"^6.26.0","chai-colors":"^1.0.1","css-loader":"^5.2.4",cypress:"9.5.2","cypress-wait-until":"^1.7.1",eslint:"^7.4.0","eslint-config-standard":"^16.0.3","eslint-plugin-cypress":"^2.11.1","eslint-plugin-import":"^2.16.0","eslint-plugin-jest":"^24.3.6","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-react":"^7.12.4","eslint-plugin-standard":"^5.0.0","fetch-mock-jest":"^1.3.0",husky:"^6.0.0",jest:"^26.0.0","jest-transform-css":"^2.0.0","lint-staged":"^11.0.1","node-fetch":"^2.6.0","null-loader":"^4.0.1",webpack:"^5.45.1","webpack-merge":"^5.8.0"},c=["demo","deploy","pageSrc","src/extModules/flexapi"],d={name:"web-engine",version:"3.3.1",main:"src/main.js",type:"module",scripts:a,dependencies:t,devDependencies:r,"lint-staged":{"*.js":["eslint --fix"]},license:"UNLICENSED",workspaces:c,private:!0,packageManager:"yarn@3.2.2"};
6
6
 
7
- exports["default"] = i;
7
+ exports["default"] = d;
8
8
  exports.dependencies = t;
9
9
  exports.devDependencies = r;
10
10
  exports.scripts = a;
11
- exports.workspaces = n;
11
+ exports.workspaces = c;
@@ -28,6 +28,6 @@ function _interopNamespace(e) {
28
28
  var e__namespace = /*#__PURE__*/_interopNamespace(e);
29
29
  var a__default = /*#__PURE__*/_interopDefaultLegacy(a$1);
30
30
 
31
- function a(a,n){let s=new a__default["default"];const i=new a__default["default"];function o(t,n){const s=e__namespace.pipe(e__namespace.filter((e=>"parking"===e.category)),e__namespace.map((a=>{const n=a.dynamicAttributes;if(!n)throw Error(`No dynamicAttributes defined for parking POI ${a.poiId}`);return {...(t-a.timestamp)/1e3<n["parking.timeToLive"]?e__namespace.pick(["lotStatus","rateDay","rateHour","timeIsReal","timeToTerminal1","timeToTerminal2"],a):{lotStatus:n["parking.default"],rateDay:"$ -",rateHour:"$ -",timeIsReal:!1},lastUpdated:a.timestamp,lotName:a.lotName}})))(n);a.bus.send("poi/setDynamicData",{plugin:"parking",idValuesMap:s});}function r(t,n){const s=e__namespace.pipe(e__namespace.map((e=>[e.poiId,u(t,e)])),e__namespace.fromPairs)(n);a.bus.send("poi/setDynamicData",{plugin:"security",idValuesMap:s});}const u=(e,t)=>({queueTime:t.queueTime,isTemporarilyClosed:t.isTemporarilyClosed,timeIsReal:!t.isQueueTimeDefault&&t.expiration>e,lastUpdated:e});return a.bus.on("venueData/venueDataLoaded",(({venueData:e})=>{s.v?s=a__default["default"].resolve(e):s.resolve(e);})),a.bus.on("sdk/readyWhenYouAre",(()=>i)),{init:async()=>{const e=n.urlBase||"https://rest.locuslabs.com/v3",t=n.urlBase||"https://rest.locuslabs.com/v1",u=a.config.plugins.venueDataLoader.accountId;async function c(){return s.then((e=>{let a=`${t}/venue/${e.id}/account/${u}/get-all-dynamic-pois/`;return (t.startsWith("./")||t.endsWith(".json"))&&(a=t),a}))}const l=async()=>s.then((t=>e.startsWith("./")||e.endsWith(".json")?e:`${e}/venueId/${t.id}/accountId/${u}/get-dynamic-queue-times/`)),m=async()=>{Promise.all([c().then(fetch).then((e=>e.json())).then((e=>o(Date.now(),e))),l().then(fetch).then((e=>e.json())).then((e=>r(Date.now(),e)))]).then((()=>i.resolve(!0))).catch((e=>{console.error(e),i.resolve(!0);}));},p=await a.bus.get("venueData/getQueueTypes");p.SecurityLane&&p.SecurityLane.length?s.then(m).then((()=>setInterval(m,3e4))):i.resolve(!0);},internal:{processSecurityWaitTimes:r,processParkingPOIS:o}}}
31
+ function a(a,s){let n=new a__default["default"];const i=new a__default["default"];function o(...e){r(...e),p(...e);}function r(t,s){const n=e__namespace.pipe(e__namespace.filter((e=>"parking"===e.category)),e__namespace.map((a=>{const s=a.dynamicAttributes;if(!s)throw Error(`No dynamicAttributes defined for parking POI ${a.poiId}`);return {...(t-a.timestamp)/1e3<s["parking.timeToLive"]?e__namespace.pick(["lotStatus","rateDay","rateHour","timeIsReal","timeToTerminal1","timeToTerminal2"],a):{lotStatus:s["parking.default"],rateDay:"$ -",rateHour:"$ -",timeIsReal:!1},lastUpdated:a.timestamp,lotName:a.lotName}})))(s);a.bus.send("poi/setDynamicData",{plugin:"parking",idValuesMap:n});}function u(t,s){const n=e__namespace.pipe(e__namespace.map((e=>[e.poiId,l(t,e)])),e__namespace.fromPairs)(s);a.bus.send("poi/setDynamicData",{plugin:"security",idValuesMap:n});}const l=(e,t)=>({queueTime:t.queueTime,isTemporarilyClosed:t.isTemporarilyClosed,timeIsReal:!t.isQueueTimeDefault&&t.expiration>e,lastUpdated:e});function p(t,s){const n=["dynamicData","openClosed"],i=e__namespace.filter(e__namespace.hasPath(n),s),o=e__namespace.map(e__namespace.path(n),i);if(!e__namespace.all(e__namespace.both(e__namespace.has("isOpen"),e__namespace.has("expiration")),e__namespace.values(o)))throw Error("Open Closed poi status is malformed.");{const s=e__namespace.pipe(e__namespace.prop("expiration"),e__namespace.lt(t)),n=e__namespace.filter(s,o);a.bus.send("poi/setDynamicData",{plugin:"open-closed-status",idValuesMap:n});}}return a.bus.on("venueData/venueDataLoaded",(({venueData:e})=>{n.v?n=a__default["default"].resolve(e):n.resolve(e);})),a.bus.on("sdk/readyWhenYouAre",(()=>i)),{init:async()=>{const e=s.urlBase||"https://rest.locuslabs.com/v3",t=s.urlBaseV1||s.urlBase||"https://rest.locuslabs.com/v1",r=a.config.plugins.venueDataLoader.accountId;async function l(){return n.then((e=>{let a=`${t}/venue/${e.id}/account/${r}/get-all-dynamic-pois/`;return (t.startsWith("./")||t.endsWith(".json"))&&(a=t),a}))}const p=async()=>n.then((t=>e.startsWith("./")||e.endsWith(".json")?e:`${e}/venueId/${t.id}/accountId/${r}/get-dynamic-queue-times/`)),c=async()=>{Promise.all([l().then(fetch).then((e=>e.json())).then((e=>o(Date.now(),e))),p().then(fetch).then((e=>e.json())).then((e=>u(Date.now(),e)))]).then((()=>i.resolve(!0))).catch((e=>{console.error(e),i.resolve(!0);}));},m=await a.bus.get("venueData/getQueueTypes");m.SecurityLane&&m.SecurityLane.length?n.then(c).then((()=>setInterval(c,3e4))):i.resolve(!0);},internal:{processSecurityWaitTimes:u,processParkingPOIS:r,processOpenClosedPois:p,processDynamicPois:o}}}
32
32
 
33
33
  exports.create = a;
@@ -31,6 +31,6 @@ function _interopNamespace(e) {
31
31
  var e__namespace = /*#__PURE__*/_interopNamespace(e);
32
32
  var a__default = /*#__PURE__*/_interopDefaultLegacy(a);
33
33
 
34
- async function n(a,n){const s=a.log.sublog("poiDataManager"),u=()=>{a.bus.send("venueData/loadPoiData");};let p=new a__default["default"];const d=(o,e)=>{const{position:t}=o,i=e.floorIdToStructure(t.floorId);if(!i)return s.error(`No structure found for floorId: ${t.floorId} for POI ${o.poiId}`),{...o};const a=e.floorIdToFloor(t.floorId),n={...t,structureName:i.name,buildingId:i.id,floorName:a.name,floorOrdinal:a.ordinal};return {...o,position:n}},c=(o,e)=>{o.roomInfo||(o.roomInfo=[]),o.roomInfo.push(e);},l=e__namespace.pipe(e__namespace.propOr([],"externalIds"),e__namespace.find(e__namespace.propEq("type","roomId")),e__namespace.prop("id"),e__namespace.unless(e__namespace.isNil,e__namespace.tail));a.bus.on("venueData/poiDataLoaded",(({pois:e,structures:n})=>{if(e=((e,t)=>e__namespace.pipe(e__namespace.values,e__namespace.map((o=>{o.distance=null,o.isNavigable=void 0===o.isNavigable||!0===o.isNavigable,o.capacity&&c(o,{name:`Seats ${o.capacity.join("-")}`,svgId:"number-of-seats"}),o.category.startsWith("meeting")&&c(o,{name:a.gt()("poiView:Conference Room"),svgId:"conference-room"});const e=l(o);return e&&(o.roomId=e),[o.poiId,d(o,t)]})),e__namespace.fromPairs)(e))(e,buildStructureLookup.buildStructuresLookup(n)),configUtils.debugIsTrue(a,"pseudoTransPois"))for(const o in e)e[o]=r(e[o],a.i18n().language);((async function(o){for(const e of Object.values(o))await y(e);}))(e=function(o){const e=[];return Object.values(o).forEach((o=>{try{const t=o.position;t?["buildingId","structureName","floorId","floorName","floorOrdinal","latitude","longitude"].forEach((i=>{null!==t[i]&&void 0!==t[i]||e.push({id:o.poiId,e:`invalid position property: ${i}: ${t[i]}`});})):e.push({poi:o,e:"No position information"});}catch(t){s.error(t),e.push({id:o.poiId,e:t.message});}})),e.length&&(s.warn("badPois:",e),e.forEach((e=>{delete o[e.id];}))),o}(e)),p.resolve(e),a.config.debug&&a.env.isBrowser&&(window._pois=e),a.config.debug&&async function(o){const e=Date.now(),t=[],i=await a.bus.get("wayfinder/_getNavGraph");Object.values(o).forEach((o=>{try{const e=o.position;i.findClosestNode(e.floorId,e.latitude,e.longitude)||t.push({id:o.poiId,e:"No closest Navgraph Node"});}catch(e){s.error(e),t.push({id:o.poiId,e:e.message});}})),t.length&&s.warn("badPois:",t),s(`Total time for navgraph POI check: ${Date.now()-e}ms`);}(e);})),a.bus.on("poi/getById",(async({id:o})=>p.then((e=>e[o])))),a.bus.on("poi/getByFloorId",(async({floorId:e})=>p.then(e__namespace.pickBy(e__namespace.pathEq(["position","floorId"],e))))),a.bus.on("poi/getByCategoryId",(async({categoryId:e})=>p.then(e__namespace.pickBy((o=>o.category===e||o.category.startsWith(e+".")))))),a.bus.on("poi/getAll",(async()=>p));const m=["queue","primaryQueueId"],f=(e,t,i)=>{const a=e__namespace.path(["queue","queueType"],t);if(!a)return null;const n=e[a],r=e__namespace.path(m,t);return i.filter(e__namespace.pathEq(m,r)).filter((o=>o.poiId!==t.poiId)).map((e=>{const t=e__namespace.path(["queue","queueSubtype"],e),i=g(t)(n);return {poiId:e.poiId,...i}}))},g=e=>e__namespace.pipe(e__namespace.find(e__namespace.propEq("id",e)),e__namespace.pick(["displayText","imageId"]));async function y(t){if(t)return e__namespace.length(t.images)?t.images[0].startsWith("https:")||(t.images=await a__default["default"].all(t.images.map((o=>a.bus.get("venueData/getPoiImageUrl",{imageName:o,size:"480x320"}))))):t.images=[],t}a.bus.on("poi/addOtherSecurityLanes",(({poi:e})=>(async e=>{if(!e__namespace.path(m,e))return e;const t=await a.bus.get("venueData/getQueueTypes"),i=await a.bus.get("poi/getByCategoryId",{categoryId:"security"}),n=Object.values(i);return e.queue.otherQueues=f(t,e,n),e})(e)));const I=e__namespace.memoizeWith(e__namespace.identity,e__namespace.pipe(e__namespace.pluck("category"),e__namespace.values,e__namespace.uniq));a.bus.on("poi/getAllCategories",(async()=>p.then(I))),a.bus.on("venueData/loadNewVenue",(()=>{p=new a__default["default"],u();})),a.bus.on("poi/setDynamicData",(({plugin:e,idValuesMap:t})=>{p.then((i=>{for(const a in t){const n=i[a].dynamicData||{};n[e]={...t[a]};const r=e__namespace.mergeRight(i[a],{dynamicData:n});i[a]=r;}}));}));return {init:u,runTest:async o=>(await o(),p),internal:{addImages:y,pseudoTransPoi:r}}}function r(o,e){return ["description","nearbyLandmark","name","phone","operationHours"].forEach((t=>{o[t]&&(o[t]=i18n.toLang(o[t],e));})),o.keywords&&(o.keywords=o.keywords.map((o=>(o.name=i18n.toLang(o.name,e),o)))),o.position.floorName&&(o.position.floorName=i18n.toLang(o.position.floorName,e)),o.position.structureName&&(o.position.structureName=i18n.toLang(o.position.structureName,e)),o}
34
+ async function n(a,n){const s=a.log.sublog("poiDataManager"),u=()=>{a.bus.send("venueData/loadPoiData");};let p=new a__default["default"];const d=(o,e)=>{const{position:t}=o,i=e.floorIdToStructure(t.floorId);if(!i)return s.error(`No structure found for floorId: ${t.floorId} for POI ${o.poiId}`),{...o};const a=e.floorIdToFloor(t.floorId),n={...t,structureName:i.name,buildingId:i.id,floorName:a.name,floorOrdinal:a.ordinal};return {...o,position:n}},c=(o,e)=>{o.roomInfo||(o.roomInfo=[]),o.roomInfo.push(e);},l=e__namespace.pipe(e__namespace.propOr([],"externalIds"),e__namespace.find(e__namespace.propEq("type","roomId")),e__namespace.prop("id"),e__namespace.unless(e__namespace.isNil,e__namespace.tail));a.bus.on("venueData/poiDataLoaded",(async({pois:e,structures:n})=>{if(e=((e,t)=>e__namespace.pipe(e__namespace.values,e__namespace.map((o=>{o.distance=null,o.isNavigable=void 0===o.isNavigable||!0===o.isNavigable,o.capacity&&c(o,{name:`Seats ${o.capacity.join("-")}`,svgId:"number-of-seats"}),o.category.startsWith("meeting")&&c(o,{name:a.gt()("poiView:Conference Room"),svgId:"conference-room"});const e=l(o);return e&&(o.roomId=e),[o.poiId,d(o,t)]})),e__namespace.fromPairs)(e))(e,buildStructureLookup.buildStructuresLookup(n)),configUtils.debugIsTrue(a,"pseudoTransPois"))for(const o in e)e[o]=r(e[o],a.i18n().language);e=function(o){const e=[];return Object.values(o).forEach((o=>{try{const t=o.position;t?["buildingId","structureName","floorId","floorName","floorOrdinal","latitude","longitude"].forEach((i=>{null!==t[i]&&void 0!==t[i]||e.push({id:o.poiId,e:`invalid position property: ${i}: ${t[i]}`});})):e.push({poi:o,e:"No position information"});}catch(t){s.error(t),e.push({id:o.poiId,e:t.message});}})),e.length&&(s.warn("badPois:",e),e.forEach((e=>{delete o[e.id];}))),o}(e),await async function(o){for(const e of Object.values(o))await y(e);return o}(e),p.resolve(e),a.config.debug&&a.env.isBrowser&&(window._pois=e),a.config.debug&&async function(o){const e=Date.now(),t=[],i=await a.bus.get("wayfinder/_getNavGraph");Object.values(o).forEach((o=>{try{const e=o.position;i.findClosestNode(e.floorId,e.latitude,e.longitude)||t.push({id:o.poiId,e:"No closest Navgraph Node"});}catch(e){s.error(e),t.push({id:o.poiId,e:e.message});}})),t.length&&s.warn("badPois:",t),s(`Total time for navgraph POI check: ${Date.now()-e}ms`);}(e);})),a.bus.on("poi/getById",(async({id:o})=>p.then((e=>e[o])))),a.bus.on("poi/getByFloorId",(async({floorId:e})=>p.then(e__namespace.pickBy(e__namespace.pathEq(["position","floorId"],e))))),a.bus.on("poi/getByCategoryId",(async({categoryId:e})=>p.then(e__namespace.pickBy((o=>o.category===e||o.category.startsWith(e+".")))))),a.bus.on("poi/getAll",(async()=>p));const f=["queue","primaryQueueId"],m=(e,t,i)=>{const a=e__namespace.path(["queue","queueType"],t);if(!a)return null;const n=e[a],r=e__namespace.path(f,t);return i.filter(e__namespace.pathEq(f,r)).filter((o=>o.poiId!==t.poiId)).map((e=>{const t=e__namespace.path(["queue","queueSubtype"],e),i=g(t)(n);return {poiId:e.poiId,...i}}))},g=e=>{return e__namespace.pipe(e__namespace.find(e__namespace.propEq("id",e)),(t=`No queue found with ID: ${e}`,o=>{if(null!=o)return o;throw Error(t)}),e__namespace.pick(["displayText","imageId"]));var t;};async function y(t){if(!t)return;const i="undefined"==typeof window?1:window.devicePixelRatio||1;return e__namespace.length(t.images)?t.images[0].startsWith("https:")||(t.images=await a__default["default"].all(t.images.map((o=>a.bus.get("venueData/getPoiImageUrl",{imageName:o,size:`${351*i}x${197*i}`}))))):t.images=[],t}a.bus.on("poi/addOtherSecurityLanes",(({poi:e})=>(async e=>{if(!e__namespace.path(f,e))return e;const t=await a.bus.get("venueData/getQueueTypes"),i=await a.bus.get("poi/getByCategoryId",{categoryId:"security"}),n=Object.values(i);return e.queue.otherQueues=m(t,e,n),e})(e)));const I=e__namespace.memoizeWith(e__namespace.identity,e__namespace.pipe(e__namespace.pluck("category"),e__namespace.values,e__namespace.uniq));a.bus.on("poi/getAllCategories",(async()=>p.then(I))),a.bus.on("venueData/loadNewVenue",(()=>{p=new a__default["default"],u();})),a.bus.on("poi/setDynamicData",(({plugin:e,idValuesMap:t})=>{p.then((i=>{for(const a in t){const n=i[a].dynamicData||{};n[e]={...t[a]};const r=e__namespace.mergeRight(i[a],{dynamicData:n});i[a]=r;}}));}));return {init:u,runTest:async o=>(await o(),p),internal:{addImages:y,pseudoTransPoi:r}}}function r(o,e){return ["description","nearbyLandmark","name","phone","operationHours"].forEach((t=>{o[t]&&(o[t]=i18n.toLang(o[t],e));})),o.keywords&&(o.keywords=o.keywords.map((o=>(o.name=i18n.toLang(o.name,e),o)))),o.position.floorName&&(o.position.floorName=i18n.toLang(o.position.floorName,e)),o.position.structureName&&(o.position.structureName=i18n.toLang(o.position.structureName,e)),o}
35
35
 
36
36
  exports.create = n;
@@ -8,6 +8,6 @@ var sdkHeadless = require('./sdkHeadless.js');
8
8
 
9
9
  function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, 'default': e }); }
10
10
 
11
- let a=null;function s(e){const t=(e,t)=>{const o={payload:e,type:"LL-server"};t&&(o.clientMsgId=t);try{window.postMessage(o,"*");}catch(e){window.postMessage((e=>JSON.parse(JSON.stringify(e)))(o),"*");}};function o(o){const n=o.data;n&&"LL-client"===n.type&&e.bus.get("clientAPI/execute",n.payload).then((e=>t(e,n.msgId))).catch((t=>{e.config.debug&&console.error(t),((e,t)=>{const o={error:!0,payload:e,type:"LL-server"};t&&(o.clientMsgId=t),window.postMessage(o,"*");})(t.message,n.msgId);}));}return a&&a(),window.addEventListener("message",o),a=()=>window.removeEventListener("message",o),(e,t)=>{const o={event:e,payload:t,type:"LL-server"};window.postMessage(o,"*");}}async function r(a,r){const i=a.env.isBrowser?s(a):function(e){const o=observable();return e.eventListener=o,(e,t)=>o.fire(e,t)}(a);return function(t,o){t.bus.monitor("map/userMoveStart",(async({pitch:e,zoom:n,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");o("userMoveStart",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:n,bearing:a});})),t.bus.monitor("map/userMoving",(async({pitch:e,zoom:n,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");o("userMoving",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:n,bearing:a});})),t.bus.monitor("map/moveEnd",(async({pitch:e,zoom:n,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");o("moveEnd",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:n,bearing:a});})),t.bus.monitor("map/floorChanged",(({structure:e,floor:t})=>o("levelChange",{floorId:t?t.id:null,floorName:t?t.name:null,ord:t?t.ordinal:null,structureId:e?e.id:null,structureName:e?e.name:null}))),t.bus.monitor("map/poiClicked",(({poi:e})=>o("poiSelected",e))),t.bus.monitor("map/click",(async({lat:n,lng:a,ord:s})=>{const r=await t.bus.get("venueData/getStructures"),{building:i,floor:l}=geom.getBuildingAndFloorAtPoint(r,n,a,s,!0);o("mapClicked",{lat:n,lng:a,ord:s,building:i,floor:l});}));}(a,i),{init:async()=>{!function(e){e.bus.send("clientAPI/registerCustomType",{name:"latLngOrdLocation",spec:{type:"object",props:[{name:"lat",type:"float"},{name:"lng",type:"float"},{name:"ord",type:"integer"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"latLngFloorLocation",spec:{type:"object",props:[{name:"lat",type:"float"},{name:"lng",type:"float"},{name:"floorId",type:"string"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"poiIdLocation",spec:{type:"object",props:[{name:"poiId",type:"integer",min:0}]}}),e.bus.send("clientAPI/registerCustomType",{name:"location",spec:{type:"multi",types:[{type:"poiIdLocation"},{type:"latLngOrdLocation"},{type:"latLngFloorLocation"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"viewSettings",spec:{type:"object",props:[{name:"zoom",type:"float",optional:!0},{name:"pitch",type:"float",optional:!0},{name:"bearing",type:"float",optional:!0}]}});}(a),sdkHeadless.headlessCommands.forEach((e=>a.bus.send("clientAPI/registerCommand",e))),sdkHeadless.handleHeadless(a),r.headless||await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('../../../_virtual/_empty_module_placeholder.js')); }).then((e=>{e.visualCommands.forEach((e=>a.bus.send("clientAPI/registerCommand",e))),e.handleVisual(a);}));const e=async()=>{await a.bus.send("sdk/readyWhenYouAre"),a.bus.get("clientAPI/execute",{command:"getCommandJSON"}).then((e=>i("ready",{commandJSON:e}))),!r.headless&&a.config.uiHide&&a.config.uiHide.sidebar&&a.env.isDesktop()&&a.bus.send("map/changePadding",{padding:{left:55,right:55,top:72,bottom:22}});};r.headless?Promise.all([new Promise((e=>a.bus.monitor("venueData/navGraphLoaded",e))),new Promise((e=>a.bus.monitor("venueData/poiDataLoaded",e)))]).then(e):a.bus.on("map/mapReadyToShow",e);}}}
11
+ let a=null;function s(e){const t=(e,t)=>{const o={payload:e,type:"LL-server"};t&&(o.clientMsgId=t);try{window.postMessage(o,"*");}catch(e){window.postMessage((e=>JSON.parse(JSON.stringify(e)))(o),"*");}};function o(o){const n=o.data;n&&"LL-client"===n.type&&e.bus.get("clientAPI/execute",n.payload).then((e=>t(e,n.msgId))).catch((t=>{e.config.debug&&console.error(t),((e,t)=>{const o={error:!0,payload:e,type:"LL-server"};t&&(o.clientMsgId=t),window.postMessage(o,"*");})(t.message,n.msgId);}));}return a&&a(),window.addEventListener("message",o),a=()=>window.removeEventListener("message",o),(e,t)=>{const o={event:e,payload:t,type:"LL-server"};window.postMessage(o,"*");}}async function r(a,r){const i=a.env.isBrowser?s(a):function(e){const o=observable();return e.eventListener=o,(e,t)=>o.fire(e,t)}(a);return function(t,o){t.bus.monitor("map/userMoveStart",(async({pitch:e,zoom:n,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");o("userMoveStart",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:n,bearing:a});})),t.bus.monitor("map/userMoving",(async({pitch:e,zoom:n,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");o("userMoving",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:n,bearing:a});})),t.bus.monitor("map/moveEnd",(async({pitch:e,zoom:n,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");o("moveEnd",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:n,bearing:a});})),t.bus.monitor("map/floorChanged",(({structure:e,floor:t})=>o("levelChange",{floorId:t?t.id:null,floorName:t?t.name:null,ord:t?t.ordinal:null,structureId:e?e.id:null,structureName:e?e.name:null}))),t.bus.monitor("map/poiClicked",(({poi:e})=>o("poiSelected",e))),t.bus.monitor("map/click",(async({lat:n,lng:a,ord:s})=>{const r=await t.bus.get("venueData/getStructures"),{building:i,floor:l}=geom.getBuildingAndFloorAtPoint(r,n,a,s,!0);o("mapClicked",{lat:n,lng:a,ord:s,building:i,floor:l});}));}(a,i),{init:async()=>{!function(e){e.bus.send("clientAPI/registerCustomType",{name:"latLngOrdLocation",spec:{type:"object",props:[{name:"lat",type:"float"},{name:"lng",type:"float"},{name:"ord",type:"integer"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"latLngFloorLocation",spec:{type:"object",props:[{name:"lat",type:"float"},{name:"lng",type:"float"},{name:"floorId",type:"string"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"poiIdLocation",spec:{type:"object",props:[{name:"poiId",type:"integer",min:0}]}}),e.bus.send("clientAPI/registerCustomType",{name:"location",spec:{type:"multi",types:[{type:"poiIdLocation"},{type:"latLngOrdLocation"},{type:"latLngFloorLocation"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"viewSettings",spec:{type:"object",props:[{name:"zoom",type:"float",optional:!0},{name:"pitch",type:"float",optional:!0},{name:"bearing",type:"float",optional:!0}]}});}(a),sdkHeadless.headlessCommands.forEach((e=>a.bus.send("clientAPI/registerCommand",e))),sdkHeadless.handleHeadless(a),r.headless||await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('../../../_virtual/_empty_module_placeholder.js')); }).then((e=>{e.visualCommands.forEach((e=>a.bus.send("clientAPI/registerCommand",e))),e.handleVisual(a,i);}));const e=async()=>{await a.bus.send("sdk/readyWhenYouAre"),a.bus.get("clientAPI/execute",{command:"getCommandJSON"}).then((e=>i("ready",{commandJSON:e}))),!r.headless&&a.config.uiHide&&a.config.uiHide.sidebar&&a.env.isDesktop()&&a.bus.send("map/changePadding",{padding:{left:55,right:55,top:72,bottom:22}});};r.headless?Promise.all([new Promise((e=>a.bus.monitor("venueData/navGraphLoaded",e))),new Promise((e=>a.bus.monitor("venueData/poiDataLoaded",e)))]).then(e):a.bus.on("map/mapReadyToShow",e);}}}
12
12
 
13
13
  exports.create = r;
@@ -23,6 +23,6 @@ function _interopNamespace(e) {
23
23
 
24
24
  var e__namespace = /*#__PURE__*/_interopNamespace(e);
25
25
 
26
- function t(t,e){const o=utils.getFlexSearchInstance({lang:e});function n(r){return Object.values(r).map((r=>{const{poiId:t,category:e="",name:o,keywords:n=[],roomId:c=""}=r,i=e__namespace.path(["dynamicData","grab","tags"],r)||[],p=n.filter(e__namespace.prop("isUserSearchable")).map(e__namespace.prop("name")),u=`${o} ${e.split(".").join(" ")} ${c} ${p.join(" ")} ${i.join(" ")}`;return [Number(t),u]}))}return o.addMatcher({"['.,]":""}),n(t).forEach((([a,r])=>o.add(a,r))),{search:function(r){const e=o.search(r);return Object.values(e__namespace.pick(e,t))},updateMultiple:function(a){n(a).forEach((([a,r])=>o.update(a,r)));}}}
26
+ function t(t,e){const o=utils.getFlexSearchInstance({lang:e});function n(r){return Object.values(r).map((r=>{const{poiId:t,category:e="",name:o,keywords:n=[],roomId:c=""}=r,i=e__namespace.path(["dynamicData","grab","tags"],r)||[],p=n.filter(e__namespace.prop("isUserSearchable")).map(e__namespace.prop("name")),s=`${o} ${e.split(".").join(" ")} ${c} ${p.join(" ")} ${i.join(" ")}`;return [Number(t),s]}))}return o.addMatcher({"['.,]":""}),n(t).forEach((([a,r])=>o.add(a,r))),{search:function(r){const e=o.search(r);return Object.values(e__namespace.pick(e,t))},updateMultiple:function(a){n(a).forEach((([a,r])=>o.update(a,r)));}}}
27
27
 
28
28
  module.exports = t;
@@ -3,6 +3,6 @@
3
3
  var e = require('ramda');
4
4
  var utils = require('./utils.js');
5
5
 
6
- function d(d,s,u){const c=function(d,s){const u=function(e){return Object.values(e).map((e=>e.category)).map((e=>e.split("."))).map((e=>e[0]))}(d),c=e.pipe(e.values,e.chain(e.prop("keywords")),e.filter(e.prop("isUserSearchable")),e.pluck("name"))(d),m=[...u,...c],p=Array.from(new Set([...m])),l=utils.getFlexSearchInstance({lang:s,type:"typeahead"});p.forEach(((e,r)=>l.add(r,e)));return {search:e=>l.search(e).map((e=>p[e])),add:e=>{p.push(e),l.add(p.length-1,e);}}}(d,u);return {query:(e,r)=>{const t=c.search({query:e,limit:r}),a=!(e.length<3)&&t.length,n=r-t.length;return {keywords:t,pois:a?function(e,r){const t=s({query:e,limit:r}),a=s({query:e,suggest:!0,limit:r}),n=t.map((e=>e.poiId)),o=a.filter((e=>-1===n.indexOf(e.poiId)));return t.concat(o)}(e,n):[]}},addKeyword:e=>{c.add(e);}}}
6
+ function s(s,d,u){const c=function(s,d){const u=function(e){return Object.values(e).map((e=>e.category)).map((e=>e.split("."))).map((e=>e[0]))}(s),c=e.pipe(e.values,e.chain(e.prop("keywords")),e.filter(e.prop("isUserSearchable")),e.pluck("name"))(s),m=[...u,...c],p=Array.from(new Set([...m])),l=utils.getFlexSearchInstance({lang:d,type:"typeahead"});p.forEach(((e,r)=>l.add(r,e)));return {search:e=>l.search(e).map((e=>p[e])),add:e=>{p.push(e),l.add(p.length-1,e);}}}(s,u);return {query:(e,r)=>{const t=c.search({query:e,limit:r}),a=!(e.length<3)&&t.length,n=r-t.length,o=a?function(e,r){const t=d({query:e,limit:r}),a=d({query:e,suggest:!0,limit:r}),n=t.map((e=>e.poiId)),o=a.filter((e=>-1===n.indexOf(e.poiId)));return t.concat(o)}(e,n):[];return {keywords:t,pois:o}},addKeyword:e=>{c.add(e);}}}
7
7
 
8
- module.exports = d;
8
+ module.exports = s;
@@ -31,6 +31,6 @@ function _interopNamespace(e) {
31
31
  var e__namespace = /*#__PURE__*/_interopNamespace(e);
32
32
  var a__default = /*#__PURE__*/_interopDefaultLegacy(a);
33
33
 
34
- async function i(i,l){const d=i.log.sublog("venueDataLoader");let c=new a__default["default"],p=new a__default["default"];const g=a=>a.defaultStructureId||e__namespace.path(["structureOrder",0],a)||e__namespace.path(["selectorOrder",0],a)||e__namespace.pipe(e__namespace.prop("structures"),Object.values,e__namespace.path([0,"id"]))(a);const v=e=>{const a=l.availableLanguages.find((a=>a.langCode===e));return a||{langCode:e,assetSuffix:""}};async function f(a){a.assetStage&&"prod"!==a.assetStage&&location.hostname;const l=a.auth?await async function(e){const a=await Auth(e,i);let s=null,u=0;for(;!s&&u<6;)s=await a.getToken(),u++,s||await funcs.delay(500)();return s?(i.bus.send("login/userLoggedIn",{token:s}),i.bus.on("app/logout",a.logout),s):i.bus.get("login/showLogin",{auth:a})}(a.auth):null,p=venueLoadingUtils.createFetchJson(l),f=venueLoadingUtils.createFetchText(l),b=await venueLoadingUtils.getVenueDataFromUrls(a,p),{accountId:m,venueId:h}=a;b.assetStage=a.assetStage,b.defaultOrdinal=b.defaultOrdinal||function(a){const t=g(a),n=Object.values(a.structures).find(e__namespace.propEq("id",t));return n.levels[n.defaultLevelId].ordinal}(b),b.structures=venueLoadingUtils.buildStructures(b);const y=i.i18n().language,D=v(y);return b.bareVenueId=h.slice(0,h.length-D.assetSuffix.length),b.getTranslatedContentPath=e=>`https://content.locuslabs.com/${b.category}/${e}/${h}/${m}`,b.fetchJson=p,b.fetchText=f,d.info("venueData ",b,D,y),i.config.debug&&i.env.isBrowser&&(window._venueData=b),b.queueTypes&&(b.securityQueueTypes=(()=>{const e=b.queueTypes.find((e=>"SecurityLane"===e.id));return e?e.subtypes.map((e=>e.id)):[]})()),i.bus.send("venueData/venueDataLoaded",{venueData:b}),c.resolve(b),c}function b(e){const a={id:"venueDataLoader"};e.id!==l.venueId&&(a.vid=e.id);const t=i.config.defaultLanguage||"en";return i.i18n().language!==t&&(a.lang=i.i18n().language),"prod"!==e.assetStage&&(a.stage=e.assetStage),i.bus.send("deepLinking/notifyState",a),e}i.bus.on("debugTools/fileDrop",(async({file:e,content:a})=>{if("application/json"===e.type){const e=JSON.parse(a);if(e.basemap&&e["basemap.venue"])return n=JSON.parse(a),void i.bus.send("map/replaceTheme",{theme:n});if(e.metadata&&e.metadata["mapbox:type"])return t=a,void i.bus.send("map/replaceStyle",{styleSrc:t})}var t,n;}));async function m(e){const a={...e},t=await i.bus.get("poi/getAll");return Object.values(a).forEach((e=>e.filter((e=>"poi"===e.properties.aiLayer&&"Point"===e.geometry.type)).forEach((e=>{const a=t[e.properties.id];a?a.mapLabel?e.properties.text=a.mapLabel:!1!==l.copyPOINamesToMap&&(e.properties.text=function(e){let a=e.name;return l.poiMapNameXForm?(Object.keys(l.poiMapNameXForm).filter((a=>((e,a)=>e===a||0===e.indexOf(a+"."))(e.category,a))).forEach((e=>{l.poiMapNameXForm[e].forEach((e=>a=a.replace(new RegExp(e.replace),e.with)));})),a):a}(a)):d.warn(`Unknown poi in style: ${e.properties.id}`);})))),a}const h=(a,t,n,s)=>{const u=a.replace(/-[^-]*$/,""),o=u===n?"landscape-background":`ordinal: ${s.find(e__namespace.hasPath(["levels",a])).levels[a].ordinal}`;return t.map((t=>{var s,r,i;return s="properties",r={venueId:n,structureId:u,ordinalId:o,levelId:a},i=t,t=e__namespace.over(e__namespace.lensProp(s),(a=>e__namespace.mergeRight(a||{},r)),i),t=e__namespace.assoc("id",t.properties.subid,t)}))};i.bus.on("venueData/loadMap",(async()=>{c.then((async a=>{const t=await a.fetchText(a.files.style),n=await a.fetchJson(a.files.theme),s=a.files.spritesheet,u=a.files.glyphs,{id:o,bounds:r,structures:d,venueCenter:c,venueRadius:g,defaultOrdinal:v}=a,f={mapFeatures:await async function(a){return e__namespace.pipe(e__namespace.prop("structures"),e__namespace.map(e__namespace.prop("levels")),e__namespace.chain(e__namespace.keys),e__namespace.prepend(a.id),e__namespace.map((e=>a.files.geoJson.replace("${geoJsonId}",e))),e__namespace.map(a.fetchJson),e__namespace.map(e__namespace.andThen((e=>[e.id,h(e.id,e.features,a.id,a.structures)]))),(e=>Promise.all(e)),e__namespace.andThen(e__namespace.fromPairs))(a)}(a).then(m),mapStyleSource:t,mapTheme:n,badgesSpriteUrl:s,mapGlyphsUrl:u,structures:d,defaultOrdinal:v,venueBounds:{n:r.ne.lat,s:r.sw.lat,e:r.ne.lng,w:r.sw.lng},venueId:o,venueCenter:c,venueRadius:g,accountId:l.accountId,secure:void 0!==l.auth};p.resolve(f),i.bus.send("venueData/mapDataLoaded",f);}));}));const y=e=>null==e.shouldDisplay||e.shouldDisplay;i.bus.on("venueData/loadBuildingSelectorData",(()=>c.then((async a=>{const t={buildings:a.structures.filter(y).map(e__namespace.evolve({levels:e__namespace.pipe(e__namespace.values,e__namespace.sortWith([e__namespace.descend(e__namespace.prop("ordinal"))]))})),structureOrder:a.structureOrder,selectorOrder:a.selectorOrder};return i.bus.send("venueData/buildingSelectorDataLoaded",t),t})))),i.bus.on("venueData/loadNavGraph",(async()=>c.then((async e=>{const a=await e.fetchJson(e.files.nav);i.bus.send("venueData/navGraphLoaded",{navGraphData:a,structures:e.structures});})))),i.bus.on("venueData/loadPoiData",(async()=>c.then((async e=>{const a=l.useOldDataModel?e.files.poisOld||e.files.pois:e.files.pois||e.files.poisOld,t=await e.fetchJson(a);i.bus.send("venueData/poiDataLoaded",{pois:t,structures:e.structures});})))),i.bus.on("venueData/getVenueCenter",(async()=>c.then((async e=>({lat:e.venueCenter[0],lng:e.venueCenter[1],ordinal:0}))))),i.bus.on("venueData/getContentUrl",(({type:e,name:a=""})=>c.then((t=>t.files[e]+a)))),i.bus.on("venueData/getFloorIdToNameMap",(()=>c.then(e__namespace.pipe(e__namespace.prop("structures"),e__namespace.map(e__namespace.prop("levels")),e__namespace.chain(e__namespace.values),e__namespace.map(e__namespace.props(["id","name"])),e__namespace.fromPairs)))),i.bus.on("venueData/getFloorIdName",(({floorId:a})=>c.then((async t=>{const n=e__namespace.pipe(e__namespace.values,e__namespace.find(e__namespace.hasPath(["levels",a])))(t.structures);return n?{structureId:n.id,structureName:n.name,floorName:n.levels[a].name}:null}))));const D=(a,t)=>()=>c.then(e__namespace.pipe(e__namespace.prop(a),e__namespace.defaultTo(t)));i.bus.on("venueData/getVenueData",(()=>c)),i.bus.on("venueData/getVenueName",D("name")),i.bus.on("venueData/getVenueCategory",D("category")),i.bus.on("venueData/getVenueTimezone",D("tz")),i.bus.on("venueData/getAccountId",(()=>l.accountId)),i.bus.on("venueData/getVenueId",D("id")),i.bus.on("venueData/getPositioningSupported",D("positioningSupported")),i.bus.on("venueData/getStructures",D("structures")),i.bus.on("venueData/loadNewVenue",(async({venueId:e,accountId:t,assetStage:n=l.assetStage})=>{c.reject(new Error("loadNewVenue called - previous loading ignored")),p.reject(new Error("loadNewVenue called - previous loading ignored")),c=new a__default["default"],p=new a__default["default"],f({...l,venueId:e,accountId:t,assetStage:n}).then(b);})),i.bus.on("venueData/changeVenueLanguage",(async({lang:e})=>c.then((async a=>{const t=v(e),n=`${a.bareVenueId}${t.assetSuffix}`;i.bus.send("venueData/loadNewVenue",{accountId:l.accountId,venueId:n});})))),i.bus.on("venueData/getPoiImageUrl",(({imageName:e,size:a})=>`https://img.locuslabs.com/resize/${l.accountId}/${a}cc/poi/${e}`)),i.bus.on("venueData/getDistributionId",(()=>c.then((e=>`${e.bareVenueId}-${l.accountId}`)))),i.bus.on("venueData/getCustomKeywords",(()=>c.then((e=>{const a=l.useOldDataModel&&e.files.searchOld||e.files.search;return e.fetchJson(a)})))),i.bus.on("venueData/isGrabEnabled",D("enableGrab")),i.bus.on("venueData/getGrabPoiIds",D("grabPoiIds",[])),i.bus.on("venueData/getAssetsTimestamp",D("version")),i.bus.on("venueData/getTranslatedFloorId",(async({floorId:e})=>c.then((a=>{const t=i.i18n().language,n=v(t);return `${a.bareVenueId}${n.assetSuffix}-${e.split("-").slice(1).join("-")}`})))),i.bus.on("venueData/getQueueTypes",(()=>c.then((e=>{const a=["tsapre","clear","globalEntry"];return e.queueTypes?e.queueTypes.reduce(((e,t)=>{const{id:n,subtypes:s}=t,u=s.map((e=>{const t=a.includes(e.id)&&`security-logo-${e.id.toLowerCase()}`;return {...e,imageId:t}}));return e[n]=u,e}),{}):{}}))));return {init:async()=>{const e=l.deepLinkProps||{},a=e.vid||l.venueId,t=l.useDynamicUrlParams&&e.stage?e.stage:l.assetStage,n="alpha"===t?"A1VPTJKREFJWX5":l.accountId;f({...l,venueId:a,accountId:n,assetStage:t}).then(b);},runTest:async({testRoutine:e,reset:t=!1,venueData:n=null})=>{let s,u;return (t||n)&&(c=new a__default["default"],p=new a__default["default"]),n&&(c=a__default["default"].resolve(n)),await e(),c.v&&(s=await c),p.v&&(u=await p),{venueDataObj:s,mapDataObj:u}},internal:{getDefaultStructureId:g}}}
34
+ async function i(i,l){const d=i.log.sublog("venueDataLoader");let c=new a__default["default"],p=new a__default["default"];const g=a=>a.defaultStructureId||e__namespace.path(["structureOrder",0],a)||e__namespace.path(["selectorOrder",0],a)||e__namespace.pipe(e__namespace.prop("structures"),Object.values,e__namespace.path([0,"id"]))(a);const v=e=>{const a=l.availableLanguages.find((a=>a.langCode===e));return a||{langCode:e,assetSuffix:""}};async function f(a){a.assetStage&&"prod"!==a.assetStage&&location.hostname;const l=a.auth?await async function(e){const a=await Auth(e,i);let s=null,u=0;for(;!s&&u<6;)s=await a.getToken(),u++,s||await funcs.delay(500)();return s?(i.bus.send("login/userLoggedIn",{token:s}),i.bus.on("app/logout",a.logout),s):i.bus.get("login/showLogin",{auth:a})}(a.auth):null,p=venueLoadingUtils.createFetchJson(l),f=venueLoadingUtils.createFetchText(l),b=await venueLoadingUtils.getVenueDataFromUrls(a,p),{accountId:m,venueId:h}=a;b.assetStage=a.assetStage,b.defaultOrdinal=b.defaultOrdinal||function(a){const t=g(a),n=Object.values(a.structures).find(e__namespace.propEq("id",t));return n.levels[n.defaultLevelId].ordinal}(b),b.structures=venueLoadingUtils.buildStructures(b);const y=i.i18n().language,D=v(y);return b.bareVenueId=h.slice(0,h.length-D.assetSuffix.length),b.getTranslatedContentPath=e=>`https://content.locuslabs.com/${b.category}/${e}/${h}/${m}`,b.fetchJson=p,b.fetchText=f,d.info("venueData ",b,D,y),i.config.debug&&i.env.isBrowser&&(window._venueData=b),b.queueTypes&&(b.securityQueueTypes=(()=>{const e=b.queueTypes.find((e=>"SecurityLane"===e.id));return e?e.subtypes.map((e=>e.id)):[]})()),i.bus.send("venueData/venueDataLoaded",{venueData:b}),c.resolve(b),c}function b(e){const a={id:"venueDataLoader"};e.id!==l.venueId&&(a.vid=e.id);const t=i.config.defaultLanguage||"en";return i.i18n().language!==t&&(a.lang=i.i18n().language),"prod"!==e.assetStage&&(a.stage=e.assetStage),i.bus.send("deepLinking/notifyState",a),e}i.bus.on("debugTools/fileDrop",(async({file:e,content:a})=>{if("application/json"===e.type){const e=JSON.parse(a);if(e.basemap&&e["basemap.venue"])return n=JSON.parse(a),void i.bus.send("map/replaceTheme",{theme:n});if(e.metadata&&e.metadata["mapbox:type"])return t=a,void i.bus.send("map/replaceStyle",{styleSrc:t})}var t,n;}));async function m(e){const a={...e},t=await i.bus.get("poi/getAll");return Object.values(a).forEach((e=>e.filter((e=>"poi"===e.properties.aiLayer&&"Point"===e.geometry.type)).forEach((e=>{const a=t[e.properties.id];a?a.mapLabel?e.properties.text=a.mapLabel:!1!==l.copyPOINamesToMap&&(e.properties.text=function(e){let a=e.name;return l.poiMapNameXForm?(Object.keys(l.poiMapNameXForm).filter((a=>((e,a)=>e===a||0===e.indexOf(a+"."))(e.category,a))).forEach((e=>{l.poiMapNameXForm[e].forEach((e=>a=a.replace(new RegExp(e.replace),e.with)));})),a):a}(a)):d.warn(`Unknown poi in style: ${e.properties.id}`);})))),a}const h=(a,t,n,s)=>{const u=a.replace(/-[^-]*$/,""),o=u===n?"landscape-background":`ordinal: ${s.find(e__namespace.hasPath(["levels",a])).levels[a].ordinal}`;return t.map((t=>{var s,r,i;return s="properties",r={venueId:n,structureId:u,ordinalId:o,levelId:a},i=t,t=e__namespace.over(e__namespace.lensProp(s),(a=>e__namespace.mergeRight(a||{},r)),i),t=e__namespace.assoc("id",t.properties.subid,t)}))};i.bus.on("venueData/loadMap",(async()=>{c.then((async a=>{const t=await a.fetchText(a.files.style),n=await a.fetchJson(a.files.theme),s=a.files.spritesheet,u=a.files.glyphs,{id:o,bounds:r,structures:d,venueCenter:c,venueRadius:g,defaultOrdinal:v}=a,f=await async function(a){return e__namespace.pipe(e__namespace.prop("structures"),e__namespace.map(e__namespace.prop("levels")),e__namespace.chain(e__namespace.keys),e__namespace.prepend(a.id),e__namespace.map((e=>a.files.geoJson.replace("${geoJsonId}",e))),e__namespace.map(a.fetchJson),e__namespace.map(e__namespace.andThen((e=>[e.id,h(e.id,e.features,a.id,a.structures)]))),(e=>Promise.all(e)),e__namespace.andThen(e__namespace.fromPairs))(a)}(a).then(m),b={mapFeatures:f,mapStyleSource:t,mapTheme:n,badgesSpriteUrl:s,mapGlyphsUrl:u,structures:d,defaultOrdinal:v,venueBounds:{n:r.ne.lat,s:r.sw.lat,e:r.ne.lng,w:r.sw.lng},venueId:o,venueCenter:c,venueRadius:g,accountId:l.accountId,secure:void 0!==l.auth};p.resolve(b),i.bus.send("venueData/mapDataLoaded",b);}));}));const y=e=>null==e.shouldDisplay||e.shouldDisplay;i.bus.on("venueData/loadBuildingSelectorData",(()=>c.then((async a=>{const t={buildings:a.structures.filter(y).map(e__namespace.evolve({levels:e__namespace.pipe(e__namespace.values,e__namespace.sortWith([e__namespace.descend(e__namespace.prop("ordinal"))]))})),structureOrder:a.structureOrder,selectorOrder:a.selectorOrder};return i.bus.send("venueData/buildingSelectorDataLoaded",t),t})))),i.bus.on("venueData/loadNavGraph",(async()=>c.then((async e=>{const a=await e.fetchJson(e.files.nav);i.bus.send("venueData/navGraphLoaded",{navGraphData:a,structures:e.structures});})))),i.bus.on("venueData/loadPoiData",(async()=>c.then((async e=>{const a=l.useOldDataModel?e.files.poisOld||e.files.pois:e.files.pois||e.files.poisOld,t=await e.fetchJson(a);i.bus.send("venueData/poiDataLoaded",{pois:t,structures:e.structures});})))),i.bus.on("venueData/getVenueCenter",(async()=>c.then((async e=>({lat:e.venueCenter[0],lng:e.venueCenter[1],ordinal:0}))))),i.bus.on("venueData/getContentUrl",(({type:e,name:a=""})=>c.then((t=>t.files[e]+a)))),i.bus.on("venueData/getFloorIdToNameMap",(()=>c.then(e__namespace.pipe(e__namespace.prop("structures"),e__namespace.map(e__namespace.prop("levels")),e__namespace.chain(e__namespace.values),e__namespace.map(e__namespace.props(["id","name"])),e__namespace.fromPairs)))),i.bus.on("venueData/getFloorIdName",(({floorId:a})=>c.then((async t=>{const n=e__namespace.pipe(e__namespace.values,e__namespace.find(e__namespace.hasPath(["levels",a])))(t.structures);return n?{structureId:n.id,structureName:n.name,floorName:n.levels[a].name}:null}))));const D=(a,t)=>()=>c.then(e__namespace.pipe(e__namespace.prop(a),e__namespace.defaultTo(t)));i.bus.on("venueData/getVenueData",(()=>c)),i.bus.on("venueData/getVenueName",D("name")),i.bus.on("venueData/getVenueCategory",D("category")),i.bus.on("venueData/getVenueTimezone",D("tz")),i.bus.on("venueData/getAccountId",(()=>l.accountId)),i.bus.on("venueData/getVenueId",D("id")),i.bus.on("venueData/getPositioningSupported",D("positioningSupported")),i.bus.on("venueData/getStructures",D("structures")),i.bus.on("venueData/loadNewVenue",(async({venueId:e,accountId:t,assetStage:n=l.assetStage})=>{c.reject(new Error("loadNewVenue called - previous loading ignored")),p.reject(new Error("loadNewVenue called - previous loading ignored")),c=new a__default["default"],p=new a__default["default"],f({...l,venueId:e,accountId:t,assetStage:n}).then(b);})),i.bus.on("venueData/changeVenueLanguage",(async({lang:e})=>c.then((async a=>{const t=v(e),n=`${a.bareVenueId}${t.assetSuffix}`;i.bus.send("venueData/loadNewVenue",{accountId:l.accountId,venueId:n});})))),i.bus.on("venueData/getPoiImageUrl",(({imageName:e,size:a})=>`https://img.locuslabs.com/resize/${l.accountId}/${a}cc/poi/${e}`)),i.bus.on("venueData/getDistributionId",(()=>c.then((e=>`${e.bareVenueId}-${l.accountId}`)))),i.bus.on("venueData/getCustomKeywords",(()=>c.then((e=>{const a=l.useOldDataModel&&e.files.searchOld||e.files.search;return e.fetchJson(a)})))),i.bus.on("venueData/isGrabEnabled",D("enableGrab")),i.bus.on("venueData/getGrabPoiIds",D("grabPoiIds",[])),i.bus.on("venueData/getAssetsTimestamp",D("version")),i.bus.on("venueData/getTranslatedFloorId",(async({floorId:e})=>c.then((a=>{const t=i.i18n().language,n=v(t);return `${a.bareVenueId}${n.assetSuffix}-${e.split("-").slice(1).join("-")}`})))),i.bus.on("venueData/getQueueTypes",(()=>c.then((e=>{const a=["tsapre","clear","globalEntry"];return e.queueTypes?e.queueTypes.reduce(((e,t)=>{const{id:n,subtypes:s}=t,u=s.map((e=>{const t=a.includes(e.id)&&`security-logo-${e.id.toLowerCase()}`;return {...e,imageId:t}}));return e[n]=u,e}),{}):{}}))));return {init:async()=>{const e=l.deepLinkProps||{},a=e.vid||l.venueId,t=l.useDynamicUrlParams&&e.stage?e.stage:l.assetStage,n="alpha"===t?"A1VPTJKREFJWX5":l.accountId;f({...l,venueId:a,accountId:n,assetStage:t}).then(b);},runTest:async({testRoutine:e,reset:t=!1,venueData:n=null})=>{let s,u;return (t||n)&&(c=new a__default["default"],p=new a__default["default"]),n&&(c=a__default["default"].resolve(n)),await e(),c.v&&(s=await c),p.v&&(u=await p),{venueDataObj:s,mapDataObj:u}},internal:{getDefaultStructureId:g}}}
35
35
 
36
36
  exports.create = i;
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var e = require('ramda');
6
6
  var bounds = require('../../../src/utils/bounds.js');
7
+ var configUtils = require('../../../src/utils/configUtils.js');
7
8
 
8
9
  function _interopNamespace(e) {
9
10
  if (e && e.__esModule) return e;
@@ -25,9 +26,9 @@ function _interopNamespace(e) {
25
26
 
26
27
  var e__namespace = /*#__PURE__*/_interopNamespace(e);
27
28
 
28
- const s=async(t,e)=>t?fetch(e,{headers:{Authorization:t}}):fetch(e),o=t=>e=>s(t,e).then((t=>t.json())),a=t=>e=>s(t,e).then((t=>t.text())),n=t=>`https://api.content.locuslabs.com/${t}`,c=(e,s,o,a,c)=>e__namespace.mapObjIndexed(((t,s)=>((t,e,s,o,a,c)=>"theme"===c||"style"===c?`${n(s)}/${e}/${c}/${a}/${o}/${c}.json`:t.replace(/https:\/\/content.locuslabs.com/gi,n(s)))(t,e,o,a,c,s)),s),r=async(t,e)=>{const s={alpha:"alpha-a.locuslabs.com",beta:"beta-a.locuslabs.com",gamma:"gamma-a.locuslabs.com",prod:"a.locuslabs.com"},{assetStage:o,venueId:a,accountId:n,formatVersion:r}=t,u=`https://${s[o]||s.prod}/accounts/${n}`,l=r||"v5",i=await e(`${u}/${l}.json`);if(!i[a])throw Error(`Attempt to access venue ${a} which is not within venue list: ${Object.keys(i)}`);const p=i[a].files,m=(await e(p.venueData))[a];m.venueList=i;const h=(t=>{const e=t.deepLinkProps?t.deepLinkProps.contentStage:null;return "alpha"===e||"beta"===e||"prod"===e?e:null})(t);return m.files=h?c(m.category,p,h,n,a):p,m},u=t=>{const{structureOrder:s,structures:o}=t;return s.map((t=>{const s=o[t],a=bounds.findBoundsOfCoordinates(s.boundsPolygon);return {...s,bounds:a}}))};
29
+ const s=async(t,a)=>t?fetch(a,{headers:{Authorization:t}}):fetch(a),o=t=>a=>s(t,a).then((t=>t.json())),c=t=>a=>s(t,a).then((t=>t.text())),n=t=>`https://api.content.locuslabs.com/${t}`,r=(a,e,s,o,c)=>e__namespace.mapObjIndexed(((t,e)=>((t,a,e,s,o,c)=>"theme"===c||"style"===c?`${n(e)}/${a}/${c}/${o}/${s}/${c}.json`:t.replace(/https:\/\/content.locuslabs.com/gi,n(e)))(t,a,s,o,c,e)),e),u=async(t,a)=>{const s={alpha:"alpha-a.locuslabs.com",beta:"beta-a.locuslabs.com",gamma:"gamma-a.locuslabs.com",prod:"a.locuslabs.com"},{assetStage:o,venueId:c,accountId:n,formatVersion:u}=t,l=`https://${s[o]||s.prod}/accounts/${n}`,i=u||"v5",h=t.dataFetch&&configUtils.global[t.dataFetch]&&configUtils.global[t.dataFetch].getFiles?await configUtils.global[t.dataFetch].getFiles(t):await a(`${l}/${i}.json`);if(!h[c])throw Error(`Attempt to access venue ${c} which is not within venue list: ${Object.keys(h)}`);const d=h[c].files,m=(t.dataFetch&&configUtils.global[t.dataFetch]&&configUtils.global[t.dataFetch].getVenueData?await configUtils.global[t.dataFetch].getVenueData(t):await a(d.venueData))[c];m.venueList=h;const p=(t=>{const a=t.deepLinkProps?t.deepLinkProps.contentStage:null;return "alpha"===a||"beta"===a||"prod"===a?a:null})(t);return m.files=p?r(m.category,d,p,n,c):d,m},l=t=>{const{structureOrder:e,structures:s}=t;return e.map((t=>{const e=s[t],o=bounds.findBoundsOfCoordinates(e.boundsPolygon);return {...e,bounds:o}}))};
29
30
 
30
- exports.buildStructures = u;
31
+ exports.buildStructures = l;
31
32
  exports.createFetchJson = o;
32
- exports.createFetchText = a;
33
- exports.getVenueDataFromUrls = r;
33
+ exports.createFetchText = c;
34
+ exports.getVenueDataFromUrls = u;
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
2
 
3
- class u{constructor(){this.heap=[null],this.heapMap={};}offerWithPriority(h,i){const t=this.heap.push([h,i])-1;this.heapMap[h]=t,this.bubble(t);}raisePriority(h,i){const t=this.heapMap[h];this.heap[t][1]=i,this.bubble(t);}poll(){if(1===this.heap.length)return null;if(2===this.heap.length){const h=this.heap.pop()[0];return delete this.heapMap[h],h}const h=this.heap[1][0];return delete this.heapMap[h],this.heap[1]=this.heap.pop(),this.heapMap[this.heap[1][0]]=1,this.sink(1),h}isEmpty(){return 1===this.heap.length}bubble(h){for(;h>1;){const i=h>>1;if(!this.isHigherPriority(h,i))break;this.swap(h,i),h=i;}}sink(h){for(;2*h<this.heap.length;){const i=void 0!==this.heap[2*h+1]&&this.isHigherPriority(2*h+1,2*h)?2*h+1:2*h;if(this.isHigherPriority(h,i))break;this.swap(h,i),h=i;}}swap(h,i){this.heapMap[this.heap[h][0]]=i,this.heapMap[this.heap[i][0]]=h;const t=this.heap[h];this.heap[h]=this.heap[i],this.heap[i]=t;}isHigherPriority(h,i){return this.heap[h][1]<this.heap[i][1]}}
3
+ class h{constructor(){this.heap=[null],this.heapMap={};}offerWithPriority(h,i){const t=this.heap.push([h,i])-1;this.heapMap[h]=t,this.bubble(t);}raisePriority(h,i){const t=this.heapMap[h];this.heap[t][1]=i,this.bubble(t);}poll(){if(1===this.heap.length)return null;if(2===this.heap.length){const h=this.heap.pop()[0];return delete this.heapMap[h],h}const h=this.heap[1][0];return delete this.heapMap[h],this.heap[1]=this.heap.pop(),this.heapMap[this.heap[1][0]]=1,this.sink(1),h}isEmpty(){return 1===this.heap.length}bubble(h){for(;h>1;){const i=h>>1;if(!this.isHigherPriority(h,i))break;this.swap(h,i),h=i;}}sink(h){for(;2*h<this.heap.length;){const i=void 0!==this.heap[2*h+1]&&this.isHigherPriority(2*h+1,2*h)?2*h+1:2*h;if(this.isHigherPriority(h,i))break;this.swap(h,i),h=i;}}swap(h,i){this.heapMap[this.heap[h][0]]=i,this.heapMap[this.heap[i][0]]=h;const t=this.heap[h];this.heap[h]=this.heap[i],this.heap[i]=t;}isHigherPriority(h,i){return this.heap[h][1]<this.heap[i][1]}}
4
4
 
5
- module.exports = u;
5
+ module.exports = h;
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var A = {START:"wayfinding.start",END:"wayfinding.end",WALKING_TO_SECURITY_CHECKPOINT:"wayfinding.security",ELEVATOR:"wayfinding.elevator",ELEVATOR_UP:"wayfinding.elevator.up",ELEVATOR_DOWN:"wayfinding.elevator.down",STAIRS:"wayfinding.stairs",STAIRS_UP:"wayfinding.stairs.up",STAIRS_DOWN:"wayfinding.stairs.down",ESCALATOR:"wayfinding.escalator",ESCALATOR_UP:"wayfinding.escalator.up",ESCALATOR_DOWN:"wayfinding.escalator.down",WALK:"wayfinding.movingwalkway",WALK_DOWN:"walk.movingwalkway",WALK_UP:"walk.movingwalkway",TRAIN:"wayfinding.train",TRAIN_UP:"wayfinding.train.up",TRAIN_DOWN:"wayfinding.train.down",BUS:"wayfinding.bus",BUS_UP:"wayfinding.bus.up",BUS_DOWN:"wayfinding.bus.down",SECURITY_CHECKPOINT:"wayfinding.security",RAMP:"wayfinding.ramp",RAMP_UP:"wayfinding.ramp.up",RAMP_DOWN:"wayfinding.ramp.down"};
3
+ const n={START:"wayfinding.start",END:"wayfinding.end",WALKING_TO_SECURITY_CHECKPOINT:"wayfinding.security",ELEVATOR:"wayfinding.elevator",ELEVATOR_UP:"wayfinding.elevator.up",ELEVATOR_DOWN:"wayfinding.elevator.down",STAIRS:"wayfinding.stairs",STAIRS_UP:"wayfinding.stairs.up",STAIRS_DOWN:"wayfinding.stairs.down",ESCALATOR:"wayfinding.escalator",ESCALATOR_UP:"wayfinding.escalator.up",ESCALATOR_DOWN:"wayfinding.escalator.down",WALK:"wayfinding.movingwalkway",WALK_DOWN:"walk.movingwalkway",WALK_UP:"walk.movingwalkway",TRAIN:"wayfinding.train",TRAIN_UP:"wayfinding.train.up",TRAIN_DOWN:"wayfinding.train.down",BUS:"wayfinding.bus",BUS_UP:"wayfinding.bus.up",BUS_DOWN:"wayfinding.bus.down",SECURITY_CHECKPOINT:"wayfinding.security",RAMP:"wayfinding.ramp",RAMP_UP:"wayfinding.ramp.up",RAMP_DOWN:"wayfinding.ramp.down"};
4
4
 
5
- module.exports = A;
5
+ module.exports = n;
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var o = {START:"start",WALKING_TO_SECURITY_CHECKPOINT:"walking to security checkpoint",WALKING_TO_PORTAL:"walking to portal",WALKING_TO_END:"walking to end",ELEVATOR:"elevator",ELEVATOR_UP:"elevator.up",ELEVATOR_DOWN:"elevator.down",STAIRS:"stairs",STAIRS_UP:"stairs.up",STAIRS_DOWN:"stairs.down",ESCALATOR:"escalator",ESCALATOR_UP:"escalator.up",ESCALATOR_DOWN:"escalator.down",WALK:"walk",WALK_DOWN:"walk.down",WALK_UP:"walk.up",TRAIN:"train",TRAIN_UP:"train.up",TRAIN_DOWN:"train.down",BUS:"bus",BUS_UP:"bus.up",BUS_DOWN:"bus.down",SECURITY_CHECKPOINT:"enduring security checkpoint",RAMP:"ramp",RAMP_UP:"ramp.up",RAMP_DOWN:"ramp.down"};
3
+ const a={START:"start",WALKING_TO_SECURITY_CHECKPOINT:"walking to security checkpoint",WALKING_TO_PORTAL:"walking to portal",WALKING_TO_END:"walking to end",ELEVATOR:"elevator",ELEVATOR_UP:"elevator.up",ELEVATOR_DOWN:"elevator.down",STAIRS:"stairs",STAIRS_UP:"stairs.up",STAIRS_DOWN:"stairs.down",ESCALATOR:"escalator",ESCALATOR_UP:"escalator.up",ESCALATOR_DOWN:"escalator.down",WALK:"walk",WALK_DOWN:"walk.down",WALK_UP:"walk.up",TRAIN:"train",TRAIN_UP:"train.up",TRAIN_DOWN:"train.down",BUS:"bus",BUS_UP:"bus.up",BUS_DOWN:"bus.down",SECURITY_CHECKPOINT:"enduring security checkpoint",RAMP:"ramp",RAMP_UP:"ramp.up",RAMP_DOWN:"ramp.down"};
4
4
 
5
- module.exports = o;
5
+ module.exports = a;
@@ -5,6 +5,6 @@ var bounds = require('../../../src/utils/bounds.js');
5
5
  var segmentBadges = require('./segmentBadges.js');
6
6
  var segmentCategories = require('./segmentCategories.js');
7
7
 
8
- function R(e$1,t="",r="",a,n,c={}){return e$1.map(((u,T)=>{const R=N("securityWaitTimes")(u.waypoints),L=R&&!R.isTemporarilyClosed?R.queueTime:Math.round(1===(W=u.waypoints).length?W[0].eta:W.map(e.prop("eta")).slice(1).reduce(((e,t)=>e+t),0));var W;const y=Math.round(function(e){return 1===e.length?e[0].distance:e.map((e=>e.distance)).slice(1).reduce(((e,t)=>e+t),0)}(u.waypoints)),I=function(e){switch(e){case segmentCategories.START:return segmentBadges.START;case segmentCategories.WALKING_TO_END:return segmentBadges.END;case segmentCategories.ELEVATOR:return segmentBadges.ELEVATOR;case segmentCategories.ELEVATOR_UP:return segmentBadges.ELEVATOR_UP;case segmentCategories.ELEVATOR_DOWN:return segmentBadges.ELEVATOR_DOWN;case segmentCategories.STAIRS:return segmentBadges.STAIRS;case segmentCategories.STAIRS_UP:return segmentBadges.STAIRS_UP;case segmentCategories.STAIRS_DOWN:return segmentBadges.STAIRS_DOWN;case segmentCategories.ESCALATOR:return segmentBadges.ESCALATOR;case segmentCategories.ESCALATOR_UP:return segmentBadges.ESCALATOR_UP;case segmentCategories.ESCALATOR_DOWN:return segmentBadges.ESCALATOR_DOWN;case segmentCategories.WALKING_TO_PORTAL:case segmentCategories.WALK:case segmentCategories.WALK_DOWN:case segmentCategories.WALK_UP:return segmentBadges.WALK;case segmentCategories.TRAIN:return segmentBadges.TRAIN;case segmentCategories.TRAIN_UP:return segmentBadges.TRAIN_UP;case segmentCategories.TRAIN_DOWN:return segmentBadges.TRAIN_DOWN;case segmentCategories.BUS:return segmentBadges.BUS;case segmentCategories.BUS_UP:return segmentBadges.BUS_UP;case segmentCategories.BUS_DOWN:return segmentBadges.BUS_DOWN;case segmentCategories.SECURITY_CHECKPOINT:return segmentBadges.SECURITY_CHECKPOINT;case segmentCategories.RAMP:return segmentBadges.RAMP;case segmentCategories.RAMP_UP:return segmentBadges.RAMP_UP;case segmentCategories.RAMP_DOWN:return segmentBadges.RAMP_DOWN;default:return segmentBadges.WALK}}(u.segmentCategory),m=function(e,t){let r;switch(e){case segmentCategories.START:r=0;break;case segmentCategories.WALKING_TO_END:r=t.length-1;break;case segmentCategories.WALKING_TO_PORTAL:r=Math.min(t.length-1,Math.ceil(t.length/2));break;default:r=t.length-1;}return t[r].position}(u.segmentCategory,u.waypoints),p={primaryText:function(e$1,t,r,a,n,s){const c=e$1[t];switch(c.segmentCategory){case segmentCategories.START:return O(c.waypoints[0].position,r);case segmentCategories.WALKING_TO_END:return O(c.waypoints[c.waypoints.length-1].position,a);case segmentCategories.WALKING_TO_SECURITY_CHECKPOINT:case segmentCategories.WALKING_TO_PORTAL:return s(`wayfinder:${e$1[t+1].type}`);case segmentCategories.SECURITY_CHECKPOINT:case segmentCategories.ELEVATOR:case segmentCategories.ELEVATOR_DOWN:case segmentCategories.ELEVATOR_UP:case segmentCategories.ESCALATOR:case segmentCategories.ESCALATOR_DOWN:case segmentCategories.ESCALATOR_UP:case segmentCategories.STAIRS:case segmentCategories.STAIRS_DOWN:case segmentCategories.STAIRS_UP:return function(e$1,t){return t[e.last(e$1.waypoints).position.floorId]}(c,n);default:return s(`wayfinder:${c.type}`)}}(e$1,T,t,r,a,n),secondaryText:function(e,t,r,a){const n=S(t,a);switch(e.segmentCategory){case segmentCategories.START:return a("wayfinder:Begin route at");case segmentCategories.ELEVATOR:return a("wayfinder:Take elevator to");case segmentCategories.ELEVATOR_UP:return a("wayfinder:Take elevator up to");case segmentCategories.ELEVATOR_DOWN:return a("wayfinder:Take elevator down to");case segmentCategories.STAIRS:return a("wayfinder:Take stairs to");case segmentCategories.STAIRS_UP:return a("wayfinder:Take stairs up to");case segmentCategories.STAIRS_DOWN:return a("wayfinder:Take stairs down to");case segmentCategories.ESCALATOR:return a("wayfinder:Take escalator to");case segmentCategories.ESCALATOR_UP:return a("wayfinder:Take escalator up to");case segmentCategories.ESCALATOR_DOWN:return a("wayfinder:Take escalator down to");case segmentCategories.WALK:case segmentCategories.WALKING_TO_SECURITY_CHECKPOINT:case segmentCategories.WALKING_TO_PORTAL:case segmentCategories.WALKING_TO_END:return n("Walk <1 minute to","Walk xx minute to");case segmentCategories.WALK_DOWN:return n("Walk <1 minute down to","Walk xx minute down to");case segmentCategories.WALK_UP:return n("Walk <1 minute up to","Walk xx minute up to");case segmentCategories.TRAIN:return n("Take train <1 minute","Take train xx minute");case segmentCategories.BUS:return n("Take bus <1 minute","Take bus xx minute");case segmentCategories.SECURITY_CHECKPOINT:return r?a("wayfinder:Through _security_ to",{name:r}):a("wayfinder:Through security to");case segmentCategories.RAMP:return a("wayfinder:Take ramp to");case segmentCategories.RAMP_UP:return a("wayfinder:Take ramp up to");case segmentCategories.RAMP_DOWN:return a("wayfinder:Take ramp down to");default:return ""}}(u,L,d(c,u.waypoints),n),icon:I,animationAnchor:m,eta:L,distance:y,bounds:bounds.findBoundsOfWaypoints(u.waypoints),isAccessible:E(u),securityWaitTimes:R};return u.poiId&&(p.poiId=u.poiId),p}))}function O(e,t){return e.name?e.name:t}const S=(e,t)=>(r,a)=>0===e?t("wayfinder:"+r):t("wayfinder:"+a,{count:e}),E=e.compose(e.not,e.includes(e.__,["escalator","stairs"]),e.toLower,e.prop("type")),d=(e$1,t)=>{const r=N("securityLane")(t);if(!r)return;const a=e.prop(r.type,e$1),n=e.find(e.propEq("id",r.id),a);return e.prop("displayText",n)},N=t=>e.compose(e.prop(t),e.find(e.prop(t)),e.drop(1));
8
+ function R(e$1,t="",r="",a,n,c={}){return e$1.map(((u,T)=>{const R=N("securityWaitTimes")(u.waypoints),L=R&&!R.isTemporarilyClosed?R.queueTime:Math.round(1===(W=u.waypoints).length?W[0].eta:W.map(e.prop("eta")).slice(1).reduce(((e,t)=>e+t),0));var W;const y=Math.round(function(e){return 1===e.length?e[0].distance:e.map((e=>e.distance)).slice(1).reduce(((e,t)=>e+t),0)}(u.waypoints)),I=function(e){switch(e){case segmentCategories.START:return segmentBadges.START;case segmentCategories.WALKING_TO_END:return segmentBadges.END;case segmentCategories.ELEVATOR:return segmentBadges.ELEVATOR;case segmentCategories.ELEVATOR_UP:return segmentBadges.ELEVATOR_UP;case segmentCategories.ELEVATOR_DOWN:return segmentBadges.ELEVATOR_DOWN;case segmentCategories.STAIRS:return segmentBadges.STAIRS;case segmentCategories.STAIRS_UP:return segmentBadges.STAIRS_UP;case segmentCategories.STAIRS_DOWN:return segmentBadges.STAIRS_DOWN;case segmentCategories.ESCALATOR:return segmentBadges.ESCALATOR;case segmentCategories.ESCALATOR_UP:return segmentBadges.ESCALATOR_UP;case segmentCategories.ESCALATOR_DOWN:return segmentBadges.ESCALATOR_DOWN;case segmentCategories.WALKING_TO_PORTAL:case segmentCategories.WALK:case segmentCategories.WALK_DOWN:case segmentCategories.WALK_UP:return segmentBadges.WALK;case segmentCategories.TRAIN:return segmentBadges.TRAIN;case segmentCategories.TRAIN_UP:return segmentBadges.TRAIN_UP;case segmentCategories.TRAIN_DOWN:return segmentBadges.TRAIN_DOWN;case segmentCategories.BUS:return segmentBadges.BUS;case segmentCategories.BUS_UP:return segmentBadges.BUS_UP;case segmentCategories.BUS_DOWN:return segmentBadges.BUS_DOWN;case segmentCategories.SECURITY_CHECKPOINT:return segmentBadges.SECURITY_CHECKPOINT;case segmentCategories.RAMP:return segmentBadges.RAMP;case segmentCategories.RAMP_UP:return segmentBadges.RAMP_UP;case segmentCategories.RAMP_DOWN:return segmentBadges.RAMP_DOWN;default:return segmentBadges.WALK}}(u.segmentCategory),m=function(e,t){let r;switch(e){case segmentCategories.START:r=0;break;case segmentCategories.WALKING_TO_END:r=t.length-1;break;case segmentCategories.WALKING_TO_PORTAL:r=Math.min(t.length-1,Math.ceil(t.length/2));break;default:r=t.length-1;}return t[r].position}(u.segmentCategory,u.waypoints),p=function(e$1,t,r,a,n,s){const c=e$1[t];switch(c.segmentCategory){case segmentCategories.START:return O(c.waypoints[0].position,r);case segmentCategories.WALKING_TO_END:return O(c.waypoints[c.waypoints.length-1].position,a);case segmentCategories.WALKING_TO_SECURITY_CHECKPOINT:case segmentCategories.WALKING_TO_PORTAL:return s(`wayfinder:${e$1[t+1].type}`);case segmentCategories.SECURITY_CHECKPOINT:case segmentCategories.ELEVATOR:case segmentCategories.ELEVATOR_DOWN:case segmentCategories.ELEVATOR_UP:case segmentCategories.ESCALATOR:case segmentCategories.ESCALATOR_DOWN:case segmentCategories.ESCALATOR_UP:case segmentCategories.STAIRS:case segmentCategories.STAIRS_DOWN:case segmentCategories.STAIRS_UP:return function(e$1,t){return t[e.last(e$1.waypoints).position.floorId]}(c,n);default:return s(`wayfinder:${c.type}`)}}(e$1,T,t,r,a,n),P=function(e,t,r,a){const n=S(t,a);switch(e.segmentCategory){case segmentCategories.START:return a("wayfinder:Begin route at");case segmentCategories.ELEVATOR:return a("wayfinder:Take elevator to");case segmentCategories.ELEVATOR_UP:return a("wayfinder:Take elevator up to");case segmentCategories.ELEVATOR_DOWN:return a("wayfinder:Take elevator down to");case segmentCategories.STAIRS:return a("wayfinder:Take stairs to");case segmentCategories.STAIRS_UP:return a("wayfinder:Take stairs up to");case segmentCategories.STAIRS_DOWN:return a("wayfinder:Take stairs down to");case segmentCategories.ESCALATOR:return a("wayfinder:Take escalator to");case segmentCategories.ESCALATOR_UP:return a("wayfinder:Take escalator up to");case segmentCategories.ESCALATOR_DOWN:return a("wayfinder:Take escalator down to");case segmentCategories.WALK:case segmentCategories.WALKING_TO_SECURITY_CHECKPOINT:case segmentCategories.WALKING_TO_PORTAL:case segmentCategories.WALKING_TO_END:return n("Walk <1 minute to","Walk xx minute to");case segmentCategories.WALK_DOWN:return n("Walk <1 minute down to","Walk xx minute down to");case segmentCategories.WALK_UP:return n("Walk <1 minute up to","Walk xx minute up to");case segmentCategories.TRAIN:return n("Take train <1 minute","Take train xx minute");case segmentCategories.BUS:return n("Take bus <1 minute","Take bus xx minute");case segmentCategories.SECURITY_CHECKPOINT:return r?a("wayfinder:Through _security_ to",{name:r}):a("wayfinder:Through security to");case segmentCategories.RAMP:return a("wayfinder:Take ramp to");case segmentCategories.RAMP_UP:return a("wayfinder:Take ramp up to");case segmentCategories.RAMP_DOWN:return a("wayfinder:Take ramp down to");default:return ""}}(u,L,d(c,u.waypoints),n),w={primaryText:p,secondaryText:P,icon:I,animationAnchor:m,eta:L,distance:y,bounds:bounds.findBoundsOfWaypoints(u.waypoints),isAccessible:E(u),securityWaitTimes:R};return u.poiId&&(w.poiId=u.poiId),w}))}function O(e,t){return e.name?e.name:t}const S=(e,t)=>(r,a)=>0===e?t("wayfinder:"+r):t("wayfinder:"+a,{count:e}),E=e.compose(e.not,e.includes(e.__,["escalator","stairs"]),e.toLower,e.prop("type")),d=(e$1,t)=>{const r=N("securityLane")(t);if(!r)return;const a=e.prop(r.type,e$1),n=e.find(e.propEq("id",r.id),a);return e.prop("displayText",n)},N=t=>e.compose(e.prop(t),e.find(e.prop(t)),e.drop(1));
9
9
 
10
10
  module.exports = R;
@@ -39,6 +39,6 @@ var e__default = /*#__PURE__*/_interopDefaultLegacy(e);
39
39
  var t__default = /*#__PURE__*/_interopDefaultLegacy(t);
40
40
  var i__default = /*#__PURE__*/_interopDefaultLegacy(i);
41
41
 
42
- async function c(e,t,n){let o=t;if(o.includes("/")){const e=o.split("/");o=e[e.length-1];}return void 0!==n.active&&!1===n.active?(e.log.info(`Plugin ${t} explicitly deativated`),null):(function (t) { return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(t)); }); })(`../plugins/${t}/src/${o}.js`).then((o=>(e.log.info(`Creating plugin ${t}`),o.create(e,n))))}async function p(e,t){let n={};const i=await Promise.all(t.map((e=>(function (t) { return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(t)); }); })(`./configs/${e}.json`))));for(const e of i){let t=e.default;t=t.extends?await p(t,t.extends):t,n=e$1.mergeDeepRight(n,t);}return n=e$1.mergeDeepRight(n,e),n}const d=e=>t=>(function (t) { return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(t)); }); })(`./configs/postproc-${e}.js`).then((e=>e.process(t)));async function m(o){const m=Object.create(null);let f=o.extends?await p(o,o.extends):o;f.plugins.monitoring&&Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('../_virtual/_empty_module_placeholder.js')); }).then((e=>e.activate(f))),f=await(async e=>e.configPostProc?i__default["default"].series(e,...e.configPostProc.map(d)):e)(f);const w=(e=>{const n=e.supportedLanguages||["ar","en","es","fr","ja","ko","zh-Hans","zh-Hant"];if("undefined"!=typeof window){let e=t__default["default"].parse(location.search).lang||navigator.language;for(;e;){if(e&&n.includes(e))return e;e=e.substring(0,e.lastIndexOf("-"));}}return e.defaultLanguage||"en"})(f),y=await i18n["default"](w,f.debug);m.i18n=()=>y,m.gt=()=>y.t.bind(y),m.config=f,m.plugins=new e__default["default"];const h="undefined"!=typeof window,b=log.initLog("web-engine",{enabled:!!f.debug,isBrowser:h,color:"cyan",logFilter:f.logFilter,truncateObjects:!h});if(m.log=b.sublog(f.name),m.bus=bustle.create({trace:!1,showEvents:!0,reportAllErrors:!0,log:b}),m.info={wePkg:package_json["default"]},"undefined"!=typeof window&&(f.debug?(m.debug=e$1.map((e=>e.bind(m)),debugTools),debugTools.dndGo.call(m)):m.debug={},window._app=m,window.document&&window.document.title&&f.setWindowTitle&&(document.title=f.name)),m.env=env.buildEnv(m),f.theme?await i__default["default"].evaluate({name:"ThemeManagerModule",value:Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('../_virtual/_empty_module_placeholder.js')); })},{name:"HistoryManager",value:Promise.resolve().then(function () { return require('./historyManager.js'); })},{name:"LayerManager",value:Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('../_virtual/_empty_module_placeholder.js')); })}).then((async({LayerManager:e,HistoryManager:t,ThemeManagerModule:n})=>{const o=n.initThemeManager(m);m.themePack=await o.buildTheme(f.theme,f.defaultTheme),e.initLayerManager(m),t.initHistoryManager(m),m.destroy=()=>e.destroy(m);})):m.destroy=()=>{},f.plugins){for(const e in f.plugins)try{const t=f.plugins[e];if(m.plugins[e])throw Error(`Duplicate plugin name "${e}"`);const n=await c(m,e,t);n&&(m.plugins=m.plugins.set(e,n));}catch(t){b.error("Error instantiating plugin "+e),b.error(t);}for(const e in m.plugins)m.plugins[e].init();}return m}
42
+ const g="undefined"!=typeof window;async function p(e,t,n){let o=t;if(o.includes("/")){const e=o.split("/");o=e[e.length-1];}return void 0!==n.active&&!1===n.active?(e.log.info(`Plugin ${t} explicitly deativated`),null):(function (t) { return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(t)); }); })(`../plugins/${t}/src/${o}.js`).then((o=>(e.log.info(`Creating plugin ${t}`),o.create(e,n))))}async function d(e){return g?(function (t) { return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(t)); }); })(`./configs/${e}.json`):(function (t) { return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(t)); }); })(`./configs/${e}.json.js`)}async function m(e,t){let n={};const i=await Promise.all(t.map(d));for(const e of i){let t=e.default;t=t.extends?await m(t,t.extends):t,n=e$1.mergeDeepRight(n,t);}return n=e$1.mergeDeepRight(n,e),n}const f=e=>t=>(function (t) { return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(t)); }); })(`./configs/postproc-${e}.js`).then((e=>e.process(t)));async function w(o){const d=Object.create(null);let w=o.extends?await m(o,o.extends):o;w.plugins.monitoring&&Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('../_virtual/_empty_module_placeholder.js')); }).then((e=>e.activate(w))),w=await(async e=>e.configPostProc?i__default["default"].series(e,...e.configPostProc.map(f)):e)(w);const y=(e=>{const n=e.supportedLanguages||["ar","en","es","fr","ja","ko","zh-Hans","zh-Hant"];if("undefined"!=typeof window){let e=t__default["default"].parse(location.search).lang||navigator.language;for(;e;){if(e&&n.includes(e))return e;e=e.substring(0,e.lastIndexOf("-"));}}return e.defaultLanguage||"en"})(w),h=await i18n["default"](y,w.debug);d.i18n=()=>h,d.gt=()=>h.t.bind(h),d.config=w,d.plugins=new e__default["default"];const j=log.initLog("web-engine",{enabled:!!w.debug,isBrowser:g,color:"cyan",logFilter:w.logFilter,truncateObjects:!g});if(d.log=j.sublog(w.name),d.bus=bustle.create({trace:!1,showEvents:!0,reportAllErrors:!0,log:j}),d.info={wePkg:package_json["default"]},"undefined"!=typeof window&&(w.debug?(d.debug=e$1.map((e=>e.bind(d)),debugTools),debugTools.dndGo.call(d)):d.debug={},window._app=d,window.document&&window.document.title&&w.setWindowTitle&&(document.title=w.name)),d.env=env.buildEnv(d),w.theme?await i__default["default"].evaluate({name:"ThemeManagerModule",value:Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('../_virtual/_empty_module_placeholder.js')); })},{name:"HistoryManager",value:Promise.resolve().then(function () { return require('./historyManager.js'); })},{name:"LayerManager",value:Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('../_virtual/_empty_module_placeholder.js')); })}).then((async({LayerManager:e,HistoryManager:t,ThemeManagerModule:n})=>{const o=n.initThemeManager(d);d.themePack=await o.buildTheme(w.theme,w.defaultTheme),e.initLayerManager(d),t.initHistoryManager(d),d.destroy=()=>e.destroy(d);})):d.destroy=()=>{},w.plugins){for(const e in w.plugins)try{const t=w.plugins[e];if(d.plugins[e])throw Error(`Duplicate plugin name "${e}"`);const n=await p(d,e,t);n&&(d.plugins=d.plugins.set(e,n));}catch(t){j.error("Error instantiating plugin "+e),j.error(t);}for(const e in d.plugins)d.plugins[e].init();}return d}
43
43
 
44
- exports.create = m;
44
+ exports.create = w;
@@ -4,10 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var name = "SDK headless";
6
6
  var plugins = {
7
- analytics: {
8
- platformSdk: "SDK",
9
- active: false
10
- },
11
7
  analytics2: {
12
8
  productName: "LocusMaps JS SDK",
13
9
  active: false,
@@ -25,6 +25,6 @@ function _interopNamespace(e) {
25
25
 
26
26
  var e__namespace = /*#__PURE__*/_interopNamespace(e);
27
27
 
28
- "undefined"!=typeof window&&(window.R=e__namespace);const r=(e,n)=>{const t=n.monitor("homeview/performSearch",(({term:o})=>{o||(n.send(e),t());}));};var i={showIcons:()=>{dom.$("#mapRenderDiv").innerHTML="<style> div { display: inline-block; text-align: center; border: 1px solid lightblue; }</style>"+dom.$$("svg symbol").map((e=>`<div><svg><use xlink:href="#${e.id}"/></svg><br/>${e.id}</div>`)).join("");},poisByCategory:function(){return this.bus.send("poi/getAll").then((e=>e[0])).then((e=>Object.values(e))).then(e__namespace.groupBy((e=>e.category)))},highlightNodes:()=>dom.ad({tag:"style",html:"* { background-color: rgba(255,0,0,.2); } * * { background-color: rgba(0,255,0,.2); } * * * { background-color: rgba(0,0,255,.2); } * * * * { background-color: rgba(255,0,255,.2); } * * * * * { background-color: rgba(0,255,255,.2); } * * * * * * { background-color: rgba(255,255,0,.2); } * * * * * * * { background-color: rgba(255,0,0,.2); } * * * * * * * * { background-color: rgba(0,255,0,.2); } * * * * * * * * * { background-color: rgba(0,0,255,.2); }"},dom.$("head")),getPoiById:function(e){return this.bus.send("poi/getById",{id:e}).then((e=>e[0]))},orphanTest:navGraphDebug.orphanTest,showOrphaned:async function(){const e=await this.bus.get("wayfinder/_getNavGraph"),t=navGraphDebug.orphanTest(e._nodes);this.bus.send("map/showOrphanedGraphNodes",{orphanedNodes:t.orphaned});},showgraph:async function(){const e=await this.bus.get("wayfinder/getNavGraphFeatures");this.bus.send("map/showNavGraphFeatures",{navGraph:e}),r("map/resetNavGraphFeatures",this.bus);},dndGo:function(){const e=this.bus,n=(e,n)=>{e.preventDefault(),n?e.target.classList.add("dragover"):e.target.classList.remove("dragover");},t={drop:async function(t){n(t,!1);for(const n of t.dataTransfer.files){const t=n.name;if("application/json"===n.type||n.type.startsWith("text/")){const o=new FileReader;o.onload=funcs.singleFile((async o=>e.send("debugTools/fileDrop",{file:n,filename:t,content:o.target.result}))),o.readAsText(n);}}},dragover:function(e){n(e,!0);},dragleave:function(e){n(e,!1);}};Object.keys(t).forEach((function(e){document.body.addEventListener(e,t[e]);})),console.log("DnD Listeners installed");},bounds:async function(){const e=await this.bus.get("venueData/getVenueCenter"),{venueRadius:n,bounds:t}=await this.bus.get("venueData/getVenueData");this.bus.send("map/showVenueBounds",{venueCenter:e,venueRadius:n,bounds:t}),r("map/resetVenueBounds",this.bus);},padding:async function(){this.bus.send("map/togglePadding"),r("map/togglePadding",this.bus);}};
28
+ "undefined"!=typeof window&&(window.R=e__namespace);const r=(e,n)=>{const s=n.monitor("homeview/performSearch",(({term:t})=>{t||(n.send(e),s());}));};var i={showIcons:()=>{dom.$("#mapRenderDiv").innerHTML="<style> div { display: inline-block; text-align: center; border: 1px solid lightblue; }</style>"+dom.$$("svg symbol").map((e=>`<div><svg><use xlink:href="#${e.id}"/></svg><br/>${e.id}</div>`)).join("");},poisByCategory:function(){return this.bus.send("poi/getAll").then((e=>e[0])).then((e=>Object.values(e))).then(e__namespace.groupBy((e=>e.category)))},highlightNodes:()=>dom.ad({tag:"style",html:"* { background-color: rgba(255,0,0,.2); } * * { background-color: rgba(0,255,0,.2); } * * * { background-color: rgba(0,0,255,.2); } * * * * { background-color: rgba(255,0,255,.2); } * * * * * { background-color: rgba(0,255,255,.2); } * * * * * * { background-color: rgba(255,255,0,.2); } * * * * * * * { background-color: rgba(255,0,0,.2); } * * * * * * * * { background-color: rgba(0,255,0,.2); } * * * * * * * * * { background-color: rgba(0,0,255,.2); }"},dom.$("head")),getPoiById:function(e){return this.bus.send("poi/getById",{id:e}).then((e=>e[0]))},orphanTest:navGraphDebug.orphanTest,showOrphaned:async function(){const e=await this.bus.get("wayfinder/_getNavGraph"),s=navGraphDebug.orphanTest(e._nodes);this.bus.send("map/showOrphanedGraphNodes",{orphanedNodes:s.orphaned});},showgraph:async function(){const e=await this.bus.get("wayfinder/getNavGraphFeatures");this.bus.send("map/showNavGraphFeatures",{navGraph:e}),r("map/resetNavGraphFeatures",this.bus);},dndGo:function(){const e=this.bus,n=(e,n)=>{e.preventDefault(),n?e.target.classList.add("dragover"):e.target.classList.remove("dragover");},s={drop:async function(s){n(s,!1);for(const n of s.dataTransfer.files){const s=n.name;if("application/json"===n.type||n.type.startsWith("text/")){const t=new FileReader;t.onload=funcs.singleFile((async t=>e.send("debugTools/fileDrop",{file:n,filename:s,content:t.target.result}))),t.readAsText(n);}}},dragover:function(e){n(e,!0);},dragleave:function(e){n(e,!1);}};Object.keys(s).forEach((function(e){document.body.addEventListener(e,s[e]);})),console.log("DnD Listeners installed");},bounds:async function(){const e=await this.bus.get("venueData/getVenueCenter"),{venueRadius:n,bounds:s}=await this.bus.get("venueData/getVenueData");this.bus.send("map/showVenueBounds",{venueCenter:e,venueRadius:n,bounds:s}),r("map/resetVenueBounds",this.bus);},buildingBounds:async function(e){this.bus.send("map/showBuildingBounds",{nameFilter:e}),r("map/resetVenueBounds",this.bus);},padding:async function(){this.bus.send("map/togglePadding"),r("map/togglePadding",this.bus);}};
29
29
 
30
30
  module.exports = i;
@@ -8,6 +8,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
8
8
 
9
9
  var a__default = /*#__PURE__*/_interopDefaultLegacy(a);
10
10
 
11
- const n=(o,n)=>o.splice(n,1)[0],t=(o,t)=>{let r=0;do{r=o.indexOf(t,r),r>=0&&n(o,r);}while(r>=0);return o};function r(n={}){const r=n.log?n.log.sublog?n.log.sublog("bustle",{color:"pink"}):n.log:console,e={},s={};function c(o,n){e[o]&&t(e[o],n);}function u(o,n){s[o]&&t(s[o],n);}function l(t,c){return n.trace&&(c||(c={}),c._stack=Error().stack),n.showEvents&&("function"==typeof n.showEvents?n.showEvents(t,c)&&r.info("send with",t," and ",c):r.info("send with",t," and ",c)),new a__default["default"]((u=>a__default["default"].soon(((t,c,u)=>()=>{const l=e[t],f=s[t],i=[];if(l)for(const t of l)try{i.push(t(c));}catch(t){n.reportAllErrors&&r.error(t),n.rejectOnError&&i.push(a__default["default"].reject(t)),i.push(t);}const h=a__default["default"].all(i);if(f)for(const o of f)try{o(c,h);}catch(o){n.reportAllErrors&&r.error(o);}u(h);})(t,c,u))))}return {get:(n,t)=>l(n,t).then((t=>1!==t.length?a__default["default"].reject(`${n} event did not return a single result, but ${t.length} results.`):t[0])),moff:u,monitor:function(o,n){return s[o]||(s[o]=[]),s[o].push(n),()=>u(o,n)},off:c,on:function(o,n){return e[o]||(e[o]=[]),e[o].push(n),()=>c(o,n)},send:l}}
11
+ const n=(o,n)=>o.splice(n,1)[0],t=(o,t)=>{let r=0;do{r=o.indexOf(t,r),r>=0&&n(o,r);}while(r>=0);return o};function r(n){const r=n.log?n.log.sublog?n.log.sublog("bustle",{color:"pink"}):n.log:console,e={},s={};function c(o,n){e[o]&&t(e[o],n);}function u(o,n){s[o]&&t(s[o],n);}function l(t,c){return n.trace&&(c||(c={}),c._stack=Error().stack),n.showEvents&&("function"==typeof n.showEvents?n.showEvents(t,c)&&r.info("send with",t," and ",c):r.info("send with",t," and ",c)),new a__default["default"]((u=>a__default["default"].soon(((t,c,u)=>()=>{const l=e[t],f=s[t],i=[];if(l)for(const t of l)try{i.push(t(c));}catch(t){n.reportAllErrors&&r.error(t),n.rejectOnError&&i.push(a__default["default"].reject(t)),i.push(t);}const h=a__default["default"].all(i);if(f)for(const o of f)try{o(c,h);}catch(o){n.reportAllErrors&&r.error(o);}u(h);})(t,c,u))))}return {get:(n,t)=>l(n,t).then((t=>1!==t.length?a__default["default"].reject(`${n} event did not return a single result, but ${t.length} results.`):t[0])),moff:u,monitor:function(o,n){return s[o]||(s[o]=[]),s[o].push(n),()=>u(o,n)},off:c,on:function(o,n){return e[o]||(e[o]=[]),e[o].push(n),()=>c(o,n)},send:l}}
12
12
 
13
13
  exports.create = r;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- function n(e,t,o,r){let u=t;o&&(u+="-"+o);const f=e[u];return f||(o?o.indexOf("-")>0?n(e,t,o.substring(0,o.indexOf("-")),r):n(e,t,null,r):r)}function e(n,e){if(!n.config.debug)return !1;let t=n.config.debug[e];return null!=t&&!1!==t&&(!0===t||(t=t.toLowerCase?t.toLowerCase():t,"no"!==t&&"false"!==t))}
5
+ function n(t,e,o,r){let u=e;o&&(u+="-"+o);const i=t[u];return i||(o?o.indexOf("-")>0?n(t,e,o.substring(0,o.indexOf("-")),r):n(t,e,null,r):r)}function t(n,t){if(!n.config.debug)return !1;let e=n.config.debug[t];return null!=e&&!1!==e&&(!0===e||(e=e.toLowerCase?e.toLowerCase():e,"no"!==e&&"false"!==e))}exports.global = void 0;try{exports.global=Function("return this")();}catch(n){exports.global=window;}
6
6
 
7
- exports.debugIsTrue = e;
7
+ exports.debugIsTrue = t;
8
8
  exports.getLocalized = n;
@@ -24,12 +24,12 @@ function _interopNamespace(e) {
24
24
 
25
25
  var e__namespace = /*#__PURE__*/_interopNamespace(e$1);
26
26
 
27
- const e=(n,e)=>{const t=n[0],l=n[1];let o=!1;for(let n=0,r=e.length-1;n<e.length;r=n++){const u=e[n][0],s=e[n][1],c=e[r][0],i=e[r][1];s>l!=i>l&&t<(c-u)*(l-s)/(i-s)+u&&(o=!o);}return o};function t(t,r,u,s){if(!e__namespace.length(t))return null;t=t.filter((n=>null==n.shouldDisplay||!0===n.shouldDisplay));const c=e__namespace.curry(e)([r,u]),i=t.filter(e__namespace.compose(c,l));if(0===i.length)return null;if(1===i.length&&!s)return e__namespace.head(i);const d=i.filter(e__namespace.compose(c,e__namespace.prop("boundsPolygon")));return 1===d.length?e__namespace.head(d):d.length?o(i):null}const l=n=>{const{n:e,s:t,e:l,w:o}=n.bounds;return [[e,l],[e,o],[t,o],[t,l]]},o=e__namespace.reduce(e__namespace.maxBy((n=>{if(!n.bounds)return 0;const{n:e,s:t,e:l,w:o}=n.bounds;return Math.abs((e-t)*(l-o))})),{}),r=(n,e)=>Object.values(n.levels).reduce(((n,t)=>t.ordinal===e?t:n),void 0),u=(n,e)=>n.reduce(((n,t)=>Object.values(t.levels).reduce(((n,t)=>t.id===e?t:n),null)||n),void 0);function s(n,e,l,o,u){const s=t(n,e,l,u);return {building:s,floor:s?r(s,o):null}}const c=(n,e,t,l,o)=>s(n,e,t,l,o).floor;function i(n,e,t,l,o,r,u,s){let c=0,i=0,d=0,f=0,a=0;const h=[{x:n,y:e}];for(let g=1,p=0;g<=20;++g)p=g/20,c=1-p,i=c*c,d=i*c,f=p*p,a=f*p,h.push({x:d*n+3*i*p*t+3*c*f*o+a*u,y:d*e+3*i*p*l+3*c*f*r+a*s});return h}
27
+ const e=(n,e)=>{const t=n[0],r=n[1];let l=!1;for(let n=0,o=e.length-1;n<e.length;o=n++){const u=e[n][0],s=e[n][1],c=e[o][0],i=e[o][1];s>r!=i>r&&t<(c-u)*(r-s)/(i-s)+u&&(l=!l);}return l};function t(t,l,u,s){if(!e__namespace.length(t))return null;t=t.filter((n=>null==n.shouldDisplay||!0===n.shouldDisplay));const c=e__namespace.curry(e)([l,u]),i=t.filter(e__namespace.compose(c,r));if(0===i.length)return null;if(1===i.length&&!s)return e__namespace.head(i);const d=i.filter(e__namespace.compose(c,e__namespace.prop("boundsPolygon")));return 1===d.length?e__namespace.head(d):d.length?o(i):s?null:o(i)}const r=n=>{const{n:e,s:t,e:r,w:l}=n.bounds;return [[e,r],[e,l],[t,l],[t,r]]},l=n=>{if(!n.bounds)return 0;const{n:e,s:t,e:r,w:l}=n.bounds;return Math.abs((e-t)*(r-l))},o=n=>{return n.reduce((e=l,(n,t)=>e(n)<e(t)?n:t));var e;},u=(n,e)=>Object.values(n.levels).reduce(((n,t)=>t.ordinal===e?t:n),void 0),s=(n,e)=>n.reduce(((n,t)=>Object.values(t.levels).reduce(((n,t)=>t.id===e?t:n),null)||n),void 0);function c(n,e,r,l,o){const s=t(n,e,r,o);return {building:s,floor:s?u(s,l):null}}const i=(n,e,t,r,l)=>c(n,e,t,r,l).floor;function d(n,e,t,r,l,o,u,s){let c=0,i=0,d=0,f=0,a=0;const h=[{x:n,y:e}];for(let g=1,p=0;g<=20;++g)p=g/20,c=1-p,i=c*c,d=i*c,f=p*p,a=f*p,h.push({x:d*n+3*i*p*t+3*c*f*l+a*u,y:d*e+3*i*p*r+3*c*f*o+a*s});return h}
28
28
 
29
- exports.bezierCurveTo = i;
30
- exports.getBuildingAndFloorAtPoint = s;
31
- exports.getFloor = u;
32
- exports.getFloorAt = c;
29
+ exports.bezierCurveTo = d;
30
+ exports.getBuildingAndFloorAtPoint = c;
31
+ exports.getFloor = s;
32
+ exports.getFloorAt = i;
33
33
  exports.getStructureAtPoint = t;
34
- exports.ordToFloor = r;
34
+ exports.ordToFloor = u;
35
35
  exports.pointInPolygon = e;
@@ -8,7 +8,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
8
8
 
9
9
  var n__default = /*#__PURE__*/_interopDefaultLegacy(n);
10
10
 
11
- async function e(e,t){const o=n__default["default"].createInstance();return o.init({debug:t,interpolation:{escapeValue:!1},resources:{en:{translation:{"Walk xx minutes to":"Walk {{count}} minute to","Walk xx minutes to_plural":"Walk {{count}} minutes to"}}},fallbackLng:"en",lng:e,postProcess:["pseudoTrans"]}).then((()=>(t&&o.on("missingKey",(function(n,e,t,a){console.error("i18nNext: key not found. Language: "+o.language+", Key: "+t+", namespace: "+e+", lngs: ",n);})),o)))}const t={ar:"بال عن أمام الأخذ البرية. ثم كما وقام شاسعة الجنوبي, أمدها الإمداد عن انه. ٣٠ فكانت والكساد انه. أساسي الشمال الإتفاقية بال أم. زهاء المؤلّفة حين عل, سكان قررت هذه ان, شعار باستخدام ولم مع.\n\nدول الأمور الصفحة الأوروبية قد. تم حدى فاتّبع الهجوم, ما أوسع معاملة فعل, خلاف الأوروبية، إيو كل. تُصب واندونيسيا، حين قد. أي حاول حقول وهولندا، هذا, بين عن لهيمنة بالسيطرة.\n\nأعمال الإتحاد العمليات من وصل. وقوعها، باستخدام قد أخر, بل حتى علاقة التبرعات. فقد لم الأرض استبدال. حتى الخاسر اقتصادية بـ. أصقاع أعلنت اتفاقية تلك بل, كان إذ بحشد أخرى ليبين. الشتاء، اليابان، مكن أم, به، قد العالم، أوراقهم, بل لعدم لغزو أواخر مكن.\n",ja:"私は場合いよいよある所有らってのの末がしたた。無論結果に圧迫顔もよくその発展ないですまでを決するてみるでしでも発展云いませたから、そうには描いたないたた。機会へ載っない方は別に今をひょろひょろでずまし。むしろ嘉納さんを意味方面そう#「を積んない権力この自分何か記念をというおお尋ねだろででですで、ある今はこれか頼み例があるで、ネルソンさんののの引込のあなたにもっともお努力といと私赤に実建設が起っようにとやかくご附随を描いですましから、どうもとにかく相違に云おでてならますのが行っないませ。"},o=(n,e)=>"en"===e?n:a(n,t[e]),a=(n,e)=>n.length<e.length?e.substring(0,n.length):e;
11
+ async function e(e,t){const a=n__default["default"].createInstance();return a.init({debug:t,interpolation:{escapeValue:!1},resources:{en:{translation:{"Walk xx minutes to":"Walk {{count}} minute to","Walk xx minutes to_plural":"Walk {{count}} minutes to"}}},fallbackLng:"en",lng:e,postProcess:["pseudoTrans"]}).then((()=>(t&&a.on("missingKey",(function(n,e,t,o){console.error("i18nNext: key not found. Language: "+a.language+", Key: "+t+", namespace: "+e+", lngs: ",n);})),a)))}const t={ar:"بال عن أمام الأخذ البرية. ثم كما وقام شاسعة الجنوبي, أمدها الإمداد عن انه. ٣٠ فكانت والكساد انه. أساسي الشمال الإتفاقية بال أم. زهاء المؤلّفة حين عل, سكان قررت هذه ان, شعار باستخدام ولم مع.\n\nدول الأمور الصفحة الأوروبية قد. تم حدى فاتّبع الهجوم, ما أوسع معاملة فعل, خلاف الأوروبية، إيو كل. تُصب واندونيسيا، حين قد. أي حاول حقول وهولندا، هذا, بين عن لهيمنة بالسيطرة.\n\nأعمال الإتحاد العمليات من وصل. وقوعها، باستخدام قد أخر, بل حتى علاقة التبرعات. فقد لم الأرض استبدال. حتى الخاسر اقتصادية بـ. أصقاع أعلنت اتفاقية تلك بل, كان إذ بحشد أخرى ليبين. الشتاء، اليابان، مكن أم, به، قد العالم، أوراقهم, بل لعدم لغزو أواخر مكن.\n",ja:"私は場合いよいよある所有らってのの末がしたた。無論結果に圧迫顔もよくその発展ないですまでを決するてみるでしでも発展云いませたから、そうには描いたないたた。機会へ載っない方は別に今をひょろひょろでずまし。むしろ嘉納さんを意味方面そう#「を積んない権力この自分何か記念をというおお尋ねだろででですで、ある今はこれか頼み例があるで、ネルソンさんののの引込のあなたにもっともお努力といと私赤に実建設が起っようにとやかくご附随を描いですましから、どうもとにかく相違に云おでてならますのが行っないませ。"},a=(n,e)=>"en"===e?n:o(n,t[e]),o=(n,e)=>n.length<e.length?e.substring(0,n.length):e;
12
12
 
13
13
  exports["default"] = e;
14
- exports.toLang = o;
14
+ exports.toLang = a;
@@ -0,0 +1 @@
1
+ var a={};export{a as default};
@@ -1 +1 @@
1
- import o from"node-fetch";import e from"../package.json.js";import{create as n}from"../src/controller.js";import t from"../src/utils/observable.js";import r from"./prepareSDKConfig.js";const s=e.version;globalThis.fetch||(globalThis.fetch=o);const c={getVersion:()=>s,newMap:o=>async function(o){return new Promise(((e,s)=>{o.headless=!0;const c=r(o);n(c).then((o=>{const n=(e,n)=>("string"==typeof e&&(e={...n,command:e}),o.bus.get("clientAPI/execute",e));t(n),o.eventListener.observe((function(){n.fire.apply(n,arguments)})),n.on("ready",((o,t)=>{const{commands:r}=t.commandJSON;!function(o,e){e.forEach((e=>{o[e.command]=function(){const n={command:e.command};for(let o=0;o<arguments.length;o++)n[e.args[o].name]=arguments[o];return o(n)}}))}(n,r),e(n)}))}))}))}(o)};export default c;
1
+ import e from"node-fetch";import n from"../package.json.js";import{create as t}from"../src/controller.js";import o from"../src/utils/observable.js";import s from"./prepareSDKConfig.js";const r=n.version;globalThis.fetch||(globalThis.fetch=e);let c=!1;const i=e=>e.toString().length<2?"0"+e:e,a=()=>`AtriusMaps Node SDK (${(()=>{const e=new Date;return`${e.getHours()}:${i(e.getMinutes())}:${i(e.getSeconds())}.${e.getMilliseconds()}`})()}): `,g=function(){if(c){let e=a()+Array.from(arguments).map((e=>"object"==typeof e?JSON.stringify(e):e)).join(" ");const n=e.split("\n");n.length>1?e=n[0]+`… (+ ${n.length-1} lines)`:e.length>256&&(e=e.substring(0,255)+`… (length: ${e.length} chars)`),console.log(e)}};const l={getVersion:()=>r,newMap:e=>async function(e){return new Promise(((n,r)=>{e.headless=!0;const c=s(e);t(c).then((e=>{const t=(n,t)=>("string"==typeof n&&(n={...t,command:n}),g("Sending command object: ",n),e.bus.get("clientAPI/execute",n).then((e=>(g("Received Message: ",e),e))).catch((e=>{throw g("Error: ",e.message),e})));o(t),e.eventListener.observe((function(){t.fire.apply(t,arguments)})),t.on("ready",((e,o)=>{const{commands:s}=o.commandJSON;!function(e,n){n.forEach((n=>{e[n.command]=function(){const t={command:n.command};for(let e=0;e<arguments.length;e++)t[n.args[e].name]=arguments[e];return e(t)}}))}(t,s),n(t),g("map ready")}))}))}))}(e),setLogging:e=>{c=e,e&&g(`Atrius Maps JS SDK Client v${r} Logging enabled.`)}};export{l as default};
@@ -1 +1 @@
1
- import{setDeepLinksForParms as e}from"../src/configs/postproc-mol-url-parms.js";import{setStateFromStateString as t}from"../src/configs/postproc-stateTracking.js";import{filterOb as o}from"../src/utils/funcs.js";function i(i){const{name:n,debug:r,headless:a,theme:c,defaultSearchTerms:p,venueId:d,accountId:l,poiCategories:u,preserveStateInURL:h,supportURLDeepLinks:g,initState:m,deepLinkParms:f,uiHide:k,renderDiv:v,parentConfig:S,desktopViewMinWidth:P,forceDesktop:A,hostAppId:V,hostAppVersion:b,hostAppProperties:I,logFilter:L,searchPlaceholder:j}=i,w=S?[S]:a?["sdkHeadless"]:["sdkVisual"],y=(e,t)=>e&&e.length>t?e.substring(0,t):e,D={name:n,extends:w,debug:r,logFilter:L,theme:c,uiHide:k,renderDiv:v,configPostProc:[],plugins:{venueDataLoader:{venueId:d,accountId:l},sdkServer:{headless:a},analytics2:{hostAppId:(e=>e?y(e.toString(),128):void 0)(V),hostAppVersion:(e=>e?y(e.toString(),128):void 0)(b),hostAppProperties:(e=>{if(!e||"object"!=typeof e)return;const t={},o=Object.keys(e);return o.length>10&&(o.length=10),o.forEach((o=>{let i=y(o.toString().replaceAll(/[^a-zA-Z0-9_]/g,""),128);i.match(/^[a-zA-Z]+/)||(i="X"+i);let s=e[o];null==s&&(s=""),s=y(s.toString(),128),t[i]=s})),t})(I)}},uuid:"undefined"!=typeof document&&document&&document.location?document.location.host:"unknown"};return a||(D.plugins["online/headerOnline"]={searchPlaceholder:j}),D.plugins.searchService=p?{defaultSearchTerms:p}:{},s(i,"defaultSearchTerms",D.plugins.searchService),w.includes("sdkVisual")&&(D.plugins["online/homeView"]=u?{poiCategories:u}:{},s(i,"poiCategories",D.plugins["online/homeView"])),h&&(D.configPostProc.push("stateTracking"),D.plugins.deepLinking={trackURL:!0}),g&&D.configPostProc.push("mol-url-parms"),m&&t(D,atob(m),!0),f&&e(D,f,!0),void 0!==P&&(D.desktopViewMinWidth=P),A&&(D.desktopViewMinWidth=0),o(((e,t)=>void 0!==t),D)}function s(e,t,o){Object.keys(e).filter((e=>e.startsWith(t+"-"))).forEach((t=>o[t]=e[t]))}export default i;
1
+ import{setDeepLinksForParms as e}from"../src/configs/postproc-mol-url-parms.js";import{setStateFromStateString as t}from"../src/configs/postproc-stateTracking.js";import{filterOb as i}from"../src/utils/funcs.js";function o(o){const{name:n,debug:r,headless:a,theme:c,defaultSearchTerms:d,venueId:l,accountId:p,poiCategories:u,preserveStateInURL:h,supportURLDeepLinks:g,initState:m,deepLinkParms:f,uiHide:k,renderDiv:v,parentConfig:P,desktopViewMinWidth:S,forceDesktop:V,hostAppId:A,hostAppVersion:b,hostAppProperties:y,logFilter:I,searchPlaceholder:L,dataFetch:j,engineName:w,dynamicPoisUrlBaseV1:D}=o,T=P?[P]:a?["sdkHeadless"]:["sdkVisual"],C=(e,t)=>e&&e.length>t?e.substring(0,t):e,F={name:n,engineName:w,extends:T,debug:r,logFilter:I,theme:c,uiHide:k,renderDiv:v,configPostProc:[],plugins:{venueDataLoader:{dataFetch:j,venueId:l,accountId:p},sdkServer:{headless:a},analytics2:{hostAppId:(e=>e?C(e.toString(),128):void 0)(A),hostAppVersion:(e=>e?C(e.toString(),128):void 0)(b),hostAppProperties:(e=>{if(!e||"object"!=typeof e)return;const t={},i=Object.keys(e);return i.length>10&&(i.length=10),i.forEach((i=>{let o=C(i.toString().replaceAll(/[^a-zA-Z0-9_]/g,""),128);o.match(/^[a-zA-Z]+/)||(o="X"+o);let s=e[i];null==s&&(s=""),s=C(s.toString(),128),t[o]=s})),t})(y)}},uuid:"undefined"!=typeof document&&document&&document.location?document.location.host:"unknown"};return a||(F.plugins["online/headerOnline"]={searchPlaceholder:L}),F.plugins.searchService=d?{defaultSearchTerms:d}:{},s(o,"defaultSearchTerms",F.plugins.searchService),T.includes("sdkVisual")&&(F.plugins["online/homeView"]=u?{poiCategories:u}:{},s(o,"poiCategories",F.plugins["online/homeView"])),h&&(F.configPostProc.push("stateTracking"),F.plugins.deepLinking={trackURL:!0}),g&&F.configPostProc.push("mol-url-parms"),m&&t(F,atob(m),!0),f&&e(F,f,!0),void 0!==S&&(F.desktopViewMinWidth=S),V&&(F.desktopViewMinWidth=0),D&&(F.plugins.dynamicPois={urlBaseV1:D}),i(((e,t)=>void 0!==t),F)}function s(e,t,i){Object.keys(e).filter((e=>e.startsWith(t+"-"))).forEach((t=>i[t]=e[t]))}export{o as default};
@@ -1 +1 @@
1
- var e="web-engine",s="3.2.21",o="src/main.js",l="module",a={demo:"cd demo/ && yarn start",e2eTest:"percy exec -- cypress run --browser chrome",goProd:"cd deploy && scripts/goProd.sh",goStaging:"deploy/scripts/goStaging.sh",mod:"demo/startMod.sh",mol:"demo/startMol.sh",mos:"demo/startMos.sh",prepare:"husky install",test:"jest --no-cache --verbose","test-watch":"jest --verbose --watch"},t={"@aws-amplify/auth":"^4.1.2","@azure/event-hubs":"^5.6.0","@john-osullivan/react-window-dynamic-fork":"^1.9.0-alpha.1","@locus-labs/mod-badge":"^0.1.11","@locus-labs/mod-default-theme":"^0.0.27","@locus-labs/mod-footer":"^0.0.25","@locus-labs/mod-header":"^0.0.19","@locus-labs/mod-location-marker":"^0.0.18","@locus-labs/mod-map-legend":"^0.0.18","@locus-labs/mod-offscreen-indicator":"^0.0.18","@locus-labs/mod-pin":"^0.0.18","@locus-labs/mod-qr-code-card":"^0.0.18","@locus-labs/mod-qr-code-window":"^0.0.19","@locus-labs/mod-walk-time-matrix":"^0.0.17","@locus-labs/mol-desktop-building-level-selector":"^0.1.15","@locus-labs/mol-desktop-compass":"^0.1.29","@locus-labs/mol-desktop-default-theme":"^0.2.13","@locus-labs/mol-desktop-icon":"^0.1.45","@locus-labs/mol-desktop-logo":"^0.1.10","@locus-labs/mol-desktop-map-nav-button":"^0.1.39","@locus-labs/mol-desktop-submenu":"^0.1.30","@locus-labs/mol-desktop-tooltip":"^0.3.11","@locus-labs/mol-desktop-zoom-control":"^0.1.37","@locus-labs/mol-mobile-floating-action-button":"^0.0.20","@locus-labs/mol-mobile-toast":"^0.1.11","@turf/circle":"^6.5.0",IObject:"^0.6.2","crypto-browserify":"^3.12.0","file-loader":"^6.2.0",flexsearch:"0.6.32",i18next:"^20.3.4","i18next-browser-languagedetector":"^6.1.1",jsonschema:"^1.2.6",luxon:"^2.0.1","mapbox-gl":"^1.12.0","mini-css-extract-plugin":"^1.6.0",msal:"1.4.11","node-polyfill-webpack-plugin":"^1.1.4","path-browserify":"^1.0.1",polished:"^4.0.2","prop-types":"^15.7.2","query-string":"7.0.1",ramda:"^0.27.0",react:"^17.0.2","react-compound-slider":"^3.3.1","react-dom":"^17.0.2","react-json-editor-ajrm":"^2.5.13","react-qr-svg":"^2.2.1","react-svg":"^11.2.5","react-tageditor":"^0.2.3","react-virtualized-auto-sizer":"^1.0.2","smoothscroll-polyfill":"^0.4.4","styled-components":"5.1.0","styled-normalize":"^8.0.6","throttle-debounce":"^3.0.1",trackjs:"^3.7.4","ua-parser-js":"^0.7.23",uuid:"3.3.2",zousan:"^3.0.1","zousan-plus":"^4.0.1"},r={"@babel/core":"^7.14.8","@babel/plugin-proposal-class-properties":"^7.8.3","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.8.3","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.14.8","@babel/preset-react":"^7.8.3","@percy/cli":"^1.0.0-beta.60","@percy/cypress":"^3.1.0","babel-eslint":"^10.0.1","babel-jest":"^27.0.6","babel-loader":"^8.2.2","babel-plugin-inline-json-import":"^0.3.2","babel-plugin-module-resolver":"^4.0.0","babel-polyfill":"^6.26.0","chai-colors":"^1.0.1","css-loader":"^5.2.4",cypress:"^7.4.0","cypress-wait-until":"^1.7.1",eslint:"^7.4.0","eslint-config-standard":"^16.0.3","eslint-plugin-cypress":"^2.11.1","eslint-plugin-import":"^2.16.0","eslint-plugin-jest":"^24.3.6","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-react":"^7.12.4","eslint-plugin-standard":"^5.0.0","fetch-mock-jest":"^1.3.0",husky:"^6.0.0",jest:"^26.0.0","jest-transform-css":"^2.0.0","lint-staged":"^11.0.1","node-fetch":"^2.6.0","null-loader":"^4.0.1",webpack:"^5.45.1","webpack-merge":"^5.8.0"},c="UNLICENSED",n=["demo","deploy","pageSrc","src/extModules/flexapi"],i={name:"web-engine",version:"3.2.21",main:"src/main.js",type:"module",scripts:a,dependencies:t,devDependencies:r,"lint-staged":{"*.js":["eslint --fix"]},license:"UNLICENSED",workspaces:n,private:!0};export default i;export{t as dependencies,r as devDependencies,c as license,o as main,e as name,a as scripts,l as type,s as version,n as workspaces};
1
+ var e="web-engine",s="3.3.1",o="src/main.js",l="module",a={demo:"cd demo/ && yarn start",e2eTest:"percy exec -- cypress run --browser chrome",goProd:"cd deploy && scripts/goProd.sh",goStaging:"deploy/scripts/goStaging.sh",mod:"demo/startMod.sh",mol:"demo/startMol.sh",mos:"demo/startMos.sh",prepare:"husky install",test:"jest --no-cache --verbose","test-watch":"jest --verbose --watch"},t={"@aws-amplify/auth":"^4.1.2","@azure/event-hubs":"^5.6.0","@john-osullivan/react-window-dynamic-fork":"^1.9.0-alpha.1","@locus-labs/mod-badge":"^0.1.11","@locus-labs/mod-default-theme":"^0.0.27","@locus-labs/mod-footer":"^0.0.25","@locus-labs/mod-header":"^0.0.19","@locus-labs/mod-location-marker":"^0.0.18","@locus-labs/mod-map-legend":"^0.0.18","@locus-labs/mod-offscreen-indicator":"^0.0.18","@locus-labs/mod-pin":"^0.0.18","@locus-labs/mod-qr-code-card":"^0.0.18","@locus-labs/mod-qr-code-window":"^0.0.19","@locus-labs/mod-walk-time-matrix":"^0.0.17","@locus-labs/mol-desktop-building-level-selector":"^0.1.15","@locus-labs/mol-desktop-compass":"^0.1.29","@locus-labs/mol-desktop-default-theme":"^0.2.13","@locus-labs/mol-desktop-icon":"^0.1.45","@locus-labs/mol-desktop-logo":"^0.1.10","@locus-labs/mol-desktop-map-nav-button":"^0.1.39","@locus-labs/mol-desktop-submenu":"^0.1.30","@locus-labs/mol-desktop-tooltip":"^0.3.11","@locus-labs/mol-desktop-zoom-control":"^0.1.37","@locus-labs/mol-mobile-floating-action-button":"^0.0.20","@locus-labs/mol-mobile-toast":"^0.1.11","@turf/circle":"^6.5.0",IObject:"^0.6.2","crypto-browserify":"^3.12.0","file-loader":"^6.2.0",flexsearch:"0.6.32",i18next:"^20.3.4","i18next-browser-languagedetector":"^6.1.1",jsonschema:"^1.2.6",luxon:"^2.0.1","maplibre-gl":"~2.1.9","mini-css-extract-plugin":"^1.6.0",msal:"1.4.11","node-polyfill-webpack-plugin":"^1.1.4","path-browserify":"^1.0.1",polished:"^4.0.2","prop-types":"^15.7.2","query-string":"7.0.1",ramda:"^0.27.0",react:"^17.0.2","react-compound-slider":"^3.3.1","react-dom":"^17.0.2","react-json-editor-ajrm":"^2.5.13","react-qr-svg":"^2.2.1","react-svg":"^11.2.5","react-tageditor":"^0.2.3","react-virtualized-auto-sizer":"^1.0.2","smoothscroll-polyfill":"^0.4.4","styled-components":"5.1.0","styled-normalize":"^8.0.6","throttle-debounce":"^3.0.1",trackjs:"^3.7.4","ua-parser-js":"^0.7.23",uuid:"3.3.2",zousan:"^3.0.1","zousan-plus":"^4.0.1"},r={"@babel/core":"^7.14.8","@babel/plugin-proposal-class-properties":"^7.8.3","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.8.3","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.14.8","@babel/preset-react":"^7.8.3","@percy/cli":"^1.0.0-beta.60","@percy/cypress":"^3.1.0","babel-eslint":"^10.0.1","babel-jest":"^27.0.6","babel-loader":"^8.2.2","babel-plugin-inline-json-import":"^0.3.2","babel-plugin-module-resolver":"^4.0.0","babel-polyfill":"^6.26.0","chai-colors":"^1.0.1","css-loader":"^5.2.4",cypress:"9.5.2","cypress-wait-until":"^1.7.1",eslint:"^7.4.0","eslint-config-standard":"^16.0.3","eslint-plugin-cypress":"^2.11.1","eslint-plugin-import":"^2.16.0","eslint-plugin-jest":"^24.3.6","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-react":"^7.12.4","eslint-plugin-standard":"^5.0.0","fetch-mock-jest":"^1.3.0",husky:"^6.0.0",jest:"^26.0.0","jest-transform-css":"^2.0.0","lint-staged":"^11.0.1","node-fetch":"^2.6.0","null-loader":"^4.0.1",webpack:"^5.45.1","webpack-merge":"^5.8.0"},n="UNLICENSED",c=["demo","deploy","pageSrc","src/extModules/flexapi"],i="yarn@3.2.2",d={name:"web-engine",version:"3.3.1",main:"src/main.js",type:"module",scripts:a,dependencies:t,devDependencies:r,"lint-staged":{"*.js":["eslint --fix"]},license:"UNLICENSED",workspaces:c,private:!0,packageManager:"yarn@3.2.2"};export{d as default,t as dependencies,r as devDependencies,n as license,o as main,e as name,i as packageManager,a as scripts,l as type,s as version,c as workspaces};
@@ -1 +1 @@
1
- import*as e from"ramda";import t from"zousan";function a(a,n){let s=new t;const i=new t;function o(t,n){const s=e.pipe(e.filter((e=>"parking"===e.category)),e.map((a=>{const n=a.dynamicAttributes;if(!n)throw Error(`No dynamicAttributes defined for parking POI ${a.poiId}`);return{...(t-a.timestamp)/1e3<n["parking.timeToLive"]?e.pick(["lotStatus","rateDay","rateHour","timeIsReal","timeToTerminal1","timeToTerminal2"],a):{lotStatus:n["parking.default"],rateDay:"$ -",rateHour:"$ -",timeIsReal:!1},lastUpdated:a.timestamp,lotName:a.lotName}})))(n);a.bus.send("poi/setDynamicData",{plugin:"parking",idValuesMap:s})}function r(t,n){const s=e.pipe(e.map((e=>[e.poiId,u(t,e)])),e.fromPairs)(n);a.bus.send("poi/setDynamicData",{plugin:"security",idValuesMap:s})}const u=(e,t)=>({queueTime:t.queueTime,isTemporarilyClosed:t.isTemporarilyClosed,timeIsReal:!t.isQueueTimeDefault&&t.expiration>e,lastUpdated:e});return a.bus.on("venueData/venueDataLoaded",(({venueData:e})=>{s.v?s=t.resolve(e):s.resolve(e)})),a.bus.on("sdk/readyWhenYouAre",(()=>i)),{init:async()=>{const e=n.urlBase||"https://rest.locuslabs.com/v3",t=n.urlBase||"https://rest.locuslabs.com/v1",u=a.config.plugins.venueDataLoader.accountId;async function c(){return s.then((e=>{let a=`${t}/venue/${e.id}/account/${u}/get-all-dynamic-pois/`;return(t.startsWith("./")||t.endsWith(".json"))&&(a=t),a}))}const l=async()=>s.then((t=>e.startsWith("./")||e.endsWith(".json")?e:`${e}/venueId/${t.id}/accountId/${u}/get-dynamic-queue-times/`)),m=async()=>{Promise.all([c().then(fetch).then((e=>e.json())).then((e=>o(Date.now(),e))),l().then(fetch).then((e=>e.json())).then((e=>r(Date.now(),e)))]).then((()=>i.resolve(!0))).catch((e=>{console.error(e),i.resolve(!0)}))},p=await a.bus.get("venueData/getQueueTypes");p.SecurityLane&&p.SecurityLane.length?s.then(m).then((()=>setInterval(m,3e4))):i.resolve(!0)},internal:{processSecurityWaitTimes:r,processParkingPOIS:o}}}export{a as create};
1
+ import*as e from"ramda";import t from"zousan";function a(a,s){let n=new t;const i=new t;function o(...e){r(...e),p(...e)}function r(t,s){const n=e.pipe(e.filter((e=>"parking"===e.category)),e.map((a=>{const s=a.dynamicAttributes;if(!s)throw Error(`No dynamicAttributes defined for parking POI ${a.poiId}`);return{...(t-a.timestamp)/1e3<s["parking.timeToLive"]?e.pick(["lotStatus","rateDay","rateHour","timeIsReal","timeToTerminal1","timeToTerminal2"],a):{lotStatus:s["parking.default"],rateDay:"$ -",rateHour:"$ -",timeIsReal:!1},lastUpdated:a.timestamp,lotName:a.lotName}})))(s);a.bus.send("poi/setDynamicData",{plugin:"parking",idValuesMap:n})}function u(t,s){const n=e.pipe(e.map((e=>[e.poiId,l(t,e)])),e.fromPairs)(s);a.bus.send("poi/setDynamicData",{plugin:"security",idValuesMap:n})}const l=(e,t)=>({queueTime:t.queueTime,isTemporarilyClosed:t.isTemporarilyClosed,timeIsReal:!t.isQueueTimeDefault&&t.expiration>e,lastUpdated:e});function p(t,s){const n=["dynamicData","openClosed"],i=e.filter(e.hasPath(n),s),o=e.map(e.path(n),i);if(!e.all(e.both(e.has("isOpen"),e.has("expiration")),e.values(o)))throw Error("Open Closed poi status is malformed.");{const s=e.pipe(e.prop("expiration"),e.lt(t)),n=e.filter(s,o);a.bus.send("poi/setDynamicData",{plugin:"open-closed-status",idValuesMap:n})}}return a.bus.on("venueData/venueDataLoaded",(({venueData:e})=>{n.v?n=t.resolve(e):n.resolve(e)})),a.bus.on("sdk/readyWhenYouAre",(()=>i)),{init:async()=>{const e=s.urlBase||"https://rest.locuslabs.com/v3",t=s.urlBaseV1||s.urlBase||"https://rest.locuslabs.com/v1",r=a.config.plugins.venueDataLoader.accountId;async function l(){return n.then((e=>{let a=`${t}/venue/${e.id}/account/${r}/get-all-dynamic-pois/`;return(t.startsWith("./")||t.endsWith(".json"))&&(a=t),a}))}const p=async()=>n.then((t=>e.startsWith("./")||e.endsWith(".json")?e:`${e}/venueId/${t.id}/accountId/${r}/get-dynamic-queue-times/`)),c=async()=>{Promise.all([l().then(fetch).then((e=>e.json())).then((e=>o(Date.now(),e))),p().then(fetch).then((e=>e.json())).then((e=>u(Date.now(),e)))]).then((()=>i.resolve(!0))).catch((e=>{console.error(e),i.resolve(!0)}))},m=await a.bus.get("venueData/getQueueTypes");m.SecurityLane&&m.SecurityLane.length?n.then(c).then((()=>setInterval(c,3e4))):i.resolve(!0)},internal:{processSecurityWaitTimes:u,processParkingPOIS:r,processOpenClosedPois:p,processDynamicPois:o}}}export{a as create};
@@ -1 +1 @@
1
- import*as o from"ramda";import e from"zousan";import{buildStructuresLookup as t}from"../../../src/utils/buildStructureLookup.js";import{debugIsTrue as i}from"../../../src/utils/configUtils.js";import{toLang as a}from"../../../src/utils/i18n.js";async function n(a,n){const s=a.log.sublog("poiDataManager"),u=()=>{a.bus.send("venueData/loadPoiData")};let p=new e;const d=(o,e)=>{const{position:t}=o,i=e.floorIdToStructure(t.floorId);if(!i)return s.error(`No structure found for floorId: ${t.floorId} for POI ${o.poiId}`),{...o};const a=e.floorIdToFloor(t.floorId),n={...t,structureName:i.name,buildingId:i.id,floorName:a.name,floorOrdinal:a.ordinal};return{...o,position:n}},c=(o,e)=>{o.roomInfo||(o.roomInfo=[]),o.roomInfo.push(e)},l=o.pipe(o.propOr([],"externalIds"),o.find(o.propEq("type","roomId")),o.prop("id"),o.unless(o.isNil,o.tail));a.bus.on("venueData/poiDataLoaded",(({pois:e,structures:n})=>{if(e=((e,t)=>o.pipe(o.values,o.map((o=>{o.distance=null,o.isNavigable=void 0===o.isNavigable||!0===o.isNavigable,o.capacity&&c(o,{name:`Seats ${o.capacity.join("-")}`,svgId:"number-of-seats"}),o.category.startsWith("meeting")&&c(o,{name:a.gt()("poiView:Conference Room"),svgId:"conference-room"});const e=l(o);return e&&(o.roomId=e),[o.poiId,d(o,t)]})),o.fromPairs)(e))(e,t(n)),i(a,"pseudoTransPois"))for(const o in e)e[o]=r(e[o],a.i18n().language);(async function(o){for(const e of Object.values(o))await y(e)})(e=function(o){const e=[];return Object.values(o).forEach((o=>{try{const t=o.position;t?["buildingId","structureName","floorId","floorName","floorOrdinal","latitude","longitude"].forEach((i=>{null!==t[i]&&void 0!==t[i]||e.push({id:o.poiId,e:`invalid position property: ${i}: ${t[i]}`})})):e.push({poi:o,e:"No position information"})}catch(t){s.error(t),e.push({id:o.poiId,e:t.message})}})),e.length&&(s.warn("badPois:",e),e.forEach((e=>{delete o[e.id]}))),o}(e)),p.resolve(e),a.config.debug&&a.env.isBrowser&&(window._pois=e),a.config.debug&&async function(o){const e=Date.now(),t=[],i=await a.bus.get("wayfinder/_getNavGraph");Object.values(o).forEach((o=>{try{const e=o.position;i.findClosestNode(e.floorId,e.latitude,e.longitude)||t.push({id:o.poiId,e:"No closest Navgraph Node"})}catch(e){s.error(e),t.push({id:o.poiId,e:e.message})}})),t.length&&s.warn("badPois:",t),s(`Total time for navgraph POI check: ${Date.now()-e}ms`)}(e)})),a.bus.on("poi/getById",(async({id:o})=>p.then((e=>e[o])))),a.bus.on("poi/getByFloorId",(async({floorId:e})=>p.then(o.pickBy(o.pathEq(["position","floorId"],e))))),a.bus.on("poi/getByCategoryId",(async({categoryId:e})=>p.then(o.pickBy((o=>o.category===e||o.category.startsWith(e+".")))))),a.bus.on("poi/getAll",(async()=>p));const m=["queue","primaryQueueId"],f=(e,t,i)=>{const a=o.path(["queue","queueType"],t);if(!a)return null;const n=e[a],r=o.path(m,t);return i.filter(o.pathEq(m,r)).filter((o=>o.poiId!==t.poiId)).map((e=>{const t=o.path(["queue","queueSubtype"],e),i=g(t)(n);return{poiId:e.poiId,...i}}))},g=e=>o.pipe(o.find(o.propEq("id",e)),o.pick(["displayText","imageId"]));async function y(t){if(t)return o.length(t.images)?t.images[0].startsWith("https:")||(t.images=await e.all(t.images.map((o=>a.bus.get("venueData/getPoiImageUrl",{imageName:o,size:"480x320"}))))):t.images=[],t}a.bus.on("poi/addOtherSecurityLanes",(({poi:e})=>(async e=>{if(!o.path(m,e))return e;const t=await a.bus.get("venueData/getQueueTypes"),i=await a.bus.get("poi/getByCategoryId",{categoryId:"security"}),n=Object.values(i);return e.queue.otherQueues=f(t,e,n),e})(e)));const I=o.memoizeWith(o.identity,o.pipe(o.pluck("category"),o.values,o.uniq));a.bus.on("poi/getAllCategories",(async()=>p.then(I))),a.bus.on("venueData/loadNewVenue",(()=>{p=new e,u()})),a.bus.on("poi/setDynamicData",(({plugin:e,idValuesMap:t})=>{p.then((i=>{for(const a in t){const n=i[a].dynamicData||{};n[e]={...t[a]};const r=o.mergeRight(i[a],{dynamicData:n});i[a]=r}}))}));return{init:u,runTest:async o=>(await o(),p),internal:{addImages:y,pseudoTransPoi:r}}}function r(o,e){return["description","nearbyLandmark","name","phone","operationHours"].forEach((t=>{o[t]&&(o[t]=a(o[t],e))})),o.keywords&&(o.keywords=o.keywords.map((o=>(o.name=a(o.name,e),o)))),o.position.floorName&&(o.position.floorName=a(o.position.floorName,e)),o.position.structureName&&(o.position.structureName=a(o.position.structureName,e)),o}export{n as create};
1
+ import*as o from"ramda";import e from"zousan";import{buildStructuresLookup as t}from"../../../src/utils/buildStructureLookup.js";import{debugIsTrue as i}from"../../../src/utils/configUtils.js";import{toLang as a}from"../../../src/utils/i18n.js";async function n(a,n){const s=a.log.sublog("poiDataManager"),u=()=>{a.bus.send("venueData/loadPoiData")};let p=new e;const d=(o,e)=>{const{position:t}=o,i=e.floorIdToStructure(t.floorId);if(!i)return s.error(`No structure found for floorId: ${t.floorId} for POI ${o.poiId}`),{...o};const a=e.floorIdToFloor(t.floorId),n={...t,structureName:i.name,buildingId:i.id,floorName:a.name,floorOrdinal:a.ordinal};return{...o,position:n}},c=(o,e)=>{o.roomInfo||(o.roomInfo=[]),o.roomInfo.push(e)},l=o.pipe(o.propOr([],"externalIds"),o.find(o.propEq("type","roomId")),o.prop("id"),o.unless(o.isNil,o.tail));a.bus.on("venueData/poiDataLoaded",(async({pois:e,structures:n})=>{if(e=((e,t)=>o.pipe(o.values,o.map((o=>{o.distance=null,o.isNavigable=void 0===o.isNavigable||!0===o.isNavigable,o.capacity&&c(o,{name:`Seats ${o.capacity.join("-")}`,svgId:"number-of-seats"}),o.category.startsWith("meeting")&&c(o,{name:a.gt()("poiView:Conference Room"),svgId:"conference-room"});const e=l(o);return e&&(o.roomId=e),[o.poiId,d(o,t)]})),o.fromPairs)(e))(e,t(n)),i(a,"pseudoTransPois"))for(const o in e)e[o]=r(e[o],a.i18n().language);e=function(o){const e=[];return Object.values(o).forEach((o=>{try{const t=o.position;t?["buildingId","structureName","floorId","floorName","floorOrdinal","latitude","longitude"].forEach((i=>{null!==t[i]&&void 0!==t[i]||e.push({id:o.poiId,e:`invalid position property: ${i}: ${t[i]}`})})):e.push({poi:o,e:"No position information"})}catch(t){s.error(t),e.push({id:o.poiId,e:t.message})}})),e.length&&(s.warn("badPois:",e),e.forEach((e=>{delete o[e.id]}))),o}(e),await async function(o){for(const e of Object.values(o))await y(e);return o}(e),p.resolve(e),a.config.debug&&a.env.isBrowser&&(window._pois=e),a.config.debug&&async function(o){const e=Date.now(),t=[],i=await a.bus.get("wayfinder/_getNavGraph");Object.values(o).forEach((o=>{try{const e=o.position;i.findClosestNode(e.floorId,e.latitude,e.longitude)||t.push({id:o.poiId,e:"No closest Navgraph Node"})}catch(e){s.error(e),t.push({id:o.poiId,e:e.message})}})),t.length&&s.warn("badPois:",t),s(`Total time for navgraph POI check: ${Date.now()-e}ms`)}(e)})),a.bus.on("poi/getById",(async({id:o})=>p.then((e=>e[o])))),a.bus.on("poi/getByFloorId",(async({floorId:e})=>p.then(o.pickBy(o.pathEq(["position","floorId"],e))))),a.bus.on("poi/getByCategoryId",(async({categoryId:e})=>p.then(o.pickBy((o=>o.category===e||o.category.startsWith(e+".")))))),a.bus.on("poi/getAll",(async()=>p));const f=["queue","primaryQueueId"],m=(e,t,i)=>{const a=o.path(["queue","queueType"],t);if(!a)return null;const n=e[a],r=o.path(f,t);return i.filter(o.pathEq(f,r)).filter((o=>o.poiId!==t.poiId)).map((e=>{const t=o.path(["queue","queueSubtype"],e),i=g(t)(n);return{poiId:e.poiId,...i}}))},g=e=>{return o.pipe(o.find(o.propEq("id",e)),(t=`No queue found with ID: ${e}`,o=>{if(null!=o)return o;throw Error(t)}),o.pick(["displayText","imageId"]));var t};async function y(t){if(!t)return;const i="undefined"==typeof window?1:window.devicePixelRatio||1;return o.length(t.images)?t.images[0].startsWith("https:")||(t.images=await e.all(t.images.map((o=>a.bus.get("venueData/getPoiImageUrl",{imageName:o,size:`${351*i}x${197*i}`}))))):t.images=[],t}a.bus.on("poi/addOtherSecurityLanes",(({poi:e})=>(async e=>{if(!o.path(f,e))return e;const t=await a.bus.get("venueData/getQueueTypes"),i=await a.bus.get("poi/getByCategoryId",{categoryId:"security"}),n=Object.values(i);return e.queue.otherQueues=m(t,e,n),e})(e)));const I=o.memoizeWith(o.identity,o.pipe(o.pluck("category"),o.values,o.uniq));a.bus.on("poi/getAllCategories",(async()=>p.then(I))),a.bus.on("venueData/loadNewVenue",(()=>{p=new e,u()})),a.bus.on("poi/setDynamicData",(({plugin:e,idValuesMap:t})=>{p.then((i=>{for(const a in t){const n=i[a].dynamicData||{};n[e]={...t[a]};const r=o.mergeRight(i[a],{dynamicData:n});i[a]=r}}))}));return{init:u,runTest:async o=>(await o(),p),internal:{addImages:y,pseudoTransPoi:r}}}function r(o,e){return["description","nearbyLandmark","name","phone","operationHours"].forEach((t=>{o[t]&&(o[t]=a(o[t],e))})),o.keywords&&(o.keywords=o.keywords.map((o=>(o.name=a(o.name,e),o)))),o.position.floorName&&(o.position.floorName=a(o.position.floorName,e)),o.position.structureName&&(o.position.structureName=a(o.position.structureName,e)),o}export{n as create};
@@ -1 +1 @@
1
- import{getBuildingAndFloorAtPoint as e}from"../../../src/utils/geom.js";import t from"../../../src/utils/observable.js";import{headlessCommands as o,handleHeadless as n}from"./sdkHeadless.js";let a=null;function s(e){const t=(e,t)=>{const o={payload:e,type:"LL-server"};t&&(o.clientMsgId=t);try{window.postMessage(o,"*")}catch(e){window.postMessage((e=>JSON.parse(JSON.stringify(e)))(o),"*")}};function o(o){const n=o.data;n&&"LL-client"===n.type&&e.bus.get("clientAPI/execute",n.payload).then((e=>t(e,n.msgId))).catch((t=>{e.config.debug&&console.error(t),((e,t)=>{const o={error:!0,payload:e,type:"LL-server"};t&&(o.clientMsgId=t),window.postMessage(o,"*")})(t.message,n.msgId)}))}return a&&a(),window.addEventListener("message",o),a=()=>window.removeEventListener("message",o),(e,t)=>{const o={event:e,payload:t,type:"LL-server"};window.postMessage(o,"*")}}async function r(a,r){const i=a.env.isBrowser?s(a):function(e){const o=t();return e.eventListener=o,(e,t)=>o.fire(e,t)}(a);return function(t,o){t.bus.monitor("map/userMoveStart",(async({pitch:e,zoom:n,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");o("userMoveStart",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:n,bearing:a})})),t.bus.monitor("map/userMoving",(async({pitch:e,zoom:n,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");o("userMoving",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:n,bearing:a})})),t.bus.monitor("map/moveEnd",(async({pitch:e,zoom:n,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");o("moveEnd",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:n,bearing:a})})),t.bus.monitor("map/floorChanged",(({structure:e,floor:t})=>o("levelChange",{floorId:t?t.id:null,floorName:t?t.name:null,ord:t?t.ordinal:null,structureId:e?e.id:null,structureName:e?e.name:null}))),t.bus.monitor("map/poiClicked",(({poi:e})=>o("poiSelected",e))),t.bus.monitor("map/click",(async({lat:n,lng:a,ord:s})=>{const r=await t.bus.get("venueData/getStructures"),{building:i,floor:l}=e(r,n,a,s,!0);o("mapClicked",{lat:n,lng:a,ord:s,building:i,floor:l})}))}(a,i),{init:async()=>{!function(e){e.bus.send("clientAPI/registerCustomType",{name:"latLngOrdLocation",spec:{type:"object",props:[{name:"lat",type:"float"},{name:"lng",type:"float"},{name:"ord",type:"integer"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"latLngFloorLocation",spec:{type:"object",props:[{name:"lat",type:"float"},{name:"lng",type:"float"},{name:"floorId",type:"string"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"poiIdLocation",spec:{type:"object",props:[{name:"poiId",type:"integer",min:0}]}}),e.bus.send("clientAPI/registerCustomType",{name:"location",spec:{type:"multi",types:[{type:"poiIdLocation"},{type:"latLngOrdLocation"},{type:"latLngFloorLocation"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"viewSettings",spec:{type:"object",props:[{name:"zoom",type:"float",optional:!0},{name:"pitch",type:"float",optional:!0},{name:"bearing",type:"float",optional:!0}]}})}(a),o.forEach((e=>a.bus.send("clientAPI/registerCommand",e))),n(a),r.headless||await import("../../../_virtual/_empty_module_placeholder").then((e=>{e.visualCommands.forEach((e=>a.bus.send("clientAPI/registerCommand",e))),e.handleVisual(a)}));const e=async()=>{await a.bus.send("sdk/readyWhenYouAre"),a.bus.get("clientAPI/execute",{command:"getCommandJSON"}).then((e=>i("ready",{commandJSON:e}))),!r.headless&&a.config.uiHide&&a.config.uiHide.sidebar&&a.env.isDesktop()&&a.bus.send("map/changePadding",{padding:{left:55,right:55,top:72,bottom:22}})};r.headless?Promise.all([new Promise((e=>a.bus.monitor("venueData/navGraphLoaded",e))),new Promise((e=>a.bus.monitor("venueData/poiDataLoaded",e)))]).then(e):a.bus.on("map/mapReadyToShow",e)}}}export{r as create};
1
+ import{getBuildingAndFloorAtPoint as e}from"../../../src/utils/geom.js";import t from"../../../src/utils/observable.js";import{headlessCommands as o,handleHeadless as n}from"./sdkHeadless.js";let a=null;function s(e){const t=(e,t)=>{const o={payload:e,type:"LL-server"};t&&(o.clientMsgId=t);try{window.postMessage(o,"*")}catch(e){window.postMessage((e=>JSON.parse(JSON.stringify(e)))(o),"*")}};function o(o){const n=o.data;n&&"LL-client"===n.type&&e.bus.get("clientAPI/execute",n.payload).then((e=>t(e,n.msgId))).catch((t=>{e.config.debug&&console.error(t),((e,t)=>{const o={error:!0,payload:e,type:"LL-server"};t&&(o.clientMsgId=t),window.postMessage(o,"*")})(t.message,n.msgId)}))}return a&&a(),window.addEventListener("message",o),a=()=>window.removeEventListener("message",o),(e,t)=>{const o={event:e,payload:t,type:"LL-server"};window.postMessage(o,"*")}}async function r(a,r){const i=a.env.isBrowser?s(a):function(e){const o=t();return e.eventListener=o,(e,t)=>o.fire(e,t)}(a);return function(t,o){t.bus.monitor("map/userMoveStart",(async({pitch:e,zoom:n,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");o("userMoveStart",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:n,bearing:a})})),t.bus.monitor("map/userMoving",(async({pitch:e,zoom:n,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");o("userMoving",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:n,bearing:a})})),t.bus.monitor("map/moveEnd",(async({pitch:e,zoom:n,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");o("moveEnd",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:n,bearing:a})})),t.bus.monitor("map/floorChanged",(({structure:e,floor:t})=>o("levelChange",{floorId:t?t.id:null,floorName:t?t.name:null,ord:t?t.ordinal:null,structureId:e?e.id:null,structureName:e?e.name:null}))),t.bus.monitor("map/poiClicked",(({poi:e})=>o("poiSelected",e))),t.bus.monitor("map/click",(async({lat:n,lng:a,ord:s})=>{const r=await t.bus.get("venueData/getStructures"),{building:i,floor:l}=e(r,n,a,s,!0);o("mapClicked",{lat:n,lng:a,ord:s,building:i,floor:l})}))}(a,i),{init:async()=>{!function(e){e.bus.send("clientAPI/registerCustomType",{name:"latLngOrdLocation",spec:{type:"object",props:[{name:"lat",type:"float"},{name:"lng",type:"float"},{name:"ord",type:"integer"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"latLngFloorLocation",spec:{type:"object",props:[{name:"lat",type:"float"},{name:"lng",type:"float"},{name:"floorId",type:"string"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"poiIdLocation",spec:{type:"object",props:[{name:"poiId",type:"integer",min:0}]}}),e.bus.send("clientAPI/registerCustomType",{name:"location",spec:{type:"multi",types:[{type:"poiIdLocation"},{type:"latLngOrdLocation"},{type:"latLngFloorLocation"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"viewSettings",spec:{type:"object",props:[{name:"zoom",type:"float",optional:!0},{name:"pitch",type:"float",optional:!0},{name:"bearing",type:"float",optional:!0}]}})}(a),o.forEach((e=>a.bus.send("clientAPI/registerCommand",e))),n(a),r.headless||await import("../../../_virtual/_empty_module_placeholder.js").then((e=>{e.visualCommands.forEach((e=>a.bus.send("clientAPI/registerCommand",e))),e.handleVisual(a,i)}));const e=async()=>{await a.bus.send("sdk/readyWhenYouAre"),a.bus.get("clientAPI/execute",{command:"getCommandJSON"}).then((e=>i("ready",{commandJSON:e}))),!r.headless&&a.config.uiHide&&a.config.uiHide.sidebar&&a.env.isDesktop()&&a.bus.send("map/changePadding",{padding:{left:55,right:55,top:72,bottom:22}})};r.headless?Promise.all([new Promise((e=>a.bus.monitor("venueData/navGraphLoaded",e))),new Promise((e=>a.bus.monitor("venueData/poiDataLoaded",e)))]).then(e):a.bus.on("map/mapReadyToShow",e)}}}export{r as create};
@@ -1 +1 @@
1
- import*as a from"ramda";import{getFlexSearchInstance as r}from"./utils.js";function t(t,e){const o=r({lang:e});function n(r){return Object.values(r).map((r=>{const{poiId:t,category:e="",name:o,keywords:n=[],roomId:c=""}=r,i=a.path(["dynamicData","grab","tags"],r)||[],p=n.filter(a.prop("isUserSearchable")).map(a.prop("name")),u=`${o} ${e.split(".").join(" ")} ${c} ${p.join(" ")} ${i.join(" ")}`;return[Number(t),u]}))}return o.addMatcher({"['.,]":""}),n(t).forEach((([a,r])=>o.add(a,r))),{search:function(r){const e=o.search(r);return Object.values(a.pick(e,t))},updateMultiple:function(a){n(a).forEach((([a,r])=>o.update(a,r)))}}}export default t;
1
+ import*as a from"ramda";import{getFlexSearchInstance as r}from"./utils.js";function t(t,e){const o=r({lang:e});function n(r){return Object.values(r).map((r=>{const{poiId:t,category:e="",name:o,keywords:n=[],roomId:c=""}=r,i=a.path(["dynamicData","grab","tags"],r)||[],p=n.filter(a.prop("isUserSearchable")).map(a.prop("name")),s=`${o} ${e.split(".").join(" ")} ${c} ${p.join(" ")} ${i.join(" ")}`;return[Number(t),s]}))}return o.addMatcher({"['.,]":""}),n(t).forEach((([a,r])=>o.add(a,r))),{search:function(r){const e=o.search(r);return Object.values(a.pick(e,t))},updateMultiple:function(a){n(a).forEach((([a,r])=>o.update(a,r)))}}}export{t as default};
@@ -1 +1 @@
1
- import{pipe as e,values as r,chain as t,prop as a,filter as n,pluck as o}from"ramda";import{getFlexSearchInstance as i}from"./utils.js";function d(d,s,u){const c=function(d,s){const u=function(e){return Object.values(e).map((e=>e.category)).map((e=>e.split("."))).map((e=>e[0]))}(d),c=e(r,t(a("keywords")),n(a("isUserSearchable")),o("name"))(d),m=[...u,...c],p=Array.from(new Set([...m])),l=i({lang:s,type:"typeahead"});p.forEach(((e,r)=>l.add(r,e)));return{search:e=>l.search(e).map((e=>p[e])),add:e=>{p.push(e),l.add(p.length-1,e)}}}(d,u);return{query:(e,r)=>{const t=c.search({query:e,limit:r}),a=!(e.length<3)&&t.length,n=r-t.length;return{keywords:t,pois:a?function(e,r){const t=s({query:e,limit:r}),a=s({query:e,suggest:!0,limit:r}),n=t.map((e=>e.poiId)),o=a.filter((e=>-1===n.indexOf(e.poiId)));return t.concat(o)}(e,n):[]}},addKeyword:e=>{c.add(e)}}}export default d;
1
+ import{pipe as e,values as r,chain as t,prop as a,filter as n,pluck as o}from"ramda";import{getFlexSearchInstance as i}from"./utils.js";function s(s,d,u){const c=function(s,d){const u=function(e){return Object.values(e).map((e=>e.category)).map((e=>e.split("."))).map((e=>e[0]))}(s),c=e(r,t(a("keywords")),n(a("isUserSearchable")),o("name"))(s),m=[...u,...c],p=Array.from(new Set([...m])),l=i({lang:d,type:"typeahead"});p.forEach(((e,r)=>l.add(r,e)));return{search:e=>l.search(e).map((e=>p[e])),add:e=>{p.push(e),l.add(p.length-1,e)}}}(s,u);return{query:(e,r)=>{const t=c.search({query:e,limit:r}),a=!(e.length<3)&&t.length,n=r-t.length,o=a?function(e,r){const t=d({query:e,limit:r}),a=d({query:e,suggest:!0,limit:r}),n=t.map((e=>e.poiId)),o=a.filter((e=>-1===n.indexOf(e.poiId)));return t.concat(o)}(e,n):[];return{keywords:t,pois:o}},addKeyword:e=>{c.add(e)}}}export{s as default};
@@ -1 +1 @@
1
- import*as e from"ramda";import a from"zousan";import t from"../../../src/auth/Auth.js";import{delay as n}from"../../../src/utils/funcs.js";import{getVenueDataFromUrls as s,buildStructures as u,createFetchJson as o,createFetchText as r}from"./venueLoadingUtils.js";async function i(i,l){const d=i.log.sublog("venueDataLoader");let c=new a,p=new a;const g=a=>a.defaultStructureId||e.path(["structureOrder",0],a)||e.path(["selectorOrder",0],a)||e.pipe(e.prop("structures"),Object.values,e.path([0,"id"]))(a);const v=e=>{const a=l.availableLanguages.find((a=>a.langCode===e));return a||{langCode:e,assetSuffix:""}};async function f(a){a.assetStage&&"prod"!==a.assetStage&&location.hostname;const l=a.auth?await async function(e){const a=await t(e,i);let s=null,u=0;for(;!s&&u<6;)s=await a.getToken(),u++,s||await n(500)();return s?(i.bus.send("login/userLoggedIn",{token:s}),i.bus.on("app/logout",a.logout),s):i.bus.get("login/showLogin",{auth:a})}(a.auth):null,p=o(l),f=r(l),b=await s(a,p),{accountId:m,venueId:h}=a;b.assetStage=a.assetStage,b.defaultOrdinal=b.defaultOrdinal||function(a){const t=g(a),n=Object.values(a.structures).find(e.propEq("id",t));return n.levels[n.defaultLevelId].ordinal}(b),b.structures=u(b);const y=i.i18n().language,D=v(y);return b.bareVenueId=h.slice(0,h.length-D.assetSuffix.length),b.getTranslatedContentPath=e=>`https://content.locuslabs.com/${b.category}/${e}/${h}/${m}`,b.fetchJson=p,b.fetchText=f,d.info("venueData ",b,D,y),i.config.debug&&i.env.isBrowser&&(window._venueData=b),b.queueTypes&&(b.securityQueueTypes=(()=>{const e=b.queueTypes.find((e=>"SecurityLane"===e.id));return e?e.subtypes.map((e=>e.id)):[]})()),i.bus.send("venueData/venueDataLoaded",{venueData:b}),c.resolve(b),c}function b(e){const a={id:"venueDataLoader"};e.id!==l.venueId&&(a.vid=e.id);const t=i.config.defaultLanguage||"en";return i.i18n().language!==t&&(a.lang=i.i18n().language),"prod"!==e.assetStage&&(a.stage=e.assetStage),i.bus.send("deepLinking/notifyState",a),e}i.bus.on("debugTools/fileDrop",(async({file:e,content:a})=>{if("application/json"===e.type){const e=JSON.parse(a);if(e.basemap&&e["basemap.venue"])return n=JSON.parse(a),void i.bus.send("map/replaceTheme",{theme:n});if(e.metadata&&e.metadata["mapbox:type"])return t=a,void i.bus.send("map/replaceStyle",{styleSrc:t})}var t,n}));async function m(e){const a={...e},t=await i.bus.get("poi/getAll");return Object.values(a).forEach((e=>e.filter((e=>"poi"===e.properties.aiLayer&&"Point"===e.geometry.type)).forEach((e=>{const a=t[e.properties.id];a?a.mapLabel?e.properties.text=a.mapLabel:!1!==l.copyPOINamesToMap&&(e.properties.text=function(e){let a=e.name;return l.poiMapNameXForm?(Object.keys(l.poiMapNameXForm).filter((a=>((e,a)=>e===a||0===e.indexOf(a+"."))(e.category,a))).forEach((e=>{l.poiMapNameXForm[e].forEach((e=>a=a.replace(new RegExp(e.replace),e.with)))})),a):a}(a)):d.warn(`Unknown poi in style: ${e.properties.id}`)})))),a}const h=(a,t,n,s)=>{const u=a.replace(/-[^-]*$/,""),o=u===n?"landscape-background":`ordinal: ${s.find(e.hasPath(["levels",a])).levels[a].ordinal}`;return t.map((t=>{var s,r,i;return s="properties",r={venueId:n,structureId:u,ordinalId:o,levelId:a},i=t,t=e.over(e.lensProp(s),(a=>e.mergeRight(a||{},r)),i),t=e.assoc("id",t.properties.subid,t)}))};i.bus.on("venueData/loadMap",(async()=>{c.then((async a=>{const t=await a.fetchText(a.files.style),n=await a.fetchJson(a.files.theme),s=a.files.spritesheet,u=a.files.glyphs,{id:o,bounds:r,structures:d,venueCenter:c,venueRadius:g,defaultOrdinal:v}=a,f={mapFeatures:await async function(a){return e.pipe(e.prop("structures"),e.map(e.prop("levels")),e.chain(e.keys),e.prepend(a.id),e.map((e=>a.files.geoJson.replace("${geoJsonId}",e))),e.map(a.fetchJson),e.map(e.andThen((e=>[e.id,h(e.id,e.features,a.id,a.structures)]))),(e=>Promise.all(e)),e.andThen(e.fromPairs))(a)}(a).then(m),mapStyleSource:t,mapTheme:n,badgesSpriteUrl:s,mapGlyphsUrl:u,structures:d,defaultOrdinal:v,venueBounds:{n:r.ne.lat,s:r.sw.lat,e:r.ne.lng,w:r.sw.lng},venueId:o,venueCenter:c,venueRadius:g,accountId:l.accountId,secure:void 0!==l.auth};p.resolve(f),i.bus.send("venueData/mapDataLoaded",f)}))}));const y=e=>null==e.shouldDisplay||e.shouldDisplay;i.bus.on("venueData/loadBuildingSelectorData",(()=>c.then((async a=>{const t={buildings:a.structures.filter(y).map(e.evolve({levels:e.pipe(e.values,e.sortWith([e.descend(e.prop("ordinal"))]))})),structureOrder:a.structureOrder,selectorOrder:a.selectorOrder};return i.bus.send("venueData/buildingSelectorDataLoaded",t),t})))),i.bus.on("venueData/loadNavGraph",(async()=>c.then((async e=>{const a=await e.fetchJson(e.files.nav);i.bus.send("venueData/navGraphLoaded",{navGraphData:a,structures:e.structures})})))),i.bus.on("venueData/loadPoiData",(async()=>c.then((async e=>{const a=l.useOldDataModel?e.files.poisOld||e.files.pois:e.files.pois||e.files.poisOld,t=await e.fetchJson(a);i.bus.send("venueData/poiDataLoaded",{pois:t,structures:e.structures})})))),i.bus.on("venueData/getVenueCenter",(async()=>c.then((async e=>({lat:e.venueCenter[0],lng:e.venueCenter[1],ordinal:0}))))),i.bus.on("venueData/getContentUrl",(({type:e,name:a=""})=>c.then((t=>t.files[e]+a)))),i.bus.on("venueData/getFloorIdToNameMap",(()=>c.then(e.pipe(e.prop("structures"),e.map(e.prop("levels")),e.chain(e.values),e.map(e.props(["id","name"])),e.fromPairs)))),i.bus.on("venueData/getFloorIdName",(({floorId:a})=>c.then((async t=>{const n=e.pipe(e.values,e.find(e.hasPath(["levels",a])))(t.structures);return n?{structureId:n.id,structureName:n.name,floorName:n.levels[a].name}:null}))));const D=(a,t)=>()=>c.then(e.pipe(e.prop(a),e.defaultTo(t)));i.bus.on("venueData/getVenueData",(()=>c)),i.bus.on("venueData/getVenueName",D("name")),i.bus.on("venueData/getVenueCategory",D("category")),i.bus.on("venueData/getVenueTimezone",D("tz")),i.bus.on("venueData/getAccountId",(()=>l.accountId)),i.bus.on("venueData/getVenueId",D("id")),i.bus.on("venueData/getPositioningSupported",D("positioningSupported")),i.bus.on("venueData/getStructures",D("structures")),i.bus.on("venueData/loadNewVenue",(async({venueId:e,accountId:t,assetStage:n=l.assetStage})=>{c.reject(new Error("loadNewVenue called - previous loading ignored")),p.reject(new Error("loadNewVenue called - previous loading ignored")),c=new a,p=new a,f({...l,venueId:e,accountId:t,assetStage:n}).then(b)})),i.bus.on("venueData/changeVenueLanguage",(async({lang:e})=>c.then((async a=>{const t=v(e),n=`${a.bareVenueId}${t.assetSuffix}`;i.bus.send("venueData/loadNewVenue",{accountId:l.accountId,venueId:n})})))),i.bus.on("venueData/getPoiImageUrl",(({imageName:e,size:a})=>`https://img.locuslabs.com/resize/${l.accountId}/${a}cc/poi/${e}`)),i.bus.on("venueData/getDistributionId",(()=>c.then((e=>`${e.bareVenueId}-${l.accountId}`)))),i.bus.on("venueData/getCustomKeywords",(()=>c.then((e=>{const a=l.useOldDataModel&&e.files.searchOld||e.files.search;return e.fetchJson(a)})))),i.bus.on("venueData/isGrabEnabled",D("enableGrab")),i.bus.on("venueData/getGrabPoiIds",D("grabPoiIds",[])),i.bus.on("venueData/getAssetsTimestamp",D("version")),i.bus.on("venueData/getTranslatedFloorId",(async({floorId:e})=>c.then((a=>{const t=i.i18n().language,n=v(t);return`${a.bareVenueId}${n.assetSuffix}-${e.split("-").slice(1).join("-")}`})))),i.bus.on("venueData/getQueueTypes",(()=>c.then((e=>{const a=["tsapre","clear","globalEntry"];return e.queueTypes?e.queueTypes.reduce(((e,t)=>{const{id:n,subtypes:s}=t,u=s.map((e=>{const t=a.includes(e.id)&&`security-logo-${e.id.toLowerCase()}`;return{...e,imageId:t}}));return e[n]=u,e}),{}):{}}))));return{init:async()=>{const e=l.deepLinkProps||{},a=e.vid||l.venueId,t=l.useDynamicUrlParams&&e.stage?e.stage:l.assetStage,n="alpha"===t?"A1VPTJKREFJWX5":l.accountId;f({...l,venueId:a,accountId:n,assetStage:t}).then(b)},runTest:async({testRoutine:e,reset:t=!1,venueData:n=null})=>{let s,u;return(t||n)&&(c=new a,p=new a),n&&(c=a.resolve(n)),await e(),c.v&&(s=await c),p.v&&(u=await p),{venueDataObj:s,mapDataObj:u}},internal:{getDefaultStructureId:g}}}export{i as create};
1
+ import*as e from"ramda";import a from"zousan";import t from"../../../src/auth/Auth.js";import{delay as n}from"../../../src/utils/funcs.js";import{getVenueDataFromUrls as s,buildStructures as u,createFetchJson as o,createFetchText as r}from"./venueLoadingUtils.js";async function i(i,l){const d=i.log.sublog("venueDataLoader");let c=new a,p=new a;const g=a=>a.defaultStructureId||e.path(["structureOrder",0],a)||e.path(["selectorOrder",0],a)||e.pipe(e.prop("structures"),Object.values,e.path([0,"id"]))(a);const v=e=>{const a=l.availableLanguages.find((a=>a.langCode===e));return a||{langCode:e,assetSuffix:""}};async function f(a){a.assetStage&&"prod"!==a.assetStage&&location.hostname;const l=a.auth?await async function(e){const a=await t(e,i);let s=null,u=0;for(;!s&&u<6;)s=await a.getToken(),u++,s||await n(500)();return s?(i.bus.send("login/userLoggedIn",{token:s}),i.bus.on("app/logout",a.logout),s):i.bus.get("login/showLogin",{auth:a})}(a.auth):null,p=o(l),f=r(l),b=await s(a,p),{accountId:m,venueId:h}=a;b.assetStage=a.assetStage,b.defaultOrdinal=b.defaultOrdinal||function(a){const t=g(a),n=Object.values(a.structures).find(e.propEq("id",t));return n.levels[n.defaultLevelId].ordinal}(b),b.structures=u(b);const y=i.i18n().language,D=v(y);return b.bareVenueId=h.slice(0,h.length-D.assetSuffix.length),b.getTranslatedContentPath=e=>`https://content.locuslabs.com/${b.category}/${e}/${h}/${m}`,b.fetchJson=p,b.fetchText=f,d.info("venueData ",b,D,y),i.config.debug&&i.env.isBrowser&&(window._venueData=b),b.queueTypes&&(b.securityQueueTypes=(()=>{const e=b.queueTypes.find((e=>"SecurityLane"===e.id));return e?e.subtypes.map((e=>e.id)):[]})()),i.bus.send("venueData/venueDataLoaded",{venueData:b}),c.resolve(b),c}function b(e){const a={id:"venueDataLoader"};e.id!==l.venueId&&(a.vid=e.id);const t=i.config.defaultLanguage||"en";return i.i18n().language!==t&&(a.lang=i.i18n().language),"prod"!==e.assetStage&&(a.stage=e.assetStage),i.bus.send("deepLinking/notifyState",a),e}i.bus.on("debugTools/fileDrop",(async({file:e,content:a})=>{if("application/json"===e.type){const e=JSON.parse(a);if(e.basemap&&e["basemap.venue"])return n=JSON.parse(a),void i.bus.send("map/replaceTheme",{theme:n});if(e.metadata&&e.metadata["mapbox:type"])return t=a,void i.bus.send("map/replaceStyle",{styleSrc:t})}var t,n}));async function m(e){const a={...e},t=await i.bus.get("poi/getAll");return Object.values(a).forEach((e=>e.filter((e=>"poi"===e.properties.aiLayer&&"Point"===e.geometry.type)).forEach((e=>{const a=t[e.properties.id];a?a.mapLabel?e.properties.text=a.mapLabel:!1!==l.copyPOINamesToMap&&(e.properties.text=function(e){let a=e.name;return l.poiMapNameXForm?(Object.keys(l.poiMapNameXForm).filter((a=>((e,a)=>e===a||0===e.indexOf(a+"."))(e.category,a))).forEach((e=>{l.poiMapNameXForm[e].forEach((e=>a=a.replace(new RegExp(e.replace),e.with)))})),a):a}(a)):d.warn(`Unknown poi in style: ${e.properties.id}`)})))),a}const h=(a,t,n,s)=>{const u=a.replace(/-[^-]*$/,""),o=u===n?"landscape-background":`ordinal: ${s.find(e.hasPath(["levels",a])).levels[a].ordinal}`;return t.map((t=>{var s,r,i;return s="properties",r={venueId:n,structureId:u,ordinalId:o,levelId:a},i=t,t=e.over(e.lensProp(s),(a=>e.mergeRight(a||{},r)),i),t=e.assoc("id",t.properties.subid,t)}))};i.bus.on("venueData/loadMap",(async()=>{c.then((async a=>{const t=await a.fetchText(a.files.style),n=await a.fetchJson(a.files.theme),s=a.files.spritesheet,u=a.files.glyphs,{id:o,bounds:r,structures:d,venueCenter:c,venueRadius:g,defaultOrdinal:v}=a,f=await async function(a){return e.pipe(e.prop("structures"),e.map(e.prop("levels")),e.chain(e.keys),e.prepend(a.id),e.map((e=>a.files.geoJson.replace("${geoJsonId}",e))),e.map(a.fetchJson),e.map(e.andThen((e=>[e.id,h(e.id,e.features,a.id,a.structures)]))),(e=>Promise.all(e)),e.andThen(e.fromPairs))(a)}(a).then(m),b={mapFeatures:f,mapStyleSource:t,mapTheme:n,badgesSpriteUrl:s,mapGlyphsUrl:u,structures:d,defaultOrdinal:v,venueBounds:{n:r.ne.lat,s:r.sw.lat,e:r.ne.lng,w:r.sw.lng},venueId:o,venueCenter:c,venueRadius:g,accountId:l.accountId,secure:void 0!==l.auth};p.resolve(b),i.bus.send("venueData/mapDataLoaded",b)}))}));const y=e=>null==e.shouldDisplay||e.shouldDisplay;i.bus.on("venueData/loadBuildingSelectorData",(()=>c.then((async a=>{const t={buildings:a.structures.filter(y).map(e.evolve({levels:e.pipe(e.values,e.sortWith([e.descend(e.prop("ordinal"))]))})),structureOrder:a.structureOrder,selectorOrder:a.selectorOrder};return i.bus.send("venueData/buildingSelectorDataLoaded",t),t})))),i.bus.on("venueData/loadNavGraph",(async()=>c.then((async e=>{const a=await e.fetchJson(e.files.nav);i.bus.send("venueData/navGraphLoaded",{navGraphData:a,structures:e.structures})})))),i.bus.on("venueData/loadPoiData",(async()=>c.then((async e=>{const a=l.useOldDataModel?e.files.poisOld||e.files.pois:e.files.pois||e.files.poisOld,t=await e.fetchJson(a);i.bus.send("venueData/poiDataLoaded",{pois:t,structures:e.structures})})))),i.bus.on("venueData/getVenueCenter",(async()=>c.then((async e=>({lat:e.venueCenter[0],lng:e.venueCenter[1],ordinal:0}))))),i.bus.on("venueData/getContentUrl",(({type:e,name:a=""})=>c.then((t=>t.files[e]+a)))),i.bus.on("venueData/getFloorIdToNameMap",(()=>c.then(e.pipe(e.prop("structures"),e.map(e.prop("levels")),e.chain(e.values),e.map(e.props(["id","name"])),e.fromPairs)))),i.bus.on("venueData/getFloorIdName",(({floorId:a})=>c.then((async t=>{const n=e.pipe(e.values,e.find(e.hasPath(["levels",a])))(t.structures);return n?{structureId:n.id,structureName:n.name,floorName:n.levels[a].name}:null}))));const D=(a,t)=>()=>c.then(e.pipe(e.prop(a),e.defaultTo(t)));i.bus.on("venueData/getVenueData",(()=>c)),i.bus.on("venueData/getVenueName",D("name")),i.bus.on("venueData/getVenueCategory",D("category")),i.bus.on("venueData/getVenueTimezone",D("tz")),i.bus.on("venueData/getAccountId",(()=>l.accountId)),i.bus.on("venueData/getVenueId",D("id")),i.bus.on("venueData/getPositioningSupported",D("positioningSupported")),i.bus.on("venueData/getStructures",D("structures")),i.bus.on("venueData/loadNewVenue",(async({venueId:e,accountId:t,assetStage:n=l.assetStage})=>{c.reject(new Error("loadNewVenue called - previous loading ignored")),p.reject(new Error("loadNewVenue called - previous loading ignored")),c=new a,p=new a,f({...l,venueId:e,accountId:t,assetStage:n}).then(b)})),i.bus.on("venueData/changeVenueLanguage",(async({lang:e})=>c.then((async a=>{const t=v(e),n=`${a.bareVenueId}${t.assetSuffix}`;i.bus.send("venueData/loadNewVenue",{accountId:l.accountId,venueId:n})})))),i.bus.on("venueData/getPoiImageUrl",(({imageName:e,size:a})=>`https://img.locuslabs.com/resize/${l.accountId}/${a}cc/poi/${e}`)),i.bus.on("venueData/getDistributionId",(()=>c.then((e=>`${e.bareVenueId}-${l.accountId}`)))),i.bus.on("venueData/getCustomKeywords",(()=>c.then((e=>{const a=l.useOldDataModel&&e.files.searchOld||e.files.search;return e.fetchJson(a)})))),i.bus.on("venueData/isGrabEnabled",D("enableGrab")),i.bus.on("venueData/getGrabPoiIds",D("grabPoiIds",[])),i.bus.on("venueData/getAssetsTimestamp",D("version")),i.bus.on("venueData/getTranslatedFloorId",(async({floorId:e})=>c.then((a=>{const t=i.i18n().language,n=v(t);return`${a.bareVenueId}${n.assetSuffix}-${e.split("-").slice(1).join("-")}`})))),i.bus.on("venueData/getQueueTypes",(()=>c.then((e=>{const a=["tsapre","clear","globalEntry"];return e.queueTypes?e.queueTypes.reduce(((e,t)=>{const{id:n,subtypes:s}=t,u=s.map((e=>{const t=a.includes(e.id)&&`security-logo-${e.id.toLowerCase()}`;return{...e,imageId:t}}));return e[n]=u,e}),{}):{}}))));return{init:async()=>{const e=l.deepLinkProps||{},a=e.vid||l.venueId,t=l.useDynamicUrlParams&&e.stage?e.stage:l.assetStage,n="alpha"===t?"A1VPTJKREFJWX5":l.accountId;f({...l,venueId:a,accountId:n,assetStage:t}).then(b)},runTest:async({testRoutine:e,reset:t=!1,venueData:n=null})=>{let s,u;return(t||n)&&(c=new a,p=new a),n&&(c=a.resolve(n)),await e(),c.v&&(s=await c),p.v&&(u=await p),{venueDataObj:s,mapDataObj:u}},internal:{getDefaultStructureId:g}}}export{i as create};
@@ -1 +1 @@
1
- import*as t from"ramda";import{findBoundsOfCoordinates as e}from"../../../src/utils/bounds.js";const s=async(t,e)=>t?fetch(e,{headers:{Authorization:t}}):fetch(e),o=t=>e=>s(t,e).then((t=>t.json())),a=t=>e=>s(t,e).then((t=>t.text())),n=t=>`https://api.content.locuslabs.com/${t}`,c=(e,s,o,a,c)=>t.mapObjIndexed(((t,s)=>((t,e,s,o,a,c)=>"theme"===c||"style"===c?`${n(s)}/${e}/${c}/${a}/${o}/${c}.json`:t.replace(/https:\/\/content.locuslabs.com/gi,n(s)))(t,e,o,a,c,s)),s),r=async(t,e)=>{const s={alpha:"alpha-a.locuslabs.com",beta:"beta-a.locuslabs.com",gamma:"gamma-a.locuslabs.com",prod:"a.locuslabs.com"},{assetStage:o,venueId:a,accountId:n,formatVersion:r}=t,u=`https://${s[o]||s.prod}/accounts/${n}`,l=r||"v5",i=await e(`${u}/${l}.json`);if(!i[a])throw Error(`Attempt to access venue ${a} which is not within venue list: ${Object.keys(i)}`);const p=i[a].files,m=(await e(p.venueData))[a];m.venueList=i;const h=(t=>{const e=t.deepLinkProps?t.deepLinkProps.contentStage:null;return"alpha"===e||"beta"===e||"prod"===e?e:null})(t);return m.files=h?c(m.category,p,h,n,a):p,m},u=t=>{const{structureOrder:s,structures:o}=t;return s.map((t=>{const s=o[t],a=e(s.boundsPolygon);return{...s,bounds:a}}))};export{u as buildStructures,o as createFetchJson,a as createFetchText,r as getVenueDataFromUrls};
1
+ import*as t from"ramda";import{findBoundsOfCoordinates as a}from"../../../src/utils/bounds.js";import{global as e}from"../../../src/utils/configUtils.js";const s=async(t,a)=>t?fetch(a,{headers:{Authorization:t}}):fetch(a),o=t=>a=>s(t,a).then((t=>t.json())),c=t=>a=>s(t,a).then((t=>t.text())),n=t=>`https://api.content.locuslabs.com/${t}`,r=(a,e,s,o,c)=>t.mapObjIndexed(((t,e)=>((t,a,e,s,o,c)=>"theme"===c||"style"===c?`${n(e)}/${a}/${c}/${o}/${s}/${c}.json`:t.replace(/https:\/\/content.locuslabs.com/gi,n(e)))(t,a,s,o,c,e)),e),u=async(t,a)=>{const s={alpha:"alpha-a.locuslabs.com",beta:"beta-a.locuslabs.com",gamma:"gamma-a.locuslabs.com",prod:"a.locuslabs.com"},{assetStage:o,venueId:c,accountId:n,formatVersion:u}=t,l=`https://${s[o]||s.prod}/accounts/${n}`,i=u||"v5",h=t.dataFetch&&e[t.dataFetch]&&e[t.dataFetch].getFiles?await e[t.dataFetch].getFiles(t):await a(`${l}/${i}.json`);if(!h[c])throw Error(`Attempt to access venue ${c} which is not within venue list: ${Object.keys(h)}`);const d=h[c].files,m=(t.dataFetch&&e[t.dataFetch]&&e[t.dataFetch].getVenueData?await e[t.dataFetch].getVenueData(t):await a(d.venueData))[c];m.venueList=h;const p=(t=>{const a=t.deepLinkProps?t.deepLinkProps.contentStage:null;return"alpha"===a||"beta"===a||"prod"===a?a:null})(t);return m.files=p?r(m.category,d,p,n,c):d,m},l=t=>{const{structureOrder:e,structures:s}=t;return e.map((t=>{const e=s[t],o=a(e.boundsPolygon);return{...e,bounds:o}}))};export{l as buildStructures,o as createFetchJson,c as createFetchText,u as getVenueDataFromUrls};
@@ -1 +1 @@
1
- export default class{constructor(){this.heap=[null],this.heapMap={}}offerWithPriority(h,i){const t=this.heap.push([h,i])-1;this.heapMap[h]=t,this.bubble(t)}raisePriority(h,i){const t=this.heapMap[h];this.heap[t][1]=i,this.bubble(t)}poll(){if(1===this.heap.length)return null;if(2===this.heap.length){const h=this.heap.pop()[0];return delete this.heapMap[h],h}const h=this.heap[1][0];return delete this.heapMap[h],this.heap[1]=this.heap.pop(),this.heapMap[this.heap[1][0]]=1,this.sink(1),h}isEmpty(){return 1===this.heap.length}bubble(h){for(;h>1;){const i=h>>1;if(!this.isHigherPriority(h,i))break;this.swap(h,i),h=i}}sink(h){for(;2*h<this.heap.length;){const i=void 0!==this.heap[2*h+1]&&this.isHigherPriority(2*h+1,2*h)?2*h+1:2*h;if(this.isHigherPriority(h,i))break;this.swap(h,i),h=i}}swap(h,i){this.heapMap[this.heap[h][0]]=i,this.heapMap[this.heap[i][0]]=h;const t=this.heap[h];this.heap[h]=this.heap[i],this.heap[i]=t}isHigherPriority(h,i){return this.heap[h][1]<this.heap[i][1]}}
1
+ class h{constructor(){this.heap=[null],this.heapMap={}}offerWithPriority(h,i){const t=this.heap.push([h,i])-1;this.heapMap[h]=t,this.bubble(t)}raisePriority(h,i){const t=this.heapMap[h];this.heap[t][1]=i,this.bubble(t)}poll(){if(1===this.heap.length)return null;if(2===this.heap.length){const h=this.heap.pop()[0];return delete this.heapMap[h],h}const h=this.heap[1][0];return delete this.heapMap[h],this.heap[1]=this.heap.pop(),this.heapMap[this.heap[1][0]]=1,this.sink(1),h}isEmpty(){return 1===this.heap.length}bubble(h){for(;h>1;){const i=h>>1;if(!this.isHigherPriority(h,i))break;this.swap(h,i),h=i}}sink(h){for(;2*h<this.heap.length;){const i=void 0!==this.heap[2*h+1]&&this.isHigherPriority(2*h+1,2*h)?2*h+1:2*h;if(this.isHigherPriority(h,i))break;this.swap(h,i),h=i}}swap(h,i){this.heapMap[this.heap[h][0]]=i,this.heapMap[this.heap[i][0]]=h;const t=this.heap[h];this.heap[h]=this.heap[i],this.heap[i]=t}isHigherPriority(h,i){return this.heap[h][1]<this.heap[i][1]}}export{h as default};
@@ -1 +1 @@
1
- export default{START:"wayfinding.start",END:"wayfinding.end",WALKING_TO_SECURITY_CHECKPOINT:"wayfinding.security",ELEVATOR:"wayfinding.elevator",ELEVATOR_UP:"wayfinding.elevator.up",ELEVATOR_DOWN:"wayfinding.elevator.down",STAIRS:"wayfinding.stairs",STAIRS_UP:"wayfinding.stairs.up",STAIRS_DOWN:"wayfinding.stairs.down",ESCALATOR:"wayfinding.escalator",ESCALATOR_UP:"wayfinding.escalator.up",ESCALATOR_DOWN:"wayfinding.escalator.down",WALK:"wayfinding.movingwalkway",WALK_DOWN:"walk.movingwalkway",WALK_UP:"walk.movingwalkway",TRAIN:"wayfinding.train",TRAIN_UP:"wayfinding.train.up",TRAIN_DOWN:"wayfinding.train.down",BUS:"wayfinding.bus",BUS_UP:"wayfinding.bus.up",BUS_DOWN:"wayfinding.bus.down",SECURITY_CHECKPOINT:"wayfinding.security",RAMP:"wayfinding.ramp",RAMP_UP:"wayfinding.ramp.up",RAMP_DOWN:"wayfinding.ramp.down"};
1
+ const n={START:"wayfinding.start",END:"wayfinding.end",WALKING_TO_SECURITY_CHECKPOINT:"wayfinding.security",ELEVATOR:"wayfinding.elevator",ELEVATOR_UP:"wayfinding.elevator.up",ELEVATOR_DOWN:"wayfinding.elevator.down",STAIRS:"wayfinding.stairs",STAIRS_UP:"wayfinding.stairs.up",STAIRS_DOWN:"wayfinding.stairs.down",ESCALATOR:"wayfinding.escalator",ESCALATOR_UP:"wayfinding.escalator.up",ESCALATOR_DOWN:"wayfinding.escalator.down",WALK:"wayfinding.movingwalkway",WALK_DOWN:"walk.movingwalkway",WALK_UP:"walk.movingwalkway",TRAIN:"wayfinding.train",TRAIN_UP:"wayfinding.train.up",TRAIN_DOWN:"wayfinding.train.down",BUS:"wayfinding.bus",BUS_UP:"wayfinding.bus.up",BUS_DOWN:"wayfinding.bus.down",SECURITY_CHECKPOINT:"wayfinding.security",RAMP:"wayfinding.ramp",RAMP_UP:"wayfinding.ramp.up",RAMP_DOWN:"wayfinding.ramp.down"};export{n as default};
@@ -1 +1 @@
1
- export default{START:"start",WALKING_TO_SECURITY_CHECKPOINT:"walking to security checkpoint",WALKING_TO_PORTAL:"walking to portal",WALKING_TO_END:"walking to end",ELEVATOR:"elevator",ELEVATOR_UP:"elevator.up",ELEVATOR_DOWN:"elevator.down",STAIRS:"stairs",STAIRS_UP:"stairs.up",STAIRS_DOWN:"stairs.down",ESCALATOR:"escalator",ESCALATOR_UP:"escalator.up",ESCALATOR_DOWN:"escalator.down",WALK:"walk",WALK_DOWN:"walk.down",WALK_UP:"walk.up",TRAIN:"train",TRAIN_UP:"train.up",TRAIN_DOWN:"train.down",BUS:"bus",BUS_UP:"bus.up",BUS_DOWN:"bus.down",SECURITY_CHECKPOINT:"enduring security checkpoint",RAMP:"ramp",RAMP_UP:"ramp.up",RAMP_DOWN:"ramp.down"};
1
+ const a={START:"start",WALKING_TO_SECURITY_CHECKPOINT:"walking to security checkpoint",WALKING_TO_PORTAL:"walking to portal",WALKING_TO_END:"walking to end",ELEVATOR:"elevator",ELEVATOR_UP:"elevator.up",ELEVATOR_DOWN:"elevator.down",STAIRS:"stairs",STAIRS_UP:"stairs.up",STAIRS_DOWN:"stairs.down",ESCALATOR:"escalator",ESCALATOR_UP:"escalator.up",ESCALATOR_DOWN:"escalator.down",WALK:"walk",WALK_DOWN:"walk.down",WALK_UP:"walk.up",TRAIN:"train",TRAIN_UP:"train.up",TRAIN_DOWN:"train.down",BUS:"bus",BUS_UP:"bus.up",BUS_DOWN:"bus.down",SECURITY_CHECKPOINT:"enduring security checkpoint",RAMP:"ramp",RAMP_UP:"ramp.up",RAMP_DOWN:"ramp.down"};export{a as default};
@@ -1 +1 @@
1
- import{compose as e,not as t,includes as r,__ as a,toLower as n,prop as s,find as c,drop as u,last as i,propEq as T}from"ramda";import{findBoundsOfWaypoints as o}from"../../../src/utils/bounds.js";import A from"./segmentBadges.js";import _ from"./segmentCategories.js";function R(e,t="",r="",a,n,c={}){return e.map(((u,T)=>{const R=N("securityWaitTimes")(u.waypoints),L=R&&!R.isTemporarilyClosed?R.queueTime:Math.round(1===(W=u.waypoints).length?W[0].eta:W.map(s("eta")).slice(1).reduce(((e,t)=>e+t),0));var W;const y=Math.round(function(e){return 1===e.length?e[0].distance:e.map((e=>e.distance)).slice(1).reduce(((e,t)=>e+t),0)}(u.waypoints)),I=function(e){switch(e){case _.START:return A.START;case _.WALKING_TO_END:return A.END;case _.ELEVATOR:return A.ELEVATOR;case _.ELEVATOR_UP:return A.ELEVATOR_UP;case _.ELEVATOR_DOWN:return A.ELEVATOR_DOWN;case _.STAIRS:return A.STAIRS;case _.STAIRS_UP:return A.STAIRS_UP;case _.STAIRS_DOWN:return A.STAIRS_DOWN;case _.ESCALATOR:return A.ESCALATOR;case _.ESCALATOR_UP:return A.ESCALATOR_UP;case _.ESCALATOR_DOWN:return A.ESCALATOR_DOWN;case _.WALKING_TO_PORTAL:case _.WALK:case _.WALK_DOWN:case _.WALK_UP:return A.WALK;case _.TRAIN:return A.TRAIN;case _.TRAIN_UP:return A.TRAIN_UP;case _.TRAIN_DOWN:return A.TRAIN_DOWN;case _.BUS:return A.BUS;case _.BUS_UP:return A.BUS_UP;case _.BUS_DOWN:return A.BUS_DOWN;case _.SECURITY_CHECKPOINT:return A.SECURITY_CHECKPOINT;case _.RAMP:return A.RAMP;case _.RAMP_UP:return A.RAMP_UP;case _.RAMP_DOWN:return A.RAMP_DOWN;default:return A.WALK}}(u.segmentCategory),m=function(e,t){let r;switch(e){case _.START:r=0;break;case _.WALKING_TO_END:r=t.length-1;break;case _.WALKING_TO_PORTAL:r=Math.min(t.length-1,Math.ceil(t.length/2));break;default:r=t.length-1}return t[r].position}(u.segmentCategory,u.waypoints),p={primaryText:function(e,t,r,a,n,s){const c=e[t];switch(c.segmentCategory){case _.START:return O(c.waypoints[0].position,r);case _.WALKING_TO_END:return O(c.waypoints[c.waypoints.length-1].position,a);case _.WALKING_TO_SECURITY_CHECKPOINT:case _.WALKING_TO_PORTAL:return s(`wayfinder:${e[t+1].type}`);case _.SECURITY_CHECKPOINT:case _.ELEVATOR:case _.ELEVATOR_DOWN:case _.ELEVATOR_UP:case _.ESCALATOR:case _.ESCALATOR_DOWN:case _.ESCALATOR_UP:case _.STAIRS:case _.STAIRS_DOWN:case _.STAIRS_UP:return function(e,t){return t[i(e.waypoints).position.floorId]}(c,n);default:return s(`wayfinder:${c.type}`)}}(e,T,t,r,a,n),secondaryText:function(e,t,r,a){const n=S(t,a);switch(e.segmentCategory){case _.START:return a("wayfinder:Begin route at");case _.ELEVATOR:return a("wayfinder:Take elevator to");case _.ELEVATOR_UP:return a("wayfinder:Take elevator up to");case _.ELEVATOR_DOWN:return a("wayfinder:Take elevator down to");case _.STAIRS:return a("wayfinder:Take stairs to");case _.STAIRS_UP:return a("wayfinder:Take stairs up to");case _.STAIRS_DOWN:return a("wayfinder:Take stairs down to");case _.ESCALATOR:return a("wayfinder:Take escalator to");case _.ESCALATOR_UP:return a("wayfinder:Take escalator up to");case _.ESCALATOR_DOWN:return a("wayfinder:Take escalator down to");case _.WALK:case _.WALKING_TO_SECURITY_CHECKPOINT:case _.WALKING_TO_PORTAL:case _.WALKING_TO_END:return n("Walk <1 minute to","Walk xx minute to");case _.WALK_DOWN:return n("Walk <1 minute down to","Walk xx minute down to");case _.WALK_UP:return n("Walk <1 minute up to","Walk xx minute up to");case _.TRAIN:return n("Take train <1 minute","Take train xx minute");case _.BUS:return n("Take bus <1 minute","Take bus xx minute");case _.SECURITY_CHECKPOINT:return r?a("wayfinder:Through _security_ to",{name:r}):a("wayfinder:Through security to");case _.RAMP:return a("wayfinder:Take ramp to");case _.RAMP_UP:return a("wayfinder:Take ramp up to");case _.RAMP_DOWN:return a("wayfinder:Take ramp down to");default:return""}}(u,L,d(c,u.waypoints),n),icon:I,animationAnchor:m,eta:L,distance:y,bounds:o(u.waypoints),isAccessible:E(u),securityWaitTimes:R};return u.poiId&&(p.poiId=u.poiId),p}))}function O(e,t){return e.name?e.name:t}const S=(e,t)=>(r,a)=>0===e?t("wayfinder:"+r):t("wayfinder:"+a,{count:e}),E=e(t,r(a,["escalator","stairs"]),n,s("type")),d=(e,t)=>{const r=N("securityLane")(t);if(!r)return;const a=s(r.type,e),n=c(T("id",r.id),a);return s("displayText",n)},N=t=>e(s(t),c(s(t)),u(1));export default R;
1
+ import{compose as e,not as t,includes as r,__ as a,toLower as n,prop as s,find as c,drop as u,last as i,propEq as T}from"ramda";import{findBoundsOfWaypoints as o}from"../../../src/utils/bounds.js";import A from"./segmentBadges.js";import _ from"./segmentCategories.js";function R(e,t="",r="",a,n,c={}){return e.map(((u,T)=>{const R=N("securityWaitTimes")(u.waypoints),L=R&&!R.isTemporarilyClosed?R.queueTime:Math.round(1===(W=u.waypoints).length?W[0].eta:W.map(s("eta")).slice(1).reduce(((e,t)=>e+t),0));var W;const y=Math.round(function(e){return 1===e.length?e[0].distance:e.map((e=>e.distance)).slice(1).reduce(((e,t)=>e+t),0)}(u.waypoints)),I=function(e){switch(e){case _.START:return A.START;case _.WALKING_TO_END:return A.END;case _.ELEVATOR:return A.ELEVATOR;case _.ELEVATOR_UP:return A.ELEVATOR_UP;case _.ELEVATOR_DOWN:return A.ELEVATOR_DOWN;case _.STAIRS:return A.STAIRS;case _.STAIRS_UP:return A.STAIRS_UP;case _.STAIRS_DOWN:return A.STAIRS_DOWN;case _.ESCALATOR:return A.ESCALATOR;case _.ESCALATOR_UP:return A.ESCALATOR_UP;case _.ESCALATOR_DOWN:return A.ESCALATOR_DOWN;case _.WALKING_TO_PORTAL:case _.WALK:case _.WALK_DOWN:case _.WALK_UP:return A.WALK;case _.TRAIN:return A.TRAIN;case _.TRAIN_UP:return A.TRAIN_UP;case _.TRAIN_DOWN:return A.TRAIN_DOWN;case _.BUS:return A.BUS;case _.BUS_UP:return A.BUS_UP;case _.BUS_DOWN:return A.BUS_DOWN;case _.SECURITY_CHECKPOINT:return A.SECURITY_CHECKPOINT;case _.RAMP:return A.RAMP;case _.RAMP_UP:return A.RAMP_UP;case _.RAMP_DOWN:return A.RAMP_DOWN;default:return A.WALK}}(u.segmentCategory),m=function(e,t){let r;switch(e){case _.START:r=0;break;case _.WALKING_TO_END:r=t.length-1;break;case _.WALKING_TO_PORTAL:r=Math.min(t.length-1,Math.ceil(t.length/2));break;default:r=t.length-1}return t[r].position}(u.segmentCategory,u.waypoints),p=function(e,t,r,a,n,s){const c=e[t];switch(c.segmentCategory){case _.START:return O(c.waypoints[0].position,r);case _.WALKING_TO_END:return O(c.waypoints[c.waypoints.length-1].position,a);case _.WALKING_TO_SECURITY_CHECKPOINT:case _.WALKING_TO_PORTAL:return s(`wayfinder:${e[t+1].type}`);case _.SECURITY_CHECKPOINT:case _.ELEVATOR:case _.ELEVATOR_DOWN:case _.ELEVATOR_UP:case _.ESCALATOR:case _.ESCALATOR_DOWN:case _.ESCALATOR_UP:case _.STAIRS:case _.STAIRS_DOWN:case _.STAIRS_UP:return function(e,t){return t[i(e.waypoints).position.floorId]}(c,n);default:return s(`wayfinder:${c.type}`)}}(e,T,t,r,a,n),P=function(e,t,r,a){const n=S(t,a);switch(e.segmentCategory){case _.START:return a("wayfinder:Begin route at");case _.ELEVATOR:return a("wayfinder:Take elevator to");case _.ELEVATOR_UP:return a("wayfinder:Take elevator up to");case _.ELEVATOR_DOWN:return a("wayfinder:Take elevator down to");case _.STAIRS:return a("wayfinder:Take stairs to");case _.STAIRS_UP:return a("wayfinder:Take stairs up to");case _.STAIRS_DOWN:return a("wayfinder:Take stairs down to");case _.ESCALATOR:return a("wayfinder:Take escalator to");case _.ESCALATOR_UP:return a("wayfinder:Take escalator up to");case _.ESCALATOR_DOWN:return a("wayfinder:Take escalator down to");case _.WALK:case _.WALKING_TO_SECURITY_CHECKPOINT:case _.WALKING_TO_PORTAL:case _.WALKING_TO_END:return n("Walk <1 minute to","Walk xx minute to");case _.WALK_DOWN:return n("Walk <1 minute down to","Walk xx minute down to");case _.WALK_UP:return n("Walk <1 minute up to","Walk xx minute up to");case _.TRAIN:return n("Take train <1 minute","Take train xx minute");case _.BUS:return n("Take bus <1 minute","Take bus xx minute");case _.SECURITY_CHECKPOINT:return r?a("wayfinder:Through _security_ to",{name:r}):a("wayfinder:Through security to");case _.RAMP:return a("wayfinder:Take ramp to");case _.RAMP_UP:return a("wayfinder:Take ramp up to");case _.RAMP_DOWN:return a("wayfinder:Take ramp down to");default:return""}}(u,L,d(c,u.waypoints),n),w={primaryText:p,secondaryText:P,icon:I,animationAnchor:m,eta:L,distance:y,bounds:o(u.waypoints),isAccessible:E(u),securityWaitTimes:R};return u.poiId&&(w.poiId=u.poiId),w}))}function O(e,t){return e.name?e.name:t}const S=(e,t)=>(r,a)=>0===e?t("wayfinder:"+r):t("wayfinder:"+a,{count:e}),E=e(t,r(a,["escalator","stairs"]),n,s("type")),d=(e,t)=>{const r=N("securityLane")(t);if(!r)return;const a=s(r.type,e),n=c(T("id",r.id),a);return s("displayText",n)},N=t=>e(s(t),c(s(t)),u(1));export{R as default};
package/lib/src/app.js CHANGED
@@ -1 +1 @@
1
- import e from"IObject";import t from"query-string";import{map as n,mergeDeepRight as o}from"ramda";import i from"zousan-plus";import r from"../package.json.js";import a from"./debugTools.js";import{buildEnv as s}from"./env.js";import{create as l}from"./extModules/bustle.js";import{initLog as u}from"./extModules/log.js";import g from"./utils/i18n.js";async function c(e,t,n){let o=t;if(o.includes("/")){const e=o.split("/");o=e[e.length-1]}return void 0!==n.active&&!1===n.active?(e.log.info(`Plugin ${t} explicitly deativated`),null):import(`../plugins/${t}/src/${o}.js`).then((o=>(e.log.info(`Creating plugin ${t}`),o.create(e,n))))}async function p(e,t){let n={};const i=await Promise.all(t.map((e=>import(`./configs/${e}.json`))));for(const e of i){let t=e.default;t=t.extends?await p(t,t.extends):t,n=o(n,t)}return n=o(n,e),n}const d=e=>t=>import(`./configs/postproc-${e}.js`).then((e=>e.process(t)));async function m(o){const m=Object.create(null);let f=o.extends?await p(o,o.extends):o;f.plugins.monitoring&&import("../_virtual/_empty_module_placeholder").then((e=>e.activate(f))),f=await(async e=>e.configPostProc?i.series(e,...e.configPostProc.map(d)):e)(f);const w=(e=>{const n=e.supportedLanguages||["ar","en","es","fr","ja","ko","zh-Hans","zh-Hant"];if("undefined"!=typeof window){let e=t.parse(location.search).lang||navigator.language;for(;e;){if(e&&n.includes(e))return e;e=e.substring(0,e.lastIndexOf("-"))}}return e.defaultLanguage||"en"})(f),y=await g(w,f.debug);m.i18n=()=>y,m.gt=()=>y.t.bind(y),m.config=f,m.plugins=new e;const h="undefined"!=typeof window,b=u("web-engine",{enabled:!!f.debug,isBrowser:h,color:"cyan",logFilter:f.logFilter,truncateObjects:!h});if(m.log=b.sublog(f.name),m.bus=l({trace:!1,showEvents:!0,reportAllErrors:!0,log:b}),m.info={wePkg:r},"undefined"!=typeof window&&(f.debug?(m.debug=n((e=>e.bind(m)),a),a.dndGo.call(m)):m.debug={},window._app=m,window.document&&window.document.title&&f.setWindowTitle&&(document.title=f.name)),m.env=s(m),f.theme?await i.evaluate({name:"ThemeManagerModule",value:import("../_virtual/_empty_module_placeholder")},{name:"HistoryManager",value:import("./historyManager.js")},{name:"LayerManager",value:import("../_virtual/_empty_module_placeholder")}).then((async({LayerManager:e,HistoryManager:t,ThemeManagerModule:n})=>{const o=n.initThemeManager(m);m.themePack=await o.buildTheme(f.theme,f.defaultTheme),e.initLayerManager(m),t.initHistoryManager(m),m.destroy=()=>e.destroy(m)})):m.destroy=()=>{},f.plugins){for(const e in f.plugins)try{const t=f.plugins[e];if(m.plugins[e])throw Error(`Duplicate plugin name "${e}"`);const n=await c(m,e,t);n&&(m.plugins=m.plugins.set(e,n))}catch(t){b.error("Error instantiating plugin "+e),b.error(t)}for(const e in m.plugins)m.plugins[e].init()}return m}export{m as create};
1
+ import e from"IObject";import t from"query-string";import{map as n,mergeDeepRight as o}from"ramda";import i from"zousan-plus";import r from"../package.json.js";import a from"./debugTools.js";import{buildEnv as s}from"./env.js";import{create as l}from"./extModules/bustle.js";import{initLog as u}from"./extModules/log.js";import c from"./utils/i18n.js";const g="undefined"!=typeof window;async function p(e,t,n){let o=t;if(o.includes("/")){const e=o.split("/");o=e[e.length-1]}return void 0!==n.active&&!1===n.active?(e.log.info(`Plugin ${t} explicitly deativated`),null):import(`../plugins/${t}/src/${o}.js`).then((o=>(e.log.info(`Creating plugin ${t}`),o.create(e,n))))}async function d(e){return g?import(`./configs/${e}.json`):import(`./configs/${e}.json.js`)}async function m(e,t){let n={};const i=await Promise.all(t.map(d));for(const e of i){let t=e.default;t=t.extends?await m(t,t.extends):t,n=o(n,t)}return n=o(n,e),n}const f=e=>t=>import(`./configs/postproc-${e}.js`).then((e=>e.process(t)));async function w(o){const d=Object.create(null);let w=o.extends?await m(o,o.extends):o;w.plugins.monitoring&&import("../_virtual/_empty_module_placeholder.js").then((e=>e.activate(w))),w=await(async e=>e.configPostProc?i.series(e,...e.configPostProc.map(f)):e)(w);const y=(e=>{const n=e.supportedLanguages||["ar","en","es","fr","ja","ko","zh-Hans","zh-Hant"];if("undefined"!=typeof window){let e=t.parse(location.search).lang||navigator.language;for(;e;){if(e&&n.includes(e))return e;e=e.substring(0,e.lastIndexOf("-"))}}return e.defaultLanguage||"en"})(w),h=await c(y,w.debug);d.i18n=()=>h,d.gt=()=>h.t.bind(h),d.config=w,d.plugins=new e;const j=u("web-engine",{enabled:!!w.debug,isBrowser:g,color:"cyan",logFilter:w.logFilter,truncateObjects:!g});if(d.log=j.sublog(w.name),d.bus=l({trace:!1,showEvents:!0,reportAllErrors:!0,log:j}),d.info={wePkg:r},"undefined"!=typeof window&&(w.debug?(d.debug=n((e=>e.bind(d)),a),a.dndGo.call(d)):d.debug={},window._app=d,window.document&&window.document.title&&w.setWindowTitle&&(document.title=w.name)),d.env=s(d),w.theme?await i.evaluate({name:"ThemeManagerModule",value:import("../_virtual/_empty_module_placeholder.js")},{name:"HistoryManager",value:import("./historyManager.js")},{name:"LayerManager",value:import("../_virtual/_empty_module_placeholder.js")}).then((async({LayerManager:e,HistoryManager:t,ThemeManagerModule:n})=>{const o=n.initThemeManager(d);d.themePack=await o.buildTheme(w.theme,w.defaultTheme),e.initLayerManager(d),t.initHistoryManager(d),d.destroy=()=>e.destroy(d)})):d.destroy=()=>{},w.plugins){for(const e in w.plugins)try{const t=w.plugins[e];if(d.plugins[e])throw Error(`Duplicate plugin name "${e}"`);const n=await p(d,e,t);n&&(d.plugins=d.plugins.set(e,n))}catch(t){j.error("Error instantiating plugin "+e),j.error(t)}for(const e in d.plugins)d.plugins[e].init()}return d}export{w as create};
@@ -1 +1 @@
1
- async function t(t,e){const o=await(async()=>{if(!t||!t.type)throw Error("No authentication type found in config");return Promise.resolve((t=>{switch(t.type){case"ms":return"MSAuth";case"cognito":return"CognitoAuth";case"google":return"GoogleAuth";default:throw Error(`Unknown auth type: '${t.type}'`)}})(t)).then((t=>import(`./${t}`))).then((o=>o.default(t.config,e)))})();return{getToken:async()=>o.getToken(),isLoggedIn:async()=>o.isLoggedIn(),federatedLogin:async()=>o.federatedLogin(),logout:()=>o.logout(),getAccountInfo:()=>o.getAccountInfo(),getType:()=>t.type}}export default t;
1
+ async function t(t,e){const o=await(async()=>{if(!t||!t.type)throw Error("No authentication type found in config");return Promise.resolve((t=>{switch(t.type){case"ms":return"MSAuth";case"cognito":return"CognitoAuth";case"google":return"GoogleAuth";default:throw Error(`Unknown auth type: '${t.type}'`)}})(t)).then((t=>import(`./${t}`))).then((o=>o.default(t.config,e)))})();return{getToken:async()=>o.getToken(),isLoggedIn:async()=>o.isLoggedIn(),federatedLogin:async()=>o.federatedLogin(),logout:()=>o.logout(),getAccountInfo:()=>o.getAccountInfo(),getType:()=>t.type}}export{t as default};
@@ -1,10 +1,6 @@
1
1
  {
2
2
  "name": "SDK headless",
3
3
  "plugins": {
4
- "analytics": {
5
- "platformSdk": "SDK",
6
- "active": false
7
- },
8
4
  "analytics2": {
9
5
  "productName": "LocusMaps JS SDK",
10
6
  "active": false,
@@ -1 +1 @@
1
- var a="SDK headless",e={analytics:{platformSdk:"SDK",active:!1},analytics2:{productName:"LocusMaps JS SDK",active:!1,disableSending:!1},clientAPI:{},dynamicPois:{},poiDataManager:{},sdkServer:{},searchService:{},venueDataLoader:{assetStage:"prod",formatVersion:"v5",availableLanguages:[{langCode:"en",assetSuffix:""}]},wayfinder:{compareFindPaths:!1}},s={name:"SDK headless",plugins:e};export default s;export{a as name,e as plugins};
1
+ var a="SDK headless",e={analytics2:{productName:"LocusMaps JS SDK",active:!1,disableSending:!1},clientAPI:{},dynamicPois:{},poiDataManager:{},sdkServer:{},searchService:{},venueDataLoader:{assetStage:"prod",formatVersion:"v5",availableLanguages:[{langCode:"en",assetSuffix:""}]},wayfinder:{compareFindPaths:!1}},s={name:"SDK headless",plugins:e};export{s as default,a as name,e as plugins};
@@ -1 +1 @@
1
- import*as e from"ramda";import{orphanTest as n}from"../plugins/wayfinder/src/navGraphDebug.js";import{$ as t,$$ as o,ad as a}from"./utils/dom.js";import{singleFile as s}from"./utils/funcs.js";"undefined"!=typeof window&&(window.R=e);const r=(e,n)=>{const t=n.monitor("homeview/performSearch",(({term:o})=>{o||(n.send(e),t())}))};var i={showIcons:()=>{t("#mapRenderDiv").innerHTML="<style> div { display: inline-block; text-align: center; border: 1px solid lightblue; }</style>"+o("svg symbol").map((e=>`<div><svg><use xlink:href="#${e.id}"/></svg><br/>${e.id}</div>`)).join("")},poisByCategory:function(){return this.bus.send("poi/getAll").then((e=>e[0])).then((e=>Object.values(e))).then(e.groupBy((e=>e.category)))},highlightNodes:()=>a({tag:"style",html:"* { background-color: rgba(255,0,0,.2); } * * { background-color: rgba(0,255,0,.2); } * * * { background-color: rgba(0,0,255,.2); } * * * * { background-color: rgba(255,0,255,.2); } * * * * * { background-color: rgba(0,255,255,.2); } * * * * * * { background-color: rgba(255,255,0,.2); } * * * * * * * { background-color: rgba(255,0,0,.2); } * * * * * * * * { background-color: rgba(0,255,0,.2); } * * * * * * * * * { background-color: rgba(0,0,255,.2); }"},t("head")),getPoiById:function(e){return this.bus.send("poi/getById",{id:e}).then((e=>e[0]))},orphanTest:n,showOrphaned:async function(){const e=await this.bus.get("wayfinder/_getNavGraph"),t=n(e._nodes);this.bus.send("map/showOrphanedGraphNodes",{orphanedNodes:t.orphaned})},showgraph:async function(){const e=await this.bus.get("wayfinder/getNavGraphFeatures");this.bus.send("map/showNavGraphFeatures",{navGraph:e}),r("map/resetNavGraphFeatures",this.bus)},dndGo:function(){const e=this.bus,n=(e,n)=>{e.preventDefault(),n?e.target.classList.add("dragover"):e.target.classList.remove("dragover")},t={drop:async function(t){n(t,!1);for(const n of t.dataTransfer.files){const t=n.name;if("application/json"===n.type||n.type.startsWith("text/")){const o=new FileReader;o.onload=s((async o=>e.send("debugTools/fileDrop",{file:n,filename:t,content:o.target.result}))),o.readAsText(n)}}},dragover:function(e){n(e,!0)},dragleave:function(e){n(e,!1)}};Object.keys(t).forEach((function(e){document.body.addEventListener(e,t[e])})),console.log("DnD Listeners installed")},bounds:async function(){const e=await this.bus.get("venueData/getVenueCenter"),{venueRadius:n,bounds:t}=await this.bus.get("venueData/getVenueData");this.bus.send("map/showVenueBounds",{venueCenter:e,venueRadius:n,bounds:t}),r("map/resetVenueBounds",this.bus)},padding:async function(){this.bus.send("map/togglePadding"),r("map/togglePadding",this.bus)}};export default i;
1
+ import*as e from"ramda";import{orphanTest as n}from"../plugins/wayfinder/src/navGraphDebug.js";import{$ as s,$$ as t,ad as o}from"./utils/dom.js";import{singleFile as a}from"./utils/funcs.js";"undefined"!=typeof window&&(window.R=e);const r=(e,n)=>{const s=n.monitor("homeview/performSearch",(({term:t})=>{t||(n.send(e),s())}))};var i={showIcons:()=>{s("#mapRenderDiv").innerHTML="<style> div { display: inline-block; text-align: center; border: 1px solid lightblue; }</style>"+t("svg symbol").map((e=>`<div><svg><use xlink:href="#${e.id}"/></svg><br/>${e.id}</div>`)).join("")},poisByCategory:function(){return this.bus.send("poi/getAll").then((e=>e[0])).then((e=>Object.values(e))).then(e.groupBy((e=>e.category)))},highlightNodes:()=>o({tag:"style",html:"* { background-color: rgba(255,0,0,.2); } * * { background-color: rgba(0,255,0,.2); } * * * { background-color: rgba(0,0,255,.2); } * * * * { background-color: rgba(255,0,255,.2); } * * * * * { background-color: rgba(0,255,255,.2); } * * * * * * { background-color: rgba(255,255,0,.2); } * * * * * * * { background-color: rgba(255,0,0,.2); } * * * * * * * * { background-color: rgba(0,255,0,.2); } * * * * * * * * * { background-color: rgba(0,0,255,.2); }"},s("head")),getPoiById:function(e){return this.bus.send("poi/getById",{id:e}).then((e=>e[0]))},orphanTest:n,showOrphaned:async function(){const e=await this.bus.get("wayfinder/_getNavGraph"),s=n(e._nodes);this.bus.send("map/showOrphanedGraphNodes",{orphanedNodes:s.orphaned})},showgraph:async function(){const e=await this.bus.get("wayfinder/getNavGraphFeatures");this.bus.send("map/showNavGraphFeatures",{navGraph:e}),r("map/resetNavGraphFeatures",this.bus)},dndGo:function(){const e=this.bus,n=(e,n)=>{e.preventDefault(),n?e.target.classList.add("dragover"):e.target.classList.remove("dragover")},s={drop:async function(s){n(s,!1);for(const n of s.dataTransfer.files){const s=n.name;if("application/json"===n.type||n.type.startsWith("text/")){const t=new FileReader;t.onload=a((async t=>e.send("debugTools/fileDrop",{file:n,filename:s,content:t.target.result}))),t.readAsText(n)}}},dragover:function(e){n(e,!0)},dragleave:function(e){n(e,!1)}};Object.keys(s).forEach((function(e){document.body.addEventListener(e,s[e])})),console.log("DnD Listeners installed")},bounds:async function(){const e=await this.bus.get("venueData/getVenueCenter"),{venueRadius:n,bounds:s}=await this.bus.get("venueData/getVenueData");this.bus.send("map/showVenueBounds",{venueCenter:e,venueRadius:n,bounds:s}),r("map/resetVenueBounds",this.bus)},buildingBounds:async function(e){this.bus.send("map/showBuildingBounds",{nameFilter:e}),r("map/resetVenueBounds",this.bus)},padding:async function(){this.bus.send("map/togglePadding"),r("map/togglePadding",this.bus)}};export{i as default};
@@ -1 +1 @@
1
- import o from"zousan";const n=(o,n)=>o.splice(n,1)[0],t=(o,t)=>{let r=0;do{r=o.indexOf(t,r),r>=0&&n(o,r)}while(r>=0);return o};function r(n={}){const r=n.log?n.log.sublog?n.log.sublog("bustle",{color:"pink"}):n.log:console,e={},s={};function c(o,n){e[o]&&t(e[o],n)}function u(o,n){s[o]&&t(s[o],n)}function l(t,c){return n.trace&&(c||(c={}),c._stack=Error().stack),n.showEvents&&("function"==typeof n.showEvents?n.showEvents(t,c)&&r.info("send with",t," and ",c):r.info("send with",t," and ",c)),new o((u=>o.soon(((t,c,u)=>()=>{const l=e[t],f=s[t],i=[];if(l)for(const t of l)try{i.push(t(c))}catch(t){n.reportAllErrors&&r.error(t),n.rejectOnError&&i.push(o.reject(t)),i.push(t)}const h=o.all(i);if(f)for(const o of f)try{o(c,h)}catch(o){n.reportAllErrors&&r.error(o)}u(h)})(t,c,u))))}return{get:(n,t)=>l(n,t).then((t=>1!==t.length?o.reject(`${n} event did not return a single result, but ${t.length} results.`):t[0])),moff:u,monitor:function(o,n){return s[o]||(s[o]=[]),s[o].push(n),()=>u(o,n)},off:c,on:function(o,n){return e[o]||(e[o]=[]),e[o].push(n),()=>c(o,n)},send:l}}export{r as create};
1
+ import o from"zousan";const n=(o,n)=>o.splice(n,1)[0],t=(o,t)=>{let r=0;do{r=o.indexOf(t,r),r>=0&&n(o,r)}while(r>=0);return o};function r(n){const r=n.log?n.log.sublog?n.log.sublog("bustle",{color:"pink"}):n.log:console,e={},s={};function c(o,n){e[o]&&t(e[o],n)}function u(o,n){s[o]&&t(s[o],n)}function l(t,c){return n.trace&&(c||(c={}),c._stack=Error().stack),n.showEvents&&("function"==typeof n.showEvents?n.showEvents(t,c)&&r.info("send with",t," and ",c):r.info("send with",t," and ",c)),new o((u=>o.soon(((t,c,u)=>()=>{const l=e[t],f=s[t],i=[];if(l)for(const t of l)try{i.push(t(c))}catch(t){n.reportAllErrors&&r.error(t),n.rejectOnError&&i.push(o.reject(t)),i.push(t)}const h=o.all(i);if(f)for(const o of f)try{o(c,h)}catch(o){n.reportAllErrors&&r.error(o)}u(h)})(t,c,u))))}return{get:(n,t)=>l(n,t).then((t=>1!==t.length?o.reject(`${n} event did not return a single result, but ${t.length} results.`):t[0])),moff:u,monitor:function(o,n){return s[o]||(s[o]=[]),s[o].push(n),()=>u(o,n)},off:c,on:function(o,n){return e[o]||(e[o]=[]),e[o].push(n),()=>c(o,n)},send:l}}export{r as create};
@@ -1 +1 @@
1
- import n from"zousan";import{getHelpList as o,getHelpHeader as r,getHelp as m}from"./help.js";import{getSigMatch as e,validate as t}from"./validate.js";const i=/^[-_.0-9a-zA-Z]+$/,s=JSON.stringify;function a(){const a=[],c=()=>a.map((n=>n.sig)),d={},f={customTypes:d,commandDefsList:a};function u(n,o){const r=n.command;if(void 0===r)throw Error(`Invalid command specification in registerCommand: ${s(n)}. No 'command' property specified.`);if(!i.test(r)){throw Error(`Invalid command specification in registerCommand: ${s(n)}. Command name '${r}' not valid.`)}return a.push({sig:n,fn:o}),p}function p(i){return new n(((n,a)=>{if(!i)return a(new Error(`No command specified in command object ${s(i)}`));const c=f.commandDefsList.filter((n=>n.sig.command===i.command));if(0===c.length)return a(new Error(`No API command '${i.command}' found.\n${o(f.commandDefsList.map((n=>n.sig)))}`));const d=e(f,i);if(!d)return 1===c.length?a(new Error(`Required fields not present in ${s(i)}\n${r()}${m(c[0].sig)}`)):a(new Error(`Command arguments did not match any required signatures: ${s(i)}\n${o(f.commandDefsList.map((n=>n.sig)))}`));try{t(f,d.sig,i)}catch(n){return a(n)}n(d.fn(i))}))}return u({command:"help",args:[]},(()=>o(c()))),u({command:"getCommandJSON",args:[]},(()=>({commands:c(),customTypes:d}))),{registerCommand:u,registerCustomType:function(n,o){d[n]=o},execute:p}}export default a;
1
+ import n from"zousan";import{getHelpList as o,getHelpHeader as r,getHelp as m}from"./help.js";import{getSigMatch as e,validate as t}from"./validate.js";const i=/^[-_.0-9a-zA-Z]+$/,s=JSON.stringify;function a(){const a=[],c=()=>a.map((n=>n.sig)),d={},f={customTypes:d,commandDefsList:a};function u(n,o){const r=n.command;if(void 0===r)throw Error(`Invalid command specification in registerCommand: ${s(n)}. No 'command' property specified.`);if(!i.test(r)){throw Error(`Invalid command specification in registerCommand: ${s(n)}. Command name '${r}' not valid.`)}return a.push({sig:n,fn:o}),p}function p(i){return new n(((n,a)=>{if(!i)return a(new Error(`No command specified in command object ${s(i)}`));const c=f.commandDefsList.filter((n=>n.sig.command===i.command));if(0===c.length)return a(new Error(`No API command '${i.command}' found.\n${o(f.commandDefsList.map((n=>n.sig)))}`));const d=e(f,i);if(!d)return 1===c.length?a(new Error(`Required fields not present in ${s(i)}\n${r()}${m(c[0].sig)}`)):a(new Error(`Command arguments did not match any required signatures: ${s(i)}\n${o(f.commandDefsList.map((n=>n.sig)))}`));try{t(f,d.sig,i)}catch(n){return a(n)}n(d.fn(i))}))}return u({command:"help",args:[]},(()=>o(c()))),u({command:"getCommandJSON",args:[]},(()=>({commands:c(),customTypes:d}))),{registerCommand:u,registerCustomType:function(n,o){d[n]=o},execute:p}}export{a as default};
@@ -1 +1 @@
1
- function n(e,t,o,r){let u=t;o&&(u+="-"+o);const f=e[u];return f||(o?o.indexOf("-")>0?n(e,t,o.substring(0,o.indexOf("-")),r):n(e,t,null,r):r)}function e(n,e){if(!n.config.debug)return!1;let t=n.config.debug[e];return null!=t&&!1!==t&&(!0===t||(t=t.toLowerCase?t.toLowerCase():t,"no"!==t&&"false"!==t))}export{e as debugIsTrue,n as getLocalized};
1
+ function n(t,e,o,r){let u=e;o&&(u+="-"+o);const i=t[u];return i||(o?o.indexOf("-")>0?n(t,e,o.substring(0,o.indexOf("-")),r):n(t,e,null,r):r)}function t(n,t){if(!n.config.debug)return!1;let e=n.config.debug[t];return null!=e&&!1!==e&&(!0===e||(e=e.toLowerCase?e.toLowerCase():e,"no"!==e&&"false"!==e))}let e;try{e=Function("return this")()}catch(n){e=window}export{t as debugIsTrue,n as getLocalized,e as global};
@@ -1 +1 @@
1
- import*as n from"ramda";const e=(n,e)=>{const t=n[0],l=n[1];let o=!1;for(let n=0,r=e.length-1;n<e.length;r=n++){const u=e[n][0],s=e[n][1],c=e[r][0],i=e[r][1];s>l!=i>l&&t<(c-u)*(l-s)/(i-s)+u&&(o=!o)}return o};function t(t,r,u,s){if(!n.length(t))return null;t=t.filter((n=>null==n.shouldDisplay||!0===n.shouldDisplay));const c=n.curry(e)([r,u]),i=t.filter(n.compose(c,l));if(0===i.length)return null;if(1===i.length&&!s)return n.head(i);const d=i.filter(n.compose(c,n.prop("boundsPolygon")));return 1===d.length?n.head(d):d.length?o(i):null}const l=n=>{const{n:e,s:t,e:l,w:o}=n.bounds;return[[e,l],[e,o],[t,o],[t,l]]},o=n.reduce(n.maxBy((n=>{if(!n.bounds)return 0;const{n:e,s:t,e:l,w:o}=n.bounds;return Math.abs((e-t)*(l-o))})),{}),r=(n,e)=>Object.values(n.levels).reduce(((n,t)=>t.ordinal===e?t:n),void 0),u=(n,e)=>n.reduce(((n,t)=>Object.values(t.levels).reduce(((n,t)=>t.id===e?t:n),null)||n),void 0);function s(n,e,l,o,u){const s=t(n,e,l,u);return{building:s,floor:s?r(s,o):null}}const c=(n,e,t,l,o)=>s(n,e,t,l,o).floor;function i(n,e,t,l,o,r,u,s){let c=0,i=0,d=0,f=0,a=0;const h=[{x:n,y:e}];for(let g=1,p=0;g<=20;++g)p=g/20,c=1-p,i=c*c,d=i*c,f=p*p,a=f*p,h.push({x:d*n+3*i*p*t+3*c*f*o+a*u,y:d*e+3*i*p*l+3*c*f*r+a*s});return h}export{i as bezierCurveTo,s as getBuildingAndFloorAtPoint,u as getFloor,c as getFloorAt,t as getStructureAtPoint,r as ordToFloor,e as pointInPolygon};
1
+ import*as n from"ramda";const e=(n,e)=>{const t=n[0],r=n[1];let l=!1;for(let n=0,o=e.length-1;n<e.length;o=n++){const u=e[n][0],s=e[n][1],c=e[o][0],i=e[o][1];s>r!=i>r&&t<(c-u)*(r-s)/(i-s)+u&&(l=!l)}return l};function t(t,l,u,s){if(!n.length(t))return null;t=t.filter((n=>null==n.shouldDisplay||!0===n.shouldDisplay));const c=n.curry(e)([l,u]),i=t.filter(n.compose(c,r));if(0===i.length)return null;if(1===i.length&&!s)return n.head(i);const d=i.filter(n.compose(c,n.prop("boundsPolygon")));return 1===d.length?n.head(d):d.length?o(i):s?null:o(i)}const r=n=>{const{n:e,s:t,e:r,w:l}=n.bounds;return[[e,r],[e,l],[t,l],[t,r]]},l=n=>{if(!n.bounds)return 0;const{n:e,s:t,e:r,w:l}=n.bounds;return Math.abs((e-t)*(r-l))},o=n=>{return n.reduce((e=l,(n,t)=>e(n)<e(t)?n:t));var e},u=(n,e)=>Object.values(n.levels).reduce(((n,t)=>t.ordinal===e?t:n),void 0),s=(n,e)=>n.reduce(((n,t)=>Object.values(t.levels).reduce(((n,t)=>t.id===e?t:n),null)||n),void 0);function c(n,e,r,l,o){const s=t(n,e,r,o);return{building:s,floor:s?u(s,l):null}}const i=(n,e,t,r,l)=>c(n,e,t,r,l).floor;function d(n,e,t,r,l,o,u,s){let c=0,i=0,d=0,f=0,a=0;const h=[{x:n,y:e}];for(let g=1,p=0;g<=20;++g)p=g/20,c=1-p,i=c*c,d=i*c,f=p*p,a=f*p,h.push({x:d*n+3*i*p*t+3*c*f*l+a*u,y:d*e+3*i*p*r+3*c*f*o+a*s});return h}export{d as bezierCurveTo,c as getBuildingAndFloorAtPoint,s as getFloor,i as getFloorAt,t as getStructureAtPoint,u as ordToFloor,e as pointInPolygon};
@@ -1 +1 @@
1
- import n from"i18next";async function e(e,t){const o=n.createInstance();return o.init({debug:t,interpolation:{escapeValue:!1},resources:{en:{translation:{"Walk xx minutes to":"Walk {{count}} minute to","Walk xx minutes to_plural":"Walk {{count}} minutes to"}}},fallbackLng:"en",lng:e,postProcess:["pseudoTrans"]}).then((()=>(t&&o.on("missingKey",(function(n,e,t,a){console.error("i18nNext: key not found. Language: "+o.language+", Key: "+t+", namespace: "+e+", lngs: ",n)})),o)))}const t={ar:"بال عن أمام الأخذ البرية. ثم كما وقام شاسعة الجنوبي, أمدها الإمداد عن انه. ٣٠ فكانت والكساد انه. أساسي الشمال الإتفاقية بال أم. زهاء المؤلّفة حين عل, سكان قررت هذه ان, شعار باستخدام ولم مع.\n\nدول الأمور الصفحة الأوروبية قد. تم حدى فاتّبع الهجوم, ما أوسع معاملة فعل, خلاف الأوروبية، إيو كل. تُصب واندونيسيا، حين قد. أي حاول حقول وهولندا، هذا, بين عن لهيمنة بالسيطرة.\n\nأعمال الإتحاد العمليات من وصل. وقوعها، باستخدام قد أخر, بل حتى علاقة التبرعات. فقد لم الأرض استبدال. حتى الخاسر اقتصادية بـ. أصقاع أعلنت اتفاقية تلك بل, كان إذ بحشد أخرى ليبين. الشتاء، اليابان، مكن أم, به، قد العالم، أوراقهم, بل لعدم لغزو أواخر مكن.\n",ja:"私は場合いよいよある所有らってのの末がしたた。無論結果に圧迫顔もよくその発展ないですまでを決するてみるでしでも発展云いませたから、そうには描いたないたた。機会へ載っない方は別に今をひょろひょろでずまし。むしろ嘉納さんを意味方面そう#「を積んない権力この自分何か記念をというおお尋ねだろででですで、ある今はこれか頼み例があるで、ネルソンさんののの引込のあなたにもっともお努力といと私赤に実建設が起っようにとやかくご附随を描いですましから、どうもとにかく相違に云おでてならますのが行っないませ。"},o=(n,e)=>"en"===e?n:a(n,t[e]),a=(n,e)=>n.length<e.length?e.substring(0,n.length):e;export default e;export{o as toLang};
1
+ import n from"i18next";async function e(e,t){const a=n.createInstance();return a.init({debug:t,interpolation:{escapeValue:!1},resources:{en:{translation:{"Walk xx minutes to":"Walk {{count}} minute to","Walk xx minutes to_plural":"Walk {{count}} minutes to"}}},fallbackLng:"en",lng:e,postProcess:["pseudoTrans"]}).then((()=>(t&&a.on("missingKey",(function(n,e,t,o){console.error("i18nNext: key not found. Language: "+a.language+", Key: "+t+", namespace: "+e+", lngs: ",n)})),a)))}const t={ar:"بال عن أمام الأخذ البرية. ثم كما وقام شاسعة الجنوبي, أمدها الإمداد عن انه. ٣٠ فكانت والكساد انه. أساسي الشمال الإتفاقية بال أم. زهاء المؤلّفة حين عل, سكان قررت هذه ان, شعار باستخدام ولم مع.\n\nدول الأمور الصفحة الأوروبية قد. تم حدى فاتّبع الهجوم, ما أوسع معاملة فعل, خلاف الأوروبية، إيو كل. تُصب واندونيسيا، حين قد. أي حاول حقول وهولندا، هذا, بين عن لهيمنة بالسيطرة.\n\nأعمال الإتحاد العمليات من وصل. وقوعها، باستخدام قد أخر, بل حتى علاقة التبرعات. فقد لم الأرض استبدال. حتى الخاسر اقتصادية بـ. أصقاع أعلنت اتفاقية تلك بل, كان إذ بحشد أخرى ليبين. الشتاء، اليابان، مكن أم, به، قد العالم، أوراقهم, بل لعدم لغزو أواخر مكن.\n",ja:"私は場合いよいよある所有らってのの末がしたた。無論結果に圧迫顔もよくその発展ないですまでを決するてみるでしでも発展云いませたから、そうには描いたないたた。機会へ載っない方は別に今をひょろひょろでずまし。むしろ嘉納さんを意味方面そう#「を積んない権力この自分何か記念をというおお尋ねだろででですで、ある今はこれか頼み例があるで、ネルソンさんののの引込のあなたにもっともお努力といと私赤に実建設が起っようにとやかくご附随を描いですましから、どうもとにかく相違に云おでてならますのが行っないませ。"},a=(n,e)=>"en"===e?n:o(n,t[e]),o=(n,e)=>n.length<e.length?e.substring(0,n.length):e;export{e as default,a as toLang};
@@ -1 +1 @@
1
- function t(t){this._observers.splice(this._observers.indexOf(t),1)}function e(t){const e=s();return this.observe((function(){t.apply(this,arguments)&&e.fire.apply(e,arguments)})),e}function r(t){return e.call(this,(function(e){return t===e}))}const n={detach:t,filter:e,fire:function(){const t=this._observers;if(t){for(let e=0;e<t.length;e++)try{t[e].apply(this,arguments)}catch(t){console.error(t)}return this}},observe:function(e){return this._observers||(this._observers=[]),this._observers.push(e),{detach:t.bind(this,e),ob:this}},on:function(t,e){return r.call(this,t).observe(e)}};function s(t){return t?function(t,e){for(const r in e)t[r]=e[r];return t}(t,n):Object.create(n)}export default s;
1
+ function t(t){this._observers.splice(this._observers.indexOf(t),1)}function e(t){const e=s();return this.observe((function(){t.apply(this,arguments)&&e.fire.apply(e,arguments)})),e}function r(t){return e.call(this,(function(e){return t===e}))}const n={detach:t,filter:e,fire:function(){const t=this._observers;if(t){for(let e=0;e<t.length;e++)try{t[e].apply(this,arguments)}catch(t){console.error(t)}return this}},observe:function(e){return this._observers||(this._observers=[]),this._observers.push(e),{detach:t.bind(this,e),ob:this}},on:function(t,e){return r.call(this,t).observe(e)}};function s(t){return t?function(t,e){for(const r in e)t[r]=e[r];return t}(t,n):Object.create(n)}export{s as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atriusmaps-node-sdk",
3
- "version": "3.2.21",
3
+ "version": "3.3.1",
4
4
  "description": "This project provides an API to Atrius Personal Wayfinder maps within a Node environment. See the README.md for more information",
5
5
  "keywords": [
6
6
  "map",
@@ -14,7 +14,7 @@
14
14
  "atrius",
15
15
  "acuitybrands"
16
16
  ],
17
- "repository": "https://gitlab.com/locuslabspublic/node-sdk",
17
+ "repository": "https://gitlab.com/locuslabspublic/atriusmaps-node-sdk",
18
18
  "license": "UNLICENSED",
19
19
  "author": "Glenn Crownover <crownover@locuslabs.com>",
20
20
  "type": "module",
@@ -1 +0,0 @@
1
- export default{};