@admin-layout/gluestack-ui-mobile 7.3.8-alpha.8 → 8.5.3-alpha.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 (100) hide show
  1. package/CHANGELOG.md +1 -17
  2. package/lib/components/ApplicationErrorFillWrapper.js +1 -1
  3. package/lib/components/ApplicationErrorFillWrapper.js.map +1 -1
  4. package/lib/components/ApplicationErrorHandler.js +3 -3
  5. package/lib/components/ApplicationErrorHandler.js.map +1 -1
  6. package/lib/components/AuthWrapper.d.ts +1 -0
  7. package/lib/components/AuthWrapper.js +27 -0
  8. package/lib/components/AuthWrapper.js.map +1 -0
  9. package/lib/components/ErrorBounday.js.map +1 -1
  10. package/lib/components/Fallback.js +1 -2
  11. package/lib/components/Fallback.js.map +1 -1
  12. package/lib/components/Layout/components/BasicLayout.js +3 -1
  13. package/lib/components/Layout/components/BasicLayout.js.map +1 -1
  14. package/lib/components/Layout/components/BottomTabBar.d.ts +1 -0
  15. package/lib/components/Layout/components/BottomTabBar.js +11 -24
  16. package/lib/components/Layout/components/BottomTabBar.js.map +1 -1
  17. package/lib/components/Layout/components/Drawer.d.ts +1 -0
  18. package/lib/components/Layout/components/Drawer.js +101 -117
  19. package/lib/components/Layout/components/Drawer.js.map +1 -1
  20. package/lib/components/Layout/components/Header.d.ts +2 -1
  21. package/lib/components/Layout/components/Header.js +5 -4
  22. package/lib/components/Layout/components/Header.js.map +1 -1
  23. package/lib/components/Layout/components/SettingDrawer/LayoutButton.js +26 -19
  24. package/lib/components/Layout/components/SettingDrawer/LayoutButton.js.map +1 -1
  25. package/lib/components/Layout/components/SettingDrawer/ThemeColorButton.js +5 -13
  26. package/lib/components/Layout/components/SettingDrawer/ThemeColorButton.js.map +1 -1
  27. package/lib/components/Layout/components/SideBar.js +2 -2
  28. package/lib/components/Layout/components/SideBar.js.map +1 -1
  29. package/lib/components/Layout/components/util.js.map +1 -1
  30. package/lib/components/Layout/compute.js +51 -52
  31. package/lib/components/Layout/compute.js.map +1 -1
  32. package/lib/components/NavigationComponent.js +24 -31
  33. package/lib/components/NavigationComponent.js.map +1 -1
  34. package/lib/components/ToastAlert.js +1 -1
  35. package/lib/components/ToastAlert.js.map +1 -1
  36. package/lib/components/UnAuthenticatedComponent.d.ts +3 -0
  37. package/lib/components/UnAuthenticatedComponent.js +16 -0
  38. package/lib/components/UnAuthenticatedComponent.js.map +1 -0
  39. package/lib/components/index.d.ts +1 -0
  40. package/lib/components/index.js +1 -0
  41. package/lib/components/index.js.map +1 -1
  42. package/lib/components/with-interactions-lifecycle-managed.d.ts +4 -0
  43. package/lib/components/with-interactions-lifecycle-managed.js +50 -0
  44. package/lib/components/with-interactions-lifecycle-managed.js.map +1 -0
  45. package/lib/components/with-interactions-managed.js +2 -2
  46. package/lib/components/with-interactions-managed.js.map +1 -1
  47. package/lib/config/config.js +2 -2
  48. package/lib/config/config.js.map +1 -1
  49. package/lib/config/i18next.js +1 -2
  50. package/lib/config/i18next.js.map +1 -1
  51. package/lib/containers/layout/BasicLayout.d.ts +2 -2
  52. package/lib/containers/layout/BasicLayout.js +3 -3
  53. package/lib/containers/layout/BasicLayout.js.map +1 -1
  54. package/lib/containers/layout/DrawerBottomNavigationConfig.d.ts +2 -2
  55. package/lib/containers/layout/DrawerBottomNavigationConfig.js +2 -2
  56. package/lib/containers/layout/DrawerBottomNavigationConfig.js.map +1 -1
  57. package/lib/containers/layout/DrawerConfig.d.ts +1 -1
  58. package/lib/containers/layout/DrawerConfig.js +1 -1
  59. package/lib/containers/layout/DrawerConfig.js.map +1 -1
  60. package/lib/containers/layout/Lifecycle.js +2 -14
  61. package/lib/containers/layout/Lifecycle.js.map +1 -1
  62. package/lib/containers/layout/ProLayout.js +4 -5
  63. package/lib/containers/layout/ProLayout.js.map +1 -1
  64. package/lib/hooks/use-after-interactions.d.ts +0 -1
  65. package/lib/hooks/use-after-interactions.js +1 -1
  66. package/lib/hooks/use-after-interactions.js.map +1 -1
  67. package/lib/hooks/useIsReady.js.map +1 -1
  68. package/lib/hooks/useLayoutSetting/index.js +16 -14
  69. package/lib/hooks/useLayoutSetting/index.js.map +1 -1
  70. package/lib/index.d.ts +3 -1
  71. package/lib/index.js +3 -1
  72. package/lib/index.js.map +1 -1
  73. package/lib/layout.json +153 -0
  74. package/lib/redux/settings.d.ts +8 -8
  75. package/lib/redux/settings.js +8 -2
  76. package/lib/redux/settings.js.map +1 -1
  77. package/lib/utils/generateAppNavigations.d.mts +43 -0
  78. package/lib/utils/generateAppNavigations.mjs +958 -0
  79. package/lib/utils/generateAppNavigations.mjs.map +1 -0
  80. package/lib/utils/getReplacedRouteConfig.d.ts +11 -0
  81. package/lib/utils/getReplacedRouteConfig.js +276 -0
  82. package/lib/utils/getReplacedRouteConfig.js.map +1 -0
  83. package/lib/utils/getReplacedRouteConfig.mjs +265 -0
  84. package/lib/utils/routeConfigKeyReplace.js +17 -19
  85. package/lib/utils/routeConfigKeyReplace.js.map +1 -1
  86. package/package.json +7 -5
  87. package/src/components/ApplicationErrorHandler.tsx +26 -21
  88. package/src/components/AuthWrapper.tsx +29 -0
  89. package/src/components/Layout/components/BottomTabBar.tsx +2 -0
  90. package/src/components/Layout/components/Drawer.tsx +4 -1
  91. package/src/components/Layout/components/Header.tsx +7 -3
  92. package/src/components/UnAuthenticatedComponent.tsx +38 -0
  93. package/src/components/index.ts +1 -0
  94. package/src/components/with-interactions-lifecycle-managed.tsx +105 -0
  95. package/src/index.ts +4 -1
  96. package/src/layout.json +153 -0
  97. package/src/utils/generateAppNavigations.mjs +990 -0
  98. package/src/utils/getReplacedRouteConfig.mjs_ok +317 -0
  99. package/src/utils/getReplacedRouteConfig.ts +330 -0
  100. package/tsconfig.json +4 -1
