@j2inn/fin5-ui-utils 2.1.0 → 2.1.1-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.
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
- # What is fin5-ui-utils? #
2
- A set of useful client-side utilities useful for creating UI applications on top of the FIN 5 framework.
3
-
4
- ### How do I get set up? ###
5
- To install this package run `npm i @j2inn/fin5-ui-utils`
1
+ # What is fin5-ui-utils? #
2
+ A set of useful client-side utilities useful for creating UI applications on top of the FIN 5 framework.
3
+
4
+ ### How do I get set up? ###
5
+ To install this package run `npm i @j2inn/fin5-ui-utils`
@@ -13,6 +13,7 @@ export interface ReactRouterLayoutProps extends BasicLayoutProps<ReactRouterMenu
13
13
  * to ensure FIN5 URL is aligned with the internal frame URL.
14
14
  */
15
15
  export declare const useLocationUpdate: () => void;
16
+ export declare const useSelectedRoutes: (pages: ReactRouterMenuPage[], isSelectedRoute?: (page: ReactRouterMenuPage, location: Location) => boolean) => string[];
16
17
  /**
17
18
  * If we are inside a frame (FIN5), the route is left as is.
18
19
  * If we are outside FIN5 frame, the route needs to be prefixed with a segment containing the project name.
@@ -20,6 +21,12 @@ export declare const useLocationUpdate: () => void;
20
21
  * @returns the correct route for the environment
21
22
  */
22
23
  export declare const getRoute: (route: string) => string;
24
+ /**
25
+ * Create a map that holds the page key and its related route.
26
+ * @param pages
27
+ * @returns the map page key - route
28
+ */
29
+ export declare const useGetPageKeyRouteMap: (pages: ReactRouterMenuPage[]) => Map<string, string>;
23
30
  /**
24
31
  * Basic layout that uses React Router.
25
32
  */
@@ -26,7 +26,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
26
26
  return result;
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.ReactRouterLayout = exports.getRoute = exports.useLocationUpdate = void 0;
29
+ exports.ReactRouterLayout = exports.useGetPageKeyRouteMap = exports.getRoute = exports.useSelectedRoutes = exports.useLocationUpdate = void 0;
30
30
  const react_1 = __importStar(require("react"));
31
31
  const react_router_1 = require("react-router");
32
32
  const useFin5AppURLHashParameter_1 = require("../../../fin5Top/useFin5AppURLHashParameter");
@@ -63,6 +63,7 @@ const useSelectedRoutes = (pages, isSelectedRoute = (page, location) => location
63
63
  .map((page) => page.key);
64
64
  }, [location, flatPages, isSelectedRoute]);
65
65
  };
66
+ exports.useSelectedRoutes = useSelectedRoutes;
66
67
  /**
67
68
  * If we are inside a frame (FIN5), the route is left as is.
68
69
  * If we are outside FIN5 frame, the route needs to be prefixed with a segment containing the project name.
@@ -74,20 +75,27 @@ const getRoute = (route) => {
74
75
  return !useFin5AppURLHashParameter_1.IN_IFRAME ? `/proj/:projectName${prefixedRoute}` : prefixedRoute;
75
76
  };
76
77
  exports.getRoute = getRoute;
78
+ /**
79
+ * Create a map that holds the page key and its related route.
80
+ * @param pages
81
+ * @returns the map page key - route
82
+ */
83
+ const useGetPageKeyRouteMap = (pages) => (0, react_1.useMemo)(() => {
84
+ const flatPages = (0, MenuPage_1.pageTreeToPageList)(pages);
85
+ const result = new Map();
86
+ flatPages.forEach((page) => {
87
+ result.set(page.key, page.route);
88
+ });
89
+ return result;
90
+ }, [pages]);
91
+ exports.useGetPageKeyRouteMap = useGetPageKeyRouteMap;
77
92
  /**
78
93
  * Basic layout that uses React Router.
79
94
  */
