wovvmap-webview-bridge 1.0.17 → 1.0.19

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/README.md CHANGED
@@ -1,21 +1,12 @@
1
- # React Native WebView Bridge
1
+ # wovvmap-webview-bridge
2
2
 
3
- A lightweight and strongly typed bridge for **React Native + WebView** communication.
4
- It provides an out-of-the-box `<WebViewScreen />`, helpers for sending events, a global store with Zustand, and strongly typed message contracts.
3
+ A typed bridge between React Native and a WebView for Wovvmap maps. It provides:
4
+ - WebViewScreen wrapper for React Native WebView
5
+ - BridgeService helpers to send events to the WebView
6
+ - Zustand store (useBridgeStorage) that keeps incoming state in sync
7
+ - Strongly typed message contracts
5
8
 
6
- ---
7
-
8
- ## ✨ Features
9
-
10
- - 📱 **WebView wrapper**: `<WebViewScreen />` ready to use.
11
- - 🔄 **Bridge service actions** for all map/direction operations.
12
- - 🗂 **Typed handlers** for Web → React Native communication.
13
- - 📦 **State management** using Zustand (`BridgeStorage`).
14
- - 🧩 **TypeScript auto-imports** for events, node data, and navigation state.
15
-
16
- ---
17
-
18
- ## 📦 Installation
9
+ ## Installation
19
10
 
20
11
  ```bash
21
12
  npm install react-native-webview zustand
@@ -23,27 +14,20 @@ npm install react-native-webview zustand
23
14
  yarn add react-native-webview zustand
24
15
  ```
25
16
 
26
- ---
17
+ ## Quick start
27
18
 
28
- ## 🚀 Usage
29
-
30
- ### 1. Render the WebView
19
+ ### 1) Render the WebView
31
20
 
32
21
  ```tsx
33
22
  import React from "react";
34
- import { WebViewScreen } from "your-bridge-package";
23
+ import { WebViewScreen } from "wovvmap-webview-bridge";
35
24
 
36
25
  export default function App() {
37
26
  return <WebViewScreen url="https://your-map-app-url.com" />;
38
27
  }
39
28
  ```
40
29
 
41
- ---
42
-
43
- ### 2. Sending Messages (React Native → Web)
44
-
45
- All helper methods are provided via `BridgeService.ts`.
46
- They wrap `sendToWeb(...)` and ensure correct **OutgoingMessage** format.
30
+ ### 2) Send events to the WebView (RN -> Web)
47
31
 
48
32
  ```tsx
49
33
  import {
@@ -59,152 +43,173 @@ import {
59
43
  sendClearStartAndEndPoint,
60
44
  sendPathFilter,
61
45
  sendGetDirectionToBridge,
62
- } from "your-bridge-package";
63
-
64
- // Example usage
65
- sendStartPointToBridge("A1"); // Set start node
66
- sendEndPointToBridge("B5"); // Set end node
67
- sendActiveFloorToBridge(2); // Switch active floor
68
- sendPathNextBtnClick(); // Go to next step in navigation
69
- sendPathPreBtnClick(); // Go to previous step
70
- sendPathFinishBtnClick(); // End navigation
71
- sendSelectCategory("Food"); // Highlight category
72
- sendZoomIn(); // Zoom in on map
73
- sendZoomOut(); // Zoom out
74
- sendClearStartAndEndPoint(); // Reset start/end
75
- sendPathFilter(); // Apply path filters (lift/escalator)
76
- sendGetDirectionToBridge(); // Request navigation directions
46
+ sendNavigateToBridge,
47
+ sendMapThemeToBridge,
48
+ } from "wovvmap-webview-bridge";
49
+
50
+ sendStartPointToBridge("A1");
51
+ sendEndPointToBridge("B5");
52
+ sendActiveFloorToBridge(2);
53
+ sendPathNextBtnClick();
54
+ sendPathPreBtnClick();
55
+ sendPathFinishBtnClick();
56
+ sendSelectCategory(["Food", "Fashion"]);
57
+ sendZoomIn();
58
+ sendZoomOut();
59
+ sendClearStartAndEndPoint();
60
+ sendPathFilter();
61
+ sendGetDirectionToBridge();
62
+ sendNavigateToBridge("map-id-123");
63
+ sendMapThemeToBridge({ "theme-path-color": "#00AAFF" });
77
64
  ```
78
65
 
79
- ---
66
+ ### 3) Handle events from the WebView (Web -> RN)
80
67
 
81
- ### 3. Handling Messages (Web React Native)
82
-
83
- The bridge supports typed incoming messages.
84
- You can register handlers for specific events using `registerBridgeHandler`.
68
+ You can register handlers for click events. All other events are stored in the Zustand store.
85
69
 
