atriusmaps-node-sdk 3.3.363 → 3.3.364
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/package.json.js +1 -1
- package/dist/cjs/plugins/dynamicPois/src/dynamicPois.js +24 -34
- package/dist/cjs/plugins/venueDataLoader/src/venueDataLoader.js +1 -3
- package/dist/package.json.js +1 -1
- package/dist/plugins/dynamicPois/src/dynamicPois.js +1 -1
- package/dist/plugins/venueDataLoader/src/venueDataLoader.js +1 -1
- package/package.json +1 -1
package/dist/cjs/package.json.js
CHANGED
|
@@ -40,27 +40,32 @@ function create (app) {
|
|
|
40
40
|
};
|
|
41
41
|
const T = app.gt();
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
app.bus.on('venueData/venueDataLoaded', ({ venueData }) => {
|
|
44
|
+
if (state.dataLoadedProm.v) // non-standard - indicates promise has been resolved...
|
|
45
|
+
state.dataLoadedProm = Zousan.resolve(venueData);
|
|
46
|
+
else
|
|
47
|
+
state.dataLoadedProm.resolve(venueData);
|
|
48
|
+
});
|
|
45
49
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
+
// by returning this dynamicDataLoaded promise, we hold sdkReady event until this is resolved
|
|
51
|
+
app.bus.on('system/readywhenyouare', () => state.dynamicDataNotPending);
|
|
52
|
+
|
|
53
|
+
const init = async () => {
|
|
54
|
+
await state.dataLoadedProm;
|
|
55
|
+
const [accountId, venueId] = await Promise.all([
|
|
56
|
+
app.bus.get('venueData/getAccountId'),
|
|
57
|
+
app.bus.get('venueData/getVenueId')
|
|
58
|
+
]);
|
|
50
59
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
*/
|
|
54
|
-
const getWaitTimesUrl = async () => state.dataLoadedProm.then(venueData => `${V3_URL_BASE}/venueId/${venueData.id}/accountId/${accountId}/get-dynamic-queue-times/`);
|
|
60
|
+
const dynamicPoisUrl = `${V1_URL_BASE}/venue/${venueId}/account/${accountId}/get-all-dynamic-pois/`;
|
|
61
|
+
const waitTimesUrl = `${V3_URL_BASE}/venueId/${venueId}/accountId/${accountId}/get-dynamic-queue-times/`;
|
|
55
62
|
|
|
56
|
-
const updateFromAPI = async () =>
|
|
63
|
+
const updateFromAPI = async () =>
|
|
57
64
|
Promise.all([
|
|
58
|
-
|
|
59
|
-
.then(fetch)
|
|
65
|
+
fetch(dynamicPoisUrl)
|
|
60
66
|
.then(r => r.json())
|
|
61
67
|
.then(poiMap => processDynamicPois(Date.now(), poiMap)),
|
|
62
|
-
|
|
63
|
-
.then(fetch)
|
|
68
|
+
fetch(waitTimesUrl)
|
|
64
69
|
.then(r => r.json())
|
|
65
70
|
.then(waitTimes => processSecurityWaitTimes(Date.now(), waitTimes))
|
|
66
71
|
]).then(() => state.dynamicDataNotPending.resolve(true))
|
|
@@ -68,7 +73,6 @@ function create (app) {
|
|
|
68
73
|
console.error(err);
|
|
69
74
|
state.dynamicDataNotPending.resolve(true);
|
|
70
75
|
});
|
|
71
|
-
};
|
|
72
76
|
|
|
73
77
|
// Currently, the only way to know if a venue has dynamic POIs is if they have security wait times
|
|
74
78
|
// and the only way we know that is if they have queueTypes.
|
|
@@ -76,11 +80,11 @@ function create (app) {
|
|
|
76
80
|
// This will certainly need to change at some point.
|
|
77
81
|
const queueTypes = await app.bus.get('venueData/getQueueTypes');
|
|
78
82
|
if (queueTypes.SecurityLane && queueTypes.SecurityLane.length) {
|
|
79
|
-
state.dataLoadedProm
|
|
83
|
+
return state.dataLoadedProm
|
|
80
84
|
.then(updateFromAPI)
|
|
81
|
-
.then(() => setInterval(updateFromAPI, REFRESH_FREQUENCY))
|
|
85
|
+
.then(() => setInterval(updateFromAPI, REFRESH_FREQUENCY))
|
|
82
86
|
} else
|
|
83
|
-
state.dynamicDataNotPending.resolve(true)
|
|
87
|
+
return state.dynamicDataNotPending.resolve(true) // no need to wait for this since there is no dynamic data
|
|
84
88
|
};
|
|
85
89
|
|
|
86
90
|
function processDynamicPois (...args) {
|
|
@@ -123,22 +127,8 @@ function create (app) {
|
|
|
123
127
|
app.bus.send('poi/setDynamicData', { plugin: 'open-closed-status', idValuesMap });
|
|
124
128
|
}
|
|
125
129
|
|
|
126
|
-
app.bus.on('venueData/venueDataLoaded', ({ venueData }) => {
|
|
127
|
-
if (state.dataLoadedProm.v) // non-standard - indicates promise has been resolved...
|
|
128
|
-
state.dataLoadedProm = Zousan.resolve(venueData);
|
|
129
|
-
else
|
|
130
|
-
state.dataLoadedProm.resolve(venueData);
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
// by returning this dynamicDataLoaded promise, we hold sdkReady event until this is resolved
|
|
134
|
-
app.bus.on('system/readywhenyouare', () => state.dynamicDataNotPending);
|
|
135
|
-
|
|
136
130
|
return {
|
|
137
|
-
init
|
|
138
|
-
internal: {
|
|
139
|
-
processSecurityWaitTimes,
|
|
140
|
-
processDynamicPois
|
|
141
|
-
}
|
|
131
|
+
init
|
|
142
132
|
}
|
|
143
133
|
}
|
|
144
134
|
|
|
@@ -364,9 +364,7 @@ async function create (app, config) {
|
|
|
364
364
|
|
|
365
365
|
// returns a full URL to an image hosted on img.locuslabs.com, size has to be a string of format ${width}x${height}
|
|
366
366
|
app.bus.on('venueData/getPoiImageUrl', ({ imageName, size }) => {
|
|
367
|
-
|
|
368
|
-
return `https://img.locuslabs.com/resize/${config.accountId}/png/transparent/${size}contain/poi/${imageName}`
|
|
369
|
-
return `https://img.locuslabs.com/resize/${config.accountId}/${size}cc/poi/${imageName}`
|
|
367
|
+
return `https://img.locuslabs.com/resize/${config.accountId}/png/transparent/${size}contain/poi/${imageName}`
|
|
370
368
|
});
|
|
371
369
|
|
|
372
370
|
// This is an utility function that returns a unique ID used to distinguish certain, installation/deployment specific parts
|
package/dist/package.json.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e="web-engine",s="3.3.
|
|
1
|
+
var e="web-engine",s="3.3.364",o="UNLICENSED",r="module",l="src/main.js",t=["demo","deploy","nodesdk","src/extModules/flexapi","services/*","libraries/*"],a={colors:"cat utils/colors1.txt && node utils/processColors.js | pbcopy && cat utils/colors2.txt","cypress:a11y":"APPLITOOLS_IS_DISABLED=true && cypress open --browser chrome --env INPUT_MODALITY='keyboard'","cypress:comp":"APPLITOOLS_IS_DISABLED=true && cypress open --component --browser chrome","cypress:e2e":"APPLITOOLS_IS_DISABLED=true && cypress open --e2e --browser chrome",demo:"cd demo/ && yarn start","e2e:comp":"cypress run --component","e2e:record":"yarn cypress run --env RECORD_MODE=true",e2eSDKTest:"yarn start-server-and-test 'cd ./deploy && yarn buildDev && yarn serveLocal' 8085 'cd ./cypress/e2e/sdk && npx http-server' 8080 'yarn cypress run --spec cypress/e2e/sdk/**'",e2eTest:"cypress run --browser chrome",goProd:"cd deploy && scripts/goProd.sh",goStaging:"deploy/scripts/goStaging.sh",i18nOverrides:"yarn node utils/i18nOverrideCli src/i18n src/i18n-overrides",lint:"eslint .",mod:"demo/startMod.sh",mol:"demo/startMol.sh","mol:build":"demo/startMolBuild.sh",molProd:"cd deploy && yarn buildAndRunMol",prepare:"husky install",test:"jest --no-cache --verbose","test-watch":"jest --verbose --watch","test:e2e:video":"cypress run","test:vitest":"vitest"},i=["defaults"],n={"@azure/event-hubs":"^5.12.2","@dnd-kit/core":"^6.1.0","@dnd-kit/modifiers":"^7.0.0","@dnd-kit/sortable":"^8.0.0","@dnd-kit/utilities":"^3.2.2","@john-osullivan/react-window-dynamic-fork":"^1.9.0-alpha.1","@locus-labs/mod-badge":"^0.1.102","@locus-labs/mod-default-theme":"^0.0.113","@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-building-level-selector":"^0.1.119","@locus-labs/mol-desktop-compass":"^0.1.120","@locus-labs/mol-desktop-default-theme":"^0.2.105","@locus-labs/mol-desktop-icon":"^0.1.131","@locus-labs/mol-desktop-logo":"^0.1.101","@locus-labs/mol-desktop-map-nav-button":"^0.1.130","@locus-labs/mol-desktop-tooltip":"^0.3.102","@locus-labs/mol-desktop-zoom-control":"^0.1.141","@locus-labs/mol-mobile-box":"^0.1.115","@locus-labs/mol-mobile-floating-action-button":"^0.0.117","@locus-labs/mol-mobile-icon":"^0.1.118","@locus-labs/mol-mobile-text":"^0.1.116","@locus-labs/mol-mobile-toast":"^0.1.102","@mapbox/mapbox-gl-draw":"^1.4.3","@mapbox/mapbox-gl-draw-static-mode":"^1.0.1","@microsoft/applicationinsights-web":"^3.3.4","@turf/circle":"^6.5.0","@turf/helpers":"^6.5.0","@turf/point-to-line-distance":"^6.5.0","@vitejs/plugin-react":"^4.0.1",IObject:"^0.7.2","axe-core":"^4.9.0",browserslist:"^4.24.2","crypto-browserify":"^3.12.0","cypress-axe":"^1.5.0","cypress-multi-reporters":"^1.6.4","file-loader":"^6.2.0",flexsearch:"^0.7.43","h3-js":"^4.1.0",i18next:"^20.3.4","i18next-browser-languagedetector":"^6.1.1","jest-transform-css":"6.0.1",jsdom:"^25.0.1",jsonschema:"^1.2.6",luxon:"^3.3.0","maplibre-gl":"^4.7.1","mini-css-extract-plugin":"^1.6.0","mocha-junit-reporter":"^2.2.1",mochawesome:"^7.1.3","node-polyfill-webpack-plugin":"^1.1.4","path-browserify":"^1.0.1",polished:"^4.0.2","prop-types":"^15.7.2","query-string":"^8.1.0",ramda:"^0.30.1",react:"^17.0.2","react-compound-slider":"^3.3.1","react-dom":"^17.0.2","react-json-editor-ajrm":"^2.5.13","react-qr-svg":"^2.2.1","react-svg":"^16.1.29","react-tageditor":"^0.2.3","react-virtualized-auto-sizer":"^1.0.2","smoothscroll-polyfill":"^0.4.4","styled-components":"5.1.0","styled-normalize":"^8.0.6","throttle-debounce":"^3.0.1",trackjs:"^3.7.4","ua-parser-js":"^0.7.23",uuid:"3.3.2",zousan:"^3.0.1","zousan-plus":"^4.0.1"},c={"@applitools/eyes-cypress":"^3.47.0","@babel/core":"^7.26.0","@babel/eslint-parser":"^7.25.9","@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.25.9","@babel/plugin-transform-runtime":"^7.25.9","@babel/preset-env":"^7.26.0","@babel/preset-react":"^7.25.9","@testing-library/jest-dom":"^6.6.3","@typescript-eslint/eslint-plugin":"^7.13.0","@typescript-eslint/parser":"^7.13.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","babel-plugin-inline-json-import":"^0.3.2","babel-plugin-module-resolver":"^5.0.0","babel-polyfill":"^6.26.0","chai-colors":"^1.0.1","css-loader":"^5.2.4",cypress:"^12.17.2","cypress-browser-permissions":"^1.1.0","cypress-real-events":"^1.11.0","cypress-wait-until":"^1.7.1",eslint:"^8.57.0","eslint-config-standard":"^16.0.3","eslint-import-resolver-typescript":"^3.6.1","eslint-plugin-cypress":"^2.11.1","eslint-plugin-import":"^2.16.0","eslint-plugin-jest":"^28.6.0","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-react":"^7.12.4","eslint-plugin-standard":"^5.0.0","fetch-mock-jest":"^1.3.0",glob:"^10.3.3",husky:"^6.0.0",jest:"29.7.0","jest-environment-jsdom":"^29.7.0","lint-staged":"^11.0.1","node-fetch":"^2.6.0","null-loader":"^4.0.1",nx:"19.4.2","nx-remotecache-azure":"^19.0.0","start-server-and-test":"^2.0.0",typescript:"^5.4.5",vite:"^4.3.9",vitest:"^2.1.5",webpack:"^5.96.1","webpack-merge":"^6.0.1"},p="yarn@4.3.1",d={node:">=20"},m={},u={name:e,version:s,private:!0,license:o,type:r,main:l,workspaces:t,scripts:a,"lint-staged":{"*.js":["eslint --fix"]},browserslist:i,dependencies:n,devDependencies:c,packageManager:p,engines:d,nx:m};export{i as browserslist,u as default,n as dependencies,c as devDependencies,d as engines,o as license,l as main,e as name,m as nx,p as packageManager,a as scripts,r as type,s as version,t as workspaces};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"zousan";import{processParkingPOIS as
|
|
1
|
+
import e from"zousan";import{processParkingPOIS as t,processSecurityWaitTimes as a,mutateSecurityCheckpointLabel as n,processOpenClosedPois as o}from"./processors.js";function s(s){const c={dataLoadedProm:new e,dynamicDataNotPending:new e},u=s.gt();s.bus.on("venueData/venueDataLoaded",(({venueData:t})=>{c.dataLoadedProm.v?c.dataLoadedProm=e.resolve(t):c.dataLoadedProm.resolve(t)})),s.bus.on("system/readywhenyouare",(()=>c.dynamicDataNotPending));const i=async e=>{const t={};for(const a of e){const e=await s.bus.get("poi/getById",{id:a});e&&(t[a]=e.name)}return t};return{init:async()=>{await c.dataLoadedProm;const[e,d]=await Promise.all([s.bus.get("venueData/getAccountId"),s.bus.get("venueData/getVenueId")]),r=`https://rest.locuslabs.com/v1/venue/${d}/account/${e}/get-all-dynamic-pois/`,m=`https://rest.locuslabs.com/v3/venueId/${d}/accountId/${e}/get-dynamic-queue-times/`,l=async()=>Promise.all([fetch(r).then((e=>e.json())).then((e=>function(...e){(function(e,a){const n=t(e,a);s.bus.send("poi/setDynamicData",{plugin:"parking",idValuesMap:n})})(...e),function(e,t){const a=o(e,t);s.bus.send("poi/setDynamicData",{plugin:"open-closed-status",idValuesMap:a})}(...e)}(Date.now(),e))),fetch(m).then((e=>e.json())).then((e=>async function(e,t){const o=a(e,t);s.bus.send("poi/setDynamicData",{plugin:"security",idValuesMap:o});const c=await i(Object.keys(o));s.bus.send("map/mutateFeature",{functor:n(u,o,c)})}(Date.now(),e)))]).then((()=>c.dynamicDataNotPending.resolve(!0))).catch((e=>{console.error(e),c.dynamicDataNotPending.resolve(!0)})),y=await s.bus.get("venueData/getQueueTypes");return y.SecurityLane&&y.SecurityLane.length?c.dataLoadedProm.then(l).then((()=>setInterval(l,3e4))):c.dynamicDataNotPending.resolve(!0)}}}export{s as create};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as e from"ramda";import a from"zousan";import{normalizeCoords as t,getVenueDataFromUrls as n,buildStructures as s,createFetchJson as u,createFetchText as o}from"./venueLoadingUtils.js";async function r(r,i){const d=r.log.sublog("venueDataLoader");let l=new a,c=new a;const p=a=>a.defaultStructureId||e.path(["structureOrder",0],a)||e.path(["selectorOrder",0],a)||e.pipe(e.prop("structures"),Object.values,e.path([0,"id"]))(a),
|
|
1
|
+
import*as e from"ramda";import a from"zousan";import{normalizeCoords as t,getVenueDataFromUrls as n,buildStructures as s,createFetchJson as u,createFetchText as o}from"./venueLoadingUtils.js";async function r(r,i){const d=r.log.sublog("venueDataLoader");let l=new a,c=new a;const p=a=>a.defaultStructureId||e.path(["structureOrder",0],a)||e.path(["selectorOrder",0],a)||e.pipe(e.prop("structures"),Object.values,e.path([0,"id"]))(a),v=e=>{const a=i.availableLanguages.find((a=>a.langCode===e));return a||{langCode:e,assetSuffix:""}};async function g(a,t){a.assetStage&&"prod"!==a.assetStage&&location.hostname;const i=u(),c=o(),g=await n(a,i,t),{accountId:f,venueId:b}=a;g.assetStage=a.assetStage,g.defaultOrdinal=g.defaultOrdinal||function(a){const t=p(a),n=Object.values(a.structures).find(e.propEq(t,"id"));return n.levels[n.defaultLevelId].ordinal}(g),g.structures=s(g);const m=r.i18n().language,h=v(m);return g.bareVenueId=b.slice(0,b.length-h.assetSuffix.length),g.getTranslatedContentPath=e=>`https://content.locuslabs.com/${g.category}/${e}/${b}/${f}`,g.fetchJson=i,g.fetchText=c,d.info("venueData ",g,h,m),r.config.debug&&r.env.isBrowser&&(window._venueData=g),g.queueTypes&&(g.securityQueueTypes=(()=>{const e=g.queueTypes.find((e=>"SecurityLane"===e.id));return e?e.subtypes.map((e=>e.id)):[]})()),r.bus.send("venueData/venueDataLoaded",{venueData:g}),l.resolve(g),l}function f(e){const a={id:"venueDataLoader"};return e.id!==i.venueId&&(a.vid=e.id),a.lang=r.i18n().language,"prod"!==e.assetStage&&(a.stage=e.assetStage),r.bus.send("deepLinking/notifyState",a),e}r.bus.on("debugTools/fileDrop",(async({file:e,content:a})=>{if("application/json"===e.type){const e=JSON.parse(a);if(e.basemap&&e["basemap.venue"])return n=JSON.parse(a),void r.bus.send("map/replaceTheme",{theme:n});if(e.metadata&&e.metadata["mapbox:type"])return t=a,void r.bus.send("map/replaceStyle",{styleSrc:t})}var t,n}));async function b(e){const a={...e},t=await r.bus.get("poi/getAll");return Object.values(a).forEach((e=>e.filter((e=>"poi"===e.properties.aiLayer&&"Point"===e.geometry.type)).forEach((e=>{const a=t[e.properties.id];a?a.mapLabel?e.properties.text=a.mapLabel:!1!==i.copyPOINamesToMap&&(e.properties.text=function(e){let a=e.name;return i.poiMapNameXForm?(Object.keys(i.poiMapNameXForm).filter((a=>((e,a)=>e===a||0===e.indexOf(a+"."))(e.category,a))).forEach((e=>{i.poiMapNameXForm[e].forEach((e=>a=a.replace(new RegExp(e.replace),e.with)))})),a):a}(a)):d.warn(`Unknown poi in style: ${e.properties.id}`)})))),a}const m=(a,t,n,s)=>{const u=a.replace(/-[^-]*$/,""),o=u===n?"landscape-background":`ordinal: ${s.find(e.hasPath(["levels",a])).levels[a].ordinal}`;return t.map((t=>{var s,r,i;return s="properties",r={venueId:n,structureId:u,ordinalId:o,levelId:a},i=t,t=e.over(e.lensProp(s),(a=>e.mergeRight(a||{},r)),i),t=e.assoc("id",t.properties.subid,t)}))};r.bus.on("venueData/loadMap",(async()=>{l.then((async t=>{const n=await t.fetchText(t.files.style),s=await t.fetchJson(t.files.theme),u=t.files.spritesheet,o=t.files.glyphs,{id:d,bounds:l,structures:p,venueCenter:v,venueRadius:g,defaultOrdinal:f}=t,h=t.venueList[d].mapTokens?{[d]:[]}:await async function(t){return e.pipe(e.prop("structures"),e.map(e.prop("levels")),e.chain(e.keys),e.prepend(t.id),e.map((e=>t.files.geoJson.replace("${geoJsonId}",e))),e.map(t.fetchJson),e.map(e.andThen((e=>[e.id,m(e.id,e.features,t.id,t.structures)]))),(e=>a.all(e)),e.andThen(e.fromPairs))(t)}(t).then(b),y={mapFeatures:h,mapStyleSource:n,mapTheme:s,badgesSpriteUrl:u,mapGlyphsUrl:o,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:t.tileServerAuthInfo};c.resolve(y),r.bus.send("venueData/mapDataLoaded",y)}))}));const h=e=>null==e.shouldDisplay||e.shouldDisplay;r.bus.on("venueData/loadBuildingSelectorData",(()=>l.then((async a=>{const t={buildings:a.structures.filter(h).map(e.evolve({levels:e.pipe(e.values,e.sortWith([e.descend(e.prop("ordinal"))]))})),structureOrder:a.structureOrder,selectorOrder:a.selectorOrder};return r.bus.send("venueData/buildingSelectorDataLoaded",t),t})))),r.bus.on("venueData/normalizeCoords",(({coords:e})=>l.then((a=>t(e,a.bounds)))));const y={edges:[],nodes:[]};r.bus.on("venueData/loadNavGraph",(async()=>l.then((async e=>{const a={navGraphData:e.files.nav?await e.fetchJson(e.files.nav):y,structures:e.structures};return r.bus.send("venueData/navGraphLoaded",a),a})))),r.bus.on("venueData/loadPoiData",(async()=>l.then((async e=>{const a=i.useOldDataModel?e.files.poisOld||e.files.pois:e.files.pois||e.files.poisOld;if(a){const t=await e.fetchJson(a);r.bus.send("venueData/poiDataLoaded",{pois:t,structures:e.structures})}})))),r.bus.on("venueData/getVenueCenter",(async()=>l.then((async e=>({lat:e.venueCenter[0],lng:e.venueCenter[1],ordinal:0}))))),r.bus.on("venueData/getContentUrl",(({type:e,name:a=""})=>l.then((t=>t.files[e]+a)))),r.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)))),r.bus.on("venueData/getFloorIdName",(({floorId:a})=>l.then((async t=>{const n=e.pipe(e.values,e.find(e.hasPath(["levels",a])))(t.structures);return n?{structureId:n.id,structureName:n.name,floorName:n.levels[a].name}:null}))));const D=(a,t)=>()=>l.then(e.pipe(e.prop(a),e.defaultTo(t)));r.bus.on("venueData/getVenueData",(()=>l)),r.bus.on("venueData/getVenueName",D("name")),r.bus.on("venueData/getVenueCategory",D("category")),r.bus.on("venueData/getVenueTimezone",D("tz")),r.bus.on("venueData/getAccountId",(()=>i.accountId)),r.bus.on("venueData/getVenueId",D("id")),r.bus.on("venueData/getPositioningSupported",D("positioningSupported")),r.bus.on("venueData/getStructures",D("structures")),r.bus.on("venueData/loadNewVenue",(async({venueId:e,accountId:t,assetStage:n=i.assetStage})=>{l.reject(new Error("loadNewVenue called - previous loading ignored")),c.reject(new Error("loadNewVenue called - previous loading ignored")),l=new a,c=new a,g({...i,venueId:e,accountId:t,assetStage:n},[]).then(f)})),r.bus.on("venueData/changeVenueLanguage",(async({lang:e})=>l.then((async a=>{const t=v(e),n=`${a.bareVenueId}${t.assetSuffix}`;r.bus.send("venueData/loadNewVenue",{accountId:i.accountId,venueId:n})})))),r.bus.on("venueData/getPoiImageUrl",(({imageName:e,size:a})=>`https://img.locuslabs.com/resize/${i.accountId}/png/transparent/${a}contain/poi/${e}`)),r.bus.on("venueData/getDistributionId",(()=>l.then((e=>`${e.bareVenueId}-${i.accountId}`)))),r.bus.on("venueData/getCustomKeywords",(()=>l.then((e=>{const a=i.useOldDataModel&&e.files.searchOld||e.files.search;return e.fetchJson(a)})))),r.bus.on("venueData/isGrabEnabled",D("enableGrab")),r.bus.on("venueData/getGrabPoiIds",D("grabPoiIds",[])),r.bus.on("venueData/getAssetsTimestamp",D("version")),r.bus.on("venueData/getTranslatedFloorId",(async({floorId:e})=>l.then((a=>{const t=r.i18n().language,n=v(t);return`${a.bareVenueId}${n.assetSuffix}-${e.split("-").slice(1).join("-")}`})))),r.bus.on("venueData/getQueueTypes",(()=>l.then((e=>{const a=["tsapre","clear","globalEntry"];return e.queueTypes?e.queueTypes.reduce(((e,t)=>{const{id:n,subtypes:s}=t,u=s.map((e=>{const t=a.includes(e.id)&&`security-logo-${e.id.toLowerCase()}`;return{...e,imageId:t}}));return e[n]=u,e}),{}):{}}))));return{init:async()=>{let e=[];null===new URLSearchParams("undefined"==typeof window?"":window.location.search).get("lang")&&(e="undefined"==typeof window?[]:navigator.languages);const a=i.deepLinkProps||{};a.lang&&e.unshift(a.lang);const t=a.vid||i.venueId,n=i.useDynamicUrlParams&&a.stage?a.stage:i.assetStage,s=a.accountId||("alpha"===n?"A1VPTJKREFJWX5":i.accountId);g({...i,venueId:t,accountId:s,assetStage:n},e).then(f)},runTest:async({testRoutine:e,reset:t=!1,venueData:n=null})=>{let s,u;return(t||n)&&(l=new a,c=new a),n&&(l=a.resolve(n)),await e(),l.v&&(s=await l),c.v&&(u=await c),{venueDataObj:s,mapDataObj:u}},internal:{getDefaultStructureId:p,setConfigProperty:(e,a)=>{i[e]=a}}}}export{r as create};
|
package/package.json
CHANGED