chayns-api 3.0.0 → 3.1.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/cjs/calls/index.js +4 -1
  2. package/dist/cjs/calls/visibilityChangeListener.js +4 -4
  3. package/dist/cjs/components/ChaynsProvider.js +34 -6
  4. package/dist/cjs/components/withHydrationBoundary.js +2 -2
  5. package/dist/cjs/constants/index.js +0 -22
  6. package/dist/cjs/contexts/HistoryLayerContext.js +89 -0
  7. package/dist/cjs/contexts/index.js +38 -0
  8. package/dist/cjs/handler/history/FrameHistoryLayer.js +100 -0
  9. package/dist/cjs/handler/history/HistoryLayer.js +321 -0
  10. package/dist/cjs/handler/history/index.js +19 -0
  11. package/dist/cjs/hooks/history.js +454 -0
  12. package/dist/cjs/hooks/index.js +62 -1
  13. package/dist/cjs/host/ChaynsHost.js +113 -54
  14. package/dist/cjs/host/iframe/HostIframe.js +70 -5
  15. package/dist/cjs/host/module/ModuleHost.js +50 -44
  16. package/dist/cjs/index.js +139 -6
  17. package/dist/cjs/types/history.js +1 -0
  18. package/dist/cjs/umd.index.js +2 -2
  19. package/dist/cjs/utils/EventBus.js +33 -0
  20. package/dist/cjs/{util → utils}/appStorage.js +2 -2
  21. package/dist/cjs/utils/equality.js +19 -0
  22. package/dist/cjs/utils/history/BlockRegistry.js +110 -0
  23. package/dist/cjs/utils/history/NavigationQueue.js +388 -0
  24. package/dist/cjs/utils/history/layerTree.js +32 -0
  25. package/dist/cjs/utils/history/navigationIndex.js +42 -0
  26. package/dist/cjs/utils/history/rootLayer.js +175 -0
  27. package/dist/cjs/utils/history/segments.js +15 -0
  28. package/dist/cjs/utils/history/stateProjector.js +156 -0
  29. package/dist/cjs/utils/history/url.js +47 -0
  30. package/dist/cjs/utils/history/window.js +9 -0
  31. package/dist/cjs/wrapper/AppWrapper.js +23 -23
  32. package/dist/cjs/wrapper/FrameWrapper.js +35 -2
  33. package/dist/cjs/wrapper/ModuleFederationWrapper.js +2 -0
  34. package/dist/cjs/wrapper/StaticChaynsApi.js +1 -1
  35. package/dist/esm/calls/index.js +2 -0
  36. package/dist/esm/calls/visibilityChangeListener.js +1 -1
  37. package/dist/esm/components/ChaynsProvider.js +34 -6
  38. package/dist/esm/components/withHydrationBoundary.js +1 -1
  39. package/dist/esm/constants/index.js +1 -3
  40. package/dist/esm/contexts/HistoryLayerContext.js +76 -0
  41. package/dist/esm/contexts/index.js +3 -0
  42. package/dist/esm/handler/history/FrameHistoryLayer.js +105 -0
  43. package/dist/esm/handler/history/HistoryLayer.js +321 -0
  44. package/dist/esm/handler/history/index.js +2 -0
  45. package/dist/esm/hooks/history.js +428 -0
  46. package/dist/esm/hooks/index.js +2 -1
  47. package/dist/esm/host/ChaynsHost.js +113 -54
  48. package/dist/esm/host/iframe/HostIframe.js +70 -5
  49. package/dist/esm/host/module/ModuleHost.js +50 -44
  50. package/dist/esm/index.js +15 -6
  51. package/dist/esm/types/history.js +1 -0
  52. package/dist/esm/umd.index.js +2 -2
  53. package/dist/esm/utils/EventBus.js +31 -0
  54. package/dist/esm/{util → utils}/appStorage.js +1 -1
  55. package/dist/esm/utils/equality.js +12 -0
  56. package/dist/esm/utils/history/BlockRegistry.js +108 -0
  57. package/dist/esm/utils/history/NavigationQueue.js +385 -0
  58. package/dist/esm/utils/history/layerTree.js +24 -0
  59. package/dist/esm/utils/history/navigationIndex.js +33 -0
  60. package/dist/esm/utils/history/rootLayer.js +167 -0
  61. package/dist/esm/utils/history/segments.js +7 -0
  62. package/dist/esm/utils/history/stateProjector.js +147 -0
  63. package/dist/esm/utils/history/url.js +40 -0
  64. package/dist/esm/utils/history/window.js +3 -0
  65. package/dist/esm/wrapper/AppWrapper.js +5 -5
  66. package/dist/esm/wrapper/FrameWrapper.js +35 -2
  67. package/dist/esm/wrapper/ModuleFederationWrapper.js +2 -0
  68. package/dist/esm/wrapper/StaticChaynsApi.js +2 -1
  69. package/dist/types/calls/index.d.ts +5 -0
  70. package/dist/types/components/ChaynsProvider.d.ts +21 -0
  71. package/dist/types/constants/index.d.ts +0 -2
  72. package/dist/types/contexts/HistoryLayerContext.d.ts +33 -0
  73. package/dist/types/contexts/index.d.ts +3 -0
  74. package/dist/types/handler/history/FrameHistoryLayer.d.ts +99 -0
  75. package/dist/types/handler/history/HistoryLayer.d.ts +117 -0
  76. package/dist/types/handler/history/index.d.ts +2 -0
  77. package/dist/types/hooks/history.d.ts +89 -0
  78. package/dist/types/hooks/index.d.ts +1 -0
  79. package/dist/types/host/ChaynsHost.d.ts +12 -0
  80. package/dist/types/host/iframe/HostIframe.d.ts +4 -0
  81. package/dist/types/host/module/ModuleHost.d.ts +4 -0
  82. package/dist/types/index.d.ts +15 -6
  83. package/dist/types/types/IChaynsReact.d.ts +3 -0
  84. package/dist/types/types/history.d.ts +74 -0
  85. package/dist/types/umd.index.d.ts +2 -2
  86. package/dist/types/utils/EventBus.d.ts +10 -0
  87. package/dist/types/{util → utils}/collectCssChunks.d.ts +1 -1
  88. package/dist/types/utils/equality.d.ts +2 -0
  89. package/dist/types/utils/history/BlockRegistry.d.ts +38 -0
  90. package/dist/types/utils/history/NavigationQueue.d.ts +109 -0
  91. package/dist/types/utils/history/layerTree.d.ts +10 -0
  92. package/dist/types/utils/history/navigationIndex.d.ts +14 -0
  93. package/dist/types/utils/history/rootLayer.d.ts +42 -0
  94. package/dist/types/utils/history/segments.d.ts +2 -0
  95. package/dist/types/utils/history/stateProjector.d.ts +24 -0
  96. package/dist/types/utils/history/url.d.ts +17 -0
  97. package/dist/types/utils/history/window.d.ts +1 -0
  98. package/dist/types/wrapper/FrameWrapper.d.ts +1 -0
  99. package/dist/types/wrapper/StaticChaynsApi.d.ts +1 -0
  100. package/package.json +2 -1
  101. /package/dist/cjs/{constants → contexts}/hydrationContext.js +0 -0
  102. /package/dist/cjs/{constants → contexts}/moduleContext.js +0 -0
  103. /package/dist/cjs/{helper/apiListenerHelper.js → utils/apiListener.js} +0 -0
  104. /package/dist/cjs/{util → utils}/appCall.js +0 -0
  105. /package/dist/cjs/{util → utils}/bindChaynsApi.js +0 -0
  106. /package/dist/cjs/{util → utils}/collectCssChunks.js +0 -0
  107. /package/dist/cjs/{util → utils}/deviceHelper.js +0 -0
  108. /package/dist/cjs/{util → utils}/heightHelper.js +0 -0
  109. /package/dist/cjs/{util → utils}/initModuleFederationSharing.js +0 -0
  110. /package/dist/cjs/{util → utils}/is.js +0 -0
  111. /package/dist/cjs/{util → utils}/postIframeForm.js +0 -0
  112. /package/dist/cjs/{util → utils}/transferNestedFunctions.js +0 -0
  113. /package/dist/cjs/{util → utils}/url.js +0 -0
  114. /package/dist/esm/{constants → contexts}/hydrationContext.js +0 -0
  115. /package/dist/esm/{constants → contexts}/moduleContext.js +0 -0
  116. /package/dist/esm/{helper/apiListenerHelper.js → utils/apiListener.js} +0 -0
  117. /package/dist/esm/{util → utils}/appCall.js +0 -0
  118. /package/dist/esm/{util → utils}/bindChaynsApi.js +0 -0
  119. /package/dist/esm/{util → utils}/collectCssChunks.js +0 -0
  120. /package/dist/esm/{util → utils}/deviceHelper.js +0 -0
  121. /package/dist/esm/{util → utils}/heightHelper.js +0 -0
  122. /package/dist/esm/{util → utils}/initModuleFederationSharing.js +0 -0
  123. /package/dist/esm/{util → utils}/is.js +0 -0
  124. /package/dist/esm/{util → utils}/postIframeForm.js +0 -0
  125. /package/dist/esm/{util → utils}/transferNestedFunctions.js +0 -0
  126. /package/dist/esm/{util → utils}/url.js +0 -0
  127. /package/dist/types/{constants → contexts}/hydrationContext.d.ts +0 -0
  128. /package/dist/types/{constants → contexts}/moduleContext.d.ts +0 -0
  129. /package/dist/types/{helper/apiListenerHelper.d.ts → utils/apiListener.d.ts} +0 -0
  130. /package/dist/types/{util → utils}/appCall.d.ts +0 -0
  131. /package/dist/types/{util → utils}/appStorage.d.ts +0 -0
  132. /package/dist/types/{util → utils}/bindChaynsApi.d.ts +0 -0
  133. /package/dist/types/{util → utils}/deviceHelper.d.ts +0 -0
  134. /package/dist/types/{util → utils}/heightHelper.d.ts +0 -0
  135. /package/dist/types/{util → utils}/initModuleFederationSharing.d.ts +0 -0
  136. /package/dist/types/{util → utils}/is.d.ts +0 -0
  137. /package/dist/types/{util → utils}/postIframeForm.d.ts +0 -0
  138. /package/dist/types/{util → utils}/transferNestedFunctions.d.ts +0 -0
  139. /package/dist/types/{util → utils}/url.d.ts +0 -0
