atriusmaps-node-sdk 3.3.618 → 3.3.619

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 (39) hide show
  1. package/dist/cjs/package.json.js +1 -1
  2. package/dist/deploy/prepareSDKConfig.js +1 -1
  3. package/dist/nodesdk/nodeEntry.js +1 -1
  4. package/dist/package.json.js +1 -1
  5. package/dist/plugins/clientAPI/src/clientAPI.js +1 -1
  6. package/dist/plugins/dynamicPois/src/dynamicPois.js +1 -1
  7. package/dist/plugins/dynamicPois/src/processors.js +1 -1
  8. package/dist/plugins/poiDataManager/src/poiDataManager.js +1 -1
  9. package/dist/plugins/sdkServer/src/sdkHeadless.js +1 -1
  10. package/dist/plugins/sdkServer/src/sdkServer.js +1 -1
  11. package/dist/plugins/searchService/src/poiSearch.js +1 -1
  12. package/dist/plugins/searchService/src/searchService.js +1 -1
  13. package/dist/plugins/searchService/src/searchTypeahead.js +1 -1
  14. package/dist/plugins/venueDataLoader/src/venueDataLoader.js +1 -1
  15. package/dist/plugins/venueDataLoader/src/venueLoadingUtils.js +1 -1
  16. package/dist/plugins/wayfinder/src/findRoute.js +1 -1
  17. package/dist/plugins/wayfinder/src/navGraph.js +1 -1
  18. package/dist/plugins/wayfinder/src/navGraphDebug.js +1 -1
  19. package/dist/plugins/wayfinder/src/segmentBuilder.js +1 -1
  20. package/dist/plugins/wayfinder/src/stepBuilder.js +1 -1
  21. package/dist/plugins/wayfinder/src/wayfinder.js +1 -1
  22. package/dist/src/app.js +1 -1
  23. package/dist/src/configs/postproc-mol-url-parms.js +1 -1
  24. package/dist/src/configs/postproc-stateTracking.js +1 -1
  25. package/dist/src/debugTools.js +1 -1
  26. package/dist/src/env.js +1 -1
  27. package/dist/src/extModules/bustle.js +1 -1
  28. package/dist/src/extModules/flexapi/src/help.js +1 -1
  29. package/dist/src/extModules/flexapi/src/index.js +1 -1
  30. package/dist/src/extModules/flexapi/src/validate.js +1 -1
  31. package/dist/src/extModules/log.js +1 -1
  32. package/dist/src/historyManager.js +1 -1
  33. package/dist/src/utils/funcs.js +1 -1
  34. package/dist/src/utils/geom.js +1 -1
  35. package/dist/src/utils/i18n.js +1 -1
  36. package/dist/src/utils/location.js +1 -1
  37. package/dist/src/utils/observable.js +1 -1
  38. package/dist/src/utils/rand.js +1 -1
  39. package/package.json +2 -2
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var name = "web-engine";
6
- var version = "3.3.618";
6
+ var version = "3.3.619";
7
7
  var license = "UNLICENSED";
8
8
  var type = "module";
9
9
  var main = "src/main.js";