80
95
  const ReactRouterLayout = ({ isSelectedRoute, pages = [], onSelect, ...otherProps }) => {
81
96
  const navigate = (0, react_router_1.useNavigate)();
82
- const selectedRoutes = useSelectedRoutes(pages, isSelectedRoute);
83
- const pageKeyRouteMap = (0, react_1.useMemo)(() => {
84
- const flatPages = (0, MenuPage_1.pageTreeToPageList)(pages);
85
- const result = new Map();
86
- flatPages.forEach((page) => {
87
- result.set(page.key, page.route);
88
- });
89
- return result;
90
- }, [pages]);
97
+ const selectedRoutes = (0, exports.useSelectedRoutes)(pages, isSelectedRoute);
98
+ const pageKeyRouteMap = (0, exports.useGetPageKeyRouteMap)(pages);
91
99
  const defaultOnSelect = (0, react_1.useCallback)((key) => {
92
100
  const route = pageKeyRouteMap.get(key);
93
101
  if (route) {
@@ -1 +1 @@
1
- {"version":3,"file":"ReactRouterLayout.js","sourceRoot":"","sources":["../../../../src/react/components/navigation/ReactRouterLayout.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReactRouterLayout.js","sourceRoot":"","sources":["../../../../src/react/components/navigation/ReactRouterLayout.tsx"],"names":[],"mappings":"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"}
@@ -22,8 +22,15 @@ const useStyles = createUseStyles({
22
22
  },
23
23
  },
24
24
  },
25
+ fallback: {
26
+ height: '100%',
27
+ display: 'flex',
28
+ justifyContent: 'center',
29
+ alignItems: 'center',
30
+ fontSize: '1.1em',
31
+ },
25
32
  });
26
- export const GraphicsTabViewer = ({ projectName = fin5Top?.finstack?.projectName, targetRef, className, }) => {
33
+ export const GraphicsTabViewer = ({ projectName = fin5Top?.finstack?.projectName, targetRef, className, queryRelated = false, fallbackText = 'No graphics found.', fallbackClassName, }) => {
27
34
  const client = useClient();
28
35
  const classes = useStyles();
29
36
  const [loading, setLoading] = useState(true);
@@ -31,7 +38,7 @@ export const GraphicsTabViewer = ({ projectName = fin5Top?.finstack?.projectName
31
38
  useEffect(() => {
32
39
  if (targetRef) {
33
40
  client.ext
34
- .eval(`readById(${targetRef.toAxon()}).finGraphicOn(true)`)
41
+ .eval(`readById(${targetRef.toAxon()}).finGraphicOn(${queryRelated})`)
35
42
  .then((grid) => {
36
43
  setGraphicsList(grid.getRows());
37
44
  })
@@ -49,6 +56,8 @@ export const GraphicsTabViewer = ({ projectName = fin5Top?.finstack?.projectName
49
56
  };
50
57
  });
51
58
  }, [graphicsList]);
52
- return loading ? (<LoadingSpinner />) : (<Tabs className={cn(classes.tabs, className)} items={tabs}/>);
59
+ return loading ? (<LoadingSpinner />) : tabs.length > 0 ? (<Tabs className={cn(classes.tabs, className)} items={tabs}/>) : (<div className={cn(classes.fallback, fallbackClassName)}>
60
+ {fallbackText}
61
+ </div>);
53
62
  };
54
63
  //# sourceMappingURL=GraphicsTabViewer.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"GraphicsTabViewer.jsx","sourceRoot":"","sources":["../../../../src/react/components/graphics/GraphicsTabViewer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphicsTabViewer.jsx","sourceRoot":"","sources":["../../../../src/react/components/graphics/GraphicsTabViewer.tsx"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export interface ReactRouterLayoutProps extends BasicLayoutProps<ReactRouterMenu
13
13
  * to ensure FIN5 URL is aligned with the internal frame URL.
14
14
  */
15
15
  export declare const useLocationUpdate: () => void;
16
+ export declare const useSelectedRoutes: (pages: ReactRouterMenuPage[], isSelectedRoute?: (page: ReactRouterMenuPage, location: Location) => boolean) => string[];
16
17
  /**
17
18
  * If we are inside a frame (FIN5), the route is left as is.
18
19
  * If we are outside FIN5 frame, the route needs to be prefixed with a segment containing the project name.
@@ -20,6 +21,12 @@ export declare const useLocationUpdate: () => void;
20
21
  * @returns the correct route for the environment
21
22
  */
22
23
  export declare const getRoute: (route: string) => string;
24
+ /**
25
+ * Create a map that holds the page key and its related route.
26
+ * @param pages
27
+ * @returns the map page key - route
28
+ */
29
+ export declare const useGetPageKeyRouteMap: (pages: ReactRouterMenuPage[]) => Map<string, string>;
23
30
  /**
24
31
  * Basic layout that uses React Router.
25
32
  */
@@ -27,7 +27,7 @@ export const useLocationUpdate = () => {
27
27
  }
28
28
  }, [location]);
29
29
  };
30
- const useSelectedRoutes = (pages, isSelectedRoute = (page, location) => location.pathname.includes(page.route)) => {
30
+ export const useSelectedRoutes = (pages, isSelectedRoute = (page, location) => location.pathname.includes(page.route)) => {
31
31
  const location = useLocation();
32
32
  const flatPages = useMemo(() => pageTreeToPageList(pages), [pages]);
33
33
  return useMemo(() => {
@@ -46,20 +46,26 @@ export const getRoute = (route) => {
46
46
  const prefixedRoute = route.startsWith('/') ? route : `/${route}`;
47
47
  return !IN_IFRAME ? `/proj/:projectName${prefixedRoute}` : prefixedRoute;
48
48
  };
49
+ /**
50
+ * Create a map that holds the page key and its related route.
51
+ * @param pages
52
+ * @returns the map page key - route
53
+ */
54
+ export const useGetPageKeyRouteMap = (pages) => useMemo(() => {
55
+ const flatPages = pageTreeToPageList(pages);
56
+ const result = new Map();
57
+ flatPages.forEach((page) => {
58
+ result.set(page.key, page.route);
59
+ });
60
+ return result;
61
+ }, [pages]);
49
62
  /**
50
63
  * Basic layout that uses React Router.
51
64
  */
52
65
  export const ReactRouterLayout = ({ isSelectedRoute, pages = [], onSelect, ...otherProps }) => {
53
66
  const navigate = useNavigate();
54
67
  const selectedRoutes = useSelectedRoutes(pages, isSelectedRoute);
55
- const pageKeyRouteMap = useMemo(() => {
56
- const flatPages = pageTreeToPageList(pages);
57
- const result = new Map();
58
- flatPages.forEach((page) => {
59
- result.set(page.key, page.route);
60
- });
61
- return result;
62
- }, [pages]);
68
+ const pageKeyRouteMap = useGetPageKeyRouteMap(pages);
63
69
  const defaultOnSelect = useCallback((key) => {
64
70
  const route = pageKeyRouteMap.get(key);
65
71
  if (route) {
@@ -1 +1 @@
1
- {"version":3,"file":"ReactRouterLayout.js","sourceRoot":"","sources":["../../../../src/react/components/navigation/ReactRouterLayout.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReactRouterLayout.js","sourceRoot":"","sources":["../../../../src/react/components/navigation/ReactRouterLayout.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /*
2
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
+ */
4
+ import React, { Suspense, useEffect, useMemo, } from 'react';
5
+ import { LoadingSpinner } from '../LoadingSpinner';
6
+ import { findPageByName } from './MenuPage';
7
+ /**
8
+ * Renders the currently selected page from a tree of pages
9
+ */
10
+ export function Router({ pages = [], currentPage, onPageChange, fallbackComponent, }) {
11
+ const page = useMemo(() => findPageByName(pages, currentPage), [pages, currentPage]);
12
+ useEffect(() => {
13
+ onPageChange?.(page);
14
+ }, [page]);
15
+ return page?.component ? (React.createElement(Suspense, { fallback: React.createElement(LoadingSpinner, null) }, React.createElement(page.component, page?.props))) : (fallbackComponent ?? React.createElement("div", null,
16
+ currentPage,
17
+ " page not found"));
18
+ }
19
+ //# sourceMappingURL=Router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../../src/react/components/navigation/Router.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,EAGb,QAAQ,EACR,SAAS,EACT,OAAO,GACP,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAY,MAAM,YAAY,CAAA;AASrD;;GAEG;AACH,MAAM,UAAU,MAAM,CAAqB,EAC1C,KAAK,GAAG,EAAE,EACV,WAAW,EACX,YAAY,EACZ,iBAAiB,GACkB;IACnC,MAAM,IAAI,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,EACxC,CAAC,KAAK,EAAE,WAAW,CAAC,CACpB,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACd,YAAY,EAAE,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,OAAO,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CACxB,oBAAC,QAAQ,IAAC,QAAQ,EAAE,oBAAC,cAAc,OAAG,IACpC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CACvC,CACX,CAAC,CAAC,CAAC,CACH,iBAAiB,IAAI;QAAM,WAAW;0BAAsB,CAC5D,CAAA;AACF,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { Location } from '@remix-run/router';
2
+ import { LayoutProps, MenuProps, SiderProps } from 'antd';
3
+ import React from 'react';
4
+ import { MenuPage } from '../MenuPage';
5
+ export interface BasicLayoutProps {
6
+ pages?: MenuPage[];
7
+ compactSider?: boolean;
8
+ layoutProps?: LayoutProps;
9
+ mobileHeaderProps?: LayoutProps;
10
+ siderProps?: SiderProps;
11
+ contentProps?: LayoutProps;
12
+ menuProps?: Omit<MenuProps, 'items' | 'selectedKeys' | 'onSelect'>;
13
+ isSelectedRoute?: (page: MenuPage, location: Location) => boolean;
14
+ }
15
+ /**
16
+ * This hook can be used with react-router/BasicLayout,
17
+ * to ensure FIN5 URL is aligned with the internal frame URL.
18
+ */
19
+ export declare const useLocationUpdate: () => void;
20
+ /**
21
+ * Basic layout that uses React Router.
22
+ */
23
+ export declare const BasicLayout: React.FC<BasicLayoutProps>;
@@ -0,0 +1,82 @@
1
+ /*
2
+ * Copyright (c) 2023, J2 Innovations. All Rights Reserved
3
+ */
4
+ import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons';
5
+ import { Layout, Menu } from '@j2inn/ui';
6
+ import classNames from 'classnames';
7
+ import { IN_IFRAME, fin5SkipHashUpdate, getFin5HashFrameParameters, getTopLocation, } from 'fin5Top/useFin5AppURLHashParameter';
8
+ import React, { useEffect, useMemo, useState } from 'react';
9
+ import { Outlet, useLocation, useNavigate } from 'react-router';
10
+ import { HEADER_HEIGHT, getMenuPages, useStyles } from '../BasicLayout';
11
+ import { pageTreeToPageList } from '../MenuPage';
12
+ // Workaround j2inn/ui exporting problem
13
+ const Header = Layout.Header;
14
+ const Sider = Layout.Sider;
15
+ const Content = Layout.Content;
16
+ /**
17
+ * This hook can be used with react-router/BasicLayout,
18
+ * to ensure FIN5 URL is aligned with the internal frame URL.
19
+ */
20
+ export const useLocationUpdate = () => {
21
+ const location = useLocation();
22
+ useEffect(() => {
23
+ console.debug('Location changed', location);
24
+ const hash = location.pathname;
25
+ const queryParams = location.search;
26
+ if (IN_IFRAME) {
27
+ fin5SkipHashUpdate()?.then(() => {
28
+ const frameParameters = getFin5HashFrameParameters();
29
+ frameParameters.set('url', frameParameters.get('url')?.split('#')[0] +
30
+ '#' +
31
+ hash +
32
+ queryParams);
33
+ getTopLocation().hash = `#${getTopLocation().hash.slice(1).split('?')[0]}?${frameParameters.toString()}`;
34
+ });
35
+ }
36
+ }, [location]);
37
+ };
38
+ const useSelectedRoutes = (pages, isSelectedRoute = (page, location) => location.pathname.includes(`/${page.key}`)) => {
39
+ const location = useLocation();
40
+ return useMemo(() => {
41
+ const flatPages = pageTreeToPageList(pages);
42
+ return flatPages
43
+ .filter((page) => isSelectedRoute(page, location))
44
+ .map((page) => page.key);
45
+ }, [location, pages]);
46
+ };
47
+ /**
48
+ * Basic layout that uses React Router.
49
+ */
50
+ export const BasicLayout = ({ pages = [], compactSider, layoutProps, mobileHeaderProps, siderProps, contentProps, menuProps, isSelectedRoute, }) => {
51
+ const navigate = useNavigate();
52
+ const selectedRoutes = useSelectedRoutes(pages, isSelectedRoute);
53
+ // manage mobile navigation
54
+ const [isMobile, setIsMobile] = useState(false);
55
+ const [hiddenSider, setHiddenSider] = useState(false);
56
+ const siderWidth = siderProps?.width;
57
+ const classes = useStyles({ isMobile, compactSider, siderWidth });
58
+ const menuPages = useMemo(() => getMenuPages(pages), [pages]);
59
+ return (React.createElement(Layout, { hasSider: true, ...layoutProps },
60
+ isMobile && (React.createElement(Header, { ...mobileHeaderProps, className: classNames(classes.header, mobileHeaderProps?.className) }, hiddenSider ? (React.createElement(MenuUnfoldOutlined, { className: classes.menuTrigger, onClick: () => {
61
+ setHiddenSider(!hiddenSider);
62
+ } })) : (React.createElement(MenuFoldOutlined, { className: classes.menuTrigger, onClick: () => {
63
+ setHiddenSider(!hiddenSider);
64
+ } })))),
65
+ React.createElement(Sider, { ...siderProps, className: classNames(classes.sider, siderProps?.className), breakpoint: 'md', onBreakpoint: (broken) => {
66
+ setIsMobile(broken);
67
+ setHiddenSider(true);
68
+ }, collapsed: (isMobile && hiddenSider) || compactSider, collapsedWidth: isMobile && hiddenSider
69
+ ? 0
70
+ : compactSider
71
+ ? HEADER_HEIGHT
72
+ : 0, trigger: null },
73
+ React.createElement(Menu, { ...menuProps, items: menuPages, selectedKeys: selectedRoutes, onSelect: ({ key }) => {
74
+ if (!hiddenSider) {
75
+ setHiddenSider(true);
76
+ }
77
+ navigate(key);
78
+ } })),
79
+ React.createElement(Content, { ...contentProps, className: classNames(classes.content, contentProps?.className) },
80
+ React.createElement(Outlet, null))));
81
+ };
82
+ //# sourceMappingURL=BasicLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BasicLayout.js","sourceRoot":"","sources":["../../../../../src/react/components/navigation/react-router/BasicLayout.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EACN,SAAS,EACT,kBAAkB,EAClB,0BAA0B,EAC1B,cAAc,GACd,MAAM,oCAAoC,CAAA;AAC3C,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,EAAY,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAE1D,wCAAwC;AACxC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAiC,CAAA;AACvD,MAAM,KAAK,GAAG,MAAM,CAAC,KAA+B,CAAA;AACpD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAmC,CAAA;AAa1D;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACrC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,SAAS,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;QAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAA;QAC9B,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAA;QAEnC,IAAI,SAAS,EAAE;YACd,kBAAkB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;gBAC/B,MAAM,eAAe,GAAG,0BAA0B,EAAE,CAAA;gBAEpD,eAAe,CAAC,GAAG,CAClB,KAAK,EACL,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACxC,GAAG;oBACH,IAAI;oBACJ,WAAW,CACZ,CAAA;gBAED,cAAc,EAAE,CAAC,IAAI,GAAG,IACvB,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAC5C,IAAI,eAAe,CAAC,QAAQ,EAAE,EAAE,CAAA;YACjC,CAAC,CAAC,CAAA;SACF;IACF,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;AACf,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CACzB,KAAiB,EACjB,kBAAkB,CAAC,IAAc,EAAE,QAAkB,EAAE,EAAE,CACxD,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAC1C,EAAE;IACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE9B,OAAO,OAAO,CAAC,GAAG,EAAE;QACnB,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAC3C,OAAO,SAAS;aACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aACjD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;AACtB,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAA+B,CAAC,EACvD,KAAK,GAAG,EAAE,EACV,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,SAAS,EACT,eAAe,GACf,EAAE,EAAE;IACJ,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;IAChE,2BAA2B;IAC3B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrD,MAAM,UAAU,GAAG,UAAU,EAAE,KAAK,CAAA;IACpC,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAA;IAEjE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAE7D,OAAO,CACN,oBAAC,MAAM,IAAC,QAAQ,WAAK,WAAW;QAC9B,QAAQ,IAAI,CACZ,oBAAC,MAAM,OACF,iBAAiB,EACrB,SAAS,EAAE,UAAU,CACpB,OAAO,CAAC,MAAM,EACd,iBAAiB,EAAE,SAAS,CAC5B,IACA,WAAW,CAAC,CAAC,CAAC,CACd,oBAAC,kBAAkB,IAClB,SAAS,EAAE,OAAO,CAAC,WAAW,EAC9B,OAAO,EAAE,GAAG,EAAE;gBACb,cAAc,CAAC,CAAC,WAAW,CAAC,CAAA;YAC7B,CAAC,GACA,CACF,CAAC,CAAC,CAAC,CACH,oBAAC,gBAAgB,IAChB,SAAS,EAAE,OAAO,CAAC,WAAW,EAC9B,OAAO,EAAE,GAAG,EAAE;gBACb,cAAc,CAAC,CAAC,WAAW,CAAC,CAAA;YAC7B,CAAC,GACA,CACF,CACO,CACT;QACD,oBAAC,KAAK,OACD,UAAU,EACd,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,EAC3D,UAAU,EAAC,IAAI,EACf,YAAY,EAAE,CAAC,MAAe,EAAE,EAAE;gBACjC,WAAW,CAAC,MAAM,CAAC,CAAA;gBACnB,cAAc,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC,EACD,SAAS,EAAE,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,YAAY,EACpD,cAAc,EACb,QAAQ,IAAI,WAAW;gBACtB,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,CAAC,EAEL,OAAO,EAAE,IAAI;YACb,oBAAC,IAAI,OACA,SAAS,EACb,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE,cAAc,EAC5B,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;oBACrB,IAAI,CAAC,WAAW,EAAE;wBACjB,cAAc,CAAC,IAAI,CAAC,CAAA;qBACpB;oBACD,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACd,CAAC,GACA,CACK;QACR,oBAAC,OAAO,OACH,YAAY,EAChB,SAAS,EAAE,UAAU,CACpB,OAAO,CAAC,OAAO,EACf,YAAY,EAAE,SAAS,CACvB;YACD,oBAAC,MAAM,OAAG,CACD,CACF,CACT,CAAA;AACF,CAAC,CAAA"}
@@ -0,0 +1,24 @@
1
+ import type { Location } from '@remix-run/router';
2
+ import { LayoutProps, MenuProps, SiderProps } from 'antd';
3
+ import React from 'react';
4
+ import { MenuPage } from '../MenuPage';
5
+ export interface ReactRouterBasicLayoutProps {
6
+ pages?: MenuPage[];
7
+ defaultPage?: string;
8
+ compactSider?: boolean;
9
+ layoutProps?: LayoutProps;
10
+ mobileHeaderProps?: LayoutProps;
11
+ siderProps?: SiderProps;
12
+ contentProps?: LayoutProps;
13
+ menuProps?: Omit<MenuProps, 'items' | 'selectedKeys' | 'onSelect'>;
14
+ isSelectedRoute?: (page: MenuPage, location: Location) => boolean;
15
+ }
16
+ /**
17
+ * This hook can be used with react-router/BasicLayout,
18
+ * to ensure FIN5 URL is aligned with the internal frame URL.
19
+ */
20
+ export declare const useLocationUpdate: () => void;
21
+ /**
22
+ * Basic layout that uses React Router.
23
+ */
24
+ export declare const ReactRouterBasicLayout: React.FC<ReactRouterBasicLayoutProps>;
@@ -0,0 +1,82 @@
1
+ /*
2
+ * Copyright (c) 2023, J2 Innovations. All Rights Reserved
3
+ */
4
+ import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons';
5
+ import { Layout, Menu } from '@j2inn/ui';
6
+ import classNames from 'classnames';
7
+ import React, { useEffect, useMemo, useState } from 'react';
8
+ import { Outlet, useLocation, useNavigate } from 'react-router';
9
+ import { IN_IFRAME, fin5SkipHashUpdate, getFin5HashFrameParameters, getTopLocation, } from '../../../../fin5Top/useFin5AppURLHashParameter';
10
+ import { HEADER_HEIGHT, getMenuPages, useStyles } from '../BasicLayout';
11
+ import { pageTreeToPageList } from '../MenuPage';
12
+ // Workaround j2inn/ui exporting problem
13
+ const Header = Layout.Header;
14
+ const Sider = Layout.Sider;
15
+ const Content = Layout.Content;
16
+ /**
17
+ * This hook can be used with react-router/BasicLayout,
18
+ * to ensure FIN5 URL is aligned with the internal frame URL.
19
+ */
20
+ export const useLocationUpdate = () => {
21
+ const location = useLocation();
22
+ useEffect(() => {
23
+ console.debug('Location changed', location);
24
+ const hash = location.pathname;
25
+ const queryParams = location.search;
26
+ if (IN_IFRAME) {
27
+ fin5SkipHashUpdate()?.then(() => {
28
+ const frameParameters = getFin5HashFrameParameters();
29
+ frameParameters.set('url', frameParameters.get('url')?.split('#')[0] +
30
+ '#' +
31
+ hash +
32
+ queryParams);
33
+ getTopLocation().hash = `#${getTopLocation().hash.slice(1).split('?')[0]}?${frameParameters.toString()}`;
34
+ });
35
+ }
36
+ }, [location]);
37
+ };
38
+ const useSelectedRoutes = (pages, isSelectedRoute = (page, location) => location.pathname.includes(`/${page.key}`)) => {
39
+ const location = useLocation();
40
+ return useMemo(() => {
41
+ const flatPages = pageTreeToPageList(pages);
42
+ return flatPages
43
+ .filter((page) => isSelectedRoute(page, location))
44
+ .map((page) => page.key);
45
+ }, [location, pages]);
46
+ };
47
+ /**
48
+ * Basic layout that uses React Router.
49
+ */
50
+ export const ReactRouterBasicLayout = ({ pages = [], defaultPage, compactSider, layoutProps, mobileHeaderProps, siderProps, contentProps, menuProps, isSelectedRoute, }) => {
51
+ const navigate = useNavigate();
52
+ const selectedRoutes = useSelectedRoutes(pages, isSelectedRoute);
53
+ // manage mobile navigation
54
+ const [isMobile, setIsMobile] = useState(false);
55
+ const [hiddenSider, setHiddenSider] = useState(false);
56
+ const siderWidth = siderProps?.width;
57
+ const classes = useStyles({ isMobile, compactSider, siderWidth });
58
+ const menuPages = useMemo(() => getMenuPages(pages), [pages]);
59
+ return (React.createElement(Layout, { hasSider: true, ...layoutProps },
60
+ isMobile && (React.createElement(Header, { ...mobileHeaderProps, className: classNames(classes.header, mobileHeaderProps?.className) }, hiddenSider ? (React.createElement(MenuUnfoldOutlined, { className: classes.menuTrigger, onClick: () => {
61
+ setHiddenSider(!hiddenSider);
62
+ } })) : (React.createElement(MenuFoldOutlined, { className: classes.menuTrigger, onClick: () => {
63
+ setHiddenSider(!hiddenSider);
64
+ } })))),
65
+ React.createElement(Sider, { ...siderProps, className: classNames(classes.sider, siderProps?.className), breakpoint: 'md', onBreakpoint: (broken) => {
66
+ setIsMobile(broken);
67
+ setHiddenSider(true);
68
+ }, collapsed: (isMobile && hiddenSider) || compactSider, collapsedWidth: isMobile && hiddenSider
69
+ ? 0
70
+ : compactSider
71
+ ? HEADER_HEIGHT
72
+ : 0, trigger: null },
73
+ React.createElement(Menu, { ...menuProps, defaultSelectedKeys: defaultPage ? [defaultPage] : undefined, items: menuPages, selectedKeys: selectedRoutes, onSelect: ({ key }) => {
74
+ if (!hiddenSider) {
75
+ setHiddenSider(true);
76
+ }
77
+ navigate(key);
78
+ } })),
79
+ React.createElement(Content, { ...contentProps, className: classNames(classes.content, contentProps?.className) },
80
+ React.createElement(Outlet, null))));
81
+ };
82
+ //# sourceMappingURL=ReactRouterBasicLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactRouterBasicLayout.js","sourceRoot":"","sources":["../../../../../src/react/components/navigation/react-router/ReactRouterBasicLayout.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@j2inn/fin5-ui-utils",
3
- "version": "2.1.0",
3
+ "version": "2.1.1-beta.0",
4
4
  "description": "A set of useful client-side utilities useful for creating UI applications on top of FIN 5",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -123,4 +123,4 @@
123
123
  "eslint --fix"
124
124
  ]
125
125
  }
126
- }
126
+ }