@j2inn/fin5-ui-utils 6.0.4 → 6.0.5-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 (212) hide show
  1. package/README.md +5 -5
  2. package/dist/fantomProps/createFin5Props/index.d.ts +12 -12
  3. package/dist/fantomProps/createFin5Props/index.js +146 -146
  4. package/dist/fantomProps/createFin5Props/runCreateFin5Props.d.ts +2 -2
  5. package/dist/fantomProps/createFin5Props/runCreateFin5Props.js +16 -16
  6. package/dist/fantomProps/fantomPropsToObject.d.ts +8 -8
  7. package/dist/fantomProps/fantomPropsToObject.js +183 -183
  8. package/dist/fantomProps/generateJsonFromFantomPropsFile.d.ts +4 -4
  9. package/dist/fantomProps/generateJsonFromFantomPropsFile.js +41 -41
  10. package/dist/fantomProps/localePropsToJson.d.ts +1 -1
  11. package/dist/fantomProps/localePropsToJson.js +50 -50
  12. package/dist/fantomProps/readFantomPropsFile.d.ts +5 -5
  13. package/dist/fantomProps/readFantomPropsFile.js +66 -61
  14. package/dist/fantomProps/readFantomPropsFile.js.map +1 -1
  15. package/dist/fin5Top/fin5FileUpload.d.ts +24 -24
  16. package/dist/fin5Top/fin5FileUpload.js +51 -51
  17. package/dist/fin5Top/fin5Top.d.ts +124 -124
  18. package/dist/fin5Top/fin5Top.js +53 -53
  19. package/dist/fin5Top/finEdge2Cloud.d.ts +6 -6
  20. package/dist/fin5Top/finEdge2Cloud.js +15 -15
  21. package/dist/fin5Top/getFin5BinUrl.d.ts +2 -2
  22. package/dist/fin5Top/getFin5BinUrl.js +9 -9
  23. package/dist/fin5Top/openFin5Alarm.d.ts +22 -22
  24. package/dist/fin5Top/openFin5Alarm.js +23 -23
  25. package/dist/fin5Top/openFin5Historian.d.ts +3 -3
  26. package/dist/fin5Top/openFin5Historian.js +19 -19
  27. package/dist/fin5Top/useFin5AppURLHashParameter.d.ts +18 -18
  28. package/dist/fin5Top/useFin5AppURLHashParameter.js +133 -133
  29. package/dist/index.d.ts +35 -35
  30. package/dist/index.js +69 -69
  31. package/dist/jobs/jobUtils.d.ts +14 -14
  32. package/dist/jobs/jobUtils.js +15 -15
  33. package/dist/react/app/Fin5AppContainer.d.ts +36 -36
  34. package/dist/react/app/Fin5AppContainer.js +102 -102
  35. package/dist/react/app/Fin5AppRootStore.d.ts +40 -40
  36. package/dist/react/app/Fin5AppRootStore.js +69 -69
  37. package/dist/react/components/ErrorBoundary.d.ts +57 -57
  38. package/dist/react/components/ErrorBoundary.js +150 -150
  39. package/dist/react/components/ErrorDisplayer.d.ts +19 -19
  40. package/dist/react/components/ErrorDisplayer.js +36 -36
  41. package/dist/react/components/Loader.d.ts +9 -9
  42. package/dist/react/components/Loader.js +17 -17
  43. package/dist/react/components/LoadingSpinner.d.ts +2 -2
  44. package/dist/react/components/LoadingSpinner.js +27 -27
  45. package/dist/react/components/RecordImage.d.ts +20 -20
  46. package/dist/react/components/RecordImage.js +51 -51
  47. package/dist/react/components/charts/QRCode.d.ts +25 -25
  48. package/dist/react/components/charts/QRCode.js +82 -82
  49. package/dist/react/components/charts/line-bar/Chart.d.ts +166 -166
  50. package/dist/react/components/charts/line-bar/Chart.js +442 -442
  51. package/dist/react/components/charts/line-bar/HGridChart.d.ts +58 -58
  52. package/dist/react/components/charts/line-bar/HGridChart.js +285 -285
  53. package/dist/react/components/charts/pie/PieChart.d.ts +94 -94
  54. package/dist/react/components/charts/pie/PieChart.js +204 -204
  55. package/dist/react/components/charts/pie/SimplePieChart.d.ts +21 -21
  56. package/dist/react/components/charts/pie/SimplePieChart.js +55 -55
  57. package/dist/react/components/graphics/GraphicViewer.d.ts +10 -10
  58. package/dist/react/components/graphics/GraphicViewer.js +29 -29
  59. package/dist/react/components/graphics/GraphicsTabViewer.d.ts +17 -17
  60. package/dist/react/components/graphics/GraphicsTabViewer.js +90 -90
  61. package/dist/react/components/makeCustomElement.d.ts +16 -16
  62. package/dist/react/components/makeCustomElement.js +150 -150
  63. package/dist/react/components/navigation/BasicLayout.d.ts +41 -41
  64. package/dist/react/components/navigation/BasicLayout.js +155 -155
  65. package/dist/react/components/navigation/HeaderSiderLayout.d.ts +13 -13
  66. package/dist/react/components/navigation/HeaderSiderLayout.js +110 -110
  67. package/dist/react/components/navigation/MenuPage.d.ts +37 -37
  68. package/dist/react/components/navigation/MenuPage.js +36 -36
  69. package/dist/react/components/navigation/MenuTrigger.d.ts +9 -9
  70. package/dist/react/components/navigation/MenuTrigger.js +33 -33
  71. package/dist/react/components/navigation/ReactRouterHeaderSiderLayout.d.ts +11 -11
  72. package/dist/react/components/navigation/ReactRouterHeaderSiderLayout.js +25 -25
  73. package/dist/react/components/navigation/ReactRouterLayout.d.ts +46 -46
  74. package/dist/react/components/navigation/ReactRouterLayout.js +132 -132
  75. package/dist/react/components/navigation/customRouting/Router.d.ts +12 -12
  76. package/dist/react/components/navigation/customRouting/Router.js +45 -45
  77. package/dist/react/components/navigation/customRouting/RouterLayout.d.ts +11 -11
  78. package/dist/react/components/navigation/customRouting/RouterLayout.js +61 -61
  79. package/dist/react/components/resolvable/configurationForm/ConfigurationForm.d.ts +27 -27
  80. package/dist/react/components/resolvable/configurationForm/ConfigurationForm.js +95 -95
  81. package/dist/react/components/resolvable/configurationForm/ConfigurationFormEntry.d.ts +16 -16
  82. package/dist/react/components/resolvable/configurationForm/ConfigurationFormEntry.js +88 -88
  83. package/dist/react/components/resolvable/configurationForm/getSectionDefault.d.ts +16 -16
  84. package/dist/react/components/resolvable/configurationForm/getSectionDefault.js +99 -99
  85. package/dist/react/hooks/useFin5BinUrl.d.ts +6 -6
  86. package/dist/react/hooks/useFin5BinUrl.js +15 -15
  87. package/dist/react/hooks/useFin5ColorScheme.d.ts +2 -2
  88. package/dist/react/hooks/useFin5ColorScheme.js +49 -49
  89. package/dist/react/hooks/useScreenSize.d.ts +7 -7
  90. package/dist/react/hooks/useScreenSize.js +31 -31
  91. package/dist_es/fantomProps/createFin5Props/index.d.ts +12 -12
  92. package/dist_es/fantomProps/createFin5Props/index.js +140 -140
  93. package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.d.ts +2 -2
  94. package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.js +11 -11
  95. package/dist_es/fantomProps/fantomPropsToObject.d.ts +8 -8
  96. package/dist_es/fantomProps/fantomPropsToObject.js +178 -178
  97. package/dist_es/fantomProps/generateJsonFromFantomPropsFile.d.ts +4 -4
  98. package/dist_es/fantomProps/generateJsonFromFantomPropsFile.js +12 -12
  99. package/dist_es/fantomProps/localePropsToJson.d.ts +1 -1
  100. package/dist_es/fantomProps/localePropsToJson.js +21 -21
  101. package/dist_es/fantomProps/readFantomPropsFile.d.ts +5 -5
  102. package/dist_es/fantomProps/readFantomPropsFile.js +40 -35
  103. package/dist_es/fantomProps/readFantomPropsFile.js.map +1 -1
  104. package/dist_es/fin5Top/fin5FileUpload.d.ts +24 -24
  105. package/dist_es/fin5Top/fin5FileUpload.js +47 -47
  106. package/dist_es/fin5Top/fin5Top.d.ts +124 -124
  107. package/dist_es/fin5Top/fin5Top.js +49 -49
  108. package/dist_es/fin5Top/finEdge2Cloud.d.ts +6 -6
  109. package/dist_es/fin5Top/finEdge2Cloud.js +11 -11
  110. package/dist_es/fin5Top/getFin5BinUrl.d.ts +2 -2
  111. package/dist_es/fin5Top/getFin5BinUrl.js +5 -5
  112. package/dist_es/fin5Top/openFin5Alarm.d.ts +22 -22
  113. package/dist_es/fin5Top/openFin5Alarm.js +19 -19
  114. package/dist_es/fin5Top/openFin5Historian.d.ts +3 -3
  115. package/dist_es/fin5Top/openFin5Historian.js +15 -15
  116. package/dist_es/fin5Top/useFin5AppURLHashParameter.d.ts +18 -18
  117. package/dist_es/fin5Top/useFin5AppURLHashParameter.js +124 -124
  118. package/dist_es/index.d.ts +35 -35
  119. package/dist_es/index.js +53 -53
  120. package/dist_es/jobs/jobUtils.d.ts +14 -14
  121. package/dist_es/jobs/jobUtils.js +9 -9
  122. package/dist_es/react/app/Fin5AppContainer.d.ts +36 -36
  123. package/dist_es/react/app/Fin5AppContainer.js +73 -73
  124. package/dist_es/react/app/Fin5AppContainer.jsx +82 -0
  125. package/dist_es/react/app/Fin5AppContainer.jsx.map +1 -0
  126. package/dist_es/react/app/Fin5AppRootStore.d.ts +40 -40
  127. package/dist_es/react/app/Fin5AppRootStore.js +65 -65
  128. package/dist_es/react/components/ErrorBoundary.d.ts +57 -57
  129. package/dist_es/react/components/ErrorBoundary.js +123 -123
  130. package/dist_es/react/components/ErrorBoundary.jsx +150 -0
  131. package/dist_es/react/components/ErrorBoundary.jsx.map +1 -0
  132. package/dist_es/react/components/ErrorDisplayer.d.ts +19 -19
  133. package/dist_es/react/components/ErrorDisplayer.js +28 -28
  134. package/dist_es/react/components/ErrorDisplayer.jsx +36 -0
  135. package/dist_es/react/components/ErrorDisplayer.jsx.map +1 -0
  136. package/dist_es/react/components/Loader.d.ts +9 -9
  137. package/dist_es/react/components/Loader.js +12 -12
  138. package/dist_es/react/components/Loader.jsx +13 -0
  139. package/dist_es/react/components/Loader.jsx.map +1 -0
  140. package/dist_es/react/components/LoadingSpinner.d.ts +2 -2
  141. package/dist_es/react/components/LoadingSpinner.js +20 -20
  142. package/dist_es/react/components/LoadingSpinner.jsx +22 -0
  143. package/dist_es/react/components/LoadingSpinner.jsx.map +1 -0
  144. package/dist_es/react/components/RecordImage.d.ts +20 -20
  145. package/dist_es/react/components/RecordImage.js +24 -24
  146. package/dist_es/react/components/charts/QRCode.d.ts +25 -25
  147. package/dist_es/react/components/charts/QRCode.js +52 -52
  148. package/dist_es/react/components/charts/line-bar/Chart.d.ts +166 -166
  149. package/dist_es/react/components/charts/line-bar/Chart.js +415 -415
  150. package/dist_es/react/components/charts/line-bar/HGridChart.d.ts +58 -58
  151. package/dist_es/react/components/charts/line-bar/HGridChart.js +250 -250
  152. package/dist_es/react/components/charts/line-bar/ZincGridChart.d.ts +12 -0
  153. package/dist_es/react/components/charts/line-bar/ZincGridChart.js +17 -0
  154. package/dist_es/react/components/charts/line-bar/ZincGridChart.js.map +1 -0
  155. package/dist_es/react/components/charts/pie/PieChart.d.ts +94 -94
  156. package/dist_es/react/components/charts/pie/PieChart.js +177 -177
  157. package/dist_es/react/components/charts/pie/SimplePieChart.d.ts +21 -21
  158. package/dist_es/react/components/charts/pie/SimplePieChart.js +25 -25
  159. package/dist_es/react/components/graphics/GraphicViewer.d.ts +10 -10
  160. package/dist_es/react/components/graphics/GraphicViewer.js +22 -22
  161. package/dist_es/react/components/graphics/GraphicViewer.jsx +23 -0
  162. package/dist_es/react/components/graphics/GraphicViewer.jsx.map +1 -0
  163. package/dist_es/react/components/graphics/GraphicsTabViewer.d.ts +17 -17
  164. package/dist_es/react/components/graphics/GraphicsTabViewer.js +60 -60
  165. package/dist_es/react/components/graphics/GraphicsTabViewer.jsx +63 -0
  166. package/dist_es/react/components/graphics/GraphicsTabViewer.jsx.map +1 -0
  167. package/dist_es/react/components/makeCustomElement.d.ts +16 -16
  168. package/dist_es/react/components/makeCustomElement.js +142 -142
  169. package/dist_es/react/components/navigation/BasicLayout.d.ts +41 -41
  170. package/dist_es/react/components/navigation/BasicLayout.js +124 -124
  171. package/dist_es/react/components/navigation/BasicLayout.jsx +133 -0
  172. package/dist_es/react/components/navigation/BasicLayout.jsx.map +1 -0
  173. package/dist_es/react/components/navigation/HeaderSiderLayout.d.ts +13 -13
  174. package/dist_es/react/components/navigation/HeaderSiderLayout.js +80 -80
  175. package/dist_es/react/components/navigation/MenuPage.d.ts +37 -37
  176. package/dist_es/react/components/navigation/MenuPage.js +30 -30
  177. package/dist_es/react/components/navigation/MenuPage.jsx +31 -0
  178. package/dist_es/react/components/navigation/MenuPage.jsx.map +1 -0
  179. package/dist_es/react/components/navigation/MenuTrigger.d.ts +9 -9
  180. package/dist_es/react/components/navigation/MenuTrigger.js +28 -28
  181. package/dist_es/react/components/navigation/ReactRouterHeaderSiderLayout.d.ts +11 -11
  182. package/dist_es/react/components/navigation/ReactRouterHeaderSiderLayout.js +18 -18
  183. package/dist_es/react/components/navigation/ReactRouterLayout.d.ts +46 -46
  184. package/dist_es/react/components/navigation/ReactRouterLayout.js +99 -99
  185. package/dist_es/react/components/navigation/Router.d.ts +12 -0
  186. package/dist_es/react/components/navigation/Router.js +19 -0
  187. package/dist_es/react/components/navigation/Router.js.map +1 -0
  188. package/dist_es/react/components/navigation/Router.jsx +19 -0
  189. package/dist_es/react/components/navigation/Router.jsx.map +1 -0
  190. package/dist_es/react/components/navigation/customRouting/Router.d.ts +12 -12
  191. package/dist_es/react/components/navigation/customRouting/Router.js +18 -18
  192. package/dist_es/react/components/navigation/customRouting/RouterLayout.d.ts +11 -11
  193. package/dist_es/react/components/navigation/customRouting/RouterLayout.js +34 -34
  194. package/dist_es/react/components/navigation/react-router/BasicLayout.d.ts +23 -0
  195. package/dist_es/react/components/navigation/react-router/BasicLayout.js +82 -0
  196. package/dist_es/react/components/navigation/react-router/BasicLayout.js.map +1 -0
  197. package/dist_es/react/components/navigation/react-router/ReactRouterBasicLayout.d.ts +24 -0
  198. package/dist_es/react/components/navigation/react-router/ReactRouterBasicLayout.js +82 -0
  199. package/dist_es/react/components/navigation/react-router/ReactRouterBasicLayout.js.map +1 -0
  200. package/dist_es/react/components/resolvable/configurationForm/ConfigurationForm.d.ts +27 -27
  201. package/dist_es/react/components/resolvable/configurationForm/ConfigurationForm.js +64 -64
  202. package/dist_es/react/components/resolvable/configurationForm/ConfigurationFormEntry.d.ts +16 -16
  203. package/dist_es/react/components/resolvable/configurationForm/ConfigurationFormEntry.js +58 -58
  204. package/dist_es/react/components/resolvable/configurationForm/getSectionDefault.d.ts +16 -16
  205. package/dist_es/react/components/resolvable/configurationForm/getSectionDefault.js +94 -94
  206. package/dist_es/react/hooks/useFin5BinUrl.d.ts +6 -6
  207. package/dist_es/react/hooks/useFin5BinUrl.js +11 -11
  208. package/dist_es/react/hooks/useFin5ColorScheme.d.ts +2 -2
  209. package/dist_es/react/hooks/useFin5ColorScheme.js +45 -45
  210. package/dist_es/react/hooks/useScreenSize.d.ts +7 -7
  211. package/dist_es/react/hooks/useScreenSize.js +27 -27
  212. package/package.json +1 -1