@@ -0,0 +1,428 @@
1
+ import { c as _c } from "react-compiler-runtime";
2
+ import { useCallback, useEffect, useRef, useSyncExternalStore } from 'react';
3
+ import { useChaynsHistoryLayerContext } from '../contexts/HistoryLayerContext';
4
+ import { shallowEqualObj } from '../utils/equality';
5
+ export function useChaynsHistoryLayer() {
6
+ const $ = _c(1);
7
+ const ctx = useChaynsHistoryLayerContext();
8
+ if (ctx) {
9
+ return ctx;
10
+ }
11
+ let t0;
12
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
13
+ var _chaynsHost, _chaynsHost$getOwnLay;
14
+ t0 = typeof window !== "undefined" ? (_chaynsHost = window.__chaynsHost) === null || _chaynsHost === void 0 || (_chaynsHost = _chaynsHost.history) === null || _chaynsHost === void 0 || (_chaynsHost$getOwnLay = _chaynsHost.getOwnLayer) === null || _chaynsHost$getOwnLay === void 0 ? void 0 : _chaynsHost$getOwnLay.call(_chaynsHost) : undefined;
15
+ $[0] = t0;
16
+ } else {
17
+ t0 = $[0];
18
+ }
19
+ const globalLayer = t0;
20
+ if (globalLayer) {
21
+ return globalLayer;
22
+ }
23
+ throw new Error("[chaynsHistory] useChaynsHistoryLayer must be used inside a <ChaynsHistoryLayerProvider>.");
24
+ }
25
+ export function useChaynsHistoryRoute() {
26
+ const $ = _c(10);
27
+ const layer = useChaynsHistoryLayer();
28
+ let t0;
29
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
30
+ t0 = [];
31
+ $[0] = t0;
32
+ } else {
33
+ t0 = $[0];
34
+ }
35
+ const segRef = useRef(t0);
36
+ let t1;
37
+ if ($[1] !== layer) {
38
+ t1 = () => {
39
+ const next = layer.getRoute();
40
+ const prev = segRef.current;
41
+ if (prev.length === next.length && prev.every((s, i) => s === next[i])) {
42
+ return prev;
43
+ }
44
+ return segRef.current = next;
45
+ };
46
+ $[1] = layer;
47
+ $[2] = t1;
48
+ } else {
49
+ t1 = $[2];
50
+ }
51
+ const getSnapshot = t1;
52
+ let t2;
53
+ if ($[3] !== layer) {
54
+ t2 = notify => {
55
+ const unsub1 = layer.addEventListener("change", notify);
56
+ const unsub2 = layer.addEventListener("popstate", notify);
57
+ return () => {
58
+ unsub1();
59
+ unsub2();
60
+ };
61
+ };
62
+ $[3] = layer;
63
+ $[4] = t2;
64
+ } else {
65
+ t2 = $[4];
66
+ }
67
+ const subscribe = t2;
68
+ const segments = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
69
+ let t3;
70
+ if ($[5] !== layer) {
71
+ t3 = (route, opts) => layer.setRoute(route, opts);
72
+ $[5] = layer;
73
+ $[6] = t3;
74
+ } else {
75
+ t3 = $[6];
76
+ }
77
+ const setRoute = t3;
78
+ let t4;
79
+ if ($[7] !== segments || $[8] !== setRoute) {
80
+ t4 = {
81
+ segments,
82
+ setRoute
83
+ };
84
+ $[7] = segments;
85
+ $[8] = setRoute;
86
+ $[9] = t4;
87
+ } else {
88
+ t4 = $[9];
89
+ }
90
+ return t4;
91
+ }
92
+ export function useChaynsHistoryState() {
93
+ const $ = _c(9);
94
+ const layer = useChaynsHistoryLayer();
95
+ const stateRef = useRef(undefined);
96
+ let t0;
97
+ if ($[0] !== layer) {
98
+ t0 = () => {
99
+ const next = layer.getState();
100
+ if (shallowEqualStateSnapshot(stateRef.current, next)) {
101
+ return stateRef.current;
102
+ }
103
+ return stateRef.current = next;
104
+ };
105
+ $[0] = layer;
106
+ $[1] = t0;
107
+ } else {
108
+ t0 = $[1];
109
+ }
110
+ const getSnapshot = t0;
111
+ let t1;
112
+ if ($[2] !== layer) {
113
+ t1 = notify => {
114
+ const unsub1 = layer.addEventListener("change", notify);
115
+ const unsub2 = layer.addEventListener("popstate", notify);
116
+ return () => {
117
+ unsub1();
118
+ unsub2();
119
+ };
120
+ };
121
+ $[2] = layer;
122
+ $[3] = t1;
123
+ } else {
124
+ t1 = $[3];
125
+ }
126
+ const subscribe = t1;
127
+ const state = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
128
+ let t2;
129
+ if ($[4] !== layer) {
130
+ t2 = (s, opts) => layer.setState(s, opts);
131
+ $[4] = layer;
132
+ $[5] = t2;
133
+ } else {
134
+ t2 = $[5];
135
+ }
136
+ const setState = t2;
137
+ let t3;
138
+ if ($[6] !== setState || $[7] !== state) {
139
+ t3 = [state, setState];
140
+ $[6] = setState;
141
+ $[7] = state;
142
+ $[8] = t3;
143
+ } else {
144
+ t3 = $[8];
145
+ }
146
+ return t3;
147
+ }
148
+ export function useChaynsHistoryNavigate() {
149
+ const $ = _c(2);
150
+ const layer = useChaynsHistoryLayer();
151
+ let t0;
152
+ if ($[0] !== layer) {
153
+ t0 = opts => layer.navigate(opts);
154
+ $[0] = layer;
155
+ $[1] = t0;
156
+ } else {
157
+ t0 = $[1];
158
+ }
159
+ return t0;
160
+ }
161
+ export function useChaynsHistoryParams() {
162
+ const $ = _c(10);
163
+ const layer = useChaynsHistoryLayer();
164
+ let t0;
165
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
166
+ t0 = {};
167
+ $[0] = t0;
168
+ } else {
169
+ t0 = $[0];
170
+ }
171
+ const paramsRef = useRef(t0);
172
+ let t1;
173
+ if ($[1] !== layer) {
174
+ t1 = () => {
175
+ const next = layer.getParams();
176
+ if (shallowEqualObj(paramsRef.current, next)) {
177
+ return paramsRef.current;
178
+ }
179
+ return paramsRef.current = next;
180
+ };
181
+ $[1] = layer;
182
+ $[2] = t1;
183
+ } else {
184
+ t1 = $[2];
185
+ }
186
+ const getSnapshot = t1;
187
+ let t2;
188
+ if ($[3] !== layer) {
189
+ t2 = notify => {
190
+ const unsub1 = layer.addEventListener("change", notify);
191
+ const unsub2 = layer.addEventListener("popstate", notify);
192
+ return () => {
193
+ unsub1();
194
+ unsub2();
195
+ };
196
+ };
197
+ $[3] = layer;
198
+ $[4] = t2;
199
+ } else {
200
+ t2 = $[4];
201
+ }
202
+ const subscribe = t2;
203
+ const params = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
204
+ let t3;
205
+ if ($[5] !== layer) {
206
+ t3 = (p, opts) => layer.setParams(p, opts);
207
+ $[5] = layer;
208
+ $[6] = t3;
209
+ } else {
210
+ t3 = $[6];
211
+ }
212
+ const setParams = t3;
213
+ let t4;
214
+ if ($[7] !== params || $[8] !== setParams) {
215
+ t4 = [params, setParams];
216
+ $[7] = params;
217
+ $[8] = setParams;
218
+ $[9] = t4;
219
+ } else {
220
+ t4 = $[9];
221
+ }
222
+ return t4;
223
+ }
224
+ export function useChaynsHistoryHash() {
225
+ const $ = _c(11);
226
+ const layer = useChaynsHistoryLayer();
227
+ let t0;
228
+ if ($[0] !== layer) {
229
+ t0 = notify => {
230
+ const unsub1 = layer.addEventListener("change", notify);
231
+ const unsub2 = layer.addEventListener("popstate", notify);
232
+ return () => {
233
+ unsub1();
234
+ unsub2();
235
+ };
236
+ };
237
+ $[0] = layer;
238
+ $[1] = t0;
239
+ } else {
240
+ t0 = $[1];
241
+ }
242
+ const subscribe = t0;
243
+ let t1;
244
+ if ($[2] !== layer) {
245
+ t1 = () => layer.getHash();
246
+ $[2] = layer;
247
+ $[3] = t1;
248
+ } else {
249
+ t1 = $[3];
250
+ }
251
+ const getSnapshot = t1;
252
+ let t2;
253
+ if ($[4] !== layer) {
254
+ t2 = () => layer.getHash();
255
+ $[4] = layer;
256
+ $[5] = t2;
257
+ } else {
258
+ t2 = $[5];
259
+ }
260
+ const getServerSnapshot = t2;
261
+ const hash = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
262
+ let t3;
263
+ if ($[6] !== layer) {
264
+ t3 = (h, opts) => layer.setHash(h, opts);
265
+ $[6] = layer;
266
+ $[7] = t3;
267
+ } else {
268
+ t3 = $[7];
269
+ }
270
+ const setHash = t3;
271
+ let t4;
272
+ if ($[8] !== hash || $[9] !== setHash) {
273
+ t4 = [hash, setHash];
274
+ $[8] = hash;
275
+ $[9] = setHash;
276
+ $[10] = t4;
277
+ } else {
278
+ t4 = $[10];
279
+ }
280
+ return t4;
281
+ }
282
+ export function useChaynsHistoryBlock(callback, t0) {
283
+ const $ = _c(9);
284
+ let t1;
285
+ if ($[0] !== t0) {
286
+ t1 = t0 === undefined ? {} : t0;
287
+ $[0] = t0;
288
+ $[1] = t1;
289
+ } else {
290
+ t1 = $[1];
291
+ }
292
+ const opts = t1;
293
+ const layer = useChaynsHistoryLayer();
294
+ const {
295
+ isEnabled: t2,
296
+ scope,
297
+ isBeforeUnload
298
+ } = opts;
299
+ const isEnabled = t2 === undefined ? true : t2;
300
+ let t3;
301
+ let t4;
302
+ if ($[2] !== callback || $[3] !== isBeforeUnload || $[4] !== isEnabled || $[5] !== layer || $[6] !== scope) {
303
+ t3 = () => {
304
+ if (!isEnabled) {
305
+ return;
306
+ }
307
+ return layer.addBlock(callback, {
308
+ scope,
309
+ isBeforeUnload
310
+ });
311
+ };
312
+ t4 = [layer, callback, isEnabled, scope, isBeforeUnload];
313
+ $[2] = callback;
314
+ $[3] = isBeforeUnload;
315
+ $[4] = isEnabled;
316
+ $[5] = layer;
317
+ $[6] = scope;
318
+ $[7] = t3;
319
+ $[8] = t4;
320
+ } else {
321
+ t3 = $[7];
322
+ t4 = $[8];
323
+ }
324
+ useEffect(t3, t4);
325
+ }
326
+ export function useChaynsHistoryEvent(type, handler) {
327
+ const $ = _c(5);
328
+ const layer = useChaynsHistoryLayer();
329
+ let t0;
330
+ let t1;
331
+ if ($[0] !== handler || $[1] !== layer || $[2] !== type) {
332
+ t0 = () => layer.addEventListener(type, handler);
333
+ t1 = [layer, type, handler];
334
+ $[0] = handler;
335
+ $[1] = layer;
336
+ $[2] = type;
337
+ $[3] = t0;
338
+ $[4] = t1;
339
+ } else {
340
+ t0 = $[3];
341
+ t1 = $[4];
342
+ }
343
+ useEffect(t0, t1);
344
+ }
345
+ export function useChaynsHistoryChildLayer(id) {
346
+ const $ = _c(6);
347
+ const layer = useChaynsHistoryLayer();
348
+ let t0;
349
+ if ($[0] !== id || $[1] !== layer) {
350
+ t0 = layer.getChildLayer(id);
351
+ $[0] = id;
352
+ $[1] = layer;
353
+ $[2] = t0;
354
+ } else {
355
+ t0 = $[2];
356
+ }
357
+ let child = t0;
358
+ if (!child) {
359
+ let t1;
360
+ if ($[3] !== id || $[4] !== layer) {
361
+ t1 = layer.createChildLayer(id);
362
+ $[3] = id;
363
+ $[4] = layer;
364
+ $[5] = t1;
365
+ } else {
366
+ t1 = $[5];
367
+ }
368
+ child = t1;
369
+ }
370
+ return child;
371
+ }
372
+ export function useChaynsHistoryActiveChild() {
373
+ const $ = _c(9);
374
+ const layer = useChaynsHistoryLayer();
375
+ let t0;
376
+ if ($[0] !== layer) {
377
+ t0 = notify => layer.addEventListener("change", notify);
378
+ $[0] = layer;
379
+ $[1] = t0;
380
+ } else {
381
+ t0 = $[1];
382
+ }
383
+ const subscribe = t0;
384
+ let t1;
385
+ if ($[2] !== layer) {
386
+ t1 = () => layer.getActiveChildId();
387
+ $[2] = layer;
388
+ $[3] = t1;
389
+ } else {
390
+ t1 = $[3];
391
+ }
392
+ const getSnapshot = t1;
393
+ const activeChildId = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
394
+ let t2;
395
+ if ($[4] !== layer) {
396
+ t2 = (id, init) => layer.setActiveChild(id, init);
397
+ $[4] = layer;
398
+ $[5] = t2;
399
+ } else {
400
+ t2 = $[5];
401
+ }
402
+ const setActiveChild = t2;
403
+ let t3;
404
+ if ($[6] !== activeChildId || $[7] !== setActiveChild) {
405
+ t3 = {
406
+ activeChildId,
407
+ setActiveChild
408
+ };
409
+ $[6] = activeChildId;
410
+ $[7] = setActiveChild;
411
+ $[8] = t3;
412
+ } else {
413
+ t3 = $[8];
414
+ }
415
+ return t3;
416
+ }
417
+ function shallowEqualStateSnapshot(a, b) {
418
+ if (a === b) return true;
419
+ if (!a || !b) return false;
420
+ const ak = Object.keys(a);
421
+ const bk = Object.keys(b);
422
+ if (ak.length !== bk.length) return false;
423
+ for (const k of ak) {
424
+ if (a[k] !== b[k]) return false;
425
+ }
426
+ return true;
427
+ }
428
+ export { ChaynsHistoryLayerProvider, useChaynsHistoryLayerContext } from '../contexts/HistoryLayerContext';
@@ -18,4 +18,5 @@ export { useDialogState, useDialogData } from './useDialogState';
18
18
  export { useCustomCallbackFunction } from './useCustomCallbackFunction';
