@proteinjs/ui 4.1.0 → 4.1.1
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/dist/generated/index.js +1 -1
- package/dist/generated/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/container/PageContainer.d.ts +17 -3
- package/dist/src/container/PageContainer.d.ts.map +1 -1
- package/dist/src/container/PageContainer.js +9 -4
- package/dist/src/container/PageContainer.js.map +1 -1
- package/dist/src/formatters.d.ts +37 -0
- package/dist/src/formatters.d.ts.map +1 -0
- package/dist/src/formatters.js +54 -0
- package/dist/src/formatters.js.map +1 -0
- package/dist/src/router/Page.d.ts +0 -2
- package/dist/src/router/Page.d.ts.map +1 -1
- package/dist/src/router/Router.d.ts.map +1 -1
- package/dist/src/router/Router.js +3 -4
- package/dist/src/router/Router.js.map +1 -1
- package/dist/src/table/InfiniteScroll.d.ts.map +1 -1
- package/dist/src/table/InfiniteScroll.js +4 -7
- package/dist/src/table/InfiniteScroll.js.map +1 -1
- package/dist/src/table/Table.d.ts +10 -4
- package/dist/src/table/Table.d.ts.map +1 -1
- package/dist/src/table/Table.js +31 -17
- package/dist/src/table/Table.js.map +1 -1
- package/dist/src/table/tableData.d.ts +7 -3
- package/dist/src/table/tableData.d.ts.map +1 -1
- package/dist/src/table/tableData.js +10 -7
- package/dist/src/table/tableData.js.map +1 -1
- package/generated/index.ts +1 -1
- package/index.ts +2 -0
- package/package.json +5 -6
- package/src/container/PageContainer.tsx +34 -5
- package/src/formatters.ts +69 -0
- package/src/router/Page.ts +0 -1
- package/src/router/Router.tsx +4 -5
- package/src/table/InfiniteScroll.tsx +4 -6
- package/src/table/Table.tsx +66 -22
- package/src/table/tableData.ts +15 -7
- package/LICENSE +0 -21
package/dist/generated/index.js
CHANGED
|
@@ -33,7 +33,7 @@ require("react-router-dom");
|
|
|
33
33
|
require("string");
|
|
34
34
|
require("uuid");
|
|
35
35
|
/** Generate Source Graph */
|
|
36
|
-
var sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"@proteinjs/ui/Page\",\"value\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":\"/
|
|
36
|
+
var sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"@proteinjs/ui/Page\",\"value\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":\"/Users/brentbahry/repos/n3xa/packages/proteinjs/packages/ui/packages/ui/src/router/Page.ts\",\"qualifiedName\":\"@proteinjs/ui/Page\",\"properties\":[{\"name\":\"name\",\"type\":{\"packageName\":\"\",\"name\":\"string\",\"filePath\":null,\"qualifiedName\":\"/string\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"path\",\"type\":{\"packageName\":\"\",\"name\":\"string | string[]\",\"filePath\":null,\"qualifiedName\":\"/string | string[]\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"component\",\"type\":{\"packageName\":\"\",\"name\":\"React.ComponentType<PageComponentProps>\",\"filePath\":null,\"qualifiedName\":\"/React.ComponentType<PageComponentProps>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"noPageContainer\",\"type\":{\"packageName\":\"\",\"name\":\"boolean\",\"filePath\":null,\"qualifiedName\":\"/boolean\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"auth\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"{\\n /** If true, the user does not need to be logged in or have any roles to access this page. If blank, defaults to false. */\\n public?: boolean;\\n /** If true, the user does not need to have any roles to access this page, but must be logged in. If blank, defaults to false. */\\n allUsers?: boolean;\\n /** The user must be logged in and have these roles to access this page. If blank, defaults to requiring the 'admin' role. */\\n roles?: string[];\\n }\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/{\\n /** If true, the user does not need to be logged in or have any roles to access this page. If blank, defaults to false. */\\n public?: boolean;\\n /** If true, the user does not need to have any roles to access this page, but must be logged in. If blank, defaults to false. */\\n allUsers?: boolean;\\n /** The user must be logged in and have these roles to access this page. If blank, defaults to requiring the 'admin' role. */\\n roles?: string[];\\n }\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"pageContainerSxProps\",\"type\":{\"packageName\":\"\",\"name\":\"(theme: Theme) => SxProps\",\"filePath\":null,\"qualifiedName\":\"/(theme: Theme) => SxProps\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[],\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/reflection\",\"name\":\"Loadable\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/reflection/Loadable\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"sourceType\":3}},{\"v\":\"@proteinjs/reflection/Loadable\"},{\"v\":\"/React.FC\"},{\"v\":\"/string | React.ComponentType\"},{\"v\":\"/Partial\"},{\"v\":\"/React.Component\"},{\"v\":\"/(value: ColumnValue\"}],\"edges\":[{\"v\":\"@proteinjs/ui/Page\",\"w\":\"@proteinjs/reflection/Loadable\",\"value\":\"extends interface\"}]}";
|
|
37
37
|
/** Generate Source Links */
|
|
38
38
|
var sourceLinks = {};
|
|
39
39
|
/** Load Source Graph and Links */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../generated/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;AAEpC,0BAAwB;AACxB,2BAAyB;AACzB,+BAA6B;AAC7B,yBAAuB;AACvB,iCAA+B;AAC/B,2BAAyB;AACzB,mBAAiB;AACjB,kBAAgB;AAChB,wBAAsB;AACtB,iBAAe;AACf,qBAAmB;AACnB,2CAAyC;AACzC,uBAAqB;AACrB,wBAAsB;AACtB,4BAA0B;AAC1B,kBAAgB;AAChB,gBAAc;AAGd,4BAA4B;AAE5B,IAAM,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../generated/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;AAEpC,0BAAwB;AACxB,2BAAyB;AACzB,+BAA6B;AAC7B,yBAAuB;AACvB,iCAA+B;AAC/B,2BAAyB;AACzB,mBAAiB;AACjB,kBAAgB;AAChB,wBAAsB;AACtB,iBAAe;AACf,qBAAmB;AACnB,2CAAyC;AACzC,uBAAqB;AACrB,wBAAsB;AACtB,4BAA0B;AAC1B,kBAAgB;AAChB,gBAAc;AAGd,4BAA4B;AAE5B,IAAM,WAAW,GAAG,wgHAAwgH,CAAC;AAG7hH,4BAA4B;AAG5B,IAAM,WAAW,GAAG,EACnB,CAAC;AAGF,kCAAkC;AAElC,oDAAyD;AACzD,6BAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAGjD,2CAAyB"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAElC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AAExC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAElC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AAExC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -31,4 +31,5 @@ __exportStar(require("./src/table/TableButton"), exports);
|
|
|
31
31
|
__exportStar(require("./src/table/TableLoader"), exports);
|
|
32
32
|
__exportStar(require("./src/table/tableData"), exports);
|
|
33
33
|
__exportStar(require("./src/components/SearchInput"), exports);
|
|
34
|
+
__exportStar(require("./src/formatters"), exports);
|
|
34
35
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,0DAAwC;AACxC,oDAAkC;AAElC,kDAAgC;AAChC,mDAAiC;AACjC,wDAAsC;AAEtC,8DAA4C;AAE5C,iEAA+C;AAC/C,gEAA8C;AAE9C,gEAA8C;AAC9C,8DAA4C;AAC5C,0DAAwC;AAExC,oDAAkC;AAClC,0DAAwC;AACxC,0DAAwC;AACxC,wDAAsC;AAEtC,+DAA6C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,0DAAwC;AACxC,oDAAkC;AAElC,kDAAgC;AAChC,mDAAiC;AACjC,wDAAsC;AAEtC,8DAA4C;AAE5C,iEAA+C;AAC/C,gEAA8C;AAE9C,gEAA8C;AAC9C,8DAA4C;AAC5C,0DAAwC;AAExC,oDAAkC;AAClC,0DAAwC;AACxC,0DAAwC;AACxC,wDAAsC;AAEtC,+DAA6C;AAE7C,mDAAiC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { AppBarProps, ToolbarProps } from '@mui/material';
|
|
2
|
+
import { AppBarProps, ToolbarProps, Theme, SxProps } from '@mui/material';
|
|
3
3
|
import { NavigateFunction } from 'react-router-dom';
|
|
4
4
|
import { Page } from '../router/Page';
|
|
5
5
|
import { LinkOrDialog, NavMenuItem } from './NavMenu';
|
|
@@ -8,9 +8,24 @@ import { AccountAuth } from './AccountAuth';
|
|
|
8
8
|
interface AccountIconButtonWithNavigateProps extends AccountIconButtonProps {
|
|
9
9
|
navigate: NavigateFunction;
|
|
10
10
|
}
|
|
11
|
+
export interface CustomPageContainerProps {
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
pageContainerSxProps: ((theme: Theme) => SxProps) | undefined;
|
|
14
|
+
loginClicked: boolean;
|
|
15
|
+
setLoginClicked: React.Dispatch<React.SetStateAction<boolean>>;
|
|
16
|
+
auth?: {
|
|
17
|
+
isLoggedIn: boolean;
|
|
18
|
+
canViewPage: (page: Page) => boolean;
|
|
19
|
+
/** Either a dialog component, or a path to be redirected to */
|
|
20
|
+
login: LinkOrDialog;
|
|
21
|
+
logout: () => Promise<string>;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
11
24
|
export type PageContainerProps = {
|
|
12
25
|
page: Page;
|
|
13
26
|
auth?: AccountAuth;
|
|
27
|
+
/** Will be used to render the `Page` within as children */
|
|
28
|
+
CustomPageContainer?: React.ComponentType<CustomPageContainerProps>;
|
|
14
29
|
appName?: string;
|
|
15
30
|
toolbarChildren?: React.ReactNode;
|
|
16
31
|
/** An array of menu items, each containing a React node and an action triggered when selected, either a string, dialog component, or a function. */
|
|
@@ -24,10 +39,9 @@ export type PageContainerProps = {
|
|
|
24
39
|
CustomAccountIconButton?: React.ComponentType<AccountIconButtonWithNavigateProps>;
|
|
25
40
|
abovePageSlot?: React.ReactNode;
|
|
26
41
|
};
|
|
27
|
-
declare const Page: React.MemoExoticComponent<({ auth, page,
|
|
42
|
+
declare const Page: React.MemoExoticComponent<({ auth, page, loginClicked, setLoginClicked, }: {
|
|
28
43
|
auth: PageContainerProps['auth'];
|
|
29
44
|
page: PageContainerProps['page'];
|
|
30
|
-
navigate: NavigateFunction;
|
|
31
45
|
loginClicked: boolean;
|
|
32
46
|
setLoginClicked: (loginClicked: boolean) => void;
|
|
33
47
|
}) => React.JSX.Element | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageContainer.d.ts","sourceRoot":"","sources":["../../../src/container/PageContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAgD,WAAW,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"PageContainer.d.ts","sourceRoot":"","sources":["../../../src/container/PageContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAgD,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExH,OAAO,EAAE,gBAAgB,EAAe,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAW,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAqB,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,UAAU,kCAAmC,SAAQ,sBAAsB;IACzE,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,oBAAoB,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IAC9D,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,EAAE;QACL,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;QACrC,+DAA+D;QAC/D,KAAK,EAAE,YAAY,CAAC;QACpB,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,oJAAoJ;IACpJ,gBAAgB,CAAC,EAAE;QAAE,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC;QAAC,MAAM,CAAC,EAAE,YAAY,CAAA;KAAE,EAAE,CAAC;IAClF,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,uBAAuB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,kCAAkC,CAAC,CAAC;IAClF,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACjC,CAAC;AAEF,QAAA,MAAM,IAAI;UAOA,kBAAkB,CAAC,MAAM,CAAC;UAC1B,kBAAkB,CAAC,MAAM,CAAC;kBAClB,OAAO;oCACW,OAAO,KAAK,IAAI;+BAkBnD,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,qBA0GtD"}
|
|
@@ -29,9 +29,10 @@ function qualifiedPath(path) {
|
|
|
29
29
|
return "/".concat(path);
|
|
30
30
|
}
|
|
31
31
|
var Page = react_1.default.memo(function (_a) {
|
|
32
|
-
var auth = _a.auth, page = _a.page,
|
|
32
|
+
var auth = _a.auth, page = _a.page, loginClicked = _a.loginClicked, setLoginClicked = _a.setLoginClicked;
|
|
33
|
+
var navigate = (0, react_router_dom_1.useNavigate)();
|
|
33
34
|
if (auth === null || auth === void 0 ? void 0 : auth.canViewPage(page)) {
|
|
34
|
-
return react_1.default.createElement(page.component, { urlParams: (0, createUrlParams_1.createUrlParams)()
|
|
35
|
+
return react_1.default.createElement(page.component, { urlParams: (0, createUrlParams_1.createUrlParams)() });
|
|
35
36
|
}
|
|
36
37
|
if (!(auth === null || auth === void 0 ? void 0 : auth.isLoggedIn)) {
|
|
37
38
|
if (!loginClicked) {
|
|
@@ -44,7 +45,7 @@ var Page = react_1.default.memo(function (_a) {
|
|
|
44
45
|
});
|
|
45
46
|
function PageContainer(props) {
|
|
46
47
|
var navigate = (0, react_router_dom_1.useNavigate)();
|
|
47
|
-
var page = props.page, auth = props.auth, navMenuItems = props.navMenuItems, appName = props.appName, toolbarChildren = props.toolbarChildren, profileMenuItems = props.profileMenuItems, appBarProps = props.appBarProps, toolbarProps = props.toolbarProps, CustomAccountIconButton = props.CustomAccountIconButton, abovePageSlot = props.abovePageSlot;
|
|
48
|
+
var page = props.page, auth = props.auth, navMenuItems = props.navMenuItems, appName = props.appName, toolbarChildren = props.toolbarChildren, profileMenuItems = props.profileMenuItems, appBarProps = props.appBarProps, toolbarProps = props.toolbarProps, CustomAccountIconButton = props.CustomAccountIconButton, CustomPageContainer = props.CustomPageContainer, abovePageSlot = props.abovePageSlot;
|
|
48
49
|
var _a = react_1.default.useState(false), loginClicked = _a[0], setLoginClicked = _a[1];
|
|
49
50
|
var _b = react_1.default.useState(false), navMenuOpen = _b[0], setNavMenuOpen = _b[1];
|
|
50
51
|
react_1.default.useEffect(function () {
|
|
@@ -59,6 +60,10 @@ function PageContainer(props) {
|
|
|
59
60
|
}
|
|
60
61
|
}
|
|
61
62
|
}, [page]);
|
|
63
|
+
if (CustomPageContainer) {
|
|
64
|
+
return (react_1.default.createElement(CustomPageContainer, { loginClicked: loginClicked, setLoginClicked: setLoginClicked, auth: auth, pageContainerSxProps: page.pageContainerSxProps },
|
|
65
|
+
react_1.default.createElement(Page, { auth: auth, page: page, loginClicked: loginClicked, setLoginClicked: setLoginClicked })));
|
|
66
|
+
}
|
|
62
67
|
return (react_1.default.createElement(material_1.Box, { sx: function (theme) {
|
|
63
68
|
var defaultStyles = { minHeight: '100vh', backgroundColor: theme.palette.background.default };
|
|
64
69
|
if (!page.pageContainerSxProps) {
|
|
@@ -82,7 +87,7 @@ function PageContainer(props) {
|
|
|
82
87
|
CustomAccountIconButton ? (react_1.default.createElement(CustomAccountIconButton, { loginClicked: loginClicked, setLoginClicked: setLoginClicked, auth: auth, navigate: navigate })) : (react_1.default.createElement(AccountIconButton_1.AccountIconButton, __assign({ loginClicked: loginClicked, setLoginClicked: setLoginClicked, auth: auth }, (profileMenuItems ? { profileMenuItems: profileMenuItems } : {})))))),
|
|
83
88
|
navMenuItems && (react_1.default.createElement(NavMenu_1.NavMenu, { navMenuItems: navMenuItems, navMenuOpen: navMenuOpen, setNavMenuOpen: setNavMenuOpen })),
|
|
84
89
|
abovePageSlot,
|
|
85
|
-
react_1.default.createElement(Page, { auth: auth, page: page,
|
|
90
|
+
react_1.default.createElement(Page, { auth: auth, page: page, loginClicked: loginClicked, setLoginClicked: setLoginClicked })));
|
|
86
91
|
}
|
|
87
92
|
exports.PageContainer = PageContainer;
|
|
88
93
|
//# sourceMappingURL=PageContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageContainer.js","sourceRoot":"","sources":["../../../src/container/PageContainer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"PageContainer.js","sourceRoot":"","sources":["../../../src/container/PageContainer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,0CAAwH;AACxH,kEAAgD;AAChD,qDAAiE;AAEjE,6DAA4D;AAC5D,qCAA+D;AAC/D,yDAAgF;AAGhF,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACxB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,WAAI,IAAI,CAAE,CAAC;AACpB,CAAC;AAoCD,IAAM,IAAI,GAAG,eAAK,CAAC,IAAI,CACrB,UAAC,EAUA;QATC,IAAI,UAAA,EACJ,IAAI,UAAA,EACJ,YAAY,kBAAA,EACZ,eAAe,qBAAA;IAOf,IAAM,QAAQ,GAAG,IAAA,8BAAW,GAAE,CAAC;IAC/B,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC,IAAI,CAAC,EAAE;QAC3B,OAAO,8BAAC,IAAI,CAAC,SAAS,IAAC,SAAS,EAAE,IAAA,iCAAe,GAAE,GAAI,CAAC;KACzD;IAED,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAA,EAAE;QACrB,IAAI,CAAC,YAAY,EAAE;YACjB,eAAe,CAAC,IAAI,CAAC,CAAC;SACvB;QAED,OAAO,IAAI,CAAC;KACb;IAED,QAAQ,CAAC,GAAG,CAAC,CAAC;IACd,OAAO,IAAI,CAAC;AACd,CAAC,CACF,CAAC;AAEF,SAAgB,aAAa,CAAC,KAAyB;IACrD,IAAM,QAAQ,GAAG,IAAA,8BAAW,GAAE,CAAC;IAE7B,IAAA,IAAI,GAWF,KAAK,KAXH,EACJ,IAAI,GAUF,KAAK,KAVH,EACJ,YAAY,GASV,KAAK,aATK,EACZ,OAAO,GAQL,KAAK,QARA,EACP,eAAe,GAOb,KAAK,gBAPQ,EACf,gBAAgB,GAMd,KAAK,iBANS,EAChB,WAAW,GAKT,KAAK,YALI,EACX,YAAY,GAIV,KAAK,aAJK,EACZ,uBAAuB,GAGrB,KAAK,wBAHgB,EACvB,mBAAmB,GAEjB,KAAK,oBAFY,EACnB,aAAa,GACX,KAAK,cADM,CACL;IACJ,IAAA,KAAkC,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAtD,YAAY,QAAA,EAAE,eAAe,QAAyB,CAAC;IACxD,IAAA,KAAgC,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAApD,WAAW,QAAA,EAAE,cAAc,QAAyB,CAAC;IAE5D,eAAK,CAAC,SAAS,CAAC;QACd,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC,IAAI,CAAC,EAAE;YAC3B,OAAO;SACR;QAED,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAA,EAAE;YACrB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,IAAI,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAA,KAAK,QAAQ,EAAE;gBACnC,IAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpC,QAAQ,CAAC,CAAC,CAAC,CAAC;aACb;SACF;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,IAAI,mBAAmB,EAAE;QACvB,OAAO,CACL,8BAAC,mBAAmB,IAClB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,IAAI,EACV,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAE/C,8BAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,GAAI,CAC1E,CACvB,CAAC;KACH;IAED,OAAO,CACL,8BAAC,cAAG,IACF,EAAE,EAAE,UAAC,KAAK;YACR,IAAM,aAAa,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAChG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAC9B,OAAO,aAAa,CAAC;aACtB;YAED,IAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;YAE1F,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,8BAAC,iBAAM,aAAC,QAAQ,EAAC,QAAQ,IAAK,WAAW;YACvC,8BAAC,kBAAO,eAAK,YAAY;gBACtB,YAAY,IAAI,CACf,8BAAC,qBAAU,kBACE,MAAM,EACjB,OAAO,EAAE,cAAM,OAAA,cAAc,CAAC,CAAC,WAAW,CAAC,EAA5B,CAA4B,EAC3C,EAAE,EAAE,UAAC,KAAK,IAAK,OAAA,CAAC;wBACd,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC7B,SAAS,EAAE;4BACT,KAAK,EAAE,MAAM;yBACd;qBACF,CAAC,EALa,CAKb,EACF,KAAK,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE;oBAEzC,8BAAC,cAAQ,OAAG,CACD,CACd;gBACA,OAAO,IAAI,CACV,8BAAC,qBAAU,IAAC,OAAO,EAAC,IAAI,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAChE,OAAO,CACG,CACd;gBACA,eAAe;gBAChB,uCAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAQ;gBAClC,uBAAuB,CAAC,CAAC,CAAC,CACzB,8BAAC,uBAAuB,IACtB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC,CAAC,CAAC,CACF,8BAAC,qCAAiB,aAChB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,IAAI,IACN,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,kBAAA,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAClD,CACH,CACO,CACH;QACR,YAAY,IAAI,CACf,8BAAC,iBAAO,IAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,GAAI,CAClG;QACA,aAAa;QACd,8BAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,GAAI,CAC1F,CACP,CAAC;AACJ,CAAC;AA1GD,sCA0GC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration options for date formatting
|
|
3
|
+
*/
|
|
4
|
+
interface DateFormatterOptions {
|
|
5
|
+
/** Format for time on today's dates (default: 'h:mm A') */
|
|
6
|
+
todayFormat?: string;
|
|
7
|
+
/** Format for time on yesterday's dates (default: 'h:mm A') */
|
|
8
|
+
yesterdayFormat?: string;
|
|
9
|
+
/** Format for older dates (default: 'MMM D, YYYY') */
|
|
10
|
+
defaultFormat?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Valid input types for the date parameter
|
|
14
|
+
*/
|
|
15
|
+
type DateInput = Date | string | number;
|
|
16
|
+
/**
|
|
17
|
+
* Formats a date relative to now, showing "Today at HH:MM AM/PM",
|
|
18
|
+
* "Yesterday at HH:MM AM/PM", or "MMM D, YYYY"
|
|
19
|
+
*
|
|
20
|
+
* @param {Date|string|number} inputDate - The date to format (Date object, ISO string, or timestamp)
|
|
21
|
+
* @param {Object} options - Configuration options
|
|
22
|
+
* @param {string} options.todayFormat - Format for time on today's dates (default: 'h:mm A')
|
|
23
|
+
* @param {string} options.yesterdayFormat - Format for time on yesterday's dates (default: 'h:mm A')
|
|
24
|
+
* @param {string} options.defaultFormat - Format for older dates (default: 'MMM D, YYYY')
|
|
25
|
+
* @returns {string} The formatted date string
|
|
26
|
+
* @throws {Error} If inputDate is invalid
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* formatRelativeDate(new Date()) // "Today at 2:30 PM"
|
|
30
|
+
* formatRelativeDate('2024-10-28') // "Yesterday at 12:00 AM"
|
|
31
|
+
* formatRelativeDate('2024-10-27') // "Oct 27, 2024"
|
|
32
|
+
*/
|
|
33
|
+
export declare function formatRelativeDate(inputDate: DateInput, options?: DateFormatterOptions): string;
|
|
34
|
+
/** Capitalize the first character in a string. Returns empty string for invalid inputs. */
|
|
35
|
+
export declare const capitalizeFirst: (str?: string | null) => string;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=formatters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/formatters.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,UAAU,oBAAoB;IAC5B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,KAAK,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,oBAAyB,GAAG,MAAM,CAwBnG;AAED,2FAA2F;AAC3F,eAAO,MAAM,eAAe,SAAU,MAAM,GAAG,IAAI,KAAG,MAKrD,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.capitalizeFirst = exports.formatRelativeDate = void 0;
|
|
7
|
+
var moment_1 = __importDefault(require("moment"));
|
|
8
|
+
/**
|
|
9
|
+
* Formats a date relative to now, showing "Today at HH:MM AM/PM",
|
|
10
|
+
* "Yesterday at HH:MM AM/PM", or "MMM D, YYYY"
|
|
11
|
+
*
|
|
12
|
+
* @param {Date|string|number} inputDate - The date to format (Date object, ISO string, or timestamp)
|
|
13
|
+
* @param {Object} options - Configuration options
|
|
14
|
+
* @param {string} options.todayFormat - Format for time on today's dates (default: 'h:mm A')
|
|
15
|
+
* @param {string} options.yesterdayFormat - Format for time on yesterday's dates (default: 'h:mm A')
|
|
16
|
+
* @param {string} options.defaultFormat - Format for older dates (default: 'MMM D, YYYY')
|
|
17
|
+
* @returns {string} The formatted date string
|
|
18
|
+
* @throws {Error} If inputDate is invalid
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* formatRelativeDate(new Date()) // "Today at 2:30 PM"
|
|
22
|
+
* formatRelativeDate('2024-10-28') // "Yesterday at 12:00 AM"
|
|
23
|
+
* formatRelativeDate('2024-10-27') // "Oct 27, 2024"
|
|
24
|
+
*/
|
|
25
|
+
function formatRelativeDate(inputDate, options) {
|
|
26
|
+
if (options === void 0) { options = {}; }
|
|
27
|
+
// Set default options
|
|
28
|
+
var _a = options.todayFormat, todayFormat = _a === void 0 ? 'h:mm A' : _a, _b = options.yesterdayFormat, yesterdayFormat = _b === void 0 ? 'h:mm A' : _b, _c = options.defaultFormat, defaultFormat = _c === void 0 ? 'MMM D, YYYY' : _c; // Set default options
|
|
29
|
+
// Convert input to moment object
|
|
30
|
+
var date = (0, moment_1.default)(inputDate);
|
|
31
|
+
// Validate input
|
|
32
|
+
if (!date.isValid()) {
|
|
33
|
+
throw new Error('Invalid date provided');
|
|
34
|
+
}
|
|
35
|
+
var now = (0, moment_1.default)();
|
|
36
|
+
// Format based on relative time
|
|
37
|
+
if (date.isSame(now, 'day')) {
|
|
38
|
+
return "Today at ".concat(date.format(todayFormat));
|
|
39
|
+
}
|
|
40
|
+
if (date.isSame(now.clone().subtract(1, 'day'), 'day')) {
|
|
41
|
+
return "Yesterday at ".concat(date.format(yesterdayFormat));
|
|
42
|
+
}
|
|
43
|
+
return date.format(defaultFormat);
|
|
44
|
+
}
|
|
45
|
+
exports.formatRelativeDate = formatRelativeDate;
|
|
46
|
+
/** Capitalize the first character in a string. Returns empty string for invalid inputs. */
|
|
47
|
+
var capitalizeFirst = function (str) {
|
|
48
|
+
if (!str || typeof str !== 'string' || str.length === 0) {
|
|
49
|
+
return '';
|
|
50
|
+
}
|
|
51
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
52
|
+
};
|
|
53
|
+
exports.capitalizeFirst = capitalizeFirst;
|
|
54
|
+
//# sourceMappingURL=formatters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/formatters.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA4B;AAmB5B;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,kBAAkB,CAAC,SAAoB,EAAE,OAAkC;IAAlC,wBAAA,EAAA,YAAkC;IACzF,sBAAsB;IACd,IAAA,KAAsF,OAAO,YAAvE,EAAtB,WAAW,mBAAG,QAAQ,KAAA,EAAE,KAA8D,OAAO,gBAA3C,EAA1B,eAAe,mBAAG,QAAQ,KAAA,EAAE,KAAkC,OAAO,cAAZ,EAA7B,aAAa,mBAAG,aAAa,KAAA,CAAa,CAAC,sBAAsB;IAE7H,iCAAiC;IACjC,IAAM,IAAI,GAAG,IAAA,gBAAM,EAAC,SAAS,CAAC,CAAC;IAE/B,iBAAiB;IACjB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;KAC1C;IAED,IAAM,GAAG,GAAG,IAAA,gBAAM,GAAE,CAAC;IAErB,gCAAgC;IAChC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE;QAC3B,OAAO,mBAAY,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAE,CAAC;KAC/C;IAED,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE;QACtD,OAAO,uBAAgB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAE,CAAC;KACvD;IAED,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACpC,CAAC;AAxBD,gDAwBC;AAED,2FAA2F;AACpF,IAAM,eAAe,GAAG,UAAC,GAAmB;IACjD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACvD,OAAO,EAAE,CAAC;KACX;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC;AALW,QAAA,eAAe,mBAK1B"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SxProps, Theme } from '@mui/material';
|
|
3
3
|
import { Loadable } from '@proteinjs/reflection';
|
|
4
|
-
import { NavigateFunction } from 'react-router-dom';
|
|
5
4
|
export declare const getPages: () => Page[];
|
|
6
5
|
export type PageComponentProps = {
|
|
7
6
|
urlParams: {
|
|
8
7
|
[key: string]: string;
|
|
9
8
|
};
|
|
10
|
-
navigate: NavigateFunction;
|
|
11
9
|
};
|
|
12
10
|
export interface Page extends Loadable {
|
|
13
11
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/router/Page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAoB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/router/Page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAoB,MAAM,uBAAuB,CAAC;AAGnE,eAAO,MAAM,QAAQ,cAAmE,CAAC;AAEzF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACtC,CAAC;AAEF,MAAM,WAAW,IAAK,SAAQ,QAAQ;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACnD,8EAA8E;IAC9E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE;QACL,0HAA0H;QAC1H,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,iIAAiI;QACjI,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,6HAA6H;QAC7H,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;CAClD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../../src/router/Router.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,IAAI,EAAY,MAAM,QAAQ,CAAC;AAGxC,MAAM,MAAM,UAAU,GAAG;IACvB,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IACpD,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACpC,CAAC;AAEF,wBAAgB,OAAO,CAAC,OAAO,GAAE,UAAe,QAI/C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../../src/router/Router.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,IAAI,EAAY,MAAM,QAAQ,CAAC;AAGxC,MAAM,MAAM,UAAU,GAAG;IACvB,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IACpD,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACpC,CAAC;AAEF,wBAAgB,OAAO,CAAC,OAAO,GAAE,UAAe,QAI/C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,qBA6DnE"}
|
|
@@ -25,7 +25,6 @@ function Router(props) {
|
|
|
25
25
|
react_1.default.createElement(react_router_dom_1.BrowserRouter, null,
|
|
26
26
|
react_1.default.createElement(RoutesComponent, null))));
|
|
27
27
|
function RoutesComponent() {
|
|
28
|
-
var navigate = (0, react_router_dom_1.useNavigate)();
|
|
29
28
|
return (react_1.default.createElement(react_router_1.Routes, null,
|
|
30
29
|
(function () {
|
|
31
30
|
var routes = [];
|
|
@@ -33,13 +32,13 @@ function Router(props) {
|
|
|
33
32
|
for (var _i = 0, pages_1 = pages; _i < pages_1.length; _i++) {
|
|
34
33
|
var page = pages_1[_i];
|
|
35
34
|
if (typeof page.path === 'string') {
|
|
36
|
-
routes.push(react_1.default.createElement(react_router_1.Route, { key: key++, path: getPath(page.path), element: react_1.default.createElement(ContainerizedComponent, { options: options, page: page
|
|
35
|
+
routes.push(react_1.default.createElement(react_router_1.Route, { key: key++, path: getPath(page.path), element: react_1.default.createElement(ContainerizedComponent, { options: options, page: page }) }));
|
|
37
36
|
}
|
|
38
37
|
else {
|
|
39
38
|
var paths = page.path;
|
|
40
39
|
for (var _a = 0, paths_1 = paths; _a < paths_1.length; _a++) {
|
|
41
40
|
var path = paths_1[_a];
|
|
42
|
-
routes.push(react_1.default.createElement(react_router_1.Route, { key: key++, path: getPath(path), element: react_1.default.createElement(ContainerizedComponent, { options: options, page: page
|
|
41
|
+
routes.push(react_1.default.createElement(react_router_1.Route, { key: key++, path: getPath(path), element: react_1.default.createElement(ContainerizedComponent, { options: options, page: page }) }));
|
|
43
42
|
}
|
|
44
43
|
}
|
|
45
44
|
}
|
|
@@ -51,7 +50,7 @@ function Router(props) {
|
|
|
51
50
|
if (props.options.pageContainer && !props.page.noPageContainer) {
|
|
52
51
|
return react_1.default.createElement(props.options.pageContainer, { page: props.page });
|
|
53
52
|
}
|
|
54
|
-
return react_1.default.createElement(props.page.component, { urlParams: (0, createUrlParams_1.createUrlParams)()
|
|
53
|
+
return react_1.default.createElement(props.page.component, { urlParams: (0, createUrlParams_1.createUrlParams)() });
|
|
55
54
|
}
|
|
56
55
|
function PageNotFound(props) {
|
|
57
56
|
if (props.pageNotFound) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../src/router/Router.tsx"],"names":[],"mappings":";;;;;;AAAA,gDAA0B;AAC1B,6CAA6C;AAC7C,2CAA8C;AAC9C,qDAAgF;AAChF,0CAA4C;AAC5C,+BAAwC;AACxC,qDAAoD;AAOpD,SAAgB,OAAO,CAAC,OAAwB;IAAxB,wBAAA,EAAA,YAAwB;IAC9C,IAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACjD,IAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,SAAU,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,8BAAC,MAAM,IAAC,KAAK,EAAE,IAAA,eAAQ,GAAE,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC,CAAC;AAC/D,CAAC;AAJD,0BAIC;AAED,SAAgB,MAAM,CAAC,KAA6C;IAC1D,IAAA,KAAK,GAAc,KAAK,MAAnB,EAAE,OAAO,GAAK,KAAK,QAAV,CAAW;IACjC,OAAO,CACL;QACE,8BAAC,sBAAW,OAAG;QACf,8BAAC,gCAAa;YACZ,8BAAC,eAAe,OAAG,CACL,CACZ,CACP,CAAC;IAEF,SAAS,eAAe;QACtB,
|
|
1
|
+
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../src/router/Router.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfiniteScroll.d.ts","sourceRoot":"","sources":["../../../src/table/InfiniteScroll.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAgC,EAAE,KAAK,IAAI,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAEjH,UAAU,mBAAoB,SAAQ,4BAA4B;IAChE,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"InfiniteScroll.d.ts","sourceRoot":"","sources":["../../../src/table/InfiniteScroll.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAgC,EAAE,KAAK,IAAI,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAEjH,UAAU,mBAAoB,SAAQ,4BAA4B;IAChE,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA2DxD,CAAC"}
|
|
@@ -58,18 +58,15 @@ var InfiniteScroll = function (_a) {
|
|
|
58
58
|
var containerRef = (0, react_1.useRef)(null);
|
|
59
59
|
(0, react_1.useEffect)(function () {
|
|
60
60
|
var getScrollableTarget = function () {
|
|
61
|
-
if (
|
|
62
|
-
return document.getElementById(scrollableTarget);
|
|
63
|
-
}
|
|
64
|
-
else if (scrollableTarget instanceof HTMLElement) {
|
|
61
|
+
if (scrollableTarget instanceof HTMLElement) {
|
|
65
62
|
return scrollableTarget;
|
|
66
63
|
}
|
|
67
64
|
return null;
|
|
68
65
|
};
|
|
69
66
|
var options = {
|
|
70
67
|
root: getScrollableTarget(),
|
|
71
|
-
rootMargin: '
|
|
72
|
-
threshold: 0
|
|
68
|
+
rootMargin: '100px 0px',
|
|
69
|
+
threshold: 0,
|
|
73
70
|
};
|
|
74
71
|
var observer = new IntersectionObserver(function (entries) {
|
|
75
72
|
var entry = entries[0];
|
|
@@ -89,7 +86,7 @@ var InfiniteScroll = function (_a) {
|
|
|
89
86
|
return (react_1.default.createElement(material_1.Box, { ref: containerRef, sx: sx },
|
|
90
87
|
react_1.default.createElement(react_infinite_scroll_component_1.default, __assign({ next: next, hasMore: hasMore, scrollableTarget: scrollableTarget }, otherProps), children),
|
|
91
88
|
hasMore && (react_1.default.createElement(material_1.Box, { ref: observerTarget, sx: {
|
|
92
|
-
height: '
|
|
89
|
+
height: '48px',
|
|
93
90
|
visibility: 'hidden',
|
|
94
91
|
} }))));
|
|
95
92
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfiniteScroll.js","sourceRoot":"","sources":["../../../src/table/InfiniteScroll.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA8C;AAC9C,6CAAiD;AACjD,oGAAiH;AAM1G,IAAM,cAAc,GAAkC,UAAC,EAO7D;IANC,IAAA,QAAQ,cAAA,EACR,IAAI,UAAA,EACJ,OAAO,aAAA,EACP,gBAAgB,sBAAA,EAChB,EAAE,QAAA,EACC,UAAU,cAN+C,yDAO7D,CADc;IAEb,IAAM,cAAc,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IACpD,IAAM,YAAY,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IAElD,IAAA,iBAAS,EAAC;QACR,IAAM,mBAAmB,GAAG;YAC1B,IAAI,
|
|
1
|
+
{"version":3,"file":"InfiniteScroll.js","sourceRoot":"","sources":["../../../src/table/InfiniteScroll.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA8C;AAC9C,6CAAiD;AACjD,oGAAiH;AAM1G,IAAM,cAAc,GAAkC,UAAC,EAO7D;IANC,IAAA,QAAQ,cAAA,EACR,IAAI,UAAA,EACJ,OAAO,aAAA,EACP,gBAAgB,sBAAA,EAChB,EAAE,QAAA,EACC,UAAU,cAN+C,yDAO7D,CADc;IAEb,IAAM,cAAc,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IACpD,IAAM,YAAY,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IAElD,IAAA,iBAAS,EAAC;QACR,IAAM,mBAAmB,GAAG;YAC1B,IAAI,gBAAgB,YAAY,WAAW,EAAE;gBAC3C,OAAO,gBAAgB,CAAC;aACzB;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,IAAM,OAAO,GAAG;YACd,IAAI,EAAE,mBAAmB,EAAE;YAC3B,UAAU,EAAE,WAAW;YACvB,SAAS,EAAE,CAAC;SACb,CAAC;QAEF,IAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,UAAC,OAAO;YACzC,IAAA,KAAK,GAAI,OAAO,GAAX,CAAY;YACxB,IAAI,KAAK,CAAC,cAAc,IAAI,OAAO,EAAE;gBACnC,IAAI,EAAE,CAAC;aACR;QACH,CAAC,EAAE,OAAO,CAAC,CAAC;QAEZ,IAAI,cAAc,CAAC,OAAO,EAAE;YAC1B,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SAC1C;QAED,OAAO;YACL,IAAI,cAAc,CAAC,OAAO,EAAE;gBAC1B,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;aAC5C;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEtC,OAAO,CACL,8BAAC,cAAG,IAAC,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE;QAC5B,8BAAC,yCAAuB,aAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,IAAM,UAAU,GACtG,QAAQ,CACe;QACzB,OAAO,IAAI,CACV,8BAAC,cAAG,IACF,GAAG,EAAE,cAAc,EACnB,EAAE,EAAE;gBACF,MAAM,EAAE,MAAM;gBACd,UAAU,EAAE,QAAQ;aACrB,GACD,CACH,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AA3DW,QAAA,cAAc,kBA2DzB"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { TableContainerOwnProps, ToolbarProps } from '@mui/material';
|
|
2
|
+
import { TableContainerOwnProps, ToolbarProps, TablePaginationProps, TableCellProps } from '@mui/material';
|
|
3
3
|
import { TableLoader } from './TableLoader';
|
|
4
4
|
import { TableButton } from './TableButton';
|
|
5
5
|
type ColumnValue<T, K extends keyof T> = T[K];
|
|
6
6
|
export type CustomRenderer<T, K extends keyof T> = (value: ColumnValue<T, K>, row: T) => React.ReactNode;
|
|
7
7
|
export type ColumnConfig<T> = {
|
|
8
8
|
[K in keyof T]?: {
|
|
9
|
+
cellProps?: TableCellProps;
|
|
9
10
|
renderer?: CustomRenderer<T, K>;
|
|
10
11
|
/** If no header is provided, a default header will be used. Pass in `null` if you'd like the header to be omitted. */
|
|
11
12
|
header?: string | React.ReactNode;
|
|
12
13
|
};
|
|
13
14
|
};
|
|
14
|
-
type RowClickAction<T> = string | ((row: T) => void | Promise<void> | string | Promise<string>);
|
|
15
|
+
type RowClickAction<T> = string | ((row: T, event?: React.MouseEvent) => void | Promise<void> | string | Promise<string>);
|
|
15
16
|
export type TableProps<T> = {
|
|
16
17
|
title?: string;
|
|
17
18
|
description?: () => JSX.Element;
|
|
@@ -19,6 +20,7 @@ export type TableProps<T> = {
|
|
|
19
20
|
columnConfig?: ColumnConfig<T>;
|
|
20
21
|
hideColumnHeaders?: boolean;
|
|
21
22
|
tableLoader: TableLoader<T>;
|
|
23
|
+
refetchOnWindowFocus?: boolean;
|
|
22
24
|
/** Setter which will be used to update the row count when rows are loaded */
|
|
23
25
|
setRowCount?: React.Dispatch<React.SetStateAction<number | undefined>>;
|
|
24
26
|
rowOnClick?: RowClickAction<T>;
|
|
@@ -26,13 +28,17 @@ export type TableProps<T> = {
|
|
|
26
28
|
buttons?: TableButton<T>[];
|
|
27
29
|
/** If true, use pagination for table page navigation, if false uses infinite scroll. Defaults to false. */
|
|
28
30
|
pagination?: boolean;
|
|
29
|
-
|
|
31
|
+
/** Props passed into the TablePagination component. This component is only displayed if `pagination` is true. */
|
|
32
|
+
tablePaginationProps?: Partial<TablePaginationProps>;
|
|
33
|
+
rowsPerPage?: number;
|
|
30
34
|
toolbarSx?: ToolbarProps['sx'];
|
|
31
35
|
toolbarContent?: React.ReactNode;
|
|
32
36
|
tableContainerSx?: TableContainerOwnProps['sx'];
|
|
33
37
|
emptyTableComponent?: React.ReactNode;
|
|
34
38
|
skeleton?: React.ReactNode;
|
|
39
|
+
/** Loader to display while items are fetching. Only applicable when pagination prop is false. */
|
|
40
|
+
infiniteScrollLoader?: React.ReactNode;
|
|
35
41
|
};
|
|
36
|
-
export declare function Table<T>({ title, description, columns, columnConfig, hideColumnHeaders, tableLoader, rowOnClick, setRowCount, pagination,
|
|
42
|
+
export declare function Table<T>({ title, description, columns, columnConfig, hideColumnHeaders, tableLoader, refetchOnWindowFocus, rowOnClick, setRowCount, pagination, tablePaginationProps, rowsPerPage: rowsPerPageProp, buttons, tableContainerSx, toolbarSx, toolbarContent, emptyTableComponent, skeleton, infiniteScrollLoader, }: TableProps<T>): React.JSX.Element;
|
|
37
43
|
export {};
|
|
38
44
|
//# sourceMappingURL=Table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/table/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/table/Table.tsx"],"names":[],"mappings":"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"}
|
package/dist/src/table/Table.js
CHANGED
|
@@ -83,14 +83,25 @@ var TableToolbar_1 = require("./TableToolbar");
|
|
|
83
83
|
var tableData_1 = require("./tableData");
|
|
84
84
|
var InfiniteScroll_1 = require("./InfiniteScroll");
|
|
85
85
|
function Table(_a) {
|
|
86
|
-
var title = _a.title, description = _a.description, columns = _a.columns, _b = _a.columnConfig, columnConfig = _b === void 0 ? {} : _b, _c = _a.hideColumnHeaders, hideColumnHeaders = _c === void 0 ? false : _c, tableLoader = _a.tableLoader, rowOnClick = _a.rowOnClick, setRowCount = _a.setRowCount,
|
|
86
|
+
var title = _a.title, description = _a.description, columns = _a.columns, _b = _a.columnConfig, columnConfig = _b === void 0 ? {} : _b, _c = _a.hideColumnHeaders, hideColumnHeaders = _c === void 0 ? false : _c, tableLoader = _a.tableLoader, _d = _a.refetchOnWindowFocus, refetchOnWindowFocus = _d === void 0 ? false : _d, rowOnClick = _a.rowOnClick, setRowCount = _a.setRowCount, _e = _a.pagination, pagination = _e === void 0 ? false : _e, tablePaginationProps = _a.tablePaginationProps, _f = _a.rowsPerPage, rowsPerPageProp = _f === void 0 ? 10 : _f, buttons = _a.buttons, tableContainerSx = _a.tableContainerSx, toolbarSx = _a.toolbarSx, toolbarContent = _a.toolbarContent, emptyTableComponent = _a.emptyTableComponent, skeleton = _a.skeleton, infiniteScrollLoader = _a.infiniteScrollLoader;
|
|
87
87
|
var infiniteScroll = !pagination;
|
|
88
|
-
var
|
|
89
|
-
var
|
|
90
|
-
var
|
|
91
|
-
var
|
|
88
|
+
var _g = (0, react_1.useState)(rowsPerPageProp), rowsPerPage = _g[0], setRowsPerPage = _g[1];
|
|
89
|
+
var _h = (0, react_1.useState)(0), page = _h[0], setPage = _h[1];
|
|
90
|
+
var _j = (0, react_1.useState)({}), selectedRows = _j[0], setSelectedRows = _j[1];
|
|
91
|
+
var _k = (0, react_1.useState)(false), selectAll = _k[0], setSelectAll = _k[1];
|
|
92
|
+
var infScrollContainerRef = (0, react_1.useRef)(null);
|
|
92
93
|
var navigate = (0, react_router_dom_1.useNavigate)();
|
|
93
|
-
var
|
|
94
|
+
var _l = (0, tableData_1.useTableData)(tableLoader, rowsPerPage, page, infiniteScroll, setRowCount, refetchOnWindowFocus), rows = _l.rows, totalRows = _l.totalRows, isLoading = _l.isLoading, error = _l.error, fetchNextPage = _l.fetchNextPage, hasNextPage = _l.hasNextPage, isFetchingNextPage = _l.isFetchingNextPage, resetQuery = _l.resetQuery;
|
|
95
|
+
var maxPage = Math.max(0, Math.ceil((totalRows || 0) / rowsPerPage) - 1);
|
|
96
|
+
// Adjust page if it exceeds maxPage
|
|
97
|
+
(0, react_1.useEffect)(function () {
|
|
98
|
+
if (!pagination || isLoading) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (page > maxPage && maxPage >= 0) {
|
|
102
|
+
setPage(maxPage);
|
|
103
|
+
}
|
|
104
|
+
}, [page, maxPage, pagination, isLoading, totalRows]);
|
|
94
105
|
(0, react_1.useEffect)(function () {
|
|
95
106
|
resetQuery();
|
|
96
107
|
setPage(0);
|
|
@@ -110,7 +121,7 @@ function Table(_a) {
|
|
|
110
121
|
fetchNextPage();
|
|
111
122
|
}
|
|
112
123
|
}, [fetchNextPage, isFetchingNextPage]);
|
|
113
|
-
function handleRowOnClick(row, action, navigate) {
|
|
124
|
+
function handleRowOnClick(row, event, action, navigate) {
|
|
114
125
|
return __awaiter(this, void 0, void 0, function () {
|
|
115
126
|
var url, result, resolvedResult, url, url;
|
|
116
127
|
return __generator(this, function (_a) {
|
|
@@ -127,7 +138,7 @@ function Table(_a) {
|
|
|
127
138
|
navigate(url);
|
|
128
139
|
return [2 /*return*/];
|
|
129
140
|
}
|
|
130
|
-
result = action(row);
|
|
141
|
+
result = action(row, event);
|
|
131
142
|
if (!(result instanceof Promise)) return [3 /*break*/, 2];
|
|
132
143
|
return [4 /*yield*/, result];
|
|
133
144
|
case 1:
|
|
@@ -233,16 +244,18 @@ function Table(_a) {
|
|
|
233
244
|
var _a, _b;
|
|
234
245
|
return (react_1.default.createElement(material_1.TableCell, { key: index }, ((_a = columnConfig[column]) === null || _a === void 0 ? void 0 : _a.header) !== null && (react_1.default.createElement(material_1.Typography, { variant: 'h6' }, ((_b = columnConfig[column]) === null || _b === void 0 ? void 0 : _b.header) || util_1.StringUtil.humanizeCamel(column)))));
|
|
235
246
|
}))),
|
|
236
|
-
isLoading && (react_1.default.createElement(material_1.TableBody,
|
|
237
|
-
react_1.default.createElement(material_1.TableRow,
|
|
238
|
-
react_1.default.createElement(material_1.TableCell, { colSpan: totalColumns, align: 'center', sx: { py: 3 } }, skeleton ? skeleton : react_1.default.createElement(material_1.CircularProgress, null))))),
|
|
247
|
+
isLoading && (react_1.default.createElement(material_1.TableBody, { className: 'loading-skeleton-table-body' },
|
|
248
|
+
react_1.default.createElement(material_1.TableRow, { className: 'loading-skeleton-row' },
|
|
249
|
+
react_1.default.createElement(material_1.TableCell, { colSpan: totalColumns, align: 'center', className: 'loading-skeleton-cell', sx: { py: 3 } }, skeleton ? skeleton : react_1.default.createElement(material_1.CircularProgress, null))))),
|
|
239
250
|
rows.length === 0 && !isLoading && (react_1.default.createElement(material_1.TableBody, null,
|
|
240
251
|
react_1.default.createElement(material_1.TableRow, null,
|
|
241
252
|
react_1.default.createElement(material_1.TableCell, { colSpan: totalColumns, align: 'center' }, emptyTableComponent ? emptyTableComponent : react_1.default.createElement(material_1.Typography, null, "No rows to display."))))),
|
|
242
253
|
rows.length > 0 && (react_1.default.createElement(material_1.TableBody, null, rows.map(function (row, index) {
|
|
243
254
|
index = rowsPerPage * page + index;
|
|
244
255
|
var isSelected = typeof selectedRows[index] !== 'undefined';
|
|
245
|
-
return (react_1.default.createElement(material_1.TableRow, { hover: true, tabIndex: -1, key: index, selected: isSelected, onClick: rowOnClick
|
|
256
|
+
return (react_1.default.createElement(material_1.TableRow, { hover: true, tabIndex: -1, key: index, selected: isSelected, onClick: rowOnClick
|
|
257
|
+
? function (event) { return handleRowOnClick(row, event, rowOnClick, navigate); }
|
|
258
|
+
: undefined },
|
|
246
259
|
buttons && buttons.length > 0 && (react_1.default.createElement(material_1.TableCell, { padding: 'checkbox' },
|
|
247
260
|
react_1.default.createElement(material_1.Checkbox, { checked: isSelected, onChange: function (event) {
|
|
248
261
|
event.stopPropagation();
|
|
@@ -251,16 +264,17 @@ function Table(_a) {
|
|
|
251
264
|
'aria-label': 'Select row',
|
|
252
265
|
} }))),
|
|
253
266
|
columns.map(function (column, index) {
|
|
254
|
-
var _a
|
|
255
|
-
|
|
267
|
+
var _a;
|
|
268
|
+
var _b = formatCellValue(row[column], column, row), cellValue = _b.value, isCustomRendered = _b.isCustomRendered;
|
|
269
|
+
return (react_1.default.createElement(material_1.TableCell, __assign({ key: index }, (_a = columnConfig === null || columnConfig === void 0 ? void 0 : columnConfig[column]) === null || _a === void 0 ? void 0 : _a.cellProps), isCustomRendered ? cellValue : react_1.default.createElement(material_1.Typography, null, cellValue)));
|
|
256
270
|
})));
|
|
257
271
|
}))))));
|
|
258
272
|
};
|
|
259
273
|
return (react_1.default.createElement(material_1.Box, { sx: { width: '100%', height: '100%', display: 'flex', flexDirection: 'column' } },
|
|
260
274
|
(title || description || (buttons && buttons.length > 0)) && (react_1.default.createElement(TableToolbar_1.TableToolbar, { title: title, description: description, selectedRows: Object.values(selectedRows), content: toolbarContent, buttons: buttons, sx: toolbarSx })),
|
|
261
|
-
react_1.default.createElement(material_1.Box, {
|
|
262
|
-
infiniteScroll ? (react_1.default.createElement(InfiniteScroll_1.InfiniteScroll, { dataLength: rows.length, next: handleFetchNextPage, hasMore: !!hasNextPage, loader: react_1.default.createElement(material_1.Typography, { variant: 'body2', sx: { p:
|
|
263
|
-
pagination &&
|
|
275
|
+
react_1.default.createElement(material_1.Box, { ref: infScrollContainerRef, sx: { width: '100%', flexGrow: 1, overflow: 'auto' } },
|
|
276
|
+
infiniteScroll ? (react_1.default.createElement(InfiniteScroll_1.InfiniteScroll, { dataLength: rows.length, next: handleFetchNextPage, hasMore: !!hasNextPage, loader: infiniteScrollLoader || (react_1.default.createElement(material_1.Typography, { variant: 'body2', sx: { p: 2 } }, "Loading...")), scrollableTarget: react_1.default.createElement('div', { ref: infScrollContainerRef }) }, renderTableContainer())) : (renderTableContainer()),
|
|
277
|
+
pagination && (react_1.default.createElement(material_1.TablePagination, __assign({ rowsPerPageOptions: [5, 10, 25, 50, 100, 200], component: 'div', count: totalRows || 0, rowsPerPage: rowsPerPage, page: isLoading ? page : Math.min(page, maxPage), onPageChange: function (event, newPage) { return setPage(newPage); }, onRowsPerPageChange: function (event) { return updateRowsPerPage(parseInt(event.target.value)); } }, tablePaginationProps))))));
|
|
264
278
|
}
|
|
265
279
|
exports.Table = Table;
|
|
266
280
|
//# sourceMappingURL=Table.js.map
|