86
70
  ```tsx
87
- import { registerBridgeHandler } from "your-bridge-package";
71
+ import { registerBridgeHandler } from "wovvmap-webview-bridge";
88
72
 
89
73
  registerBridgeHandler("isSceneClick", (payload) => {
90
- console.log("Scene clicked:", payload);
74
+ console.log("Scene clicked", payload);
91
75
  });
92
76
 
93
- registerBridgeHandler("isShapClick", (payload) => {
94
- console.log("Shape clicked:", payload.value);
77
+ registerBridgeHandler("isShapeClick", (payload) => {
78
+ console.log("Shape clicked", payload.value);
95
79
  });
96
80
  ```
97
81
 
98
- Internally, all other events are stored inside the **Zustand store**.
99
-
100
- ---
101
-
102
- ### 4. Accessing State
103
-
104
- The `BridgeStorage` Zustand store automatically syncs WebView state.
82
+ ### 4) Read synced state from the store
105
83
 
106
84
  ```tsx
107
- import { bridgeStorage } from "your-bridge-package";
85
+ import { useBridgeStorage } from "wovvmap-webview-bridge";
108
86
 
109
- const state = bridgeStorage((s) => ({
87
+ const state = useBridgeStorage((s) => ({
88
+ isBridgeLoaded: s.isBridgeLoaded,
110
89
  isMapLoaded: s.isMapLoaded,
111
- activeFloor: s.activeFloor,
112
90
  searchablePoints: s.searchablePoints,
113
- stapByStapList: s.stapByStapList,
91
+ activeFloor: s.activeFloor,
92
+ stepByStepList: s.stepByStepList,
93
+ pathSummary: s.pathSummary,
94
+ categories: s.categories,
95
+ subCategories: s.subCategories,
114
96
  }));
115
-
116
- console.log(state);
117
- ```
118
-
119
- Available fields:
120
- - `isBridgeLoaded`
121
- - `isMapLoaded`
122
- - `searchablePoints`
123
- - `activeFloor`
124
- - `elevator`, `escalator`
125
- - `floorImages`
126
- - `stapByStapList`
127
- - `nextPreState`
128
- - `pointsByKey`
129
- - `categoryList`
130
- - `allCategoryNodes`
131
-
132
- ---
133
-
134
- ## 🧩 Types
135
-
136
- Types are exported for safer development and auto-import convenience.
137
-
138
- ### `IncomingMessage` (Web → RN)
139
- ```ts
140
- type IncomingMessage =
141
- | { type: "event"; key: "mapLoaded"; value: boolean; file: string }
142
- | { type: "event"; key: "isConnection"; value: boolean; file: string }
143
- | { type: "event"; key: "_searchablePoints"; value: NodePoint[]; file: string }
144
- | { type: "event"; key: "Category"; value: Category[]; file: string }
145
- | { type: "event"; key: "_allCategory"; value: Record<string, NodePoint[]>; file: string }
146
- | { type: "event"; key: "_activeFloor"; value: number; file: string }
147
- | { type: "event"; key: "FloorImg"; value: FloorImage[]; file: string }
148
- | { type: "event"; key: "isSceneClick"; file: string }
149
- | { type: "event"; key: "isShapClick"; value: NodePoint; file: string }
150
- | { type: "event"; key: "stapByStapList"; value: StepInstruction[]; file: string }
151
- | { type: "event"; key: "pathNextPreState"; value: NavState; file: string };
152
97
  ```
153
98
 