19
19
  export { useCustomFunction } from './useCustomFunction';
20
20
  export { useStyleSettings } from './useStyleSettings';
21
- export { useChaynsApiId } from './useChaynsApiId';
21
+ export { useChaynsApiId } from './useChaynsApiId';
22
+ export { useChaynsHistoryLayer, useChaynsHistoryRoute, useChaynsHistoryParams, useChaynsHistoryHash, useChaynsHistoryState, useChaynsHistoryNavigate, useChaynsHistoryBlock, useChaynsHistoryEvent, useChaynsHistoryChildLayer, useChaynsHistoryActiveChild } from './history';
@@ -2,9 +2,11 @@ import { c as _c } from "react-compiler-runtime";
2
2
  import React, { useDeferredValue, useSyncExternalStore } from 'react';
3
3
  import HostIframe from './iframe/HostIframe';
4
4
  import ModuleHost from './module/ModuleHost';
5
+ import { ChaynsHistoryLayerProvider } from '../contexts/HistoryLayerContext';
6
+ import { getOrInitRootChaynsHistoryLayer } from '../utils/history/rootLayer';
5
7
  const subscribeToHydration = () => () => {};
6
8
  const ChaynsHost = t0 => {
7
- const $ = _c(38);
9
+ const $ = _c(53);
8
10
  const {
9
11
  type,
10
12
  iFrameProps,
@@ -26,24 +28,51 @@ const ChaynsHost = t0 => {
26
28
  environment,
27
29
  preventStagingReplacement,
28
30
  dialog,
29
- styleSettings
31
+ styleSettings,
32
+ historyLayer,
33
+ historyChildId,
34
+ isHistoryDisabled: t3
30
35
  } = t0;
31
36
  const iFrameRef = t1 === undefined ? undefined : t1;
32
37
  const loadingComponent = t2 === undefined ? undefined : t2;
38
+ const isHistoryDisabled = t3 === undefined ? true : t3;
33
39
  const isInitiallyVisible = type !== "client-module" && (type !== "server-module" || !!(system !== null && system !== void 0 && system.serverUrl));
34
40
  const isHydrated = useSyncExternalStore(subscribeToHydration, _temp, _temp2);
35
41
  const isVisible = useDeferredValue(isInitiallyVisible || isHydrated);
36
42
  if (!isVisible) {
37
43
  return null;
38
44
  }
45
+ let t4;
46
+ if ($[0] !== historyLayer) {
47
+ t4 = historyLayer !== null && historyLayer !== void 0 ? historyLayer : getOrInitRootChaynsHistoryLayer().rootLayer;
48
+ $[0] = historyLayer;
49
+ $[1] = t4;
50
+ } else {
51
+ t4 = $[1];
52
+ }
53
+ const resolvedLayer = t4;
54
+ let layer;
55
+ if (!isHistoryDisabled) {
56
+ let t5;
57
+ if ($[2] !== historyChildId || $[3] !== resolvedLayer) {
58
+ var _resolvedLayer$getChi;
59
+ t5 = historyChildId ? (_resolvedLayer$getChi = resolvedLayer.getChildLayer(historyChildId)) !== null && _resolvedLayer$getChi !== void 0 ? _resolvedLayer$getChi : resolvedLayer.createChildLayer(historyChildId) : resolvedLayer;
60
+ $[2] = historyChildId;
61
+ $[3] = resolvedLayer;
62
+ $[4] = t5;
63
+ } else {
64
+ t5 = $[4];
65
+ }
66
+ layer = t5;
67
+ }
39
68
  switch (type) {
40
69
  case "client-iframe":
41
70
  case "server-iframe":
42
71
  {
43
- const t3 = type === "server-iframe";
44
- let t4;
45
- if ($[0] !== currentPage || $[1] !== customData || $[2] !== customFunctions || $[3] !== device || $[4] !== dialog || $[5] !== environment || $[6] !== functions || $[7] !== iFrameProps || $[8] !== iFrameRef || $[9] !== isAdminModeActive || $[10] !== language || $[11] !== pages || $[12] !== parameters || $[13] !== preventStagingReplacement || $[14] !== site || $[15] !== src || $[16] !== styleSettings || $[17] !== t3 || $[18] !== user) {
46
- t4 = React.createElement(HostIframe, {
72
+ const t5 = type === "server-iframe";
73
+ let t6;
74
+ if ($[5] !== currentPage || $[6] !== customData || $[7] !== customFunctions || $[8] !== device || $[9] !== dialog || $[10] !== environment || $[11] !== functions || $[12] !== iFrameProps || $[13] !== iFrameRef || $[14] !== isAdminModeActive || $[15] !== isHistoryDisabled || $[16] !== language || $[17] !== layer || $[18] !== pages || $[19] !== parameters || $[20] !== preventStagingReplacement || $[21] !== site || $[22] !== src || $[23] !== styleSettings || $[24] !== t5 || $[25] !== user) {
75
+ t6 = React.createElement(HostIframe, {
47
76
  iFrameRef: iFrameRef,
48
77
  iFrameProps: iFrameProps,
49
78
  pages: pages,
@@ -55,46 +84,61 @@ const ChaynsHost = t0 => {
55
84
  functions: functions,
56
85
  customFunctions: customFunctions,
57
86
  src: src,
58
- postForm: t3,
87
+ postForm: t5,
59
88
  language: language,
60
89
  parameters: parameters,
61
90
  environment: environment,
62
91
  customData: customData,
63
92
  preventStagingReplacement: preventStagingReplacement,
64
93
  dialog: dialog,
65
- styleSettings: styleSettings
94
+ styleSettings: styleSettings,
95
+ historyLayer: layer,
96
+ isHistoryDisabled: isHistoryDisabled
66
97
  });
67
- $[0] = currentPage;
68
- $[1] = customData;
69
- $[2] = customFunctions;
70
- $[3] = device;
71
- $[4] = dialog;
72
- $[5] = environment;
73
- $[6] = functions;
74
- $[7] = iFrameProps;
75
- $[8] = iFrameRef;
76
- $[9] = isAdminModeActive;
77
- $[10] = language;
78
- $[11] = pages;
79
- $[12] = parameters;
80
- $[13] = preventStagingReplacement;
81
- $[14] = site;
82
- $[15] = src;
83
- $[16] = styleSettings;
84
- $[17] = t3;
85
- $[18] = user;
86
- $[19] = t4;
98
+ $[5] = currentPage;
99
+ $[6] = customData;
100
+ $[7] = customFunctions;
101
+ $[8] = device;
102
+ $[9] = dialog;
103
+ $[10] = environment;
104
+ $[11] = functions;
105
+ $[12] = iFrameProps;
106
+ $[13] = iFrameRef;
107
+ $[14] = isAdminModeActive;
108
+ $[15] = isHistoryDisabled;
109
+ $[16] = language;
110
+ $[17] = layer;
111
+ $[18] = pages;
112
+ $[19] = parameters;
113
+ $[20] = preventStagingReplacement;
114
+ $[21] = site;
115
+ $[22] = src;
116
+ $[23] = styleSettings;
117
+ $[24] = t5;
118
+ $[25] = user;
119
+ $[26] = t6;
120
+ } else {
121
+ t6 = $[26];
122
+ }
123
+ let t7;
124
+ if ($[27] !== resolvedLayer || $[28] !== t6) {
125
+ t7 = React.createElement(ChaynsHistoryLayerProvider, {
126
+ layer: resolvedLayer
127
+ }, t6);
128
+ $[27] = resolvedLayer;
129
+ $[28] = t6;
130
+ $[29] = t7;
87
131
  } else {
88
- t4 = $[19];
132
+ t7 = $[29];
89
133
  }
90
- return t4;
134
+ return t7;
91
135
  }
92
136
  case "client-module":
93
137
  case "server-module":
94
138
  {
95
- let t3;
96
- if ($[20] !== currentPage || $[21] !== customData || $[22] !== customFunctions || $[23] !== device || $[24] !== dialog || $[25] !== environment || $[26] !== functions || $[27] !== isAdminModeActive || $[28] !== language || $[29] !== loadingComponent || $[30] !== pages || $[31] !== parameters || $[32] !== preventStagingReplacement || $[33] !== site || $[34] !== styleSettings || $[35] !== system || $[36] !== user) {
97
- t3 = React.createElement(ModuleHost, {
139
+ let t5;
140
+ if ($[30] !== currentPage || $[31] !== customData || $[32] !== customFunctions || $[33] !== device || $[34] !== dialog || $[35] !== environment || $[36] !== functions || $[37] !== isAdminModeActive || $[38] !== isHistoryDisabled || $[39] !== language || $[40] !== layer || $[41] !== loadingComponent || $[42] !== pages || $[43] !== parameters || $[44] !== preventStagingReplacement || $[45] !== site || $[46] !== styleSettings || $[47] !== system || $[48] !== user) {
141
+ t5 = React.createElement(ModuleHost, {
98
142
  system: system,
99
143
  pages: pages,
100
144
  isAdminModeActive: isAdminModeActive,
@@ -111,30 +155,45 @@ const ChaynsHost = t0 => {
111
155
  environment: environment,
112
156
  preventStagingReplacement: preventStagingReplacement,
113
157
  dialog: dialog,
114
- styleSettings: styleSettings
158
+ styleSettings: styleSettings,
159
+ historyLayer: layer,
160
+ isHistoryDisabled: isHistoryDisabled
115
161
  });
116
- $[20] = currentPage;
117
- $[21] = customData;
118
- $[22] = customFunctions;
119
- $[23] = device;
120
- $[24] = dialog;
121
- $[25] = environment;
122
- $[26] = functions;
123
- $[27] = isAdminModeActive;
124
- $[28] = language;
125
- $[29] = loadingComponent;
126
- $[30] = pages;
127
- $[31] = parameters;
128
- $[32] = preventStagingReplacement;
129
- $[33] = site;
130
- $[34] = styleSettings;
131
- $[35] = system;
132
- $[36] = user;
133
- $[37] = t3;
162
+ $[30] = currentPage;
163
+ $[31] = customData;
164
+ $[32] = customFunctions;
165
+ $[33] = device;
166
+ $[34] = dialog;
167
+ $[35] = environment;
168
+ $[36] = functions;
169
+ $[37] = isAdminModeActive;
170
+ $[38] = isHistoryDisabled;
171
+ $[39] = language;
172
+ $[40] = layer;
173
+ $[41] = loadingComponent;
174
+ $[42] = pages;
175
+ $[43] = parameters;
176
+ $[44] = preventStagingReplacement;
177
+ $[45] = site;
178
+ $[46] = styleSettings;
179
+ $[47] = system;
180
+ $[48] = user;
181
+ $[49] = t5;
182
+ } else {
183
+ t5 = $[49];
184
+ }
185
+ let t6;
186
+ if ($[50] !== resolvedLayer || $[51] !== t5) {
187
+ t6 = React.createElement(ChaynsHistoryLayerProvider, {
188
+ layer: resolvedLayer
189
+ }, t5);
190
+ $[50] = resolvedLayer;
191
+ $[51] = t5;
192
+ $[52] = t6;
134
193
  } else {
135
- t3 = $[37];
194
+ t6 = $[52];
136
195
  }
137
- return t3;
196
+ return t6;
138
197
  }
139
198
  default:
140
199
  {