@@ -1,156 +1,156 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2023, J2 Innovations. All Rights Reserved
4
- */
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
- Object.defineProperty(o, "default", { enumerable: true, value: v });
18
- }) : function(o, v) {
19
- o["default"] = v;
20
- });
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
- __setModuleDefault(result, mod);
26
- return result;
27
- };
28
- var __importDefault = (this && this.__importDefault) || function (mod) {
29
- return (mod && mod.__esModule) ? mod : { "default": mod };
30
- };
31
- Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.BasicLayout = exports.DEFAULT_HEADER_HEIGHT = exports.getMenuPages = void 0;
33
- const icons_1 = require("@ant-design/icons");
34
- const ui_1 = require("@j2inn/ui");
35
- const classnames_1 = __importDefault(require("classnames"));
36
- const react_1 = __importStar(require("react"));
37
- const react_jss_1 = require("react-jss");
38
- const MenuTrigger_1 = __importDefault(require("./MenuTrigger"));
39
- const useStyles = (0, react_jss_1.createUseStyles)({
40
- header: ({ headerHeight }) => ({
41
- position: 'fixed',
42
- width: '100%',
43
- zIndex: 1000,
44
- padding: 0,
45
- height: headerHeight,
46
- lineHeight: `${headerHeight}px`,
47
- }),
48
- sider: {
49
- overflow: 'auto',
50
- height: '100vh',
51
- position: 'fixed',
52
- left: 0,
53
- top: 0,
54
- bottom: 0,
55
- zIndex: 999,
56
- paddingTop: ({ isMobile, headerHeight }) => isMobile ? headerHeight : 0,
57
- [`& .${ui_1.ant_prefix}-layout-sider-children`]: {
58
- display: 'flex',
59
- flexDirection: 'column',
60
- },
61
- },
62
- compactSiderButton: {
63
- position: 'sticky',
64
- bottom: 0,
65
- width: '100%',
66
- textAlign: 'center',
67
- fontSize: '1.3rem',
68
- padding: '0.5rem',
69
- cursor: 'pointer',
70
- transition: '0.3s',
71
- },
72
- compactSiderButtonItem: {
73
- transition: '0.3s',
74
- },
75
- compactSiderButtonItemCollapsed: {
76
- transform: ' rotate(180deg)',
77
- },
78
- content: ({ isMobile, compactSider, siderWidth = 200, headerHeight, }) => ({
79
- paddingLeft: isMobile ? 0 : compactSider ? 45 : siderWidth,
80
- paddingTop: isMobile ? headerHeight : 0,
81
- }),
82
- });
83
- // Workaround j2inn/ui exporting problem
84
- const Header = ui_1.Layout.Header;
85
- const Sider = ui_1.Layout.Sider;
86
- const Content = ui_1.Layout.Content;
87
- /**
88
- * Copy the array and recursively remove pages having the `showInMenu` flag set to false.
89
- * @param pages
90
- * @returns
91
- */
92
- const getMenuPages = (pages) => {
93
- const menuPages = [];
94
- pages.forEach((page) => {
95
- const show = page.showInMenu == null || page.showInMenu;
96
- if (show) {
97
- const copiedPage = Object.assign({}, page);
98
- if (copiedPage.children) {
99
- const filteredChildren = (0, exports.getMenuPages)(copiedPage.children);
100
- copiedPage.children = filteredChildren.length
101
- ? filteredChildren
102
- : undefined;
103
- }
104
- menuPages.push(copiedPage);
105
- }
106
- });
107
- return menuPages;
108
- };
109
- exports.getMenuPages = getMenuPages;
110
- exports.DEFAULT_HEADER_HEIGHT = 45;
111
- /**
112
- * Basic layout with sider and mobile navigation management.
113
- * Routing management can be plugged in, for examples @see ReactRouterLayout @see RouterLayout
114
- */
115
- function BasicLayout({ pages = [], defaultPage, selectedPages = [], onSelect, compactSider, layoutProps, mobileHeaderProps, siderProps, contentProps, menuProps, menuBefore, menuAfter, menuTriggerClassName, headerHeight = exports.DEFAULT_HEADER_HEIGHT, children, }) {
116
- // manage mobile navigation
117
- const [isMobile, setIsMobile] = (0, react_1.useState)(false);
118
- const [isSiderCompact, setIsSiderCompact] = (0, react_1.useState)(compactSider?.isCompact ?? false);
119
- const [hiddenSider, setHiddenSider] = (0, react_1.useState)(false);
120
- const siderWidth = siderProps?.width;
121
- const classes = useStyles({
122
- isMobile,
123
- compactSider: isSiderCompact,
124
- siderWidth,
125
- headerHeight,
126
- });
127
- const menuPages = (0, react_1.useMemo)(() => (0, exports.getMenuPages)(pages), [pages]);
128
- return (react_1.default.createElement(ui_1.Layout, { hasSider: true, ...layoutProps },
129
- isMobile && (react_1.default.createElement(Header, { ...mobileHeaderProps, className: (0, classnames_1.default)(classes.header, mobileHeaderProps?.className) },
130
- react_1.default.createElement(MenuTrigger_1.default, { hiddenSider: hiddenSider, headerHeight: headerHeight, className: menuTriggerClassName, onClick: () => {
131
- setHiddenSider(!hiddenSider);
132
- } }))),
133
- react_1.default.createElement(Sider, { ...siderProps, className: (0, classnames_1.default)(classes.sider, siderProps?.className), breakpoint: 'md', onBreakpoint: (broken) => {
134
- setIsMobile(broken);
135
- setHiddenSider(true);
136
- }, collapsed: (isMobile && hiddenSider) || isSiderCompact, collapsedWidth: isMobile && hiddenSider
137
- ? 0
138
- : isSiderCompact
139
- ? headerHeight
140
- : 0, trigger: null },
141
- menuBefore,
142
- react_1.default.createElement(ui_1.Menu, { style: { flex: 1 }, ...menuProps, defaultSelectedKeys: defaultPage ? [defaultPage] : undefined, items: menuPages, selectedKeys: selectedPages, onSelect: ({ key }) => {
143
- if (!hiddenSider) {
144
- setHiddenSider(true);
145
- }
146
- onSelect?.(key);
147
- } }),
148
- menuAfter,
149
- compactSider?.showButton && !isMobile && (react_1.default.createElement("div", { className: (0, classnames_1.default)(classes.compactSiderButton, compactSider.buttonClassName), onClick: () => setIsSiderCompact(!isSiderCompact) },
150
- react_1.default.createElement(icons_1.LeftOutlined, { className: (0, classnames_1.default)(classes.compactSiderButtonItem, {
151
- [classes.compactSiderButtonItemCollapsed]: isSiderCompact,
152
- }) })))),
153
- react_1.default.createElement(Content, { ...contentProps, className: (0, classnames_1.default)(classes.content, contentProps?.className) }, children)));
154
- }
155
- exports.BasicLayout = BasicLayout;
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2023, J2 Innovations. All Rights Reserved
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ var __importDefault = (this && this.__importDefault) || function (mod) {
29
+ return (mod && mod.__esModule) ? mod : { "default": mod };
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.BasicLayout = exports.DEFAULT_HEADER_HEIGHT = exports.getMenuPages = void 0;
33
+ const icons_1 = require("@ant-design/icons");
34
+ const ui_1 = require("@j2inn/ui");
35
+ const classnames_1 = __importDefault(require("classnames"));
36
+ const react_1 = __importStar(require("react"));
37
+ const react_jss_1 = require("react-jss");
38
+ const MenuTrigger_1 = __importDefault(require("./MenuTrigger"));
39
+ const useStyles = (0, react_jss_1.createUseStyles)({
40
+ header: ({ headerHeight }) => ({
41
+ position: 'fixed',
42
+ width: '100%',
43
+ zIndex: 1000,
44
+ padding: 0,
45
+ height: headerHeight,
46
+ lineHeight: `${headerHeight}px`,
47
+ }),
48
+ sider: {
49
+ overflow: 'auto',
50
+ height: '100vh',
51
+ position: 'fixed',
52
+ left: 0,
53
+ top: 0,
54
+ bottom: 0,
55
+ zIndex: 999,
56
+ paddingTop: ({ isMobile, headerHeight }) => isMobile ? headerHeight : 0,
57
+ [`& .${ui_1.ant_prefix}-layout-sider-children`]: {
58
+ display: 'flex',
59
+ flexDirection: 'column',
60
+ },
61
+ },
62
+ compactSiderButton: {
63
+ position: 'sticky',
64
+ bottom: 0,
65
+ width: '100%',
66
+ textAlign: 'center',
67
+ fontSize: '1.3rem',
68
+ padding: '0.5rem',
69
+ cursor: 'pointer',
70
+ transition: '0.3s',
71
+ },
72
+ compactSiderButtonItem: {
73
+ transition: '0.3s',
74
+ },
75
+ compactSiderButtonItemCollapsed: {
76
+ transform: ' rotate(180deg)',
77
+ },
78
+ content: ({ isMobile, compactSider, siderWidth = 200, headerHeight, }) => ({
79
+ paddingLeft: isMobile ? 0 : compactSider ? 45 : siderWidth,
80
+ paddingTop: isMobile ? headerHeight : 0,
81
+ }),
82
+ });
83
+ // Workaround j2inn/ui exporting problem
84
+ const Header = ui_1.Layout.Header;
85
+ const Sider = ui_1.Layout.Sider;
86
+ const Content = ui_1.Layout.Content;
87
+ /**
88
+ * Copy the array and recursively remove pages having the `showInMenu` flag set to false.
89
+ * @param pages
90
+ * @returns
91
+ */
92
+ const getMenuPages = (pages) => {
93
+ const menuPages = [];
94
+ pages.forEach((page) => {
95
+ const show = page.showInMenu == null || page.showInMenu;
96
+ if (show) {
97
+ const copiedPage = Object.assign({}, page);
98
+ if (copiedPage.children) {
99
+ const filteredChildren = (0, exports.getMenuPages)(copiedPage.children);
100
+ copiedPage.children = filteredChildren.length
101
+ ? filteredChildren
102
+ : undefined;
103
+ }
104
+ menuPages.push(copiedPage);
105
+ }
106
+ });
107
+ return menuPages;
108
+ };
109
+ exports.getMenuPages = getMenuPages;
110
+ exports.DEFAULT_HEADER_HEIGHT = 45;
111
+ /**
112
+ * Basic layout with sider and mobile navigation management.
113
+ * Routing management can be plugged in, for examples @see ReactRouterLayout @see RouterLayout
114
+ */
115
+ function BasicLayout({ pages = [], defaultPage, selectedPages = [], onSelect, compactSider, layoutProps, mobileHeaderProps, siderProps, contentProps, menuProps, menuBefore, menuAfter, menuTriggerClassName, headerHeight = exports.DEFAULT_HEADER_HEIGHT, children, }) {
116
+ // manage mobile navigation
117
+ const [isMobile, setIsMobile] = (0, react_1.useState)(false);
118
+ const [isSiderCompact, setIsSiderCompact] = (0, react_1.useState)(compactSider?.isCompact ?? false);
119
+ const [hiddenSider, setHiddenSider] = (0, react_1.useState)(false);
120
+ const siderWidth = siderProps?.width;
121
+ const classes = useStyles({
122
+ isMobile,
123
+ compactSider: isSiderCompact,
124
+ siderWidth,
125
+ headerHeight,
126
+ });
127
+ const menuPages = (0, react_1.useMemo)(() => (0, exports.getMenuPages)(pages), [pages]);
128
+ return (react_1.default.createElement(ui_1.Layout, { hasSider: true, ...layoutProps },
129
+ isMobile && (react_1.default.createElement(Header, { ...mobileHeaderProps, className: (0, classnames_1.default)(classes.header, mobileHeaderProps?.className) },
130
+ react_1.default.createElement(MenuTrigger_1.default, { hiddenSider: hiddenSider, headerHeight: headerHeight, className: menuTriggerClassName, onClick: () => {
131
+ setHiddenSider(!hiddenSider);
132
+ } }))),
133
+ react_1.default.createElement(Sider, { ...siderProps, className: (0, classnames_1.default)(classes.sider, siderProps?.className), breakpoint: 'md', onBreakpoint: (broken) => {
134
+ setIsMobile(broken);
135
+ setHiddenSider(true);
136
+ }, collapsed: (isMobile && hiddenSider) || isSiderCompact, collapsedWidth: isMobile && hiddenSider
137
+ ? 0
138
+ : isSiderCompact
139
+ ? headerHeight
140
+ : 0, trigger: null },
141
+ menuBefore,
142
+ react_1.default.createElement(ui_1.Menu, { style: { flex: 1 }, ...menuProps, defaultSelectedKeys: defaultPage ? [defaultPage] : undefined, items: menuPages, selectedKeys: selectedPages, onSelect: ({ key }) => {
143
+ if (!hiddenSider) {
144
+ setHiddenSider(true);
145
+ }
146
+ onSelect?.(key);
147
+ } }),
148
+ menuAfter,
149
+ compactSider?.showButton && !isMobile && (react_1.default.createElement("div", { className: (0, classnames_1.default)(classes.compactSiderButton, compactSider.buttonClassName), onClick: () => setIsSiderCompact(!isSiderCompact) },
150
+ react_1.default.createElement(icons_1.LeftOutlined, { className: (0, classnames_1.default)(classes.compactSiderButtonItem, {
151
+ [classes.compactSiderButtonItemCollapsed]: isSiderCompact,
152
+ }) })))),
153
+ react_1.default.createElement(Content, { ...contentProps, className: (0, classnames_1.default)(classes.content, contentProps?.className) }, children)));
154
+ }
155
+ exports.BasicLayout = BasicLayout;
156
156
  //# sourceMappingURL=BasicLayout.js.map
@@ -1,13 +1,13 @@
1
- import { LayoutProps } from 'antd';
2
- import React, { ReactElement } from 'react';
3
- import { BasicLayoutProps } from './BasicLayout';
4
- import { MenuPage } from './MenuPage';
5
- export declare type HeaderSiderLayoutProps<T extends MenuPage> = Omit<BasicLayoutProps<T>, 'mobileHeaderProps'> & {
6
- header?: React.ReactNode;
7
- headerProps?: LayoutProps;
8
- };
9
- /**
10
- * Layout with header and sider. Sider is collapsed on mobile.
11
- * Routing management can be plugged in, for examples @see ReactRouterLayout @see RouterLayout
12
- */
13
- export declare function HeaderSiderLayout<T extends MenuPage>({ pages, defaultPage, selectedPages, onSelect, compactSider, layoutProps, header, headerProps, siderProps, contentProps, menuProps, menuBefore, menuAfter, menuTriggerClassName, headerHeight, children, }: HeaderSiderLayoutProps<T>): ReactElement;
1
+ import { LayoutProps } from 'antd';
2
+ import React, { ReactElement } from 'react';
3
+ import { BasicLayoutProps } from './BasicLayout';
4
+ import { MenuPage } from './MenuPage';
5
+ export declare type HeaderSiderLayoutProps<T extends MenuPage> = Omit<BasicLayoutProps<T>, 'mobileHeaderProps'> & {
6
+ header?: React.ReactNode;
7
+ headerProps?: LayoutProps;
8
+ };
9
+ /**
10
+ * Layout with header and sider. Sider is collapsed on mobile.
11
+ * Routing management can be plugged in, for examples @see ReactRouterLayout @see RouterLayout
12
+ */
13
+ export declare function HeaderSiderLayout<T extends MenuPage>({ pages, defaultPage, selectedPages, onSelect, compactSider, layoutProps, header, headerProps, siderProps, contentProps, menuProps, menuBefore, menuAfter, menuTriggerClassName, headerHeight, children, }: HeaderSiderLayoutProps<T>): ReactElement;
@@ -1,111 +1,111 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2024, J2 Innovations. All Rights Reserved
4
- */
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
- Object.defineProperty(o, "default", { enumerable: true, value: v });
18
- }) : function(o, v) {
19
- o["default"] = v;
20
- });
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
- __setModuleDefault(result, mod);
26
- return result;
27
- };
28
- var __importDefault = (this && this.__importDefault) || function (mod) {
29
- return (mod && mod.__esModule) ? mod : { "default": mod };
30
- };
31
- Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.HeaderSiderLayout = void 0;
33
- const ui_1 = require("@j2inn/ui");
34
- const classnames_1 = __importDefault(require("classnames"));
35
- const react_1 = __importStar(require("react"));
36
- const react_jss_1 = require("react-jss");
37
- const BasicLayout_1 = require("./BasicLayout");
38
- const MenuTrigger_1 = __importDefault(require("./MenuTrigger"));
39
- const useStyles = (0, react_jss_1.createUseStyles)({
40
- header: ({ headerHeight }) => ({
41
- position: 'fixed',
42
- width: '100%',
43
- zIndex: 1000,
44
- padding: 0,
45
- height: headerHeight,
46
- lineHeight: `${headerHeight}px`,
47
- }),
48
- headerContent: {
49
- height: '100%',
50
- },
51
- sider: ({ headerHeight }) => ({
52
- overflow: 'auto',
53
- height: '100vh',
54
- position: 'fixed',
55
- left: 0,
56
- top: 0,
57
- bottom: 0,
58
- zIndex: 999,
59
- paddingTop: headerHeight,
60
- }),
61
- content: ({ isMobile, compactSider, siderWidth = 200, headerHeight, }) => ({
62
- paddingLeft: isMobile ? 0 : compactSider ? 45 : siderWidth,
63
- paddingTop: headerHeight,
64
- }),
65
- });
66
- // Workaround j2inn/ui exporting problem
67
- const Header = ui_1.Layout.Header;
68
- const Sider = ui_1.Layout.Sider;
69
- const Content = ui_1.Layout.Content;
70
- /**
71
- * Layout with header and sider. Sider is collapsed on mobile.
72
- * Routing management can be plugged in, for examples @see ReactRouterLayout @see RouterLayout
73
- */
74
- function HeaderSiderLayout({ pages = [], defaultPage, selectedPages = [], onSelect, compactSider, layoutProps, header, headerProps, siderProps, contentProps, menuProps, menuBefore, menuAfter, menuTriggerClassName, headerHeight = BasicLayout_1.DEFAULT_HEADER_HEIGHT, children, }) {
75
- const [isMobile, setIsMobile] = (0, react_1.useState)(false);
76
- const [hiddenSider, setHiddenSider] = (0, react_1.useState)(false);
77
- const siderWidth = siderProps?.width;
78
- const classes = useStyles({
79
- isMobile,
80
- compactSider: compactSider?.isCompact,
81
- siderWidth,
82
- headerHeight,
83
- });
84
- const menuPages = (0, react_1.useMemo)(() => (0, BasicLayout_1.getMenuPages)(pages), [pages]);
85
- return (react_1.default.createElement(ui_1.Layout, { hasSider: true, ...layoutProps },
86
- react_1.default.createElement(Header, { ...headerProps, className: (0, classnames_1.default)(classes.header, headerProps?.className) },
87
- react_1.default.createElement(ui_1.Container, { horizontal: true, middle: true, className: classes.headerContent },
88
- isMobile && (react_1.default.createElement(MenuTrigger_1.default, { hiddenSider: hiddenSider, headerHeight: headerHeight, className: menuTriggerClassName, onClick: () => {
89
- setHiddenSider(!hiddenSider);
90
- } })),
91
- header)),
92
- react_1.default.createElement(Sider, { ...siderProps, className: (0, classnames_1.default)(classes.sider, siderProps?.className), breakpoint: 'md', onBreakpoint: (broken) => {
93
- setIsMobile(broken);
94
- setHiddenSider(true);
95
- }, collapsed: (isMobile && hiddenSider) || compactSider?.isCompact, collapsedWidth: isMobile && hiddenSider
96
- ? 0
97
- : compactSider
98
- ? headerHeight
99
- : 0, trigger: null },
100
- menuBefore,
101
- react_1.default.createElement(ui_1.Menu, { ...menuProps, defaultSelectedKeys: defaultPage ? [defaultPage] : undefined, items: menuPages, selectedKeys: selectedPages, onSelect: ({ key }) => {
102
- if (!hiddenSider) {
103
- setHiddenSider(true);
104
- }
105
- onSelect?.(key);
106
- } }),
107
- menuAfter),
108
- react_1.default.createElement(Content, { ...contentProps, className: (0, classnames_1.default)(classes.content, contentProps?.className) }, children)));
109
- }
110
- exports.HeaderSiderLayout = HeaderSiderLayout;
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2024, J2 Innovations. All Rights Reserved
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ var __importDefault = (this && this.__importDefault) || function (mod) {
29
+ return (mod && mod.__esModule) ? mod : { "default": mod };
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.HeaderSiderLayout = void 0;
33
+ const ui_1 = require("@j2inn/ui");
34
+ const classnames_1 = __importDefault(require("classnames"));
35
+ const react_1 = __importStar(require("react"));
36
+ const react_jss_1 = require("react-jss");
37
+ const BasicLayout_1 = require("./BasicLayout");
38
+ const MenuTrigger_1 = __importDefault(require("./MenuTrigger"));
39
+ const useStyles = (0, react_jss_1.createUseStyles)({
40
+ header: ({ headerHeight }) => ({
41
+ position: 'fixed',
42
+ width: '100%',
43
+ zIndex: 1000,
44
+ padding: 0,
45
+ height: headerHeight,
46
+ lineHeight: `${headerHeight}px`,
47
+ }),
48
+ headerContent: {
49
+ height: '100%',
50
+ },
51
+ sider: ({ headerHeight }) => ({
52
+ overflow: 'auto',
53
+ height: '100vh',
54
+ position: 'fixed',
55
+ left: 0,
56
+ top: 0,
57
+ bottom: 0,
58
+ zIndex: 999,
59
+ paddingTop: headerHeight,
60
+ }),
61
+ content: ({ isMobile, compactSider, siderWidth = 200, headerHeight, }) => ({
62
+ paddingLeft: isMobile ? 0 : compactSider ? 45 : siderWidth,
63
+ paddingTop: headerHeight,
64
+ }),
65
+ });
66
+ // Workaround j2inn/ui exporting problem
67
+ const Header = ui_1.Layout.Header;
68
+ const Sider = ui_1.Layout.Sider;
69
+ const Content = ui_1.Layout.Content;
70
+ /**
71
+ * Layout with header and sider. Sider is collapsed on mobile.
72
+ * Routing management can be plugged in, for examples @see ReactRouterLayout @see RouterLayout
73
+ */
74
+ function HeaderSiderLayout({ pages = [], defaultPage, selectedPages = [], onSelect, compactSider, layoutProps, header, headerProps, siderProps, contentProps, menuProps, menuBefore, menuAfter, menuTriggerClassName, headerHeight = BasicLayout_1.DEFAULT_HEADER_HEIGHT, children, }) {
75
+ const [isMobile, setIsMobile] = (0, react_1.useState)(false);
76
+ const [hiddenSider, setHiddenSider] = (0, react_1.useState)(false);
77
+ const siderWidth = siderProps?.width;
78
+ const classes = useStyles({
79
+ isMobile,
80
+ compactSider: compactSider?.isCompact,
81
+ siderWidth,
82
+ headerHeight,
83
+ });
84
+ const menuPages = (0, react_1.useMemo)(() => (0, BasicLayout_1.getMenuPages)(pages), [pages]);
85
+ return (react_1.default.createElement(ui_1.Layout, { hasSider: true, ...layoutProps },
86
+ react_1.default.createElement(Header, { ...headerProps, className: (0, classnames_1.default)(classes.header, headerProps?.className) },
87
+ react_1.default.createElement(ui_1.Container, { horizontal: true, middle: true, className: classes.headerContent },
88
+ isMobile && (react_1.default.createElement(MenuTrigger_1.default, { hiddenSider: hiddenSider, headerHeight: headerHeight, className: menuTriggerClassName, onClick: () => {
89
+ setHiddenSider(!hiddenSider);
90
+ } })),
91
+ header)),
92
+ react_1.default.createElement(Sider, { ...siderProps, className: (0, classnames_1.default)(classes.sider, siderProps?.className), breakpoint: 'md', onBreakpoint: (broken) => {
93
+ setIsMobile(broken);
94
+ setHiddenSider(true);
95
+ }, collapsed: (isMobile && hiddenSider) || compactSider?.isCompact, collapsedWidth: isMobile && hiddenSider
96
+ ? 0
97
+ : compactSider
98
+ ? headerHeight
99
+ : 0, trigger: null },
100
+ menuBefore,
101
+ react_1.default.createElement(ui_1.Menu, { ...menuProps, defaultSelectedKeys: defaultPage ? [defaultPage] : undefined, items: menuPages, selectedKeys: selectedPages, onSelect: ({ key }) => {
102
+ if (!hiddenSider) {
103
+ setHiddenSider(true);
104
+ }
105
+ onSelect?.(key);
106
+ } }),
107
+ menuAfter),
108
+ react_1.default.createElement(Content, { ...contentProps, className: (0, classnames_1.default)(classes.content, contentProps?.className) }, children)));
109
+ }
110
+ exports.HeaderSiderLayout = HeaderSiderLayout;
111
111
  //# sourceMappingURL=HeaderSiderLayout.js.map
@@ -1,37 +1,37 @@
1
- import { ItemType } from 'antd/lib/menu/hooks/useItems';
2
- import React, { PropsWithChildren } from 'react';
3
- /**
4
- * Menu page has both the data required by the menu and the data required to actually render the page.
5
- */
6
- export declare type MenuPage<T = Record<string, unknown>> = ItemType & Page<T>;
7
- /**
8
- * Menu Item that represents an application page
9
- */
10
- interface Page<T = Record<string, unknown>> {
11
- key: string;
12
- component?: React.LazyExoticComponent<React.FC<T>>;
13
- props?: PropsWithChildren<T>;
14
- children?: MenuPage<T>[];
15
- disabled?: boolean;
16
- /**
17
- * Set it to false to avoid showing the page in the menu. It is just used for routing purposes.
18
- */
19
- showInMenu?: boolean;
20
- }
21
- /**
22
- * Retrieve a specific page or subPage from a root page list
23
- * @param name the name of the searched page
24
- * @param pages the list of root pages
25
- */
26
- export declare function findPageByName<T extends MenuPage>(pages: T[], name?: string): T | undefined;
27
- /**
28
- * Expands the list of pages to include all the subpages
29
- */
30
- export declare function pageTreeToPageList<T extends MenuPage>(pages: T[]): T[];
31
- /**
32
- * Recursively get all the subPages of a root page
33
- * @param page root page
34
- * @returns the whole tree of subPages as a list
35
- */
36
- export declare function getAllSubPages<T extends MenuPage>(page: T): T[];
37
- export {};
1
+ import { ItemType } from 'antd/lib/menu/hooks/useItems';
2
+ import React, { PropsWithChildren } from 'react';
3
+ /**
4
+ * Menu page has both the data required by the menu and the data required to actually render the page.
5
+ */
6
+ export declare type MenuPage<T = Record<string, unknown>> = ItemType & Page<T>;
7
+ /**
8
+ * Menu Item that represents an application page
9
+ */
10
+ interface Page<T = Record<string, unknown>> {
11
+ key: string;
12
+ component?: React.LazyExoticComponent<React.FC<T>>;
13
+ props?: PropsWithChildren<T>;
14
+ children?: MenuPage<T>[];
15
+ disabled?: boolean;
16
+ /**
17
+ * Set it to false to avoid showing the page in the menu. It is just used for routing purposes.
18
+ */
19
+ showInMenu?: boolean;
20
+ }
21
+ /**
22
+ * Retrieve a specific page or subPage from a root page list
23
+ * @param name the name of the searched page
24
+ * @param pages the list of root pages
25
+ */
26
+ export declare function findPageByName<T extends MenuPage>(pages: T[], name?: string): T | undefined;
27
+ /**
28
+ * Expands the list of pages to include all the subpages
29
+ */
30
+ export declare function pageTreeToPageList<T extends MenuPage>(pages: T[]): T[];
31
+ /**
32
+ * Recursively get all the subPages of a root page
33
+ * @param page root page
34
+ * @returns the whole tree of subPages as a list
35
+ */
36
+ export declare function getAllSubPages<T extends MenuPage>(page: T): T[];
37
+ export {};