154
- ### `OutgoingMessage` (RN → Web)
155
- ```ts
156
- type OutgoingMessage =
157
- | { type: "event"; key: "setStartPoint"; value: string; file: string }
158
- | { type: "event"; key: "setEndPoint"; value: string; file: string }
159
- | { type: "event"; key: "setActiveFloor"; value: number; file: string }
160
- | { type: "event"; key: "pathNextBtnClick"; file: string }
161
- | { type: "event"; key: "pathPreBtnClick"; file: string }
162
- | { type: "event"; key: "pathFinishBtnClick"; file: string }
163
- | { type: "event"; key: "setSelectCatedory"; value: string | null; file: string }
164
- | { type: "event"; key: "zoomIn"; file: string }
165
- | { type: "event"; key: "zoomOut"; file: string }
166
- | { type: "event"; key: "clearStartAndEndPoint"; file: string }
167
- | { type: "event"; key: "setPathFilter"; value: filterPath; file: string }
168
- | { type: "event"; key: "getDirection"; file: string }
169
- | { type: "event"; key: "setMapTheme"; value: Theme | null; file: string }
170
- | { type: "event"; key: "navigateTo"; value: string; file: string };
171
- ```
172
-
173
- ### `NodePoint`
174
- Represents a searchable location on the map, with properties like `LocationName`, `Category`, `shape[]`, `logo`, etc.
175
-
176
- ### `Category`
177
- Represents a category with `name`, `Description`, and `color`.
178
-
179
- ### `FloorImage`
180
- Holds metadata about floors (name, url, index, etc).
181
-
182
- ### `StepInstruction`
183
- Represents a step in navigation (`instruction`, `distance`, `icon`).
184
-
185
- ### `NavState`
186
- Navigation state info (current floor index, step index, prev/next availability).
187
-
188
- ---
189
-
190
- ## 📖 File Structure
99
+ Store fields:
100
+ - isBridgeLoaded
101
+ - isMapLoaded
102
+ - searchablePoints
103
+ - activeFloor
104
+ - elevator, escalator
105
+ - floorImages
106
+ - stepByStepList
107
+ - pathSummary
108
+ - nextPreState
109
+ - pointsByKey
110
+ - categories
111
+ - subCategories
112
+ - cameraControllerState
113
+
114
+ ## Bridge message contracts
115
+
116
+ ### IncomingMessage (Web -> RN)
117
+ Keys and payloads:
118
+ - pong: boolean
119
+ - isConnection: boolean
120
+ - mapLoaded: boolean
121
+ - _searchablePoints: NodePoint[]
122
+ - _allAmenities: NodePoint[]
123
+ - _activeFloor: number
124
+ - FloorImg: FloorImage[]
125
+ - categories: Record<ExternalId, Category>
126
+ - subCategories: Record<ExternalId, SubCategory>
127
+ - isSceneClick: no value
128
+ - isShapeClick: NodePoint
129
+ - stepByStepList: StepByStepResult
130
+ - pathNextPreState: NavState
131
+ - cameraControllerState: { cameraPosition: CameraPosition; controlsPosition: ControlsPosition }
132
+
133
+ ### OutgoingMessage (RN -> Web)
134
+ Keys and payloads:
135
+ - applyCSS: { selector: string; style: Partial<CSSStyleDeclaration> }
136
+ - ping: boolean
137
+ - setEndPoint: string
138
+ - setStartPoint: string
139
+ - setActiveFloor: number
140
+ - pathNextBtnClick: no value
141
+ - pathPreBtnClick: no value
142
+ - pathFinishBtnClick: no value
143
+ - setSelectCategory: string | string[] | null
144
+ - zoomIn: no value
145
+ - zoomOut: no value
146
+ - clearStartAndEndPoint: no value
147
+ - setPathFilter: filterPath
148
+ - getDirection: no value
149
+ - setMapTheme: Theme | null
150
+ - navigateTo: string
151
+ - editableView: MapApiResponse
152
+ - pathHighlightByStepIndex: number
153
+
154
+ ## Exported API
155
+
156
+ ### Components
157
+ - WebViewScreen
158
+
159
+ ### Bridge helpers
160
+ - sendStartPointToBridge
161
+ - sendEndPointToBridge
162
+ - sendActiveFloorToBridge
163
+ - sendPathNextBtnClick
164
+ - sendPathPreBtnClick
165
+ - sendPathFinishBtnClick
166
+ - sendSelectCategory
167
+ - sendZoomIn
168
+ - sendZoomOut
169
+ - sendClearStartAndEndPoint
170
+ - sendGetDirectionToBridge
171
+ - sendPathFilter
172
+ - sendNavigateToBridge
173
+ - sendMapThemeToBridge
174
+
175
+ ### Handlers
176
+ - registerBridgeHandler
177
+
178
+ ### Store
179
+ - useBridgeStorage (Zustand)
180
+
181
+ ### Types
182
+ - IncomingMessage, OutgoingMessage
183
+ - NodePoint
184
+ - Category, SubCategory, ExternalId
185
+ - Environment, DayHours, WeeklyHours
186
+ - NodePointOffer, BrandInfo
187
+ - MapExportContext, GeometryFloor, GeometryNodePoint, GeometryLayer
188
+ - NodeMetadata, AssetPayloads
189
+ - FloorImage
190
+ - StepInstruction, PathSummary, StepByStepResult
191
+ - NavState
192
+ - filterPath
193
+ - Theme
194
+ - CameraPosition, ControlsPosition
195
+ - MapApiResponse, MapDataExport
196
+
197
+ ## File structure
191
198
 
192
199
  ```
193
200
  src/
194
- ├── index.ts # Entry exports
195
- ├── webviewBridge/
196
- ├── WebViewScreen.tsx # <WebView /> wrapper
197
- ├── BridgeService.ts # Actions (sendToWeb wrappers)
198
- ├── BridgeStorage.ts # Zustand store
199
- ├── WebViewBridgeRef.ts # WebView ref manager
200
- ├── handlers/
201
- └── WebBridgeHandlers.ts
202
- ├── types/
203
- └── types.ts # Strongly typed contracts
201
+ index.ts
202
+ webviewBridge/
203
+ WebViewScreen.tsx
204
+ BridgeService.ts
205
+ BridgeStorage.ts
206
+ WebViewBridgeRef.ts
207
+ handlers/
208
+ WebBridgeHandlers.ts
209
+ types/
210
+ types.ts
204
211
  ```
205
212
 
206
- ---
207
-
208
- ## 🛡 License
213
+ ## License
209
214
 
210
- MIT © 2025
215
+ MIT
@@ -6,9 +6,9 @@ export type EventHandlerMap = {
6
6
  key: "isSceneClick";
7
7
  file: string;
8
8
  }) => void;
