wcz-layout 6.7.2 → 8.3.2
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/Approval-BTJTexDo.js +143 -0
- package/dist/Approval-BTJTexDo.js.map +1 -0
- package/dist/DialogsContext-DLqA8RJ_.js +7 -0
- package/dist/DialogsContext-DLqA8RJ_.js.map +1 -0
- package/dist/Email-C9qwj7GD.js +20 -0
- package/dist/Email-C9qwj7GD.js.map +1 -0
- package/dist/FileMeta-DDqUju1Y.js +19 -0
- package/dist/FileMeta-DDqUju1Y.js.map +1 -0
- package/dist/FileMeta-ILLTOjaM.d.ts +20 -0
- package/dist/NotificationContext-CgwUOeW0.js +7 -0
- package/dist/NotificationContext-CgwUOeW0.js.map +1 -0
- package/dist/RouterListItemButton-owZVvuC_.js +78 -0
- package/dist/RouterListItemButton-owZVvuC_.js.map +1 -0
- package/dist/User-CT_IDGuG.d.ts +15 -0
- package/dist/apiMiddleware-CtY4rOFU.js +23 -0
- package/dist/apiMiddleware-CtY4rOFU.js.map +1 -0
- package/dist/components.d.ts +118 -0
- package/dist/components.js +1554 -0
- package/dist/components.js.map +1 -0
- package/dist/data/client.d.ts +3111 -0
- package/dist/data/client.js +188 -0
- package/dist/data/client.js.map +1 -0
- package/dist/data/server.d.ts +19 -0
- package/dist/data/server.js +16 -0
- package/dist/data/server.js.map +1 -0
- package/dist/data.d.ts +7 -0
- package/dist/data.js +2 -0
- package/dist/env-ON-cyE3N.js +31 -0
- package/dist/env-ON-cyE3N.js.map +1 -0
- package/dist/file-BUdLb7H1.js +148 -0
- package/dist/file-BUdLb7H1.js.map +1 -0
- package/dist/file-Dsht7yOP.js +100 -0
- package/dist/file-Dsht7yOP.js.map +1 -0
- package/dist/hooks.d.ts +226 -0
- package/dist/hooks.js +1180 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.js +2106 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware.d.ts +47 -0
- package/dist/middleware.js +80 -0
- package/dist/middleware.js.map +1 -0
- package/dist/models.d.ts +474 -0
- package/dist/models.js +74 -0
- package/dist/models.js.map +1 -0
- package/dist/msalClient-CYiQAFnY.d.ts +15 -0
- package/dist/msalServer-B9sVqpQ2.js +47 -0
- package/dist/msalServer-B9sVqpQ2.js.map +1 -0
- package/dist/peoplesoft-BCjRje6b.js +240 -0
- package/dist/peoplesoft-BCjRje6b.js.map +1 -0
- package/dist/peoplesoft-Cze2ngGd.d.ts +1150 -0
- package/dist/queryClient-D64McLhZ.js +7 -0
- package/dist/queryClient-D64McLhZ.js.map +1 -0
- package/dist/useDialogs-BJVhBr8S.js +248 -0
- package/dist/useDialogs-BJVhBr8S.js.map +1 -0
- package/dist/utils-BMUmv2ws.js +191 -0
- package/dist/utils-BMUmv2ws.js.map +1 -0
- package/dist/utils-CvvyM8Xw.d.ts +56 -0
- package/dist/utils.d.ts +21 -0
- package/dist/utils.js +6 -0
- package/dist/vite.d.ts +7 -0
- package/dist/vite.js +147 -0
- package/dist/vite.js.map +1 -0
- package/package.json +158 -62
- package/skills/client-db/SKILL.md +107 -0
- package/skills/data-grid/SKILL.md +147 -0
- package/skills/db-schema/SKILL.md +68 -0
- package/skills/dialogs/SKILL.md +79 -0
- package/skills/forms/SKILL.md +82 -0
- package/skills/general/SKILL.md +17 -0
- package/skills/notifications/SKILL.md +43 -0
- package/skills/routing/SKILL.md +123 -0
- package/skills/server-functions/SKILL.md +109 -0
- package/skills/services/SKILL.md +28 -0
- package/skills/services/docs/approval.md +204 -0
- package/skills/services/docs/email.md +32 -0
- package/skills/services/docs/file.md +85 -0
- package/skills/services/docs/peoplesoft.md +110 -0
- package/skills/start/SKILL.md +46 -0
- package/skills/start/steps/01-git-setup.md +10 -0
- package/skills/start/steps/02-project-name-setup.md +14 -0
- package/skills/start/steps/03-apm-setup.md +208 -0
- package/skills/start/steps/04-database-setup.md +37 -0
- package/skills/start/steps/05-entra-setup.md +59 -0
- package/skills/start/steps/06-vault-setup.md +53 -0
- package/skills/start/steps/07-generate-favicon.md +10 -0
- package/skills/start/steps/08-commit.md +15 -0
- package/dist/src/components/Layout.d.ts +0 -16
- package/dist/src/components/Layout.js +0 -122
- package/dist/src/components/Layout.js.map +0 -1
- package/dist/src/components/dataGrid/ChipInputCell.d.ts +0 -9
- package/dist/src/components/dataGrid/ChipInputCell.js +0 -17
- package/dist/src/components/dataGrid/ChipInputCell.js.map +0 -1
- package/dist/src/components/dataGrid/EditableColumnHeader.d.ts +0 -2
- package/dist/src/components/dataGrid/EditableColumnHeader.js +0 -7
- package/dist/src/components/dataGrid/EditableColumnHeader.js.map +0 -1
- package/dist/src/components/dataGrid/GridToolbar.d.ts +0 -8
- package/dist/src/components/dataGrid/GridToolbar.js +0 -40
- package/dist/src/components/dataGrid/GridToolbar.js.map +0 -1
- package/dist/src/components/dataGrid/TableContainer.d.ts +0 -3
- package/dist/src/components/dataGrid/TableContainer.js +0 -32
- package/dist/src/components/dataGrid/TableContainer.js.map +0 -1
- package/dist/src/components/form/FormAutocomplete.d.ts +0 -7
- package/dist/src/components/form/FormAutocomplete.js +0 -10
- package/dist/src/components/form/FormAutocomplete.js.map +0 -1
- package/dist/src/components/form/FormCheckbox.d.ts +0 -7
- package/dist/src/components/form/FormCheckbox.js +0 -11
- package/dist/src/components/form/FormCheckbox.js.map +0 -1
- package/dist/src/components/form/FormDatePicker.d.ts +0 -9
- package/dist/src/components/form/FormDatePicker.js +0 -19
- package/dist/src/components/form/FormDatePicker.js.map +0 -1
- package/dist/src/components/form/FormDateTimePicker.d.ts +0 -9
- package/dist/src/components/form/FormDateTimePicker.js +0 -19
- package/dist/src/components/form/FormDateTimePicker.js.map +0 -1
- package/dist/src/components/form/FormNumberField.d.ts +0 -12
- package/dist/src/components/form/FormNumberField.js +0 -12
- package/dist/src/components/form/FormNumberField.js.map +0 -1
- package/dist/src/components/form/FormRadioGroup.d.ts +0 -13
- package/dist/src/components/form/FormRadioGroup.js +0 -11
- package/dist/src/components/form/FormRadioGroup.js.map +0 -1
- package/dist/src/components/form/FormSlider.d.ts +0 -7
- package/dist/src/components/form/FormSlider.js +0 -11
- package/dist/src/components/form/FormSlider.js.map +0 -1
- package/dist/src/components/form/FormSubmitButton.d.ts +0 -5
- package/dist/src/components/form/FormSubmitButton.js +0 -13
- package/dist/src/components/form/FormSubmitButton.js.map +0 -1
- package/dist/src/components/form/FormSwitch.d.ts +0 -7
- package/dist/src/components/form/FormSwitch.js +0 -11
- package/dist/src/components/form/FormSwitch.js.map +0 -1
- package/dist/src/components/form/FormTextField.d.ts +0 -7
- package/dist/src/components/form/FormTextField.js +0 -11
- package/dist/src/components/form/FormTextField.js.map +0 -1
- package/dist/src/components/layout/AccountMenu.d.ts +0 -9
- package/dist/src/components/layout/AccountMenu.js +0 -44
- package/dist/src/components/layout/AccountMenu.js.map +0 -1
- package/dist/src/components/layout/DevelopmentBanner.d.ts +0 -7
- package/dist/src/components/layout/DevelopmentBanner.js +0 -29
- package/dist/src/components/layout/DevelopmentBanner.js.map +0 -1
- package/dist/src/components/layout/ErrorPage.d.ts +0 -2
- package/dist/src/components/layout/ErrorPage.js +0 -25
- package/dist/src/components/layout/ErrorPage.js.map +0 -1
- package/dist/src/components/layout/LayoutDialog.d.ts +0 -12
- package/dist/src/components/layout/LayoutDialog.js +0 -12
- package/dist/src/components/layout/LayoutDialog.js.map +0 -1
- package/dist/src/components/layout/LayoutSnackbar.d.ts +0 -8
- package/dist/src/components/layout/LayoutSnackbar.js +0 -25
- package/dist/src/components/layout/LayoutSnackbar.js.map +0 -1
- package/dist/src/components/layout/NavigationDrawer.d.ts +0 -11
- package/dist/src/components/layout/NavigationDrawer.js +0 -70
- package/dist/src/components/layout/NavigationDrawer.js.map +0 -1
- package/dist/src/components/layout/NotificationMenu.d.ts +0 -8
- package/dist/src/components/layout/NotificationMenu.js +0 -26
- package/dist/src/components/layout/NotificationMenu.js.map +0 -1
- package/dist/src/components/layout/TypographyWithIcon.d.ts +0 -7
- package/dist/src/components/layout/TypographyWithIcon.js +0 -22
- package/dist/src/components/layout/TypographyWithIcon.js.map +0 -1
- package/dist/src/components/layout/Unauthorized.d.ts +0 -2
- package/dist/src/components/layout/Unauthorized.js +0 -26
- package/dist/src/components/layout/Unauthorized.js.map +0 -1
- package/dist/src/contexts/LayoutContext.d.ts +0 -40
- package/dist/src/contexts/LayoutContext.js +0 -60
- package/dist/src/contexts/LayoutContext.js.map +0 -1
- package/dist/src/contexts/UserContext.d.ts +0 -24
- package/dist/src/contexts/UserContext.js +0 -55
- package/dist/src/contexts/UserContext.js.map +0 -1
- package/dist/src/hooks/FormHooks.d.ts +0 -46
- package/dist/src/hooks/FormHooks.js +0 -31
- package/dist/src/hooks/FormHooks.js.map +0 -1
- package/dist/src/hooks/UseSnackbar.d.ts +0 -10
- package/dist/src/hooks/UseSnackbar.js +0 -23
- package/dist/src/hooks/UseSnackbar.js.map +0 -1
- package/dist/src/hooks/UseUser.d.ts +0 -10
- package/dist/src/hooks/UseUser.js +0 -25
- package/dist/src/hooks/UseUser.js.map +0 -1
- package/dist/src/index.d.ts +0 -20
- package/dist/src/index.js +0 -15
- package/dist/src/index.js.map +0 -1
- package/dist/src/models/Error.d.ts +0 -6
- package/dist/src/models/Error.js +0 -2
- package/dist/src/models/Error.js.map +0 -1
- package/dist/src/models/KeycloakSettings.d.ts +0 -8
- package/dist/src/models/KeycloakSettings.js +0 -2
- package/dist/src/models/KeycloakSettings.js.map +0 -1
- package/dist/src/models/LayoutPaletteColorOptions.d.ts +0 -6
- package/dist/src/models/LayoutPaletteColorOptions.js +0 -2
- package/dist/src/models/LayoutPaletteColorOptions.js.map +0 -1
- package/dist/src/models/LayoutRoute.d.ts +0 -14
- package/dist/src/models/LayoutRoute.js +0 -2
- package/dist/src/models/LayoutRoute.js.map +0 -1
- package/dist/src/models/Notification.d.ts +0 -9
- package/dist/src/models/Notification.js +0 -2
- package/dist/src/models/Notification.js.map +0 -1
- package/dist/src/models/PeoplesoftDepartment.d.ts +0 -14
- package/dist/src/models/PeoplesoftDepartment.js +0 -2
- package/dist/src/models/PeoplesoftDepartment.js.map +0 -1
- package/dist/src/models/PeoplesoftEmployee.d.ts +0 -34
- package/dist/src/models/PeoplesoftEmployee.js +0 -2
- package/dist/src/models/PeoplesoftEmployee.js.map +0 -1
- package/dist/src/models/Snackbar.d.ts +0 -15
- package/dist/src/models/Snackbar.js +0 -2
- package/dist/src/models/Snackbar.js.map +0 -1
- package/dist/src/models/User.d.ts +0 -27
- package/dist/src/models/User.js +0 -11
- package/dist/src/models/User.js.map +0 -1
- package/dist/src/models/types/EmployeeCategoryGroup.d.ts +0 -1
- package/dist/src/models/types/EmployeeCategoryGroup.js +0 -2
- package/dist/src/models/types/EmployeeCategoryGroup.js.map +0 -1
- package/dist/src/models/types/EmployeeStatus.d.ts +0 -1
- package/dist/src/models/types/EmployeeStatus.js +0 -2
- package/dist/src/models/types/EmployeeStatus.js.map +0 -1
- package/dist/src/utils/Auth.d.ts +0 -12
- package/dist/src/utils/Auth.js +0 -49
- package/dist/src/utils/Auth.js.map +0 -1
- package/dist/src/utils/Fetches.d.ts +0 -5
- package/dist/src/utils/Fetches.js +0 -66
- package/dist/src/utils/Fetches.js.map +0 -1
- package/dist/src/utils/FormUtils.d.ts +0 -7
- package/dist/src/utils/FormUtils.js +0 -9
- package/dist/src/utils/FormUtils.js.map +0 -1
- package/dist/src/utils/Helpers.d.ts +0 -11
- package/dist/src/utils/Helpers.js +0 -26
- package/dist/src/utils/Helpers.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/components/Layout.tsx +0 -183
- package/src/components/dataGrid/ChipInputCell.tsx +0 -31
- package/src/components/dataGrid/EditableColumnHeader.tsx +0 -7
- package/src/components/dataGrid/GridToolbar.tsx +0 -63
- package/src/components/dataGrid/TableContainer.tsx +0 -39
- package/src/components/form/FormAutocomplete.tsx +0 -34
- package/src/components/form/FormCheckbox.tsx +0 -32
- package/src/components/form/FormDatePicker.tsx +0 -34
- package/src/components/form/FormDateTimePicker.tsx +0 -34
- package/src/components/form/FormNumberField.tsx +0 -33
- package/src/components/form/FormRadioGroup.tsx +0 -43
- package/src/components/form/FormSlider.tsx +0 -28
- package/src/components/form/FormSubmitButton.tsx +0 -29
- package/src/components/form/FormSwitch.tsx +0 -32
- package/src/components/form/FormTextField.tsx +0 -26
- package/src/components/layout/AccountMenu.tsx +0 -160
- package/src/components/layout/DevelopmentBanner.tsx +0 -54
- package/src/components/layout/ErrorPage.tsx +0 -34
- package/src/components/layout/LayoutDialog.tsx +0 -50
- package/src/components/layout/LayoutSnackbar.tsx +0 -44
- package/src/components/layout/NavigationDrawer.tsx +0 -131
- package/src/components/layout/NotificationMenu.tsx +0 -76
- package/src/components/layout/TypographyWithIcon.tsx +0 -35
- package/src/components/layout/Unauthorized.tsx +0 -37
- package/src/contexts/LayoutContext.tsx +0 -127
- package/src/contexts/UserContext.tsx +0 -88
- package/src/hooks/FormHooks.ts +0 -33
- package/src/hooks/UseSnackbar.tsx +0 -28
- package/src/hooks/UseUser.tsx +0 -29
- package/src/index.ts +0 -27
- package/src/models/Error.tsx +0 -6
- package/src/models/KeycloakSettings.ts +0 -8
- package/src/models/LayoutPaletteColorOptions.tsx +0 -7
- package/src/models/LayoutRoute.ts +0 -15
- package/src/models/Notification.ts +0 -10
- package/src/models/PeoplesoftDepartment.ts +0 -15
- package/src/models/PeoplesoftEmployee.ts +0 -35
- package/src/models/Snackbar.ts +0 -16
- package/src/models/User.ts +0 -13
- package/src/models/types/EmployeeCategoryGroup.ts +0 -1
- package/src/models/types/EmployeeStatus.ts +0 -1
- package/src/utils/Auth.ts +0 -58
- package/src/utils/Fetches.ts +0 -83
- package/src/utils/FormUtils.ts +0 -22
- package/src/utils/Helpers.ts +0 -27
- package/tsconfig.json +0 -29
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Add } from "@mui/icons-material";
|
|
3
|
-
import { Box, Button } from "@mui/material";
|
|
4
|
-
import { GridToolbarColumnsButton, GridToolbarContainer, GridToolbarExport, GridToolbarFilterButton, GridToolbarQuickFilter, useGridApiContext } from "@mui/x-data-grid-premium";
|
|
5
|
-
import { useContext } from "react";
|
|
6
|
-
import { LayoutContext } from "../../contexts/LayoutContext";
|
|
7
|
-
import { newGuid } from "../../utils/Helpers";
|
|
8
|
-
const getFirstEditableColumn = (apiRef) => {
|
|
9
|
-
const editableColumns = apiRef.getAllColumns().filter(column => column.editable);
|
|
10
|
-
if (editableColumns.length)
|
|
11
|
-
return editableColumns[0];
|
|
12
|
-
};
|
|
13
|
-
const hasEditableColumn = (apiRef) => {
|
|
14
|
-
const editableColumns = apiRef === null || apiRef === void 0 ? void 0 : apiRef.getAllColumns().filter(column => column.editable);
|
|
15
|
-
return !!(editableColumns === null || editableColumns === void 0 ? void 0 : editableColumns.length);
|
|
16
|
-
};
|
|
17
|
-
export const GridToolbar = (props) => {
|
|
18
|
-
var _a, _b, _c, _d;
|
|
19
|
-
const apiRef = useGridApiContext();
|
|
20
|
-
const { t } = useContext(LayoutContext);
|
|
21
|
-
const handleOnAddRecordClick = () => {
|
|
22
|
-
var _a, _b, _c, _d;
|
|
23
|
-
if (!apiRef.current)
|
|
24
|
-
return;
|
|
25
|
-
const rowIds = (_a = apiRef.current) === null || _a === void 0 ? void 0 : _a.getAllRowIds();
|
|
26
|
-
const allRows = rowIds.map(rowId => { var _a; return ((_a = apiRef.current) === null || _a === void 0 ? void 0 : _a.getRow(rowId)); });
|
|
27
|
-
const id = (_c = (_b = props.newRowDefaultValue) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : newGuid();
|
|
28
|
-
(_d = apiRef.current) === null || _d === void 0 ? void 0 : _d.setRows([{ ...props.newRowDefaultValue, id, isNew: true }, ...allRows]);
|
|
29
|
-
setTimeout(() => { var _a; return (_a = apiRef.current) === null || _a === void 0 ? void 0 : _a.startRowEditMode({ id }); });
|
|
30
|
-
const firstEditableColumn = getFirstEditableColumn(apiRef.current);
|
|
31
|
-
if (firstEditableColumn) {
|
|
32
|
-
apiRef.current.setCellFocus(id, firstEditableColumn.field);
|
|
33
|
-
setTimeout(() => { var _a; return (_a = apiRef.current) === null || _a === void 0 ? void 0 : _a.scrollToIndexes({ rowIndex: 0 }); });
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
const showNewRowButton = hasEditableColumn(apiRef.current) && !props.hideAddNewRow;
|
|
37
|
-
const hasActiveFilters = !!((_a = apiRef.current) === null || _a === void 0 ? void 0 : _a.state.filter.filterModel.items.length) || !!((_c = (_b = apiRef.current) === null || _b === void 0 ? void 0 : _b.state.filter.filterModel.quickFilterValues) === null || _c === void 0 ? void 0 : _c.length);
|
|
38
|
-
return (_jsxs(GridToolbarContainer, { children: [_jsx(GridToolbarColumnsButton, {}), _jsx(GridToolbarFilterButton, {}), _jsx(GridToolbarExport, {}), showNewRowButton && _jsx(Button, { size: "small", startIcon: _jsx(Add, {}), onClick: handleOnAddRecordClick, disabled: hasActiveFilters, children: t("Layout.AddRow") }), (_d = props.actions) === null || _d === void 0 ? void 0 : _d.map(action => action), _jsx(Box, { sx: { flexGrow: 1 } }), _jsx(GridToolbarQuickFilter, {})] }));
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=GridToolbar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GridToolbar.js","sourceRoot":"","sources":["../../../../src/components/dataGrid/GridToolbar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAa,wBAAwB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,sBAAsB,EAA2C,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAErO,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,MAAM,sBAAsB,GAAG,CAAC,MAAsB,EAAE,EAAE;IACtD,MAAM,eAAe,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjF,IAAI,eAAe,CAAC,MAAM;QACtB,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,MAA6B,EAAE,EAAE;IACxD,MAAM,eAAe,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClF,OAAO,CAAC,CAAC,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,CAAA,CAAC;AACrC,CAAC,CAAC;AAQF,MAAM,CAAC,MAAM,WAAW,GAA+B,CAAC,KAAK,EAAE,EAAE;;IAC7D,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAExC,MAAM,sBAAsB,GAAG,GAAG,EAAE;;QAChC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAE5B,MAAM,MAAM,GAAgB,MAAA,MAAM,CAAC,OAAO,0CAAE,YAAY,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAU,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,WAAC,OAAA,CAAC,MAAA,MAAM,CAAC,OAAO,0CAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC;QAE5E,MAAM,EAAE,GAAc,MAAA,MAAA,KAAK,CAAC,kBAAkB,0CAAE,EAAE,mCAAI,OAAO,EAAE,CAAC;QAChE,MAAA,MAAM,CAAC,OAAO,0CAAE,OAAO,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,kBAAkB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;QACxF,UAAU,CAAC,GAAG,EAAE,WAAC,OAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC;QAE3D,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,mBAAmB,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC3D,UAAU,CAAC,GAAG,EAAE,WAAC,OAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC;QACvE,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;IACnF,MAAM,gBAAgB,GAAG,CAAC,CAAC,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAA,IAAI,CAAC,CAAC,CAAA,MAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,0CAAE,MAAM,CAAA,CAAC;IAEzJ,OAAO,CACH,MAAC,oBAAoB,eACjB,KAAC,wBAAwB,KAAG,EAC5B,KAAC,uBAAuB,KAAG,EAC3B,KAAC,iBAAiB,KAAG,EACpB,gBAAgB,IAAI,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAE,KAAC,GAAG,KAAG,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,gBAAgB,YAAG,CAAC,CAAC,eAAe,CAAC,GAAU,EACvJ,MAAA,KAAK,CAAC,OAAO,0CAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAErC,KAAC,GAAG,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAI,EAE5B,KAAC,sBAAsB,KAAG,IACP,CAC1B,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { Add } from \"@mui/icons-material\";\r\nimport { Box, Button } from \"@mui/material\";\r\nimport { GridRowId, GridToolbarColumnsButton, GridToolbarContainer, GridToolbarExport, GridToolbarFilterButton, GridToolbarQuickFilter, GridToolbarProps as MuiGridToolbarProps, useGridApiContext } from \"@mui/x-data-grid-premium\";\r\nimport { GridApiPremium } from \"@mui/x-data-grid-premium/models/gridApiPremium\";\r\nimport React, { useContext } from \"react\";\r\nimport { LayoutContext } from \"../../contexts/LayoutContext\";\r\nimport { newGuid } from \"../../utils/Helpers\";\r\n\r\nconst getFirstEditableColumn = (apiRef: GridApiPremium) => {\r\n const editableColumns = apiRef.getAllColumns().filter(column => column.editable);\r\n if (editableColumns.length)\r\n return editableColumns[0];\r\n};\r\n\r\nconst hasEditableColumn = (apiRef: GridApiPremium | null) => {\r\n const editableColumns = apiRef?.getAllColumns().filter(column => column.editable);\r\n return !!editableColumns?.length;\r\n};\r\n\r\nexport interface GridToolbarProps extends MuiGridToolbarProps {\r\n actions?: React.ReactNode[];\r\n hideAddNewRow?: boolean;\r\n newRowDefaultValue?: any;\r\n}\r\n\r\nexport const GridToolbar: React.FC<GridToolbarProps> = (props) => {\r\n const apiRef = useGridApiContext();\r\n const { t } = useContext(LayoutContext);\r\n\r\n const handleOnAddRecordClick = () => {\r\n if (!apiRef.current) return;\r\n\r\n const rowIds: GridRowId[] = apiRef.current?.getAllRowIds();\r\n const allRows: any[] = rowIds.map(rowId => (apiRef.current?.getRow(rowId)));\r\n\r\n const id: GridRowId = props.newRowDefaultValue?.id ?? newGuid();\r\n apiRef.current?.setRows([{ ...props.newRowDefaultValue, id, isNew: true }, ...allRows]);\r\n setTimeout(() => apiRef.current?.startRowEditMode({ id }));\r\n\r\n const firstEditableColumn = getFirstEditableColumn(apiRef.current);\r\n if (firstEditableColumn) {\r\n apiRef.current.setCellFocus(id, firstEditableColumn.field);\r\n setTimeout(() => apiRef.current?.scrollToIndexes({ rowIndex: 0 }));\r\n }\r\n };\r\n\r\n const showNewRowButton = hasEditableColumn(apiRef.current) && !props.hideAddNewRow;\r\n const hasActiveFilters = !!apiRef.current?.state.filter.filterModel.items.length || !!apiRef.current?.state.filter.filterModel.quickFilterValues?.length;\r\n\r\n return (\r\n <GridToolbarContainer>\r\n <GridToolbarColumnsButton />\r\n <GridToolbarFilterButton />\r\n <GridToolbarExport />\r\n {showNewRowButton && <Button size=\"small\" startIcon={<Add />} onClick={handleOnAddRecordClick} disabled={hasActiveFilters}>{t(\"Layout.AddRow\")}</Button>}\r\n {props.actions?.map(action => action)}\r\n\r\n <Box sx={{ flexGrow: 1 }} />\r\n\r\n <GridToolbarQuickFilter />\r\n </GridToolbarContainer>\r\n );\r\n};"]}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Box, useTheme } from "@mui/material";
|
|
3
|
-
export const TableContainer = ({ sx, ...props }) => {
|
|
4
|
-
const theme = useTheme();
|
|
5
|
-
return (_jsx(Box, { ...props, sx: {
|
|
6
|
-
height: { xs: "calc(100vh - 56px)", sm: "calc(100vh - 64px)" },
|
|
7
|
-
"& .MuiDataGrid-cell--editing": {
|
|
8
|
-
"& .MuiInputBase-root": {
|
|
9
|
-
height: "100%",
|
|
10
|
-
},
|
|
11
|
-
},
|
|
12
|
-
"& .MuiDataGrid-columnHeaderTitle": {
|
|
13
|
-
fontWeight: "600",
|
|
14
|
-
},
|
|
15
|
-
"& .MuiDataGrid-cell": {
|
|
16
|
-
display: "flex",
|
|
17
|
-
alignItems: "center",
|
|
18
|
-
},
|
|
19
|
-
"& .Mui-error": {
|
|
20
|
-
backgroundColor: theme.palette.error.main,
|
|
21
|
-
color: theme.palette.error.contrastText
|
|
22
|
-
},
|
|
23
|
-
"& .MuiDataGrid-booleanCell[data-value=\"true\"]": {
|
|
24
|
-
color: `${theme.palette.success.main}!important`
|
|
25
|
-
},
|
|
26
|
-
"& .MuiDataGrid-booleanCell[data-value=\"false\"]": {
|
|
27
|
-
color: `${theme.palette.error.main}!important`
|
|
28
|
-
},
|
|
29
|
-
...sx
|
|
30
|
-
}, children: props.children }));
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=TableContainer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TableContainer.js","sourceRoot":"","sources":["../../../../src/components/dataGrid/TableContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAY,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGxD,MAAM,CAAC,MAAM,cAAc,GAAuB,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACnE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,OAAO,CACH,KAAC,GAAG,OACI,KAAK,EACT,EAAE,EAAE;YACA,MAAM,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,oBAAoB,EAAE;YAC9D,8BAA8B,EAAE;gBAC5B,sBAAsB,EAAE;oBACpB,MAAM,EAAE,MAAM;iBACjB;aACJ;YACD,kCAAkC,EAAE;gBAChC,UAAU,EAAE,KAAK;aACpB;YACD,qBAAqB,EAAE;gBACnB,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,QAAQ;aACvB;YACD,cAAc,EAAE;gBACZ,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;gBACzC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY;aAC1C;YACD,iDAAiD,EAAE;gBAC/C,KAAK,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,YAAY;aACnD;YACD,kDAAkD,EAAE;gBAChD,KAAK,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,YAAY;aACjD;YACD,GAAG,EAAE;SACR,YACA,KAAK,CAAC,QAAQ,GACb,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { Box, BoxProps, useTheme } from \"@mui/material\";\r\nimport React from \"react\";\r\n\r\nexport const TableContainer: React.FC<BoxProps> = ({ sx, ...props }) => {\r\n const theme = useTheme();\r\n\r\n return (\r\n <Box\r\n {...props}\r\n sx={{\r\n height: { xs: \"calc(100vh - 56px)\", sm: \"calc(100vh - 64px)\" },\r\n \"& .MuiDataGrid-cell--editing\": {\r\n \"& .MuiInputBase-root\": {\r\n height: \"100%\",\r\n },\r\n },\r\n \"& .MuiDataGrid-columnHeaderTitle\": {\r\n fontWeight: \"600\",\r\n },\r\n \"& .MuiDataGrid-cell\": {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n \"& .Mui-error\": {\r\n backgroundColor: theme.palette.error.main,\r\n color: theme.palette.error.contrastText\r\n },\r\n \"& .MuiDataGrid-booleanCell[data-value=\\\"true\\\"]\": {\r\n color: `${theme.palette.success.main}!important`\r\n },\r\n \"& .MuiDataGrid-booleanCell[data-value=\\\"false\\\"]\": {\r\n color: `${theme.palette.error.main}!important`\r\n },\r\n ...sx\r\n }}>\r\n {props.children}\r\n </Box>\r\n );\r\n};"]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { AutocompleteProps, TextFieldProps } from "@mui/material";
|
|
2
|
-
import { FC } from "react";
|
|
3
|
-
import { FormOmittedProps } from "../../utils/FormUtils";
|
|
4
|
-
export interface FormAutocompleteProps extends Omit<AutocompleteProps<any, boolean, boolean, boolean>, FormOmittedProps> {
|
|
5
|
-
textFieldProps?: Omit<TextFieldProps, FormOmittedProps>;
|
|
6
|
-
}
|
|
7
|
-
export declare const FormAutocomplete: FC<FormAutocompleteProps>;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Autocomplete, TextField } from "@mui/material";
|
|
3
|
-
import { getFieldStatus } from "../../utils/FormUtils";
|
|
4
|
-
import { useFieldContext } from "../../hooks/FormHooks";
|
|
5
|
-
export const FormAutocomplete = ({ textFieldProps, ...autocompleteProps }) => {
|
|
6
|
-
const field = useFieldContext();
|
|
7
|
-
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
8
|
-
return (_jsx(Autocomplete, { value: field.state.value, onChange: (_, value) => !autocompleteProps.freeSolo && field.handleChange(value), onInputChange: (_, value, reason) => reason !== "reset" && autocompleteProps.freeSolo && field.handleChange(value), onBlur: field.handleBlur, "aria-label": field.name, ...autocompleteProps, renderInput: (params) => _jsx(TextField, { ...params, name: field.name, error: isTouched && hasError, helperText: isTouched && helperText, ...textFieldProps }) }));
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=FormAutocomplete.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormAutocomplete.js","sourceRoot":"","sources":["../../../../src/components/form/FormAutocomplete.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAqB,SAAS,EAAkB,MAAM,eAAe,CAAC;AAG3F,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,EAAE,cAAc,EAAE,GAAG,iBAAiB,EAAE,EAAE,EAAE;IACpG,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,KAAC,YAAY,IACT,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAChF,aAAa,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,OAAO,IAAI,iBAAiB,CAAC,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAClH,MAAM,EAAE,KAAK,CAAC,UAAU,gBACZ,KAAK,CAAC,IAAI,KAClB,iBAAiB,EACrB,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CACpB,KAAC,SAAS,OACF,MAAM,EACV,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,SAAS,IAAI,QAAQ,EAC5B,UAAU,EAAE,SAAS,IAAI,UAAU,KAC/B,cAAc,GACpB,GAER,CACL,CAAA;AACL,CAAC,CAAA","sourcesContent":["import { Autocomplete, AutocompleteProps, TextField, TextFieldProps } from \"@mui/material\";\r\nimport { FC } from \"react\";\r\n\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\n\r\nexport interface FormAutocompleteProps extends Omit<AutocompleteProps<any, boolean, boolean, boolean>, FormOmittedProps> {\r\n textFieldProps?: Omit<TextFieldProps, FormOmittedProps>;\r\n}\r\n\r\nexport const FormAutocomplete: FC<FormAutocompleteProps> = ({ textFieldProps, ...autocompleteProps }) => {\r\n const field = useFieldContext();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <Autocomplete\r\n value={field.state.value}\r\n onChange={(_, value) => !autocompleteProps.freeSolo && field.handleChange(value)}\r\n onInputChange={(_, value, reason) => reason !== \"reset\" && autocompleteProps.freeSolo && field.handleChange(value)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...autocompleteProps}\r\n renderInput={(params) =>\r\n <TextField\r\n {...params}\r\n name={field.name}\r\n error={isTouched && hasError}\r\n helperText={isTouched && helperText}\r\n {...textFieldProps}\r\n />\r\n }\r\n />\r\n )\r\n}"]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { CheckboxProps } from "@mui/material";
|
|
2
|
-
import { FC } from "react";
|
|
3
|
-
import { FormOmittedProps } from "../../utils/FormUtils";
|
|
4
|
-
export interface FormCheckboxProps extends Omit<CheckboxProps, FormOmittedProps> {
|
|
5
|
-
label?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare const FormCheckbox: FC<FormCheckboxProps>;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Checkbox, FormControl, FormControlLabel, FormHelperText } from "@mui/material";
|
|
3
|
-
import { useFieldContext } from "../../hooks/FormHooks";
|
|
4
|
-
import { getFieldStatus } from "../../utils/FormUtils";
|
|
5
|
-
export const FormCheckbox = (props) => {
|
|
6
|
-
var _a;
|
|
7
|
-
const field = useFieldContext();
|
|
8
|
-
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
9
|
-
return (_jsxs(FormControl, { component: "fieldset", children: [_jsx(FormControlLabel, { control: _jsx(Checkbox, { name: field.name, checked: Boolean(field.state.value), onChange: (e) => field.handleChange(e.target.checked), onBlur: field.handleBlur, "aria-label": field.name, ...props }), label: (_a = props.label) !== null && _a !== void 0 ? _a : "" }), isTouched && hasError && _jsx(FormHelperText, { error: hasError, children: helperText })] }));
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=FormCheckbox.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormCheckbox.js","sourceRoot":"","sources":["../../../../src/components/form/FormCheckbox.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAiB,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMzE,MAAM,CAAC,MAAM,YAAY,GAA0B,CAAC,KAAK,EAAE,EAAE;;IACzD,MAAM,KAAK,GAAG,eAAe,EAA8B,CAAC;IAC5D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,MAAC,WAAW,IAAC,SAAS,EAAC,UAAU,aAC7B,KAAC,gBAAgB,IACb,OAAO,EACH,KAAC,QAAQ,IACL,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EACnC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACrD,MAAM,EAAE,KAAK,CAAC,UAAU,gBACZ,KAAK,CAAC,IAAI,KAClB,KAAK,GACX,EAEN,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,EAAE,GAC1B,EACD,SAAS,IAAI,QAAQ,IAAI,KAAC,cAAc,IAAC,KAAK,EAAE,QAAQ,YAAG,UAAU,GAAkB,IAC9E,CACjB,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { Checkbox, CheckboxProps, FormControl, FormControlLabel, FormHelperText } from \"@mui/material\";\r\nimport { FC } from \"react\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\n\r\nexport interface FormCheckboxProps extends Omit<CheckboxProps, FormOmittedProps> {\r\n label?: string;\r\n}\r\n\r\nexport const FormCheckbox: FC<FormCheckboxProps> = (props) => {\r\n const field = useFieldContext<boolean | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n <FormControlLabel\r\n control={\r\n <Checkbox\r\n name={field.name}\r\n checked={Boolean(field.state.value)}\r\n onChange={(e) => field.handleChange(e.target.checked)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n }\r\n label={props.label ?? \"\"}\r\n />\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { TextFieldProps } from "@mui/material";
|
|
2
|
-
import { DatePickerProps } from "@mui/x-date-pickers-pro";
|
|
3
|
-
import { FC } from "react";
|
|
4
|
-
import { FormOmittedProps } from "../../utils/FormUtils";
|
|
5
|
-
import { Moment } from "moment";
|
|
6
|
-
export interface FormDatePickerProps extends Omit<DatePickerProps<Moment>, FormOmittedProps> {
|
|
7
|
-
textFieldProps?: TextFieldProps;
|
|
8
|
-
}
|
|
9
|
-
export declare const FormDatePicker: FC<FormDatePickerProps>;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { DatePicker } from "@mui/x-date-pickers-pro";
|
|
3
|
-
import { useFieldContext } from "../../hooks/FormHooks";
|
|
4
|
-
import { getFieldStatus } from "../../utils/FormUtils";
|
|
5
|
-
import moment from "moment";
|
|
6
|
-
export const FormDatePicker = (props) => {
|
|
7
|
-
const field = useFieldContext();
|
|
8
|
-
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
9
|
-
return (_jsx(DatePicker, { name: field.name, value: field.state.value ? moment(field.state.value) : null, onChange: (value) => field.handleChange(value ? value.format() : null), slotProps: {
|
|
10
|
-
textField: {
|
|
11
|
-
onBlur: field.handleBlur,
|
|
12
|
-
error: isTouched && hasError,
|
|
13
|
-
helperText: isTouched && helperText,
|
|
14
|
-
...props.textFieldProps
|
|
15
|
-
},
|
|
16
|
-
...props.slotProps
|
|
17
|
-
}, "aria-label": field.name, ...props }));
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=FormDatePicker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormDatePicker.js","sourceRoot":"","sources":["../../../../src/components/form/FormDatePicker.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAmB,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,MAAkB,MAAM,QAAQ,CAAC;AAMxC,MAAM,CAAC,MAAM,cAAc,GAA4B,CAAC,KAAK,EAAE,EAAE;IAC7D,MAAM,KAAK,GAAG,eAAe,EAA6B,CAAC;IAC3D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,KAAC,UAAU,IACP,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAC3D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACtE,SAAS,EAAE;YACP,SAAS,EAAE;gBACP,MAAM,EAAE,KAAK,CAAC,UAAU;gBACxB,KAAK,EAAE,SAAS,IAAI,QAAQ;gBAC5B,UAAU,EAAE,SAAS,IAAI,UAAU;gBACnC,GAAG,KAAK,CAAC,cAAc;aAC1B;YACD,GAAG,KAAK,CAAC,SAAS;SACrB,gBACW,KAAK,CAAC,IAAI,KAClB,KAAK,GACX,CACL,CAAA;AACL,CAAC,CAAA","sourcesContent":["import { TextFieldProps } from \"@mui/material\";\r\nimport { DatePicker, DatePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport { FC } from \"react\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\nimport moment, { Moment } from \"moment\";\r\n\r\nexport interface FormDatePickerProps extends Omit<DatePickerProps<Moment>, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormDatePicker: FC<FormDatePickerProps> = (props) => {\r\n const field = useFieldContext<string | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <DatePicker\r\n name={field.name}\r\n value={field.state.value ? moment(field.state.value) : null}\r\n onChange={(value) => field.handleChange(value ? value.format() : null)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n )\r\n}"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { TextFieldProps } from "@mui/material";
|
|
2
|
-
import { DateTimePickerProps } from "@mui/x-date-pickers-pro";
|
|
3
|
-
import { FC } from "react";
|
|
4
|
-
import { FormOmittedProps } from "../../utils/FormUtils";
|
|
5
|
-
import { Moment } from "moment";
|
|
6
|
-
export interface FormDateTimePickerProps extends Omit<DateTimePickerProps<Moment>, FormOmittedProps> {
|
|
7
|
-
textFieldProps?: TextFieldProps;
|
|
8
|
-
}
|
|
9
|
-
export declare const FormDateTimePicker: FC<FormDateTimePickerProps>;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { DateTimePicker } from "@mui/x-date-pickers-pro";
|
|
3
|
-
import { useFieldContext } from "../../hooks/FormHooks";
|
|
4
|
-
import { getFieldStatus } from "../../utils/FormUtils";
|
|
5
|
-
import moment from "moment";
|
|
6
|
-
export const FormDateTimePicker = (props) => {
|
|
7
|
-
const field = useFieldContext();
|
|
8
|
-
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
9
|
-
return (_jsx(DateTimePicker, { name: field.name, value: field.state.value ? moment(field.state.value) : null, onChange: (value) => field.handleChange(value ? value.format() : null), slotProps: {
|
|
10
|
-
textField: {
|
|
11
|
-
onBlur: field.handleBlur,
|
|
12
|
-
error: isTouched && hasError,
|
|
13
|
-
helperText: isTouched && helperText,
|
|
14
|
-
...props.textFieldProps,
|
|
15
|
-
},
|
|
16
|
-
...props.slotProps
|
|
17
|
-
}, "aria-label": field.name, ...props }));
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=FormDateTimePicker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormDateTimePicker.js","sourceRoot":"","sources":["../../../../src/components/form/FormDateTimePicker.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAuB,MAAM,yBAAyB,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,MAAkB,MAAM,QAAQ,CAAC;AAMxC,MAAM,CAAC,MAAM,kBAAkB,GAAgC,CAAC,KAAK,EAAE,EAAE;IACrE,MAAM,KAAK,GAAG,eAAe,EAA6B,CAAC;IAC3D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,KAAC,cAAc,IACX,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAC3D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACtE,SAAS,EAAE;YACP,SAAS,EAAE;gBACP,MAAM,EAAE,KAAK,CAAC,UAAU;gBACxB,KAAK,EAAE,SAAS,IAAI,QAAQ;gBAC5B,UAAU,EAAE,SAAS,IAAI,UAAU;gBACnC,GAAG,KAAK,CAAC,cAAc;aAC1B;YACD,GAAG,KAAK,CAAC,SAAS;SACrB,gBACW,KAAK,CAAC,IAAI,KAClB,KAAK,GACX,CACL,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { TextFieldProps } from \"@mui/material\";\r\nimport { DateTimePicker, DateTimePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport { FC } from \"react\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\nimport moment, { Moment } from \"moment\";\r\n\r\nexport interface FormDateTimePickerProps extends Omit<DateTimePickerProps<Moment>, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormDateTimePicker: FC<FormDateTimePickerProps> = (props) => {\r\n const field = useFieldContext<string | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <DateTimePicker\r\n name={field.name}\r\n value={field.state.value ? moment(field.state.value) : null}\r\n onChange={(value) => field.handleChange(value ? value.format() : null)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps,\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};\r\n"]}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { TextFieldProps } from '@mui/material';
|
|
2
|
-
import { FC } from 'react';
|
|
3
|
-
import { FormOmittedProps } from "../../utils/FormUtils";
|
|
4
|
-
import { NumericFormatProps, InputAttributes } from 'react-number-format/types/types';
|
|
5
|
-
interface FormTextFieldProps extends Omit<TextFieldProps, FormOmittedProps> {
|
|
6
|
-
}
|
|
7
|
-
export interface FormNumberFieldProps extends FormTextFieldProps {
|
|
8
|
-
defaultValue?: number | null;
|
|
9
|
-
options?: Omit<NumericFormatProps<InputAttributes>, "customInput" | "onValueChange" | keyof InputAttributes>;
|
|
10
|
-
}
|
|
11
|
-
export declare const FormNumberField: FC<FormNumberFieldProps>;
|
|
12
|
-
export {};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { TextField } from '@mui/material';
|
|
3
|
-
import { NumericFormat } from 'react-number-format';
|
|
4
|
-
import { useFieldContext } from "../../hooks/FormHooks";
|
|
5
|
-
import { getFieldStatus } from "../../utils/FormUtils";
|
|
6
|
-
export const FormNumberField = ({ options, ...props }) => {
|
|
7
|
-
var _a;
|
|
8
|
-
const field = useFieldContext();
|
|
9
|
-
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
10
|
-
return (_jsx(NumericFormat, { customInput: TextField, name: field.name, value: (_a = field.state.value) !== null && _a !== void 0 ? _a : '', onValueChange: ({ floatValue }) => field.handleChange(floatValue), onBlur: field.handleBlur, error: isTouched && hasError, helperText: isTouched && helperText, "aria-label": field.name, ...props, ...options }));
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=FormNumberField.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormNumberField.js","sourceRoot":"","sources":["../../../../src/components/form/FormNumberField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAUzE,MAAM,CAAC,MAAM,eAAe,GAA6B,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;;IAClF,MAAM,KAAK,GAAG,eAAe,EAA6B,CAAC;IAC3D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACN,KAAC,aAAa,IACb,WAAW,EAAE,SAAS,EACtB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,mCAAI,EAAE,EAC9B,aAAa,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,EACjE,MAAM,EAAE,KAAK,CAAC,UAAU,EACxB,KAAK,EAAE,SAAS,IAAI,QAAQ,EAC5B,UAAU,EAAE,SAAS,IAAI,UAAU,gBACvB,KAAK,CAAC,IAAI,KAClB,KAAK,KACL,OAAO,GACV,CACF,CAAC;AACH,CAAC,CAAA","sourcesContent":["import { TextField, TextFieldProps } from '@mui/material';\r\nimport { FC } from 'react';\r\nimport { NumericFormat } from 'react-number-format';\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\nimport { NumericFormatProps, InputAttributes } from 'react-number-format/types/types';\r\n\r\ninterface FormTextFieldProps extends Omit<TextFieldProps, FormOmittedProps> { }\r\n\r\nexport interface FormNumberFieldProps extends FormTextFieldProps {\r\n\tdefaultValue?: number | null;\r\n\toptions?: Omit<NumericFormatProps<InputAttributes>, \"customInput\" | \"onValueChange\" | keyof InputAttributes>;\r\n}\r\n\r\nexport const FormNumberField: FC<FormNumberFieldProps> = ({ options, ...props }) => {\r\n\tconst field = useFieldContext<number | null | undefined>();\r\n\tconst { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n\treturn (\r\n\t\t<NumericFormat\r\n\t\t\tcustomInput={TextField}\r\n\t\t\tname={field.name}\r\n\t\t\tvalue={field.state.value ?? ''}\r\n\t\t\tonValueChange={({ floatValue }) => field.handleChange(floatValue)}\r\n\t\t\tonBlur={field.handleBlur}\r\n\t\t\terror={isTouched && hasError}\r\n\t\t\thelperText={isTouched && helperText}\r\n\t\t\taria-label={field.name}\r\n\t\t\t{...props}\r\n\t\t\t{...options}\r\n\t\t/>\r\n\t);\r\n}"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { RadioGroupProps } from "@mui/material";
|
|
2
|
-
import { FC } from "react";
|
|
3
|
-
import { FormOmittedProps } from "../../utils/FormUtils";
|
|
4
|
-
interface Option {
|
|
5
|
-
label: string;
|
|
6
|
-
value: string | number;
|
|
7
|
-
}
|
|
8
|
-
export interface FormRadioGroupProps extends Omit<RadioGroupProps, FormOmittedProps> {
|
|
9
|
-
label?: string;
|
|
10
|
-
options: Option[];
|
|
11
|
-
}
|
|
12
|
-
export declare const FormRadioGroup: FC<FormRadioGroupProps>;
|
|
13
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { FormControl, FormControlLabel, FormHelperText, FormLabel, Radio, RadioGroup } from "@mui/material";
|
|
3
|
-
import { useFieldContext } from "../../hooks/FormHooks";
|
|
4
|
-
import { getFieldStatus } from "../../utils/FormUtils";
|
|
5
|
-
export const FormRadioGroup = ({ label, options, ...props }) => {
|
|
6
|
-
var _a;
|
|
7
|
-
const field = useFieldContext();
|
|
8
|
-
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
9
|
-
return (_jsxs(FormControl, { component: "fieldset", children: [label && _jsx(FormLabel, { component: "legend", children: label }), _jsx(RadioGroup, { name: field.name, value: (_a = field.state.value) !== null && _a !== void 0 ? _a : "", onChange: (e) => field.handleChange(e.target.value), onBlur: field.handleBlur, "aria-label": field.name, ...props, children: options.map((option) => (_jsx(FormControlLabel, { value: option.value, control: _jsx(Radio, {}), label: option.label }, option.value))) }), isTouched && hasError && _jsx(FormHelperText, { error: hasError, children: helperText })] }));
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=FormRadioGroup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormRadioGroup.js","sourceRoot":"","sources":["../../../../src/components/form/FormRadioGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAmB,MAAM,eAAe,CAAC;AAE7H,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAYzE,MAAM,CAAC,MAAM,cAAc,GAA4B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;;IACpF,MAAM,KAAK,GAAG,eAAe,EAAsC,CAAC;IACpE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,MAAC,WAAW,IAAC,SAAS,EAAC,UAAU,aAC5B,KAAK,IAAI,KAAC,SAAS,IAAC,SAAS,EAAC,QAAQ,YAAE,KAAK,GAAa,EAC3D,KAAC,UAAU,IACP,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,mCAAI,EAAE,EAC9B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACnD,MAAM,EAAE,KAAK,CAAC,UAAU,gBACZ,KAAK,CAAC,IAAI,KAClB,KAAK,YAER,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACrB,KAAC,gBAAgB,IAEb,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,OAAO,EAAE,KAAC,KAAK,KAAG,EAClB,KAAK,EAAE,MAAM,CAAC,KAAK,IAHd,MAAM,CAAC,KAAK,CAInB,CACL,CAAC,GACO,EACZ,SAAS,IAAI,QAAQ,IAAI,KAAC,cAAc,IAAC,KAAK,EAAE,QAAQ,YAAG,UAAU,GAAkB,IAC9E,CACjB,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { FormControl, FormControlLabel, FormHelperText, FormLabel, Radio, RadioGroup, RadioGroupProps } from \"@mui/material\";\r\nimport { FC } from \"react\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\n\r\ninterface Option {\r\n label: string;\r\n value: string | number;\r\n}\r\n\r\nexport interface FormRadioGroupProps extends Omit<RadioGroupProps, FormOmittedProps> {\r\n label?: string;\r\n options: Option[];\r\n}\r\n\r\nexport const FormRadioGroup: FC<FormRadioGroupProps> = ({ label, options, ...props }) => {\r\n const field = useFieldContext<string | number | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n {label && <FormLabel component=\"legend\">{label}</FormLabel>}\r\n <RadioGroup\r\n name={field.name}\r\n value={field.state.value ?? \"\"}\r\n onChange={(e) => field.handleChange(e.target.value)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n >\r\n {options.map((option) => (\r\n <FormControlLabel\r\n key={option.value}\r\n value={option.value}\r\n control={<Radio />}\r\n label={option.label}\r\n />\r\n ))}\r\n </RadioGroup>\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};\r\n"]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { SliderProps } from "@mui/material";
|
|
2
|
-
import { FC } from "react";
|
|
3
|
-
import { FormOmittedProps } from "../../utils/FormUtils";
|
|
4
|
-
export interface FormSliderProps extends Omit<SliderProps, FormOmittedProps> {
|
|
5
|
-
label?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare const FormSlider: FC<FormSliderProps>;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { FormControl, FormHelperText, FormLabel, Slider } from "@mui/material";
|
|
3
|
-
import { useFieldContext } from "../../hooks/FormHooks";
|
|
4
|
-
import { getFieldStatus } from "../../utils/FormUtils";
|
|
5
|
-
export const FormSlider = ({ label, ...props }) => {
|
|
6
|
-
var _a;
|
|
7
|
-
const field = useFieldContext();
|
|
8
|
-
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
9
|
-
return (_jsxs(FormControl, { component: "fieldset", children: [label && _jsx(FormLabel, { children: label }), _jsx(Slider, { name: field.name, value: (_a = field.state.value) !== null && _a !== void 0 ? _a : 0, onChange: (_, value) => field.handleChange(Array.isArray(value) ? value[0] : value), onBlur: field.handleBlur, "aria-label": field.name, ...props }), isTouched && hasError && _jsx(FormHelperText, { error: hasError, children: helperText })] }));
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=FormSlider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormSlider.js","sourceRoot":"","sources":["../../../../src/components/form/FormSlider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAe,MAAM,eAAe,CAAC;AAE5F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMzE,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;;IACnE,MAAM,KAAK,GAAG,eAAe,EAA6B,CAAC;IAC3D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,MAAC,WAAW,IAAC,SAAS,EAAC,UAAU,aAC5B,KAAK,IAAI,KAAC,SAAS,cAAE,KAAK,GAAa,EACxC,KAAC,MAAM,IACH,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,mCAAI,CAAC,EAC7B,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACnF,MAAM,EAAE,KAAK,CAAC,UAAU,gBACZ,KAAK,CAAC,IAAI,KAClB,KAAK,GACX,EACD,SAAS,IAAI,QAAQ,IAAI,KAAC,cAAc,IAAC,KAAK,EAAE,QAAQ,YAAG,UAAU,GAAkB,IAC9E,CACjB,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { FormControl, FormHelperText, FormLabel, Slider, SliderProps } from \"@mui/material\";\r\nimport { FC } from \"react\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\n\r\nexport interface FormSliderProps extends Omit<SliderProps, FormOmittedProps> {\r\n label?: string;\r\n}\r\n\r\nexport const FormSlider: FC<FormSliderProps> = ({ label, ...props }) => {\r\n const field = useFieldContext<number | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n {label && <FormLabel>{label}</FormLabel>}\r\n <Slider\r\n name={field.name}\r\n value={field.state.value ?? 0}\r\n onChange={(_, value) => field.handleChange(Array.isArray(value) ? value[0] : value)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};\r\n"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Button } from "@mui/material";
|
|
3
|
-
import { useFormContext } from "../../hooks/FormHooks";
|
|
4
|
-
export const FormSubmitButton = (props) => {
|
|
5
|
-
const form = useFormContext();
|
|
6
|
-
const handleClick = (e) => {
|
|
7
|
-
e.preventDefault();
|
|
8
|
-
e.stopPropagation();
|
|
9
|
-
form.handleSubmit();
|
|
10
|
-
};
|
|
11
|
-
return (_jsx(form.Subscribe, { selector: (state) => [state.canSubmit, state.isSubmitting], children: ([canSubmit, isSubmitting]) => (_jsx(Button, { loading: isSubmitting, disabled: !canSubmit, onClick: handleClick, "aria-label": "submit", ...props })) }));
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=FormSubmitButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormSubmitButton.js","sourceRoot":"","sources":["../../../../src/components/form/FormSubmitButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAe,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIvD,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,KAAK,EAAE,EAAE;IACjE,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAE9B,MAAM,WAAW,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC3D,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,CACH,KAAC,IAAI,CAAC,SAAS,IAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,YACrE,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAC5B,KAAC,MAAM,IACH,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,CAAC,SAAS,EACpB,OAAO,EAAE,WAAW,gBACT,QAAQ,KACf,KAAK,GACX,CACL,GACY,CACpB,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { Button, ButtonProps } from \"@mui/material\";\r\nimport { FC } from \"react\";\r\nimport { useFormContext } from \"../../hooks/FormHooks\";\r\n\r\nexport interface FormSubmitButtonProps extends Omit<ButtonProps, \"loading\" | \"disabled\" | \"onClick\"> { }\r\n\r\nexport const FormSubmitButton: FC<FormSubmitButtonProps> = (props) => {\r\n const form = useFormContext();\r\n\r\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n form.handleSubmit();\r\n };\r\n\r\n return (\r\n <form.Subscribe selector={(state) => [state.canSubmit, state.isSubmitting]}>\r\n {([canSubmit, isSubmitting]) => (\r\n <Button\r\n loading={isSubmitting}\r\n disabled={!canSubmit}\r\n onClick={handleClick}\r\n aria-label=\"submit\"\r\n {...props}\r\n />\r\n )}\r\n </form.Subscribe>\r\n );\r\n};"]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { SwitchProps } from "@mui/material";
|
|
2
|
-
import { FC } from "react";
|
|
3
|
-
import { FormOmittedProps } from "../../utils/FormUtils";
|
|
4
|
-
export interface FormSwitchProps extends Omit<SwitchProps, FormOmittedProps> {
|
|
5
|
-
label?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare const FormSwitch: FC<FormSwitchProps>;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { FormControl, FormControlLabel, FormHelperText, Switch } from "@mui/material";
|
|
3
|
-
import { useFieldContext } from "../../hooks/FormHooks";
|
|
4
|
-
import { getFieldStatus } from "../../utils/FormUtils";
|
|
5
|
-
export const FormSwitch = (props) => {
|
|
6
|
-
var _a;
|
|
7
|
-
const field = useFieldContext();
|
|
8
|
-
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
9
|
-
return (_jsxs(FormControl, { component: "fieldset", children: [_jsx(FormControlLabel, { control: _jsx(Switch, { name: field.name, checked: Boolean(field.state.value), onChange: (e) => field.handleChange(e.target.checked), onBlur: field.handleBlur, "aria-label": field.name, ...props }), label: (_a = props.label) !== null && _a !== void 0 ? _a : "" }), isTouched && hasError && _jsx(FormHelperText, { error: hasError, children: helperText })] }));
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=FormSwitch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormSwitch.js","sourceRoot":"","sources":["../../../../src/components/form/FormSwitch.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,EAAe,MAAM,eAAe,CAAC;AAEnG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMzE,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,KAAK,EAAE,EAAE;;IACrD,MAAM,KAAK,GAAG,eAAe,EAA8B,CAAC;IAC5D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,MAAC,WAAW,IAAC,SAAS,EAAC,UAAU,aAC7B,KAAC,gBAAgB,IACb,OAAO,EACH,KAAC,MAAM,IACH,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EACnC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACrD,MAAM,EAAE,KAAK,CAAC,UAAU,gBACZ,KAAK,CAAC,IAAI,KAClB,KAAK,GACX,EAEN,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,EAAE,GAC1B,EACD,SAAS,IAAI,QAAQ,IAAI,KAAC,cAAc,IAAC,KAAK,EAAE,QAAQ,YAAG,UAAU,GAAkB,IAC9E,CACjB,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { FormControl, FormControlLabel, FormHelperText, Switch, SwitchProps } from \"@mui/material\";\r\nimport { FC } from \"react\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\n\r\nexport interface FormSwitchProps extends Omit<SwitchProps, FormOmittedProps> {\r\n label?: string;\r\n}\r\n\r\nexport const FormSwitch: FC<FormSwitchProps> = (props) => {\r\n const field = useFieldContext<boolean | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n <FormControlLabel\r\n control={\r\n <Switch\r\n name={field.name}\r\n checked={Boolean(field.state.value)}\r\n onChange={(e) => field.handleChange(e.target.checked)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n }\r\n label={props.label ?? \"\"}\r\n />\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};\r\n"]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { TextFieldProps } from "@mui/material";
|
|
2
|
-
import { FC } from "react";
|
|
3
|
-
import { FormOmittedProps } from "../../utils/FormUtils";
|
|
4
|
-
export interface FormTextFieldProps extends Omit<TextFieldProps, FormOmittedProps> {
|
|
5
|
-
type?: "color" | "email" | "password" | "search" | "tel" | "text" | "url";
|
|
6
|
-
}
|
|
7
|
-
export declare const FormTextField: FC<FormTextFieldProps>;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { TextField } from "@mui/material";
|
|
3
|
-
import { useFieldContext } from "../../hooks/FormHooks";
|
|
4
|
-
import { getFieldStatus } from "../../utils/FormUtils";
|
|
5
|
-
export const FormTextField = (props) => {
|
|
6
|
-
var _a;
|
|
7
|
-
const field = useFieldContext();
|
|
8
|
-
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
9
|
-
return (_jsx(TextField, { name: field.name, value: (_a = field.state.value) !== null && _a !== void 0 ? _a : '', onChange: e => field.handleChange(e.target.value), onBlur: field.handleBlur, error: isTouched && hasError, helperText: isTouched && helperText, "aria-label": field.name, ...props }));
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=FormTextField.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormTextField.js","sourceRoot":"","sources":["../../../../src/components/form/FormTextField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMzE,MAAM,CAAC,MAAM,aAAa,GAA2B,CAAC,KAAK,EAAE,EAAE;;IAC3D,MAAM,KAAK,GAAG,eAAe,EAAsC,CAAC;IACpE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,KAAC,SAAS,IACN,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,mCAAI,EAAE,EAC9B,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACjD,MAAM,EAAE,KAAK,CAAC,UAAU,EACxB,KAAK,EAAE,SAAS,IAAI,QAAQ,EAC5B,UAAU,EAAE,SAAS,IAAI,UAAU,gBACvB,KAAK,CAAC,IAAI,KAClB,KAAK,GACX,CACL,CAAA;AACL,CAAC,CAAA","sourcesContent":["import { TextField, TextFieldProps } from \"@mui/material\";\r\nimport { FC } from \"react\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\n\r\nexport interface FormTextFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\r\n type?: \"color\" | \"email\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\"\r\n}\r\n\r\nexport const FormTextField: FC<FormTextFieldProps> = (props) => {\r\n const field = useFieldContext<string | number | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <TextField\r\n name={field.name}\r\n value={field.state.value ?? ''}\r\n onChange={e => field.handleChange(e.target.value)}\r\n onBlur={field.handleBlur}\r\n error={isTouched && hasError}\r\n helperText={isTouched && helperText}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n )\r\n}"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { User } from "../../models/User";
|
|
3
|
-
interface AccountMenuProps {
|
|
4
|
-
mode: "light" | "dark" | "system";
|
|
5
|
-
setMode: (mode: "light" | "dark" | "system") => void;
|
|
6
|
-
user: User;
|
|
7
|
-
}
|
|
8
|
-
export declare const AccountMenu: React.FC<AccountMenuProps>;
|
|
9
|
-
export {};
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useIsAuthenticated, useMsal } from "@azure/msal-react";
|
|
3
|
-
import { AccountCircle, ArrowBack, Brightness4, ChevronRight, DarkMode, LightMode, Login, Logout, SettingsBrightness, Translate } from "@mui/icons-material";
|
|
4
|
-
import { Avatar, Box, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemText, ListSubheader, Menu } from "@mui/material";
|
|
5
|
-
import { useQuery } from "@tanstack/react-query";
|
|
6
|
-
import { Fragment, useState } from "react";
|
|
7
|
-
import { useTranslation } from "react-i18next";
|
|
8
|
-
import { graphQueries } from "../../hooks/UseUser";
|
|
9
|
-
const drawerWidth = 240;
|
|
10
|
-
export const AccountMenu = ({ mode, setMode, user }) => {
|
|
11
|
-
const [anchorEl, setAnchorEl] = useState(null);
|
|
12
|
-
const [tab, setTab] = useState("settings");
|
|
13
|
-
const open = Boolean(anchorEl);
|
|
14
|
-
const { t, i18n } = useTranslation();
|
|
15
|
-
const { instance } = useMsal();
|
|
16
|
-
const isAuthenticated = useIsAuthenticated();
|
|
17
|
-
const { data: userPhoto } = useQuery({ ...graphQueries.sessionUserPhoto(), enabled: isAuthenticated });
|
|
18
|
-
const changeLanguage = (newLanguage) => () => {
|
|
19
|
-
i18n.changeLanguage(newLanguage)
|
|
20
|
-
.finally(() => closeMenu());
|
|
21
|
-
};
|
|
22
|
-
const changeMode = (newMode) => () => {
|
|
23
|
-
setMode(newMode);
|
|
24
|
-
closeMenu();
|
|
25
|
-
};
|
|
26
|
-
const openMenu = (e) => setAnchorEl(e.currentTarget);
|
|
27
|
-
const closeMenu = () => { setAnchorEl(null); setTimeout(() => setTab("settings"), 300); };
|
|
28
|
-
const login = () => instance.loginRedirect();
|
|
29
|
-
const logout = () => instance.logoutRedirect({
|
|
30
|
-
postLogoutRedirectUri: "/",
|
|
31
|
-
});
|
|
32
|
-
const changeTab = (newTab) => () => setTab(newTab);
|
|
33
|
-
const settings = (_jsxs(List, { component: "nav", subheader: _jsx(ListSubheader, { sx: { backgroundColor: "transparent" }, children: t("Layout.Settings") }), children: [_jsxs(ListItemButton, { onClick: changeTab("theme"), sx: { py: 0.3 }, children: [_jsx(ListItemIcon, { children: _jsx(Brightness4, {}) }), _jsx(ListItemText, { primary: t("Layout.Appearance"), secondary: t(`Layout.${mode.charAt(0).toUpperCase() + mode.slice(1)}`) }), _jsx(ChevronRight, {})] }), _jsxs(ListItemButton, { onClick: changeTab("language"), sx: { py: 0.3 }, children: [_jsx(ListItemIcon, { children: _jsx(Translate, {}) }), _jsx(ListItemText, { primary: t("Layout.Language"), secondary: i18n.resolvedLanguage === "en" ? "English" : "Čeština" }), _jsx(ChevronRight, {})] })] }));
|
|
34
|
-
const theme = (_jsxs(List, { subheader: _jsxs(ListSubheader, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [_jsx(IconButton, { size: "small", sx: { mr: 0.5 }, children: _jsx(ArrowBack, { fontSize: "small" }) }), " ", t("Layout.Appearance")] }), children: [_jsxs(ListItemButton, { onClick: changeMode("light"), disabled: mode === "light", children: [_jsx(ListItemIcon, { children: _jsx(LightMode, {}) }), _jsx(ListItemText, { primary: t("Layout.Light") })] }), _jsxs(ListItemButton, { onClick: changeMode("dark"), disabled: mode === "dark", children: [_jsx(ListItemIcon, { children: _jsx(DarkMode, {}) }), _jsx(ListItemText, { primary: t("Layout.Dark") })] }), _jsxs(ListItemButton, { onClick: changeMode("system"), disabled: mode === "system", children: [_jsx(ListItemIcon, { children: _jsx(SettingsBrightness, {}) }), _jsx(ListItemText, { primary: t("Layout.System") })] })] }));
|
|
35
|
-
const language = (_jsxs(List, { subheader: _jsxs(ListSubheader, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [_jsx(IconButton, { size: "small", sx: { mr: 0.5 }, children: _jsx(ArrowBack, { fontSize: "small" }) }), " ", t("Layout.Language")] }), children: [_jsx(ListItemButton, { onClick: changeLanguage("en"), disabled: i18n.resolvedLanguage === "en", children: _jsx(ListItemText, { primary: "English" }) }), _jsx(ListItemButton, { onClick: changeLanguage("cs"), disabled: i18n.resolvedLanguage === "cs", children: _jsx(ListItemText, { primary: "\u010Ce\u0161tina" }) })] }));
|
|
36
|
-
return (_jsxs(Fragment, { children: [_jsx(IconButton, { size: "small", edge: "end", onClick: openMenu, children: userPhoto ?
|
|
37
|
-
_jsx(Avatar, { src: userPhoto, sx: { width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 } } })
|
|
38
|
-
:
|
|
39
|
-
_jsx(AccountCircle, { sx: { width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 } } }) }), _jsx(Menu, { anchorEl: anchorEl, open: open, onClose: closeMenu, children: _jsxs(Box, { sx: { width: drawerWidth }, children: [_jsx(List, { disablePadding: true, children: isAuthenticated ?
|
|
40
|
-
_jsxs(Fragment, { children: [_jsx(ListItem, { children: _jsx(ListItemText, { primary: user.name, secondary: _jsxs("span", { children: [user.employeeId && _jsx("span", { children: user.employeeId }), user.employeeId && _jsx("br", {}), user.department && _jsx("span", { children: user.department })] }) }) }), _jsxs(ListItemButton, { onClick: logout, children: [_jsx(ListItemIcon, { children: _jsx(Logout, { color: "error" }) }), _jsx(ListItemText, { primary: t("Layout.Logout") })] })] })
|
|
41
|
-
:
|
|
42
|
-
_jsxs(ListItemButton, { onClick: login, children: [_jsx(ListItemIcon, { children: _jsx(Login, { color: "success" }) }), _jsx(ListItemText, { primary: t("Layout.LogIn") })] }) }), tab === "settings" && settings, tab === "theme" && theme, tab === "language" && language] }) })] }));
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=AccountMenu.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AccountMenu.js","sourceRoot":"","sources":["../../../../src/components/layout/AccountMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useIsAuthenticated, useMsal } from \"@azure/msal-react\";\r\nimport { AccountCircle, ArrowBack, Brightness4, ChevronRight, DarkMode, LightMode, Login, Logout, SettingsBrightness, Translate } from \"@mui/icons-material\";\r\nimport { Avatar, Box, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemText, ListSubheader, Menu } from \"@mui/material\";\r\nimport { useQuery } from \"@tanstack/react-query\";\r\nimport React, { Fragment, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { graphQueries } from \"../../hooks/UseUser\";\r\nimport { User } from \"../../models/User\";\r\n\r\nconst drawerWidth = 240;\r\ntype TabType = \"settings\" | \"theme\" | \"language\";\r\n\r\ninterface AccountMenuProps {\r\n mode: \"light\" | \"dark\" | \"system\";\r\n setMode: (mode: \"light\" | \"dark\" | \"system\") => void;\r\n user: User;\r\n}\r\n\r\nexport const AccountMenu: React.FC<AccountMenuProps> = ({ mode, setMode, user }) => {\r\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\r\n const [tab, setTab] = useState<TabType>(\"settings\");\r\n const open = Boolean(anchorEl);\r\n const { t, i18n } = useTranslation();\r\n const { instance } = useMsal();\r\n const isAuthenticated = useIsAuthenticated();\r\n\r\n const { data: userPhoto } = useQuery({ ...graphQueries.sessionUserPhoto(), enabled: isAuthenticated });\r\n\r\n const changeLanguage = (newLanguage: \"en\" | \"cs\") => () => {\r\n i18n.changeLanguage(newLanguage)\r\n .finally(() => closeMenu());\r\n };\r\n\r\n const changeMode = (newMode: \"light\" | \"dark\" | \"system\") => () => {\r\n setMode(newMode);\r\n closeMenu();\r\n };\r\n\r\n const openMenu = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => setAnchorEl(e.currentTarget);\r\n const closeMenu = () => { setAnchorEl(null); setTimeout(() => setTab(\"settings\"), 300); };\r\n\r\n const login = () => instance.loginRedirect();\r\n const logout = () => instance.logoutRedirect({\r\n postLogoutRedirectUri: \"/\",\r\n });\r\n\r\n const changeTab = (newTab: TabType) => () => setTab(newTab);\r\n\r\n const settings = (\r\n <List component=\"nav\" subheader={<ListSubheader sx={{ backgroundColor: \"transparent\" }}>{t(\"Layout.Settings\")}</ListSubheader>}>\r\n <ListItemButton onClick={changeTab(\"theme\")} sx={{ py: 0.3 }}>\r\n <ListItemIcon>\r\n <Brightness4 />\r\n </ListItemIcon>\r\n <ListItemText primary={t(\"Layout.Appearance\")} secondary={t(`Layout.${mode.charAt(0).toUpperCase() + mode.slice(1)}`)} />\r\n <ChevronRight />\r\n </ListItemButton>\r\n\r\n <ListItemButton onClick={changeTab(\"language\")} sx={{ py: 0.3 }}>\r\n <ListItemIcon>\r\n <Translate />\r\n </ListItemIcon>\r\n <ListItemText primary={t(\"Layout.Language\")} secondary={i18n.resolvedLanguage === \"en\" ? \"English\" : \"Čeština\"} />\r\n <ChevronRight />\r\n </ListItemButton>\r\n </List>\r\n );\r\n\r\n const theme = (\r\n <List subheader={\r\n <ListSubheader onClick={changeTab(\"settings\")} sx={{ backgroundColor: \"transparent\", display: \"flex\", alignItems: \"center\", px: 1, cursor: \"pointer\" }}>\r\n <IconButton size=\"small\" sx={{ mr: 0.5 }}>\r\n <ArrowBack fontSize=\"small\" />\r\n </IconButton> {t(\"Layout.Appearance\")}\r\n </ListSubheader>\r\n }>\r\n <ListItemButton onClick={changeMode(\"light\")} disabled={mode === \"light\"}>\r\n <ListItemIcon>\r\n <LightMode />\r\n </ListItemIcon>\r\n <ListItemText primary={t(\"Layout.Light\")} />\r\n </ListItemButton>\r\n <ListItemButton onClick={changeMode(\"dark\")} disabled={mode === \"dark\"}>\r\n <ListItemIcon>\r\n <DarkMode />\r\n </ListItemIcon>\r\n <ListItemText primary={t(\"Layout.Dark\")} />\r\n </ListItemButton>\r\n <ListItemButton onClick={changeMode(\"system\")} disabled={mode === \"system\"}>\r\n <ListItemIcon>\r\n <SettingsBrightness />\r\n </ListItemIcon>\r\n <ListItemText primary={t(\"Layout.System\")} />\r\n </ListItemButton>\r\n </List>\r\n );\r\n\r\n const language = (\r\n <List subheader={\r\n <ListSubheader onClick={changeTab(\"settings\")} sx={{ backgroundColor: \"transparent\", display: \"flex\", alignItems: \"center\", px: 1, cursor: \"pointer\" }}>\r\n <IconButton size=\"small\" sx={{ mr: 0.5 }}>\r\n <ArrowBack fontSize=\"small\" />\r\n </IconButton> {t(\"Layout.Language\")}\r\n </ListSubheader>\r\n }>\r\n <ListItemButton onClick={changeLanguage(\"en\")} disabled={i18n.resolvedLanguage === \"en\"}>\r\n <ListItemText primary=\"English\" />\r\n </ListItemButton>\r\n <ListItemButton onClick={changeLanguage(\"cs\")} disabled={i18n.resolvedLanguage === \"cs\"}>\r\n <ListItemText primary=\"Čeština\" />\r\n </ListItemButton>\r\n </List>\r\n );\r\n\r\n return (\r\n <Fragment>\r\n <IconButton size=\"small\" edge=\"end\" onClick={openMenu}>\r\n {userPhoto ?\r\n <Avatar src={userPhoto} sx={{ width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 } }} />\r\n :\r\n <AccountCircle sx={{ width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 } }} />\r\n }\r\n </IconButton>\r\n\r\n <Menu anchorEl={anchorEl} open={open} onClose={closeMenu}>\r\n <Box sx={{ width: drawerWidth }}>\r\n <List disablePadding>\r\n {isAuthenticated ?\r\n <Fragment>\r\n <ListItem>\r\n <ListItemText primary={user.name} secondary={\r\n <span>\r\n {user.employeeId && <span>{user.employeeId}</span>}\r\n {user.employeeId && <br />}\r\n {user.department && <span>{user.department}</span>}\r\n </span>\r\n } />\r\n </ListItem>\r\n\r\n <ListItemButton onClick={logout}>\r\n <ListItemIcon><Logout color=\"error\" /></ListItemIcon>\r\n <ListItemText primary={t(\"Layout.Logout\")} />\r\n </ListItemButton>\r\n </Fragment>\r\n :\r\n <ListItemButton onClick={login}>\r\n <ListItemIcon><Login color=\"success\" /></ListItemIcon>\r\n <ListItemText primary={t(\"Layout.LogIn\")} />\r\n </ListItemButton>\r\n }\r\n </List>\r\n\r\n {tab === \"settings\" && settings}\r\n {tab === \"theme\" && theme}\r\n {tab === \"language\" && language}\r\n </Box>\r\n </Menu>\r\n </Fragment>\r\n );\r\n};"]}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Close } from "@mui/icons-material";
|
|
3
|
-
import { Fade, Grid2, IconButton, Paper, Typography } from "@mui/material";
|
|
4
|
-
import { grey } from "@mui/material/colors";
|
|
5
|
-
import { useEffect, useState } from "react";
|
|
6
|
-
import { useTranslation } from "react-i18next";
|
|
7
|
-
import { environment } from "../../utils/Helpers";
|
|
8
|
-
import { hasRole } from "../../utils/Auth";
|
|
9
|
-
export const DevelopmentBanner = ({ user, hasNavigationRoutes }) => {
|
|
10
|
-
const { t } = useTranslation();
|
|
11
|
-
const [bannerOpen, setBannerOpen] = useState(false);
|
|
12
|
-
useEffect(() => {
|
|
13
|
-
if (!hasRole(user, ["wcz-developers"]) && (environment === "dev" || environment === "qas"))
|
|
14
|
-
setBannerOpen(true);
|
|
15
|
-
}, [user]);
|
|
16
|
-
const closeBanner = () => setBannerOpen(false);
|
|
17
|
-
return (_jsx(Fade, { appear: false, in: bannerOpen, children: _jsx(Paper, { square: true, variant: "outlined", tabIndex: -1, sx: theme => ({
|
|
18
|
-
position: "fixed",
|
|
19
|
-
bottom: 0,
|
|
20
|
-
left: { xs: 0, sm: hasNavigationRoutes ? 68.7 : 0 },
|
|
21
|
-
right: 0,
|
|
22
|
-
m: 0,
|
|
23
|
-
p: 2,
|
|
24
|
-
borderWidth: 0,
|
|
25
|
-
borderTopWidth: 1,
|
|
26
|
-
bgcolor: theme.palette.mode === "dark" ? grey[900] : grey[100]
|
|
27
|
-
}), children: _jsxs(Grid2, { container: true, justifyContent: "space-between", alignItems: "center", children: [_jsxs(Grid2, { size: 10, children: [_jsx(Typography, { fontWeight: "bold", children: t("Layout.DevelopmentDialogTitle") }), _jsx(Typography, { variant: "body2", children: t("Layout.DevelopmentDialogContent") })] }), _jsx(Grid2, { size: 2, sx: { p: 1, textAlign: "right" }, children: _jsx(IconButton, { size: "small", onClick: closeBanner, children: _jsx(Close, {}) }) })] }) }) }));
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=DevelopmentBanner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DevelopmentBanner.js","sourceRoot":"","sources":["../../../../src/components/layout/DevelopmentBanner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAO3C,MAAM,CAAC,MAAM,iBAAiB,GAAqC,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE;IACjG,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE7D,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,WAAW,KAAK,KAAK,CAAC;YACtF,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE/C,OAAO,CACH,KAAC,IAAI,IAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,YAC/B,KAAC,KAAK,IAAC,MAAM,QAAC,OAAO,EAAC,UAAU,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBACzD,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACnD,KAAK,EAAE,CAAC;gBACR,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,WAAW,EAAE,CAAC;gBACd,cAAc,EAAE,CAAC;gBACjB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;aACjE,CAAC,YACE,MAAC,KAAK,IAAC,SAAS,QAAC,cAAc,EAAC,eAAe,EAAC,UAAU,EAAC,QAAQ,aAC/D,MAAC,KAAK,IAAC,IAAI,EAAE,EAAE,aACX,KAAC,UAAU,IAAC,UAAU,EAAC,MAAM,YAAE,CAAC,CAAC,+BAA+B,CAAC,GAAc,EAC/E,KAAC,UAAU,IAAC,OAAO,EAAC,OAAO,YAAE,CAAC,CAAC,iCAAiC,CAAC,GAAc,IAC3E,EAER,KAAC,KAAK,IAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,YAC5C,KAAC,UAAU,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,WAAW,YACzC,KAAC,KAAK,KAAG,GACA,GACT,IACJ,GACJ,GACL,CACV,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { Close } from \"@mui/icons-material\";\r\nimport { Fade, Grid2, IconButton, Paper, Typography } from \"@mui/material\";\r\nimport { grey } from \"@mui/material/colors\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { User } from \"../../models/User\";\r\nimport { environment } from \"../../utils/Helpers\";\r\nimport { hasRole } from \"../../utils/Auth\";\r\n\r\ninterface DevelopmentBannerProps {\r\n user: User;\r\n hasNavigationRoutes: boolean;\r\n}\r\n\r\nexport const DevelopmentBanner: React.FC<DevelopmentBannerProps> = ({ user, hasNavigationRoutes }) => {\r\n const { t } = useTranslation();\r\n const [bannerOpen, setBannerOpen] = useState<boolean>(false);\r\n\r\n useEffect(() => {\r\n if (!hasRole(user, [\"wcz-developers\"]) && (environment === \"dev\" || environment === \"qas\"))\r\n setBannerOpen(true);\r\n }, [user]);\r\n\r\n const closeBanner = () => setBannerOpen(false);\r\n\r\n return (\r\n <Fade appear={false} in={bannerOpen}>\r\n <Paper square variant=\"outlined\" tabIndex={-1} sx={theme => ({\r\n position: \"fixed\",\r\n bottom: 0,\r\n left: { xs: 0, sm: hasNavigationRoutes ? 68.7 : 0 },\r\n right: 0,\r\n m: 0,\r\n p: 2,\r\n borderWidth: 0,\r\n borderTopWidth: 1,\r\n bgcolor: theme.palette.mode === \"dark\" ? grey[900] : grey[100]\r\n })}>\r\n <Grid2 container justifyContent=\"space-between\" alignItems=\"center\">\r\n <Grid2 size={10}>\r\n <Typography fontWeight=\"bold\">{t(\"Layout.DevelopmentDialogTitle\")}</Typography>\r\n <Typography variant=\"body2\">{t(\"Layout.DevelopmentDialogContent\")}</Typography>\r\n </Grid2>\r\n\r\n <Grid2 size={2} sx={{ p: 1, textAlign: \"right\" }}>\r\n <IconButton size=\"small\" onClick={closeBanner}>\r\n <Close />\r\n </IconButton>\r\n </Grid2>\r\n </Grid2>\r\n </Paper>\r\n </Fade>\r\n );\r\n};"]}
|