venue-react 1.9.0-next.5 → 1.9.0-next.6
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/index.d.mts +7 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +26 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +23 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -68,6 +68,12 @@ declare const useGetScreensavers: () => _tanstack_react_query.UseQueryResult<ven
|
|
|
68
68
|
|
|
69
69
|
declare const useGetFooterBanners: () => _tanstack_react_query.UseQueryResult<venue_js.SponsoredContentFeature[]>;
|
|
70
70
|
|
|
71
|
+
declare const useGetTaxonomies: (taxonomyType?: string) => _tanstack_react_query.UseQueryResult<venue_js.TaxonomyFeature[]>;
|
|
72
|
+
|
|
73
|
+
declare const useGetOccupantCategories: () => _tanstack_react_query.UseQueryResult<venue_js.TaxonomyFeature[]>;
|
|
74
|
+
|
|
75
|
+
declare const useGetPromotionCategories: () => _tanstack_react_query.UseQueryResult<venue_js.TaxonomyFeature[]>;
|
|
76
|
+
|
|
71
77
|
type VenueMapProps = ComponentProps<"div"> & {
|
|
72
78
|
containerId?: string;
|
|
73
79
|
mapId?: string;
|
|
@@ -77,4 +83,4 @@ declare const VenueMap: React__default.MemoExoticComponent<({ containerId, mapId
|
|
|
77
83
|
|
|
78
84
|
declare function useVenueMap(idMap?: string): venue_js.IndoorMap | null;
|
|
79
85
|
|
|
80
|
-
export { type UseGetListParams, type UseGetListResult, type UseGetOneParams, type UseGetOneResult, VenueContext, type VenueContextValue, VenueMap, type VenueMapProps, VenueProvider, type VenueProviderProps, useGetFooterBanners, useGetList, useGetLocationConfig, useGetOne, useGetScreensavers, useVenueContext, useVenueDataClient, useVenueMap, useWatchDeliveryApi };
|
|
86
|
+
export { type UseGetListParams, type UseGetListResult, type UseGetOneParams, type UseGetOneResult, VenueContext, type VenueContextValue, VenueMap, type VenueMapProps, VenueProvider, type VenueProviderProps, useGetFooterBanners, useGetList, useGetLocationConfig, useGetOccupantCategories, useGetOne, useGetPromotionCategories, useGetScreensavers, useGetTaxonomies, useVenueContext, useVenueDataClient, useVenueMap, useWatchDeliveryApi };
|
package/dist/index.d.ts
CHANGED
|
@@ -68,6 +68,12 @@ declare const useGetScreensavers: () => _tanstack_react_query.UseQueryResult<ven
|
|
|
68
68
|
|
|
69
69
|
declare const useGetFooterBanners: () => _tanstack_react_query.UseQueryResult<venue_js.SponsoredContentFeature[]>;
|
|
70
70
|
|
|
71
|
+
declare const useGetTaxonomies: (taxonomyType?: string) => _tanstack_react_query.UseQueryResult<venue_js.TaxonomyFeature[]>;
|
|
72
|
+
|
|
73
|
+
declare const useGetOccupantCategories: () => _tanstack_react_query.UseQueryResult<venue_js.TaxonomyFeature[]>;
|
|
74
|
+
|
|
75
|
+
declare const useGetPromotionCategories: () => _tanstack_react_query.UseQueryResult<venue_js.TaxonomyFeature[]>;
|
|
76
|
+
|
|
71
77
|
type VenueMapProps = ComponentProps<"div"> & {
|
|
72
78
|
containerId?: string;
|
|
73
79
|
mapId?: string;
|
|
@@ -77,4 +83,4 @@ declare const VenueMap: React__default.MemoExoticComponent<({ containerId, mapId
|
|
|
77
83
|
|
|
78
84
|
declare function useVenueMap(idMap?: string): venue_js.IndoorMap | null;
|
|
79
85
|
|
|
80
|
-
export { type UseGetListParams, type UseGetListResult, type UseGetOneParams, type UseGetOneResult, VenueContext, type VenueContextValue, VenueMap, type VenueMapProps, VenueProvider, type VenueProviderProps, useGetFooterBanners, useGetList, useGetLocationConfig, useGetOne, useGetScreensavers, useVenueContext, useVenueDataClient, useVenueMap, useWatchDeliveryApi };
|
|
86
|
+
export { type UseGetListParams, type UseGetListResult, type UseGetOneParams, type UseGetOneResult, VenueContext, type VenueContextValue, VenueMap, type VenueMapProps, VenueProvider, type VenueProviderProps, useGetFooterBanners, useGetList, useGetLocationConfig, useGetOccupantCategories, useGetOne, useGetPromotionCategories, useGetScreensavers, useGetTaxonomies, useVenueContext, useVenueDataClient, useVenueMap, useWatchDeliveryApi };
|
package/dist/index.js
CHANGED
|
@@ -37,8 +37,11 @@ __export(index_exports, {
|
|
|
37
37
|
useGetFooterBanners: () => useGetFooterBanners,
|
|
38
38
|
useGetList: () => useGetList,
|
|
39
39
|
useGetLocationConfig: () => useGetLocationConfig,
|
|
40
|
+
useGetOccupantCategories: () => useGetOccupantCategories,
|
|
40
41
|
useGetOne: () => useGetOne,
|
|
42
|
+
useGetPromotionCategories: () => useGetPromotionCategories,
|
|
41
43
|
useGetScreensavers: () => useGetScreensavers,
|
|
44
|
+
useGetTaxonomies: () => useGetTaxonomies,
|
|
42
45
|
useVenueContext: () => useVenueContext,
|
|
43
46
|
useVenueDataClient: () => useVenueDataClient,
|
|
44
47
|
useVenueMap: () => useVenueMap,
|
|
@@ -173,7 +176,7 @@ var useWatchDeliveryApi = (featureType, refetchInterval = 5 * 60 * 1e3, options)
|
|
|
173
176
|
return { startWatch, stopWatch };
|
|
174
177
|
};
|
|
175
178
|
|
|
176
|
-
// src/hooks/queries/useGetScreensavers.ts
|
|
179
|
+
// src/hooks/queries/sponsored-content/useGetScreensavers.ts
|
|
177
180
|
var useGetScreensavers = () => {
|
|
178
181
|
return useGetList("sponsored-content", {
|
|
179
182
|
filters: { placement_type: "SCREENSAVER" },
|
|
@@ -181,7 +184,7 @@ var useGetScreensavers = () => {
|
|
|
181
184
|
});
|
|
182
185
|
};
|
|
183
186
|
|
|
184
|
-
// src/hooks/queries/useGetFooterBanners.ts
|
|
187
|
+
// src/hooks/queries/sponsored-content/useGetFooterBanners.ts
|
|
185
188
|
var useGetFooterBanners = () => {
|
|
186
189
|
return useGetList("sponsored-content", {
|
|
187
190
|
filters: { placement_type: "FOOTER_BANNER" },
|
|
@@ -189,6 +192,24 @@ var useGetFooterBanners = () => {
|
|
|
189
192
|
});
|
|
190
193
|
};
|
|
191
194
|
|
|
195
|
+
// src/hooks/queries/taxonomy/useGetTaxonomies.ts
|
|
196
|
+
var useGetTaxonomies = (taxonomyType) => {
|
|
197
|
+
return useGetList("taxonomy", {
|
|
198
|
+
filters: taxonomyType ? { taxonomy: taxonomyType } : void 0,
|
|
199
|
+
sort: { key: "order", order: "asc" }
|
|
200
|
+
});
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
// src/hooks/queries/taxonomy/useGetOccupantCategories.ts
|
|
204
|
+
var useGetOccupantCategories = () => {
|
|
205
|
+
return useGetTaxonomies("local-category");
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
// src/hooks/queries/taxonomy/useGetPromotionCategories.ts
|
|
209
|
+
var useGetPromotionCategories = () => {
|
|
210
|
+
return useGetTaxonomies("promotion-category");
|
|
211
|
+
};
|
|
212
|
+
|
|
192
213
|
// src/components/VenueMap/VenueMap.tsx
|
|
193
214
|
var import_react5 = __toESM(require("react"));
|
|
194
215
|
|
|
@@ -271,8 +292,11 @@ function useVenueMap(idMap) {
|
|
|
271
292
|
useGetFooterBanners,
|
|
272
293
|
useGetList,
|
|
273
294
|
useGetLocationConfig,
|
|
295
|
+
useGetOccupantCategories,
|
|
274
296
|
useGetOne,
|
|
297
|
+
useGetPromotionCategories,
|
|
275
298
|
useGetScreensavers,
|
|
299
|
+
useGetTaxonomies,
|
|
276
300
|
useVenueContext,
|
|
277
301
|
useVenueDataClient,
|
|
278
302
|
useVenueMap,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/VenueProvider.tsx","../src/VenueContext.tsx","../src/hooks/useVenueDataClient.ts","../src/hooks/useGetList.ts","../src/hooks/useGetOne.ts","../src/hooks/useGetLocationConfig.ts","../src/hooks/useWatchDeliveryApi.ts","../src/hooks/queries/useGetScreensavers.ts","../src/hooks/queries/useGetFooterBanners.ts","../src/components/VenueMap/VenueMap.tsx","../src/hooks/useMapInstance.ts","../src/components/VenueMap/useVenueMap.ts"],"sourcesContent":["export * from \"venue-js\"\n\n// Provider\nexport { VenueProvider } from \"./VenueProvider\"\n\n// Context\nexport { VenueContext, useVenueContext } from \"./VenueContext\"\n\n// Hooks\nexport * from \"./hooks\"\n\n// Components \nexport * from './components/VenueMap'\n\n// Types\nexport type {\n VenueProviderProps,\n VenueContextValue,\n UseGetOneParams,\n UseGetListParams,\n UseGetOneResult,\n UseGetListResult,\n} from \"./types\"\n\n// Re-export venue-js types for convenience\nexport type {\n VenueDataClient,\n VenueClientOptions,\n FeatureType,\n FeatureResponseMap,\n FeaturePopulatedResponseMap,\n // IMDF Feature Types\n AmenityFeature,\n AnchorFeature,\n KioskFeature,\n LevelFeature,\n OccupantFeature,\n SectionFeature,\n UnitFeature,\n VenueFeature,\n // Non-IMDF Feature Types\n TaxonomyFeature,\n PromotionFeature,\n PrivilegeFeature,\n EventFeature,\n LabelFeature,\n} from \"venue-js\"\n","import React, { useCallback, useMemo, useState } from \"react\"\nimport { getDataClient, IndoorMap } from \"venue-js\"\nimport { VenueContext } from \"./VenueContext\"\nimport type { VenueProviderProps, VenueContextValue } from \"./types\"\n\nexport const VenueProvider: React.FC<VenueProviderProps> = ({\n children,\n config,\n}) => {\n \n /**\n * 1. DataClient\n */\n const dataClient = useMemo(() => {\n const venueClient = getDataClient({\n ...config,\n queryClient: config.queryClient,\n })\n\n return venueClient\n }, [config])\n\n /**\n * 2. mapInstances\n */\n const [mapInstances, setMapInstances] = useState<Record<string, IndoorMap>>({});\n const addMapInstance = useCallback((mapInstance: IndoorMap, id = 'default') => {\n setMapInstances(instances => ({...instances, [id]: mapInstance}));\n }, [setMapInstances]);\n\n const removeMapInstance = useCallback((id = 'default') => {\n setMapInstances(({[id]: _, ...remaining}) => remaining);\n }, [setMapInstances]);\n\n const clearMapInstances = useCallback(() => {\n setMapInstances({});\n }, [setMapInstances]);\n\n const getMapInstance = useCallback((id: string = 'default') => {\n return mapInstances[id]\n }, [mapInstances])\n\n const contextValue: VenueContextValue = {\n dataClient,\n mapInstances,\n addMapInstance,\n removeMapInstance,\n clearMapInstances,\n getMapInstance,\n }\n\n return (\n <VenueContext.Provider value={contextValue}>\n {children}\n </VenueContext.Provider>\n )\n}\n","/**\n * VenueContext {\n * client: VenueDataClient\n * }\n */\nimport { createContext, useContext } from \"react\"\nimport type { VenueContextValue } from \"./types\"\n\nexport const VenueContext = createContext<VenueContextValue | null>(\n null\n)\n\nexport const useVenueContext = (): VenueContextValue => {\n const context = useContext(VenueContext)\n if (context === null) {\n throw new Error(\"useVenueContext must be used within a VenueProvider\")\n }\n return context\n}\n","import { useVenueContext } from \"../VenueContext\"\nimport type { VenueDataClient } from \"venue-js\"\n\nexport const useVenueDataClient = (): VenueDataClient => {\n const { dataClient } = useVenueContext()\n return dataClient\n}\n","import { useQuery, UseQueryResult } from \"@tanstack/react-query\"\nimport {\n type FeatureType,\n type FeatureResponseMap,\n type FilterParams,\n type FeatureQueryOptions,\n} from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\n\nexport const useGetList = <T extends FeatureType>(\n featureType: T,\n params: FilterParams = {},\n options: FeatureQueryOptions = {}\n): UseQueryResult<FeatureResponseMap[T][]> => {\n const client = useVenueDataClient()\n const queryOptions = client.createFilterByTypeQueryOptions(\n featureType,\n params,\n options\n )\n\n // @ts-expect-error\n return useQuery<FeatureResponseMap[T][]>({\n ...queryOptions,\n ...options,\n })\n}\n","import { useQuery, UseQueryResult } from \"@tanstack/react-query\"\nimport {\n type FeatureType,\n type FeatureResponseMap,\n type FeaturePopulatedResponseMap,\n type FindParams,\n type FeatureQueryOptions,\n} from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\n\nexport function useGetOne<T extends FeatureType>(\n featureType: T,\n id: string | undefined,\n params: FindParams & { populate: true },\n options?: FeatureQueryOptions\n): UseQueryResult<FeaturePopulatedResponseMap[T]>\nexport function useGetOne<T extends FeatureType>(\n featureType: T,\n id: string | undefined,\n params?: FindParams,\n options?: FeatureQueryOptions\n): UseQueryResult<FeatureResponseMap[T]>\nexport function useGetOne<T extends FeatureType>(\n featureType: T,\n id: string | undefined,\n params: FindParams = {},\n options: FeatureQueryOptions = {}\n) {\n const client = useVenueDataClient()\n const queryOptions = client.createFindByIdQueryOptions(\n featureType,\n id ?? \"\",\n params,\n options\n )\n // @ts-expect-error\n return useQuery<FeatureResponseMap[T]>({\n ...queryOptions,\n ...options,\n enabled: (options.enabled ?? true) && !!id,\n })\n}\n","import { useQuery, UseQueryOptions, UseQueryResult } from \"@tanstack/react-query\"\nimport { type LocationConfig } from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\n\nexport const useGetLocationConfig = (\n name: string,\n options: Omit<UseQueryOptions<LocationConfig | null>, \"queryKey\" | \"queryFn\"> = {}\n): UseQueryResult<LocationConfig | null> => {\n const client = useVenueDataClient()\n const queryOptions = client.createLocationConfigQueryOptions(name)\n\n return useQuery<LocationConfig | null>({\n ...queryOptions,\n ...options,\n })\n}\n","import { type FeatureType } from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\nimport { useCallback, useEffect } from \"react\"\n\ntype UseWatchOptions = {\n autoStart?: boolean\n enabled?: boolean\n}\n\nexport const useWatchDeliveryApi = <T extends FeatureType>(\n featureType: T,\n refetchInterval: number = 5 * 60 * 1000,\n options: UseWatchOptions\n) => {\n\n const autoStart = options.autoStart ?? true\n const enabled = options.enabled ?? true\n\n const client = useVenueDataClient()\n\n const startWatch = useCallback(() => {\n if (enabled) {\n client.registerObserver(featureType, refetchInterval)\n }\n }, [client, featureType, enabled, refetchInterval])\n\n const stopWatch = useCallback(() => {\n client.destroyObserver(featureType)\n }, [client, featureType])\n\n useEffect(() => {\n /** Keep internal queries active */\n if (enabled && autoStart) startWatch()\n\n return () => {\n stopWatch()\n }\n }, [startWatch, stopWatch, enabled, autoStart])\n\n return { startWatch, stopWatch }\n}\n","import { useGetList } from \"../useGetList\"\n\nexport const useGetScreensavers = () => {\n return useGetList(\"sponsored-content\", {\n filters: { placement_type: \"SCREENSAVER\" },\n sort: { key: 'order', order: 'asc' }\n })\n}","import { useGetList } from \"../useGetList\"\n\nexport const useGetFooterBanners = () => {\n return useGetList(\"sponsored-content\", {\n filters: { placement_type: \"FOOTER_BANNER\" },\n sort: { key: 'order', order: 'asc' }\n })\n}","import React, { ComponentProps, useContext, useEffect } from 'react';\nimport { IndoorMapOptions } from 'venue-js';\nimport { useMapInstance } from '../../hooks/useMapInstance';\nimport { VenueContext } from '../../VenueContext';\n\nexport type VenueMapProps = ComponentProps<\"div\"> & {\n containerId?: string;\n mapId?: string;\n mapOptions?: Omit<IndoorMapOptions, 'dataClient'> | undefined;\n};\n\nexport const VenueMap = React.memo(\n ({\n containerId = 'map',\n mapId = 'default',\n mapOptions = {},\n ...props\n }: VenueMapProps) => {\n const context = useContext(VenueContext);\n if (context == null) {\n throw new Error(\n 'No context provided: VenueMap can only be used in a descendant of <VenueProvider>'\n );\n }\n \n const map = useMapInstance(containerId, { mapId, mapOptions }, context);\n\n return (\n <div {...props}>\n <div id={containerId} style={{ width: '100%', height: '100%' }} />\n </div>\n );\n }\n);\n","import { useEffect, useState } from \"react\";\nimport { IndoorMap } from \"venue-js\";\nimport { VenueContextValue } from \"../types\";\nimport { VenueMapProps } from \"../components/VenueMap\";\n\nexport const useMapInstance = (containerId: string, props: VenueMapProps, context: VenueContextValue): IndoorMap|null => {\n const [map, setMap] = useState<IndoorMap | null>(null)\n const { addMapInstance, removeMapInstance, getMapInstance } = context\n const { mapOptions, mapId = 'default' } = props\n const { dataClient } = context\n\n useEffect(() => {\n\n if (!dataClient) return\n\n let map: IndoorMap\n if (getMapInstance(mapId)) {\n map = getMapInstance(mapId)\n // If map already initialized, update Options\n map.setOptions(mapOptions ?? {});\n } else {\n\n // Create new map\n map = new IndoorMap(containerId, {\n dataClient,\n centerCross: true,\n renderer: {\n type: '3D',\n elements: {},\n },\n ...(mapOptions ?? {}),\n });\n\n \n }\n setMap(map);\n addMapInstance(map, mapId)\n\n return () => {\n if (map && map.map) {\n map.map?.remove();\n setMap(null)\n }\n removeMapInstance(mapId)\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mapId, mapOptions, dataClient.projectId]);\n\n return map\n}","import { useContext } from \"react\";\nimport { VenueContext } from \"../../VenueContext\";\n\n\nexport function useVenueMap(idMap?: string) {\n\n const context = useContext(VenueContext);\n\n if (!context) {\n console.log(\n 'useVenueMap(): failed to retrieve VenueMapContext. ' +\n 'Make sure that the <VenueProvider> component exists and that the ' +\n 'component you are calling `useMap()` from is a sibling of the ' +\n '<VenueProvider>.'\n );\n\n return null;\n }\n\n const { mapInstances } = context;\n return mapInstances[idMap ?? 'default']\n}\n"],"mappings":"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","names":["import_react","import_react_query","import_react_query","import_react","import_react","import_react","import_venue_js","map","import_jsx_runtime","React","import_react"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/VenueProvider.tsx","../src/VenueContext.tsx","../src/hooks/useVenueDataClient.ts","../src/hooks/useGetList.ts","../src/hooks/useGetOne.ts","../src/hooks/useGetLocationConfig.ts","../src/hooks/useWatchDeliveryApi.ts","../src/hooks/queries/sponsored-content/useGetScreensavers.ts","../src/hooks/queries/sponsored-content/useGetFooterBanners.ts","../src/hooks/queries/taxonomy/useGetTaxonomies.ts","../src/hooks/queries/taxonomy/useGetOccupantCategories.ts","../src/hooks/queries/taxonomy/useGetPromotionCategories.ts","../src/components/VenueMap/VenueMap.tsx","../src/hooks/useMapInstance.ts","../src/components/VenueMap/useVenueMap.ts"],"sourcesContent":["export * from \"venue-js\"\n\n// Provider\nexport { VenueProvider } from \"./VenueProvider\"\n\n// Context\nexport { VenueContext, useVenueContext } from \"./VenueContext\"\n\n// Hooks\nexport * from \"./hooks\"\n\n// Components \nexport * from './components/VenueMap'\n\n// Types\nexport type {\n VenueProviderProps,\n VenueContextValue,\n UseGetOneParams,\n UseGetListParams,\n UseGetOneResult,\n UseGetListResult,\n} from \"./types\"\n\n// Re-export venue-js types for convenience\nexport type {\n VenueDataClient,\n VenueClientOptions,\n FeatureType,\n FeatureResponseMap,\n FeaturePopulatedResponseMap,\n // IMDF Feature Types\n AmenityFeature,\n AnchorFeature,\n KioskFeature,\n LevelFeature,\n OccupantFeature,\n SectionFeature,\n UnitFeature,\n VenueFeature,\n // Non-IMDF Feature Types\n TaxonomyFeature,\n PromotionFeature,\n PrivilegeFeature,\n EventFeature,\n LabelFeature,\n} from \"venue-js\"\n","import React, { useCallback, useMemo, useState } from \"react\"\nimport { getDataClient, IndoorMap } from \"venue-js\"\nimport { VenueContext } from \"./VenueContext\"\nimport type { VenueProviderProps, VenueContextValue } from \"./types\"\n\nexport const VenueProvider: React.FC<VenueProviderProps> = ({\n children,\n config,\n}) => {\n \n /**\n * 1. DataClient\n */\n const dataClient = useMemo(() => {\n const venueClient = getDataClient({\n ...config,\n queryClient: config.queryClient,\n })\n\n return venueClient\n }, [config])\n\n /**\n * 2. mapInstances\n */\n const [mapInstances, setMapInstances] = useState<Record<string, IndoorMap>>({});\n const addMapInstance = useCallback((mapInstance: IndoorMap, id = 'default') => {\n setMapInstances(instances => ({...instances, [id]: mapInstance}));\n }, [setMapInstances]);\n\n const removeMapInstance = useCallback((id = 'default') => {\n setMapInstances(({[id]: _, ...remaining}) => remaining);\n }, [setMapInstances]);\n\n const clearMapInstances = useCallback(() => {\n setMapInstances({});\n }, [setMapInstances]);\n\n const getMapInstance = useCallback((id: string = 'default') => {\n return mapInstances[id]\n }, [mapInstances])\n\n const contextValue: VenueContextValue = {\n dataClient,\n mapInstances,\n addMapInstance,\n removeMapInstance,\n clearMapInstances,\n getMapInstance,\n }\n\n return (\n <VenueContext.Provider value={contextValue}>\n {children}\n </VenueContext.Provider>\n )\n}\n","/**\n * VenueContext {\n * client: VenueDataClient\n * }\n */\nimport { createContext, useContext } from \"react\"\nimport type { VenueContextValue } from \"./types\"\n\nexport const VenueContext = createContext<VenueContextValue | null>(\n null\n)\n\nexport const useVenueContext = (): VenueContextValue => {\n const context = useContext(VenueContext)\n if (context === null) {\n throw new Error(\"useVenueContext must be used within a VenueProvider\")\n }\n return context\n}\n","import { useVenueContext } from \"../VenueContext\"\nimport type { VenueDataClient } from \"venue-js\"\n\nexport const useVenueDataClient = (): VenueDataClient => {\n const { dataClient } = useVenueContext()\n return dataClient\n}\n","import { useQuery, UseQueryResult } from \"@tanstack/react-query\"\nimport {\n type FeatureType,\n type FeatureResponseMap,\n type FilterParams,\n type FeatureQueryOptions,\n} from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\n\nexport const useGetList = <T extends FeatureType>(\n featureType: T,\n params: FilterParams = {},\n options: FeatureQueryOptions = {}\n): UseQueryResult<FeatureResponseMap[T][]> => {\n const client = useVenueDataClient()\n const queryOptions = client.createFilterByTypeQueryOptions(\n featureType,\n params,\n options\n )\n\n // @ts-expect-error\n return useQuery<FeatureResponseMap[T][]>({\n ...queryOptions,\n ...options,\n })\n}\n","import { useQuery, UseQueryResult } from \"@tanstack/react-query\"\nimport {\n type FeatureType,\n type FeatureResponseMap,\n type FeaturePopulatedResponseMap,\n type FindParams,\n type FeatureQueryOptions,\n} from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\n\nexport function useGetOne<T extends FeatureType>(\n featureType: T,\n id: string | undefined,\n params: FindParams & { populate: true },\n options?: FeatureQueryOptions\n): UseQueryResult<FeaturePopulatedResponseMap[T]>\nexport function useGetOne<T extends FeatureType>(\n featureType: T,\n id: string | undefined,\n params?: FindParams,\n options?: FeatureQueryOptions\n): UseQueryResult<FeatureResponseMap[T]>\nexport function useGetOne<T extends FeatureType>(\n featureType: T,\n id: string | undefined,\n params: FindParams = {},\n options: FeatureQueryOptions = {}\n) {\n const client = useVenueDataClient()\n const queryOptions = client.createFindByIdQueryOptions(\n featureType,\n id ?? \"\",\n params,\n options\n )\n // @ts-expect-error\n return useQuery<FeatureResponseMap[T]>({\n ...queryOptions,\n ...options,\n enabled: (options.enabled ?? true) && !!id,\n })\n}\n","import { useQuery, UseQueryOptions, UseQueryResult } from \"@tanstack/react-query\"\nimport { type LocationConfig } from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\n\nexport const useGetLocationConfig = (\n name: string,\n options: Omit<UseQueryOptions<LocationConfig | null>, \"queryKey\" | \"queryFn\"> = {}\n): UseQueryResult<LocationConfig | null> => {\n const client = useVenueDataClient()\n const queryOptions = client.createLocationConfigQueryOptions(name)\n\n return useQuery<LocationConfig | null>({\n ...queryOptions,\n ...options,\n })\n}\n","import { type FeatureType } from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\nimport { useCallback, useEffect } from \"react\"\n\ntype UseWatchOptions = {\n autoStart?: boolean\n enabled?: boolean\n}\n\nexport const useWatchDeliveryApi = <T extends FeatureType>(\n featureType: T,\n refetchInterval: number = 5 * 60 * 1000,\n options: UseWatchOptions\n) => {\n\n const autoStart = options.autoStart ?? true\n const enabled = options.enabled ?? true\n\n const client = useVenueDataClient()\n\n const startWatch = useCallback(() => {\n if (enabled) {\n client.registerObserver(featureType, refetchInterval)\n }\n }, [client, featureType, enabled, refetchInterval])\n\n const stopWatch = useCallback(() => {\n client.destroyObserver(featureType)\n }, [client, featureType])\n\n useEffect(() => {\n /** Keep internal queries active */\n if (enabled && autoStart) startWatch()\n\n return () => {\n stopWatch()\n }\n }, [startWatch, stopWatch, enabled, autoStart])\n\n return { startWatch, stopWatch }\n}\n","import { useGetList } from \"../../useGetList\"\n\nexport const useGetScreensavers = () => {\n return useGetList(\"sponsored-content\", {\n filters: { placement_type: \"SCREENSAVER\" },\n sort: { key: 'order', order: 'asc' }\n })\n}","import { useGetList } from \"../../useGetList\"\n\nexport const useGetFooterBanners = () => {\n return useGetList(\"sponsored-content\", {\n filters: { placement_type: \"FOOTER_BANNER\" },\n sort: { key: 'order', order: 'asc' }\n })\n}","import { useGetList } from \"../../useGetList\"\n\nexport const useGetTaxonomies = (taxonomyType?: string) => {\n return useGetList(\"taxonomy\", {\n filters: taxonomyType ? { taxonomy: taxonomyType } : undefined,\n sort: { key: 'order', order: 'asc' }\n })\n}","import { useGetTaxonomies } from \"./useGetTaxonomies\"\n\nexport const useGetOccupantCategories = () => {\n return useGetTaxonomies(\"local-category\")\n}","import { useGetTaxonomies } from \"./useGetTaxonomies\"\n\nexport const useGetPromotionCategories = () => {\n return useGetTaxonomies(\"promotion-category\")\n}","import React, { ComponentProps, useContext, useEffect } from 'react';\nimport { IndoorMapOptions } from 'venue-js';\nimport { useMapInstance } from '../../hooks/useMapInstance';\nimport { VenueContext } from '../../VenueContext';\n\nexport type VenueMapProps = ComponentProps<\"div\"> & {\n containerId?: string;\n mapId?: string;\n mapOptions?: Omit<IndoorMapOptions, 'dataClient'> | undefined;\n};\n\nexport const VenueMap = React.memo(\n ({\n containerId = 'map',\n mapId = 'default',\n mapOptions = {},\n ...props\n }: VenueMapProps) => {\n const context = useContext(VenueContext);\n if (context == null) {\n throw new Error(\n 'No context provided: VenueMap can only be used in a descendant of <VenueProvider>'\n );\n }\n \n const map = useMapInstance(containerId, { mapId, mapOptions }, context);\n\n return (\n <div {...props}>\n <div id={containerId} style={{ width: '100%', height: '100%' }} />\n </div>\n );\n }\n);\n","import { useEffect, useState } from \"react\";\nimport { IndoorMap } from \"venue-js\";\nimport { VenueContextValue } from \"../types\";\nimport { VenueMapProps } from \"../components/VenueMap\";\n\nexport const useMapInstance = (containerId: string, props: VenueMapProps, context: VenueContextValue): IndoorMap|null => {\n const [map, setMap] = useState<IndoorMap | null>(null)\n const { addMapInstance, removeMapInstance, getMapInstance } = context\n const { mapOptions, mapId = 'default' } = props\n const { dataClient } = context\n\n useEffect(() => {\n\n if (!dataClient) return\n\n let map: IndoorMap\n if (getMapInstance(mapId)) {\n map = getMapInstance(mapId)\n // If map already initialized, update Options\n map.setOptions(mapOptions ?? {});\n } else {\n\n // Create new map\n map = new IndoorMap(containerId, {\n dataClient,\n centerCross: true,\n renderer: {\n type: '3D',\n elements: {},\n },\n ...(mapOptions ?? {}),\n });\n\n \n }\n setMap(map);\n addMapInstance(map, mapId)\n\n return () => {\n if (map && map.map) {\n map.map?.remove();\n setMap(null)\n }\n removeMapInstance(mapId)\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mapId, mapOptions, dataClient.projectId]);\n\n return map\n}","import { useContext } from \"react\";\nimport { VenueContext } from \"../../VenueContext\";\n\n\nexport function useVenueMap(idMap?: string) {\n\n const context = useContext(VenueContext);\n\n if (!context) {\n console.log(\n 'useVenueMap(): failed to retrieve VenueMapContext. ' +\n 'Make sure that the <VenueProvider> component exists and that the ' +\n 'component you are calling `useMap()` from is a sibling of the ' +\n '<VenueProvider>.'\n );\n\n return null;\n }\n\n const { mapInstances } = context;\n return mapInstances[idMap ?? 'default']\n}\n"],"mappings":"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","names":["import_react","import_react_query","import_react_query","import_react","import_react","import_react","import_venue_js","map","import_jsx_runtime","React","import_react"]}
|
package/dist/index.mjs
CHANGED
|
@@ -127,7 +127,7 @@ var useWatchDeliveryApi = (featureType, refetchInterval = 5 * 60 * 1e3, options)
|
|
|
127
127
|
return { startWatch, stopWatch };
|
|
128
128
|
};
|
|
129
129
|
|
|
130
|
-
// src/hooks/queries/useGetScreensavers.ts
|
|
130
|
+
// src/hooks/queries/sponsored-content/useGetScreensavers.ts
|
|
131
131
|
var useGetScreensavers = () => {
|
|
132
132
|
return useGetList("sponsored-content", {
|
|
133
133
|
filters: { placement_type: "SCREENSAVER" },
|
|
@@ -135,7 +135,7 @@ var useGetScreensavers = () => {
|
|
|
135
135
|
});
|
|
136
136
|
};
|
|
137
137
|
|
|
138
|
-
// src/hooks/queries/useGetFooterBanners.ts
|
|
138
|
+
// src/hooks/queries/sponsored-content/useGetFooterBanners.ts
|
|
139
139
|
var useGetFooterBanners = () => {
|
|
140
140
|
return useGetList("sponsored-content", {
|
|
141
141
|
filters: { placement_type: "FOOTER_BANNER" },
|
|
@@ -143,6 +143,24 @@ var useGetFooterBanners = () => {
|
|
|
143
143
|
});
|
|
144
144
|
};
|
|
145
145
|
|
|
146
|
+
// src/hooks/queries/taxonomy/useGetTaxonomies.ts
|
|
147
|
+
var useGetTaxonomies = (taxonomyType) => {
|
|
148
|
+
return useGetList("taxonomy", {
|
|
149
|
+
filters: taxonomyType ? { taxonomy: taxonomyType } : void 0,
|
|
150
|
+
sort: { key: "order", order: "asc" }
|
|
151
|
+
});
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
// src/hooks/queries/taxonomy/useGetOccupantCategories.ts
|
|
155
|
+
var useGetOccupantCategories = () => {
|
|
156
|
+
return useGetTaxonomies("local-category");
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
// src/hooks/queries/taxonomy/useGetPromotionCategories.ts
|
|
160
|
+
var useGetPromotionCategories = () => {
|
|
161
|
+
return useGetTaxonomies("promotion-category");
|
|
162
|
+
};
|
|
163
|
+
|
|
146
164
|
// src/components/VenueMap/VenueMap.tsx
|
|
147
165
|
import React2, { useContext as useContext2 } from "react";
|
|
148
166
|
|
|
@@ -224,8 +242,11 @@ export {
|
|
|
224
242
|
useGetFooterBanners,
|
|
225
243
|
useGetList,
|
|
226
244
|
useGetLocationConfig,
|
|
245
|
+
useGetOccupantCategories,
|
|
227
246
|
useGetOne,
|
|
247
|
+
useGetPromotionCategories,
|
|
228
248
|
useGetScreensavers,
|
|
249
|
+
useGetTaxonomies,
|
|
229
250
|
useVenueContext,
|
|
230
251
|
useVenueDataClient,
|
|
231
252
|
useVenueMap,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/VenueProvider.tsx","../src/VenueContext.tsx","../src/hooks/useVenueDataClient.ts","../src/hooks/useGetList.ts","../src/hooks/useGetOne.ts","../src/hooks/useGetLocationConfig.ts","../src/hooks/useWatchDeliveryApi.ts","../src/hooks/queries/useGetScreensavers.ts","../src/hooks/queries/useGetFooterBanners.ts","../src/components/VenueMap/VenueMap.tsx","../src/hooks/useMapInstance.ts","../src/components/VenueMap/useVenueMap.ts"],"sourcesContent":["export * from \"venue-js\"\n\n// Provider\nexport { VenueProvider } from \"./VenueProvider\"\n\n// Context\nexport { VenueContext, useVenueContext } from \"./VenueContext\"\n\n// Hooks\nexport * from \"./hooks\"\n\n// Components \nexport * from './components/VenueMap'\n\n// Types\nexport type {\n VenueProviderProps,\n VenueContextValue,\n UseGetOneParams,\n UseGetListParams,\n UseGetOneResult,\n UseGetListResult,\n} from \"./types\"\n\n// Re-export venue-js types for convenience\nexport type {\n VenueDataClient,\n VenueClientOptions,\n FeatureType,\n FeatureResponseMap,\n FeaturePopulatedResponseMap,\n // IMDF Feature Types\n AmenityFeature,\n AnchorFeature,\n KioskFeature,\n LevelFeature,\n OccupantFeature,\n SectionFeature,\n UnitFeature,\n VenueFeature,\n // Non-IMDF Feature Types\n TaxonomyFeature,\n PromotionFeature,\n PrivilegeFeature,\n EventFeature,\n LabelFeature,\n} from \"venue-js\"\n","import React, { useCallback, useMemo, useState } from \"react\"\nimport { getDataClient, IndoorMap } from \"venue-js\"\nimport { VenueContext } from \"./VenueContext\"\nimport type { VenueProviderProps, VenueContextValue } from \"./types\"\n\nexport const VenueProvider: React.FC<VenueProviderProps> = ({\n children,\n config,\n}) => {\n \n /**\n * 1. DataClient\n */\n const dataClient = useMemo(() => {\n const venueClient = getDataClient({\n ...config,\n queryClient: config.queryClient,\n })\n\n return venueClient\n }, [config])\n\n /**\n * 2. mapInstances\n */\n const [mapInstances, setMapInstances] = useState<Record<string, IndoorMap>>({});\n const addMapInstance = useCallback((mapInstance: IndoorMap, id = 'default') => {\n setMapInstances(instances => ({...instances, [id]: mapInstance}));\n }, [setMapInstances]);\n\n const removeMapInstance = useCallback((id = 'default') => {\n setMapInstances(({[id]: _, ...remaining}) => remaining);\n }, [setMapInstances]);\n\n const clearMapInstances = useCallback(() => {\n setMapInstances({});\n }, [setMapInstances]);\n\n const getMapInstance = useCallback((id: string = 'default') => {\n return mapInstances[id]\n }, [mapInstances])\n\n const contextValue: VenueContextValue = {\n dataClient,\n mapInstances,\n addMapInstance,\n removeMapInstance,\n clearMapInstances,\n getMapInstance,\n }\n\n return (\n <VenueContext.Provider value={contextValue}>\n {children}\n </VenueContext.Provider>\n )\n}\n","/**\n * VenueContext {\n * client: VenueDataClient\n * }\n */\nimport { createContext, useContext } from \"react\"\nimport type { VenueContextValue } from \"./types\"\n\nexport const VenueContext = createContext<VenueContextValue | null>(\n null\n)\n\nexport const useVenueContext = (): VenueContextValue => {\n const context = useContext(VenueContext)\n if (context === null) {\n throw new Error(\"useVenueContext must be used within a VenueProvider\")\n }\n return context\n}\n","import { useVenueContext } from \"../VenueContext\"\nimport type { VenueDataClient } from \"venue-js\"\n\nexport const useVenueDataClient = (): VenueDataClient => {\n const { dataClient } = useVenueContext()\n return dataClient\n}\n","import { useQuery, UseQueryResult } from \"@tanstack/react-query\"\nimport {\n type FeatureType,\n type FeatureResponseMap,\n type FilterParams,\n type FeatureQueryOptions,\n} from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\n\nexport const useGetList = <T extends FeatureType>(\n featureType: T,\n params: FilterParams = {},\n options: FeatureQueryOptions = {}\n): UseQueryResult<FeatureResponseMap[T][]> => {\n const client = useVenueDataClient()\n const queryOptions = client.createFilterByTypeQueryOptions(\n featureType,\n params,\n options\n )\n\n // @ts-expect-error\n return useQuery<FeatureResponseMap[T][]>({\n ...queryOptions,\n ...options,\n })\n}\n","import { useQuery, UseQueryResult } from \"@tanstack/react-query\"\nimport {\n type FeatureType,\n type FeatureResponseMap,\n type FeaturePopulatedResponseMap,\n type FindParams,\n type FeatureQueryOptions,\n} from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\n\nexport function useGetOne<T extends FeatureType>(\n featureType: T,\n id: string | undefined,\n params: FindParams & { populate: true },\n options?: FeatureQueryOptions\n): UseQueryResult<FeaturePopulatedResponseMap[T]>\nexport function useGetOne<T extends FeatureType>(\n featureType: T,\n id: string | undefined,\n params?: FindParams,\n options?: FeatureQueryOptions\n): UseQueryResult<FeatureResponseMap[T]>\nexport function useGetOne<T extends FeatureType>(\n featureType: T,\n id: string | undefined,\n params: FindParams = {},\n options: FeatureQueryOptions = {}\n) {\n const client = useVenueDataClient()\n const queryOptions = client.createFindByIdQueryOptions(\n featureType,\n id ?? \"\",\n params,\n options\n )\n // @ts-expect-error\n return useQuery<FeatureResponseMap[T]>({\n ...queryOptions,\n ...options,\n enabled: (options.enabled ?? true) && !!id,\n })\n}\n","import { useQuery, UseQueryOptions, UseQueryResult } from \"@tanstack/react-query\"\nimport { type LocationConfig } from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\n\nexport const useGetLocationConfig = (\n name: string,\n options: Omit<UseQueryOptions<LocationConfig | null>, \"queryKey\" | \"queryFn\"> = {}\n): UseQueryResult<LocationConfig | null> => {\n const client = useVenueDataClient()\n const queryOptions = client.createLocationConfigQueryOptions(name)\n\n return useQuery<LocationConfig | null>({\n ...queryOptions,\n ...options,\n })\n}\n","import { type FeatureType } from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\nimport { useCallback, useEffect } from \"react\"\n\ntype UseWatchOptions = {\n autoStart?: boolean\n enabled?: boolean\n}\n\nexport const useWatchDeliveryApi = <T extends FeatureType>(\n featureType: T,\n refetchInterval: number = 5 * 60 * 1000,\n options: UseWatchOptions\n) => {\n\n const autoStart = options.autoStart ?? true\n const enabled = options.enabled ?? true\n\n const client = useVenueDataClient()\n\n const startWatch = useCallback(() => {\n if (enabled) {\n client.registerObserver(featureType, refetchInterval)\n }\n }, [client, featureType, enabled, refetchInterval])\n\n const stopWatch = useCallback(() => {\n client.destroyObserver(featureType)\n }, [client, featureType])\n\n useEffect(() => {\n /** Keep internal queries active */\n if (enabled && autoStart) startWatch()\n\n return () => {\n stopWatch()\n }\n }, [startWatch, stopWatch, enabled, autoStart])\n\n return { startWatch, stopWatch }\n}\n","import { useGetList } from \"../useGetList\"\n\nexport const useGetScreensavers = () => {\n return useGetList(\"sponsored-content\", {\n filters: { placement_type: \"SCREENSAVER\" },\n sort: { key: 'order', order: 'asc' }\n })\n}","import { useGetList } from \"../useGetList\"\n\nexport const useGetFooterBanners = () => {\n return useGetList(\"sponsored-content\", {\n filters: { placement_type: \"FOOTER_BANNER\" },\n sort: { key: 'order', order: 'asc' }\n })\n}","import React, { ComponentProps, useContext, useEffect } from 'react';\nimport { IndoorMapOptions } from 'venue-js';\nimport { useMapInstance } from '../../hooks/useMapInstance';\nimport { VenueContext } from '../../VenueContext';\n\nexport type VenueMapProps = ComponentProps<\"div\"> & {\n containerId?: string;\n mapId?: string;\n mapOptions?: Omit<IndoorMapOptions, 'dataClient'> | undefined;\n};\n\nexport const VenueMap = React.memo(\n ({\n containerId = 'map',\n mapId = 'default',\n mapOptions = {},\n ...props\n }: VenueMapProps) => {\n const context = useContext(VenueContext);\n if (context == null) {\n throw new Error(\n 'No context provided: VenueMap can only be used in a descendant of <VenueProvider>'\n );\n }\n \n const map = useMapInstance(containerId, { mapId, mapOptions }, context);\n\n return (\n <div {...props}>\n <div id={containerId} style={{ width: '100%', height: '100%' }} />\n </div>\n );\n }\n);\n","import { useEffect, useState } from \"react\";\nimport { IndoorMap } from \"venue-js\";\nimport { VenueContextValue } from \"../types\";\nimport { VenueMapProps } from \"../components/VenueMap\";\n\nexport const useMapInstance = (containerId: string, props: VenueMapProps, context: VenueContextValue): IndoorMap|null => {\n const [map, setMap] = useState<IndoorMap | null>(null)\n const { addMapInstance, removeMapInstance, getMapInstance } = context\n const { mapOptions, mapId = 'default' } = props\n const { dataClient } = context\n\n useEffect(() => {\n\n if (!dataClient) return\n\n let map: IndoorMap\n if (getMapInstance(mapId)) {\n map = getMapInstance(mapId)\n // If map already initialized, update Options\n map.setOptions(mapOptions ?? {});\n } else {\n\n // Create new map\n map = new IndoorMap(containerId, {\n dataClient,\n centerCross: true,\n renderer: {\n type: '3D',\n elements: {},\n },\n ...(mapOptions ?? {}),\n });\n\n \n }\n setMap(map);\n addMapInstance(map, mapId)\n\n return () => {\n if (map && map.map) {\n map.map?.remove();\n setMap(null)\n }\n removeMapInstance(mapId)\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mapId, mapOptions, dataClient.projectId]);\n\n return map\n}","import { useContext } from \"react\";\nimport { VenueContext } from \"../../VenueContext\";\n\n\nexport function useVenueMap(idMap?: string) {\n\n const context = useContext(VenueContext);\n\n if (!context) {\n console.log(\n 'useVenueMap(): failed to retrieve VenueMapContext. ' +\n 'Make sure that the <VenueProvider> component exists and that the ' +\n 'component you are calling `useMap()` from is a sibling of the ' +\n '<VenueProvider>.'\n );\n\n return null;\n }\n\n const { mapInstances } = context;\n return mapInstances[idMap ?? 'default']\n}\n"],"mappings":"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","names":["useQuery","useQuery","useQuery","useQuery","useCallback","React","useContext","useEffect","useState","IndoorMap","map","jsx","React","useContext","useContext","useContext"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/VenueProvider.tsx","../src/VenueContext.tsx","../src/hooks/useVenueDataClient.ts","../src/hooks/useGetList.ts","../src/hooks/useGetOne.ts","../src/hooks/useGetLocationConfig.ts","../src/hooks/useWatchDeliveryApi.ts","../src/hooks/queries/sponsored-content/useGetScreensavers.ts","../src/hooks/queries/sponsored-content/useGetFooterBanners.ts","../src/hooks/queries/taxonomy/useGetTaxonomies.ts","../src/hooks/queries/taxonomy/useGetOccupantCategories.ts","../src/hooks/queries/taxonomy/useGetPromotionCategories.ts","../src/components/VenueMap/VenueMap.tsx","../src/hooks/useMapInstance.ts","../src/components/VenueMap/useVenueMap.ts"],"sourcesContent":["export * from \"venue-js\"\n\n// Provider\nexport { VenueProvider } from \"./VenueProvider\"\n\n// Context\nexport { VenueContext, useVenueContext } from \"./VenueContext\"\n\n// Hooks\nexport * from \"./hooks\"\n\n// Components \nexport * from './components/VenueMap'\n\n// Types\nexport type {\n VenueProviderProps,\n VenueContextValue,\n UseGetOneParams,\n UseGetListParams,\n UseGetOneResult,\n UseGetListResult,\n} from \"./types\"\n\n// Re-export venue-js types for convenience\nexport type {\n VenueDataClient,\n VenueClientOptions,\n FeatureType,\n FeatureResponseMap,\n FeaturePopulatedResponseMap,\n // IMDF Feature Types\n AmenityFeature,\n AnchorFeature,\n KioskFeature,\n LevelFeature,\n OccupantFeature,\n SectionFeature,\n UnitFeature,\n VenueFeature,\n // Non-IMDF Feature Types\n TaxonomyFeature,\n PromotionFeature,\n PrivilegeFeature,\n EventFeature,\n LabelFeature,\n} from \"venue-js\"\n","import React, { useCallback, useMemo, useState } from \"react\"\nimport { getDataClient, IndoorMap } from \"venue-js\"\nimport { VenueContext } from \"./VenueContext\"\nimport type { VenueProviderProps, VenueContextValue } from \"./types\"\n\nexport const VenueProvider: React.FC<VenueProviderProps> = ({\n children,\n config,\n}) => {\n \n /**\n * 1. DataClient\n */\n const dataClient = useMemo(() => {\n const venueClient = getDataClient({\n ...config,\n queryClient: config.queryClient,\n })\n\n return venueClient\n }, [config])\n\n /**\n * 2. mapInstances\n */\n const [mapInstances, setMapInstances] = useState<Record<string, IndoorMap>>({});\n const addMapInstance = useCallback((mapInstance: IndoorMap, id = 'default') => {\n setMapInstances(instances => ({...instances, [id]: mapInstance}));\n }, [setMapInstances]);\n\n const removeMapInstance = useCallback((id = 'default') => {\n setMapInstances(({[id]: _, ...remaining}) => remaining);\n }, [setMapInstances]);\n\n const clearMapInstances = useCallback(() => {\n setMapInstances({});\n }, [setMapInstances]);\n\n const getMapInstance = useCallback((id: string = 'default') => {\n return mapInstances[id]\n }, [mapInstances])\n\n const contextValue: VenueContextValue = {\n dataClient,\n mapInstances,\n addMapInstance,\n removeMapInstance,\n clearMapInstances,\n getMapInstance,\n }\n\n return (\n <VenueContext.Provider value={contextValue}>\n {children}\n </VenueContext.Provider>\n )\n}\n","/**\n * VenueContext {\n * client: VenueDataClient\n * }\n */\nimport { createContext, useContext } from \"react\"\nimport type { VenueContextValue } from \"./types\"\n\nexport const VenueContext = createContext<VenueContextValue | null>(\n null\n)\n\nexport const useVenueContext = (): VenueContextValue => {\n const context = useContext(VenueContext)\n if (context === null) {\n throw new Error(\"useVenueContext must be used within a VenueProvider\")\n }\n return context\n}\n","import { useVenueContext } from \"../VenueContext\"\nimport type { VenueDataClient } from \"venue-js\"\n\nexport const useVenueDataClient = (): VenueDataClient => {\n const { dataClient } = useVenueContext()\n return dataClient\n}\n","import { useQuery, UseQueryResult } from \"@tanstack/react-query\"\nimport {\n type FeatureType,\n type FeatureResponseMap,\n type FilterParams,\n type FeatureQueryOptions,\n} from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\n\nexport const useGetList = <T extends FeatureType>(\n featureType: T,\n params: FilterParams = {},\n options: FeatureQueryOptions = {}\n): UseQueryResult<FeatureResponseMap[T][]> => {\n const client = useVenueDataClient()\n const queryOptions = client.createFilterByTypeQueryOptions(\n featureType,\n params,\n options\n )\n\n // @ts-expect-error\n return useQuery<FeatureResponseMap[T][]>({\n ...queryOptions,\n ...options,\n })\n}\n","import { useQuery, UseQueryResult } from \"@tanstack/react-query\"\nimport {\n type FeatureType,\n type FeatureResponseMap,\n type FeaturePopulatedResponseMap,\n type FindParams,\n type FeatureQueryOptions,\n} from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\n\nexport function useGetOne<T extends FeatureType>(\n featureType: T,\n id: string | undefined,\n params: FindParams & { populate: true },\n options?: FeatureQueryOptions\n): UseQueryResult<FeaturePopulatedResponseMap[T]>\nexport function useGetOne<T extends FeatureType>(\n featureType: T,\n id: string | undefined,\n params?: FindParams,\n options?: FeatureQueryOptions\n): UseQueryResult<FeatureResponseMap[T]>\nexport function useGetOne<T extends FeatureType>(\n featureType: T,\n id: string | undefined,\n params: FindParams = {},\n options: FeatureQueryOptions = {}\n) {\n const client = useVenueDataClient()\n const queryOptions = client.createFindByIdQueryOptions(\n featureType,\n id ?? \"\",\n params,\n options\n )\n // @ts-expect-error\n return useQuery<FeatureResponseMap[T]>({\n ...queryOptions,\n ...options,\n enabled: (options.enabled ?? true) && !!id,\n })\n}\n","import { useQuery, UseQueryOptions, UseQueryResult } from \"@tanstack/react-query\"\nimport { type LocationConfig } from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\n\nexport const useGetLocationConfig = (\n name: string,\n options: Omit<UseQueryOptions<LocationConfig | null>, \"queryKey\" | \"queryFn\"> = {}\n): UseQueryResult<LocationConfig | null> => {\n const client = useVenueDataClient()\n const queryOptions = client.createLocationConfigQueryOptions(name)\n\n return useQuery<LocationConfig | null>({\n ...queryOptions,\n ...options,\n })\n}\n","import { type FeatureType } from \"venue-js\"\nimport { useVenueDataClient } from \"./useVenueDataClient\"\nimport { useCallback, useEffect } from \"react\"\n\ntype UseWatchOptions = {\n autoStart?: boolean\n enabled?: boolean\n}\n\nexport const useWatchDeliveryApi = <T extends FeatureType>(\n featureType: T,\n refetchInterval: number = 5 * 60 * 1000,\n options: UseWatchOptions\n) => {\n\n const autoStart = options.autoStart ?? true\n const enabled = options.enabled ?? true\n\n const client = useVenueDataClient()\n\n const startWatch = useCallback(() => {\n if (enabled) {\n client.registerObserver(featureType, refetchInterval)\n }\n }, [client, featureType, enabled, refetchInterval])\n\n const stopWatch = useCallback(() => {\n client.destroyObserver(featureType)\n }, [client, featureType])\n\n useEffect(() => {\n /** Keep internal queries active */\n if (enabled && autoStart) startWatch()\n\n return () => {\n stopWatch()\n }\n }, [startWatch, stopWatch, enabled, autoStart])\n\n return { startWatch, stopWatch }\n}\n","import { useGetList } from \"../../useGetList\"\n\nexport const useGetScreensavers = () => {\n return useGetList(\"sponsored-content\", {\n filters: { placement_type: \"SCREENSAVER\" },\n sort: { key: 'order', order: 'asc' }\n })\n}","import { useGetList } from \"../../useGetList\"\n\nexport const useGetFooterBanners = () => {\n return useGetList(\"sponsored-content\", {\n filters: { placement_type: \"FOOTER_BANNER\" },\n sort: { key: 'order', order: 'asc' }\n })\n}","import { useGetList } from \"../../useGetList\"\n\nexport const useGetTaxonomies = (taxonomyType?: string) => {\n return useGetList(\"taxonomy\", {\n filters: taxonomyType ? { taxonomy: taxonomyType } : undefined,\n sort: { key: 'order', order: 'asc' }\n })\n}","import { useGetTaxonomies } from \"./useGetTaxonomies\"\n\nexport const useGetOccupantCategories = () => {\n return useGetTaxonomies(\"local-category\")\n}","import { useGetTaxonomies } from \"./useGetTaxonomies\"\n\nexport const useGetPromotionCategories = () => {\n return useGetTaxonomies(\"promotion-category\")\n}","import React, { ComponentProps, useContext, useEffect } from 'react';\nimport { IndoorMapOptions } from 'venue-js';\nimport { useMapInstance } from '../../hooks/useMapInstance';\nimport { VenueContext } from '../../VenueContext';\n\nexport type VenueMapProps = ComponentProps<\"div\"> & {\n containerId?: string;\n mapId?: string;\n mapOptions?: Omit<IndoorMapOptions, 'dataClient'> | undefined;\n};\n\nexport const VenueMap = React.memo(\n ({\n containerId = 'map',\n mapId = 'default',\n mapOptions = {},\n ...props\n }: VenueMapProps) => {\n const context = useContext(VenueContext);\n if (context == null) {\n throw new Error(\n 'No context provided: VenueMap can only be used in a descendant of <VenueProvider>'\n );\n }\n \n const map = useMapInstance(containerId, { mapId, mapOptions }, context);\n\n return (\n <div {...props}>\n <div id={containerId} style={{ width: '100%', height: '100%' }} />\n </div>\n );\n }\n);\n","import { useEffect, useState } from \"react\";\nimport { IndoorMap } from \"venue-js\";\nimport { VenueContextValue } from \"../types\";\nimport { VenueMapProps } from \"../components/VenueMap\";\n\nexport const useMapInstance = (containerId: string, props: VenueMapProps, context: VenueContextValue): IndoorMap|null => {\n const [map, setMap] = useState<IndoorMap | null>(null)\n const { addMapInstance, removeMapInstance, getMapInstance } = context\n const { mapOptions, mapId = 'default' } = props\n const { dataClient } = context\n\n useEffect(() => {\n\n if (!dataClient) return\n\n let map: IndoorMap\n if (getMapInstance(mapId)) {\n map = getMapInstance(mapId)\n // If map already initialized, update Options\n map.setOptions(mapOptions ?? {});\n } else {\n\n // Create new map\n map = new IndoorMap(containerId, {\n dataClient,\n centerCross: true,\n renderer: {\n type: '3D',\n elements: {},\n },\n ...(mapOptions ?? {}),\n });\n\n \n }\n setMap(map);\n addMapInstance(map, mapId)\n\n return () => {\n if (map && map.map) {\n map.map?.remove();\n setMap(null)\n }\n removeMapInstance(mapId)\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mapId, mapOptions, dataClient.projectId]);\n\n return map\n}","import { useContext } from \"react\";\nimport { VenueContext } from \"../../VenueContext\";\n\n\nexport function useVenueMap(idMap?: string) {\n\n const context = useContext(VenueContext);\n\n if (!context) {\n console.log(\n 'useVenueMap(): failed to retrieve VenueMapContext. ' +\n 'Make sure that the <VenueProvider> component exists and that the ' +\n 'component you are calling `useMap()` from is a sibling of the ' +\n '<VenueProvider>.'\n );\n\n return null;\n }\n\n const { mapInstances } = context;\n return mapInstances[idMap ?? 'default']\n}\n"],"mappings":"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","names":["useQuery","useQuery","useQuery","useQuery","useCallback","React","useContext","useEffect","useState","IndoorMap","map","jsx","React","useContext","useContext","useContext"]}
|