9
- isShapClick?: (shapClick: {
9
+ isShapeClick?: (shapeClick: {
10
10
  type: "event";
11
- key: "isShapClick";
11
+ key: "isShapeClick";
12
12
  value: NodePoint;
13
13
  file: string;
14
14
  }) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"WebBridgeHandlers.d.ts","sourceRoot":"","sources":["../../src/handlers/WebBridgeHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAmB,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI5D,MAAM,MAAM,eAAe,GAAG;IAC7B,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1F,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACzG,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,eAAe,CAAM,CAAC;AAK1D,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,MAAM,eAAe,EACnE,MAAM,CAAC,EACP,SAAS,eAAe,CAAC,CAAC,CAAC,SAG5B,CAAC;AAGF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,mBAAmB,SA4D3B,CAAC"}
1
+ {"version":3,"file":"WebBridgeHandlers.d.ts","sourceRoot":"","sources":["../../src/handlers/WebBridgeHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAmB,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI5D,MAAM,MAAM,eAAe,GAAG;IAC7B,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1F,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC5G,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,eAAe,CAAM,CAAC;AAK1D,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,MAAM,eAAe,EACnE,MAAM,CAAC,EACP,SAAS,eAAe,CAAC,CAAC,CAAC,SAG5B,CAAC;AAGF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,mBAAmB,SA6D3B,CAAC"}
@@ -37,23 +37,25 @@ export const handleBridgeMessage = (event) => {
37
37
  state.setActiveFloor(message.value);
38
38
  if (message.key === "FloorImg")
39
39
  state.setFloorImages(message.value);
40
- if (message.key === "stapByStapList") {
40
+ if (message.key === "stepByStepList") {
41
41
  console.log('message: ', message);
42
- state.setStapByStapList(message.value.list);
42
+ state.setStepByStepList(message.value.list);
43
43
  state.setPathSummary(message.value.summary);
44
44
  }
45
45
  ;
46
46
  if (message.key === "pathNextPreState")
47
47
  state.setNextPreState(message.value);
48
- if (message.key === "Category")
49
- state.setCategoryList(message.value);
50
- if (message.key === "_allCategory")
51
- state.setAllCategoryNodes(message.value);
48
+ if (message.key === "categories")
49
+ state.setCategories(message.value);
50
+ if (message.key === "subCategories")
51
+ state.setSubCategories(message.value);
52
+ if (message.key === "cameraControllerState")
53
+ state.setCameraControllerState(message.value);
52
54
  // event handler
53
55
  console.log('eventHandlers: ', eventHandlers);
54
56
  if (message.key === "isSceneClick")
55
57
  (_a = eventHandlers[message.key]) === null || _a === void 0 ? void 0 : _a.call(eventHandlers, message);
56
- if (message.key === "isShapClick")
58
+ if (message.key === "isShapeClick")
57
59
  (_b = eventHandlers[message.key]) === null || _b === void 0 ? void 0 : _b.call(eventHandlers, message);
58
60
  }
59
61
  catch (e) {
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { WebViewScreen } from "./webviewBridge/WebViewScreen";
2
- export { sendStartPointToBridge, sendEndPointToBridge, sendActiveFloorToBridge, sendPathNextBtnClick, sendPathPreBtnClick, sendPathFinishBtnClick, sendGetDirectionToBridge, sendPathFilter } from "./webviewBridge/BridgeService";
2
+ export { sendStartPointToBridge, sendEndPointToBridge, sendActiveFloorToBridge, sendPathNextBtnClick, sendPathPreBtnClick, sendPathFinishBtnClick, sendSelectCategory, sendZoomIn, sendZoomOut, sendClearStartAndEndPoint, sendGetDirectionToBridge, sendPathFilter, sendNavigateToBridge, sendMapThemeToBridge, } from "./webviewBridge/BridgeService";
3
3
  export { BridgeStorage as useBridgeStorage } from "./webviewBridge/BridgeStorage";
4
4
  export { registerBridgeHandler } from "./handlers/WebBridgeHandlers";
5
- export type { IncomingMessage, OutgoingMessage, NodePoint, Category, FloorImage, StepInstruction, NavState, } from "./types/types";
5
+ export type { LocationArea, LocationName, Logo, ShapePoint, BrandId, IncomingMessage, OutgoingMessage, NodePoint, Category, SubCategory, ExternalId, Environment, DayHours, WeeklyHours, NodePointOffer, BrandInfo, MapExportContext, GeometryFloor, GeometryNodePoint, GeometryLayer, NodeMetadata, AssetPayloads, FloorImage, StepInstruction, PathSummary, StepByStepResult, NavState, filterPath, Theme, CameraPosition, ControlsPosition, MapApiResponse, MapDataExport, } from "./types/types";
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAG9D,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,cAAc,EACf,MAAM,+BAA+B,CAAC;AAGvC,OAAQ,EAAC,aAAa,IAAI,gBAAgB,EAAC,MAAO,+BAA+B,CAAC;AAGlF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGrE,YAAY,EACV,eAAe,EACf,eAAe,EACf,SAAS,EACT,QAAQ,EACR,UAAU,EACV,eAAe,EACf,QAAQ,GACT,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAG9D,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AAGvC,OAAQ,EAAC,aAAa,IAAI,gBAAgB,EAAC,MAAO,+BAA+B,CAAC;AAGlF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGrE,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,OAAO,EACP,eAAe,EACf,eAAe,EACf,SAAS,EACT,QAAQ,EACR,WAAW,EACX,UAAU,EACV,WAAW,EACX,QAAQ,EACR,WAAW,EACX,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,UAAU,EACV,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,KAAK,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,GACd,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // Components
2
2
  export { WebViewScreen } from "./webviewBridge/WebViewScreen";
3
3
  // Bridge helpers (named exports)
4
- export { sendStartPointToBridge, sendEndPointToBridge, sendActiveFloorToBridge, sendPathNextBtnClick, sendPathPreBtnClick, sendPathFinishBtnClick, sendGetDirectionToBridge, sendPathFilter } from "./webviewBridge/BridgeService";
4
+ export { sendStartPointToBridge, sendEndPointToBridge, sendActiveFloorToBridge, sendPathNextBtnClick, sendPathPreBtnClick, sendPathFinishBtnClick, sendSelectCategory, sendZoomIn, sendZoomOut, sendClearStartAndEndPoint, sendGetDirectionToBridge, sendPathFilter, sendNavigateToBridge, sendMapThemeToBridge, } from "./webviewBridge/BridgeService";
5
5
  // State/store
6
6
  export { BridgeStorage as useBridgeStorage } from "./webviewBridge/BridgeStorage";
7
7
  // Handlers
@@ -27,6 +27,37 @@ export interface ShapePoint {
27
27
  export interface BrandId {
28
28
  sit: string;
29
29
  }
30
+ export type ExternalId = string | number;
31
+ export type DayHours = {
32
+ open?: string;
33
+ close?: string;
34
+ };
35
+ export type WeeklyHours = {
36
+ sun?: DayHours;
37
+ mon?: DayHours;
38
+ tue?: DayHours;
39
+ wed?: DayHours;
40
+ thu?: DayHours;
41
+ fri?: DayHours;
42
+ sat?: DayHours;
43
+ };
44
+ export type NodePointOffer = {
45
+ offerMstId?: ExternalId;
46
+ offerName?: string;
47
+ offerRemark?: string;
48
+ offerShortDesc?: string;
49
+ validFrom?: number;
50
+ validTo?: number;
51
+ brandLogo?: string;
52
+ partyCategoryCode?: ExternalId;
53
+ brandCode?: ExternalId;
54
+ brandName?: string;
55
+ };
56
+ export type BrandInfo = {
57
+ brandNumber?: ExternalId;
58
+ brandLogo?: string;
59
+ brandImages?: string[];
60
+ };
30
61
  export interface NodePoint {
31
62
  x: number;
32
63
  y: number;
@@ -36,18 +67,25 @@ export interface NodePoint {
36
67
  close: boolean;
37
68
  colleague: any[];
38
69
  elementTag: string;
39
- LocationName: LocationName;
70
+ LocationName: LocationName | null;
40
71
  Category: string;
72
+ categoryCode?: ExternalId;
73
+ subCategoryCode?: ExternalId;
74
+ weeklyHoursId?: ExternalId;
41
75
  type: string;
42
76
  LeaseType: string;
43
- logo: Logo;
77
+ logo: Logo | null;
44
78
  color: string;
45
79
  Description: string;
80
+ weeklyHours?: WeeklyHours;
81
+ offers?: NodePointOffer[];
82
+ brandInfo?: BrandInfo;
83
+ customNotes?: string;
46
84
  shape: ShapePoint[];
47
85
  up: boolean;
48
86
  down: boolean;
49
87
  depth: number;
50
- brand_Id: BrandId;
88
+ brand_Id: string | null;
51
89
  floorBash: boolean;
52
90
  extra: Record<string, any>;
53
91
  key: string;
@@ -56,11 +94,116 @@ export interface NodePoint {
56
94
  distanceToNextPoint: number;
57
95
  stepsToNextPoint: number;
58
96
  }
59
- export interface Category {
97
+ export type Environment = "sit" | "prod" | "select";
98
+ export type MapExportContext = {
99
+ mapId: string;
100
+ mapName: string;
101
+ environment: Environment;
102
+ floor: number;
103
+ defaultFloor: number;
104
+ defaultDist: number;
105
+ };
106
+ export type GeometryFloor = {
107
+ id: string;
108
+ number: number;
109
+ url: string;
110
+ width?: number;
111
+ height?: number;
112
+ };
113
+ export type GeometryNodePoint = {
114
+ id: string;
115
+ x?: number;
116
+ y?: number;
117
+ z?: number;
118
+ shape?: Array<{
119
+ x: number;
120
+ y: number;
121
+ }>;
122
+ shapeColor?: string;
123
+ metaId?: string;
124
+ source?: "path-graph";
125
+ };
126
+ export type GeometryLayer = {
127
+ floors: GeometryFloor[];
128
+ nodePoints: GeometryNodePoint[];
129
+ nodeLines: Array<{
130
+ id: string;
131
+ pointAId: string;
132
+ pointBId: string;
133
+ } | {
134
+ a: string;
135
+ b: string;
136
+ }>;
137
+ };
138
+ export type NodeMetadata = {
139
+ id?: string;
140
+ nodePointId?: string;
141
+ textId?: string;
142
+ text?: string;
143
+ categoryCode?: ExternalId;
144
+ subCategoryCode?: ExternalId;
145
+ weeklyHoursId?: ExternalId;
146
+ pointImageIds?: ExternalId[];
147
+ logoImageIds?: ExternalId[];
148
+ type?: string;
149
+ description?: string;
150
+ color?: string;
151
+ brandInfo?: BrandInfo;
152
+ weeklyHours?: WeeklyHours;
153
+ offers?: NodePointOffer[];
154
+ customNotes?: string;
155
+ };
156
+ export type AssetPayloads = {
157
+ texts?: Array<{
158
+ id: string;
159
+ text: string;
160
+ nodePointId?: string;
161
+ x?: number;
162
+ y?: number;
163
+ rotation?: number;
164
+ fontSize?: number;
165
+ color?: string;
166
+ }> | Record<string, {
167
+ text: string;
168
+ nodePointId?: string;
169
+ x?: number;
170
+ y?: number;
171
+ rotation?: number;
172
+ fontSize?: number;
173
+ color?: string;
174
+ }>;
175
+ pointImages?: Array<{
176
+ id: string;
177
+ src: string;
178
+ nodePointId?: string;
179
+ }> | Record<string, {
180
+ src: string;
181
+ nodePointId?: string;
182
+ }>;
183
+ logoImages?: Array<{
184
+ id: string;
185
+ src: string;
186
+ nodePointId?: string;
187
+ }> | Record<string, {
188
+ src: string;
189
+ nodePointId?: string;
190
+ }>;
191
+ };
192
+ export type Category = {
193
+ code: ExternalId;
60
194
  name: string;
61
- Description: string;
62
- color: string;
63
- }
195
+ image?: string;
196
+ subCategoryCodes: ExternalId[];
197
+ nodePointsKey?: string[];
198
+ };
199
+ export type SubCategory = {
200
+ code: ExternalId;
201
+ name: string;
202
+ image?: string;
203
+ description?: string;
204
+ categoryCode: ExternalId;
205
+ nodePointsKey?: string[];
206
+ };
64
207
  export interface FloorImage {
65
208
  FloorName: string;
66
209
  FloorUrl: string;
@@ -109,6 +252,27 @@ export type Theme = {
109
252
  "theme-startpoint-shape-color"?: string[];
110
253
  "theme-shape-theme-color"?: string[];
111
254
  };
255
+ export type CameraPosition = {
256
+ x: number;
257
+ y: number;
258
+ z: number;
259
+ zoom: number;
260
+ };
261
+ export type ControlsPosition = {
262
+ x: number;
263
+ y: number;
264
+ z: number;
265
+ };
266
+ export type MapDataExport = {
267
+ context: MapExportContext;
268
+ geometry: GeometryLayer;
269
+ metadata: NodeMetadata[] | Record<string, NodeMetadata>;
270
+ assets?: AssetPayloads;
271
+ categories?: Record<ExternalId, Category>;
272
+ subCategories?: Record<ExternalId, SubCategory>;
273
+ weeklyHours?: Record<ExternalId, WeeklyHours>;
274
+ };
275
+ export type MapApiResponse = MapDataExport;
112
276
  export type IncomingMessage = {
113
277
  type: "event";
114
278
  key: "pong";
@@ -128,16 +292,6 @@ export type IncomingMessage = {
128
292
  key: "_searchablePoints";
129
293
  value: NodePoint[];
130
294
  file: string;
131
- } | {
132
- type: "event";
133
- key: "Category";
134
- value: Category[];
135
- file: string;
136
- } | {
137
- type: "event";
138
- key: "_allCategory";
139
- value: Record<string, NodePoint[]>;
140
- file: string;
141
295
  } | {
142
296
  type: "event";
143
297
  key: "_allAmenities";
@@ -153,18 +307,28 @@ export type IncomingMessage = {
153
307
  key: "FloorImg";
154
308
  value: FloorImage[];
155
309
  file: string;
310
+ } | {
311
+ type: "event";
312
+ key: "categories";
313
+ value: Record<ExternalId, Category>;
314
+ file: string;
315
+ } | {
316
+ type: "event";
317
+ key: "subCategories";
318
+ value: Record<ExternalId, SubCategory>;
319
+ file: string;
156
320
  } | {
157
321
  type: "event";
158
322
  key: "isSceneClick";
159
323
  file: string;
160
324
  } | {
161
325
  type: "event";
162
- key: "isShapClick";
326
+ key: "isShapeClick";
163
327
  value: NodePoint;
164
328
  file: string;
165
329
  } | {
166
330
  type: "event";
167
- key: "stapByStapList";
331
+ key: "stepByStepList";
168
332
  value: StepByStepResult;
169
333
  file: string;
170
334
  } | {
@@ -172,6 +336,14 @@ export type IncomingMessage = {
172
336
  key: "pathNextPreState";
173
337
  value: NavState;
174
338
  file: string;
339
+ } | {
340
+ type: "event";
341
+ key: "cameraControllerState";
342
+ value: {
343
+ cameraPosition: CameraPosition;
344
+ controlsPosition: ControlsPosition;
345
+ };
346
+ file: string;
175
347
  };
176
348
  export type OutgoingMessage = {
177
349
  type: "applyCSS";
@@ -211,7 +383,7 @@ export type OutgoingMessage = {
211
383
  file: string;
212
384
  } | {
213
385
  type: "event";
214
- key: "setSelectCatedory";
386
+ key: "setSelectCategory";
215
387
  value: string | string[] | null;
216
388
  file: string;
217
389
  } | {
@@ -245,5 +417,15 @@ export type OutgoingMessage = {
245
417
  key: "navigateTo";
246
418
  value: string;
247
419
  file: string;
420
+ } | {
421
+ type: "event";
422
+ key: "editableView";
423
+ value: MapApiResponse;
424
+ file: string;
425
+ } | {
426
+ type: "event";
427
+ key: "pathHighlightByStepIndex";
428
+ value: number;
429
+ file: string;
248
430
  };
249
431
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export const sendPathFinishBtnClick = () => {
19
19
  sendToWeb({ type: "event", key: "pathFinishBtnClick", file: "BridgeService.ts" });
20
20
  };
21
21
  export const sendSelectCategory = (categgory) => {
22
- sendToWeb({ type: "event", key: "setSelectCatedory", value: categgory, file: "BridgeService.ts" });
22
+ sendToWeb({ type: "event", key: "setSelectCategory", value: categgory, file: "BridgeService.ts" });
23
23
  };
24
24
  export const sendZoomIn = () => {
25
25
  sendToWeb({ type: "event", key: "zoomIn", file: "BridgeService.ts" });
@@ -1,4 +1,4 @@
1
- import type { Category, FloorImage, NavState, NodePoint, PathSummary, StepInstruction } from "../types/types";
1
+ import type { CameraPosition, Category, ControlsPosition, ExternalId, FloorImage, NavState, NodePoint, PathSummary, StepInstruction, SubCategory } from "../types/types";
2
2
  type BridgeStorage = {
3
3
  isBridgeLoaded: boolean;
4
4
  isMapLoaded: boolean;
@@ -7,12 +7,16 @@ type BridgeStorage = {
7
7
  elevator: "true" | "false";
8
8
  escalator: "true" | "false";
9
9
  floorImages: FloorImage[];
10
- stapByStapList: StepInstruction[];
10
+ stepByStepList: StepInstruction[];
11
11
  pathSummary: PathSummary;
12
12
  nextPreState: NavState | null;
13
13
  pointsByKey: Map<string, NodePoint>;
14
- categoryList: Category[];
15
- allCategoryNodes: Record<string, NodePoint[]>;
14
+ categories: Record<ExternalId, Category>;
15
+ subCategories: Record<ExternalId, SubCategory>;
16
+ cameraControllerState: {
17
+ cameraPosition: CameraPosition;
18
+ controlsPosition: ControlsPosition;
19
+ } | null;
16
20
  setIsBridgeLoaded: (val: boolean) => void;
17
21
  setIsMapLoaded: (val: boolean) => void;
18
22
  setSearchablePoints: (points: NodePoint[]) => void;
@@ -20,12 +24,16 @@ type BridgeStorage = {
20
24
  setElevator: (val: "true" | "false") => void;
21
25
  setEscalator: (val: "true" | "false") => void;
22
26
  setFloorImages: (imgs: FloorImage[]) => void;
23
- setStapByStapList: (steps: StepInstruction[]) => void;
27
+ setStepByStepList: (steps: StepInstruction[]) => void;
24
28
  setPathSummary: (path: PathSummary) => void;
25
29
  setNextPreState: (state: NavState | null) => void;
26
30
  setPointsByKey: (map: Map<string, NodePoint>) => void;
27
- setCategoryList: (list: Category[]) => void;
28
- setAllCategoryNodes: (data: Record<string, NodePoint[]>) => void;
31
+ setCategories: (data: Record<ExternalId, Category>) => void;
32
+ setSubCategories: (data: Record<ExternalId, SubCategory>) => void;
33
+ setCameraControllerState: (data: {
34
+ cameraPosition: CameraPosition;
35
+ controlsPosition: ControlsPosition;
36
+ } | null) => void;
29
37
  };
30
38
  export declare const BridgeStorage: import("zustand").UseBoundStore<import("zustand").StoreApi<BridgeStorage>>;
31
39
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeStorage.d.ts","sourceRoot":"","sources":["../../src/webviewBridge/BridgeStorage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAE7G,KAAK,aAAa,GAAG;IACnB,cAAc,EAAE,OAAO,CAAA;IACvB,WAAW,EAAE,OAAO,CAAA;IACpB,gBAAgB,EAAE,SAAS,EAAE,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;IAC1B,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,cAAc,EAAE,eAAe,EAAE,CAAA;IACjC,WAAW,EAAG,WAAW,CAAA;IAEzB,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAA;IAC7B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACnC,YAAY,EAAE,QAAQ,EAAE,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;IAG7C,iBAAiB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IACzC,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,mBAAmB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAA;IAClD,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,KAAK,IAAI,CAAA;IAC5C,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,KAAK,IAAI,CAAA;IAC7C,cAAc,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,IAAI,CAAA;IAC5C,iBAAiB,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,IAAI,CAAA;IACrD,cAAc,EAAG,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;IAC5C,eAAe,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAA;IACjD,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,IAAI,CAAA;IACrD,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAA;IAC3C,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,KAAK,IAAI,CAAA;CACjE,CAAA;AAED,eAAO,MAAM,aAAa,4EAgCvB,CAAA"}
1
+ {"version":3,"file":"BridgeStorage.d.ts","sourceRoot":"","sources":["../../src/webviewBridge/BridgeStorage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAExK,KAAK,aAAa,GAAG;IACnB,cAAc,EAAE,OAAO,CAAA;IACvB,WAAW,EAAE,OAAO,CAAA;IACpB,gBAAgB,EAAE,SAAS,EAAE,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;IAC1B,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,cAAc,EAAE,eAAe,EAAE,CAAA;IACjC,WAAW,EAAE,WAAW,CAAA;IAExB,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAA;IAC7B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACnC,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACxC,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IAC9C,qBAAqB,EAAE;QAAE,cAAc,EAAE,cAAc,CAAC;QAAC,gBAAgB,EAAE,gBAAgB,CAAA;KAAE,GAAG,IAAI,CAAA;IAGpG,iBAAiB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IACzC,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,mBAAmB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAA;IAClD,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,KAAK,IAAI,CAAA;IAC5C,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,KAAK,IAAI,CAAA;IAC7C,cAAc,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,IAAI,CAAA;IAC5C,iBAAiB,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,IAAI,CAAA;IACrD,cAAc,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;IAC3C,eAAe,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAA;IACjD,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,IAAI,CAAA;IACrD,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,IAAI,CAAA;IAC3D,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,IAAI,CAAA;IACjE,wBAAwB,EAAE,CAAC,IAAI,EAAE;QAAE,cAAc,EAAE,cAAc,CAAC;QAAC,gBAAgB,EAAE,gBAAgB,CAAA;KAAE,GAAG,IAAI,KAAK,IAAI,CAAA;CACxH,CAAA;AAED,eAAO,MAAM,aAAa,4EAkCvB,CAAA"}
@@ -7,7 +7,7 @@ export const BridgeStorage = create((set) => ({
7
7
  elevator: "false",
8
8
  escalator: "false",
9
9
  floorImages: [],
10
- stapByStapList: [],
10
+ stepByStepList: [],
11
11
  pathSummary: {
12
12
  totalDistance: "",
13
13
  totalSteps: 0,
@@ -15,8 +15,9 @@ export const BridgeStorage = create((set) => ({
15
15
  },
16
16
  nextPreState: null,
17
17
  pointsByKey: new Map(),
18
- categoryList: [],
19
- allCategoryNodes: {},
18
+ categories: {},
19
+ subCategories: {},
20
+ cameraControllerState: null,
20
21
  setIsBridgeLoaded: (val) => set({ isBridgeLoaded: val }),
21
22
  setIsMapLoaded: (val) => set({ isMapLoaded: val }),
22
23
  setSearchablePoints: (points) => set({ searchablePoints: points }),
@@ -24,10 +25,11 @@ export const BridgeStorage = create((set) => ({
24
25
  setElevator: (val) => set({ elevator: val }),
25
26
  setEscalator: (val) => set({ escalator: val }),
26
27
  setFloorImages: (imgs) => set({ floorImages: imgs }),
27
- setStapByStapList: (steps) => set({ stapByStapList: steps }),
28
+ setStepByStepList: (steps) => set({ stepByStepList: steps }),
28
29
  setPathSummary: (summary) => set({ pathSummary: summary }),
29
30
  setNextPreState: (state) => set({ nextPreState: state }),
30
31
  setPointsByKey: (map) => set({ pointsByKey: map }),
31
- setCategoryList: (list) => set({ categoryList: list }),
32
- setAllCategoryNodes: (data) => set({ allCategoryNodes: data }),
32
+ setCategories: (data) => set({ categories: data }),
33
+ setSubCategories: (data) => set({ subCategories: data }),
34
+ setCameraControllerState: (data) => set({ cameraControllerState: data }),
33
35
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wovvmap-webview-bridge",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "exports": {