@tramvai/module-router 2.70.0 → 2.72.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.
- package/lib/components/link.browser.js +55 -0
- package/lib/components/link.es.js +49 -0
- package/lib/components/link.js +53 -0
- package/lib/hooks/usePageService.browser.js +10 -0
- package/lib/hooks/usePageService.es.js +10 -0
- package/lib/hooks/usePageService.js +14 -0
- package/lib/hooks/usePrefetch.browser.browser.js +42 -0
- package/lib/index.browser.js +7 -906
- package/lib/index.es.js +6 -764
- package/lib/index.js +34 -788
- package/lib/modules/child-app.browser.js +31 -0
- package/lib/modules/child-app.es.js +31 -0
- package/lib/modules/child-app.js +33 -0
- package/lib/modules/clientCommon.browser.js +70 -0
- package/lib/modules/common.browser.js +137 -0
- package/lib/modules/common.es.js +137 -0
- package/lib/modules/common.js +145 -0
- package/lib/modules/fileSystemPages.browser.js +27 -0
- package/lib/modules/fileSystemPages.es.js +27 -0
- package/lib/modules/fileSystemPages.js +31 -0
- package/lib/modules/guards/common/index.browser.js +32 -0
- package/lib/modules/guards/common/index.es.js +32 -0
- package/lib/modules/guards/common/index.js +36 -0
- package/lib/modules/guards/common/internalError.browser.js +14 -0
- package/lib/modules/guards/common/internalError.es.js +14 -0
- package/lib/modules/guards/common/internalError.js +18 -0
- package/lib/modules/guards/common/loadBundle.browser.js +67 -0
- package/lib/modules/guards/common/loadBundle.es.js +67 -0
- package/lib/modules/guards/common/loadBundle.js +75 -0
- package/lib/modules/guards/server/httpMethod.es.js +20 -0
- package/lib/modules/guards/server/httpMethod.js +24 -0
- package/lib/modules/guards/server/index.es.js +18 -0
- package/lib/modules/guards/server/index.js +22 -0
- package/lib/modules/hooks/common/fillRouterStore.browser.js +9 -0
- package/lib/modules/hooks/common/fillRouterStore.es.js +9 -0
- package/lib/modules/hooks/common/fillRouterStore.js +13 -0
- package/lib/modules/hooks/common/index.browser.js +16 -0
- package/lib/modules/hooks/common/index.es.js +16 -0
- package/lib/modules/hooks/common/index.js +20 -0
- package/lib/modules/hooks/runActions.browser.js +34 -0
- package/lib/modules/hooks/runActions.es.js +34 -0
- package/lib/modules/hooks/runActions.js +42 -0
- package/lib/modules/hooks/server/httpStatus.es.js +7 -0
- package/lib/modules/hooks/server/httpStatus.js +11 -0
- package/lib/modules/hooks/server/index.es.js +17 -0
- package/lib/modules/hooks/server/index.js +21 -0
- package/lib/modules/hooks/spa/index.browser.js +70 -0
- package/lib/modules/hooks/spa/runCommands.browser.js +12 -0
- package/lib/modules/no-spa.browser.js +21 -0
- package/lib/modules/server.es.js +59 -0
- package/lib/modules/server.js +63 -0
- package/lib/modules/spa.browser.js +23 -0
- package/lib/modules/tokens/browser/index.browser.js +5 -0
- package/lib/modules/tokens/browser/prefetch.browser.js +112 -0
- package/lib/modules/tokens/common/index.browser.js +40 -0
- package/lib/modules/tokens/common/index.es.js +40 -0
- package/lib/modules/tokens/common/index.js +44 -0
- package/lib/modules/tokens/common/render.browser.js +14 -0
- package/lib/modules/tokens/common/render.es.js +14 -0
- package/lib/modules/tokens/common/render.js +18 -0
- package/lib/modules/tokens/common/routeNormalize.browser.js +10 -0
- package/lib/modules/tokens/common/routeNormalize.es.js +10 -0
- package/lib/modules/tokens/common/routeNormalize.js +18 -0
- package/lib/modules/tokens/common/routeSetDefaults.browser.js +13 -0
- package/lib/modules/tokens/common/routeSetDefaults.es.js +13 -0
- package/lib/modules/tokens/common/routeSetDefaults.js +17 -0
- package/lib/modules/tokens/common/routeTransform.browser.js +12 -0
- package/lib/modules/tokens/common/routeTransform.es.js +12 -0
- package/lib/modules/tokens/common/routeTransform.js +22 -0
- package/lib/modules/tokens/server/bundleInfo.es.js +35 -0
- package/lib/modules/tokens/server/bundleInfo.js +44 -0
- package/lib/modules/tokens/server/index.es.js +25 -0
- package/lib/modules/tokens/server/index.js +29 -0
- package/lib/modules/tokens/server/prefetch.es.js +15 -0
- package/lib/modules/tokens/server/prefetch.js +19 -0
- package/lib/modules/tokens/server/routerOptions.es.js +37 -0
- package/lib/modules/tokens/server/routerOptions.js +41 -0
- package/lib/modules/tokens.browser.js +22 -0
- package/lib/modules/tokens.es.js +22 -0
- package/lib/modules/tokens.js +35 -0
- package/lib/modules/utils/forRoot.browser.js +22 -0
- package/lib/modules/utils/forRoot.es.js +22 -0
- package/lib/modules/utils/forRoot.js +26 -0
- package/lib/services/page.browser.js +63 -0
- package/lib/services/page.es.js +63 -0
- package/lib/services/page.js +67 -0
- package/lib/stores/RouterStore.browser.js +29 -0
- package/lib/stores/RouterStore.es.js +29 -0
- package/lib/stores/RouterStore.js +35 -0
- package/lib/utils/requestIdleCallback.browser.js +10 -0
- package/package.json +22 -23
package/lib/index.js
CHANGED
|
@@ -2,809 +2,55 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
var
|
|
5
|
+
var server = require('./modules/server.js');
|
|
6
|
+
var childApp = require('./modules/child-app.js');
|
|
7
7
|
var router = require('@tinkoff/router');
|
|
8
|
-
var
|
|
8
|
+
var link = require('./components/link.js');
|
|
9
9
|
var tokensRouter = require('@tramvai/tokens-router');
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var isArray = require('@tinkoff/utils/is/array');
|
|
14
|
-
var react = require('@tramvai/react');
|
|
15
|
-
var tokensRender = require('@tramvai/tokens-render');
|
|
16
|
-
var identity = require('@tinkoff/utils/function/identity');
|
|
17
|
-
var compose = require('@tinkoff/utils/function/compose');
|
|
18
|
-
var replace = require('@tinkoff/utils/string/replace');
|
|
19
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
20
|
-
var experiments = require('@tramvai/experiments');
|
|
21
|
-
var uniq = require('@tinkoff/utils/array/uniq');
|
|
22
|
-
var errors = require('@tinkoff/errors');
|
|
23
|
-
var tokensServer = require('@tramvai/tokens-server');
|
|
24
|
-
var prop = require('@tinkoff/utils/object/prop');
|
|
25
|
-
var papi = require('@tramvai/papi');
|
|
26
|
-
var tokensChildApp = require('@tramvai/tokens-child-app');
|
|
27
|
-
var react$1 = require('react');
|
|
10
|
+
var forRoot = require('./modules/utils/forRoot.js');
|
|
11
|
+
var RouterStore = require('./stores/RouterStore.js');
|
|
12
|
+
var usePageService = require('./hooks/usePageService.js');
|
|
28
13
|
|
|
29
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
30
14
|
|
|
31
|
-
var flatten__default = /*#__PURE__*/_interopDefaultLegacy(flatten);
|
|
32
|
-
var isArray__default = /*#__PURE__*/_interopDefaultLegacy(isArray);
|
|
33
|
-
var identity__default = /*#__PURE__*/_interopDefaultLegacy(identity);
|
|
34
|
-
var compose__default = /*#__PURE__*/_interopDefaultLegacy(compose);
|
|
35
|
-
var replace__default = /*#__PURE__*/_interopDefaultLegacy(replace);
|
|
36
|
-
var uniq__default = /*#__PURE__*/_interopDefaultLegacy(uniq);
|
|
37
|
-
var prop__default = /*#__PURE__*/_interopDefaultLegacy(prop);
|
|
38
15
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
multi: true,
|
|
16
|
+
Object.defineProperty(exports, 'NoSpaRouterModule', {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return server.NoSpaRouterModule; }
|
|
43
19
|
});
|
|
44
|
-
|
|
45
|
-
|
|
20
|
+
exports.SpaRouterModule = server.SpaRouterModule;
|
|
21
|
+
Object.defineProperty(exports, 'RouterChildAppModule', {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () { return childApp.RouterChildAppModule; }
|
|
46
24
|
});
|
|
47
|
-
const beforeNavigateHooksToken = dippy.createToken('router beforeNavigateHooks', {
|
|
48
|
-
multi: true,
|
|
49
|
-
});
|
|
50
|
-
const afterNavigateHooksToken = dippy.createToken('router afterNavigateHooks', {
|
|
51
|
-
multi: true,
|
|
52
|
-
});
|
|
53
|
-
const beforeUpdateCurrentHooksToken = dippy.createToken('router beforeUpdateCurrentHooks', { multi: true });
|
|
54
|
-
const afterUpdateCurrentHooksToken = dippy.createToken('router afterUpdateCurrentHooks', { multi: true });
|
|
55
|
-
const routeTransformToken = dippy.createToken('router finalRouteTransform');
|
|
56
|
-
const routerBundleInfoAdditionalToken = dippy.createToken('router bundleInfoAdditional');
|
|
57
|
-
|
|
58
|
-
const setCurrentNavigation = state.createEvent('SET_CURRENT_ROUTE');
|
|
59
|
-
const setUrlOnRehydrate = state.createEvent('SET_URL_ON_REHYDRATE');
|
|
60
|
-
const initialState = {
|
|
61
|
-
currentRoute: null,
|
|
62
|
-
previousRoute: null,
|
|
63
|
-
currentUrl: null,
|
|
64
|
-
previousUrl: null,
|
|
65
|
-
};
|
|
66
|
-
const RouterStore = state.createReducer('router', initialState)
|
|
67
|
-
.on(setCurrentNavigation, (state, { to, from, url, fromUrl, replace }) => {
|
|
68
|
-
// TODO: убедиться что все данные нам нужны из роутинга,
|
|
69
|
-
// возможно всякие meta, content не нужны при дегидрации
|
|
70
|
-
return {
|
|
71
|
-
currentRoute: to,
|
|
72
|
-
previousRoute: replace ? state.previousRoute : from,
|
|
73
|
-
currentUrl: url,
|
|
74
|
-
previousUrl: replace ? state.previousUrl : fromUrl,
|
|
75
|
-
};
|
|
76
|
-
})
|
|
77
|
-
.on(setUrlOnRehydrate, (state, url) => {
|
|
78
|
-
return {
|
|
79
|
-
...state,
|
|
80
|
-
currentUrl: url,
|
|
81
|
-
};
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
const loadBundle = ({ bundleManager, logger, actionRegistry, responseManager, dispatcher, dispatcherContext, pageService, }) => {
|
|
85
|
-
const log = logger('route:load-bundles');
|
|
86
|
-
return async ({ to }) => {
|
|
87
|
-
var _a;
|
|
88
|
-
log.debug({
|
|
89
|
-
event: 'load-bundle',
|
|
90
|
-
route: to,
|
|
91
|
-
});
|
|
92
|
-
const { bundle, pageComponent, nestedLayoutComponent } = to.config;
|
|
93
|
-
if (!bundleManager.has(bundle, pageComponent)) {
|
|
94
|
-
log.info({
|
|
95
|
-
event: 'load-bundle-not-found',
|
|
96
|
-
bundle,
|
|
97
|
-
pageComponent,
|
|
98
|
-
});
|
|
99
|
-
// если бандл не найден, то всё ок и мы должны вернуть 404 на сервере,
|
|
100
|
-
// а на клиенте просто загрузить новую страницу
|
|
101
|
-
responseManager.setStatus(404);
|
|
102
|
-
return false;
|
|
103
|
-
}
|
|
104
|
-
// Пытаемся загрузить и в случае инициализации на клиенте, т.к.
|
|
105
|
-
// несмотря на наличие бандла в разметке, все равно мы должны дождаться
|
|
106
|
-
// его загрузки перед рендером
|
|
107
|
-
try {
|
|
108
|
-
const promises = [];
|
|
109
|
-
// for file-system pages bundle is virtual, so it will be loaded in parallel with nested layout
|
|
110
|
-
// for classic bundles, page component will be loaded after bundle loading
|
|
111
|
-
promises.push(bundleManager.get(bundle, pageComponent));
|
|
112
|
-
if (nestedLayoutComponent) {
|
|
113
|
-
promises.push(react.resolveLazyComponent(pageService.resolveComponentFromConfig('nestedLayout')));
|
|
114
|
-
}
|
|
115
|
-
const [resolvedBundle, resolvedLayout] = await Promise.all(promises);
|
|
116
|
-
const { components, reducers } = resolvedBundle;
|
|
117
|
-
const component = components[pageComponent];
|
|
118
|
-
// pageComponent should have required fields even if it is lazy,
|
|
119
|
-
// thanks to `git log 9466cb32bfb71ba49144ef839d3d5bce246e213c -L90,103:packages/modules/common/src/bundleManager/bundleManager.ts`
|
|
120
|
-
(_a = component === null || component === void 0 ? void 0 : component.reducers) === null || _a === void 0 ? void 0 : _a.forEach((reducer) => dispatcherContext.getStore(reducer));
|
|
121
|
-
reducers === null || reducers === void 0 ? void 0 : reducers.forEach((reducer) => dispatcherContext.getStore(reducer));
|
|
122
|
-
// @todo: reuse logic from bundleManager?
|
|
123
|
-
// register nested layout actions and reducers for current page
|
|
124
|
-
if (resolvedLayout) {
|
|
125
|
-
if ('actions' in resolvedLayout && isArray__default["default"](resolvedLayout.actions)) {
|
|
126
|
-
actionRegistry.add(pageComponent, resolvedLayout.actions);
|
|
127
|
-
}
|
|
128
|
-
if ('reducers' in resolvedLayout && isArray__default["default"](resolvedLayout.reducers)) {
|
|
129
|
-
resolvedLayout.reducers.forEach((reducer) => {
|
|
130
|
-
dispatcher.registerStore(reducer);
|
|
131
|
-
dispatcherContext.getStore(reducer);
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
catch (error) {
|
|
137
|
-
log.error({
|
|
138
|
-
event: 'load-bundle-failed',
|
|
139
|
-
error,
|
|
140
|
-
});
|
|
141
|
-
// блокируем переход если не удалось загрузить бандл
|
|
142
|
-
return false;
|
|
143
|
-
}
|
|
144
|
-
};
|
|
145
|
-
};
|
|
146
|
-
|
|
147
|
-
const internalError = ({ responseManager, logger, }) => {
|
|
148
|
-
const log = logger('route:guard-check-error');
|
|
149
|
-
return async () => {
|
|
150
|
-
if (responseManager.getStatus() >= 500) {
|
|
151
|
-
log.error({
|
|
152
|
-
event: 'status-is-error',
|
|
153
|
-
status: responseManager.getStatus(),
|
|
154
|
-
});
|
|
155
|
-
return false;
|
|
156
|
-
}
|
|
157
|
-
};
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
const commonGuards = [
|
|
161
|
-
{
|
|
162
|
-
provide: tokensRouter.ROUTER_GUARD_TOKEN,
|
|
163
|
-
multi: true,
|
|
164
|
-
useFactory: loadBundle,
|
|
165
|
-
deps: {
|
|
166
|
-
logger: tokensCommon.LOGGER_TOKEN,
|
|
167
|
-
bundleManager: tokensCommon.BUNDLE_MANAGER_TOKEN,
|
|
168
|
-
actionRegistry: tokensCommon.ACTION_REGISTRY_TOKEN,
|
|
169
|
-
responseManager: tokensCommon.RESPONSE_MANAGER_TOKEN,
|
|
170
|
-
dispatcher: tokensCommon.DISPATCHER_TOKEN,
|
|
171
|
-
dispatcherContext: tokensCommon.DISPATCHER_CONTEXT_TOKEN,
|
|
172
|
-
pageService: tokensRouter.PAGE_SERVICE_TOKEN,
|
|
173
|
-
},
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
provide: tokensRouter.ROUTER_GUARD_TOKEN,
|
|
177
|
-
multi: true,
|
|
178
|
-
useFactory: internalError,
|
|
179
|
-
deps: {
|
|
180
|
-
logger: tokensCommon.LOGGER_TOKEN,
|
|
181
|
-
responseManager: tokensCommon.RESPONSE_MANAGER_TOKEN,
|
|
182
|
-
},
|
|
183
|
-
},
|
|
184
|
-
];
|
|
185
|
-
|
|
186
|
-
const fillRouterStore = ({ context, }) => {
|
|
187
|
-
return (navigation) => {
|
|
188
|
-
context.dispatch(setCurrentNavigation(navigation));
|
|
189
|
-
};
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
const commonHooks = [
|
|
193
|
-
{
|
|
194
|
-
provide: onChangeHooksToken,
|
|
195
|
-
multi: true,
|
|
196
|
-
useFactory: fillRouterStore,
|
|
197
|
-
deps: {
|
|
198
|
-
context: tokensCommon.CONTEXT_TOKEN,
|
|
199
|
-
},
|
|
200
|
-
},
|
|
201
|
-
];
|
|
202
|
-
|
|
203
|
-
const routeTransform = ({ transformers, }) => {
|
|
204
|
-
if (!transformers || transformers.length === 0) {
|
|
205
|
-
return identity__default["default"];
|
|
206
|
-
}
|
|
207
|
-
return compose__default["default"](...flatten__default["default"](transformers));
|
|
208
|
-
};
|
|
209
|
-
|
|
210
|
-
const routeSetDefaults = (route) => {
|
|
211
|
-
const config = {
|
|
212
|
-
bundle: 'mainDefault',
|
|
213
|
-
pageComponent: 'pageDefault',
|
|
214
|
-
...route.config,
|
|
215
|
-
};
|
|
216
|
-
return {
|
|
217
|
-
...route,
|
|
218
|
-
config,
|
|
219
|
-
};
|
|
220
|
-
};
|
|
221
|
-
|
|
222
|
-
const routeNormalize = (route) => {
|
|
223
|
-
return {
|
|
224
|
-
...route,
|
|
225
|
-
path: replace__default["default"](/\/?$/, '/', route.path),
|
|
226
|
-
};
|
|
227
|
-
};
|
|
228
|
-
|
|
229
|
-
const provideRouter = ({ router: router$1 }) => {
|
|
230
|
-
const serverState = {
|
|
231
|
-
currentRoute: router$1.getCurrentRoute(),
|
|
232
|
-
currentUrl: router$1.getCurrentUrl(),
|
|
233
|
-
};
|
|
234
|
-
return (render) => {
|
|
235
|
-
return (jsxRuntime.jsx(router.Provider, { router: router$1, serverState: serverState, children: render }));
|
|
236
|
-
};
|
|
237
|
-
};
|
|
238
|
-
|
|
239
|
-
const commonTokens = [
|
|
240
|
-
{
|
|
241
|
-
provide: routeTransformToken,
|
|
242
|
-
useFactory: routeTransform,
|
|
243
|
-
deps: {
|
|
244
|
-
transformers: {
|
|
245
|
-
token: tokensRouter.ROUTE_TRANSFORM_TOKEN,
|
|
246
|
-
optional: true,
|
|
247
|
-
},
|
|
248
|
-
},
|
|
249
|
-
},
|
|
250
|
-
{
|
|
251
|
-
provide: tokensRouter.ROUTE_TRANSFORM_TOKEN,
|
|
252
|
-
multi: true,
|
|
253
|
-
useValue: routeSetDefaults,
|
|
254
|
-
},
|
|
255
|
-
{
|
|
256
|
-
provide: tokensRouter.ROUTE_TRANSFORM_TOKEN,
|
|
257
|
-
multi: true,
|
|
258
|
-
useValue: routeNormalize,
|
|
259
|
-
},
|
|
260
|
-
{
|
|
261
|
-
provide: tokensRender.EXTEND_RENDER,
|
|
262
|
-
multi: true,
|
|
263
|
-
useFactory: provideRouter,
|
|
264
|
-
deps: {
|
|
265
|
-
router: tokensRouter.ROUTER_TOKEN,
|
|
266
|
-
},
|
|
267
|
-
},
|
|
268
|
-
];
|
|
269
|
-
|
|
270
|
-
class PageService {
|
|
271
|
-
constructor({ router, componentRegistry }) {
|
|
272
|
-
this.router = router;
|
|
273
|
-
this.componentRegistry = componentRegistry;
|
|
274
|
-
}
|
|
275
|
-
getCurrentRoute() {
|
|
276
|
-
return this.router.getCurrentRoute();
|
|
277
|
-
}
|
|
278
|
-
getCurrentUrl() {
|
|
279
|
-
return this.router.getCurrentUrl();
|
|
280
|
-
}
|
|
281
|
-
getConfig() {
|
|
282
|
-
var _a, _b;
|
|
283
|
-
return (_b = (_a = this.getCurrentRoute()) === null || _a === void 0 ? void 0 : _a.config) !== null && _b !== void 0 ? _b : {};
|
|
284
|
-
}
|
|
285
|
-
getContent() {
|
|
286
|
-
var _a;
|
|
287
|
-
return (_a = this.getConfig().content) !== null && _a !== void 0 ? _a : {};
|
|
288
|
-
}
|
|
289
|
-
getMeta() {
|
|
290
|
-
var _a;
|
|
291
|
-
return (_a = this.getConfig().meta) !== null && _a !== void 0 ? _a : {};
|
|
292
|
-
}
|
|
293
|
-
navigate(options) {
|
|
294
|
-
return this.router.navigate(options);
|
|
295
|
-
}
|
|
296
|
-
updateCurrentRoute(options) {
|
|
297
|
-
return this.router.updateCurrentRoute(options);
|
|
298
|
-
}
|
|
299
|
-
back(options) {
|
|
300
|
-
return this.router.back(options);
|
|
301
|
-
}
|
|
302
|
-
forward() {
|
|
303
|
-
return this.router.forward();
|
|
304
|
-
}
|
|
305
|
-
go(to, options) {
|
|
306
|
-
return this.router.go(to, options);
|
|
307
|
-
}
|
|
308
|
-
addComponent(name, component) {
|
|
309
|
-
const group = this.getComponentsGroupName();
|
|
310
|
-
return this.componentRegistry.add(name, component, group);
|
|
311
|
-
}
|
|
312
|
-
getComponent(name) {
|
|
313
|
-
const group = this.getComponentsGroupName();
|
|
314
|
-
return this.componentRegistry.get(name, group);
|
|
315
|
-
}
|
|
316
|
-
resolveComponentFromConfig(property) {
|
|
317
|
-
var _a;
|
|
318
|
-
const configName = `${property}Component`;
|
|
319
|
-
const defaultComponent = `${property}Default`;
|
|
320
|
-
const componentName = (_a = this.getConfig()[configName]) !== null && _a !== void 0 ? _a : defaultComponent;
|
|
321
|
-
return this.getComponent(componentName) || this.getComponent(defaultComponent);
|
|
322
|
-
}
|
|
323
|
-
getComponentsGroupName() {
|
|
324
|
-
const { bundle, pageComponent } = this.getConfig();
|
|
325
|
-
const group = experiments.isFileSystemPageComponent(pageComponent) ? pageComponent : bundle;
|
|
326
|
-
return group;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
const providers$1 = [
|
|
331
|
-
experiments.fileSystemPagesEnabled() &&
|
|
332
|
-
core.provide({
|
|
333
|
-
provide: tokensRouter.ROUTES_TOKEN,
|
|
334
|
-
multi: true,
|
|
335
|
-
useFactory: ({ logger }) => {
|
|
336
|
-
const log = logger('file-system-pages:route');
|
|
337
|
-
const pagesNames = Object.keys(experiments.getStaticFileSystemPages());
|
|
338
|
-
const routes = pagesNames.map(experiments.fileSystemPageToRoute);
|
|
339
|
-
log.debug({
|
|
340
|
-
event: 'create static routes from file-system pages',
|
|
341
|
-
routes,
|
|
342
|
-
});
|
|
343
|
-
return routes;
|
|
344
|
-
},
|
|
345
|
-
deps: {
|
|
346
|
-
logger: tokensCommon.LOGGER_TOKEN,
|
|
347
|
-
},
|
|
348
|
-
}),
|
|
349
|
-
].filter(Boolean);
|
|
350
|
-
|
|
351
|
-
const providers = [
|
|
352
|
-
...commonGuards,
|
|
353
|
-
...commonHooks,
|
|
354
|
-
...commonTokens,
|
|
355
|
-
...providers$1,
|
|
356
|
-
{
|
|
357
|
-
provide: tokensRouter.ROUTER_TOKEN,
|
|
358
|
-
useFactory: ({ RouterClass, routes, routeTransform, routeResolve, additionalParameters, }) => {
|
|
359
|
-
const router = new RouterClass({
|
|
360
|
-
...additionalParameters,
|
|
361
|
-
trailingSlash: true,
|
|
362
|
-
mergeSlashes: true,
|
|
363
|
-
routes: flatten__default["default"](routes !== null && routes !== void 0 ? routes : []).map(routeTransform),
|
|
364
|
-
});
|
|
365
|
-
if (routeResolve) {
|
|
366
|
-
router.registerHook('beforeResolve', async (navigation) => {
|
|
367
|
-
if (!router.resolve(navigation.url.href)) {
|
|
368
|
-
const route = await routeResolve(navigation);
|
|
369
|
-
if (route) {
|
|
370
|
-
router.addRoute(routeTransform(route));
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
});
|
|
374
|
-
}
|
|
375
|
-
return router;
|
|
376
|
-
},
|
|
377
|
-
deps: {
|
|
378
|
-
RouterClass: routerClassToken,
|
|
379
|
-
additionalParameters: {
|
|
380
|
-
token: additionalRouterParameters,
|
|
381
|
-
optional: true,
|
|
382
|
-
},
|
|
383
|
-
routes: {
|
|
384
|
-
token: tokensRouter.ROUTES_TOKEN,
|
|
385
|
-
optional: true,
|
|
386
|
-
},
|
|
387
|
-
routeTransform: routeTransformToken,
|
|
388
|
-
routeResolve: {
|
|
389
|
-
token: tokensRouter.ROUTE_RESOLVE_TOKEN,
|
|
390
|
-
optional: true,
|
|
391
|
-
},
|
|
392
|
-
},
|
|
393
|
-
},
|
|
394
|
-
{
|
|
395
|
-
provide: core.commandLineListTokens.customerStart,
|
|
396
|
-
multi: true,
|
|
397
|
-
useFactory: ({ router, guards, onChange, beforeResolve, beforeNavigate, afterNavigate, beforeUpdateCurrent, afterUpdateCurrent, }) => {
|
|
398
|
-
return function routerInit() {
|
|
399
|
-
flatten__default["default"](guards !== null && guards !== void 0 ? guards : []).forEach((guard) => router.registerGuard(guard));
|
|
400
|
-
flatten__default["default"](onChange !== null && onChange !== void 0 ? onChange : []).forEach((hook) => router.registerSyncHook('change', hook));
|
|
401
|
-
flatten__default["default"](beforeResolve !== null && beforeResolve !== void 0 ? beforeResolve : []).forEach((hook) => router.registerHook('beforeResolve', hook));
|
|
402
|
-
flatten__default["default"](beforeNavigate !== null && beforeNavigate !== void 0 ? beforeNavigate : []).forEach((hook) => router.registerHook('beforeNavigate', hook));
|
|
403
|
-
flatten__default["default"](afterNavigate !== null && afterNavigate !== void 0 ? afterNavigate : []).forEach((hook) => router.registerHook('afterNavigate', hook));
|
|
404
|
-
flatten__default["default"](beforeUpdateCurrent !== null && beforeUpdateCurrent !== void 0 ? beforeUpdateCurrent : []).forEach((hook) => router.registerHook('beforeUpdateCurrent', hook));
|
|
405
|
-
flatten__default["default"](afterUpdateCurrent !== null && afterUpdateCurrent !== void 0 ? afterUpdateCurrent : []).forEach((hook) => router.registerHook('afterUpdateCurrent', hook));
|
|
406
|
-
};
|
|
407
|
-
},
|
|
408
|
-
deps: {
|
|
409
|
-
router: tokensRouter.ROUTER_TOKEN,
|
|
410
|
-
guards: {
|
|
411
|
-
token: tokensRouter.ROUTER_GUARD_TOKEN,
|
|
412
|
-
optional: true,
|
|
413
|
-
},
|
|
414
|
-
onChange: {
|
|
415
|
-
token: onChangeHooksToken,
|
|
416
|
-
optional: true,
|
|
417
|
-
},
|
|
418
|
-
beforeResolve: {
|
|
419
|
-
token: beforeResolveHooksToken,
|
|
420
|
-
optional: true,
|
|
421
|
-
},
|
|
422
|
-
beforeNavigate: {
|
|
423
|
-
token: beforeNavigateHooksToken,
|
|
424
|
-
optional: true,
|
|
425
|
-
},
|
|
426
|
-
afterNavigate: {
|
|
427
|
-
token: afterNavigateHooksToken,
|
|
428
|
-
optional: true,
|
|
429
|
-
},
|
|
430
|
-
beforeUpdateCurrent: {
|
|
431
|
-
token: beforeUpdateCurrentHooksToken,
|
|
432
|
-
optional: true,
|
|
433
|
-
},
|
|
434
|
-
afterUpdateCurrent: {
|
|
435
|
-
token: afterUpdateCurrentHooksToken,
|
|
436
|
-
optional: true,
|
|
437
|
-
},
|
|
438
|
-
},
|
|
439
|
-
},
|
|
440
|
-
{
|
|
441
|
-
provide: core.commandLineListTokens.init,
|
|
442
|
-
multi: true,
|
|
443
|
-
useFactory: ({ logger }) => {
|
|
444
|
-
return function routerSetLogger() {
|
|
445
|
-
router.setLogger(logger('route:router'));
|
|
446
|
-
};
|
|
447
|
-
},
|
|
448
|
-
deps: {
|
|
449
|
-
logger: tokensCommon.LOGGER_TOKEN,
|
|
450
|
-
},
|
|
451
|
-
},
|
|
452
|
-
{
|
|
453
|
-
provide: tokensRouter.ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN,
|
|
454
|
-
// TODO: пока делаем after т.к. на это рассчитывает большинство приложений и у нас пока нет механизма контроля выполнения экшенов, чтобы
|
|
455
|
-
// избежать случаев зависания перехода из-за долгих экшенов
|
|
456
|
-
// рассмотреть возможность замены после доработок экшенов
|
|
457
|
-
useValue: 'after',
|
|
458
|
-
},
|
|
459
|
-
core.provide({
|
|
460
|
-
provide: tokensRouter.PAGE_SERVICE_TOKEN,
|
|
461
|
-
useClass: PageService,
|
|
462
|
-
deps: {
|
|
463
|
-
router: tokensRouter.ROUTER_TOKEN,
|
|
464
|
-
componentRegistry: tokensCommon.COMPONENT_REGISTRY_TOKEN,
|
|
465
|
-
},
|
|
466
|
-
}),
|
|
467
|
-
{
|
|
468
|
-
provide: tokensCommon.COMBINE_REDUCERS,
|
|
469
|
-
multi: true,
|
|
470
|
-
useValue: RouterStore,
|
|
471
|
-
},
|
|
472
|
-
];
|
|
473
|
-
|
|
474
|
-
const httpMethod = ({ requestManager, responseManager, logger, }) => {
|
|
475
|
-
const log = logger('route:httpMethod');
|
|
476
|
-
return async ({ to }) => {
|
|
477
|
-
const { httpMethods } = to.config;
|
|
478
|
-
if (httpMethods) {
|
|
479
|
-
const currentMethod = requestManager.getMethod().toLowerCase();
|
|
480
|
-
if (!httpMethods.split(',').includes(currentMethod)) {
|
|
481
|
-
log.info({
|
|
482
|
-
event: 'check-failed',
|
|
483
|
-
currentMethod,
|
|
484
|
-
route: to,
|
|
485
|
-
});
|
|
486
|
-
responseManager.setStatus(405);
|
|
487
|
-
return false;
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
|
-
};
|
|
491
|
-
};
|
|
492
|
-
|
|
493
|
-
const serverGuards = [
|
|
494
|
-
{
|
|
495
|
-
provide: tokensRouter.ROUTER_GUARD_TOKEN,
|
|
496
|
-
multi: true,
|
|
497
|
-
useFactory: httpMethod,
|
|
498
|
-
deps: {
|
|
499
|
-
requestManager: tokensCommon.REQUEST_MANAGER_TOKEN,
|
|
500
|
-
responseManager: tokensCommon.RESPONSE_MANAGER_TOKEN,
|
|
501
|
-
logger: tokensCommon.LOGGER_TOKEN,
|
|
502
|
-
},
|
|
503
|
-
},
|
|
504
|
-
];
|
|
505
|
-
|
|
506
|
-
const stopRunAtError = (error) => {
|
|
507
|
-
if (errors.isNotFoundError(error) || errors.isRedirectFoundError(error)) {
|
|
508
|
-
return true;
|
|
509
|
-
}
|
|
510
|
-
};
|
|
511
|
-
const runActionsFactory = ({ store, router, actionRegistry, actionPageRunner, }) => {
|
|
512
|
-
return function runActions() {
|
|
513
|
-
const route = router.getCurrentRoute();
|
|
514
|
-
const { config: { bundle, pageComponent } = {} } = route;
|
|
515
|
-
if (!bundle || !pageComponent) {
|
|
516
|
-
throw new Error(`bundle and pageComponent should be defined, but got ${route}`);
|
|
517
|
-
}
|
|
518
|
-
const actions = uniq__default["default"]([
|
|
519
|
-
...(actionRegistry.getGlobal() || []),
|
|
520
|
-
...(actionRegistry.get(bundle) || []),
|
|
521
|
-
...(actionRegistry.get(pageComponent) || []),
|
|
522
|
-
]);
|
|
523
|
-
return actionPageRunner.runActions(actions, stopRunAtError).catch((err) => {
|
|
524
|
-
if (errors.isRedirectFoundError(err)) {
|
|
525
|
-
return router.navigate({
|
|
526
|
-
url: err.nextUrl,
|
|
527
|
-
replace: true,
|
|
528
|
-
code: err.httpStatus,
|
|
529
|
-
});
|
|
530
|
-
}
|
|
531
|
-
throw err.error || err;
|
|
532
|
-
});
|
|
533
|
-
};
|
|
534
|
-
};
|
|
535
|
-
|
|
536
|
-
const httpStatus = ({ responseManager }) => async ({ to }) => {
|
|
537
|
-
if (to === null || to === void 0 ? void 0 : to.config.httpStatus) {
|
|
538
|
-
responseManager.setStatus(to.config.httpStatus);
|
|
539
|
-
}
|
|
540
|
-
};
|
|
541
|
-
|
|
542
|
-
const serverHooks = [
|
|
543
|
-
{
|
|
544
|
-
provide: afterNavigateHooksToken,
|
|
545
|
-
multi: true,
|
|
546
|
-
// проставляет httpStatus если задан в текущем роуте
|
|
547
|
-
useFactory: httpStatus,
|
|
548
|
-
deps: {
|
|
549
|
-
responseManager: tokensCommon.RESPONSE_MANAGER_TOKEN,
|
|
550
|
-
},
|
|
551
|
-
},
|
|
552
|
-
];
|
|
553
|
-
|
|
554
|
-
const routerOptions = ({ requestManager, responseManager, }) => {
|
|
555
|
-
const getUrl = (navigation) => { var _a, _b; return (_b = (_a = navigation.url) === null || _a === void 0 ? void 0 : _a.path) !== null && _b !== void 0 ? _b : requestManager.getUrl(); };
|
|
556
|
-
const throwError = ({ defaultStatus, url }) => {
|
|
557
|
-
const error = new errors.HttpError({
|
|
558
|
-
url,
|
|
559
|
-
httpStatus: responseManager.getStatus() >= 300 ? responseManager.getStatus() : defaultStatus,
|
|
560
|
-
});
|
|
561
|
-
errors.makeErrorSilent(error);
|
|
562
|
-
throw error;
|
|
563
|
-
};
|
|
564
|
-
return {
|
|
565
|
-
onNotFound: async (navigation) => {
|
|
566
|
-
// isSilent is used to prevent command line error logs,
|
|
567
|
-
// because 404 errors is expected behavior
|
|
568
|
-
throwError({ defaultStatus: 404, url: getUrl(navigation) });
|
|
569
|
-
},
|
|
570
|
-
onRedirect: async (navigation) => {
|
|
571
|
-
const { fromUrl, url, code } = navigation;
|
|
572
|
-
const error = new errors.RedirectFoundError({
|
|
573
|
-
url: getUrl(navigation),
|
|
574
|
-
nextUrl: fromUrl.origin !== url.origin ? url.href : url.path,
|
|
575
|
-
httpStatus: code,
|
|
576
|
-
silent: true,
|
|
577
|
-
});
|
|
578
|
-
errors.makeErrorSilent(error);
|
|
579
|
-
throw error;
|
|
580
|
-
},
|
|
581
|
-
onBlock: async (navigation) => {
|
|
582
|
-
throwError({ defaultStatus: 500, url: getUrl(navigation) });
|
|
583
|
-
},
|
|
584
|
-
defaultRedirectCode: requestManager.getMethod() === 'GET' ? 301 : 308,
|
|
585
|
-
};
|
|
586
|
-
};
|
|
587
|
-
|
|
588
|
-
const deduplicateArray = (list) => {
|
|
589
|
-
return Array.from(new Set(list));
|
|
590
|
-
};
|
|
591
|
-
const bundleInfoPapi = papi.createPapiMethod({
|
|
592
|
-
method: 'get',
|
|
593
|
-
path: '/bundleInfo',
|
|
594
|
-
async handler() {
|
|
595
|
-
var _a;
|
|
596
|
-
const { getAdditionalRoutes, routes, routeTransform } = this.deps;
|
|
597
|
-
const loadAdditional = getAdditionalRoutes !== null && getAdditionalRoutes !== void 0 ? getAdditionalRoutes : (() => []);
|
|
598
|
-
return deduplicateArray(flatten__default["default"](routes || [])
|
|
599
|
-
.concat((_a = (await loadAdditional())) !== null && _a !== void 0 ? _a : [])
|
|
600
|
-
.map(routeTransform)
|
|
601
|
-
.map(prop__default["default"]('path'))
|
|
602
|
-
.filter((path) => !router.isWildcard(path) && !router.isHistoryFallback(path))
|
|
603
|
-
.sort());
|
|
604
|
-
},
|
|
605
|
-
deps: {
|
|
606
|
-
routes: {
|
|
607
|
-
token: tokensRouter.ROUTES_TOKEN,
|
|
608
|
-
optional: true,
|
|
609
|
-
},
|
|
610
|
-
routeTransform: routeTransformToken,
|
|
611
|
-
getAdditionalRoutes: { token: routerBundleInfoAdditionalToken, optional: true },
|
|
612
|
-
},
|
|
613
|
-
});
|
|
614
|
-
|
|
615
|
-
// do nothing on server side
|
|
616
|
-
const prefetchManager = {
|
|
617
|
-
prefetch: async (url) => { },
|
|
618
|
-
};
|
|
619
|
-
const prefetchProviders = [
|
|
620
|
-
core.provide({
|
|
621
|
-
provide: tokensRouter.LINK_PREFETCH_MANAGER_TOKEN,
|
|
622
|
-
useValue: prefetchManager,
|
|
623
|
-
}),
|
|
624
|
-
];
|
|
625
|
-
|
|
626
|
-
const serverTokens = [
|
|
627
|
-
{
|
|
628
|
-
provide: additionalRouterParameters,
|
|
629
|
-
useFactory: routerOptions,
|
|
630
|
-
deps: {
|
|
631
|
-
requestManager: tokensCommon.REQUEST_MANAGER_TOKEN,
|
|
632
|
-
responseManager: tokensCommon.RESPONSE_MANAGER_TOKEN,
|
|
633
|
-
},
|
|
634
|
-
},
|
|
635
|
-
{
|
|
636
|
-
provide: tokensServer.SERVER_MODULE_PAPI_PUBLIC_ROUTE,
|
|
637
|
-
multi: true,
|
|
638
|
-
useValue: bundleInfoPapi,
|
|
639
|
-
},
|
|
640
|
-
...prefetchProviders,
|
|
641
|
-
];
|
|
642
|
-
|
|
643
|
-
const generateForRoot = (mainModule) => {
|
|
644
|
-
return (routes, options = {}) => {
|
|
645
|
-
return {
|
|
646
|
-
mainModule,
|
|
647
|
-
providers: [
|
|
648
|
-
{
|
|
649
|
-
provide: tokensRouter.ROUTES_TOKEN,
|
|
650
|
-
multi: true,
|
|
651
|
-
useValue: routes,
|
|
652
|
-
},
|
|
653
|
-
options.spaActionsMode && {
|
|
654
|
-
provide: tokensRouter.ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN,
|
|
655
|
-
useValue: options.spaActionsMode,
|
|
656
|
-
},
|
|
657
|
-
].filter(Boolean),
|
|
658
|
-
};
|
|
659
|
-
};
|
|
660
|
-
};
|
|
661
|
-
|
|
662
|
-
var NoSpaRouterModule_1;
|
|
663
|
-
exports.NoSpaRouterModule = NoSpaRouterModule_1 = class NoSpaRouterModule {
|
|
664
|
-
};
|
|
665
|
-
exports.NoSpaRouterModule.forRoot = generateForRoot(NoSpaRouterModule_1);
|
|
666
|
-
exports.NoSpaRouterModule = NoSpaRouterModule_1 = tslib.__decorate([
|
|
667
|
-
core.Module({
|
|
668
|
-
providers: [
|
|
669
|
-
...providers,
|
|
670
|
-
...serverGuards,
|
|
671
|
-
...serverHooks,
|
|
672
|
-
...serverTokens,
|
|
673
|
-
{
|
|
674
|
-
provide: routerClassToken,
|
|
675
|
-
useValue: router.Router,
|
|
676
|
-
},
|
|
677
|
-
{
|
|
678
|
-
provide: core.commandLineListTokens.resolveUserDeps,
|
|
679
|
-
multi: true,
|
|
680
|
-
useFactory: ({ router, requestManager }) => {
|
|
681
|
-
return function routerInit() {
|
|
682
|
-
return router.navigate(requestManager.getUrl());
|
|
683
|
-
};
|
|
684
|
-
},
|
|
685
|
-
deps: {
|
|
686
|
-
router: tokensRouter.ROUTER_TOKEN,
|
|
687
|
-
requestManager: tokensCommon.REQUEST_MANAGER_TOKEN,
|
|
688
|
-
},
|
|
689
|
-
},
|
|
690
|
-
{
|
|
691
|
-
// запускаем экшены отдельно от самого роутинга, чтобы распараллелить задачи
|
|
692
|
-
provide: core.commandLineListTokens.resolvePageDeps,
|
|
693
|
-
multi: true,
|
|
694
|
-
useFactory: runActionsFactory,
|
|
695
|
-
deps: {
|
|
696
|
-
store: tokensCommon.STORE_TOKEN,
|
|
697
|
-
router: tokensRouter.ROUTER_TOKEN,
|
|
698
|
-
actionRegistry: tokensCommon.ACTION_REGISTRY_TOKEN,
|
|
699
|
-
actionPageRunner: tokensCommon.ACTION_PAGE_RUNNER_TOKEN,
|
|
700
|
-
},
|
|
701
|
-
},
|
|
702
|
-
],
|
|
703
|
-
})
|
|
704
|
-
], exports.NoSpaRouterModule);
|
|
705
|
-
const SpaRouterModule = exports.NoSpaRouterModule;
|
|
706
|
-
|
|
707
|
-
exports.RouterChildAppModule = class RouterChildAppModule {
|
|
708
|
-
};
|
|
709
|
-
exports.RouterChildAppModule = tslib.__decorate([
|
|
710
|
-
core.Module({
|
|
711
|
-
providers: [
|
|
712
|
-
core.provide({
|
|
713
|
-
provide: tokensRender.EXTEND_RENDER,
|
|
714
|
-
multi: true,
|
|
715
|
-
useFactory: provideRouter,
|
|
716
|
-
deps: {
|
|
717
|
-
router: tokensRouter.ROUTER_TOKEN,
|
|
718
|
-
},
|
|
719
|
-
}),
|
|
720
|
-
{
|
|
721
|
-
provide: tokensChildApp.CHILD_APP_INTERNAL_ROOT_STATE_ALLOWED_STORE_TOKEN,
|
|
722
|
-
multi: true,
|
|
723
|
-
useValue: RouterStore,
|
|
724
|
-
},
|
|
725
|
-
],
|
|
726
|
-
})
|
|
727
|
-
], exports.RouterChildAppModule);
|
|
728
|
-
|
|
729
|
-
function Link(props) {
|
|
730
|
-
const { children, onClick, url, query, replace, target, navigateOptions, prefetch = true, ...otherProps } = props;
|
|
731
|
-
const navigate = router.useNavigate({ url, query, replace, ...navigateOptions });
|
|
732
|
-
const [linkElement, setLinkElement] = react$1.useState(null);
|
|
733
|
-
const handleClick = react$1.useCallback((event) => {
|
|
734
|
-
// ignores the navigation when clicked using right mouse button or
|
|
735
|
-
// by holding a special modifier key: ctrl, command, win, alt, shift
|
|
736
|
-
if (target ||
|
|
737
|
-
event.ctrlKey ||
|
|
738
|
-
event.metaKey ||
|
|
739
|
-
event.altKey ||
|
|
740
|
-
event.shiftKey ||
|
|
741
|
-
event.button !== 0) {
|
|
742
|
-
return;
|
|
743
|
-
}
|
|
744
|
-
event.preventDefault();
|
|
745
|
-
navigate();
|
|
746
|
-
onClick && onClick(event);
|
|
747
|
-
}, [navigate, target, onClick]);
|
|
748
|
-
const extraProps = { href: url, onClick: handleClick, target };
|
|
749
|
-
if (react$1.isValidElement(children)) {
|
|
750
|
-
return react$1.cloneElement(children, {
|
|
751
|
-
// @ts-expect-error
|
|
752
|
-
ref: (element) => {
|
|
753
|
-
// @ts-expect-error
|
|
754
|
-
const { ref } = children;
|
|
755
|
-
// preserve original ref
|
|
756
|
-
if (typeof ref === 'function') {
|
|
757
|
-
ref(element);
|
|
758
|
-
}
|
|
759
|
-
else if (typeof ref === 'object' && ref !== null) {
|
|
760
|
-
ref.current = element;
|
|
761
|
-
}
|
|
762
|
-
setLinkElement(element);
|
|
763
|
-
},
|
|
764
|
-
...extraProps,
|
|
765
|
-
});
|
|
766
|
-
}
|
|
767
|
-
return (
|
|
768
|
-
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
769
|
-
jsxRuntime.jsx("a", { ref: (element) => setLinkElement(element), ...otherProps, ...extraProps, children: children }));
|
|
770
|
-
}
|
|
771
|
-
Link.displayName = 'Link';
|
|
772
|
-
|
|
773
|
-
const usePageService = () => {
|
|
774
|
-
router.useRoute();
|
|
775
|
-
return react.useDi(tokensRouter.PAGE_SERVICE_TOKEN);
|
|
776
|
-
};
|
|
777
|
-
|
|
778
25
|
Object.defineProperty(exports, 'Provider', {
|
|
779
|
-
|
|
780
|
-
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () { return router.Provider; }
|
|
781
28
|
});
|
|
782
29
|
Object.defineProperty(exports, 'useNavigate', {
|
|
783
|
-
|
|
784
|
-
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get: function () { return router.useNavigate; }
|
|
785
32
|
});
|
|
786
33
|
Object.defineProperty(exports, 'useRoute', {
|
|
787
|
-
|
|
788
|
-
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function () { return router.useRoute; }
|
|
789
36
|
});
|
|
790
37
|
Object.defineProperty(exports, 'useRouter', {
|
|
791
|
-
|
|
792
|
-
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function () { return router.useRouter; }
|
|
793
40
|
});
|
|
794
41
|
Object.defineProperty(exports, 'useUrl', {
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
});
|
|
798
|
-
exports.Link = Link;
|
|
799
|
-
exports.
|
|
800
|
-
exports.
|
|
801
|
-
exports.
|
|
802
|
-
exports.
|
|
803
|
-
exports.
|
|
804
|
-
exports.usePageService = usePageService;
|
|
42
|
+
enumerable: true,
|
|
43
|
+
get: function () { return router.useUrl; }
|
|
44
|
+
});
|
|
45
|
+
exports.Link = link.Link;
|
|
46
|
+
exports.generateForRoot = forRoot.generateForRoot;
|
|
47
|
+
exports.RouterStore = RouterStore.RouterStore;
|
|
48
|
+
exports.setCurrentNavigation = RouterStore.setCurrentNavigation;
|
|
49
|
+
exports.setUrlOnRehydrate = RouterStore.setUrlOnRehydrate;
|
|
50
|
+
exports.usePageService = usePageService.usePageService;
|
|
805
51
|
Object.keys(tokensRouter).forEach(function (k) {
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
52
|
+
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
|
|
53
|
+
enumerable: true,
|
|
54
|
+
get: function () { return tokensRouter[k]; }
|
|
55
|
+
});
|
|
810
56
|
});
|