@@ -0,0 +1,317 @@
1
+
2
+ function uniqueRoutes(routes) {
3
+ const seenPaths = new Set();
4
+ return routes.filter(route => {
5
+ const path = Object.keys(route)[0];
6
+ if (seenPaths.has(path)) {
7
+ return false;
8
+ }
9
+ seenPaths.add(path);
10
+ return true;
11
+ });
12
+ }
13
+
14
+ const getReplacedRouteConfig = ({
15
+ layoutType,
16
+ layoutConfigData,
17
+ routeConfig = [],
18
+ initialRouteName = null,
19
+ }) => {
20
+ let modulesRouteConfig = [];
21
+ const modulesRouteConfigObj = Object.assign(
22
+ {},
23
+ ...(routeConfig?.flat(1) || [])
24
+ );
25
+ const layoutOrgLength = Object.keys(modulesRouteConfigObj)?.filter((r) => r?.startsWith('/:orgName/l/'))?.length;
26
+ const hostOrgLength = Object.keys(modulesRouteConfigObj)?.filter((r) => r?.startsWith('/:orgName/h/'))?.length;
27
+ const isLayoutOrgExists = layoutOrgLength > 0 ? true : false;
28
+ const isHostOrgExists = hostOrgLength > 0 ? true : false;
29
+ const layoutRouteConfig = layoutConfigData[layoutType];
30
+ const hostRouteConfig = layoutConfigData['host-bottom'];
31
+ const layoutRouteKey = Object.keys(layoutRouteConfig)[1];
32
+ const hostRouteKey = Object.keys(hostRouteConfig)[1];
33
+ const appLayout = layoutRouteConfig[layoutRouteKey];
34
+ const hostLayout = hostRouteConfig[hostRouteKey];
35
+ const hostModuleRouteConfigLength =
36
+ Object.entries(modulesRouteConfigObj)?.filter(
37
+ ([key, value]) => key?.startsWith('/:orgName/h/') || key?.startsWith('/h/'),
38
+ )?.flat(1)?.filter((rc)=>rc.length)?.length ?? 0;
39
+
40
+ if(hostModuleRouteConfigLength && hostModuleRouteConfigLength > 0){
41
+ modulesRouteConfig = [[layoutRouteConfig || []], [hostRouteConfig || []],...routeConfig];
42
+ }
43
+ else{
44
+ modulesRouteConfig = [[layoutRouteConfig || []],...routeConfig]
45
+ }
46
+
47
+ // const layoutRouteConfigObj = Object.assign(
48
+ // {},
49
+ // ...(modulesRouteConfig?.flat(1) || [])
50
+ // );
51
+
52
+ const keyToReplace = appLayout.key || 'bottom_tab';
53
+ //const mainStackConfig:any = Object.entries(layoutRouteConfigObj)?.filter(([key,val])=> key == '/')?.reduce((acc,val)=>{ return val[1]},{});
54
+ // const mainStackPath = mainStackConfig?.name?.toLowerCase()??'';
55
+ // const mainStackName = mainStackConfig?.name??'MainStack';
56
+ const lConfig = Object.keys(layoutRouteConfig).map((k)=>layoutRouteConfig[k]);
57
+ const mainStackConfig = lConfig[0] || {};
58
+ const layoutConfig = lConfig[1] || {};
59
+ const mainStackPath = mainStackConfig?.name?.toLowerCase()??'';
60
+ const mainStackName = mainStackConfig?.name??'MainStack';
61
+ const layoutName = layoutConfig?.name??'Layout';
62
+ const layoutRootName = mainStackName+'.'+layoutName;
63
+ const hConfig = Object.keys(hostRouteConfig).map((k)=>hostRouteConfig[k]);
64
+ const hostConfig = hConfig[1] || {};
65
+ const hostName = hostConfig?.name??'Layout';
66
+ const hostRootName = mainStackName+'.'+hostName;
67
+
68
+ const replacedNavigationRouteConfig = modulesRouteConfig?.map(
69
+ (innerArray) =>
70
+ innerArray?.map((obj) =>
71
+ Object.fromEntries(
72
+ Object.entries(obj).map(([key, val]) => {
73
+ let originalVal = Object.assign({}, val);
74
+ let objKey = key;
75
+ let path = originalVal.path || key;
76
+ let pathObj = { path: path };
77
+ let objVal = Object.assign({}, val, pathObj);
78
+ let name = objVal.name;
79
+
80
+ if (key === '/' && initialRouteName) objVal.props.initialRouteName = initialRouteName;
81
+ if (key == '/' + keyToReplace && initialRouteName)
82
+ objVal.props.initialRouteName = initialRouteName;
83
+ let initialParams = objVal?.props?.initialParams ?? {};
84
+ if (objVal?.props?.options) {
85
+ initialParams.auth = objVal?.auth ?? false;
86
+ initialParams.menu_position = objVal?.menu_position ?? 'bottom';
87
+ initialParams.priority = objVal?.props?.options?.priority ?? 0;
88
+ // initialParams.options = objVal.props.options ? JSON.stringify(objVal?.props?.options) : null;
89
+ objVal.props.initialParams = initialParams;
90
+ }
91
+ if (isLayoutOrgExists && objKey == `/${keyToReplace}`) {
92
+ objKey = objKey.replace(objKey, `/:orgName${objKey}`);
93
+ path = path.replace(path, `/:orgName${path}`);
94
+ }
95
+
96
+ if (isHostOrgExists && key == `/${hostLayout.key}`) {
97
+ objKey = key.replace(objKey, `/:orgName${objKey}`);
98
+ path = path.replace(path, `/:orgName${path}`);
99
+ }
100
+
101
+ if (keyToReplace == 'host_tab') {
102
+ name = path.startsWith('/:orgName/l/')
103
+ ? name.replace(name, `${layoutRootName}.${name}`)
104
+ : path.startsWith('/l/')
105
+ ? name.replace(name, `${layoutRootName}.${name}`)
106
+ : path.startsWith('/:orgName/h/')
107
+ ? name.replace(name, `${hostRootName}.${name}`)
108
+ : path.startsWith('/h/')
109
+ ? name.replace(name, `${hostRootName}.${name}`)
110
+ : path.startsWith('//')
111
+ ? name.startsWith(`${mainStackName}`)
112
+ ? name
113
+ : name.replace(name, `${mainStackName}.${name}`)
114
+ : path.startsWith(`/${mainStackPath}`)
115
+ ? name
116
+ : path === '/'
117
+ ? name
118
+ : name.startsWith(`${mainStackName}`)
119
+ ? name
120
+ : name.replace(name, `${mainStackName}.${name}`);
121
+ objKey = objKey.startsWith('/:orgName/h/')
122
+ ? objKey.replace('/:orgName/h/', '//:orgName/' + keyToReplace + '/')
123
+ : objKey.startsWith('/h/')
124
+ ? objKey.replace('/h/', '//' + keyToReplace + '/')
125
+ : objKey.startsWith('/:orgName/l/')
126
+ ? null
127
+ : objKey.startsWith('/l/')
128
+ ? null
129
+ : objKey === '/'
130
+ ? objKey
131
+ : objKey.startsWith('//')
132
+ ? objKey
133
+ : objKey.replace('/', '//');
134
+
135
+ path = path.startsWith('/:orgName/h/')
136
+ ? path.replace('/:orgName/h/', '/:orgName/' + keyToReplace + '/')
137
+ : path.startsWith('/h/')
138
+ ? path.replace('/h/', '/' + keyToReplace + '/')
139
+ : path.startsWith('/:orgName/l/')
140
+ ? null
141
+ : path.startsWith('/l/')
142
+ ? null
143
+ : path.startsWith('//')
144
+ ? path.replace('//', '/')
145
+ : path.startsWith(`/${mainStackPath}`)
146
+ ? path
147
+ : path === '/'
148
+ ? path
149
+ : path.replace('/', `/${mainStackPath}/`);
150
+ } else {
151
+ name = path.startsWith('/:orgName/l/')
152
+ ? name.replace(name, `${layoutRootName}.${name}`)
153
+ : path.startsWith('/l/')
154
+ ? name.replace(name, `${layoutRootName}.${name}`)
155
+ : path.startsWith('/:orgName/h/')
156
+ ? name.replace(name, `${hostRootName}.${name}`)
157
+ : path.startsWith('/h/')
158
+ ? name.replace(name, `${hostRootName}.${name}`)
159
+ : path.startsWith('//')
160
+ ? name.startsWith(`${mainStackName}`)
161
+ ? name
162
+ : name.replace(name, `${mainStackName}.${name}`)
163
+ : path.startsWith(`/${mainStackPath}`)
164
+ ? name
165
+ : path === '/'
166
+ ? name
167
+ : name.startsWith(`${mainStackName}`)
168
+ ? name
169
+ : name.replace(name, `${mainStackName}.${name}`);
170
+
171
+ objKey = objKey.startsWith('/:orgName/l/')
172
+ ? objKey.replace('/:orgName/l/', '//:orgName/' + keyToReplace + '/')
173
+ : objKey.startsWith('/l/')
174
+ ? objKey.replace('/l/', '//' + keyToReplace + '/')
175
+ : objKey.startsWith('/:orgName/h/')
176
+ ? objKey.replace('/:orgName/h/', '//:orgName/host_tab/')
177
+ : objKey.startsWith('/h/')
178
+ ? objKey.replace('/h/', '//host_tab/')
179
+ : objKey === '/'
180
+ ? objKey
181
+ : objKey.startsWith('//')
182
+ ? objKey
183
+ : objKey.replace('/', '//');
184
+
185
+ path = path.startsWith('/:orgName/l/')
186
+ ? path.replace('/:orgName/l/', '/:orgName/' + keyToReplace + '/')
187
+ : path.startsWith('/l/')
188
+ ? path.replace('/l/', '/' + keyToReplace + '/')
189
+ : path.startsWith('/:orgName/h/')
190
+ ? path.replace('/:orgName/h/', '/:orgName/host_tab/')
191
+ : path.startsWith('/h/')
192
+ ? path.replace('/h/', '/host_tab/')
193
+ : path.startsWith('//')
194
+ ? path.replace('//', '/')
195
+ : path.startsWith(`/${mainStackPath}`)
196
+ ? path
197
+ : path;
198
+ // : path === '/' ? path : path.replace('/',`/${mainStackPath}/`);
199
+
200
+ //name = name.startsWith(`${mainStackName}`) ? name : name.replace(name,`${mainStackName}.${name}`);
201
+ }
202
+
203
+ objVal.path = path;
204
+ objVal.name = name;
205
+
206
+ return [objKey, objVal];
207
+ }),
208
+ ),
209
+ ), // Extract the name property
210
+ );
211
+
212
+
213
+ const replacedConfiguredRouteConfig = modulesRouteConfig.map(
214
+ (innerArray) =>
215
+ innerArray.map((obj) =>
216
+ Object.fromEntries(
217
+ Object.entries(obj).map(([key, val]) => {
218
+ let originalVal = Object.assign({}, val);
219
+ let objKey = key;
220
+ let path = originalVal.path || key;
221
+ let pathObj = { path: path };
222
+ let objVal = Object.assign({}, val, pathObj);
223
+ let name = objVal.name;
224
+
225
+ if (key === '/' && initialRouteName) objVal.props.initialRouteName = initialRouteName;
226
+ if (key == '/' + keyToReplace && initialRouteName)
227
+ objVal.props.initialRouteName = initialRouteName;
228
+ let initialParams = objVal?.props?.initialParams ?? {};
229
+ if (objVal?.props?.options) {
230
+ initialParams.menu_position = objVal?.menu_position ?? 'bottom';
231
+ initialParams.priority = objVal?.props?.options?.priority ?? 0;
232
+ // initialParams.options = objVal.props.options ? JSON.stringify(objVal?.props?.options) : null;
233
+ objVal.props.initialParams = initialParams;
234
+ }
235
+ if (isLayoutOrgExists && objKey == `/${keyToReplace}`) {
236
+ objKey = objKey.replace(objKey, `/:orgName${objKey}`);
237
+ path = path.replace(path, `/:orgName${path}`);
238
+ }
239
+
240
+ if (isHostOrgExists && key == `/${hostLayout.key}`) {
241
+ objKey = key.replace(objKey, `/:orgName${objKey}`);
242
+ path = path.replace(path, `/:orgName${path}`);
243
+ }
244
+
245
+ if (keyToReplace == 'host_tab') {
246
+ objKey = objKey.startsWith('/:orgName/h/')
247
+ ? objKey.replace('/:orgName/h/', '//:orgName/' + keyToReplace + '/')
248
+ : objKey.startsWith('/h/')
249
+ ? objKey.replace('/h/', '//' + keyToReplace + '/')
250
+ : objKey.startsWith('/:orgName/l/')
251
+ ? null
252
+ : objKey.startsWith('/l/')
253
+ ? null
254
+ : objKey === '/'
255
+ ? objKey
256
+ : objKey.startsWith('//')
257
+ ? objKey
258
+ : objKey.replace('/', '//');
259
+
260
+ path = path.startsWith('/:orgName/h/')
261
+ ? path.replace('/:orgName/h/', '/:orgName/' + keyToReplace + '/')
262
+ : path.startsWith('/h/')
263
+ ? path.replace('/h/', '/' + keyToReplace + '/')
264
+ : path.startsWith('/:orgName/l/')
265
+ ? null
266
+ : path.startsWith('/l/')
267
+ ? null
268
+ : path.startsWith('//')
269
+ ? path.replace('//', '/')
270
+ : path.startsWith(`/${mainStackPath}`)
271
+ ? path
272
+ : path === '/'
273
+ ? path
274
+ : path.replace('/', `/${mainStackPath}/`);
275
+ } else {
276
+ objKey = objKey.startsWith('/:orgName/l/')
277
+ ? objKey.replace('/:orgName/l/', '//:orgName/' + keyToReplace + '/')
278
+ : objKey.startsWith('/l/')
279
+ ? objKey.replace('/l/', '//' + keyToReplace + '/')
280
+ : objKey.startsWith('/:orgName/h/')
281
+ ? objKey.replace('/:orgName/h/', '//:orgName/host_tab/')
282
+ : objKey.startsWith('/h/')
283
+ ? objKey.replace('/h/', '//host_tab/')
284
+ : objKey === '/'
285
+ ? objKey
286
+ : objKey.startsWith('//')
287
+ ? objKey
288
+ : objKey.replace('/', '//');
289
+
290
+ path = path.startsWith('/:orgName/l/')
291
+ ? path.replace('/:orgName/l/', '/:orgName/' + keyToReplace + '/')
292
+ : path.startsWith('/l/')
293
+ ? path.replace('/l/', '/' + keyToReplace + '/')
294
+ : path.startsWith('/:orgName/h/')
295
+ ? path.replace('/:orgName/h/', '/:orgName/host_tab/')
296
+ : path.startsWith('/h/')
297
+ ? path.replace('/h/', '/host_tab/')
298
+ : path.startsWith('//')
299
+ ? path.replace('//', '/')
300
+ : path.startsWith(`/${mainStackPath}`)
301
+ ? path
302
+ : path;
303
+ }
304
+
305
+ objVal.path = path;
306
+ objVal.name = name;
307
+
308
+ return [objKey, objVal];
309
+ }),
310
+ ),
311
+ ), // Extract the name property
312
+ );
313
+
314
+ return {replacedNavigationRouteConfig,replacedConfiguredRouteConfig};
315
+
316
+ };
317
+ export {getReplacedRouteConfig};
@@ -0,0 +1,330 @@
1
+ export type IReplacedRouteConfigProps = {
2
+ layoutType:any;
3
+ layoutConfigData: any;
4
+ routeConfig: any;
5
+ initialRouteName?:any;
6
+ }
7
+
8
+ function uniqueRoutes(routes) {
9
+ const seenPaths = new Set();
10
+ return routes.filter(route => {
11
+ const path = Object.keys(route)[0];
12
+ if (seenPaths.has(path)) {
13
+ return false;
14
+ }
15
+ seenPaths.add(path);
16
+ return true;
17
+ });
18
+ }
19
+
20
+ const getReplacedRouteConfig = ({
21
+ layoutType,
22
+ layoutConfigData,
23
+ routeConfig = [],
24
+ initialRouteName = null,
25
+ }:IReplacedRouteConfigProps) => {
26
+ let modulesRouteConfig = [];
27
+ const modulesRouteConfigObj = Object.assign(
28
+ {},
29
+ ...(routeConfig?.flat(1) || [])
30
+ );
31
+ const layoutOrgLength = Object.keys(modulesRouteConfigObj)?.filter((r) => r?.startsWith('/:orgName/l/'))?.length;
32
+ const hostOrgLength = Object.keys(modulesRouteConfigObj)?.filter((r) => r?.startsWith('/:orgName/h/'))?.length;
33
+ const isLayoutOrgExists = layoutOrgLength > 0 ? true : false;
34
+ const isHostOrgExists = hostOrgLength > 0 ? true : false;
35
+ const layoutRouteConfig = layoutConfigData[layoutType];
36
+ const hostRouteConfig = layoutConfigData['host-bottom'];
37
+ const layoutRouteKey = Object.keys(layoutRouteConfig)[1];
38
+ const hostRouteKey = Object.keys(hostRouteConfig)[1];
39
+ const appLayout = layoutRouteConfig[layoutRouteKey];
40
+ const hostLayout = hostRouteConfig[hostRouteKey];
41
+ const keyToReplace = appLayout.key || 'bottom_tab';
42
+ const hostFilteredRouteConfig = routeConfig?.map((rcArry)=>rcArry.filter(((obj)=>!Object.keys(obj)?.[0]?.startsWith('/l/') && !Object.keys(obj)?.[0].startsWith('/:orgName/l/'))));
43
+ let filteredRouteConfig = routeConfig;
44
+ if(keyToReplace == 'host_tab'){
45
+ filteredRouteConfig = hostFilteredRouteConfig;
46
+ }
47
+
48
+ const hostModuleRouteConfigLength =
49
+ Object.entries(modulesRouteConfigObj)?.filter(
50
+ ([key, value]) => key?.startsWith('/:orgName/h/') || key?.startsWith('/h/'),
51
+ )?.flat(1)?.filter((rc:any)=>rc.length)?.length ?? 0;
52
+
53
+ if(hostModuleRouteConfigLength && hostModuleRouteConfigLength > 0){
54
+ modulesRouteConfig = [[layoutRouteConfig || []], [hostRouteConfig || []],...filteredRouteConfig];
55
+ }
56
+ else{
57
+ modulesRouteConfig = [[layoutRouteConfig || []],...filteredRouteConfig]
58
+ }
59
+
60
+ // const layoutRouteConfigObj = Object.assign(
61
+ // {},
62
+ // ...(modulesRouteConfig?.flat(1) || [])
63
+ // );
64
+
65
+
66
+ //const mainStackConfig:any = Object.entries(layoutRouteConfigObj)?.filter(([key,val])=> key == '/')?.reduce((acc,val)=>{ return val[1]},{});
67
+ // const mainStackPath = mainStackConfig?.name?.toLowerCase()??'';
68
+ // const mainStackName = mainStackConfig?.name??'MainStack';
69
+ const lConfig = Object.keys(layoutRouteConfig).map((k)=>layoutRouteConfig[k]);
70
+ const mainStackConfig = lConfig[0] || {};
71
+ const layoutConfig = lConfig[1] || {};
72
+ const mainStackPath = mainStackConfig?.name?.toLowerCase()??'';
73
+ const mainStackName = mainStackConfig?.name??'MainStack';
74
+ const layoutName = layoutConfig?.name??'Layout';
75
+ const layoutRootName = mainStackName+'.'+layoutName;
76
+ const hConfig = Object.keys(hostRouteConfig).map((k)=>hostRouteConfig[k]);
77
+ const hostConfig = hConfig[1] || {};
78
+ const hostName = hostConfig?.name??'Layout';
79
+ const hostRootName = mainStackName+'.'+hostName;
80
+
81
+ const replacedNavigationRouteConfig = modulesRouteConfig?.map(
82
+ (innerArray) =>
83
+ innerArray?.map((obj) =>
84
+ Object.fromEntries(
85
+ Object.entries(obj).map(([key, val]) => {
86
+ let originalVal: any = Object.assign({}, val);
87
+ let objKey = key;
88
+ let path = originalVal.path || key;
89
+ let pathObj = { path: path };
90
+ let objVal: any = Object.assign({}, val, pathObj);
91
+ let name = objVal.name;
92
+
93
+ if (key === '/' && initialRouteName) objVal.props.initialRouteName = initialRouteName;
94
+ if (key == '/' + keyToReplace && initialRouteName)
95
+ objVal.props.initialRouteName = initialRouteName;
96
+ let initialParams = objVal?.props?.initialParams ?? {};
97
+ if (objVal?.props?.options) {
98
+ initialParams.auth = objVal?.auth ?? false;
99
+ initialParams.menu_position = objVal?.menu_position ?? 'bottom';
100
+ initialParams.priority = objVal?.props?.options?.priority ?? 0;
101
+ // initialParams.options = objVal.props.options ? JSON.stringify(objVal?.props?.options) : null;
102
+ objVal.props.initialParams = initialParams;
103
+ }
104
+ if (isLayoutOrgExists && objKey == `/${keyToReplace}`) {
105
+ objKey = objKey.replace(objKey, `/:orgName${objKey}`);
106
+ path = path.replace(path, `/:orgName${path}`);
107
+ }
108
+
109
+ if (isHostOrgExists && key == `/${hostLayout.key}`) {
110
+ objKey = key.replace(objKey, `/:orgName${objKey}`);
111
+ path = path.replace(path, `/:orgName${path}`);
112
+ }
113
+
114
+ if (keyToReplace == 'host_tab') {
115
+ name = path.startsWith('/:orgName/l/')
116
+ ? name.replace(name, `${layoutRootName}.${name}`)
117
+ : path.startsWith('/l/')
118
+ ? name.replace(name, `${layoutRootName}.${name}`)
119
+ : path.startsWith('/:orgName/h/')
120
+ ? name.replace(name, `${hostRootName}.${name}`)
121
+ : path.startsWith('/h/')
122
+ ? name.replace(name, `${hostRootName}.${name}`)
123
+ : path.startsWith('//')
124
+ ? name.startsWith(`${mainStackName}`)
125
+ ? name
126
+ : name.replace(name, `${mainStackName}.${name}`)
127
+ : path.startsWith(`/${mainStackPath}`)
128
+ ? name
129
+ : path === '/'
130
+ ? name
131
+ : name.startsWith(`${mainStackName}`)
132
+ ? name
133
+ : name.replace(name, `${mainStackName}.${name}`);
134
+ objKey = objKey.startsWith('/:orgName/h/')
135
+ ? objKey.replace('/:orgName/h/', '//:orgName/' + keyToReplace + '/')
136
+ : objKey.startsWith('/h/')
137
+ ? objKey.replace('/h/', '//' + keyToReplace + '/')
138
+ : objKey.startsWith('/:orgName/l/')
139
+ ? null
140
+ : objKey.startsWith('/l/')
141
+ ? null
142
+ : objKey === '/'
143
+ ? objKey
144
+ : objKey.startsWith('//')
145
+ ? objKey
146
+ : objKey.replace('/', '//');
147
+
148
+ path = path.startsWith('/:orgName/h/')
149
+ ? path.replace('/:orgName/h/', '/:orgName/' + keyToReplace + '/')
150
+ : path.startsWith('/h/')
151
+ ? path.replace('/h/', '/' + keyToReplace + '/')
152
+ : path.startsWith('/:orgName/l/')
153
+ ? null
154
+ : path.startsWith('/l/')
155
+ ? null
156
+ : path.startsWith('//')
157
+ ? path.replace('//', '/')
158
+ : path.startsWith(`/${mainStackPath}`)
159
+ ? path
160
+ : path === '/'
161
+ ? path
162
+ : path.replace('/', `/${mainStackPath}/`);
163
+ } else {
164
+ name = path.startsWith('/:orgName/l/')
165
+ ? name.replace(name, `${layoutRootName}.${name}`)
166
+ : path.startsWith('/l/')
167
+ ? name.replace(name, `${layoutRootName}.${name}`)
168
+ : path.startsWith('/:orgName/h/')
169
+ ? name.replace(name, `${hostRootName}.${name}`)
170
+ : path.startsWith('/h/')
171
+ ? name.replace(name, `${hostRootName}.${name}`)
172
+ : path.startsWith('//')
173
+ ? name.startsWith(`${mainStackName}`)
174
+ ? name
175
+ : name.replace(name, `${mainStackName}.${name}`)
176
+ : path.startsWith(`/${mainStackPath}`)
177
+ ? name
178
+ : path === '/'
179
+ ? name
180
+ : name.startsWith(`${mainStackName}`)
181
+ ? name
182
+ : name.replace(name, `${mainStackName}.${name}`);
183
+
184
+ objKey = objKey.startsWith('/:orgName/l/')
185
+ ? objKey.replace('/:orgName/l/', '//:orgName/' + keyToReplace + '/')
186
+ : objKey.startsWith('/l/')
187
+ ? objKey.replace('/l/', '//' + keyToReplace + '/')
188
+ : objKey.startsWith('/:orgName/h/')
189
+ ? objKey.replace('/:orgName/h/', '//:orgName/host_tab/')
190
+ : objKey.startsWith('/h/')
191
+ ? objKey.replace('/h/', '//host_tab/')
192
+ : objKey === '/'
193
+ ? objKey
194
+ : objKey.startsWith('//')
195
+ ? objKey
196
+ : objKey.replace('/', '//');
197
+
198
+ path = path.startsWith('/:orgName/l/')
199
+ ? path.replace('/:orgName/l/', '/:orgName/' + keyToReplace + '/')
200
+ : path.startsWith('/l/')
201
+ ? path.replace('/l/', '/' + keyToReplace + '/')
202
+ : path.startsWith('/:orgName/h/')
203
+ ? path.replace('/:orgName/h/', '/:orgName/host_tab/')
204
+ : path.startsWith('/h/')
205
+ ? path.replace('/h/', '/host_tab/')
206
+ : path.startsWith('//')
207
+ ? path.replace('//', '/')
208
+ : path.startsWith(`/${mainStackPath}`)
209
+ ? path
210
+ : path;
211
+ // : path === '/' ? path : path.replace('/',`/${mainStackPath}/`);
212
+
213
+ //name = name.startsWith(`${mainStackName}`) ? name : name.replace(name,`${mainStackName}.${name}`);
214
+ }
215
+
216
+ objVal.path = path;
217
+ objVal.name = name;
218
+
219
+ return [objKey, objVal];
220
+ }),
221
+ ),
222
+ ), // Extract the name property
223
+ );
224
+
225
+
226
+ const replacedConfiguredRouteConfig = modulesRouteConfig.map(
227
+ (innerArray) =>
228
+ innerArray.map((obj) =>
229
+ Object.fromEntries(
230
+ Object.entries(obj).map(([key, val]) => {
231
+ let originalVal: any = Object.assign({}, val);
232
+ let objKey = key;
233
+ let path = originalVal.path || key;
234
+ let pathObj = { path: path };
235
+ let objVal: any = Object.assign({}, val, pathObj);
236
+ let name = objVal.name;
237
+
238
+ if (key === '/' && initialRouteName) objVal.props.initialRouteName = initialRouteName;
239
+ if (key == '/' + keyToReplace && initialRouteName)
240
+ objVal.props.initialRouteName = initialRouteName;
241
+ let initialParams = objVal?.props?.initialParams ?? {};
242
+ if (objVal?.props?.options) {
243
+ initialParams.menu_position = objVal?.menu_position ?? 'bottom';
244
+ initialParams.priority = objVal?.props?.options?.priority ?? 0;
245
+ // initialParams.options = objVal.props.options ? JSON.stringify(objVal?.props?.options) : null;
246
+ objVal.props.initialParams = initialParams;
247
+ }
248
+ if (isLayoutOrgExists && objKey == `/${keyToReplace}`) {
249
+ objKey = objKey.replace(objKey, `/:orgName${objKey}`);
250
+ path = path.replace(path, `/:orgName${path}`);
251
+ }
252
+
253
+ if (isHostOrgExists && key == `/${hostLayout.key}`) {
254
+ objKey = key.replace(objKey, `/:orgName${objKey}`);
255
+ path = path.replace(path, `/:orgName${path}`);
256
+ }
257
+
258
+ if (keyToReplace == 'host_tab') {
259
+ objKey = objKey.startsWith('/:orgName/h/')
260
+ ? objKey.replace('/:orgName/h/', '//:orgName/' + keyToReplace + '/')
261
+ : objKey.startsWith('/h/')
262
+ ? objKey.replace('/h/', '//' + keyToReplace + '/')
263
+ : objKey.startsWith('/:orgName/l/')
264
+ ? null
265
+ : objKey.startsWith('/l/')
266
+ ? null
267
+ : objKey === '/'
268
+ ? objKey
269
+ : objKey.startsWith('//')
270
+ ? objKey
271
+ : objKey.replace('/', '//');
272
+
273
+ path = path.startsWith('/:orgName/h/')
274
+ ? path.replace('/:orgName/h/', '/:orgName/' + keyToReplace + '/')
275
+ : path.startsWith('/h/')
276
+ ? path.replace('/h/', '/' + keyToReplace + '/')
277
+ : path.startsWith('/:orgName/l/')
278
+ ? null
279
+ : path.startsWith('/l/')
280
+ ? null
281
+ : path.startsWith('//')
282
+ ? path.replace('//', '/')
283
+ : path.startsWith(`/${mainStackPath}`)
284
+ ? path
285
+ : path === '/'
286
+ ? path
287
+ : path.replace('/', `/${mainStackPath}/`);
288
+ } else {
289
+ objKey = objKey.startsWith('/:orgName/l/')
290
+ ? objKey.replace('/:orgName/l/', '//:orgName/' + keyToReplace + '/')
291
+ : objKey.startsWith('/l/')
292
+ ? objKey.replace('/l/', '//' + keyToReplace + '/')
293
+ : objKey.startsWith('/:orgName/h/')
294
+ ? objKey.replace('/:orgName/h/', '//:orgName/host_tab/')
295
+ : objKey.startsWith('/h/')
296
+ ? objKey.replace('/h/', '//host_tab/')
297
+ : objKey === '/'
298
+ ? objKey
299
+ : objKey.startsWith('//')
300
+ ? objKey
301
+ : objKey.replace('/', '//');
302
+
303
+ path = path.startsWith('/:orgName/l/')
304
+ ? path.replace('/:orgName/l/', '/:orgName/' + keyToReplace + '/')
305
+ : path.startsWith('/l/')
306
+ ? path.replace('/l/', '/' + keyToReplace + '/')
307
+ : path.startsWith('/:orgName/h/')
308
+ ? path.replace('/:orgName/h/', '/:orgName/host_tab/')
309
+ : path.startsWith('/h/')
310
+ ? path.replace('/h/', '/host_tab/')
311
+ : path.startsWith('//')
312
+ ? path.replace('//', '/')
313
+ : path.startsWith(`/${mainStackPath}`)
314
+ ? path
315
+ : path;
316
+ }
317
+
318
+ objVal.path = path;
319
+ objVal.name = name;
320
+
321
+ return [objKey, objVal];
322
+ }),
323
+ ),
324
+ ), // Extract the name property
325
+ );
326
+
327
+ return {replacedNavigationRouteConfig,replacedConfiguredRouteConfig};
328
+
329
+ };
330
+ export {getReplacedRouteConfig};