@@ -1 +1 @@
1
- import{setDeepLinksForParms as e}from"../src/configs/postproc-mol-url-parms.js";import{setStateFromStateString as i}from"../src/configs/postproc-stateTracking.js";import{filterOb as n}from"../src/utils/funcs.js";function t(t){const{name:s,debug:a,headless:r,theme:l,defaultSearchTerms:c,venueId:p,accountId:u,poiCategories:d,preserveStateInURL:g,supportURLDeepLinks:h,initState:m,deepLinkParms:f,uiHide:S,renderDiv:v,parentConfig:k,desktopViewMinWidth:P,forceDesktop:L,hostAppId:A,hostAppVersion:w,hostAppProperties:V,logFilter:b,searchPlaceholder:y,dataFetch:D,engineName:I,dynamicPoisUrlBaseV1:Z,plugins:j,anaytics2ActiveFlag:F,enablePoiSelection:O,minZoom:R,maxZoom:T,noLangOptions:U,pinnedLocation:x,pinnedLocationZoom:C,pinnedLocationFocusAtStart:M}=t,W=k?[k]:r?["sdkHeadless"]:["sdkVisual"],z=(e,i)=>e&&e.length>i?e.substring(0,i):e,H={name:s,engineName:I,extends:W,debug:a,logFilter:b,theme:l,uiHide:S,renderDiv:v,configPostProc:[],plugins:{venueDataLoader:{dataFetch:D,venueId:p,accountId:u},sdkServer:{headless:r},analytics2:{hostAppId:(e=>e?z(e.toString(),128):void 0)(A),hostAppVersion:(e=>e?z(e.toString(),128):void 0)(w),hostAppProperties:(e=>{if(!e||"object"!=typeof e)return;const i={},n=Object.keys(e);return n.length>10&&(n.length=10),n.forEach((n=>{let t=z(n.toString().replaceAll(/[^a-zA-Z0-9_]/g,""),128);t.match(/^[a-zA-Z]+/)||(t="X"+t);let o=e[n];null==o&&(o=""),o=z(o.toString(),128),i[t]=o})),i})(V)}},uuid:"undefined"!=typeof document&&document&&document.location?document.location.host:"unknown"};void 0!==F&&(H.plugins.analytics2.active=F);const B=(e,i)=>void 0!==i?{[e]:i}:{};return r||(H.plugins["online/headerOnline"]={searchPlaceholder:y},H.plugins.mapRenderer={...B("enablePoiSelection",O),viewLimits:{...B("maxZoom",T),...B("minZoom",R)}},H.plugins.userMenu={noLangOptions:U},x&&(H.plugins["online/pinnedLocation"]={location:x,zoom:C,focusAtStart:M})),H.plugins.searchService=c?{defaultSearchTerms:c}:{},o(t,"defaultSearchTerms",H.plugins.searchService),W.includes("sdkVisual")&&(H.plugins["online/homeView"]=d?{poiCategories:d}:{},o(t,"poiCategories",H.plugins["online/homeView"])),j&&(j.draw&&(H.plugins.draw=j.draw),j.flightStatus&&(H.plugins.flightStatus=j.flightStatus,H.plugins["online/flightDetails"]={},H.plugins["online/flightDetailsSearch"]={})),g&&(H.configPostProc.push("stateTracking"),H.plugins.deepLinking={trackURL:!0}),h&&H.configPostProc.push("mol-url-parms"),m&&i(H,atob(m),!0),f&&e(H,new URLSearchParams(f),!0),void 0!==P&&(H.desktopViewMinWidth=P),L&&(H.desktopViewMinWidth=0),Z&&(H.plugins.dynamicPois={urlBaseV1:Z}),n(((e,i)=>void 0!==i),H)}function o(e,i,n){Object.keys(e).filter((e=>e.startsWith(i+"-"))).forEach((i=>n[i]=e[i]))}export{t as default};
1
+ import{setDeepLinksForParms as e}from"../src/configs/postproc-mol-url-parms.js";import{setStateFromStateString as i}from"../src/configs/postproc-stateTracking.js";import{filterOb as n}from"../src/utils/funcs.js";function t(t){const{name:s,debug:a,headless:r,theme:l,defaultSearchTerms:c,venueId:p,accountId:u,poiCategories:d,preserveStateInURL:g,supportURLDeepLinks:h,initState:m,deepLinkParms:f,uiHide:S,renderDiv:v,parentConfig:k,desktopViewMinWidth:P,forceDesktop:L,hostAppId:A,hostAppVersion:w,hostAppProperties:V,logFilter:b,searchPlaceholder:y,dataFetch:D,engineName:I,dynamicPoisUrlBaseV1:Z,plugins:j,anaytics2ActiveFlag:F,enablePoiSelection:O,minZoom:R,maxZoom:T,noLangOptions:U,pinnedLocation:x,pinnedLocationZoom:C,pinnedLocationFocusAtStart:M}=t,W=k?[k]:r?["sdkHeadless"]:["sdkVisual"],z=(e,i)=>e&&e.length>i?e.substring(0,i):e,H={name:s,engineName:I,extends:W,debug:a,logFilter:b,theme:l,uiHide:S,renderDiv:v,configPostProc:[],plugins:{venueDataLoader:{dataFetch:D,venueId:p,accountId:u},sdkServer:{headless:r},analytics2:{hostAppId:(e=>e?z(e.toString(),128):void 0)(A),hostAppVersion:(e=>e?z(e.toString(),128):void 0)(w),hostAppProperties:(e=>{if(!e||"object"!=typeof e)return;const i={},n=Object.keys(e);return n.length>10&&(n.length=10),n.forEach(n=>{let t=z(n.toString().replaceAll(/[^a-zA-Z0-9_]/g,""),128);t.match(/^[a-zA-Z]+/)||(t="X"+t);let o=e[n];null==o&&(o=""),o=z(o.toString(),128),i[t]=o}),i})(V)}},uuid:"undefined"!=typeof document&&document&&document.location?document.location.host:"unknown"};void 0!==F&&(H.plugins.analytics2.active=F);const B=(e,i)=>void 0!==i?{[e]:i}:{};return r||(H.plugins["online/headerOnline"]={searchPlaceholder:y},H.plugins.mapRenderer={...B("enablePoiSelection",O),viewLimits:{...B("maxZoom",T),...B("minZoom",R)}},H.plugins.userMenu={noLangOptions:U},x&&(H.plugins["online/pinnedLocation"]={location:x,zoom:C,focusAtStart:M})),H.plugins.searchService=c?{defaultSearchTerms:c}:{},o(t,"defaultSearchTerms",H.plugins.searchService),W.includes("sdkVisual")&&(H.plugins["online/homeView"]=d?{poiCategories:d}:{},o(t,"poiCategories",H.plugins["online/homeView"])),j&&(j.draw&&(H.plugins.draw=j.draw),j.flightStatus&&(H.plugins.flightStatus=j.flightStatus,H.plugins["online/flightDetails"]={},H.plugins["online/flightDetailsSearch"]={})),g&&(H.configPostProc.push("stateTracking"),H.plugins.deepLinking={trackURL:!0}),h&&H.configPostProc.push("mol-url-parms"),m&&i(H,atob(m),!0),f&&e(H,new URLSearchParams(f),!0),void 0!==P&&(H.desktopViewMinWidth=P),L&&(H.desktopViewMinWidth=0),Z&&(H.plugins.dynamicPois={urlBaseV1:Z}),n((e,i)=>void 0!==i,H)}function o(e,i,n){Object.keys(e).filter(e=>e.startsWith(i+"-")).forEach(i=>n[i]=e[i])}export{t as default};
@@ -1 +1 @@
1
- import e from"node:http";import t from"node:https";import{HttpsProxyAgent as n}from"https-proxy-agent";import o from"node-fetch";import r from"../deploy/prepareSDKConfig.js";import s from"../package.json.js";import{create as c}from"../src/controller.js";import i from"../src/utils/observable.js";const a=s.version;let g=!1;const m=e=>e.toString().length<2?"0"+e:e,p=()=>`AtriusMaps Node SDK (${(()=>{const e=new Date;return`${e.getHours()}:${m(e.getMinutes())}:${m(e.getSeconds())}.${e.getMilliseconds()}`})()}): `,l=function(){if(g){let e=p()+Array.from(arguments).map((e=>"object"==typeof e?JSON.stringify(e):e)).join(" ");const t=e.split("\n");t.length>1?e=t[0]+`… (+ ${t.length-1} lines)`:e.length>256&&(e=e.substring(0,255)+`… (length: ${e.length} chars)`),console.log(e)}};async function f(s){return new Promise(((a,g)=>{s.headless=!0,function(r){const s=new e.Agent({keepAlive:!0}),c=new t.Agent({keepAlive:!0}),i=r.proxy?new n(`http://${r.proxy.host}:${r.proxy.port}`):null,a=r.agent||i||(e=>"http:"===e.protocol?s:c);global.fetch=async(e,t)=>o(e,{...t,agent:a})}(s);const m=r(s);c(m).then((e=>{const t=(t,n)=>("string"==typeof t&&(t={...n,command:t}),l("Sending command object: ",t),e.bus.get("clientAPI/execute",t).then((e=>(l("Received Message: ",e),e))).catch((e=>{throw l("Error: ",e.message),e})));i(t),e.eventListener.observe((function(){t.fire.apply(t,arguments)})),t.on("ready",((e,n)=>{const{commands:o}=n.commandJSON;!function(e,t){t.forEach((t=>{e[t.command]=function(){const n={command:t.command};for(let e=0;e<arguments.length;e++)n[t.args[e].name]=arguments[e];return e(n)}}))}(t,o),a(t),l("map ready")}))}))}))}const h={getVersion:()=>a,newMap:e=>f(e),setLogging:e=>{g=e,e&&l(`Atrius Maps JS SDK Client v${a} Logging enabled.`)}};export{h as default};
1
+ import e from"node:http";import t from"node:https";import{HttpsProxyAgent as n}from"https-proxy-agent";import o from"node-fetch";import r from"../deploy/prepareSDKConfig.js";import s from"../package.json.js";import{create as c}from"../src/controller.js";import i from"../src/utils/observable.js";const a=s.version;let g=!1;const m=e=>e.toString().length<2?"0"+e:e,p=()=>`AtriusMaps Node SDK (${(()=>{const e=new Date;return`${e.getHours()}:${m(e.getMinutes())}:${m(e.getSeconds())}.${e.getMilliseconds()}`})()}): `,l=function(){if(g){let e=p()+Array.from(arguments).map(e=>"object"==typeof e?JSON.stringify(e):e).join(" ");const t=e.split("\n");t.length>1?e=t[0]+`… (+ ${t.length-1} lines)`:e.length>256&&(e=e.substring(0,255)+`… (length: ${e.length} chars)`),console.log(e)}};async function f(s){return new Promise((a,g)=>{s.headless=!0,function(r){const s=new e.Agent({keepAlive:!0}),c=new t.Agent({keepAlive:!0}),i=r.proxy?new n(`http://${r.proxy.host}:${r.proxy.port}`):null,a=r.agent||i||(e=>"http:"===e.protocol?s:c);global.fetch=async(e,t)=>o(e,{...t,agent:a})}(s);const m=r(s);c(m).then(e=>{const t=(t,n)=>("string"==typeof t&&(t={...n,command:t}),l("Sending command object: ",t),e.bus.get("clientAPI/execute",t).then(e=>(l("Received Message: ",e),e)).catch(e=>{throw l("Error: ",e.message),e}));i(t),e.eventListener.observe(function(){t.fire.apply(t,arguments)}),t.on("ready",(e,n)=>{const{commands:o}=n.commandJSON;!function(e,t){t.forEach(t=>{e[t.command]=function(){const n={command:t.command};for(let e=0;e<arguments.length;e++)n[t.args[e].name]=arguments[e];return e(n)}})}(t,o),a(t),l("map ready")})})})}const h={getVersion:()=>a,newMap:e=>f(e),setLogging:e=>{g=e,e&&l(`Atrius Maps JS SDK Client v${a} Logging enabled.`)}};export{h as default};
@@ -1 +1 @@
1
- var e="web-engine",s="3.3.618",t="UNLICENSED",o="module",r="src/main.js",l=["demo","deploy","nodesdk","src/extModules/flexapi","services/*","libraries/*"],i={colors:"cat utils/colors1.txt && node utils/processColors.js | pbcopy && cat utils/colors2.txt","cypress:comp":"cypress open --component --browser chrome","cypress:comp:ci":"cypress run --component","playwright:ci":"yarn playwright test --grep-invert sdk","playwright:ui":"yarn playwright test --ui --grep-invert sdk","playwright:sdk":"yarn start-server-and-test 'cd ./deploy && yarn buildDev && yarn serveLocal' 8085 'cd ./test/sdk && npx http-server' 8080 'yarn playwright test sdk --ui'",demo:"cd demo/ && yarn start",dev:"yarn mol e2e",goProd:"cd deploy && scripts/goProd.sh",goStaging:"deploy/scripts/goStaging.sh",lint:"eslint .",mod:"demo/startMod.sh",mol:"demo/startMol.sh","mol:build":"demo/startMolBuild.sh",molProd:"cd deploy && yarn buildAndRunMol",prepare:"husky",test:"jest --no-cache --verbose","test-watch":"jest --verbose --watch","test:vitest":"vitest run"},a=["defaults"],n={react:"^18.3.1"},p={"@azure/event-hubs":"^5.12.2","@csstools/normalize.css":"^11.0.1","@dnd-kit/core":"^6.3.1","@dnd-kit/modifiers":"^9.0.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@locus-labs/mod-badge":"^0.1.102","@locus-labs/mod-footer":"^0.0.111","@locus-labs/mod-header":"^0.0.105","@locus-labs/mod-location-marker":"^0.0.104","@locus-labs/mod-map-legend":"^0.0.104","@locus-labs/mod-offscreen-indicator":"^0.0.104","@locus-labs/mod-pin":"^0.0.104","@locus-labs/mod-qr-code-card":"^0.0.104","@locus-labs/mod-qr-code-window":"^0.0.105","@locus-labs/mod-walk-time-matrix":"^0.0.103","@locus-labs/mol-desktop-icon":"^0.1.131","@locus-labs/mol-desktop-tooltip":"^0.3.102","@locus-labs/mol-mobile-box":"^0.1.115","@locus-labs/mol-mobile-icon":"^0.1.118","@locus-labs/mol-mobile-text":"^0.1.116","@mapbox/mapbox-gl-draw":"^1.5.0","@mapbox/mapbox-gl-draw-static-mode":"^1.0.1","@microsoft/applicationinsights-web":"^3.3.6","@turf/area":"^7.2.0","@turf/bbox-clip":"^7.2.0","@turf/bbox-polygon":"^7.2.0","@turf/bearing":"^7.2.0","@turf/circle":"^7.2.0","@turf/helpers":"^7.2.0","@turf/point-to-line-distance":"^7.2.0","@vitejs/plugin-react":"^4.3.4","axe-core":"^4.10.3",browserslist:"^4.27.0","crypto-browserify":"^3.12.1","cypress-multi-reporters":"^2.0.5","cypress-real-events":"^1.14.0","file-loader":"^6.2.0",flexsearch:"^0.7.43","h3-js":"^4.1.0",i18next:"^20.6.1","i18next-browser-languagedetector":"^6.1.1","jest-transform-css":"6.0.2",jsdom:"^25.0.1",jsonschema:"^1.5.0",luxon:"^3.5.0","maplibre-gl":"^4.7.1","mini-css-extract-plugin":"^2.9.2","mocha-junit-reporter":"^2.2.1",mochawesome:"^7.1.3","node-polyfill-webpack-plugin":"^4.1.0","path-browserify":"^1.0.1","prop-types":"^15.8.1",ramda:"^0.30.1",react:"^18.3.1","react-compound-slider":"^3.4.0","react-dom":"^18.3.1","react-json-editor-ajrm":"^2.5.14","react-qr-svg":"^2.4.0","react-svg":"^16.3.0","react-virtualized-auto-sizer":"^1.0.25","react-window":"^1.8.11","smoothscroll-polyfill":"^0.4.4","styled-components":"^6.1.15","styled-normalize":"^8.1.1","throttle-debounce":"^5.0.2",trackjs:"^3.10.4","ua-parser-js":"^0.7.40",uuid:"11.1.0",zousan:"^3.0.1","zousan-plus":"^4.0.1"},c={"@applitools/eyes-playwright":"^1.42.1","@axe-core/playwright":"^4.10.2","@azure/identity":"^4.13.0","@azure/playwright":"^1.0.0","@babel/core":"^7.26.10","@babel/eslint-parser":"^7.26.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-syntax-import-assertions":"^7.26.0","@babel/plugin-transform-modules-commonjs":"^7.26.3","@babel/plugin-transform-runtime":"^7.26.10","@babel/preset-env":"^7.26.9","@babel/preset-react":"^7.26.3","@playwright/test":"^1.56.0","@testing-library/jest-dom":"^6.6.3","@types/react":"^19.0.10","@types/react-dom":"^19.0.4","@typescript-eslint/eslint-plugin":"^8.26.1","@typescript-eslint/parser":"^8.26.1","babel-jest":"^29.7.0","babel-loader":"^10.0.0","babel-plugin-inline-json-import":"^0.3.2","babel-plugin-module-resolver":"^5.0.2","babel-plugin-styled-components":"^2.1.4","chai-colors":"^1.0.1","css-loader":"^7.1.2",cypress:"^14.2.0","cypress-wait-until":"^3.0.2",eslint:"^8.57.1","eslint-config-standard":"^17.1.0","eslint-import-resolver-typescript":"^3.9.1","eslint-plugin-cypress":"^2.15.2","eslint-plugin-import":"^2.31.0","eslint-plugin-jest":"^28.11.0","eslint-plugin-n":"^17.16.2","eslint-plugin-node":"^11.1.0","eslint-plugin-playwright":"^2.2.2","eslint-plugin-promise":"^5.2.0","eslint-plugin-react":"^7.37.4","eslint-plugin-standard":"^5.0.0","fetch-mock-jest":"^1.5.1",glob:"^11.0.1",husky:"^9.1.7",jest:"29.7.0","jest-environment-jsdom":"^29.7.0","lint-staged":"^15.5.0","node-fetch":"^2.7.0","null-loader":"^4.0.1",nx:"19.8.14","nx-remotecache-azure":"^19.0.0","os-browserify":"^0.3.0","start-server-and-test":"^2.0.11",typescript:"^5.8.2",vite:"^4.3.9",vitest:"^2.1.9","webpack-merge":"^6.0.1"},d="yarn@4.7.0",m={node:"22.x"},u={},b={name:e,version:s,private:!0,license:t,type:o,main:r,workspaces:l,scripts:i,"lint-staged":{"*.js":["eslint --fix"]},browserslist:a,resolutions:n,dependencies:p,devDependencies:c,packageManager:d,engines:m,nx:u};export{a as browserslist,b as default,p as dependencies,c as devDependencies,m as engines,t as license,r as main,e as name,u as nx,d as packageManager,n as resolutions,i as scripts,o as type,s as version,l as workspaces};
1
+ var e="web-engine",s="3.3.619",t="UNLICENSED",o="module",r="src/main.js",l=["demo","deploy","nodesdk","src/extModules/flexapi","services/*","libraries/*"],i={colors:"cat utils/colors1.txt && node utils/processColors.js | pbcopy && cat utils/colors2.txt","cypress:comp":"cypress open --component --browser chrome","cypress:comp:ci":"cypress run --component","playwright:ci":"yarn playwright test --grep-invert sdk","playwright:ui":"yarn playwright test --ui --grep-invert sdk","playwright:sdk":"yarn start-server-and-test 'cd ./deploy && yarn buildDev && yarn serveLocal' 8085 'cd ./test/sdk && npx http-server' 8080 'yarn playwright test sdk --ui'",demo:"cd demo/ && yarn start",dev:"yarn mol e2e",goProd:"cd deploy && scripts/goProd.sh",goStaging:"deploy/scripts/goStaging.sh",lint:"eslint .",mod:"demo/startMod.sh",mol:"demo/startMol.sh","mol:build":"demo/startMolBuild.sh",molProd:"cd deploy && yarn buildAndRunMol",prepare:"husky",test:"jest --no-cache --verbose","test-watch":"jest --verbose --watch","test:vitest":"vitest run"},a=["defaults"],n={react:"^18.3.1"},p={"@azure/event-hubs":"^5.12.2","@csstools/normalize.css":"^11.0.1","@dnd-kit/core":"^6.3.1","@dnd-kit/modifiers":"^9.0.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@locus-labs/mod-badge":"^0.1.102","@locus-labs/mod-footer":"^0.0.111","@locus-labs/mod-header":"^0.0.105","@locus-labs/mod-location-marker":"^0.0.104","@locus-labs/mod-map-legend":"^0.0.104","@locus-labs/mod-offscreen-indicator":"^0.0.104","@locus-labs/mod-pin":"^0.0.104","@locus-labs/mod-qr-code-card":"^0.0.104","@locus-labs/mod-qr-code-window":"^0.0.105","@locus-labs/mod-walk-time-matrix":"^0.0.103","@locus-labs/mol-desktop-icon":"^0.1.131","@locus-labs/mol-desktop-tooltip":"^0.3.102","@locus-labs/mol-mobile-box":"^0.1.115","@locus-labs/mol-mobile-icon":"^0.1.118","@locus-labs/mol-mobile-text":"^0.1.116","@mapbox/mapbox-gl-draw":"^1.5.0","@mapbox/mapbox-gl-draw-static-mode":"^1.0.1","@microsoft/applicationinsights-web":"^3.3.6","@turf/area":"^7.2.0","@turf/bbox-clip":"^7.2.0","@turf/bbox-polygon":"^7.2.0","@turf/bearing":"^7.2.0","@turf/circle":"^7.2.0","@turf/helpers":"^7.2.0","@turf/point-to-line-distance":"^7.2.0","@vitejs/plugin-react":"^4.3.4","axe-core":"^4.10.3",browserslist:"^4.27.0","crypto-browserify":"^3.12.1","cypress-multi-reporters":"^2.0.5","cypress-real-events":"^1.14.0","file-loader":"^6.2.0",flexsearch:"^0.7.43","h3-js":"^4.1.0",i18next:"^20.6.1","i18next-browser-languagedetector":"^6.1.1","jest-transform-css":"6.0.2",jsdom:"^25.0.1",jsonschema:"^1.5.0",luxon:"^3.5.0","maplibre-gl":"^4.7.1","mini-css-extract-plugin":"^2.9.2","mocha-junit-reporter":"^2.2.1",mochawesome:"^7.1.3","node-polyfill-webpack-plugin":"^4.1.0","path-browserify":"^1.0.1","prop-types":"^15.8.1",ramda:"^0.30.1",react:"^18.3.1","react-compound-slider":"^3.4.0","react-dom":"^18.3.1","react-json-editor-ajrm":"^2.5.14","react-qr-svg":"^2.4.0","react-svg":"^16.3.0","react-virtualized-auto-sizer":"^1.0.25","react-window":"^1.8.11","smoothscroll-polyfill":"^0.4.4","styled-components":"^6.1.15","styled-normalize":"^8.1.1","throttle-debounce":"^5.0.2",trackjs:"^3.10.4","ua-parser-js":"^0.7.40",uuid:"11.1.0",zousan:"^3.0.1","zousan-plus":"^4.0.1"},c={"@applitools/eyes-playwright":"^1.42.1","@axe-core/playwright":"^4.10.2","@azure/identity":"^4.13.0","@azure/playwright":"^1.0.0","@babel/core":"^7.26.10","@babel/eslint-parser":"^7.26.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-syntax-import-assertions":"^7.26.0","@babel/plugin-transform-modules-commonjs":"^7.26.3","@babel/plugin-transform-runtime":"^7.26.10","@babel/preset-env":"^7.26.9","@babel/preset-react":"^7.26.3","@playwright/test":"^1.56.0","@testing-library/jest-dom":"^6.6.3","@types/react":"^19.0.10","@types/react-dom":"^19.0.4","@typescript-eslint/eslint-plugin":"^8.26.1","@typescript-eslint/parser":"^8.26.1","babel-jest":"^29.7.0","babel-loader":"^10.0.0","babel-plugin-inline-json-import":"^0.3.2","babel-plugin-module-resolver":"^5.0.2","babel-plugin-styled-components":"^2.1.4","chai-colors":"^1.0.1","css-loader":"^7.1.2",cypress:"^14.2.0","cypress-wait-until":"^3.0.2",eslint:"^8.57.1","eslint-config-standard":"^17.1.0","eslint-import-resolver-typescript":"^3.9.1","eslint-plugin-cypress":"^2.15.2","eslint-plugin-import":"^2.31.0","eslint-plugin-jest":"^28.11.0","eslint-plugin-n":"^17.16.2","eslint-plugin-node":"^11.1.0","eslint-plugin-playwright":"^2.2.2","eslint-plugin-promise":"^5.2.0","eslint-plugin-react":"^7.37.4","eslint-plugin-standard":"^5.0.0","fetch-mock-jest":"^1.5.1",glob:"^11.0.1",husky:"^9.1.7",jest:"29.7.0","jest-environment-jsdom":"^29.7.0","lint-staged":"^15.5.0","node-fetch":"^2.7.0","null-loader":"^4.0.1",nx:"19.8.14","nx-remotecache-azure":"^19.0.0","os-browserify":"^0.3.0","start-server-and-test":"^2.0.11",typescript:"^5.8.2",vite:"^4.3.9",vitest:"^2.1.9","webpack-merge":"^6.0.1"},d="yarn@4.7.0",m={node:"22.x"},u={},b={name:e,version:s,private:!0,license:t,type:o,main:r,workspaces:l,scripts:i,"lint-staged":{"*.js":["eslint --fix"]},browserslist:a,resolutions:n,dependencies:p,devDependencies:c,packageManager:d,engines:m,nx:u};export{a as browserslist,b as default,p as dependencies,c as devDependencies,m as engines,t as license,r as main,e as name,u as nx,d as packageManager,n as resolutions,i as scripts,o as type,s as version,l as workspaces};
@@ -1 +1 @@
1
- import e from"../../../src/extModules/flexapi/src/index.js";function t(t,n){const s=e();return t.bus.on("clientAPI/registerCommand",(e=>s.registerCommand(e,(e=>t.bus.get(`clientAPI/${e.command}`,e))))),t.bus.on("clientAPI/registerCustomType",(({name:e,spec:t})=>s.registerCustomType(e,t))),t.bus.on("clientAPI/execute",(e=>s.execute(e))),{init:()=>{}}}export{t as create};
1
+ import e from"../../../src/extModules/flexapi/src/index.js";function t(t,n){const s=e();return t.bus.on("clientAPI/registerCommand",e=>s.registerCommand(e,e=>t.bus.get(`clientAPI/${e.command}`,e))),t.bus.on("clientAPI/registerCustomType",({name:e,spec:t})=>s.registerCustomType(e,t)),t.bus.on("clientAPI/execute",e=>s.execute(e)),{init:()=>{}}}export{t as create};
@@ -1 +1 @@
1
- import n from"zousan";import{processParkingPOIS as e,processOpenClosedPois as t,processSecurityWaitTimes as a,mutateSecurityCheckpointLabel as s,processRoutingPois as o}from"./processors.js";let c=3e4;const i="x-account-id";function u(u,r={}){const d={dynamicDataNotPending:new n},p=u.gt();r._overrideRefreshFrequency&&(c=r._overrideRefreshFrequency),u.bus.on("system/readywhenyouare",(()=>d.dynamicDataNotPending));const y=async n=>{const e={};for(const t of n){const n=await u.bus.get("poi/getById",{id:t});n&&(e[t]=n.name)}return e};return{init:async()=>{const[n,r]=await Promise.all([u.bus.get("venueData/getAccountId"),u.bus.get("venueData/getVenueId")]),l=`https://marketplace.locuslabs.com/venueId/${r}/dynamic-poi`;let f,m=0,g=0;const D=async()=>{const c=await fetch(l,{headers:{[i]:n}});if(c.ok)return c.json().then((({data:n})=>async function(n){(function(n){const t=e(n);u.bus.send("poi/setDynamicData",{plugin:"parking",idValuesMap:t})})(n),function(n){const e=t(n);u.bus.send("poi/setDynamicData",{plugin:"open-closed-status",idValuesMap:e})}(n),async function(n){const e=a(n);u.bus.send("poi/setDynamicData",{plugin:"security",idValuesMap:e});const t=await y(Object.keys(e));u.bus.send("map/mutateFeature",{functor:s(p,e,t)})}(n),async function(n){const e=await o(n);u.bus.send("poi/setDynamicRouting",{plugin:"routing",idValuesMap:e})}(n)}(n))).then((()=>{g++})).catch(console.error);console.warn("dynamicPois: fetch response status not ok",c),m++,m>=3&&m>g&&clearInterval(f)};return D().then((()=>{f=setInterval(D,c),"function"==typeof f.unref&&f.unref()})).finally((()=>d.dynamicDataNotPending.resolve(!0)))}}}export{u as create};
1
+ import n from"zousan";import{processParkingPOIS as e,processOpenClosedPois as t,processSecurityWaitTimes as a,mutateSecurityCheckpointLabel as s,processRoutingPois as o}from"./processors.js";let c=3e4;const i="x-account-id";function u(u,r={}){const d={dynamicDataNotPending:new n},p=u.gt();r._overrideRefreshFrequency&&(c=r._overrideRefreshFrequency),u.bus.on("system/readywhenyouare",()=>d.dynamicDataNotPending);const y=async n=>{const e={};for(const t of n){const n=await u.bus.get("poi/getById",{id:t});n&&(e[t]=n.name)}return e};return{init:async()=>{const[n,r]=await Promise.all([u.bus.get("venueData/getAccountId"),u.bus.get("venueData/getVenueId")]),l=`https://marketplace.locuslabs.com/venueId/${r}/dynamic-poi`;let f,m=0,g=0;const D=async()=>{const c=await fetch(l,{headers:{[i]:n}});if(c.ok)return c.json().then(({data:n})=>async function(n){(function(n){const t=e(n);u.bus.send("poi/setDynamicData",{plugin:"parking",idValuesMap:t})})(n),function(n){const e=t(n);u.bus.send("poi/setDynamicData",{plugin:"open-closed-status",idValuesMap:e})}(n),async function(n){const e=a(n);u.bus.send("poi/setDynamicData",{plugin:"security",idValuesMap:e});const t=await y(Object.keys(e));u.bus.send("map/mutateFeature",{functor:s(p,e,t)})}(n),async function(n){const e=await o(n);u.bus.send("poi/setDynamicRouting",{plugin:"routing",idValuesMap:e})}(n)}(n)).then(()=>{g++}).catch(console.error);console.warn("dynamicPois: fetch response status not ok",c),m++,m>=3&&m>g&&clearInterval(f)};return D().then(()=>{f=setInterval(D,c),"function"==typeof f.unref&&f.unref()}).finally(()=>d.dynamicDataNotPending.resolve(!0))}}}export{u as create};
@@ -1 +1 @@
1
- import*as t from"ramda";const e=(t,e,a)=>i=>{const r=i.properties.id,o=e[r],n=a[r];if(o){const{queueTime:e,isTemporarilyClosed:a}=o,r=a?t("ui:Closed"):t("ui:_xx_ minute wait",{count:e});i.properties.text=`${n}\n${r}`}return i},a=e=>t.pipe(t.filter((t=>"parking"===t.category)),t.map((e=>{const a=e.dynamicAttributes;if(!a)throw Error(`No dynamicAttributes defined for parking POI ${e.poiId}`);return{...(Date.now()-e.timestamp)/1e3<a["parking.timeToLive"]?t.pick(["lotStatus","rateDay","rateHour","timeIsReal","timeToTerminal1","timeToTerminal2"],e):{lotStatus:a["parking.default"],rateDay:"$ -",rateHour:"$ -",timeIsReal:!1},lastUpdated:e.timestamp,lotName:e.lotName}})))(e),i=e=>{const a=["dynamicData","openClosed"],i=t.filter(t.hasPath(a),e),r=t.map(t.path(a),i);if(t.all(t.both(t.has("isOpen"),t.has("expiration")),t.values(r))){const e=t.pipe(t.prop("expiration"),t.lt(Date.now()));return t.filter(e,r)}throw Error("Open Closed poi status is malformed.")},r=e=>{const a=["dynamicData","queue"],i=t.filter(t.hasPath(a),e),r=t.map(t.path(a),i);return t.map((t=>({isTemporarilyClosed:t.isTemporarilyClosed,queueTime:t.queueTime,timeIsReal:!t.isQueueTimeDefault&&t.expiration>Date.now(),lastUpdated:Date.now()})),r)},o=e=>{const a=Date.now();return t.filter((e=>{const i=t.path(["dynamicData","dynamic-routing","navGraphHidden"],e),r=t.path(["dynamicData","dynamic-routing","expiration"],e);return!0===i&&r>a}),e)};export{e as mutateSecurityCheckpointLabel,i as processOpenClosedPois,a as processParkingPOIS,o as processRoutingPois,r as processSecurityWaitTimes};
1
+ import*as t from"ramda";const e=(t,e,a)=>i=>{const r=i.properties.id,o=e[r],n=a[r];if(o){const{queueTime:e,isTemporarilyClosed:a}=o,r=a?t("ui:Closed"):t("ui:_xx_ minute wait",{count:e});i.properties.text=`${n}\n${r}`}return i},a=e=>t.pipe(t.filter(t=>"parking"===t.category),t.map(e=>{const a=e.dynamicAttributes;if(!a)throw Error(`No dynamicAttributes defined for parking POI ${e.poiId}`);return{...(Date.now()-e.timestamp)/1e3<a["parking.timeToLive"]?t.pick(["lotStatus","rateDay","rateHour","timeIsReal","timeToTerminal1","timeToTerminal2"],e):{lotStatus:a["parking.default"],rateDay:"$ -",rateHour:"$ -",timeIsReal:!1},lastUpdated:e.timestamp,lotName:e.lotName}}))(e),i=e=>{const a=["dynamicData","openClosed"],i=t.filter(t.hasPath(a),e),r=t.map(t.path(a),i);if(t.all(t.both(t.has("isOpen"),t.has("expiration")),t.values(r))){const e=t.pipe(t.prop("expiration"),t.lt(Date.now()));return t.filter(e,r)}throw Error("Open Closed poi status is malformed.")},r=e=>{const a=["dynamicData","queue"],i=t.filter(t.hasPath(a),e),r=t.map(t.path(a),i);return t.map(t=>({isTemporarilyClosed:t.isTemporarilyClosed,queueTime:t.queueTime,timeIsReal:!t.isQueueTimeDefault&&t.expiration>Date.now(),lastUpdated:Date.now()}),r)},o=e=>{const a=Date.now();return t.filter(e=>{const i=t.path(["dynamicData","dynamic-routing","navGraphHidden"],e),r=t.path(["dynamicData","dynamic-routing","expiration"],e);return!0===i&&r>a},e)};export{e as mutateSecurityCheckpointLabel,i as processOpenClosedPois,a as processParkingPOIS,o as processRoutingPois,r as processSecurityWaitTimes};
@@ -1 +1 @@
1
- import*as o from"ramda";import e from"zousan";import{buildStructuresLookup as t}from"../../../src/utils/buildStructureLookup.js";import{debugIsTrue as a}from"../../../src/utils/configUtils.js";import{toLang as i}from"../../../src/utils/i18n.js";async function n(i,n){const s=i.log.sublog("poiDataManager"),u=()=>{i.bus.send("venueData/loadPoiData")};let p=new e;const d=(o,e)=>{const{position:t}=o,a=e.floorIdToStructure(t.floorId);if(!a)return s.error(`No structure found for floorId: ${t.floorId} for POI ${o.poiId}`),{...o};const i=e.floorIdToFloor(t.floorId),n={...t,structureName:a.name,buildingId:a.id,floorName:i.name,floorOrdinal:i.ordinal};return{...o,position:n}},l=(o,e)=>{o.roomInfo||(o.roomInfo=[]),o.roomInfo.push(e)},c=o.pipe(o.propOr([],"externalIds"),o.find(o.propEq("roomId","type")),o.prop("id"),o.unless(o.isNil,o.tail));i.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&&l(o,{name:`Seats ${o.capacity.join("-")}`,svgId:"number-of-seats"}),o.category.startsWith("meeting")&&l(o,{name:i.gt()("poiView:Conference Room"),svgId:"conference-room"});const e=c(o);return e&&(o.roomId=e),[o.poiId,d(o,t)]})),o.fromPairs)(e))(e,t(n)),a(i,"pseudoTransPois"))for(const o in e)e[o]=r(e[o],i.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((a=>{null!==t[a]&&void 0!==t[a]||e.push({id:o.poiId,e:`invalid position property: ${a}: ${t[a]}`})})):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 I(e);return o}(e),p.resolve(e),i.config.debug&&i.env.isBrowser&&(window._pois=e),i.config.debug&&async function(o){const e=Date.now(),t=[],a=await i.bus.get("wayfinder/_getNavGraph");Object.values(o).forEach((o=>{try{const e=o.position;a.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)})),i.bus.on("poi/getById",(async({id:o})=>p.then((e=>e[o])))),i.bus.on("poi/getByFloorId",(async({floorId:e})=>p.then(o.pickBy(o.pathEq(e,["position","floorId"]))))),i.bus.on("poi/getByCategoryId",(async({categoryId:e})=>p.then(o.pickBy((o=>o.category===e||o.category.startsWith(e+".")))))),i.bus.on("poi/getAll",(async()=>p));const m=["queue","primaryQueueId"],f=(e,t,a)=>{const i=o.path(["queue","queueType"],t);if(!i)return null;const n=e[i],r=o.path(m,t);return a.filter(o.pathEq(r,m)).filter((o=>o.poiId!==t.poiId)).map((e=>{const t=o.path(["queue","queueSubtype"],e),a=g(t)(n);return{poiId:e.poiId,...a}}))},g=e=>{return o.pipe(o.find(o.propEq(e,"id")),(t=`No queue found with ID: ${e}`,o=>{if(null!=o)return o;throw Error(t)}),o.pick(["displayText","imageId"]));var t};i.bus.on("poi/addOtherSecurityLanes",(({poi:e})=>(async e=>{if(!o.path(m,e))return e;const t=await i.bus.get("venueData/getQueueTypes"),a=await i.bus.get("poi/getByCategoryId",{categoryId:"security"}),n=Object.values(a);return e.queue.otherQueues=f(t,e,n),e})(e)));const y=o=>!!o?.startsWith("https:");async function I(t){if(!t)return;const a="undefined"==typeof window?1:window.devicePixelRatio||1,n=`${Math.round(351*a)}x${Math.round(197*a)}`;return o.length(t.images)?y(t.images[0])||(t.images=await e.all(t.images.map((o=>i.bus.get("venueData/getPoiImageUrl",{imageName:o,size:n}))))):t.images=[],o.length(t.fullImages)?y(t.fullImages[0]?.url)||(t.fullImages=await e.all(t.fullImages.map((async({url:o,...e})=>({url:await i.bus.get("venueData/getPoiImageUrl",{imageName:o,size:n}),...e}))))):t.fullImages=[],t}const h=o.memoizeWith(o.identity,o.pipe(o.pluck("category"),o.values,o.uniq));i.bus.on("poi/getAllCategories",(async()=>p.then(h))),i.bus.on("venueData/loadNewVenue",(()=>{p=new e,u()})),i.bus.on("poi/setDynamicData",(({plugin:e,idValuesMap:t})=>{p.then((a=>{for(const i in t){const n=a[i].dynamicData||{};n[e]={...t[i]};const r=o.mergeRight(a[i],{dynamicData:n});a[i]=r}}))}));return{init:u,runTest:async o=>(await o(),p),internal:{addImages:I,pseudoTransPoi:r}}}function r(o,e){return["description","nearbyLandmark","name","phone","operationHours"].forEach((t=>{o[t]&&(o[t]=i(o[t],e))})),o.keywords&&(o.keywords=o.keywords.map((o=>(o.name=i(o.name,e),o)))),o.position.floorName&&(o.position.floorName=i(o.position.floorName,e)),o.position.structureName&&(o.position.structureName=i(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 a}from"../../../src/utils/configUtils.js";import{toLang as i}from"../../../src/utils/i18n.js";async function n(i,n){const s=i.log.sublog("poiDataManager"),u=()=>{i.bus.send("venueData/loadPoiData")};let p=new e;const d=(o,e)=>{const{position:t}=o,a=e.floorIdToStructure(t.floorId);if(!a)return s.error(`No structure found for floorId: ${t.floorId} for POI ${o.poiId}`),{...o};const i=e.floorIdToFloor(t.floorId),n={...t,structureName:a.name,buildingId:a.id,floorName:i.name,floorOrdinal:i.ordinal};return{...o,position:n}},l=(o,e)=>{o.roomInfo||(o.roomInfo=[]),o.roomInfo.push(e)},c=o.pipe(o.propOr([],"externalIds"),o.find(o.propEq("roomId","type")),o.prop("id"),o.unless(o.isNil,o.tail));i.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&&l(o,{name:`Seats ${o.capacity.join("-")}`,svgId:"number-of-seats"}),o.category.startsWith("meeting")&&l(o,{name:i.gt()("poiView:Conference Room"),svgId:"conference-room"});const e=c(o);return e&&(o.roomId=e),[o.poiId,d(o,t)]}),o.fromPairs)(e))(e,t(n)),a(i,"pseudoTransPois"))for(const o in e)e[o]=r(e[o],i.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(a=>{null!==t[a]&&void 0!==t[a]||e.push({id:o.poiId,e:`invalid position property: ${a}: ${t[a]}`})}):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 I(e);return o}(e),p.resolve(e),i.config.debug&&i.env.isBrowser&&(window._pois=e),i.config.debug&&async function(o){const e=Date.now(),t=[],a=await i.bus.get("wayfinder/_getNavGraph");Object.values(o).forEach(o=>{try{const e=o.position;a.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)}),i.bus.on("poi/getById",async({id:o})=>p.then(e=>e[o])),i.bus.on("poi/getByFloorId",async({floorId:e})=>p.then(o.pickBy(o.pathEq(e,["position","floorId"])))),i.bus.on("poi/getByCategoryId",async({categoryId:e})=>p.then(o.pickBy(o=>o.category===e||o.category.startsWith(e+".")))),i.bus.on("poi/getAll",async()=>p);const m=["queue","primaryQueueId"],f=(e,t,a)=>{const i=o.path(["queue","queueType"],t);if(!i)return null;const n=e[i],r=o.path(m,t);return a.filter(o.pathEq(r,m)).filter(o=>o.poiId!==t.poiId).map(e=>{const t=o.path(["queue","queueSubtype"],e),a=g(t)(n);return{poiId:e.poiId,...a}})},g=e=>{return o.pipe(o.find(o.propEq(e,"id")),(t=`No queue found with ID: ${e}`,o=>{if(null!=o)return o;throw Error(t)}),o.pick(["displayText","imageId"]));var t};i.bus.on("poi/addOtherSecurityLanes",({poi:e})=>(async e=>{if(!o.path(m,e))return e;const t=await i.bus.get("venueData/getQueueTypes"),a=await i.bus.get("poi/getByCategoryId",{categoryId:"security"}),n=Object.values(a);return e.queue.otherQueues=f(t,e,n),e})(e));const y=o=>!!o?.startsWith("https:");async function I(t){if(!t)return;const a="undefined"==typeof window?1:window.devicePixelRatio||1,n=`${Math.round(351*a)}x${Math.round(197*a)}`;return o.length(t.images)?y(t.images[0])||(t.images=await e.all(t.images.map(o=>i.bus.get("venueData/getPoiImageUrl",{imageName:o,size:n})))):t.images=[],o.length(t.fullImages)?y(t.fullImages[0]?.url)||(t.fullImages=await e.all(t.fullImages.map(async({url:o,...e})=>({url:await i.bus.get("venueData/getPoiImageUrl",{imageName:o,size:n}),...e})))):t.fullImages=[],t}const h=o.memoizeWith(o.identity,o.pipe(o.pluck("category"),o.values,o.uniq));i.bus.on("poi/getAllCategories",async()=>p.then(h)),i.bus.on("venueData/loadNewVenue",()=>{p=new e,u()}),i.bus.on("poi/setDynamicData",({plugin:e,idValuesMap:t})=>{p.then(a=>{for(const i in t){const n=a[i].dynamicData||{};n[e]={...t[i]};const r=o.mergeRight(a[i],{dynamicData:n});a[i]=r}})});return{init:u,runTest:async o=>(await o(),p),internal:{addImages:I,pseudoTransPoi:r}}}function r(o,e){return["description","nearbyLandmark","name","phone","operationHours"].forEach(t=>{o[t]&&(o[t]=i(o[t],e))}),o.keywords&&(o.keywords=o.keywords.map(o=>(o.name=i(o.name,e),o))),o.position.floorName&&(o.position.floorName=i(o.position.floorName,e)),o.position.structureName&&(o.position.structureName=i(o.position.structureName,e)),o}export{n as create};
@@ -1 +1 @@
1
- import*as e from"ramda";import{locationToEndpoint as t,getStructures as n}from"../../../src/utils/location.js";const s=[{command:"destroy"},{command:"getDirections",args:[{name:"from",type:"location"},{name:"to",type:"location"},{name:"accessible",type:"boolean",optional:!0},{name:"queueTypes",type:"list",itemType:{type:"string"},optional:!0}]},{command:"getDirectionsMultiple",args:[{name:"locations",type:"list",itemType:{type:"location"}},{name:"accessible",type:"boolean",optional:!0},{name:"queueTypes",type:"list",itemType:{type:"string"},optional:!0}]},{command:"getPOIDetails",args:[{name:"poiId",type:"integer",min:0}]},{command:"getAllPOIs"},{command:"getStructures"},{command:"getVenueData"},{command:"search",args:[{name:"term",type:"string",minLength:2},{name:"details",type:"boolean",optional:!0}]}];function i(s){s.bus.on("clientAPI/destroy",(async()=>s.destroy())),s.bus.on("clientAPI/getDirections",(async({from:n,to:i,accessible:a,queueTypes:o})=>{const c=await t(s,n),r=await t(s,i),l={requiresAccessibility:!!a};return o&&(l.selectedSecurityLanes={SecurityLane:o}),s.bus.get("wayfinder/getRoute",{fromEndpoint:c,toEndpoint:r,options:l}).then(e.pick(["distance","time","steps","navline","waypoints"]))})),s.bus.on("clientAPI/getDirectionsMultiple",(async({locations:n,accessible:i,queueTypes:a})=>{const o=await Promise.all(n.map((async e=>t(s,e)))),c={requiresAccessibility:!!i};a&&(c.selectedSecurityLanes={SecurityLane:a});const r=await Promise.all(e.aperture(2,o).map((async e=>s.bus.get("wayfinder/getRoute",{fromEndpoint:e[0],toEndpoint:e[1],options:c})))),l=e.map(e.pick(["distance","time","steps","navline","waypoints"]),r);return{total:{distance:e.sum(e.map((e=>e.distance),l)),time:e.sum(e.map((e=>e.time),l))},directions:l}})),s.bus.on("clientAPI/getPOIDetails",(async({poiId:e})=>s.bus.get("poi/getById",{id:e}))),s.bus.on("clientAPI/getAllPOIs",(async()=>s.bus.get("poi/getAll"))),s.bus.on("clientAPI/getStructures",(()=>n(s)));const i=e=>"function"!=typeof e;s.bus.on("clientAPI/getVenueData",(async()=>{const t=await s.bus.get("venueData/getVenueData");return e.filter(i,t)})),s.bus.on("clientAPI/search",(async({term:e,details:t})=>s.bus.get("search/queryAsync",{term:e}).then((n=>{const i=n.map((e=>e.poiId));return s.bus.send("event/search",{referrer:"prog",searchMethod:null,query:e,entities:i}),t?n:i}))))}export{i as handleHeadless,s as headlessCommands};
1
+ import*as e from"ramda";import{locationToEndpoint as t,getStructures as n}from"../../../src/utils/location.js";const s=[{command:"destroy"},{command:"getDirections",args:[{name:"from",type:"location"},{name:"to",type:"location"},{name:"accessible",type:"boolean",optional:!0},{name:"queueTypes",type:"list",itemType:{type:"string"},optional:!0}]},{command:"getDirectionsMultiple",args:[{name:"locations",type:"list",itemType:{type:"location"}},{name:"accessible",type:"boolean",optional:!0},{name:"queueTypes",type:"list",itemType:{type:"string"},optional:!0}]},{command:"getPOIDetails",args:[{name:"poiId",type:"integer",min:0}]},{command:"getAllPOIs"},{command:"getStructures"},{command:"getVenueData"},{command:"search",args:[{name:"term",type:"string",minLength:2},{name:"details",type:"boolean",optional:!0}]}];function i(s){s.bus.on("clientAPI/destroy",async()=>s.destroy()),s.bus.on("clientAPI/getDirections",async({from:n,to:i,accessible:a,queueTypes:o})=>{const c=await t(s,n),r=await t(s,i),l={requiresAccessibility:!!a};return o&&(l.selectedSecurityLanes={SecurityLane:o}),s.bus.get("wayfinder/getRoute",{fromEndpoint:c,toEndpoint:r,options:l}).then(e.pick(["distance","time","steps","navline","waypoints"]))}),s.bus.on("clientAPI/getDirectionsMultiple",async({locations:n,accessible:i,queueTypes:a})=>{const o=await Promise.all(n.map(async e=>t(s,e))),c={requiresAccessibility:!!i};a&&(c.selectedSecurityLanes={SecurityLane:a});const r=await Promise.all(e.aperture(2,o).map(async e=>s.bus.get("wayfinder/getRoute",{fromEndpoint:e[0],toEndpoint:e[1],options:c}))),l=e.map(e.pick(["distance","time","steps","navline","waypoints"]),r);return{total:{distance:e.sum(e.map(e=>e.distance,l)),time:e.sum(e.map(e=>e.time,l))},directions:l}}),s.bus.on("clientAPI/getPOIDetails",async({poiId:e})=>s.bus.get("poi/getById",{id:e})),s.bus.on("clientAPI/getAllPOIs",async()=>s.bus.get("poi/getAll")),s.bus.on("clientAPI/getStructures",()=>n(s));const i=e=>"function"!=typeof e;s.bus.on("clientAPI/getVenueData",async()=>{const t=await s.bus.get("venueData/getVenueData");return e.filter(i,t)}),s.bus.on("clientAPI/search",async({term:e,details:t})=>s.bus.get("search/queryAsync",{term:e}).then(n=>{const i=n.map(e=>e.poiId);return s.bus.send("event/search",{referrer:"prog",searchMethod:null,query:e,entities:i}),t?n:i}))}export{i as handleHeadless,s as headlessCommands};
@@ -1 +1 @@
1
- import{throttle as e}from"throttle-debounce";import{getStructureAndFloorAtPoint as t}from"../../../src/utils/geom.js";import o from"../../../src/utils/observable.js";import{headlessCommands as n,handleHeadless as a}from"./sdkHeadless.js";let s=null;function r(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 s&&s(),window.addEventListener("message",o),s=()=>window.removeEventListener("message",o),(e,t)=>{const o={event:e,payload:t,type:"LL-server"};window.postMessage(o,"*")}}async function i(s,i){const l=s.env.isBrowser?r(s):function(e){const t=o();return e.eventListener=t,(e,o)=>t.fire(e,o)}(s);return function(o,n){o.bus.monitor("map/userMoveStart",(async({pitch:e,zoom:t,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await o.bus.get("map/getMapCenter");n("userMoveStart",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:t,bearing:a})})),o.bus.monitor("map/userMoving",e(500,(async({pitch:e,zoom:t,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await o.bus.get("map/getMapCenter");n("userMoving",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:t,bearing:a})}))),o.bus.monitor("map/moveEnd",(async({pitch:e,zoom:t,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await o.bus.get("map/getMapCenter");n("moveEnd",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:t,bearing:a})})),o.bus.monitor("map/floorChanged",(({structure:e,floor:t})=>n("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}))),o.bus.monitor("map/poiClicked",(({poi:e})=>n("poiSelected",e))),o.bus.monitor("poiDetails/showPoi",(({poi:e})=>n("poiShown",e))),o.bus.monitor("map/click",(async({lat:e,lng:a,ord:s})=>{const r=await o.bus.get("venueData/getStructures"),i=await o.bus.get("map/getViewBBox"),{building:l,floor:d}=t(r,e,a,s,i,!0);n("mapClicked",{lat:e,lng:a,ord:s,building:l,floor:d})}))}(s,l),{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}]}})}(s),n.forEach((e=>s.bus.send("clientAPI/registerCommand",e))),a(s),i.headless||await import("../../../_virtual/_empty_module_placeholder.js").then((e=>{e.visualCommands.forEach((e=>s.bus.send("clientAPI/registerCommand",e))),e.handleVisual(s,l)}));const e=async()=>{await s.bus.send("system/readywhenyouare"),s.bus.get("clientAPI/execute",{command:"getCommandJSON"}).then((e=>l("ready",{commandJSON:e}))),!i.headless&&s.config.uiHide&&s.config.uiHide.sidebar&&s.env.isDesktop()&&s.bus.send("map/changePadding",{padding:{left:55,right:55,top:72,bottom:22}})};i.headless?Promise.all([new Promise((e=>s.bus.monitor("venueData/navGraphLoaded",e))),new Promise((e=>s.bus.monitor("venueData/poiDataLoaded",e)))]).then(e):s.bus.on("map/mapReadyToShow",e),s.bus.on("sdkServer/sendEvent",(({eventName:e,...t})=>l(e,t)))}}}export{i as create};
1
+ import{throttle as e}from"throttle-debounce";import{getStructureAndFloorAtPoint as t}from"../../../src/utils/geom.js";import o from"../../../src/utils/observable.js";import{headlessCommands as n,handleHeadless as a}from"./sdkHeadless.js";let s=null;function r(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 s&&s(),window.addEventListener("message",o),s=()=>window.removeEventListener("message",o),(e,t)=>{const o={event:e,payload:t,type:"LL-server"};window.postMessage(o,"*")}}async function i(s,i){const l=s.env.isBrowser?r(s):function(e){const t=o();return e.eventListener=t,(e,o)=>t.fire(e,o)}(s);return function(o,n){o.bus.monitor("map/userMoveStart",async({pitch:e,zoom:t,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await o.bus.get("map/getMapCenter");n("userMoveStart",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:t,bearing:a})}),o.bus.monitor("map/userMoving",e(500,async({pitch:e,zoom:t,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await o.bus.get("map/getMapCenter");n("userMoving",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:t,bearing:a})})),o.bus.monitor("map/moveEnd",async({pitch:e,zoom:t,bearing:a})=>{const{lat:s,lng:r,floorId:i,ordinal:l,structureId:d}=await o.bus.get("map/getMapCenter");n("moveEnd",{lat:s,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:t,bearing:a})}),o.bus.monitor("map/floorChanged",({structure:e,floor:t})=>n("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})),o.bus.monitor("map/poiClicked",({poi:e})=>n("poiSelected",e)),o.bus.monitor("poiDetails/showPoi",({poi:e})=>n("poiShown",e)),o.bus.monitor("map/click",async({lat:e,lng:a,ord:s})=>{const r=await o.bus.get("venueData/getStructures"),i=await o.bus.get("map/getViewBBox"),{building:l,floor:d}=t(r,e,a,s,i,!0);n("mapClicked",{lat:e,lng:a,ord:s,building:l,floor:d})})}(s,l),{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}]}})}(s),n.forEach(e=>s.bus.send("clientAPI/registerCommand",e)),a(s),i.headless||await import("../../../_virtual/_empty_module_placeholder.js").then(e=>{e.visualCommands.forEach(e=>s.bus.send("clientAPI/registerCommand",e)),e.handleVisual(s,l)});const e=async()=>{await s.bus.send("system/readywhenyouare"),s.bus.get("clientAPI/execute",{command:"getCommandJSON"}).then(e=>l("ready",{commandJSON:e})),!i.headless&&s.config.uiHide&&s.config.uiHide.sidebar&&s.env.isDesktop()&&s.bus.send("map/changePadding",{padding:{left:55,right:55,top:72,bottom:22}})};i.headless?Promise.all([new Promise(e=>s.bus.monitor("venueData/navGraphLoaded",e)),new Promise(e=>s.bus.monitor("venueData/poiDataLoaded",e))]).then(e):s.bus.on("map/mapReadyToShow",e),s.bus.on("sdkServer/sendEvent",({eventName:e,...t})=>l(e,t))}}}export{i as create};
@@ -1 +1 @@
1
- import*as t from"ramda";import{getFlexSearchInstance as a}from"./utils.js";function r(r,e){const o=a({lang:e});function n(a){return Object.values(a).map((a=>{const{poiId:r,category:e="",name:o,keywords:n=[],roomId:i=""}=a,c=t.path(["dynamicData","grab","tags"],a)||[],s=n.filter(t.prop("isUserSearchable")).map(t.prop("name")),p=`${o} ${e.split(".").join(" ")} ${i} ${s.join(" ")} ${c.join(" ")}`;return[Number(r),p]}))}return n(r).forEach((([t,a])=>o.add(t,a))),{search:function(a){const e={...a};e.limit||(e.limit=5e3);const n=o.search(e);return Object.values(t.pick(n,r))},updateMultiple:function(t){n(t).forEach((([t,a])=>o.update(t,a)))}}}export{r as default};
1
+ import*as t from"ramda";import{getFlexSearchInstance as a}from"./utils.js";function r(r,e){const o=a({lang:e});function n(a){return Object.values(a).map(a=>{const{poiId:r,category:e="",name:o,keywords:n=[],roomId:i=""}=a,c=t.path(["dynamicData","grab","tags"],a)||[],s=n.filter(t.prop("isUserSearchable")).map(t.prop("name")),p=`${o} ${e.split(".").join(" ")} ${i} ${s.join(" ")} ${c.join(" ")}`;return[Number(r),p]})}return n(r).forEach(([t,a])=>o.add(t,a)),{search:function(a){const e={...a};e.limit||(e.limit=5e3);const n=o.search(e);return Object.values(t.pick(n,r))},updateMultiple:function(t){n(t).forEach(([t,a])=>o.update(t,a))}}}export{r as default};
@@ -1 +1 @@
1
- import*as e from"ramda";import r from"zousan";import{getLocalized as a}from"../../../src/utils/configUtils.js";import{randomizeArray as s,arrayPick as t}from"../../../src/utils/rand.js";import n from"./poiSearch.js";import o from"./searchTypeahead.js";function i(i,c){const u={poiSearch:null,typeahead:null,indexesCreated:new r,defaultSearchTerms:null,specialQueryTerms:{}},d=async()=>{const e=await i.bus.get("poi/getAll");u.poiSearch=n(e,i.i18n().language),u.typeahead=o(e,u.poiSearch.search,i.i18n().language),u.defaultSearchTerms=a(c,"defaultSearchTerms",i.i18n().language),u.indexesCreated.resolve()};async function y(){const r=await i.bus.getFirst("user/getPhysicalLocation");if(!r?.floorId)return[];const a=await i.bus.get("poi/getByFloorId",{floorId:r?.floorId}),s=Object.values(e.pickBy((e=>-1===e.category.indexOf("portal")&&"element.door"!==e.category),a)),t=await i.bus.get("wayfinder/addPathTimeMultiple",{pois:s,startLocation:r});return e.sortBy(e.prop("distance"),Object.values(t)).slice(0,50)}i.bus.on("search/queryNearby",(async()=>{const e=await y();return i.bus.send("search/showNearby",{pois:e,term:"Nearby"}),e})),i.bus.on("search/queryNearbyAsync",y),i.bus.on("search/queryCategory",(async({category:e,categoryName:r,searchTerm:a})=>{const s=await u.indexesCreated.then((()=>u.poiSearch.search({query:a||e})));return i.bus.send("search/showCategory",{pois:s,category:e,categoryName:r}),s})),i.bus.on("search/query",(({term:e})=>u.indexesCreated.then((()=>{const r=u.poiSearch.search({query:e});return i.bus.send("search/showSearchResults",{results:r,term:e}),r})))),i.bus.on("search/queryAsync",(({term:e})=>u.indexesCreated.then((()=>u.poiSearch.search({query:e}))))),i.bus.on("search/queryWithSpecial",(({term:e})=>{if(u.specialQueryTerms[e]){const{event:r,params:a}=u.specialQueryTerms[e];return i.bus.send(r,a)}return i.bus.get("search/query",{term:e})})),i.bus.on("search/getDefaultSearchTerms",(async({limit:e=5}={})=>{const r=u.defaultSearchTerms,a=r&&r.length?r:await async function(e){const r=(await i.bus.send("poi/getAllCategories"))[0],a=Array.from(new Set(r));return s(a).slice(0,e)}(e);return i.bus.send("search/showDefaultSearchKeywords",{keywords:a}),a})),i.bus.on("search/getDefaultSearchPois",(async({limit:r=5}={})=>{const a=await i.bus.get("poi/getAll"),s=e.pickBy(((e,r)=>e.isNavigable),a);return t(Object.values(s),r)})),i.bus.on("search/registerSpecialQuery",(({term:e,event:r,params:a,addKeyword:s=!0})=>{u.indexesCreated.then((()=>{s&&u.typeahead.addKeyword(e),u.specialQueryTerms[e]={event:r,params:a}}))})),i.bus.on("search/addKeywords",(({keywords:e})=>u.indexesCreated.then((()=>e.forEach((e=>u.typeahead.addKeyword(e))))))),i.bus.on("search/typeahead",(({term:e,limit:r})=>u.indexesCreated.then((()=>{const{keywords:a,pois:s}=u.typeahead.query(e,r);return{keywords:a,pois:s,term:e}})))),i.bus.on("venueData/loadNewVenue",(()=>{u.indexesCreated=new r,d()})),i.bus.on("poi/setDynamicData",(async({plugin:e,idValuesMap:r})=>{if("grab"!==e)return;const a=Object.keys(r).map((e=>i.bus.get("poi/getById",{id:e})));return Promise.all(a).then((e=>u.indexesCreated.then((()=>u.poiSearch.updateMultiple(e)))))}));return{init:d,runTest:async(e,r)=>(await r(),u)}}export{i as create};
1
+ import*as e from"ramda";import r from"zousan";import{getLocalized as a}from"../../../src/utils/configUtils.js";import{randomizeArray as s,arrayPick as t}from"../../../src/utils/rand.js";import n from"./poiSearch.js";import o from"./searchTypeahead.js";function i(i,c){const u={poiSearch:null,typeahead:null,indexesCreated:new r,defaultSearchTerms:null,specialQueryTerms:{}},d=async()=>{const e=await i.bus.get("poi/getAll");u.poiSearch=n(e,i.i18n().language),u.typeahead=o(e,u.poiSearch.search,i.i18n().language),u.defaultSearchTerms=a(c,"defaultSearchTerms",i.i18n().language),u.indexesCreated.resolve()};async function y(){const r=await i.bus.getFirst("user/getPhysicalLocation");if(!r?.floorId)return[];const a=await i.bus.get("poi/getByFloorId",{floorId:r?.floorId}),s=Object.values(e.pickBy(e=>-1===e.category.indexOf("portal")&&"element.door"!==e.category,a)),t=await i.bus.get("wayfinder/addPathTimeMultiple",{pois:s,startLocation:r});return e.sortBy(e.prop("distance"),Object.values(t)).slice(0,50)}i.bus.on("search/queryNearby",async()=>{const e=await y();return i.bus.send("search/showNearby",{pois:e,term:"Nearby"}),e}),i.bus.on("search/queryNearbyAsync",y),i.bus.on("search/queryCategory",async({category:e,categoryName:r,searchTerm:a})=>{const s=await u.indexesCreated.then(()=>u.poiSearch.search({query:a||e}));return i.bus.send("search/showCategory",{pois:s,category:e,categoryName:r}),s}),i.bus.on("search/query",({term:e})=>u.indexesCreated.then(()=>{const r=u.poiSearch.search({query:e});return i.bus.send("search/showSearchResults",{results:r,term:e}),r})),i.bus.on("search/queryAsync",({term:e})=>u.indexesCreated.then(()=>u.poiSearch.search({query:e}))),i.bus.on("search/queryWithSpecial",({term:e})=>{if(u.specialQueryTerms[e]){const{event:r,params:a}=u.specialQueryTerms[e];return i.bus.send(r,a)}return i.bus.get("search/query",{term:e})}),i.bus.on("search/getDefaultSearchTerms",async({limit:e=5}={})=>{const r=u.defaultSearchTerms,a=r&&r.length?r:await async function(e){const r=(await i.bus.send("poi/getAllCategories"))[0],a=Array.from(new Set(r));return s(a).slice(0,e)}(e);return i.bus.send("search/showDefaultSearchKeywords",{keywords:a}),a}),i.bus.on("search/getDefaultSearchPois",async({limit:r=5}={})=>{const a=await i.bus.get("poi/getAll"),s=e.pickBy((e,r)=>e.isNavigable,a);return t(Object.values(s),r)}),i.bus.on("search/registerSpecialQuery",({term:e,event:r,params:a,addKeyword:s=!0})=>{u.indexesCreated.then(()=>{s&&u.typeahead.addKeyword(e),u.specialQueryTerms[e]={event:r,params:a}})}),i.bus.on("search/addKeywords",({keywords:e})=>u.indexesCreated.then(()=>e.forEach(e=>u.typeahead.addKeyword(e)))),i.bus.on("search/typeahead",({term:e,limit:r})=>u.indexesCreated.then(()=>{const{keywords:a,pois:s}=u.typeahead.query(e,r);return{keywords:a,pois:s,term:e}})),i.bus.on("venueData/loadNewVenue",()=>{u.indexesCreated=new r,d()}),i.bus.on("poi/setDynamicData",async({plugin:e,idValuesMap:r})=>{if("grab"!==e)return;const a=Object.keys(r).map(e=>i.bus.get("poi/getById",{id:e}));return Promise.all(a).then(e=>u.indexesCreated.then(()=>u.poiSearch.updateMultiple(e)))});return{init:d,runTest:async(e,r)=>(await r(),u)}}export{i as create};
@@ -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 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
+ 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 t from"zousan";import{normalizeCoords as a,getVenueDataFromUrls as n,buildStructures as s,createFetchJson as r,createFetchText as u}from"./venueLoadingUtils.js";async function o(o,i){const d=o.log.sublog("venueDataLoader");let l=new t,c=new t;const p=t=>t.defaultStructureId||e.path(["structureOrder",0],t)||e.path(["selectorOrder",0],t)||e.pipe(e.prop("structures"),Object.values,e.path([0,"id"]))(t),v=(e,t)=>e.split("").reduce(((a,n,s)=>e.substring(0,s+1)===t.substring(0,s+1)?s:a),-1)+1,g=e=>((e,t)=>Object.values(e.venueList).filter((e=>e.locale===t)).sort(((t,a)=>v(a.id,e.id)-v(t.id,e.id))).at(0))(e,"en")?.id;async function f(t,a){t.assetStage&&"prod"!==t.assetStage&&location.hostname;const i=r(),d=u(),c=await n(t,i,a),{accountId:v,venueId:f}=t;return c.assetStage=t.assetStage,c.defaultOrdinal=c.defaultOrdinal||function(t){const a=p(t),n=Object.values(t.structures).find(e.propEq(a,"id"));return n.levels[n.defaultLevelId].ordinal}(c),c.structures=s(c),c.baseVenueId=g(c),c.getTranslatedContentPath=e=>`https://content.locuslabs.com/${c.category}/${e}/${f}/${v}`,c.fetchJson=i,c.fetchText=d,o.config.debug&&o.env.isBrowser&&(window._venueData=c),c.queueTypes&&(c.securityQueueTypes=(()=>{const e=c.queueTypes.find((e=>"SecurityLane"===e.id));return e?e.subtypes.map((e=>e.id)):[]})()),o.bus.send("venueData/venueDataLoaded",{venueData:c}),l.resolve(c),l}function b(e){const t={id:"venueDataLoader"};return e.id!==i.venueId&&(t.vid=e.id),t.lang=o.i18n().language,"prod"!==e.assetStage&&(t.stage=e.assetStage),o.bus.send("deepLinking/notifyState",t),e}o.bus.on("debugTools/fileDrop",(async({file:e,content:t})=>{if("application/json"===e.type){const e=JSON.parse(t);if(e.basemap&&e["basemap.venue"])return n=JSON.parse(t),void o.bus.send("map/replaceTheme",{theme:n});if(e.metadata&&e.metadata["mapbox:type"])return a=t,void o.bus.send("map/replaceStyle",{styleSrc:a})}var a,n}));async function m(e){const t={...e},a=await o.bus.get("poi/getAll");return Object.values(t).forEach((e=>e.filter((e=>"poi"===e.properties.aiLayer&&"Point"===e.geometry.type)).forEach((e=>{const t=a[e.properties.id];t?t.mapLabel?e.properties.text=t.mapLabel:!1!==i.copyPOINamesToMap&&(e.properties.text=function(e){let t=e.name;return i.poiMapNameXForm?(Object.keys(i.poiMapNameXForm).filter((t=>((e,t)=>e===t||0===e.indexOf(t+"."))(e.category,t))).forEach((e=>{i.poiMapNameXForm[e].forEach((e=>t=t.replace(new RegExp(e.replace),e.with)))})),t):t}(t)):d.warn(`Unknown poi in style: ${e.properties.id}`)})))),t}const h=(t,a,n,s)=>{const r=t.replace(/-[^-]*$/,""),u=r===n?"landscape-background":`ordinal: ${s.find(e.hasPath(["levels",t])).levels[t].ordinal}`;return a.map((a=>{var s,o,i;return s="properties",o={venueId:n,structureId:r,ordinalId:u,levelId:t},i=a,a=e.over(e.lensProp(s),(t=>e.mergeRight(t||{},o)),i),a=e.assoc("id",a.properties.subid,a)}))};o.bus.on("venueData/loadMap",(async()=>{l.then((async a=>{const n=await a.fetchText(a.files.style),s=await a.fetchJson(a.files.theme),r=a.files.spritesheet,u=a.files.glyphs,{id:d,bounds:l,structures:p,venueCenter:v,venueRadius:g,defaultOrdinal:f}=a,b=a.venueList[d].mapTokens?{[d]:[]}: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=>t.all(e)),e.andThen(e.fromPairs))(a)}(a).then(m),y={mapFeatures:b,mapStyleSource:n,mapTheme:s,badgesSpriteUrl:r,mapGlyphsUrl:u,structures:p,defaultOrdinal:f,venueBounds:{n:l.ne.lat,s:l.sw.lat,e:l.ne.lng,w:l.sw.lng},venueId:d,venueCenter:v,venueRadius:g,accountId:i.accountId,secure:void 0!==i.auth,tileServerAuthInfo:a.tileServerAuthInfo};c.resolve(y),o.bus.send("venueData/mapDataLoaded",y)}))}));const y=e=>null==e.shouldDisplay||e.shouldDisplay;o.bus.on("venueData/loadBuildingSelectorData",(()=>l.then((async t=>{const a={buildings:t.structures.filter(y).map(e.evolve({levels:e.pipe(e.values,e.sortWith([e.descend(e.prop("ordinal"))]))})),structureOrder:t.structureOrder,selectorOrder:t.selectorOrder};return o.bus.send("venueData/buildingSelectorDataLoaded",a),a})))),o.bus.on("venueData/normalizeCoords",(({coords:e})=>l.then((t=>a(e,t.bounds)))));const D={edges:[],nodes:[]};o.bus.on("venueData/loadNavGraph",(async()=>l.then((async e=>{const t={navGraphData:e.files.nav?await e.fetchJson(e.files.nav):D,structures:e.structures};return o.bus.send("venueData/navGraphLoaded",t),t})))),o.bus.on("venueData/loadPoiData",(async()=>l.then((async e=>{const t=i.useOldDataModel?e.files.poisOld||e.files.pois:e.files.pois||e.files.poisOld;if(t){const a=await e.fetchJson(t);o.bus.send("venueData/poiDataLoaded",{pois:a,structures:e.structures})}})))),o.bus.on("venueData/getVenueCenter",(async()=>l.then((async e=>({lat:e.venueCenter[0],lng:e.venueCenter[1],ordinal:0}))))),o.bus.on("venueData/getContentUrl",(({type:e,name:t=""})=>l.then((a=>a.files[e]+t)))),o.bus.on("venueData/getFloorIdToNameMap",(()=>l.then(e.pipe(e.prop("structures"),e.map(e.prop("levels")),e.chain(e.values),e.map(e.props(["id","name"])),e.fromPairs)))),o.bus.on("venueData/getFloorIdName",(({floorId:t})=>l.then((async a=>{const n=e.pipe(e.values,e.find(e.hasPath(["levels",t])))(a.structures);return n?{structureId:n.id,structureName:n.name,floorName:n.levels[t].name}:null}))));const I=(t,a)=>()=>l.then(e.pipe(e.prop(t),e.defaultTo(a)));function w(e,t){const a=S(t);if(a.includes(e))return e;const n=e.split("-").slice(1).join("-");return a.find((e=>new RegExp(`${t.baseVenueId}.?.?-${n}`).test(e)))}o.bus.on("venueData/getVenueData",(()=>l)),o.bus.on("venueData/getVenueName",I("name")),o.bus.on("venueData/getVenueCategory",I("category")),o.bus.on("venueData/getVenueTimezone",I("tz")),o.bus.on("venueData/getAccountId",(()=>i.accountId)),o.bus.on("venueData/getVenueId",I("id")),o.bus.on("venueData/getPositioningSupported",I("positioningSupported")),o.bus.on("venueData/getStructures",I("structures")),o.bus.on("venueData/loadNewVenue",(async({venueId:e,accountId:a,assetStage:n=i.assetStage})=>{l.reject(new Error("loadNewVenue called - previous loading ignored")),c.reject(new Error("loadNewVenue called - previous loading ignored")),l=new t,c=new t,f({...i,venueId:e,accountId:a,assetStage:n},[]).then(b)})),o.bus.on("venueData/getPoiImageUrl",(({imageName:e,size:t})=>`https://img.locuslabs.com/resize/${i.accountId}/png/transparent/${t}contain/poi/${e}`)),o.bus.on("venueData/getDistributionId",(()=>l.then((e=>`${e.baseVenueId}-${i.accountId}`)))),o.bus.on("venueData/getCustomKeywords",(()=>l.then((e=>{const t=i.useOldDataModel&&e.files.searchOld||e.files.search;return e.fetchJson(t)})))),o.bus.on("venueData/isGrabEnabled",I("enableGrab")),o.bus.on("venueData/getGrabPoiIds",I("grabPoiIds",[])),o.bus.on("venueData/getAssetsTimestamp",I("version")),o.bus.on("venueData/getTranslatedFloorId",(async({floorId:e})=>l.then((t=>w(e,t)))));const S=e=>e.structures.reduce(((e,t)=>e.concat(Object.keys(t.levels))),[]);o.bus.on("venueData/getQueueTypes",(()=>l.then((e=>{const t=["tsapre","clear","globalEntry"];return e.queueTypes?e.queueTypes.reduce(((e,a)=>{const{id:n,subtypes:s}=a,r=s.map((e=>{const a=t.includes(e.id)&&`security-logo-${e.id.toLowerCase()}`;return{...e,imageId:a}}));return e[n]=r,e}),{}):{}}))));return{init:async()=>{let e=[];null===new URLSearchParams("undefined"==typeof window?"":window.location.search).get("lang")&&(e="undefined"==typeof window?[]:navigator.languages);const t=i.deepLinkProps||{};t.lang&&e.unshift(t.lang);const a=t.vid||i.venueId,n=i.useDynamicUrlParams&&t.stage?t.stage:i.assetStage,s=t.accountId||("alpha"===n?"A1VPTJKREFJWX5":i.accountId);f({...i,venueId:a,accountId:s,assetStage:n},e).then(b)},runTest:async({testRoutine:e,reset:a=!1,venueData:n=null})=>{let s,r;return(a||n)&&(l=new t,c=new t),n&&(l=t.resolve(n)),await e(),l.v&&(s=await l),c.v&&(r=await c),{venueDataObj:s,mapDataObj:r}},internal:{calculateBaseVenueId:g,getDefaultStructureId:p,getTranslatedFloorId:w,setConfigProperty:(e,t)=>{i[e]=t}}}}export{o as create};
1
+ import*as e from"ramda";import t from"zousan";import{normalizeCoords as a,getVenueDataFromUrls as n,buildStructures as s,createFetchJson as r,createFetchText as u}from"./venueLoadingUtils.js";async function o(o,i){const d=o.log.sublog("venueDataLoader");let l=new t,c=new t;const p=t=>t.defaultStructureId||e.path(["structureOrder",0],t)||e.path(["selectorOrder",0],t)||e.pipe(e.prop("structures"),Object.values,e.path([0,"id"]))(t),v=(e,t)=>e.split("").reduce((a,n,s)=>e.substring(0,s+1)===t.substring(0,s+1)?s:a,-1)+1,g=e=>((e,t)=>Object.values(e.venueList).filter(e=>e.locale===t).sort((t,a)=>v(a.id,e.id)-v(t.id,e.id)).at(0))(e,"en")?.id;async function f(t,a){t.assetStage&&"prod"!==t.assetStage&&location.hostname;const i=r(),d=u(),c=await n(t,i,a),{accountId:v,venueId:f}=t;return c.assetStage=t.assetStage,c.defaultOrdinal=c.defaultOrdinal||function(t){const a=p(t),n=Object.values(t.structures).find(e.propEq(a,"id"));return n.levels[n.defaultLevelId].ordinal}(c),c.structures=s(c),c.baseVenueId=g(c),c.getTranslatedContentPath=e=>`https://content.locuslabs.com/${c.category}/${e}/${f}/${v}`,c.fetchJson=i,c.fetchText=d,o.config.debug&&o.env.isBrowser&&(window._venueData=c),c.queueTypes&&(c.securityQueueTypes=(()=>{const e=c.queueTypes.find(e=>"SecurityLane"===e.id);return e?e.subtypes.map(e=>e.id):[]})()),o.bus.send("venueData/venueDataLoaded",{venueData:c}),l.resolve(c),l}function b(e){const t={id:"venueDataLoader"};return e.id!==i.venueId&&(t.vid=e.id),t.lang=o.i18n().language,"prod"!==e.assetStage&&(t.stage=e.assetStage),o.bus.send("deepLinking/notifyState",t),e}o.bus.on("debugTools/fileDrop",async({file:e,content:t})=>{if("application/json"===e.type){const e=JSON.parse(t);if(e.basemap&&e["basemap.venue"])return n=JSON.parse(t),void o.bus.send("map/replaceTheme",{theme:n});if(e.metadata&&e.metadata["mapbox:type"])return a=t,void o.bus.send("map/replaceStyle",{styleSrc:a})}var a,n});async function m(e){const t={...e},a=await o.bus.get("poi/getAll");return Object.values(t).forEach(e=>e.filter(e=>"poi"===e.properties.aiLayer&&"Point"===e.geometry.type).forEach(e=>{const t=a[e.properties.id];t?t.mapLabel?e.properties.text=t.mapLabel:!1!==i.copyPOINamesToMap&&(e.properties.text=function(e){let t=e.name;return i.poiMapNameXForm?(Object.keys(i.poiMapNameXForm).filter(t=>((e,t)=>e===t||0===e.indexOf(t+"."))(e.category,t)).forEach(e=>{i.poiMapNameXForm[e].forEach(e=>t=t.replace(new RegExp(e.replace),e.with))}),t):t}(t)):d.warn(`Unknown poi in style: ${e.properties.id}`)})),t}const h=(t,a,n,s)=>{const r=t.replace(/-[^-]*$/,""),u=r===n?"landscape-background":`ordinal: ${s.find(e.hasPath(["levels",t])).levels[t].ordinal}`;return a.map(a=>{var s,o,i;return s="properties",o={venueId:n,structureId:r,ordinalId:u,levelId:t},i=a,a=e.over(e.lensProp(s),t=>e.mergeRight(t||{},o),i),a=e.assoc("id",a.properties.subid,a)})};o.bus.on("venueData/loadMap",async()=>{l.then(async a=>{const n=await a.fetchText(a.files.style),s=await a.fetchJson(a.files.theme),r=a.files.spritesheet,u=a.files.glyphs,{id:d,bounds:l,structures:p,venueCenter:v,venueRadius:g,defaultOrdinal:f}=a,b=a.venueList[d].mapTokens?{[d]:[]}: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=>t.all(e),e.andThen(e.fromPairs))(a)}(a).then(m),y={mapFeatures:b,mapStyleSource:n,mapTheme:s,badgesSpriteUrl:r,mapGlyphsUrl:u,structures:p,defaultOrdinal:f,venueBounds:{n:l.ne.lat,s:l.sw.lat,e:l.ne.lng,w:l.sw.lng},venueId:d,venueCenter:v,venueRadius:g,accountId:i.accountId,secure:void 0!==i.auth,tileServerAuthInfo:a.tileServerAuthInfo};c.resolve(y),o.bus.send("venueData/mapDataLoaded",y)})});const y=e=>null==e.shouldDisplay||e.shouldDisplay;o.bus.on("venueData/loadBuildingSelectorData",()=>l.then(async t=>{const a={buildings:t.structures.filter(y).map(e.evolve({levels:e.pipe(e.values,e.sortWith([e.descend(e.prop("ordinal"))]))})),structureOrder:t.structureOrder,selectorOrder:t.selectorOrder};return o.bus.send("venueData/buildingSelectorDataLoaded",a),a})),o.bus.on("venueData/normalizeCoords",({coords:e})=>l.then(t=>a(e,t.bounds)));const D={edges:[],nodes:[]};o.bus.on("venueData/loadNavGraph",async()=>l.then(async e=>{const t={navGraphData:e.files.nav?await e.fetchJson(e.files.nav):D,structures:e.structures};return o.bus.send("venueData/navGraphLoaded",t),t})),o.bus.on("venueData/loadPoiData",async()=>l.then(async e=>{const t=i.useOldDataModel?e.files.poisOld||e.files.pois:e.files.pois||e.files.poisOld;if(t){const a=await e.fetchJson(t);o.bus.send("venueData/poiDataLoaded",{pois:a,structures:e.structures})}})),o.bus.on("venueData/getVenueCenter",async()=>l.then(async e=>({lat:e.venueCenter[0],lng:e.venueCenter[1],ordinal:0}))),o.bus.on("venueData/getContentUrl",({type:e,name:t=""})=>l.then(a=>a.files[e]+t)),o.bus.on("venueData/getFloorIdToNameMap",()=>l.then(e.pipe(e.prop("structures"),e.map(e.prop("levels")),e.chain(e.values),e.map(e.props(["id","name"])),e.fromPairs))),o.bus.on("venueData/getFloorIdName",({floorId:t})=>l.then(async a=>{const n=e.pipe(e.values,e.find(e.hasPath(["levels",t])))(a.structures);return n?{structureId:n.id,structureName:n.name,floorName:n.levels[t].name}:null}));const I=(t,a)=>()=>l.then(e.pipe(e.prop(t),e.defaultTo(a)));function w(e,t){const a=S(t);if(a.includes(e))return e;const n=e.split("-").slice(1).join("-");return a.find(e=>new RegExp(`${t.baseVenueId}.?.?-${n}`).test(e))}o.bus.on("venueData/getVenueData",()=>l),o.bus.on("venueData/getVenueName",I("name")),o.bus.on("venueData/getVenueCategory",I("category")),o.bus.on("venueData/getVenueTimezone",I("tz")),o.bus.on("venueData/getAccountId",()=>i.accountId),o.bus.on("venueData/getVenueId",I("id")),o.bus.on("venueData/getPositioningSupported",I("positioningSupported")),o.bus.on("venueData/getStructures",I("structures")),o.bus.on("venueData/loadNewVenue",async({venueId:e,accountId:a,assetStage:n=i.assetStage})=>{l.reject(new Error("loadNewVenue called - previous loading ignored")),c.reject(new Error("loadNewVenue called - previous loading ignored")),l=new t,c=new t,f({...i,venueId:e,accountId:a,assetStage:n},[]).then(b)}),o.bus.on("venueData/getPoiImageUrl",({imageName:e,size:t})=>`https://img.locuslabs.com/resize/${i.accountId}/png/transparent/${t}contain/poi/${e}`),o.bus.on("venueData/getDistributionId",()=>l.then(e=>`${e.baseVenueId}-${i.accountId}`)),o.bus.on("venueData/getCustomKeywords",()=>l.then(e=>{const t=i.useOldDataModel&&e.files.searchOld||e.files.search;return e.fetchJson(t)})),o.bus.on("venueData/isGrabEnabled",I("enableGrab")),o.bus.on("venueData/getGrabPoiIds",I("grabPoiIds",[])),o.bus.on("venueData/getAssetsTimestamp",I("version")),o.bus.on("venueData/getTranslatedFloorId",async({floorId:e})=>l.then(t=>w(e,t)));const S=e=>e.structures.reduce((e,t)=>e.concat(Object.keys(t.levels)),[]);o.bus.on("venueData/getQueueTypes",()=>l.then(e=>{const t=["tsapre","clear","globalEntry"];return e.queueTypes?e.queueTypes.reduce((e,a)=>{const{id:n,subtypes:s}=a,r=s.map(e=>{const a=t.includes(e.id)&&`security-logo-${e.id.toLowerCase()}`;return{...e,imageId:a}});return e[n]=r,e},{}):{}}));return{init:async()=>{let e=[];null===new URLSearchParams("undefined"==typeof window?"":window.location.search).get("lang")&&(e="undefined"==typeof window?[]:navigator.languages);const t=i.deepLinkProps||{};t.lang&&e.unshift(t.lang);const a=t.vid||i.venueId,n=i.useDynamicUrlParams&&t.stage?t.stage:i.assetStage,s=t.accountId||("alpha"===n?"A1VPTJKREFJWX5":i.accountId);f({...i,venueId:a,accountId:s,assetStage:n},e).then(b)},runTest:async({testRoutine:e,reset:a=!1,venueData:n=null})=>{let s,r;return(a||n)&&(l=new t,c=new t),n&&(l=t.resolve(n)),await e(),l.v&&(s=await l),c.v&&(r=await c),{venueDataObj:s,mapDataObj:r}},internal:{calculateBaseVenueId:g,getDefaultStructureId:p,getTranslatedFloorId:w,setConfigProperty:(e,t)=>{i[e]=t}}}}export{o as create};
@@ -1 +1 @@
1
- import*as e from"ramda";import{findBoundsOfCoordinates as t}from"../../../src/utils/bounds.js";import{global as n}from"../../../src/utils/configUtils.js";const s=async(e,t)=>fetch(t),a=e=>e=>s(0,e).then((e=>e.json())),o=e=>e=>s(0,e).then((e=>e.text())),l=e=>`https://api.content.locuslabs.com/${e}`,r=(t,n,s,a,o)=>e.mapObjIndexed(((e,n)=>((e,t,n,s,a,o)=>"theme"===o||"style"===o?`${l(n)}/${t}/${o}/${a}/${s}/${o}.json`:e.replace(/https:\/\/content.locuslabs.com/gi,l(n)))(e,t,s,a,o,n)),n),c=async(e,t,s)=>{const a={alpha:"alpha-a.locuslabs.com",beta:"beta-a.locuslabs.com",gamma:"gamma-a.locuslabs.com",prod:"a.locuslabs.com"},{assetStage:o,accountId:l,formatVersion:c}=e;let{venueId:i}=e;const u=`https://${a[o]||a.prod}/accounts/${l}`,d=c||"v5",g=e.dataFetch&&n[e.dataFetch]&&n[e.dataFetch].getFiles?await n[e.dataFetch].getFiles(e):await t(`${u}/${d}.json`);if(s.length>0){const t=s.map((e=>e.slice(0,2)));for(let n=0;n<t.length;n+=1)if(g[`${i}${t[n]}`]){i=`${i}${t[n]}`,e.venueId=`${i}`;break}}if(!g[i])throw Error(`Attempt to access venue ${i} which is not within venue list: ${Object.keys(g)}`);const h=g[i].files,m=(e.dataFetch&&n[e.dataFetch]&&n[e.dataFetch].getVenueData?await n[e.dataFetch].getVenueData(e):await t(h.venueData))[i];m.tileServerAuthInfo&&function(e){const t={defaultOrdinal:0,defaultStructureId:"singleBuilding",formatVersion:"v5",structures:{singleBuilding:{name:"singleBuilding",boundsPolygon:[],defaultLevelId:"singleLevel",id:"singleBuilding",levels:{singleLevel:{boundsPolygon:[],clfloor:0,details:"",id:"singleLevel",name:"singleLevel",ordinal:0}}}},structureOrder:["singleBuilding"]};for(const n in t)e[n]=t[n]}(m),m.venueList=g;const p=(e=>{const t=e.deepLinkProps?e.deepLinkProps.contentStage:null;return"alpha"===t||"beta"===t||"prod"===t?t:null})(e);return m.files=p?r(m.category,h,p,l,i):h,m},i=e=>{const{structureOrder:n,structures:s}=e;return n.map((e=>{const n=s[e];Object.values(n.levels).forEach((e=>e.bounds=t(e.boundsPolygon)));const a=t(n.boundsPolygon);return{...n,bounds:a}}))};const u=([e,t,...n])=>[t,e,...n],d=(e,t)=>{return!e||!Array.isArray(e)||e.length<1?e:(n=e[0][0],s=t.ne.lng,a=t.sw.lng,(n>s?n<=a:e=>a)?e:e.map(u));var n,s,a};export{i as buildStructures,a as createFetchJson,o as createFetchText,c as getVenueDataFromUrls,d as normalizeCoords};
1
+ import*as e from"ramda";import{findBoundsOfCoordinates as t}from"../../../src/utils/bounds.js";import{global as n}from"../../../src/utils/configUtils.js";const s=async(e,t)=>fetch(t),a=e=>e=>s(0,e).then(e=>e.json()),o=e=>e=>s(0,e).then(e=>e.text()),l=e=>`https://api.content.locuslabs.com/${e}`,r=(t,n,s,a,o)=>e.mapObjIndexed((e,n)=>((e,t,n,s,a,o)=>"theme"===o||"style"===o?`${l(n)}/${t}/${o}/${a}/${s}/${o}.json`:e.replace(/https:\/\/content.locuslabs.com/gi,l(n)))(e,t,s,a,o,n),n),c=async(e,t,s)=>{const a={alpha:"alpha-a.locuslabs.com",beta:"beta-a.locuslabs.com",gamma:"gamma-a.locuslabs.com",prod:"a.locuslabs.com"},{assetStage:o,accountId:l,formatVersion:c}=e;let{venueId:i}=e;const u=`https://${a[o]||a.prod}/accounts/${l}`,d=c||"v5",g=e.dataFetch&&n[e.dataFetch]&&n[e.dataFetch].getFiles?await n[e.dataFetch].getFiles(e):await t(`${u}/${d}.json`);if(s.length>0){const t=s.map(e=>e.slice(0,2));for(let n=0;n<t.length;n+=1)if(g[`${i}${t[n]}`]){i=`${i}${t[n]}`,e.venueId=`${i}`;break}}if(!g[i])throw Error(`Attempt to access venue ${i} which is not within venue list: ${Object.keys(g)}`);const h=g[i].files,m=(e.dataFetch&&n[e.dataFetch]&&n[e.dataFetch].getVenueData?await n[e.dataFetch].getVenueData(e):await t(h.venueData))[i];m.tileServerAuthInfo&&function(e){const t={defaultOrdinal:0,defaultStructureId:"singleBuilding",formatVersion:"v5",structures:{singleBuilding:{name:"singleBuilding",boundsPolygon:[],defaultLevelId:"singleLevel",id:"singleBuilding",levels:{singleLevel:{boundsPolygon:[],clfloor:0,details:"",id:"singleLevel",name:"singleLevel",ordinal:0}}}},structureOrder:["singleBuilding"]};for(const n in t)e[n]=t[n]}(m),m.venueList=g;const p=(e=>{const t=e.deepLinkProps?e.deepLinkProps.contentStage:null;return"alpha"===t||"beta"===t||"prod"===t?t:null})(e);return m.files=p?r(m.category,h,p,l,i):h,m},i=e=>{const{structureOrder:n,structures:s}=e;return n.map(e=>{const n=s[e];Object.values(n.levels).forEach(e=>e.bounds=t(e.boundsPolygon));const a=t(n.boundsPolygon);return{...n,bounds:a}})};const u=([e,t,...n])=>[t,e,...n],d=(e,t)=>{return!e||!Array.isArray(e)||e.length<1?e:(n=e[0][0],s=t.ne.lng,a=t.sw.lng,(n>s?n<=a:e=>a)?e:e.map(u));var n,s,a};export{i as buildStructures,a as createFetchJson,o as createFetchText,c as getVenueDataFromUrls,d as normalizeCoords};
@@ -1 +1 @@
1
- import*as e from"ramda";import{SecurityLaneType as t}from"./wayfinder.js";const i=t=>i=>e.find((e=>e.dst===t),i.edges),r=(r,s,a,n={})=>{const o=[],u=[];let c=!1,l=!1;const d=((e,t,i,r)=>{if(!t||!i)throw Error("bad calculate Route request!");return e.findShortestPath(t,i,r)})(r,s,a,n);if(null===d)return null;let y=null;for(let r=0;r<d.length;r++){const s={distance:0,eta:0};if(y){const e=i(d[r].id)(y);null!=e&&(s.distance=e.distance,s.eta=e.transitTime,"Ground"!==e.type&&(s.portalType=e.type,s.isPortal=!0),e.o&&(s.poiId=e.o),e.path&&(s.curvedPathForward=e.path),e.securityWaitTimes&&(s.securityWaitTimes=e.securityWaitTimes,s.eta=s.securityWaitTimes.queueTime),e.securityLane&&(s.securityLane=e.securityLane,s.isSecurityCheckpoint=!0,e.securityLane.type===t.SECURITY&&(c=!0),e.securityLane.type===t.IMMIGRATION&&(l=!0),e.o&&u.push(e.o)))}s.levelDifference=y?d[r].ordinal-y.ordinal:0,s.position=e.omit(["edges","id"],{...d[r]}),o.push(s),y=d[r]}return e.last(o).isDestination=!0,{waypoints:o,queues:u,hasSecurity:c,hasImmigration:l}};export{r as findRoute};
1
+ import*as e from"ramda";import{SecurityLaneType as t}from"./wayfinder.js";const i=t=>i=>e.find(e=>e.dst===t,i.edges),r=(r,s,a,n={})=>{const o=[],u=[];let c=!1,l=!1;const d=((e,t,i,r)=>{if(!t||!i)throw Error("bad calculate Route request!");return e.findShortestPath(t,i,r)})(r,s,a,n);if(null===d)return null;let y=null;for(let r=0;r<d.length;r++){const s={distance:0,eta:0};if(y){const e=i(d[r].id)(y);null!=e&&(s.distance=e.distance,s.eta=e.transitTime,"Ground"!==e.type&&(s.portalType=e.type,s.isPortal=!0),e.o&&(s.poiId=e.o),e.path&&(s.curvedPathForward=e.path),e.securityWaitTimes&&(s.securityWaitTimes=e.securityWaitTimes,s.eta=s.securityWaitTimes.queueTime),e.securityLane&&(s.securityLane=e.securityLane,s.isSecurityCheckpoint=!0,e.securityLane.type===t.SECURITY&&(c=!0),e.securityLane.type===t.IMMIGRATION&&(l=!0),e.o&&u.push(e.o)))}s.levelDifference=y?d[r].ordinal-y.ordinal:0,s.position=e.omit(["edges","id"],{...d[r]}),o.push(s),y=d[r]}return e.last(o).isDestination=!0,{waypoints:o,queues:u,hasSecurity:c,hasImmigration:l}};export{r as findRoute};
@@ -1 +1 @@
1
- import{pick as t,isNil as o,map as n,omit as e,path as r}from"ramda";import{encode as i,calculateAdjacent as s}from"../../../src/extModules/geohasher.js";import{distance as l}from"../../../src/utils/geodesy.js";import d from"./minPriorityQueue.js";function u(r,s,l,d){const u={},c={},a=new Set;let h={};r.nodes.forEach((o=>{const n=s(o.floorId),e=l(o.floorId);!function(t){const o=t.floorId+":"+i(t.lat,t.lng).substr(0,7),n=t.floorId+":"+i(t.lat,t.lng).substr(0,8);c[o]||(c[o]=[]);c[o].push(t),c[n]||(c[n]=[]);c[n].push(t),u[t.id]=t}({...t(["id","lat","lng","floorId"],o),edges:[],ordinal:n,structureId:e})})),r.edges.forEach((t=>u[t.s].edges.push(function(t,n){const e=function(t){return t.x?"Security Checkpoint":""===t.t?"Ground":t.t}(t),r="escalator"!==e.toLowerCase()&&"stairs"!==e.toLowerCase(),i=f(t.s,t.d,n),s=t.l||i/60,l=t=>t.map((t=>({start:{lat:t.s[0],lng:t.s[1]},out:{lat:t.o[0],lng:t.o[1]},in:{lat:t.i[0],lng:t.i[1]},end:{lat:t.e[0],lng:t.e[1]}}))),d=t.p?l(t.p):null;return{distance:i,dst:t.d,o:t.o,isAccessible:r,isDriveway:!o(t.h)&&!t.h,src:t.s,transitTime:s,type:e,path:d,weight:s}}(t,u))));const p=t=>{if(void 0===t.floorId&&void 0===t.ordinal)throw Error("Endpoint specified in findRoute without floorId nor an ordinal");const o=t.lat||t.latitude,n=t.lng||t.longitude;return t.floorId?w(t.floorId,o,n,c,u):T(t.ordinal,o,n,u)};return{_nodes:u,_geoDb:c,_nodesToAvoid:a,addNodesToAvoid:t=>function(t){a.clear(),t.forEach((t=>a.add(t)))}(t),findClosestNode:(t,o,n)=>w(t,o,n,c,u),findShortestPath:(t,o,n)=>function(t,o,n,e={}){return I(p(t),p(o),n,a,h,d,e)}(t,o,u,n),findAllShortestPaths:function(t,o,n){const e=p(t),r=o.map((t=>p(t)));return e&&r.length?function(t,o,n,e,r={},i={},s={}){return o.map((o=>{try{return I(t,o,n,e,r,i,s)}catch(t){return null}}))}(e,r,u,a,h,d,n):[]},floorIdToOrdinal:s,floorIdToStructureId:l,updateWithSecurityWaitTime:function(t){h=n(e(["lastUpdated"]),t),y()},clearCache:y}}function f(t,o,n){const e=n[t],r=n[o];return l(e.lat,e.lng,r.lat,r.lng)}let c,a,h,p,g,m;const y=()=>{c={},a={},h={},p=new d,g=null,m={}};function I(t,o,n,e,i={},s={},l={}){for(t.id===g&&m===JSON.stringify(l)||(y(),p.offerWithPriority(t.id,0),c[t.id]=0,h[t.id]=!0,g=t.id,m=JSON.stringify(l));!p.isEmpty()&&!h[o.id];){const t=n[p.poll()],o=c[t.id];for(let n=0;n<t.edges.length;n++){const d=t.edges[n];if(e.size>0&&e.has(d.dst))continue;if(h[d.dst])continue;if(l.requiresAccessibility&&!d.isAccessible)continue;let u=d.weight;if(d.o&&i[d.o]){const t=i[d.o];t.queueTime&&(u=t.queueTime),t.isTemporarilyClosed&&(u=9999),d.securityWaitTimes=t}if(d.o&&s[d.o]){d.securityLane=s[d.o];const{type:t,id:o}=s[d.o],n=r(["selectedSecurityLanes",t],l);if(n&&!n.includes(o))continue}void 0===c[d.dst]?(a[d.dst]=t,c[d.dst]=o+u,p.offerWithPriority(d.dst,o+u)):c[d.dst]>o+u&&(c[d.dst]=o+u,a[d.dst]=t,p.raisePriority(d.dst,o+u))}h[t.id]=!0}if(!h[o.id])return null;const d=[];let u=o;for(;u;)d.push(u),u=a[u.id];return d.reverse()}function b(t,o,n,e){const r=o.substr(0,e),i=[];i.push(t+":"+s(s(r,"top"),"left")),i.push(t+":"+s(r,"top")),i.push(t+":"+s(s(r,"top"),"right")),i.push(t+":"+s(r,"left")),i.push(t+":"+r),i.push(t+":"+s(r,"right")),i.push(t+":"+s(s(r,"bottom"),"left")),i.push(t+":"+s(r,"bottom")),i.push(t+":"+s(s(r,"bottom"),"right"));const l=[];for(let t=0;t<i.length;t++){const o=n[i[t]];if(o)for(let t=0;t<o.length;t++)l.push(o[t])}return l}function w(t,o,n,e,r){const s=function(t,o,n){let e=b(t,o,n,8);return e.length>0?e:(e=b(t,o,n,7),e.length>0?e:null)}(t,i(o,n),e)||function(t,o,n,e){const r=Object.values(e).filter((o=>o.floorId===t)).map((t=>[t,l(t.lat,t.lng,o,n)]));if(!r.length)throw Error(`findClosestNodeByFloor2 found no nodes on floor ${t}`);return v(r)}(t,o,n,r),d=[];for(let t=0;t<s.length;t++){const e=l(o,n,s[t].lat,s[t].lng);d.push([s[t],e])}d.sort((function(t,o){return t[1]-o[1]}));const u=[];for(let t=0;t<d.length;t++)u.push(d[t][0]);return u[0]}function T(t,o,n,e){const r=Object.values(e).filter((o=>o.ordinal===t)).map((t=>[t,l(t.lat,t.lng,o,n)]));if(!r.length)throw Error(`findClosestNodeByOrdinal found no nodes on ordinal ${t}`);return v(r)}function v(t){let o=t[0];for(let n=1;n<t.length;n++)t[n][1]<o[1]&&(o=t[n]);return o[0]}export{u as createNavGraph,T as findClosestNodeByOrdinal,I as findShortestPath};
1
+ import{pick as t,isNil as o,map as n,omit as e,path as r}from"ramda";import{encode as i,calculateAdjacent as s}from"../../../src/extModules/geohasher.js";import{distance as l}from"../../../src/utils/geodesy.js";import d from"./minPriorityQueue.js";function u(r,s,l,d){const u={},c={},a=new Set;let h={};r.nodes.forEach(o=>{const n=s(o.floorId),e=l(o.floorId);!function(t){const o=t.floorId+":"+i(t.lat,t.lng).substr(0,7),n=t.floorId+":"+i(t.lat,t.lng).substr(0,8);c[o]||(c[o]=[]);c[o].push(t),c[n]||(c[n]=[]);c[n].push(t),u[t.id]=t}({...t(["id","lat","lng","floorId"],o),edges:[],ordinal:n,structureId:e})}),r.edges.forEach(t=>u[t.s].edges.push(function(t,n){const e=function(t){return t.x?"Security Checkpoint":""===t.t?"Ground":t.t}(t),r="escalator"!==e.toLowerCase()&&"stairs"!==e.toLowerCase(),i=f(t.s,t.d,n),s=t.l||i/60,l=t=>t.map(t=>({start:{lat:t.s[0],lng:t.s[1]},out:{lat:t.o[0],lng:t.o[1]},in:{lat:t.i[0],lng:t.i[1]},end:{lat:t.e[0],lng:t.e[1]}})),d=t.p?l(t.p):null;return{distance:i,dst:t.d,o:t.o,isAccessible:r,isDriveway:!o(t.h)&&!t.h,src:t.s,transitTime:s,type:e,path:d,weight:s}}(t,u)));const p=t=>{if(void 0===t.floorId&&void 0===t.ordinal)throw Error("Endpoint specified in findRoute without floorId nor an ordinal");const o=t.lat||t.latitude,n=t.lng||t.longitude;return t.floorId?w(t.floorId,o,n,c,u):T(t.ordinal,o,n,u)};return{_nodes:u,_geoDb:c,_nodesToAvoid:a,addNodesToAvoid:t=>function(t){a.clear(),t.forEach(t=>a.add(t))}(t),findClosestNode:(t,o,n)=>w(t,o,n,c,u),findShortestPath:(t,o,n)=>function(t,o,n,e={}){return I(p(t),p(o),n,a,h,d,e)}(t,o,u,n),findAllShortestPaths:function(t,o,n){const e=p(t),r=o.map(t=>p(t));return e&&r.length?function(t,o,n,e,r={},i={},s={}){return o.map(o=>{try{return I(t,o,n,e,r,i,s)}catch(t){return null}})}(e,r,u,a,h,d,n):[]},floorIdToOrdinal:s,floorIdToStructureId:l,updateWithSecurityWaitTime:function(t){h=n(e(["lastUpdated"]),t),y()},clearCache:y}}function f(t,o,n){const e=n[t],r=n[o];return l(e.lat,e.lng,r.lat,r.lng)}let c,a,h,p,g,m;const y=()=>{c={},a={},h={},p=new d,g=null,m={}};function I(t,o,n,e,i={},s={},l={}){for(t.id===g&&m===JSON.stringify(l)||(y(),p.offerWithPriority(t.id,0),c[t.id]=0,h[t.id]=!0,g=t.id,m=JSON.stringify(l));!p.isEmpty()&&!h[o.id];){const t=n[p.poll()],o=c[t.id];for(let n=0;n<t.edges.length;n++){const d=t.edges[n];if(e.size>0&&e.has(d.dst))continue;if(h[d.dst])continue;if(l.requiresAccessibility&&!d.isAccessible)continue;let u=d.weight;if(d.o&&i[d.o]){const t=i[d.o];t.queueTime&&(u=t.queueTime),t.isTemporarilyClosed&&(u=9999),d.securityWaitTimes=t}if(d.o&&s[d.o]){d.securityLane=s[d.o];const{type:t,id:o}=s[d.o],n=r(["selectedSecurityLanes",t],l);if(n&&!n.includes(o))continue}void 0===c[d.dst]?(a[d.dst]=t,c[d.dst]=o+u,p.offerWithPriority(d.dst,o+u)):c[d.dst]>o+u&&(c[d.dst]=o+u,a[d.dst]=t,p.raisePriority(d.dst,o+u))}h[t.id]=!0}if(!h[o.id])return null;const d=[];let u=o;for(;u;)d.push(u),u=a[u.id];return d.reverse()}function b(t,o,n,e){const r=o.substr(0,e),i=[];i.push(t+":"+s(s(r,"top"),"left")),i.push(t+":"+s(r,"top")),i.push(t+":"+s(s(r,"top"),"right")),i.push(t+":"+s(r,"left")),i.push(t+":"+r),i.push(t+":"+s(r,"right")),i.push(t+":"+s(s(r,"bottom"),"left")),i.push(t+":"+s(r,"bottom")),i.push(t+":"+s(s(r,"bottom"),"right"));const l=[];for(let t=0;t<i.length;t++){const o=n[i[t]];if(o)for(let t=0;t<o.length;t++)l.push(o[t])}return l}function w(t,o,n,e,r){const s=function(t,o,n){let e=b(t,o,n,8);return e.length>0?e:(e=b(t,o,n,7),e.length>0?e:null)}(t,i(o,n),e)||function(t,o,n,e){const r=Object.values(e).filter(o=>o.floorId===t).map(t=>[t,l(t.lat,t.lng,o,n)]);if(!r.length)throw Error(`findClosestNodeByFloor2 found no nodes on floor ${t}`);return v(r)}(t,o,n,r),d=[];for(let t=0;t<s.length;t++){const e=l(o,n,s[t].lat,s[t].lng);d.push([s[t],e])}d.sort(function(t,o){return t[1]-o[1]});const u=[];for(let t=0;t<d.length;t++)u.push(d[t][0]);return u[0]}function T(t,o,n,e){const r=Object.values(e).filter(o=>o.ordinal===t).map(t=>[t,l(t.lat,t.lng,o,n)]);if(!r.length)throw Error(`findClosestNodeByOrdinal found no nodes on ordinal ${t}`);return v(r)}function v(t){let o=t[0];for(let n=1;n<t.length;n++)t[n][1]<o[1]&&(o=t[n]);return o[0]}export{u as createNavGraph,T as findClosestNodeByOrdinal,I as findShortestPath};
@@ -1 +1 @@
1
- import*as a from"ramda";function e(e,s){const o=Object.values(e),n=function(a,e){const s=[e],o=new Set;for(;s.length;){const e=s.splice(0,1)[0];e&&!o.has(e)&&(o.add(e),e.edges.forEach((e=>{o.has(a[e.dst])||s.push(a[e.dst])})))}return o}(e,s||o[0]),r=o.filter((a=>!n.has(a)));return console.log(`${r.length} Orphaned nodes found from ${o.length} total`),{orphaned:r,orphanedByFloor:a.groupBy(a.prop("floorId"),r),connected:Array.from(n)}}const s=a=>({nodes:n(a),edges:r(a)}),o=e=>a.map(a.pipe(a.assoc("isOrphaned",e),a.dissoc("edges"))),n=a.pipe(e,a.pick(["connected","orphaned"]),a.evolve({connected:o(!1),orphaned:o(!0)}),a.values,a.flatten),r=a=>Object.values(a).flatMap((a=>a.edges)).map((e=>t(e,a))),t=({src:a,dst:e,type:s,isDriveway:o},n)=>({startCoordinates:[n[a].lng,n[a].lat],endCoordinates:[n[e].lng,n[e].lat],isDriveway:o,ordinal:n[a].ordinal,category:d(s),defaultStrokeColor:l(s)}),l=a.cond([[a.equals("Stairs"),a.always("#EFBC9B")],[a.equals("Elevator"),a.always("#A491D3")],[a.equals("Escalator"),a.always("#563F1B")],[a.equals("Ramp"),a.always("#DBD053")],[a.T,a.always("#FF0000")]]),d=a.cond([[a.equals("Train"),a.always("nav.train")],[a.equals("Bus"),a.always("nav.transit")],[a.equals("Security Checkpoint"),a.always("nav.secure")],[a.equals("Ground"),a.always("nav.primary")],[a.T,a.always("")]]);export{s as enrichDebugNavGraph,e as orphanTest};
1
+ import*as a from"ramda";function e(e,s){const o=Object.values(e),n=function(a,e){const s=[e],o=new Set;for(;s.length;){const e=s.splice(0,1)[0];e&&!o.has(e)&&(o.add(e),e.edges.forEach(e=>{o.has(a[e.dst])||s.push(a[e.dst])}))}return o}(e,s||o[0]),r=o.filter(a=>!n.has(a));return console.log(`${r.length} Orphaned nodes found from ${o.length} total`),{orphaned:r,orphanedByFloor:a.groupBy(a.prop("floorId"),r),connected:Array.from(n)}}const s=a=>({nodes:n(a),edges:r(a)}),o=e=>a.map(a.pipe(a.assoc("isOrphaned",e),a.dissoc("edges"))),n=a.pipe(e,a.pick(["connected","orphaned"]),a.evolve({connected:o(!1),orphaned:o(!0)}),a.values,a.flatten),r=a=>Object.values(a).flatMap(a=>a.edges).map(e=>t(e,a)),t=({src:a,dst:e,type:s,isDriveway:o},n)=>({startCoordinates:[n[a].lng,n[a].lat],endCoordinates:[n[e].lng,n[e].lat],isDriveway:o,ordinal:n[a].ordinal,category:d(s),defaultStrokeColor:l(s)}),l=a.cond([[a.equals("Stairs"),a.always("#EFBC9B")],[a.equals("Elevator"),a.always("#A491D3")],[a.equals("Escalator"),a.always("#563F1B")],[a.equals("Ramp"),a.always("#DBD053")],[a.T,a.always("#FF0000")]]),d=a.cond([[a.equals("Train"),a.always("nav.train")],[a.equals("Bus"),a.always("nav.transit")],[a.equals("Security Checkpoint"),a.always("nav.secure")],[a.equals("Ground"),a.always("nav.primary")],[a.T,a.always("")]]);export{s as enrichDebugNavGraph,e as orphanTest};
@@ -1 +1 @@
1
- import*as e from"ramda";import{bezierCurveTo as t}from"../../../src/utils/geom.js";import o from"./segmentCategories.js";import a from"./stepBuilder.js";const n=e.map(e.converge(e.assoc("coordinates"),[e=>e.waypoints.flatMap(((e,o)=>o>0&&e.curvedPathForward&&e.curvedPathForward.length>0?e.curvedPathForward.flatMap((e=>t(e.start.lng,e.start.lat,e.in.lng,e.in.lat,e.out.lng,e.out.lat,e.end.lng,e.end.lat))).map((e=>[e.x,e.y])):[[e.position.lng,e.position.lat]])),e.identity])),r=t=>{const a=[];let n={segmentCategory:void 0,waypoints:[]},r=null,s=[];return n.waypoints=[t[0]],n.type=t[0].isPortal?t[0].portalType:"Walk",a.push(n),n={segmentCategory:void 0,waypoints:[]},t.forEach((e=>{s.push(e),r?(r.isPortal===e.isPortal&&r.isSecurityCheckpoint===e.isSecurityCheckpoint||(n.waypoints=s,e.isPortal||r.isPortal?(s.length>1&&s.pop(),s=!e.isPortal||"train"!==e.portalType.toLowerCase()&&"bus"!==e.portalType.toLowerCase()?[e]:[s[s.length-1],e]):s=[],r.poiId&&(n.poiId=r.poiId),a.push(n),n={segmentCategory:void 0,waypoints:[]},n.type=e.isPortal?e.portalType:"Walk"),n.levelDifference=e.levelDifference,r=e):(n.type=e.isPortal?e.portalType:"Walk",r=e)})),n.waypoints=s,0===s.length&&(n.waypoints=[r]),a.push(n),(e=>{e.forEach(((t,a)=>{0===a?t.segmentCategory=o.START:t.waypoints[t.waypoints.length-1].isDestination?t.segmentCategory=o.WALKING_TO_END:"Security Checkpoint"===t.type?t.segmentCategory=o.SECURITY_CHECKPOINT:"Bus"===t.type?t.segmentCategory=o.BUS:"Train"===t.type?t.segmentCategory=o.TRAIN:"Stairs"===t.type?t.levelDifference>0?t.segmentCategory=o.STAIRS_UP:t.levelDifference<0?t.segmentCategory=o.STAIRS_DOWN:t.segmentCategory=o.STAIRS:"Elevator"===t.type?t.levelDifference>0?t.segmentCategory=o.ELEVATOR_UP:t.levelDifference<0?t.segmentCategory=o.ELEVATOR_DOWN:t.segmentCategory=o.ELEVATOR:"Escalator"===t.type?t.levelDifference>0?t.segmentCategory=o.ESCALATOR_UP:t.levelDifference<0?t.segmentCategory=o.ESCALATOR_DOWN:t.segmentCategory=o.ESCALATOR:"Ramp"===t.type?t.levelDifference>0?t.segmentCategory=o.RAMP_UP:t.levelDifference<0?t.segmentCategory=o.RAMP_DOWN:t.segmentCategory=o.RAMP:"Security Checkpoint"===e[a+1].type?t.segmentCategory=o.WALKING_TO_SECURITY_CHECKPOINT:"Walk"!==e[a+1].type&&(t.segmentCategory=o.WALKING_TO_PORTAL)}))})(a),((e,t)=>{if(1===e.length){const a={segmentCategory:void 0,waypoints:[]};a.segmentCategory=o.WALKING_TO_END,a.type="Walk",a.waypoints=[t],e.push(a)}})(a,r),(t=>{t.forEach(((o,a)=>{if(a>1&&0===e.head(o.waypoints).levelDifference){const n=e.last(t[a-1].waypoints);o.waypoints=e.prepend(n,o.waypoints)}}))})(a),a},s=(t,s,i,p,l,g,y,c,m)=>{let C=r(t);C=n(C),s&&C[0].coordinates.unshift([s.lng,s.lat]),i&&e.last(C).coordinates.push([i.lng,i.lat]);return{segments:C.map(((t,a)=>{const n=e.last(t.waypoints),r=t.coordinates,s=!(t.levelDifference&&t.waypoints.every(e.prop("isPortal"))),i={levelId:n.position.structureId,ordinalId:`ordinal: ${n.position.ordinal}`,coordinates:r,shouldDrawSegment:s},p=[];if(o.WALKING_TO_PORTAL===t.segmentCategory){const t=C[a+1];p.push({canonicalName:`wayfinding.${t.segmentCategory}`,coordinates:e.last(r)})}else o.START!==t.segmentCategory&&p.push({canonicalName:`wayfinding.${t.segmentCategory}`,coordinates:e.last(r)});return i.badges=p,i.segmentType=(e=>"Train"===e.type?"nav.train":"Bus"===e.type?"nav.transit":"Security Checkpoint"===e.type?"nav.secure":"nav.primary")(t),t.poiId&&(i.poiId=t.poiId),i})),steps:a(C,e.prop("title",s),e.prop("title",i),p,l,g,y,c,m)}};export{s as buildSegments};
1
+ import*as e from"ramda";import{bezierCurveTo as t}from"../../../src/utils/geom.js";import o from"./segmentCategories.js";import a from"./stepBuilder.js";const n=e.map(e.converge(e.assoc("coordinates"),[e=>e.waypoints.flatMap((e,o)=>o>0&&e.curvedPathForward&&e.curvedPathForward.length>0?e.curvedPathForward.flatMap(e=>t(e.start.lng,e.start.lat,e.in.lng,e.in.lat,e.out.lng,e.out.lat,e.end.lng,e.end.lat)).map(e=>[e.x,e.y]):[[e.position.lng,e.position.lat]]),e.identity])),r=t=>{const a=[];let n={segmentCategory:void 0,waypoints:[]},r=null,s=[];return n.waypoints=[t[0]],n.type=t[0].isPortal?t[0].portalType:"Walk",a.push(n),n={segmentCategory:void 0,waypoints:[]},t.forEach(e=>{s.push(e),r?(r.isPortal===e.isPortal&&r.isSecurityCheckpoint===e.isSecurityCheckpoint||(n.waypoints=s,e.isPortal||r.isPortal?(s.length>1&&s.pop(),s=!e.isPortal||"train"!==e.portalType.toLowerCase()&&"bus"!==e.portalType.toLowerCase()?[e]:[s[s.length-1],e]):s=[],r.poiId&&(n.poiId=r.poiId),a.push(n),n={segmentCategory:void 0,waypoints:[]},n.type=e.isPortal?e.portalType:"Walk"),n.levelDifference=e.levelDifference,r=e):(n.type=e.isPortal?e.portalType:"Walk",r=e)}),n.waypoints=s,0===s.length&&(n.waypoints=[r]),a.push(n),(e=>{e.forEach((t,a)=>{0===a?t.segmentCategory=o.START:t.waypoints[t.waypoints.length-1].isDestination?t.segmentCategory=o.WALKING_TO_END:"Security Checkpoint"===t.type?t.segmentCategory=o.SECURITY_CHECKPOINT:"Bus"===t.type?t.segmentCategory=o.BUS:"Train"===t.type?t.segmentCategory=o.TRAIN:"Stairs"===t.type?t.levelDifference>0?t.segmentCategory=o.STAIRS_UP:t.levelDifference<0?t.segmentCategory=o.STAIRS_DOWN:t.segmentCategory=o.STAIRS:"Elevator"===t.type?t.levelDifference>0?t.segmentCategory=o.ELEVATOR_UP:t.levelDifference<0?t.segmentCategory=o.ELEVATOR_DOWN:t.segmentCategory=o.ELEVATOR:"Escalator"===t.type?t.levelDifference>0?t.segmentCategory=o.ESCALATOR_UP:t.levelDifference<0?t.segmentCategory=o.ESCALATOR_DOWN:t.segmentCategory=o.ESCALATOR:"Ramp"===t.type?t.levelDifference>0?t.segmentCategory=o.RAMP_UP:t.levelDifference<0?t.segmentCategory=o.RAMP_DOWN:t.segmentCategory=o.RAMP:"Security Checkpoint"===e[a+1].type?t.segmentCategory=o.WALKING_TO_SECURITY_CHECKPOINT:"Walk"!==e[a+1].type&&(t.segmentCategory=o.WALKING_TO_PORTAL)})})(a),((e,t)=>{if(1===e.length){const a={segmentCategory:void 0,waypoints:[]};a.segmentCategory=o.WALKING_TO_END,a.type="Walk",a.waypoints=[t],e.push(a)}})(a,r),(t=>{t.forEach((o,a)=>{if(a>1&&0===e.head(o.waypoints).levelDifference){const n=e.last(t[a-1].waypoints);o.waypoints=e.prepend(n,o.waypoints)}})})(a),a},s=(t,s,i,p,l,g,y,c,m)=>{let C=r(t);C=n(C),s&&C[0].coordinates.unshift([s.lng,s.lat]),i&&e.last(C).coordinates.push([i.lng,i.lat]);return{segments:C.map((t,a)=>{const n=e.last(t.waypoints),r=t.coordinates,s=!(t.levelDifference&&t.waypoints.every(e.prop("isPortal"))),i={levelId:n.position.structureId,ordinalId:`ordinal: ${n.position.ordinal}`,coordinates:r,shouldDrawSegment:s},p=[];if(o.WALKING_TO_PORTAL===t.segmentCategory){const t=C[a+1];p.push({canonicalName:`wayfinding.${t.segmentCategory}`,coordinates:e.last(r)})}else o.START!==t.segmentCategory&&p.push({canonicalName:`wayfinding.${t.segmentCategory}`,coordinates:e.last(r)});return i.badges=p,i.segmentType=(e=>"Train"===e.type?"nav.train":"Bus"===e.type?"nav.transit":"Security Checkpoint"===e.type?"nav.secure":"nav.primary")(t),t.poiId&&(i.poiId=t.poiId),i}),steps:a(C,e.prop("title",s),e.prop("title",i),p,l,g,y,c,m)}};export{s as buildSegments};
@@ -1 +1 @@
1
- import{bearing as e}from"@turf/bearing";import{point as t}from"@turf/helpers";import{compose as r,not as n,includes as a,__ as s,toLower as o,prop as i,find as c,drop as u,last as T,propEq as _}from"ramda";import{findBoundsOfWaypoints as A}from"../../../src/utils/bounds.js";import{metersToYards as d}from"../../../src/utils/distance.js";import{bearingToDirection as R,distance as O}from"../../../src/utils/geodesy.js";import p from"./segmentBadges.js";import y from"./segmentCategories.js";function l(r,n="",a="",s,o,c={},u,T=[],_){return r.map(((u,O)=>{const l=I("securityWaitTimes")(u.waypoints),m=l&&!l.isTemporarilyClosed?l.queueTime:Math.round(1===(L=u.waypoints).length?L[0].eta:L.map(i("eta")).slice(1).reduce(((e,t)=>e+t),0));var L;const W=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)),C="yards"===_?d(W):W,U=function(e){switch(e){case y.START:return p.START;case y.WALKING_TO_END:return p.END;case y.ELEVATOR:return p.ELEVATOR;case y.ELEVATOR_UP:return p.ELEVATOR_UP;case y.ELEVATOR_DOWN:return p.ELEVATOR_DOWN;case y.STAIRS:return p.STAIRS;case y.STAIRS_UP:return p.STAIRS_UP;case y.STAIRS_DOWN:return p.STAIRS_DOWN;case y.ESCALATOR:return p.ESCALATOR;case y.ESCALATOR_UP:return p.ESCALATOR_UP;case y.ESCALATOR_DOWN:return p.ESCALATOR_DOWN;case y.WALKING_TO_PORTAL:case y.WALK:case y.WALK_DOWN:case y.WALK_UP:return p.WALK;case y.TRAIN:return p.TRAIN;case y.TRAIN_UP:return p.TRAIN_UP;case y.TRAIN_DOWN:return p.TRAIN_DOWN;case y.BUS:return p.BUS;case y.BUS_UP:return p.BUS_UP;case y.BUS_DOWN:return p.BUS_DOWN;case y.SECURITY_CHECKPOINT:return p.SECURITY_CHECKPOINT;case y.RAMP:return p.RAMP;case y.RAMP_UP:return p.RAMP_UP;case y.RAMP_DOWN:return p.RAMP_DOWN;default:return p.WALK}}(u.segmentCategory),g=function(e,t){let r;switch(e){case y.START:r=0;break;case y.WALKING_TO_END:r=t.length-1;break;case y.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),D=(({waypoints:r},n)=>{const[a]=r,s=r[r.length-1],o=t([a.position.lng,a.position.lat]),i=t([s.position.lng,s.position.lat]),c=e(o,i);return R(c,n)})(u,o),K=function(e,t,r,n,a,s,o,i){const c=e[t];switch(c.segmentCategory){case y.START:return S(c.waypoints[0].position,r);case y.WALKING_TO_END:return S(c.waypoints[c.waypoints.length-1].position,n);case y.WALKING_TO_SECURITY_CHECKPOINT:{const r=e[t+1].waypoints,n=w(i,r),a=s("wayfinder:Security Lane"),u=n?`${n} ${a}`:null,T=P(r,o);return u||T||s(`wayfinder:${c.type}`)}case y.WALKING_TO_PORTAL:return s(`wayfinder:${e[t+1].type}`);case y.SECURITY_CHECKPOINT:{const e=w(i,c.waypoints),t=s("wayfinder:Security Lane"),r=e?`${e} ${t}`:null,n=P(c.waypoints,o);return r||n||f(c,a)}case y.ELEVATOR:case y.ELEVATOR_DOWN:case y.ELEVATOR_UP:case y.ESCALATOR:case y.ESCALATOR_DOWN:case y.ESCALATOR_UP:case y.STAIRS:case y.STAIRS_DOWN:case y.STAIRS_UP:return f(c,a);default:return s(`wayfinder:${c.type}`)}}(r,O,n,a,s,o,T,c),h={primaryText:K,secondaryText:E(u,m,o,!1),secondaryTextUI:E(u,m,o,!0,D,_,C),icon:U,animationAnchor:g,eta:m,distance:W,bounds:A(u.waypoints),isAccessible:N(u),securityWaitTimes:l};return u.poiId&&(h.poiId=u.poiId),h}))}function S(e,t){return e.name?e.name:t}function f(e,t){return t[T(e.waypoints).position.floorId]}function E(e,t,r,n,a,s,o){const i=L(t,r),c="Proceed";switch(e.segmentCategory){case y.START:return r("wayfinder:Begin route at");case y.ELEVATOR:return r("wayfinder:Take elevator to");case y.ELEVATOR_UP:return r("wayfinder:Take elevator up to");case y.ELEVATOR_DOWN:return r("wayfinder:Take elevator down to");case y.STAIRS:return r("wayfinder:Take stairs to");case y.STAIRS_UP:return r("wayfinder:Take stairs up to");case y.STAIRS_DOWN:return r("wayfinder:Take stairs down to");case y.ESCALATOR:return r("wayfinder:Take escalator to");case y.ESCALATOR_UP:return r("wayfinder:Take escalator up to");case y.ESCALATOR_DOWN:return r("wayfinder:Take escalator down to");case y.WALK:case y.WALKING_TO_SECURITY_CHECKPOINT:case y.WALKING_TO_PORTAL:case y.WALKING_TO_END:return n?m(o,s,a,r):i(`${c} <1 minute to`,`${c} xx minute to`);case y.WALK_DOWN:return i(`${c} <1 minute down to`,`${c} xx minute down to`);case y.WALK_UP:return i(`${c} <1 minute up to`,`${c} xx minute up to`);case y.TRAIN:return i("Take train <1 minute","Take train xx minute");case y.BUS:return i("Take bus <1 minute","Take bus xx minute");case y.SECURITY_CHECKPOINT:return r("wayfinder:Through");case y.RAMP:return r("wayfinder:Take ramp to");case y.RAMP_UP:return r("wayfinder:Take ramp up to");case y.RAMP_DOWN:return r("wayfinder:Take ramp down to");default:return""}}const m=(e,t,r,n)=>e>1?n("meters"===t?"wayfinder:Proceed __direction__ __count__ meter to_plural":"wayfinder:Proceed __direction__ __count__ yard to_plural",{direction:r,count:e}):e<=1?n("meters"===t?"wayfinder:Proceed __direction__ __count__ meter to":"wayfinder:Proceed __direction__ __count__ yard to",{direction:r,count:e}):void 0,L=(e,t)=>(r,n)=>0===e?t("wayfinder:"+r):t("wayfinder:"+n,{count:e}),N=r(n,a(s,["escalator","stairs"]),o,i("type")),w=(e,t)=>{const r=I("securityLane")(t);if(!r)return;const n=i(r.type,e),a=c(_(r.id,"id"),n);return i("displayText",a)},I=e=>r(i(e),c(i(e)),u(1)),P=(e,t)=>{if(!e||0===e.length)return null;const r=e[0],{lat:n,lng:a,floorId:s}=r.position,o=t.filter((e=>e.position&&e.position.floorId===s));let i=null,c=1/0;return o.forEach((e=>{const t=O(n,a,e.position.latitude,e.position.longitude);t<c&&(c=t,i=e)})),i?i.name:null};export{l as default};
1
+ import{bearing as e}from"@turf/bearing";import{point as t}from"@turf/helpers";import{compose as r,not as n,includes as a,__ as s,toLower as o,prop as i,find as c,drop as u,last as T,propEq as _}from"ramda";import{findBoundsOfWaypoints as A}from"../../../src/utils/bounds.js";import{metersToYards as d}from"../../../src/utils/distance.js";import{bearingToDirection as R,distance as O}from"../../../src/utils/geodesy.js";import p from"./segmentBadges.js";import y from"./segmentCategories.js";function l(r,n="",a="",s,o,c={},u,T=[],_){return r.map((u,O)=>{const l=I("securityWaitTimes")(u.waypoints),m=l&&!l.isTemporarilyClosed?l.queueTime:Math.round(1===(L=u.waypoints).length?L[0].eta:L.map(i("eta")).slice(1).reduce((e,t)=>e+t,0));var L;const W=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)),C="yards"===_?d(W):W,U=function(e){switch(e){case y.START:return p.START;case y.WALKING_TO_END:return p.END;case y.ELEVATOR:return p.ELEVATOR;case y.ELEVATOR_UP:return p.ELEVATOR_UP;case y.ELEVATOR_DOWN:return p.ELEVATOR_DOWN;case y.STAIRS:return p.STAIRS;case y.STAIRS_UP:return p.STAIRS_UP;case y.STAIRS_DOWN:return p.STAIRS_DOWN;case y.ESCALATOR:return p.ESCALATOR;case y.ESCALATOR_UP:return p.ESCALATOR_UP;case y.ESCALATOR_DOWN:return p.ESCALATOR_DOWN;case y.WALKING_TO_PORTAL:case y.WALK:case y.WALK_DOWN:case y.WALK_UP:return p.WALK;case y.TRAIN:return p.TRAIN;case y.TRAIN_UP:return p.TRAIN_UP;case y.TRAIN_DOWN:return p.TRAIN_DOWN;case y.BUS:return p.BUS;case y.BUS_UP:return p.BUS_UP;case y.BUS_DOWN:return p.BUS_DOWN;case y.SECURITY_CHECKPOINT:return p.SECURITY_CHECKPOINT;case y.RAMP:return p.RAMP;case y.RAMP_UP:return p.RAMP_UP;case y.RAMP_DOWN:return p.RAMP_DOWN;default:return p.WALK}}(u.segmentCategory),g=function(e,t){let r;switch(e){case y.START:r=0;break;case y.WALKING_TO_END:r=t.length-1;break;case y.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),D=(({waypoints:r},n)=>{const[a]=r,s=r[r.length-1],o=t([a.position.lng,a.position.lat]),i=t([s.position.lng,s.position.lat]),c=e(o,i);return R(c,n)})(u,o),K=function(e,t,r,n,a,s,o,i){const c=e[t];switch(c.segmentCategory){case y.START:return S(c.waypoints[0].position,r);case y.WALKING_TO_END:return S(c.waypoints[c.waypoints.length-1].position,n);case y.WALKING_TO_SECURITY_CHECKPOINT:{const r=e[t+1].waypoints,n=w(i,r),a=s("wayfinder:Security Lane"),u=n?`${n} ${a}`:null,T=P(r,o);return u||T||s(`wayfinder:${c.type}`)}case y.WALKING_TO_PORTAL:return s(`wayfinder:${e[t+1].type}`);case y.SECURITY_CHECKPOINT:{const e=w(i,c.waypoints),t=s("wayfinder:Security Lane"),r=e?`${e} ${t}`:null,n=P(c.waypoints,o);return r||n||f(c,a)}case y.ELEVATOR:case y.ELEVATOR_DOWN:case y.ELEVATOR_UP:case y.ESCALATOR:case y.ESCALATOR_DOWN:case y.ESCALATOR_UP:case y.STAIRS:case y.STAIRS_DOWN:case y.STAIRS_UP:return f(c,a);default:return s(`wayfinder:${c.type}`)}}(r,O,n,a,s,o,T,c),h={primaryText:K,secondaryText:E(u,m,o,!1),secondaryTextUI:E(u,m,o,!0,D,_,C),icon:U,animationAnchor:g,eta:m,distance:W,bounds:A(u.waypoints),isAccessible:N(u),securityWaitTimes:l};return u.poiId&&(h.poiId=u.poiId),h})}function S(e,t){return e.name?e.name:t}function f(e,t){return t[T(e.waypoints).position.floorId]}function E(e,t,r,n,a,s,o){const i=L(t,r),c="Proceed";switch(e.segmentCategory){case y.START:return r("wayfinder:Begin route at");case y.ELEVATOR:return r("wayfinder:Take elevator to");case y.ELEVATOR_UP:return r("wayfinder:Take elevator up to");case y.ELEVATOR_DOWN:return r("wayfinder:Take elevator down to");case y.STAIRS:return r("wayfinder:Take stairs to");case y.STAIRS_UP:return r("wayfinder:Take stairs up to");case y.STAIRS_DOWN:return r("wayfinder:Take stairs down to");case y.ESCALATOR:return r("wayfinder:Take escalator to");case y.ESCALATOR_UP:return r("wayfinder:Take escalator up to");case y.ESCALATOR_DOWN:return r("wayfinder:Take escalator down to");case y.WALK:case y.WALKING_TO_SECURITY_CHECKPOINT:case y.WALKING_TO_PORTAL:case y.WALKING_TO_END:return n?m(o,s,a,r):i(`${c} <1 minute to`,`${c} xx minute to`);case y.WALK_DOWN:return i(`${c} <1 minute down to`,`${c} xx minute down to`);case y.WALK_UP:return i(`${c} <1 minute up to`,`${c} xx minute up to`);case y.TRAIN:return i("Take train <1 minute","Take train xx minute");case y.BUS:return i("Take bus <1 minute","Take bus xx minute");case y.SECURITY_CHECKPOINT:return r("wayfinder:Through");case y.RAMP:return r("wayfinder:Take ramp to");case y.RAMP_UP:return r("wayfinder:Take ramp up to");case y.RAMP_DOWN:return r("wayfinder:Take ramp down to");default:return""}}const m=(e,t,r,n)=>e>1?n("meters"===t?"wayfinder:Proceed __direction__ __count__ meter to_plural":"wayfinder:Proceed __direction__ __count__ yard to_plural",{direction:r,count:e}):e<=1?n("meters"===t?"wayfinder:Proceed __direction__ __count__ meter to":"wayfinder:Proceed __direction__ __count__ yard to",{direction:r,count:e}):void 0,L=(e,t)=>(r,n)=>0===e?t("wayfinder:"+r):t("wayfinder:"+n,{count:e}),N=r(n,a(s,["escalator","stairs"]),o,i("type")),w=(e,t)=>{const r=I("securityLane")(t);if(!r)return;const n=i(r.type,e),a=c(_(r.id,"id"),n);return i("displayText",a)},I=e=>r(i(e),c(i(e)),u(1)),P=(e,t)=>{if(!e||0===e.length)return null;const r=e[0],{lat:n,lng:a,floorId:s}=r.position,o=t.filter(e=>e.position&&e.position.floorId===s);let i=null,c=1/0;return o.forEach(e=>{const t=O(n,a,e.position.latitude,e.position.longitude);t<c&&(c=t,i=e)}),i?i.name:null};export{l as default};
@@ -1 +1 @@
1
- import*as t from"ramda";import n from"zousan";import{buildStructuresLookup as o}from"../../../src/utils/buildStructureLookup.js";import{distance as e}from"../../../src/utils/geodesy.js";import{findRoute as i}from"./findRoute.js";import{createNavGraph as r}from"./navGraph.js";import{enrichDebugNavGraph as a}from"./navGraphDebug.js";import{buildSegments as s}from"./segmentBuilder.js";const u={SECURITY:"SecurityLane",IMMIGRATION:"ImmigrationLane"};function d(d,l){const p=d.log.sublog("wayfinder"),c=async()=>{d.bus.send("venueData/loadNavGraph")};let f=new n;d.bus.on("wayfinder/_getNavGraph",(()=>f)),d.bus.on("venueData/navGraphLoaded",(async({navGraphData:t,structures:n})=>{const e=o(n),i=await m(),a=r(t,e.floorIdToOrdinal,e.floorIdToStructureId,i);f.resolve(a)})),d.bus.on("poi/setDynamicRouting",(async({idValuesMap:t})=>{const n=await f,o=Object.values(t).filter((t=>t.position&&void 0!==t.position.floorId&&t.position.latitude&&t.position.longitude)).map((t=>n.findClosestNode(t.position.floorId,t.position.latitude,t.position.longitude).id));n.addNodesToAvoid(o)}));const m=async()=>{const n=await d.bus.get("poi/getByCategoryId",{categoryId:"security"});return t.pipe(t.map(y),t.filter(t.identity))(n)},y=n=>n.queue&&{type:t.path(["queue","queueType"],n),id:t.path(["queue","queueSubtype"],n)};d.bus.on("wayfinder/showNavLineFromPhysicalLocation",(async({toEndpoint:t,selectedSecurityLanes:n=null,requiresAccessibility:o})=>async function(t,n,o){const e=await T({fromEndpoint:t,toEndpoint:n,options:o});if(e){const{segments:t}=e;o.primary&&d.bus.send("map/resetNavlineFeatures"),d.bus.send("map/showNavlineFeatures",{segments:t,category:o.primary?"primary":"alternative"})}return e}(await d.bus.getFirst("user/getPhysicalLocation"),t,{selectedSecurityLanes:n,requiresAccessibility:o,primary:!0})));const g=(t,n)=>d.bus.get("poi/getById",{id:t}).then((o=>{if(o&&o.position)return w(o,n);throw Error("Unknown POI ID "+t)}));const h=["lat","lng","floorId","ordinal"],I=t.pipe(t.pick(h),t.keys,t.propEq(h.length,"length"),Boolean),w=(t,n)=>({lat:t.position.latitude,lng:t.position.longitude,floorId:t.position.floorId,ordinal:n(t.position.floorId),title:t.name});async function T({fromEndpoint:t,toEndpoint:n,options:o={}}){const e=await d.bus.get("poi/getAll")||{},r=Array.isArray(e)?e[0]:e,a=Object.values(r).filter((t=>t.category&&t.category.startsWith("security"))),u=await d.bus.getFirst("directions/getPreferredUnits")||"meters";return f.then((async e=>{o.compareFindPaths=l.compareFindPaths;const r=i(e,t,n,o);if(!r)return null;const c=await d.bus.get("venueData/getFloorIdToNameMap"),f=await d.bus.get("venueData/getQueueTypes"),m=d.gt(),y=o.requiresAccessibility,{steps:g,segments:h}=s(r.waypoints,t,n,c,m,f,y,a,u);p.info("route",r);const I=Math.round(r.waypoints.reduce(((t,{eta:n})=>t+n),0)),w=Math.round(r.waypoints.reduce(((t,{distance:n})=>t+n),0));return{...r,segments:h,steps:g,time:I,distance:w}}))}function b(n,o,e,i){let r=t.clone(n);return r=E(r,e,i),o&&o.length?{...r,transitTime:v(o,"transitTime"),distance:v(o,"distance")}:(r.distance="start"===i?O(r,e):O(e,r),r.transitTime=S(r.distance),r)}function v(n,o){return t.aperture(2,n).map((([n,o])=>{return(e=o.id,n=>t.find((t=>t.dst===e),n.edges))(n);var e})).map(t.prop(o)).reduce(((t,n)=>t+n),0)}function E(t,n,o){return{...t,[o+"Information"]:{lat:n?.lat||n?.position?.latitude,lng:n?.lng||n?.position?.longitude,floorId:n?.floorId||n?.position?.floorId}}}function O(t,n){return e(n?.lat||n?.position?.latitude,n?.lng||n?.position?.longitude,t?.lat||t?.position?.latitude,t?.lng||t?.position?.longitude)}function S(t){return t/60}function L(n){const o=n.filter((t=>null!==t));return t.sortBy(t.propOr(1/0,"transitTime"),o)}function N(t,n){return t&&t.length?v(t,"transitTime"):S(n)}function P(t,n,o){return t&&t.length?v(t,"distance"):O(o,n)}return d.bus.on("wayfinder/getNavigationEndpoint",(({ep:t})=>async function(t){return f.then((n=>{if(!t)throw Error("wayfinder: Invalid endpoint definition",t);if("number"==typeof t)return g(t,n.floorIdToOrdinal);if("string"==typeof t){if(t.match(/^\d+$/))return g(parseInt(t),n.floorIdToOrdinal);if(t.indexOf(",")>0){let[o,e,i,r]=t.split(",");if(!n.floorIdToStructureId(i))throw Error("Unknown floorId in endpoint: "+i);return r||(r="Starting Point"),{lat:parseFloat(o),lng:parseFloat(e),ordinal:n.floorIdToOrdinal(i),floorId:i,title:r}}}if(I(t))return t;if(t.latitude)return{lat:t.latitude,lng:t.longitude,floorId:t.floorId,ordinal:n.floorIdToOrdinal(t.floorId),title:t.title};if(t.position&&t.name)return w(t,n.floorIdToOrdinal);throw Error("Invalid start or end point: "+t)}))}(t))),d.bus.on("wayfinder/checkIfPathHasSecurity",(({fromEndpoint:n,toEndpoint:o,options:e={}})=>f.then((r=>{e.compareFindPaths=l.compareFindPaths;const a=i(r,n,o,e);if(!a)return{routeExists:!1};const s=n=>Boolean(a.waypoints.find(t.pathEq(n,["securityLane","type"])));return{routeExists:!0,queues:a.waypoints.filter((n=>t.pathEq(u.SECURITY,["securityLane","type"],n)||t.pathEq(u.IMMIGRATION,["securityLane","type"],n))),hasSecurity:s(u.SECURITY),hasImmigration:s(u.IMMIGRATION)}})))),d.bus.on("wayfinder/getRoute",T),d.bus.on("wayfinder/addPathTimeMultiple",(async({pois:n,startLocation:o,options:e={}})=>o?f.then((i=>function(n,o,e,i){try{const r=t.clone(e),a=r.map((t=>w(t,n.floorIdToOrdinal))),s=n.findAllShortestPaths(i,a,o);return L(r.map(((t,n)=>b(t,s[n],i,"start"))))}catch(t){return p.error(t),e}}(i,e,n,o))):n)),d.bus.on("wayfinder/multipointAddPathTimeMultiple",(async({pois:n,startLocation:o,endLocation:e,currentLocation:i,options:r={}})=>o||e||i?f.then((a=>function(n,o,e,i,r,a){try{const s=i?w(i,n.floorIdToOrdinal):a,u=r?w(r,n.floorIdToOrdinal):null,d=t.clone(e),l=d.map((t=>w(t,n.floorIdToOrdinal)));let p,c,f;return s&&(p=n.findAllShortestPaths(s,l,o)),u&&(c=function(t,n,o,e){const i=[];for(const r of n)i.push(t.findShortestPath(r,o,e));return i}(n,l,u,o)),f=s&&u?d.map(((n,o)=>function(n,o,e,i,r){const a=P(o,i,n),s=P(e,n,r);if(!a||!s)return null;const u=N(o,a),d=N(e,s);let l=t.clone(n);return l=E(l,i,"start"),l=E(l,r,"end"),{...l,transitTime:u+d,distance:a+s,startInformation:{...l.startInformation,transitTime:u,distance:a},endInformation:{...l.endInformation,transitTime:d,distance:s}}}(n,p[o],c[o],s,u))):s?d.map(((t,n)=>b(t,p[n],s,"start"))):d.map(((t,n)=>b(t,c[n],u,"end"))),L(f)}catch(t){return p.error(t),e}}(a,r,n,o,e,i))):n)),d.bus.on("venueData/loadNewVenue",(()=>{f=new n,c()})),d.bus.on("poi/setDynamicData",(({plugin:t,idValuesMap:n})=>{"security"===t&&f.then((t=>t.updateWithSecurityWaitTime(n)))})),d.bus.on("wayfinder/getNavGraphFeatures",(()=>f.then((({_nodes:t})=>a(t))))),{init:c,internal:{resolveNavGraph:t=>f.resolve(t),prepareSecurityLanes:m}}}export{u as SecurityLaneType,d as create};
1
+ import*as t from"ramda";import n from"zousan";import{buildStructuresLookup as o}from"../../../src/utils/buildStructureLookup.js";import{distance as e}from"../../../src/utils/geodesy.js";import{findRoute as i}from"./findRoute.js";import{createNavGraph as r}from"./navGraph.js";import{enrichDebugNavGraph as a}from"./navGraphDebug.js";import{buildSegments as s}from"./segmentBuilder.js";const u={SECURITY:"SecurityLane",IMMIGRATION:"ImmigrationLane"};function d(d,l){const p=d.log.sublog("wayfinder"),c=async()=>{d.bus.send("venueData/loadNavGraph")};let f=new n;d.bus.on("wayfinder/_getNavGraph",()=>f),d.bus.on("venueData/navGraphLoaded",async({navGraphData:t,structures:n})=>{const e=o(n),i=await m(),a=r(t,e.floorIdToOrdinal,e.floorIdToStructureId,i);f.resolve(a)}),d.bus.on("poi/setDynamicRouting",async({idValuesMap:t})=>{const n=await f,o=Object.values(t).filter(t=>t.position&&void 0!==t.position.floorId&&t.position.latitude&&t.position.longitude).map(t=>n.findClosestNode(t.position.floorId,t.position.latitude,t.position.longitude).id);n.addNodesToAvoid(o)});const m=async()=>{const n=await d.bus.get("poi/getByCategoryId",{categoryId:"security"});return t.pipe(t.map(y),t.filter(t.identity))(n)},y=n=>n.queue&&{type:t.path(["queue","queueType"],n),id:t.path(["queue","queueSubtype"],n)};d.bus.on("wayfinder/showNavLineFromPhysicalLocation",async({toEndpoint:t,selectedSecurityLanes:n=null,requiresAccessibility:o})=>async function(t,n,o){const e=await T({fromEndpoint:t,toEndpoint:n,options:o});if(e){const{segments:t}=e;o.primary&&d.bus.send("map/resetNavlineFeatures"),d.bus.send("map/showNavlineFeatures",{segments:t,category:o.primary?"primary":"alternative"})}return e}(await d.bus.getFirst("user/getPhysicalLocation"),t,{selectedSecurityLanes:n,requiresAccessibility:o,primary:!0}));const g=(t,n)=>d.bus.get("poi/getById",{id:t}).then(o=>{if(o&&o.position)return w(o,n);throw Error("Unknown POI ID "+t)});const h=["lat","lng","floorId","ordinal"],I=t.pipe(t.pick(h),t.keys,t.propEq(h.length,"length"),Boolean),w=(t,n)=>({lat:t.position.latitude,lng:t.position.longitude,floorId:t.position.floorId,ordinal:n(t.position.floorId),title:t.name});async function T({fromEndpoint:t,toEndpoint:n,options:o={}}){const e=await d.bus.get("poi/getAll")||{},r=Array.isArray(e)?e[0]:e,a=Object.values(r).filter(t=>t.category&&t.category.startsWith("security")),u=await d.bus.getFirst("directions/getPreferredUnits")||"meters";return f.then(async e=>{o.compareFindPaths=l.compareFindPaths;const r=i(e,t,n,o);if(!r)return null;const c=await d.bus.get("venueData/getFloorIdToNameMap"),f=await d.bus.get("venueData/getQueueTypes"),m=d.gt(),y=o.requiresAccessibility,{steps:g,segments:h}=s(r.waypoints,t,n,c,m,f,y,a,u);p.info("route",r);const I=Math.round(r.waypoints.reduce((t,{eta:n})=>t+n,0)),w=Math.round(r.waypoints.reduce((t,{distance:n})=>t+n,0));return{...r,segments:h,steps:g,time:I,distance:w}})}function b(n,o,e,i){let r=t.clone(n);return r=E(r,e,i),o&&o.length?{...r,transitTime:v(o,"transitTime"),distance:v(o,"distance")}:(r.distance="start"===i?O(r,e):O(e,r),r.transitTime=S(r.distance),r)}function v(n,o){return t.aperture(2,n).map(([n,o])=>{return(e=o.id,n=>t.find(t=>t.dst===e,n.edges))(n);var e}).map(t.prop(o)).reduce((t,n)=>t+n,0)}function E(t,n,o){return{...t,[o+"Information"]:{lat:n?.lat||n?.position?.latitude,lng:n?.lng||n?.position?.longitude,floorId:n?.floorId||n?.position?.floorId}}}function O(t,n){return e(n?.lat||n?.position?.latitude,n?.lng||n?.position?.longitude,t?.lat||t?.position?.latitude,t?.lng||t?.position?.longitude)}function S(t){return t/60}function L(n){const o=n.filter(t=>null!==t);return t.sortBy(t.propOr(1/0,"transitTime"),o)}function N(t,n){return t&&t.length?v(t,"transitTime"):S(n)}function P(t,n,o){return t&&t.length?v(t,"distance"):O(o,n)}return d.bus.on("wayfinder/getNavigationEndpoint",({ep:t})=>async function(t){return f.then(n=>{if(!t)throw Error("wayfinder: Invalid endpoint definition",t);if("number"==typeof t)return g(t,n.floorIdToOrdinal);if("string"==typeof t){if(t.match(/^\d+$/))return g(parseInt(t),n.floorIdToOrdinal);if(t.indexOf(",")>0){let[o,e,i,r]=t.split(",");if(!n.floorIdToStructureId(i))throw Error("Unknown floorId in endpoint: "+i);return r||(r="Starting Point"),{lat:parseFloat(o),lng:parseFloat(e),ordinal:n.floorIdToOrdinal(i),floorId:i,title:r}}}if(I(t))return t;if(t.latitude)return{lat:t.latitude,lng:t.longitude,floorId:t.floorId,ordinal:n.floorIdToOrdinal(t.floorId),title:t.title};if(t.position&&t.name)return w(t,n.floorIdToOrdinal);throw Error("Invalid start or end point: "+t)})}(t)),d.bus.on("wayfinder/checkIfPathHasSecurity",({fromEndpoint:n,toEndpoint:o,options:e={}})=>f.then(r=>{e.compareFindPaths=l.compareFindPaths;const a=i(r,n,o,e);if(!a)return{routeExists:!1};const s=n=>Boolean(a.waypoints.find(t.pathEq(n,["securityLane","type"])));return{routeExists:!0,queues:a.waypoints.filter(n=>t.pathEq(u.SECURITY,["securityLane","type"],n)||t.pathEq(u.IMMIGRATION,["securityLane","type"],n)),hasSecurity:s(u.SECURITY),hasImmigration:s(u.IMMIGRATION)}})),d.bus.on("wayfinder/getRoute",T),d.bus.on("wayfinder/addPathTimeMultiple",async({pois:n,startLocation:o,options:e={}})=>o?f.then(i=>function(n,o,e,i){try{const r=t.clone(e),a=r.map(t=>w(t,n.floorIdToOrdinal)),s=n.findAllShortestPaths(i,a,o);return L(r.map((t,n)=>b(t,s[n],i,"start")))}catch(t){return p.error(t),e}}(i,e,n,o)):n),d.bus.on("wayfinder/multipointAddPathTimeMultiple",async({pois:n,startLocation:o,endLocation:e,currentLocation:i,options:r={}})=>o||e||i?f.then(a=>function(n,o,e,i,r,a){try{const s=i?w(i,n.floorIdToOrdinal):a,u=r?w(r,n.floorIdToOrdinal):null,d=t.clone(e),l=d.map(t=>w(t,n.floorIdToOrdinal));let p,c,f;return s&&(p=n.findAllShortestPaths(s,l,o)),u&&(c=function(t,n,o,e){const i=[];for(const r of n)i.push(t.findShortestPath(r,o,e));return i}(n,l,u,o)),f=s&&u?d.map((n,o)=>function(n,o,e,i,r){const a=P(o,i,n),s=P(e,n,r);if(!a||!s)return null;const u=N(o,a),d=N(e,s);let l=t.clone(n);return l=E(l,i,"start"),l=E(l,r,"end"),{...l,transitTime:u+d,distance:a+s,startInformation:{...l.startInformation,transitTime:u,distance:a},endInformation:{...l.endInformation,transitTime:d,distance:s}}}(n,p[o],c[o],s,u)):s?d.map((t,n)=>b(t,p[n],s,"start")):d.map((t,n)=>b(t,c[n],u,"end")),L(f)}catch(t){return p.error(t),e}}(a,r,n,o,e,i)):n),d.bus.on("venueData/loadNewVenue",()=>{f=new n,c()}),d.bus.on("poi/setDynamicData",({plugin:t,idValuesMap:n})=>{"security"===t&&f.then(t=>t.updateWithSecurityWaitTime(n))}),d.bus.on("wayfinder/getNavGraphFeatures",()=>f.then(({_nodes:t})=>a(t))),{init:c,internal:{resolveNavGraph:t=>f.resolve(t),prepareSecurityLanes:m}}}export{u as SecurityLaneType,d as create};
package/dist/src/app.js CHANGED
@@ -1 +1 @@
1
- import{map as e,mergeDeepRight as t}from"ramda";import n from"zousan-plus";import o from"../package.json.js";import i from"./debugTools.js";import{buildEnv as a}from"./env.js";import{create as r}from"./extModules/bustle.js";import{initLog as s}from"./extModules/log.js";import l from"./utils/i18n.js";const u="undefined"!=typeof window;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||"notLocalhost"===n.active&&e.env.isLocalhost())?(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 g(e){return u?import(`./configs/${e}.json`):import(`./configs/${e}.json.js`)}async function d(e,n){let o={};const i=await Promise.all(n.map(g));for(const e of i){let n=e.default;n=n.extends?await d(n,n.extends):n,o=t(o,n)}return o=t(o,e),o}const p=e=>t=>import(`./configs/postproc-${e}.js`).then((e=>e.process(t)));async function m(t){const g=Object.create(null);let m=t.extends?await d(t,t.extends):t;m.plugins.monitoring&&await import("../_virtual/_empty_module_placeholder.js").then((e=>e.activate(m.plugins.monitoring))),m=await(async e=>e.configPostProc?n.series(e,...e.configPostProc.map(p)):e)(m);const f=(e=>{const t=e.supportedLanguages||["ar","de","en","es","fr","hi","is","it","ja","ko","pl","pt","zh-Hans","zh-Hant","el-GR","th"];if("undefined"!=typeof window){let e=new URLSearchParams(location.search).get("lang")||navigator.language;for(;e;){if(e&&t.includes(e))return e;e=e.substring(0,e.lastIndexOf("-"))}}return e.defaultLanguage||"en"})(m),h=await l(f,{debug:m.debug});g.i18n=()=>h,g.gt=()=>h.t.bind(h),g.config=m,g.plugins={};const w=s("web-engine",{enabled:!!m.debug,isBrowser:u,color:"cyan",logFilter:m.logFilter,truncateObjects:!u,trace:false});if(g.log=w.sublog(m.name),g.bus=r({showEvents:!0,reportAllErrors:!0,log:w}),g.info={wePkg:o},"undefined"!=typeof window&&(m.debug?(g.debug=e((e=>e.bind(g)),i),i.dndGo.call(g)):g.debug={},window._app=g,window.document&&window.document.title&&m.setWindowTitle&&(document.title=m.name)),g.env=a(g),m.theme?await n.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(g);g.themePack=await o.buildTheme(m.theme,m.defaultTheme),e.initLayerManager(g),t.initHistoryManager(g),g.destroy=()=>e.destroy(g)})):g.destroy=()=>{},m.plugins){for(const e in m.plugins)try{const t=m.plugins[e];if(g.plugins[e])throw Error(`Duplicate plugin name "${e}"`);const n=await c(g,e,t);n&&(g.plugins[e]=n)}catch(t){w.error("Error instantiating plugin "+e),w.error(t)}for(const e in g.plugins)g.plugins[e].init()}return g}export{m as create};
1
+ import{map as e,mergeDeepRight as t}from"ramda";import n from"zousan-plus";import o from"../package.json.js";import i from"./debugTools.js";import{buildEnv as a}from"./env.js";import{create as r}from"./extModules/bustle.js";import{initLog as s}from"./extModules/log.js";import l from"./utils/i18n.js";const u="undefined"!=typeof window;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||"notLocalhost"===n.active&&e.env.isLocalhost())?(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 g(e){return u?import(`./configs/${e}.json`):import(`./configs/${e}.json.js`)}async function d(e,n){let o={};const i=await Promise.all(n.map(g));for(const e of i){let n=e.default;n=n.extends?await d(n,n.extends):n,o=t(o,n)}return o=t(o,e),o}const p=e=>t=>import(`./configs/postproc-${e}.js`).then(e=>e.process(t));async function m(t){const g=Object.create(null);let m=t.extends?await d(t,t.extends):t;m.plugins.monitoring&&await import("../_virtual/_empty_module_placeholder.js").then(e=>e.activate(m.plugins.monitoring)),m=await(async e=>e.configPostProc?n.series(e,...e.configPostProc.map(p)):e)(m);const f=(e=>{const t=e.supportedLanguages||["ar","de","en","es","fr","hi","is","it","ja","ko","pl","pt","zh-Hans","zh-Hant","el-GR","th"];if("undefined"!=typeof window){let e=new URLSearchParams(location.search).get("lang")||navigator.language;for(;e;){if(e&&t.includes(e))return e;e=e.substring(0,e.lastIndexOf("-"))}}return e.defaultLanguage||"en"})(m),h=await l(f,{debug:m.debug});g.i18n=()=>h,g.gt=()=>h.t.bind(h),g.config=m,g.plugins={};const w=s("web-engine",{enabled:!!m.debug,isBrowser:u,color:"cyan",logFilter:m.logFilter,truncateObjects:!u,trace:false});if(g.log=w.sublog(m.name),g.bus=r({showEvents:!0,reportAllErrors:!0,log:w}),g.info={wePkg:o},"undefined"!=typeof window&&(m.debug?(g.debug=e(e=>e.bind(g),i),i.dndGo.call(g)):g.debug={},window._app=g,window.document&&window.document.title&&m.setWindowTitle&&(document.title=m.name)),g.env=a(g),m.theme?await n.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(g);g.themePack=await o.buildTheme(m.theme,m.defaultTheme),e.initLayerManager(g),t.initHistoryManager(g),g.destroy=()=>e.destroy(g)}):g.destroy=()=>{},m.plugins){for(const e in m.plugins)try{const t=m.plugins[e];if(g.plugins[e])throw Error(`Duplicate plugin name "${e}"`);const n=await c(g,e,t);n&&(g.plugins[e]=n)}catch(t){w.error("Error instantiating plugin "+e),w.error(t)}for(const e in g.plugins)g.plugins[e].init()}return g}export{m as create};
@@ -1 +1 @@
1
- const e={navFrom:"online/getDirectionsFromTo",navTo:"online/getDirectionsFromTo",waypoints:"online/getDirectionsFromTo",accessible:"online/getDirectionsFromTo",showNav:"online/getDirectionsFromTo",poiId:["online/getDirectionsFromTo","online/poiView"],vid:"venueDataLoader",stage:"venueDataLoader",contentStage:"venueDataLoader",accountId:"venueDataLoader",search:"online/headerOnline",ho:["online/getDirectionsFromTo","analytics2"],home:"online/homeView",zoom:"mapRenderer",pitch:"mapRenderer",bearing:"mapRenderer",lat:"mapRenderer",lng:"mapRenderer",radius:"mapRenderer",buildingId:"mapRenderer",floorId:"mapRenderer",visualTest:"mapRenderer",refInstallId:"analytics2"};function n(n,o,r){if(o.has("lldebug"))try{n.debug=JSON.parse(o.get("lldebug")),null===n.debug&&(n.debug={})}catch(e){n.debug=!0}return Object.keys(e).forEach((i=>{if(o.has(i)){let a=e[i];Array.isArray(a)||(a=[a]),a.forEach((e=>{let a=n.plugins[e];!a&&r&&(a=n.plugins[e]={}),a.deepLinkProps={...a.deepLinkProps,[i]:o.get(i)}}))}})),o.has("poiId")&&o.has("showNav")&&delete n.plugins["online/poiView"].deepLinkProps.poiId,n}export{n as setDeepLinksForParms};
1
+ const e={navFrom:"online/getDirectionsFromTo",navTo:"online/getDirectionsFromTo",waypoints:"online/getDirectionsFromTo",accessible:"online/getDirectionsFromTo",showNav:"online/getDirectionsFromTo",poiId:["online/getDirectionsFromTo","online/poiView"],vid:"venueDataLoader",stage:"venueDataLoader",contentStage:"venueDataLoader",accountId:"venueDataLoader",search:"online/headerOnline",ho:["online/getDirectionsFromTo","analytics2"],home:"online/homeView",zoom:"mapRenderer",pitch:"mapRenderer",bearing:"mapRenderer",lat:"mapRenderer",lng:"mapRenderer",radius:"mapRenderer",buildingId:"mapRenderer",floorId:"mapRenderer",visualTest:"mapRenderer",refInstallId:"analytics2"};function n(n,o,r){if(o.has("lldebug"))try{n.debug=JSON.parse(o.get("lldebug")),null===n.debug&&(n.debug={})}catch(e){n.debug=!0}return Object.keys(e).forEach(i=>{if(o.has(i)){let a=e[i];Array.isArray(a)||(a=[a]),a.forEach(e=>{let a=n.plugins[e];!a&&r&&(a=n.plugins[e]={}),a.deepLinkProps={...a.deepLinkProps,[i]:o.get(i)}})}}),o.has("poiId")&&o.has("showNav")&&delete n.plugins["online/poiView"].deepLinkProps.poiId,n}export{n as setDeepLinksForParms};
@@ -1 +1 @@
1
- import*as e from"ramda";import"zousan";function o(o,r,n){const p=JSON.parse(r);return Object.keys(p).forEach((r=>{const s=p[r];let t=o.plugins[r];if(!t&&n&&(t=o.plugins[r]={}),t){const o=t.deepLinkProps;t.deepLinkProps=o?e.mergeDeepRight(o,s):s}})),o}export{o as setStateFromStateString};
1
+ import*as e from"ramda";import"zousan";function o(o,r,n){const p=JSON.parse(r);return Object.keys(p).forEach(r=>{const s=p[r];let t=o.plugins[r];if(!t&&n&&(t=o.plugins[r]={}),t){const o=t.deepLinkProps;t.deepLinkProps=o?e.mergeDeepRight(o,s):s}}),o}export{o as setStateFromStateString};
@@ -1 +1 @@
1
- import*as e from"ramda";import{orphanTest as t}from"../plugins/wayfinder/src/navGraphDebug.js";import{ad as n,$ as s,$$ as o,del as a}from"./utils/dom.js";import{singleFile as r}from"./utils/funcs.js";"undefined"!=typeof window&&(window.R=e);const i=(e,t)=>d((()=>t.send(e)),t),d=(e,t)=>{const n=t.monitor("homeview/performSearch",(({term:t})=>{t||(e(),n())}))};async function u(){const e=await this.bus.get("map/getPadding"),t=(e.left-e.right)/2,o=(e.top-e.bottom)/2,r=n({html:'<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><path stroke="#fF000080" stroke-width="2" d="M0 50h45M55 50h45M50 0v45M50 55v45"/></svg>',styles:{position:"absolute",left:"50%",top:"50%","margin-left":-50+t+"px","margin-top":-50+o+"px"}},s(".maplibregl-map"));d((()=>a(r)),this.bus)}var g={bounds:async function(){const e=await this.bus.get("venueData/getVenueCenter"),{venueRadius:t,bounds:n}=await this.bus.get("venueData/getVenueData");this.bus.send("map/showVenueBounds",{venueCenter:e,venueRadius:t,bounds:n}),i("map/resetVenueBounds",this.bus)},buildingBounds:async function(e){this.bus.send("map/showBuildingBounds",{nameFilter:e}),i("map/resetVenueBounds",this.bus),u.apply(this)},dndGo:function(){const e=this.bus,t=(e,t)=>{e.preventDefault(),t?e.target.classList.add("dragover"):e.target.classList.remove("dragover")},n={drop:async function(n){t(n,!1);for(const t of n.dataTransfer.files){const n=t.name;if("application/json"===t.type||t.type.startsWith("text/")){const s=new FileReader;s.onload=r((async s=>e.send("debugTools/fileDrop",{file:t,filename:n,content:s.target.result}))),s.readAsText(t)}}},dragover:function(e){t(e,!0)},dragleave:function(e){t(e,!1)}};Object.keys(n).forEach((function(e){document.body.addEventListener(e,n[e])})),console.log("DnD Listeners installed")},floorBounds:async function(e){const t=this.bus;t.send("map/showFloorBounds",{nameFilter:e}),i("map/resetVenueBounds",t);const n=t.monitor("map/floorChanged",(()=>t.send("map/showFloorBounds",{nameFilter:e})));d(n,t),u.apply(this)},getPoiById:function(e){return this.bus.send("poi/getById",{id:e}).then((e=>e[0]))},highlightNodes:()=>n({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")),orphanTest:t,padding:async function(){this.bus.send("map/togglePadding"),i("map/togglePadding",this.bus)},poisByCategory:function(){return this.bus.send("poi/getAll").then((e=>e[0])).then((e=>Object.values(e))).then(e.groupBy((e=>e.category)))},showCenter:u,showgraph:async function(){const e=await this.bus.get("wayfinder/getNavGraphFeatures");this.bus.send("map/showNavGraphFeatures",{navGraph:e}),i("map/resetNavGraphFeatures",this.bus)},showIcons:()=>{s("#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("")},showOrphaned:async function(){const e=await this.bus.get("wayfinder/_getNavGraph"),n=t(e._nodes);this.bus.send("map/showOrphanedGraphNodes",{orphanedNodes:n.orphaned})}};export{g as default};
1
+ import*as e from"ramda";import{orphanTest as t}from"../plugins/wayfinder/src/navGraphDebug.js";import{ad as n,$ as s,$$ as o,del as a}from"./utils/dom.js";import{singleFile as r}from"./utils/funcs.js";"undefined"!=typeof window&&(window.R=e);const i=(e,t)=>d(()=>t.send(e),t),d=(e,t)=>{const n=t.monitor("homeview/performSearch",({term:t})=>{t||(e(),n())})};async function u(){const e=await this.bus.get("map/getPadding"),t=(e.left-e.right)/2,o=(e.top-e.bottom)/2,r=n({html:'<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><path stroke="#fF000080" stroke-width="2" d="M0 50h45M55 50h45M50 0v45M50 55v45"/></svg>',styles:{position:"absolute",left:"50%",top:"50%","margin-left":-50+t+"px","margin-top":-50+o+"px"}},s(".maplibregl-map"));d(()=>a(r),this.bus)}var g={bounds:async function(){const e=await this.bus.get("venueData/getVenueCenter"),{venueRadius:t,bounds:n}=await this.bus.get("venueData/getVenueData");this.bus.send("map/showVenueBounds",{venueCenter:e,venueRadius:t,bounds:n}),i("map/resetVenueBounds",this.bus)},buildingBounds:async function(e){this.bus.send("map/showBuildingBounds",{nameFilter:e}),i("map/resetVenueBounds",this.bus),u.apply(this)},dndGo:function(){const e=this.bus,t=(e,t)=>{e.preventDefault(),t?e.target.classList.add("dragover"):e.target.classList.remove("dragover")},n={drop:async function(n){t(n,!1);for(const t of n.dataTransfer.files){const n=t.name;if("application/json"===t.type||t.type.startsWith("text/")){const s=new FileReader;s.onload=r(async s=>e.send("debugTools/fileDrop",{file:t,filename:n,content:s.target.result})),s.readAsText(t)}}},dragover:function(e){t(e,!0)},dragleave:function(e){t(e,!1)}};Object.keys(n).forEach(function(e){document.body.addEventListener(e,n[e])}),console.log("DnD Listeners installed")},floorBounds:async function(e){const t=this.bus;t.send("map/showFloorBounds",{nameFilter:e}),i("map/resetVenueBounds",t);const n=t.monitor("map/floorChanged",()=>t.send("map/showFloorBounds",{nameFilter:e}));d(n,t),u.apply(this)},getPoiById:function(e){return this.bus.send("poi/getById",{id:e}).then(e=>e[0])},highlightNodes:()=>n({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")),orphanTest:t,padding:async function(){this.bus.send("map/togglePadding"),i("map/togglePadding",this.bus)},poisByCategory:function(){return this.bus.send("poi/getAll").then(e=>e[0]).then(e=>Object.values(e)).then(e.groupBy(e=>e.category))},showCenter:u,showgraph:async function(){const e=await this.bus.get("wayfinder/getNavGraphFeatures");this.bus.send("map/showNavGraphFeatures",{navGraph:e}),i("map/resetNavGraphFeatures",this.bus)},showIcons:()=>{s("#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("")},showOrphaned:async function(){const e=await this.bus.get("wayfinder/_getNavGraph"),n=t(e._nodes);this.bus.send("map/showOrphanedGraphNodes",{orphanedNodes:n.orphaned})}};export{g as default};
package/dist/src/env.js CHANGED
@@ -1 +1 @@
1
- function i(i){const o=i.config.desktopViewMinWidth||0,e="undefined"!=typeof window,s=e&&("ontouchstart"in window||navigator.maxTouchPoints>0),t=()=>e&&innerWidth<o,n=()=>t(),r={isBrowser:e,isMobile:n,isMobileReflow:()=>n()&&innerHeight<360,isLocalhost:()=>location.host.startsWith("localhost")||location.host.startsWith("127.0.0.1"),isDesktop:()=>e&&!t(),supportsTouch:s};return e&&window.addEventListener("resize",(()=>{i.bus.send("env/resize",{isMobile:r.isMobile(),isMobileReflow:r.isMobileReflow()})})),r}export{i as buildEnv};
1
+ function i(i){const o=i.config.desktopViewMinWidth||0,e="undefined"!=typeof window,s=e&&("ontouchstart"in window||navigator.maxTouchPoints>0),t=()=>e&&innerWidth<o,n=()=>t(),r={isBrowser:e,isMobile:n,isMobileReflow:()=>n()&&innerHeight<360,isLocalhost:()=>location.host.startsWith("localhost")||location.host.startsWith("127.0.0.1"),isDesktop:()=>e&&!t(),supportsTouch:s};return e&&window.addEventListener("resize",()=>{i.bus.send("env/resize",{isMobile:r.isMobile(),isMobileReflow:r.isMobileReflow()})}),r}export{i as buildEnv};
@@ -1 +1 @@
1
- import o from"zousan";const n=(o,n)=>null==o.responseOrder?null==n.responseOrder?0:1:null==n.responseOrder?-1:o.responseOrder-n.responseOrder,r=(o,n)=>o.splice(n,1)[0],e=(o,n)=>{let e=0;do{e=o.indexOf(n,e),e>=0&&r(o,e)}while(e>=0);return o};function t(r={}){const t=r.log?r.log.sublog?r.log.sublog("bustle",{color:"pink"}):r.log:console,s={},l={};function u(n,r){o.soon((()=>{s[n]&&e(s[n],r)}))}function c(n,r){o.soon((()=>{l[n]&&e(l[n],r)}))}function i(n,e){return r.showEvents&&("function"==typeof r.showEvents?r.showEvents(n,e)&&t.info("send with",n," and ",e):t.info("send with",n," and ",e)),new o((u=>o.soon(((n,e,u)=>()=>{const c=s[n],i=l[n],f=[];if(c)for(const n of c)try{f.push(n(e))}catch(n){r.reportAllErrors&&t.error(n),r.rejectOnError?f.push(o.reject(n)):f.push(n)}const h=o.all(f);if(i)for(const o of i)try{o(e,h)}catch(o){r.reportAllErrors&&t.error(o)}u(h)})(n,e,u))))}return{get:(n,r)=>i(n,r).then((r=>1!==r.length?o.reject(`${n} event did not return a single result, but ${r.length} results.`):r[0])),getFirst:(o,r)=>i(o,r).then((o=>o.length>=1?o.sort(n)[0]:void 0)),moff:c,monitor:function(o,n){return l[o]||(l[o]=[]),l[o].push(n),()=>c(o,n)},off:u,on:function(o,n){return s[o]||(s[o]=[]),s[o].push(n),()=>u(o,n)},send:i}}export{t as create};
1
+ import o from"zousan";const n=(o,n)=>null==o.responseOrder?null==n.responseOrder?0:1:null==n.responseOrder?-1:o.responseOrder-n.responseOrder,r=(o,n)=>o.splice(n,1)[0],e=(o,n)=>{let e=0;do{e=o.indexOf(n,e),e>=0&&r(o,e)}while(e>=0);return o};function t(r={}){const t=r.log?r.log.sublog?r.log.sublog("bustle",{color:"pink"}):r.log:console,s={},l={};function u(n,r){o.soon(()=>{s[n]&&e(s[n],r)})}function c(n,r){o.soon(()=>{l[n]&&e(l[n],r)})}function i(n,e){return r.showEvents&&("function"==typeof r.showEvents?r.showEvents(n,e)&&t.info("send with",n," and ",e):t.info("send with",n," and ",e)),new o(u=>o.soon(((n,e,u)=>()=>{const c=s[n],i=l[n],f=[];if(c)for(const n of c)try{f.push(n(e))}catch(n){r.reportAllErrors&&t.error(n),r.rejectOnError?f.push(o.reject(n)):f.push(n)}const h=o.all(f);if(i)for(const o of i)try{o(e,h)}catch(o){r.reportAllErrors&&t.error(o)}u(h)})(n,e,u)))}return{get:(n,r)=>i(n,r).then(r=>1!==r.length?o.reject(`${n} event did not return a single result, but ${r.length} results.`):r[0]),getFirst:(o,r)=>i(o,r).then(o=>o.length>=1?o.sort(n)[0]:void 0),moff:c,monitor:function(o,n){return l[o]||(l[o]=[]),l[o].push(n),()=>c(o,n)},off:u,on:function(o,n){return s[o]||(s[o]=[]),s[o].push(n),()=>u(o,n)},send:i}}export{t as create};
@@ -1 +1 @@
1
- function n(n,o){for(;o.length<n;)o+=" ";return o}const o=()=>n(18,"Command")+"Arguments\n"+n(18,"----------------")+"----------------\n",m=o=>n(18,o.command)+(o.args?o.args.map((n=>`${n.name} {${n.type}} ${n.optional?" (optional)":" (required)"}`)).join(", "):""),r=(n,o)=>n.command>o.command?1:-1,a=n=>n.sort(r).reduce(((n,o)=>`${n}${m(o)}\n`),o());export{m as getHelp,o as getHelpHeader,a as getHelpList};
1
+ function n(n,o){for(;o.length<n;)o+=" ";return o}const o=()=>n(18,"Command")+"Arguments\n"+n(18,"----------------")+"----------------\n",m=o=>n(18,o.command)+(o.args?o.args.map(n=>`${n.name} {${n.type}} ${n.optional?" (optional)":" (required)"}`).join(", "):""),r=(n,o)=>n.command>o.command?1:-1,a=n=>n.sort(r).reduce((n,o)=>`${n}${m(o)}\n`,o());export{m as getHelp,o as getHelpHeader,a as getHelpList};
@@ -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{a as default};
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
- const t=function(t){return"'"+t+"'"};function e(t,e,r){e.args&&o(t.customTypes,e.args,r)}function r(t,e){const r=t.commandDefsList.filter((t=>t.sig.command===e.command&&function(t,e){if(!t.args)return!0;return t.args.reduce((function(t,r){return!(void 0===e[r.name]&&!r.optional)&&t}),!0)}(t.sig,e)));if(r.length>1)throw Error("Command matches multiple signatures!");return r.length>0?r[0]:null}function n(e,r,n){if(void 0!==r.min&&n<r.min)throw Error("argument "+t(e)+" must be at least "+r.min+" but is "+n);if(void 0!==r.max&&n>r.max)throw Error("argument "+t(e)+" must be at most "+r.max+" but is "+n)}function i(e,r,a){if(!r)return!0;const s=r.name||"";if(e&&e[r.type]&&(r=Object.assign({},e[r.type],r,{type:e[r.type].type})),"integer"===r.type){if("string"==typeof a&&(a=parseInt(a,10)),!Number.isInteger(a))throw Error("expected integer argument for argument "+t(s)+" but received "+a);n(s,r,a)}else if("float"===r.type){if("string"==typeof a&&(a=parseFloat(a)),!Number.isFinite(a))throw Error("expected float argument for argument "+t(s)+" but received '"+a+"'");n(s,r,a)}else if("string"===r.type){if("string"!=typeof a)throw Error(`argument ${t(s)} must be a string but is not (value: ${a})`);if(r.minLength&&a.length<r.minLength)throw Error(`argument ${t(s)} must be a at least ${r.minLength} characters but is '${a}' (${a.length} chars)`);if(r.maxLength&&a.length>r.maxLength)throw Error(`argument ${t(s)} must be a at most ${r.maxLength} characters but is '${a}' (${a.length} chars)`)}else if("boolean"===r.type){if(!0!==a&&!1!==a&&"false"!==a&&"true"!==a&&"yes"!==a&&"no"!==a)throw Error("argument "+t(s)+" must be a boolean but is type "+typeof a+" with value of "+a)}else if("list"===r.type){if(!Array.isArray(a))throw Error("argument "+t(s)+" must be a list but is not. Value = "+a);if(void 0!==r.minLength&&r.minLength>a.length)throw Error("argument "+t(s)+" must contain at least "+r.minLength+" items but only contains "+a.length+" items");if(void 0!==r.maxLength&&r.maxLength<a.length)throw Error("argument "+t(s)+" must contain at most "+r.maxLength+" items but contains "+a.length+" items");if(r.itemType){if(!a.reduce((function(t,n){try{i(e,r.itemType,n)}catch(t){return!1}return t}),!0))throw Error(`argument ${t(s)} contains an invalid item(s). All items in the list must be of type: ${JSON.stringify(r.itemType)} - list: ${JSON.stringify(a)}`)}}else if("object"===r.type){if("object"!=typeof a||Array.isArray(a))throw Error("argument "+t(s)+" must be an object but is not. Value = "+a);try{r.props&&o(e,r.props,a)}catch(t){throw Error("Within "+s+", "+t.message)}}else{if("multi"!==r.type)throw Error("type "+r.type+" is an unknown type");if(!r.types.reduce(((t,r)=>{try{i(e,r,a)}catch(e){return t}return!0}),!1))throw Error(`Argument ${t(s)} can be of several types, but is not valid for any: ${a}`)}return!0}function o(t,e,r){e.forEach((e=>{if(void 0!==r[e.name])i(t,e,r[e.name]);else if(!e.optional)throw Error("you must include a value for "+e.name)}))}export{i as checkType,o as checkTypeList,r as getSigMatch,e as validate};
1
+ const t=function(t){return"'"+t+"'"};function e(t,e,r){e.args&&o(t.customTypes,e.args,r)}function r(t,e){const r=t.commandDefsList.filter(t=>t.sig.command===e.command&&function(t,e){if(!t.args)return!0;return t.args.reduce(function(t,r){return!(void 0===e[r.name]&&!r.optional)&&t},!0)}(t.sig,e));if(r.length>1)throw Error("Command matches multiple signatures!");return r.length>0?r[0]:null}function n(e,r,n){if(void 0!==r.min&&n<r.min)throw Error("argument "+t(e)+" must be at least "+r.min+" but is "+n);if(void 0!==r.max&&n>r.max)throw Error("argument "+t(e)+" must be at most "+r.max+" but is "+n)}function i(e,r,a){if(!r)return!0;const s=r.name||"";if(e&&e[r.type]&&(r=Object.assign({},e[r.type],r,{type:e[r.type].type})),"integer"===r.type){if("string"==typeof a&&(a=parseInt(a,10)),!Number.isInteger(a))throw Error("expected integer argument for argument "+t(s)+" but received "+a);n(s,r,a)}else if("float"===r.type){if("string"==typeof a&&(a=parseFloat(a)),!Number.isFinite(a))throw Error("expected float argument for argument "+t(s)+" but received '"+a+"'");n(s,r,a)}else if("string"===r.type){if("string"!=typeof a)throw Error(`argument ${t(s)} must be a string but is not (value: ${a})`);if(r.minLength&&a.length<r.minLength)throw Error(`argument ${t(s)} must be a at least ${r.minLength} characters but is '${a}' (${a.length} chars)`);if(r.maxLength&&a.length>r.maxLength)throw Error(`argument ${t(s)} must be a at most ${r.maxLength} characters but is '${a}' (${a.length} chars)`)}else if("boolean"===r.type){if(!0!==a&&!1!==a&&"false"!==a&&"true"!==a&&"yes"!==a&&"no"!==a)throw Error("argument "+t(s)+" must be a boolean but is type "+typeof a+" with value of "+a)}else if("list"===r.type){if(!Array.isArray(a))throw Error("argument "+t(s)+" must be a list but is not. Value = "+a);if(void 0!==r.minLength&&r.minLength>a.length)throw Error("argument "+t(s)+" must contain at least "+r.minLength+" items but only contains "+a.length+" items");if(void 0!==r.maxLength&&r.maxLength<a.length)throw Error("argument "+t(s)+" must contain at most "+r.maxLength+" items but contains "+a.length+" items");if(r.itemType){if(!a.reduce(function(t,n){try{i(e,r.itemType,n)}catch(t){return!1}return t},!0))throw Error(`argument ${t(s)} contains an invalid item(s). All items in the list must be of type: ${JSON.stringify(r.itemType)} - list: ${JSON.stringify(a)}`)}}else if("object"===r.type){if("object"!=typeof a||Array.isArray(a))throw Error("argument "+t(s)+" must be an object but is not. Value = "+a);try{r.props&&o(e,r.props,a)}catch(t){throw Error("Within "+s+", "+t.message)}}else{if("multi"!==r.type)throw Error("type "+r.type+" is an unknown type");if(!r.types.reduce((t,r)=>{try{i(e,r,a)}catch(e){return t}return!0},!1))throw Error(`Argument ${t(s)} can be of several types, but is not valid for any: ${a}`)}return!0}function o(t,e,r){e.forEach(e=>{if(void 0!==r[e.name])i(t,e,r[e.name]);else if(!e.optional)throw Error("you must include a value for "+e.name)})}export{i as checkType,o as checkTypeList,r as getSigMatch,e as validate};
@@ -1 +1 @@
1
- const e={black:"",red:"",green:"",yellow:"",blue:"",magenta:"",cyan:"",white:""};function o(r,n){const t=function(o,r={}){let n=o+": ",t=null;if(r.color)if(r.isBrowser)n="%c"+n,t=`color: ${r.color}`;else{const o=e[r.color];o&&(n=o+n)}function c(e){return function(){if(void 0===r.enabled||r.enabled||e===console.error){let o=Array.from(arguments);t&&o.unshift(t),o.unshift(n),r.truncateObjects&&e!==console.error&&(o=o.map((e=>{return"object"==typeof e?(o=JSON.stringify(e),n=parseInt(r.truncateObjects)||100,o&&o.length>n?o.substring(0,n)+"...":o):e;var o,n})));const c=!r.logFilter||((e,o)=>"string"==typeof o?e[0].includes(o):o.test(e[0]))(o,r.logFilter);(c||e===console.error)&&e.apply(console,o)}}}const l=c(r.trace?console.trace:console.log);return l.info=l,l.warn=c(console.warn),l.detailed=c(console.debug),l.error=c(console.error),l.setEnabled=e=>{r.enabled=e},l}(r,n);return t.sublog=(e,t)=>o(r+"."+e,Object.assign(Object.create(n),t)),t}export{o as initLog};
1
+ const e={black:"",red:"",green:"",yellow:"",blue:"",magenta:"",cyan:"",white:""};function o(r,n){const t=function(o,r={}){let n=o+": ",t=null;if(r.color)if(r.isBrowser)n="%c"+n,t=`color: ${r.color}`;else{const o=e[r.color];o&&(n=o+n)}function c(e){return function(){if(void 0===r.enabled||r.enabled||e===console.error){let o=Array.from(arguments);t&&o.unshift(t),o.unshift(n),r.truncateObjects&&e!==console.error&&(o=o.map(e=>{return"object"==typeof e?(o=JSON.stringify(e),n=parseInt(r.truncateObjects)||100,o&&o.length>n?o.substring(0,n)+"...":o):e;var o,n}));const c=!r.logFilter||((e,o)=>"string"==typeof o?e[0].includes(o):o.test(e[0]))(o,r.logFilter);(c||e===console.error)&&e.apply(console,o)}}}const l=c(r.trace?console.trace:console.log);return l.info=l,l.warn=c(console.warn),l.detailed=c(console.debug),l.error=c(console.error),l.setEnabled=e=>{r.enabled=e},l}(r,n);return t.sublog=(e,t)=>o(r+"."+e,Object.assign(Object.create(n),t)),t}export{o as initLog};
@@ -1 +1 @@
1
- const e=({bus:e})=>{const t=[];e.on("history/register",(({viewId:e,event:s,params:n={}})=>{t.push({viewId:e,event:s,params:n})})),e.on("history/stepBack",(()=>{const s=[],n=t.pop();if(!n)return;s.push(n.viewId);for(let e=t.length-1;e>=0&&t[e].event===n.event;--e){const e=t.pop();s.push(e.viewId)}e.send("layers/hideMultiple",s);const{event:o,params:p}=t.pop();e.send(o,p)})),e.on("history/clean",(()=>{t.length=0}))};export{e as initHistoryManager};
1
+ const e=({bus:e})=>{const t=[];e.on("history/register",({viewId:e,event:s,params:n={}})=>{t.push({viewId:e,event:s,params:n})}),e.on("history/stepBack",()=>{const s=[],n=t.pop();if(!n)return;s.push(n.viewId);for(let e=t.length-1;e>=0&&t[e].event===n.event;--e){const e=t.pop();s.push(e.viewId)}e.send("layers/hideMultiple",s);const{event:o,params:p}=t.pop();e.send(o,p)}),e.on("history/clean",()=>{t.length=0})};export{e as initHistoryManager};
@@ -1 +1 @@
1
- import"ramda";import"zousan";let n=null;const t=t=>function(){return n=n?n.then((()=>t.apply(null,arguments))):t.apply(null,arguments),n};function l(n,t){const l={};return Object.keys(t).forEach((o=>{n(o,t[o])&&(l[o]=t[o])})),l}export{l as filterOb,t as singleFile};
1
+ import"ramda";import"zousan";let n=null;const t=t=>function(){return n=n?n.then(()=>t.apply(null,arguments)):t.apply(null,arguments),n};function l(n,t){const l={};return Object.keys(t).forEach(o=>{n(o,t[o])&&(l[o]=t[o])}),l}export{l as filterOb,t as singleFile};
@@ -1 +1 @@
1
- import{area as o}from"@turf/area";import{bboxClip as r}from"@turf/bbox-clip";import{bboxPolygon as t}from"@turf/bbox-polygon";import{polygon as l}from"@turf/helpers";import"@turf/point-to-line-distance";import*as e from"ramda";const n=(o,r)=>{const t=o[0],l=o[1];let e=!1;for(let o=0,n=r.length-1;o<r.length;n=o++){const u=r[o][0],f=r[o][1],i=r[n][0],s=r[n][1];f>l!=s>l&&t<(i-u)*(l-f)/(s-f)+u&&(e=!e)}return e},u=({n:o,s:r,e:t,w:l})=>[[o,t],[o,l],[r,l],[r,t],[o,t]],f={structure:null,floor:null};function i(l,i,s,a,p,m=!1){if(!e.length(l))return f;const h=(l=l.filter((o=>null==o.shouldDisplay||!0===o.shouldDisplay))).map((o=>({structure:o,floor:d(o,a)})));return function(l,i,s,d,a,p){const m=i.filter((o=>o.floor)).filter((o=>n([s,d],u(o.floor.bounds))));if(p){if(0===m.length)return f;const o=m.filter((o=>n([s,d],o.floor.boundsPolygon)));return o.length>=1?e.head(o):f}if(0===m.length){const o=l.filter((o=>n([s,d],u(o.bounds)))).map((o=>({structure:o,floor:null})));return o.length>=1?o[0]:f}if(1===m.length)return m[0];const h=m.filter((o=>n([s,d],o.floor.boundsPolygon))),b=m.map((l=>function({structure:l,floor:e},n,u){const f=c(e.boundsPolygon),i=t(n),s=r(f,n),d=o(s),a=o(i);return d*(u?150:100)/a}(l,a,h.some((o=>o.floor.id===l.floor.id))))),g=Math.max.apply(null,b);return m[b.indexOf(g)]}(l,h,i,s,p,m)}const s=o=>[o[1],o[0]],c=o=>l([o.map(s)]),d=(o,r)=>Object.values(o.levels).find((o=>o.ordinal===r)),a=(o,r)=>o.reduce(((o,t)=>Object.values(t.levels).find((o=>o.id===r))||o),void 0),p=(o,r)=>o.reduce(((o,t)=>m(t,r)?t:o),null),m=(o,r)=>Object.values(o.levels).reduce(((o,t)=>t.id===r||o),!1);function h(o,r,t,l,e,n,u,f){let i=0,s=0,c=0,d=0,a=0;const p=[{x:o,y:r}];for(let m=1,h=0;m<=20;++m)h=m/20,i=1-h,s=i*i,c=s*i,d=h*h,a=d*h,p.push({x:c*o+3*s*h*t+3*i*d*e+a*u,y:c*r+3*s*h*l+3*i*d*n+a*f});return p}export{h as bezierCurveTo,a as getFloor,i as getStructureAndFloorAtPoint,p as getStructureForFloorId,d as ordToFloor,n as pointInPolygon};
1
+ import{area as o}from"@turf/area";import{bboxClip as r}from"@turf/bbox-clip";import{bboxPolygon as t}from"@turf/bbox-polygon";import{polygon as l}from"@turf/helpers";import"@turf/point-to-line-distance";import*as e from"ramda";const n=(o,r)=>{const t=o[0],l=o[1];let e=!1;for(let o=0,n=r.length-1;o<r.length;n=o++){const u=r[o][0],f=r[o][1],i=r[n][0],s=r[n][1];f>l!=s>l&&t<(i-u)*(l-f)/(s-f)+u&&(e=!e)}return e},u=({n:o,s:r,e:t,w:l})=>[[o,t],[o,l],[r,l],[r,t],[o,t]],f={structure:null,floor:null};function i(l,i,s,a,p,m=!1){if(!e.length(l))return f;const h=(l=l.filter(o=>null==o.shouldDisplay||!0===o.shouldDisplay)).map(o=>({structure:o,floor:d(o,a)}));return function(l,i,s,d,a,p){const m=i.filter(o=>o.floor).filter(o=>n([s,d],u(o.floor.bounds)));if(p){if(0===m.length)return f;const o=m.filter(o=>n([s,d],o.floor.boundsPolygon));return o.length>=1?e.head(o):f}if(0===m.length){const o=l.filter(o=>n([s,d],u(o.bounds))).map(o=>({structure:o,floor:null}));return o.length>=1?o[0]:f}if(1===m.length)return m[0];const h=m.filter(o=>n([s,d],o.floor.boundsPolygon)),b=m.map(l=>function({structure:l,floor:e},n,u){const f=c(e.boundsPolygon),i=t(n),s=r(f,n),d=o(s),a=o(i);return d*(u?150:100)/a}(l,a,h.some(o=>o.floor.id===l.floor.id))),g=Math.max.apply(null,b);return m[b.indexOf(g)]}(l,h,i,s,p,m)}const s=o=>[o[1],o[0]],c=o=>l([o.map(s)]),d=(o,r)=>Object.values(o.levels).find(o=>o.ordinal===r),a=(o,r)=>o.reduce((o,t)=>Object.values(t.levels).find(o=>o.id===r)||o,void 0),p=(o,r)=>o.reduce((o,t)=>m(t,r)?t:o,null),m=(o,r)=>Object.values(o.levels).reduce((o,t)=>t.id===r||o,!1);function h(o,r,t,l,e,n,u,f){let i=0,s=0,c=0,d=0,a=0;const p=[{x:o,y:r}];for(let m=1,h=0;m<=20;++m)h=m/20,i=1-h,s=i*i,c=s*i,d=h*h,a=d*h,p.push({x:c*o+3*s*h*t+3*i*d*e+a*u,y:c*r+3*s*h*l+3*i*d*n+a*f});return p}export{h as bezierCurveTo,a as getFloor,i as getStructureAndFloorAtPoint,p as getStructureForFloorId,d as ordToFloor,n as pointInPolygon};
@@ -1 +1 @@
1
- import n from"i18next";async function e(e,{debugMode:t,fallbackLng:o}={}){const a=n.createInstance();return a.init({debug:t,interpolation:{escapeValue:!1},resources:{en:{translation:{"Proceed xx minutes to":"Proceed {{count}} minute to","Proceed xx minutes to_plural":"Proceed {{count}} minutes to"}}},fallbackLng:void 0===o?"en":o,lng:e}).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:"私は場合いよいよある所有らってのの末がしたた。無論結果に圧迫顔もよくその発展ないですまでを決するてみるでしでも発展云いませたから、そうには描いたないたた。機会へ載っない方は別に今をひょろひょろでずまし。むしろ嘉納さんを意味方面そう#「を積んない権力この自分何か記念をというおお尋ねだろででですで、ある今はこれか頼み例があるで、ネルソンさんののの引込のあなたにもっともお努力といと私赤に実建設が起っようにとやかくご附随を描いですましから、どうもとにかく相違に云おでてならますのが行っないませ。"},o=(n,e)=>"en"===e?n:a(n,t[e]),a=(n,e)=>n.length<e.length?e.substring(0,n.length):e;export{e as default,o as toLang};
1
+ import n from"i18next";async function e(e,{debugMode:t,fallbackLng:o}={}){const a=n.createInstance();return a.init({debug:t,interpolation:{escapeValue:!1},resources:{en:{translation:{"Proceed xx minutes to":"Proceed {{count}} minute to","Proceed xx minutes to_plural":"Proceed {{count}} minutes to"}}},fallbackLng:void 0===o?"en":o,lng:e}).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:"私は場合いよいよある所有らってのの末がしたた。無論結果に圧迫顔もよくその発展ないですまでを決するてみるでしでも発展云いませたから、そうには描いたないたた。機会へ載っない方は別に今をひょろひょろでずまし。むしろ嘉納さんを意味方面そう#「を積んない権力この自分何か記念をというおお尋ねだろででですで、ある今はこれか頼み例があるで、ネルソンさんののの引込のあなたにもっともお努力といと私赤に実建設が起っようにとやかくご附随を描いですましから、どうもとにかく相違に云おでてならますのが行っないませ。"},o=(n,e)=>"en"===e?n:a(n,t[e]),a=(n,e)=>n.length<e.length?e.substring(0,n.length):e;export{e as default,o as toLang};
@@ -1 +1 @@
1
- import{getFloor as o,getStructureAndFloorAtPoint as t,getStructureForFloorId as n}from"./geom.js";async function r(r,l){if(l.poiId)return r.bus.get("wayfinder/getNavigationEndpoint",{ep:l.poiId});let{lat:a,lng:e,ord:u,ordinal:d,floorId:s,title:f="",structureId:c}=l;if(null==a||null==e)throw Error("To obtain a location, you must provide a lat,lng or a poiId");void 0===d&&void 0!==u&&(d=u);const g=await i(r);if(null==d){if(null==s)throw Error("Call to locationToEndpoint with no ordinal and no floorId");{const t=o(g,s);if(!t)throw Error(`floor with id ${s} not found.`);d=t.ordinal}}else if(null==s){const o=await r.bus.get("map/getViewBBox"),{structure:n,floor:i}=t(g,a,e,d,o,!0);s=i?.id,c=n?.id}return null!=s&&null==c&&(c=n(g,s)?.id),{lat:a,lng:e,floorId:s,ordinal:d,title:f,structureId:c}}const i=async o=>o.bus.get("venueData/getVenueData").then((o=>o.structures));export{i as getStructures,r as locationToEndpoint};
1
+ import{getFloor as o,getStructureAndFloorAtPoint as t,getStructureForFloorId as n}from"./geom.js";async function r(r,l){if(l.poiId)return r.bus.get("wayfinder/getNavigationEndpoint",{ep:l.poiId});let{lat:a,lng:e,ord:u,ordinal:d,floorId:s,title:f="",structureId:c}=l;if(null==a||null==e)throw Error("To obtain a location, you must provide a lat,lng or a poiId");void 0===d&&void 0!==u&&(d=u);const g=await i(r);if(null==d){if(null==s)throw Error("Call to locationToEndpoint with no ordinal and no floorId");{const t=o(g,s);if(!t)throw Error(`floor with id ${s} not found.`);d=t.ordinal}}else if(null==s){const o=await r.bus.get("map/getViewBBox"),{structure:n,floor:i}=t(g,a,e,d,o,!0);s=i?.id,c=n?.id}return null!=s&&null==c&&(c=n(g,s)?.id),{lat:a,lng:e,floorId:s,ordinal:d,title:f,structureId:c}}const i=async o=>o.bus.get("venueData/getVenueData").then(o=>o.structures);export{i as getStructures,r as locationToEndpoint};
@@ -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{s as default};
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};
@@ -1 +1 @@
1
- const n="undefined"!=typeof window&&window.Cypress?(t=12345678,function(){let n=t+=1831565813;return n=Math.imul(n^n>>>15,1|n),n^=n+Math.imul(n^n>>>7,61|n),((n^n>>>14)>>>0)/4294967296}):Math.random;var t;const o=(t,o)=>(null==o&&(o=t,t=0),Math.floor(n()*(o-t)+t));function e(n,t){t||(t=n),n>t&&(n=t);const e=[];if(n/t<.3){const r=new Set;for(;e.length<n;){const n=o(t);r.has(n)||(r.add(n),e.push(n))}}else{const r=Array.from({length:t},((n,t)=>t));for(let s=0;s<n;s++){const n=o(t-s);e.push(r[n]),r[n]=r[t-s-1]}}return e}const r=(n,t)=>t.map((t=>n[t])),s=n=>r(n,e(n.length)),l=(n,t=1)=>r(n,e(t,n.length));export{l as arrayPick,o as rand,e as randomSet,s as randomizeArray};
1
+ const n="undefined"!=typeof window&&window.Cypress?(t=12345678,function(){let n=t+=1831565813;return n=Math.imul(n^n>>>15,1|n),n^=n+Math.imul(n^n>>>7,61|n),((n^n>>>14)>>>0)/4294967296}):Math.random;var t;const o=(t,o)=>(null==o&&(o=t,t=0),Math.floor(n()*(o-t)+t));function e(n,t){t||(t=n),n>t&&(n=t);const e=[];if(n/t<.3){const r=new Set;for(;e.length<n;){const n=o(t);r.has(n)||(r.add(n),e.push(n))}}else{const r=Array.from({length:t},(n,t)=>t);for(let s=0;s<n;s++){const n=o(t-s);e.push(r[n]),r[n]=r[t-s-1]}}return e}const r=(n,t)=>t.map(t=>n[t]),s=n=>r(n,e(n.length)),l=(n,t=1)=>r(n,e(t,n.length));export{l as arrayPick,o as rand,e as randomSet,s as randomizeArray};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atriusmaps-node-sdk",
3
- "version": "3.3.618",
3
+ "version": "3.3.619",
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",
@@ -56,8 +56,8 @@
56
56
  },
57
57
  "devDependencies": {
58
58
  "@rollup/plugin-json": "^6.1.0",
59
+ "@rollup/plugin-terser": "^0.1.0",
59
60
  "rollup": "^4.36.0",
60
- "rollup-plugin-terser": "^7.0.2",
61
61
  "vitest": "^2.1.9"
62
62
  }
63
63
  }