@pega/react-sdk-components 24.1.10 → 24.2.11
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/lib/bridge/react_pconnect.d.ts.map +1 -1
- package/lib/bridge/react_pconnect.js +2 -1
- package/lib/bridge/react_pconnect.js.map +1 -1
- package/lib/components/designSystemExtension/AlertBanner/AlertBanner.js +1 -1
- package/lib/components/designSystemExtension/AlertBanner/AlertBanner.js.map +1 -1
- package/lib/components/designSystemExtension/Banner/Banner.js +1 -1
- package/lib/components/designSystemExtension/Banner/Banner.js.map +1 -1
- package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.css +0 -1
- package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.d.ts.map +1 -1
- package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.js +11 -11
- package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.js.map +1 -1
- package/lib/components/designSystemExtension/DetailsFields/DetailsFields.js +4 -4
- package/lib/components/designSystemExtension/DetailsFields/DetailsFields.js.map +1 -1
- package/lib/components/designSystemExtension/FieldGroup/FieldGroup.js +4 -4
- package/lib/components/designSystemExtension/FieldGroup/FieldGroup.js.map +1 -1
- package/lib/components/designSystemExtension/FieldGroupList/FieldGroupList.js +4 -4
- package/lib/components/designSystemExtension/FieldGroupList/FieldGroupList.js.map +1 -1
- package/lib/components/designSystemExtension/FieldValueList/FieldValueList.js +6 -6
- package/lib/components/designSystemExtension/FieldValueList/FieldValueList.js.map +1 -1
- package/lib/components/designSystemExtension/Operator/Operator.d.ts.map +1 -1
- package/lib/components/designSystemExtension/Operator/Operator.js +6 -6
- package/lib/components/designSystemExtension/Operator/Operator.js.map +1 -1
- package/lib/components/designSystemExtension/Pulse/Pulse.js +2 -2
- package/lib/components/designSystemExtension/Pulse/Pulse.js.map +1 -1
- package/lib/components/designSystemExtension/RichTextEditor/RichTextEditor.d.ts.map +1 -1
- package/lib/components/designSystemExtension/RichTextEditor/RichTextEditor.js +3 -2
- package/lib/components/designSystemExtension/RichTextEditor/RichTextEditor.js.map +1 -1
- package/lib/components/designSystemExtension/WssQuickCreate/WssQuickCreate.js +1 -1
- package/lib/components/designSystemExtension/WssQuickCreate/WssQuickCreate.js.map +1 -1
- package/lib/components/field/AutoComplete/AutoComplete.js +4 -4
- package/lib/components/field/AutoComplete/AutoComplete.js.map +1 -1
- package/lib/components/field/CancelAlert/CancelAlert.d.ts.map +1 -1
- package/lib/components/field/CancelAlert/CancelAlert.js +3 -6
- package/lib/components/field/CancelAlert/CancelAlert.js.map +1 -1
- package/lib/components/field/Checkbox/Checkbox.d.ts.map +1 -1
- package/lib/components/field/Checkbox/Checkbox.js +4 -4
- package/lib/components/field/Checkbox/Checkbox.js.map +1 -1
- package/lib/components/field/Currency/Currency.d.ts.map +1 -1
- package/lib/components/field/Currency/Currency.js +9 -8
- package/lib/components/field/Currency/Currency.js.map +1 -1
- package/lib/components/field/Date/Date.d.ts.map +1 -1
- package/lib/components/field/Date/Date.js +21 -9
- package/lib/components/field/Date/Date.js.map +1 -1
- package/lib/components/field/DateTime/DateTime.d.ts.map +1 -1
- package/lib/components/field/DateTime/DateTime.js +38 -9
- package/lib/components/field/DateTime/DateTime.js.map +1 -1
- package/lib/components/field/Decimal/Decimal.d.ts.map +1 -1
- package/lib/components/field/Decimal/Decimal.js +8 -5
- package/lib/components/field/Decimal/Decimal.js.map +1 -1
- package/lib/components/field/Dropdown/Dropdown.d.ts.map +1 -1
- package/lib/components/field/Dropdown/Dropdown.js +18 -12
- package/lib/components/field/Dropdown/Dropdown.js.map +1 -1
- package/lib/components/field/Email/Email.d.ts.map +1 -1
- package/lib/components/field/Email/Email.js +21 -5
- package/lib/components/field/Email/Email.js.map +1 -1
- package/lib/components/field/Group/Group.js +2 -2
- package/lib/components/field/Group/Group.js.map +1 -1
- package/lib/components/field/Integer/Integer.d.ts.map +1 -1
- package/lib/components/field/Integer/Integer.js +17 -6
- package/lib/components/field/Integer/Integer.js.map +1 -1
- package/lib/components/field/Multiselect/Multiselect.d.ts.map +1 -1
- package/lib/components/field/Multiselect/Multiselect.js +12 -8
- package/lib/components/field/Multiselect/Multiselect.js.map +1 -1
- package/lib/components/field/Percentage/Percentage.d.ts.map +1 -1
- package/lib/components/field/Percentage/Percentage.js +7 -4
- package/lib/components/field/Percentage/Percentage.js.map +1 -1
- package/lib/components/field/Phone/Phone.d.ts.map +1 -1
- package/lib/components/field/Phone/Phone.js +4 -4
- package/lib/components/field/Phone/Phone.js.map +1 -1
- package/lib/components/field/RadioButtons/RadioButtons.d.ts.map +1 -1
- package/lib/components/field/RadioButtons/RadioButtons.js +6 -12
- package/lib/components/field/RadioButtons/RadioButtons.js.map +1 -1
- package/lib/components/field/RichText/RichText.js +1 -1
- package/lib/components/field/RichText/RichText.js.map +1 -1
- package/lib/components/field/ScalarList/ScalarList.d.ts.map +1 -1
- package/lib/components/field/ScalarList/ScalarList.js +5 -5
- package/lib/components/field/ScalarList/ScalarList.js.map +1 -1
- package/lib/components/field/SemanticLink/SemanticLink.js +4 -4
- package/lib/components/field/SemanticLink/SemanticLink.js.map +1 -1
- package/lib/components/field/TextArea/TextArea.d.ts.map +1 -1
- package/lib/components/field/TextArea/TextArea.js +20 -4
- package/lib/components/field/TextArea/TextArea.js.map +1 -1
- package/lib/components/field/TextContent/TextContent.js +1 -1
- package/lib/components/field/TextContent/TextContent.js.map +1 -1
- package/lib/components/field/TextInput/TextInput.js +2 -2
- package/lib/components/field/TextInput/TextInput.js.map +1 -1
- package/lib/components/field/Time/Time.d.ts.map +1 -1
- package/lib/components/field/Time/Time.js +31 -8
- package/lib/components/field/Time/Time.js.map +1 -1
- package/lib/components/field/URL/URL.d.ts.map +1 -1
- package/lib/components/field/URL/URL.js +19 -4
- package/lib/components/field/URL/URL.js.map +1 -1
- package/lib/components/field/UserReference/UserReference.d.ts.map +1 -1
- package/lib/components/field/UserReference/UserReference.js +3 -5
- package/lib/components/field/UserReference/UserReference.js.map +1 -1
- package/lib/components/helpers/common-utils.d.ts +7 -0
- package/lib/components/helpers/common-utils.d.ts.map +1 -1
- package/lib/components/helpers/common-utils.js +21 -1
- package/lib/components/helpers/common-utils.js.map +1 -1
- package/lib/components/helpers/field-group-utils.js +2 -2
- package/lib/components/helpers/field-group-utils.js.map +1 -1
- package/lib/components/helpers/formatters/Currency.d.ts.map +1 -1
- package/lib/components/helpers/formatters/Currency.js +12 -15
- package/lib/components/helpers/formatters/Currency.js.map +1 -1
- package/lib/components/helpers/formatters/common.d.ts +2 -2
- package/lib/components/helpers/formatters/common.d.ts.map +1 -1
- package/lib/components/helpers/formatters/common.js +2 -1
- package/lib/components/helpers/formatters/common.js.map +1 -1
- package/lib/components/helpers/formatters/index.d.ts.map +1 -1
- package/lib/components/helpers/formatters/index.js +2 -3
- package/lib/components/helpers/formatters/index.js.map +1 -1
- package/lib/components/helpers/simpleTableHelpers.d.ts +1 -1
- package/lib/components/helpers/simpleTableHelpers.js +1 -1
- package/lib/components/helpers/simpleTableHelpers.js.map +1 -1
- package/lib/components/infra/ActionButtons/ActionButtons.js +3 -3
- package/lib/components/infra/ActionButtons/ActionButtons.js.map +1 -1
- package/lib/components/infra/Assignment/Assignment.d.ts.map +1 -1
- package/lib/components/infra/Assignment/Assignment.js +11 -13
- package/lib/components/infra/Assignment/Assignment.js.map +1 -1
- package/lib/components/infra/Containers/FlowContainer/FlowContainer.d.ts.map +1 -1
- package/lib/components/infra/Containers/FlowContainer/FlowContainer.js +12 -22
- package/lib/components/infra/Containers/FlowContainer/FlowContainer.js.map +1 -1
- package/lib/components/infra/Containers/FlowContainer/helpers.d.ts.map +1 -1
- package/lib/components/infra/Containers/FlowContainer/helpers.js +1 -5
- package/lib/components/infra/Containers/FlowContainer/helpers.js.map +1 -1
- package/lib/components/infra/Containers/ModalViewContainer/ListViewActionButtons/ListViewActionButtons.d.ts.map +1 -1
- package/lib/components/infra/Containers/ModalViewContainer/ListViewActionButtons/ListViewActionButtons.js +9 -4
- package/lib/components/infra/Containers/ModalViewContainer/ListViewActionButtons/ListViewActionButtons.js.map +1 -1
- package/lib/components/infra/Containers/ModalViewContainer/ModalViewContainer.js +7 -7
- package/lib/components/infra/Containers/ModalViewContainer/ModalViewContainer.js.map +1 -1
- package/lib/components/infra/Containers/SimpleView/helper.js +1 -1
- package/lib/components/infra/Containers/SimpleView/helper.js.map +1 -1
- package/lib/components/infra/Containers/ViewContainer/ViewContainer.js +1 -1
- package/lib/components/infra/Containers/ViewContainer/ViewContainer.js.map +1 -1
- package/lib/components/infra/Containers/container-helpers.d.ts +2 -0
- package/lib/components/infra/Containers/container-helpers.d.ts.map +1 -0
- package/lib/components/infra/Containers/{helpers.js → container-helpers.js} +1 -1
- package/lib/components/infra/Containers/container-helpers.js.map +1 -0
- package/lib/components/infra/DashboardFilter/DashboardFilter.d.ts.map +1 -1
- package/lib/components/infra/DashboardFilter/DashboardFilter.js +3 -4
- package/lib/components/infra/DashboardFilter/DashboardFilter.js.map +1 -1
- package/lib/components/infra/DashboardFilter/filterUtils.d.ts.map +1 -1
- package/lib/components/infra/DashboardFilter/filterUtils.js +3 -5
- package/lib/components/infra/DashboardFilter/filterUtils.js.map +1 -1
- package/lib/components/infra/DeferLoad/DeferLoad.d.ts +1 -0
- package/lib/components/infra/DeferLoad/DeferLoad.d.ts.map +1 -1
- package/lib/components/infra/DeferLoad/DeferLoad.js +7 -8
- package/lib/components/infra/DeferLoad/DeferLoad.js.map +1 -1
- package/lib/components/infra/MultiStep/MultiStep.d.ts +1 -1
- package/lib/components/infra/MultiStep/MultiStep.d.ts.map +1 -1
- package/lib/components/infra/MultiStep/MultiStep.js +12 -11
- package/lib/components/infra/MultiStep/MultiStep.js.map +1 -1
- package/lib/components/infra/NavBar/NavBar.css +1 -0
- package/lib/components/infra/NavBar/NavBar.d.ts.map +1 -1
- package/lib/components/infra/NavBar/NavBar.js +24 -16
- package/lib/components/infra/NavBar/NavBar.js.map +1 -1
- package/lib/components/infra/RootContainer/RootContainer.d.ts.map +1 -1
- package/lib/components/infra/RootContainer/RootContainer.js +5 -6
- package/lib/components/infra/RootContainer/RootContainer.js.map +1 -1
- package/lib/components/infra/Stages/Stages.js +4 -4
- package/lib/components/infra/Stages/Stages.js.map +1 -1
- package/lib/components/infra/VerticalTabs/LeftAlignVerticalTabs/LeftAlignVerticalTabs.d.ts.map +1 -1
- package/lib/components/infra/VerticalTabs/LeftAlignVerticalTabs/LeftAlignVerticalTabs.js +4 -3
- package/lib/components/infra/VerticalTabs/LeftAlignVerticalTabs/LeftAlignVerticalTabs.js.map +1 -1
- package/lib/components/infra/VerticalTabs/VerticalTabs/VerticalTabs.js +2 -2
- package/lib/components/infra/VerticalTabs/VerticalTabs/VerticalTabs.js.map +1 -1
- package/lib/components/infra/View/View.d.ts +1 -0
- package/lib/components/infra/View/View.d.ts.map +1 -1
- package/lib/components/infra/View/View.js +32 -2
- package/lib/components/infra/View/View.js.map +1 -1
- package/lib/components/template/AppShell/AppShell.d.ts +2 -0
- package/lib/components/template/AppShell/AppShell.d.ts.map +1 -1
- package/lib/components/template/AppShell/AppShell.js +33 -10
- package/lib/components/template/AppShell/AppShell.js.map +1 -1
- package/lib/components/template/CaseView/CaseView.d.ts +1 -0
- package/lib/components/template/CaseView/CaseView.d.ts.map +1 -1
- package/lib/components/template/CaseView/CaseView.js +7 -7
- package/lib/components/template/CaseView/CaseView.js.map +1 -1
- package/lib/components/template/CaseViewActionsMenu/CaseViewActionsMenu.js +6 -6
- package/lib/components/template/CaseViewActionsMenu/CaseViewActionsMenu.js.map +1 -1
- package/lib/components/template/Confirmation/Confirmation.d.ts.map +1 -1
- package/lib/components/template/Confirmation/Confirmation.js +3 -2
- package/lib/components/template/Confirmation/Confirmation.js.map +1 -1
- package/lib/components/template/DataReference/DataReference.js +2 -2
- package/lib/components/template/DataReference/DataReference.js.map +1 -1
- package/lib/components/template/Details/Details/Details.js +2 -2
- package/lib/components/template/Details/Details/Details.js.map +1 -1
- package/lib/components/template/Details/DetailsSubTabs/DetailsSubTabs.js +3 -3
- package/lib/components/template/Details/DetailsSubTabs/DetailsSubTabs.js.map +1 -1
- package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.js +2 -2
- package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.js.map +1 -1
- package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.js +2 -2
- package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.js.map +1 -1
- package/lib/components/template/Details/DynamicTabs/DynamicTabs.d.ts.map +1 -1
- package/lib/components/template/Details/DynamicTabs/DynamicTabs.js +4 -4
- package/lib/components/template/Details/DynamicTabs/DynamicTabs.js.map +1 -1
- package/lib/components/template/FieldGroupTemplate/FieldGroupTemplate.d.ts.map +1 -1
- package/lib/components/template/FieldGroupTemplate/FieldGroupTemplate.js +9 -5
- package/lib/components/template/FieldGroupTemplate/FieldGroupTemplate.js.map +1 -1
- package/lib/components/template/InlineDashboard/InlineDashboard.js +2 -2
- package/lib/components/template/InlineDashboard/InlineDashboard.js.map +1 -1
- package/lib/components/template/ListView/ListView.d.ts.map +1 -1
- package/lib/components/template/ListView/ListView.js +45 -45
- package/lib/components/template/ListView/ListView.js.map +1 -1
- package/lib/components/template/ListView/utils.d.ts.map +1 -1
- package/lib/components/template/ListView/utils.js +1 -2
- package/lib/components/template/ListView/utils.js.map +1 -1
- package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.js +2 -2
- package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.js.map +1 -1
- package/lib/components/template/OneColumn/OneColumn/OneColumn.js +2 -2
- package/lib/components/template/OneColumn/OneColumn/OneColumn.js.map +1 -1
- package/lib/components/template/PromotedFilters/PromotedFilters.d.ts.map +1 -1
- package/lib/components/template/PromotedFilters/PromotedFilters.js +1 -2
- package/lib/components/template/PromotedFilters/PromotedFilters.js.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTable/SimpleTable.d.ts.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTable/SimpleTable.js +0 -2
- package/lib/components/template/SimpleTable/SimpleTable/SimpleTable.js.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.d.ts +2 -0
- package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.d.ts.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js +67 -44
- package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.d.ts.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.js +2 -4
- package/lib/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.js.map +1 -1
- package/lib/components/template/SubTabs/SubTabs.js +2 -2
- package/lib/components/template/SubTabs/SubTabs.js.map +1 -1
- package/lib/components/template/TwoColumn/TwoColumn/TwoColumn.js +2 -2
- package/lib/components/template/TwoColumn/TwoColumn/TwoColumn.js.map +1 -1
- package/lib/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.js +2 -2
- package/lib/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.js.map +1 -1
- package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.js +2 -2
- package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.js.map +1 -1
- package/lib/components/template/WssNavBar/WssNavBar.js +9 -9
- package/lib/components/template/WssNavBar/WssNavBar.js.map +1 -1
- package/lib/components/widget/AppAnnouncement/AppAnnouncement.js +2 -2
- package/lib/components/widget/AppAnnouncement/AppAnnouncement.js.map +1 -1
- package/lib/components/widget/Attachment/Attachment.css +1 -0
- package/lib/components/widget/Attachment/Attachment.d.ts.map +1 -1
- package/lib/components/widget/Attachment/Attachment.js +7 -10
- package/lib/components/widget/Attachment/Attachment.js.map +1 -1
- package/lib/components/widget/CaseHistory/CaseHistory.d.ts.map +1 -1
- package/lib/components/widget/CaseHistory/CaseHistory.js +8 -7
- package/lib/components/widget/CaseHistory/CaseHistory.js.map +1 -1
- package/lib/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.js +1 -1
- package/lib/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.js.map +1 -1
- package/lib/components/widget/FileUtility/FileUtility/FileUtility.d.ts.map +1 -1
- package/lib/components/widget/FileUtility/FileUtility/FileUtility.js +4 -4
- package/lib/components/widget/FileUtility/FileUtility/FileUtility.js.map +1 -1
- package/lib/components/widget/Followers/Followers.js +2 -2
- package/lib/components/widget/Followers/Followers.js.map +1 -1
- package/lib/components/widget/QuickCreate/QuickCreate.d.ts.map +1 -1
- package/lib/components/widget/QuickCreate/QuickCreate.js +0 -1
- package/lib/components/widget/QuickCreate/QuickCreate.js.map +1 -1
- package/lib/components/widget/SummaryItem/SummaryItem.d.ts.map +1 -1
- package/lib/components/widget/SummaryItem/SummaryItem.js +3 -3
- package/lib/components/widget/SummaryItem/SummaryItem.js.map +1 -1
- package/lib/components/widget/ToDo/ToDo.d.ts.map +1 -1
- package/lib/components/widget/ToDo/ToDo.js +60 -17
- package/lib/components/widget/ToDo/ToDo.js.map +1 -1
- package/lib/hooks/index.d.ts +2 -0
- package/lib/hooks/index.d.ts.map +1 -1
- package/lib/hooks/index.js +2 -0
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/useFocusFirstField.d.ts +7 -0
- package/lib/hooks/useFocusFirstField.d.ts.map +1 -0
- package/lib/hooks/useFocusFirstField.js +20 -0
- package/lib/hooks/useFocusFirstField.js.map +1 -0
- package/lib/hooks/useScrolltoTop.d.ts +7 -0
- package/lib/hooks/useScrolltoTop.d.ts.map +1 -0
- package/lib/hooks/useScrolltoTop.js +13 -0
- package/lib/hooks/useScrolltoTop.js.map +1 -0
- package/lib/theme.d.ts +11 -0
- package/lib/theme.d.ts.map +1 -0
- package/lib/theme.js +31 -0
- package/lib/theme.js.map +1 -0
- package/package.json +1 -1
- package/lib/components/infra/Containers/helpers.d.ts +0 -2
- package/lib/components/infra/Containers/helpers.d.ts.map +0 -1
- package/lib/components/infra/Containers/helpers.js.map +0 -1
|
@@ -1,39 +1,52 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
/* eslint-disable no-nested-ternary */
|
|
3
2
|
import { useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
4
|
-
import Table from '@material
|
|
5
|
-
import TableBody from '@material
|
|
6
|
-
import TableCell from '@material
|
|
7
|
-
import TableContainer from '@material
|
|
8
|
-
import TableHead from '@material
|
|
9
|
-
import TableRow from '@material
|
|
10
|
-
import Paper from '@material
|
|
11
|
-
import
|
|
12
|
-
import Link from '@material
|
|
3
|
+
import Table from '@mui/material/Table';
|
|
4
|
+
import TableBody from '@mui/material/TableBody';
|
|
5
|
+
import TableCell from '@mui/material/TableCell';
|
|
6
|
+
import TableContainer from '@mui/material/TableContainer';
|
|
7
|
+
import TableHead from '@mui/material/TableHead';
|
|
8
|
+
import TableRow from '@mui/material/TableRow';
|
|
9
|
+
import Paper from '@mui/material/Paper';
|
|
10
|
+
import makeStyles from '@mui/styles/makeStyles';
|
|
11
|
+
import Link from '@mui/material/Link';
|
|
13
12
|
import { createElement } from 'react';
|
|
14
|
-
import TableSortLabel from '@material
|
|
15
|
-
import MoreIcon from '@
|
|
16
|
-
import Menu from '@material
|
|
17
|
-
import MenuItem from '@material
|
|
18
|
-
import FilterListIcon from '@
|
|
19
|
-
import SubjectIcon from '@
|
|
20
|
-
import Dialog from '@material
|
|
21
|
-
import DialogActions from '@material
|
|
22
|
-
import DialogContent from '@material
|
|
23
|
-
import DialogTitle from '@material
|
|
24
|
-
import Select from '@material
|
|
25
|
-
import Button from '@material
|
|
26
|
-
import TextField from '@material
|
|
13
|
+
import TableSortLabel from '@mui/material/TableSortLabel';
|
|
14
|
+
import MoreIcon from '@mui/icons-material/MoreVert';
|
|
15
|
+
import Menu from '@mui/material/Menu';
|
|
16
|
+
import MenuItem from '@mui/material/MenuItem';
|
|
17
|
+
import FilterListIcon from '@mui/icons-material/FilterList';
|
|
18
|
+
import SubjectIcon from '@mui/icons-material/Subject';
|
|
19
|
+
import Dialog from '@mui/material/Dialog';
|
|
20
|
+
import DialogActions from '@mui/material/DialogActions';
|
|
21
|
+
import DialogContent from '@mui/material/DialogContent';
|
|
22
|
+
import DialogTitle from '@mui/material/DialogTitle';
|
|
23
|
+
import Select from '@mui/material/Select';
|
|
24
|
+
import Button from '@mui/material/Button';
|
|
25
|
+
import TextField from '@mui/material/TextField';
|
|
27
26
|
import createPConnectComponent from '../../../../bridge/react_pconnect';
|
|
28
27
|
import { Utils } from '../../../helpers/utils';
|
|
29
28
|
import { getReferenceList } from '../../../helpers/field-group-utils';
|
|
30
29
|
import { getDataPage } from '../../../helpers/data_page';
|
|
30
|
+
import { getGenericFieldsLocalizedValue } from '../../../helpers/common-utils';
|
|
31
31
|
import { buildFieldsForTable, filterData, getContext } from '../../../helpers/simpleTableHelpers';
|
|
32
32
|
import { format } from '../../../helpers/formatters';
|
|
33
33
|
const useStyles = makeStyles(( /* theme */) => ({
|
|
34
34
|
label: {
|
|
35
35
|
margin: '8px'
|
|
36
36
|
},
|
|
37
|
+
tableLabel: {
|
|
38
|
+
'&::after': {
|
|
39
|
+
display: 'inline',
|
|
40
|
+
content: '" *"',
|
|
41
|
+
verticalAlign: 'top',
|
|
42
|
+
color: 'var(--app-error-color)'
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
message: {
|
|
46
|
+
margin: '8px',
|
|
47
|
+
color: 'var(--app-error-color)',
|
|
48
|
+
fontSize: '14px'
|
|
49
|
+
},
|
|
37
50
|
header: {
|
|
38
51
|
background: '#f5f5f5'
|
|
39
52
|
},
|
|
@@ -64,7 +77,7 @@ let myRows;
|
|
|
64
77
|
export default function SimpleTableManual(props) {
|
|
65
78
|
const classes = useStyles();
|
|
66
79
|
const { getPConnect, referenceList = [], // if referenceList not in configProps$, default to empy list
|
|
67
|
-
children, renderMode, presets, label: labelProp, showLabel, dataPageName, contextClass, hideAddRow, hideDeleteRow, propertyLabel, fieldMetadata, editMode, addAndEditRowsWithin, viewForAddAndEditModal, editModeConfig, displayMode, useSeparateViewForEdit, viewForEditModal } = props;
|
|
80
|
+
children, renderMode, presets, label: labelProp, showLabel, dataPageName, contextClass, hideAddRow, hideDeleteRow, propertyLabel, fieldMetadata, editMode, addAndEditRowsWithin, viewForAddAndEditModal, editModeConfig, displayMode, useSeparateViewForEdit, viewForEditModal, required, validatemessage } = props;
|
|
68
81
|
const pConn = getPConnect();
|
|
69
82
|
const [rowData, setRowData] = useState([]);
|
|
70
83
|
const [elements, setElementsData] = useState([]);
|
|
@@ -83,6 +96,8 @@ export default function SimpleTableManual(props) {
|
|
|
83
96
|
const [displayDialogDateFilter, setDisplayDialogDateFilter] = useState('notequal');
|
|
84
97
|
const [displayDialogDateValue, setDisplayDialogDateValue] = useState('');
|
|
85
98
|
const selectedRowIndex = useRef(null);
|
|
99
|
+
const localizedVal = PCore.getLocaleUtils().getLocaleValue;
|
|
100
|
+
const localeCategory = 'SimpleTable';
|
|
86
101
|
const parameters = fieldMetadata?.datasource?.parameters;
|
|
87
102
|
const { referenceListStr } = getContext(getPConnect());
|
|
88
103
|
const label = labelProp || propertyLabel;
|
|
@@ -122,12 +137,8 @@ export default function SimpleTableManual(props) {
|
|
|
122
137
|
return { ...resolvedFields[index], propName: field.config.value.replace('@P .', '') };
|
|
123
138
|
});
|
|
124
139
|
useEffect(() => {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
buildElementsForTable();
|
|
128
|
-
}
|
|
129
|
-
}, [referenceList.length]);
|
|
130
|
-
useEffect(() => {
|
|
140
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
141
|
+
buildElementsForTable();
|
|
131
142
|
if (readOnlyMode || allowEditingInModal) {
|
|
132
143
|
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
133
144
|
generateRowsData();
|
|
@@ -144,7 +155,6 @@ export default function SimpleTableManual(props) {
|
|
|
144
155
|
if (allowEditingInModal) {
|
|
145
156
|
getPConnect()
|
|
146
157
|
.getListActions()
|
|
147
|
-
// @ts-ignore - An argument for 'uniqueField' was not provided.
|
|
148
158
|
.initDefaultPageInstructions(getPConnect().getReferenceList(), fieldDefs.filter(item => item.name).map(item => item.name));
|
|
149
159
|
}
|
|
150
160
|
else {
|
|
@@ -193,10 +203,15 @@ export default function SimpleTableManual(props) {
|
|
|
193
203
|
function generateRowsData() {
|
|
194
204
|
// if referenceList is empty and dataPageName property value exists then make a datapage fetch call and get the list of data.
|
|
195
205
|
if (!referenceList.length && dataPageName) {
|
|
196
|
-
getDataPage(dataPageName, parameters, context)
|
|
206
|
+
getDataPage(dataPageName, parameters, context)
|
|
207
|
+
.then(listData => {
|
|
197
208
|
const data = formatRowsData(listData);
|
|
198
209
|
myRows = data;
|
|
199
210
|
setRowData(data);
|
|
211
|
+
})
|
|
212
|
+
.catch(e => {
|
|
213
|
+
// eslint-disable-next-line no-console
|
|
214
|
+
console.log(e);
|
|
200
215
|
});
|
|
201
216
|
}
|
|
202
217
|
else {
|
|
@@ -235,10 +250,10 @@ export default function SimpleTableManual(props) {
|
|
|
235
250
|
if (allowEditingInModal && defaultView) {
|
|
236
251
|
pConn
|
|
237
252
|
.getActionsApi()
|
|
253
|
+
// @ts-ignore
|
|
238
254
|
.openEmbeddedDataModal(defaultView, pConn, referenceListStr, referenceList.length, PCore.getConstants().RESOURCE_STATUS.CREATE);
|
|
239
255
|
}
|
|
240
256
|
else {
|
|
241
|
-
// @ts-ignore - An argument for 'pageRef' was not provided.
|
|
242
257
|
pConn.getListActions().insert({ classID: contextClass }, referenceList.length);
|
|
243
258
|
}
|
|
244
259
|
getPConnect().clearErrorMessages({
|
|
@@ -250,16 +265,15 @@ export default function SimpleTableManual(props) {
|
|
|
250
265
|
if (typeof selectedRowIndex.current === 'number') {
|
|
251
266
|
pConn
|
|
252
267
|
.getActionsApi()
|
|
268
|
+
// @ts-ignore
|
|
253
269
|
.openEmbeddedDataModal(bUseSeparateViewForEdit ? editView : defaultView, pConn, referenceListStr, selectedRowIndex.current, PCore.getConstants().RESOURCE_STATUS.UPDATE);
|
|
254
270
|
}
|
|
255
271
|
};
|
|
256
272
|
const deleteRecord = () => {
|
|
257
273
|
setEditAnchorEl(null);
|
|
258
|
-
// @ts-ignore - An argument for 'pageRef' was not provided.
|
|
259
274
|
pConn.getListActions().deleteEntry(selectedRowIndex.current);
|
|
260
275
|
};
|
|
261
276
|
const deleteRecordFromInlineEditable = (index) => {
|
|
262
|
-
// @ts-ignore - An argument for 'pageRef' was not provided.
|
|
263
277
|
pConn.getListActions().deleteEntry(index);
|
|
264
278
|
};
|
|
265
279
|
function buildElementsForTable() {
|
|
@@ -268,7 +282,7 @@ export default function SimpleTableManual(props) {
|
|
|
268
282
|
const data = [];
|
|
269
283
|
rawFields.forEach(item => {
|
|
270
284
|
// removing label field from config to hide title in the table cell
|
|
271
|
-
item = { ...item, config: { ...item.config, label: '' } };
|
|
285
|
+
item = { ...item, config: { ...item.config, label: '', displayMode: readOnlyMode || allowEditingInModal ? 'DISPLAY_ONLY' : undefined } };
|
|
272
286
|
const referenceListData = getReferenceList(pConn);
|
|
273
287
|
const isDatapage = referenceListData.startsWith('D_');
|
|
274
288
|
const pageReferenceValue = isDatapage
|
|
@@ -299,6 +313,9 @@ export default function SimpleTableManual(props) {
|
|
|
299
313
|
handleRequestSort(event, property);
|
|
300
314
|
};
|
|
301
315
|
function descendingComparator(a, b, orderedBy) {
|
|
316
|
+
if (!orderedBy || (!a[orderedBy] && !b[orderedBy])) {
|
|
317
|
+
return 0;
|
|
318
|
+
}
|
|
302
319
|
if (!b[orderedBy] || b[orderedBy] < a[orderedBy]) {
|
|
303
320
|
return -1;
|
|
304
321
|
}
|
|
@@ -319,7 +336,11 @@ export default function SimpleTableManual(props) {
|
|
|
319
336
|
return order;
|
|
320
337
|
return a[1] - b[1];
|
|
321
338
|
});
|
|
322
|
-
|
|
339
|
+
const newElements = new Array(stabilizedThis.length);
|
|
340
|
+
stabilizedThis.forEach((el, index) => {
|
|
341
|
+
newElements[index] = elements[el[1]];
|
|
342
|
+
});
|
|
343
|
+
return newElements;
|
|
323
344
|
}
|
|
324
345
|
function _menuClick(event, columnId, columnType, labelValue) {
|
|
325
346
|
menuColumnId = columnId;
|
|
@@ -455,11 +476,12 @@ export default function SimpleTableManual(props) {
|
|
|
455
476
|
const len = editableMode ? elements.length : rowData.length;
|
|
456
477
|
return len ? (_jsxs("span", { style: { fontSize: '0.9em', opacity: '0.7' }, children: [len, " result", len > 1 ? 's' : ''] })) : null;
|
|
457
478
|
}
|
|
458
|
-
return (_jsxs(_Fragment, { children: [_jsxs(TableContainer, { component: Paper, style: { margin: '4px 0px' }, id: 'simple-table-manual', children: [propsToUse.label && (_jsxs("h3", { className: classes.label
|
|
459
|
-
return (_jsx(TableCell, { className: classes.tableCell, children: readOnlyMode ? (_jsxs("div", { children: [_jsxs(TableSortLabel, { active: orderBy === displayedColumns[index], direction: orderBy === displayedColumns[index] ? order : 'asc', onClick: createSortHandler(displayedColumns[index]), children: [field.label || '---', _showFilteredIcon(field.name) && _jsx(FilterListIcon, { className: classes.moreIcon }), orderBy === displayedColumns[index] ? (_jsx("span", { className: classes.visuallyHidden, children: order === 'desc' ? 'sorted descending' : 'sorted ascending' })) : null] }), _jsx(MoreIcon, { id: 'menu-icon',
|
|
479
|
+
return (_jsxs(_Fragment, { children: [_jsxs(TableContainer, { component: Paper, style: { margin: '4px 0px' }, id: 'simple-table-manual', children: [propsToUse.label && (_jsxs("h3", { className: `${classes.label} ${required ? classes.tableLabel : ''}`, children: [propsToUse.label, " ", results()] })), validatemessage && _jsx("div", { className: classes.message, children: validatemessage }), _jsxs(Table, { children: [_jsx(TableHead, { className: classes.header, children: _jsx(TableRow, { children: fieldDefs.map((field, index) => {
|
|
480
|
+
return (_jsx(TableCell, { className: classes.tableCell, children: (readOnlyMode || allowEditingInModal) && field.cellRenderer !== 'DeleteIcon' ? (_jsxs("div", { style: { display: 'flex' }, children: [_jsxs(TableSortLabel, { style: { width: '75%' }, active: orderBy === displayedColumns[index], direction: orderBy === displayedColumns[index] ? order : 'asc', onClick: createSortHandler(displayedColumns[index]), children: [field.label || '---', _showFilteredIcon(field.name) && _jsx(FilterListIcon, { className: classes.moreIcon }), orderBy === displayedColumns[index] ? (_jsx("span", { className: classes.visuallyHidden, children: order === 'desc' ? 'sorted descending' : 'sorted ascending' })) : null] }), _jsx(MoreIcon, { style: { cursor: 'pointer', zIndex: 1000 }, id: 'menu-icon', onClick: event => {
|
|
460
481
|
_menuClick(event, field.name, field.meta.type, field.label);
|
|
461
482
|
} })] })) : (field.label) }, `head-${displayedColumns[index]}`));
|
|
462
483
|
}) }) }), _jsxs(TableBody, { children: [editableMode &&
|
|
484
|
+
!allowEditingInModal &&
|
|
463
485
|
elements.map((row, index) => {
|
|
464
486
|
const theKey = `row-${index}`;
|
|
465
487
|
return (_jsxs(TableRow, { children: [row.map((item, childIndex) => {
|
|
@@ -474,11 +496,12 @@ export default function SimpleTableManual(props) {
|
|
|
474
496
|
.map((row, index) => {
|
|
475
497
|
return (
|
|
476
498
|
// eslint-disable-next-line react/no-array-index-key
|
|
477
|
-
|
|
478
|
-
|
|
499
|
+
_jsxs(TableRow, { children: [row.map((item, childIndex) => {
|
|
500
|
+
const theColKey = displayedColumns[childIndex];
|
|
501
|
+
return (_jsx(TableCell, { className: classes.tableCell, children: item }, theColKey));
|
|
502
|
+
}), showDeleteButton && (_jsx(TableCell, { className: classes.tableCell, children: _jsxs("div", { children: [_jsx(MoreIcon, { id: 'table-edit-menu-icon', className: classes.moreIcon, onClick: event => {
|
|
479
503
|
editMenuClick(event, index);
|
|
480
|
-
} }), _jsxs(Menu, { id: 'table-edit-menu', anchorEl: editAnchorEl, keepMounted: true, open: Boolean(editAnchorEl), onClose: _menuClose, children: [_jsx(MenuItem, { onClick: () => editRecord(), children: "Edit" }), _jsx(MenuItem, { onClick: () => deleteRecord(), children: "Delete" })] })] })
|
|
481
|
-
|
|
482
|
-
})] })] }), readOnlyMode && rowData && rowData.length === 0 && (_jsx("div", { className: 'no-records', id: 'no-records', children: "No records found." })), editableMode && referenceList && referenceList.length === 0 && (_jsx("div", { className: 'no-records', id: 'no-records', children: "No records found." }))] }), showAddRowButton && (_jsx("div", { style: { fontSize: '1rem' }, children: _jsx(Link, { style: { cursor: 'pointer' }, onClick: addRecord, children: "+ Add" }) })), _jsxs(Menu, { id: 'simple-menu', anchorEl: anchorEl, keepMounted: true, open: Boolean(anchorEl), onClose: _menuClose, children: [_jsxs(MenuItem, { onClick: _filterMenu, children: [_jsx(FilterListIcon, {}), " Filter"] }), _jsxs(MenuItem, { onClick: _groupMenu, children: [_jsx(SubjectIcon, {}), " Group"] })] }), _jsxs(Dialog, { open: open, onClose: _closeDialog, "aria-labelledby": 'form-dialog-title', children: [_jsxs(DialogTitle, { id: 'form-dialog-title', children: ["Filter: ", filterBy] }), _jsx(DialogContent, { children: containsDateOrTime ? (_jsxs(_Fragment, { children: [_jsxs(Select, { value: displayDialogDateFilter, onChange: _dialogDateFilter, fullWidth: true, children: [_jsx(MenuItem, { value: 'notequal', children: "is not equal to" }), _jsx(MenuItem, { value: 'equal', children: "is equal to" }), _jsx(MenuItem, { value: 'after', children: "after" }), _jsx(MenuItem, { value: 'before', children: "before" }), _jsx(MenuItem, { value: 'null', children: "is null" }), _jsx(MenuItem, { value: 'notnull', children: "is not null" })] }), filterType === 'Date' && (_jsx(TextField, { autoFocus: true, margin: 'dense', id: 'containsFilter', type: 'date', fullWidth: true, value: displayDialogDateValue, onChange: _dialogDateValue })), filterType === 'DateTime' && (_jsx(TextField, { autoFocus: true, margin: 'dense', id: 'containsFilter', type: 'datetime-local', fullWidth: true, value: displayDialogDateValue, onChange: _dialogDateValue })), filterType === 'Time' && (_jsx(TextField, { autoFocus: true, margin: 'dense', id: 'containsFilter', type: 'time', fullWidth: true, value: displayDialogDateValue, onChange: _dialogDateValue }))] })) : (_jsxs(_Fragment, { children: [_jsxs(Select, { id: 'filter', fullWidth: true, onChange: _dialogContainsFilter, value: displayDialogContainsFilter, children: [_jsx(MenuItem, { value: 'contains', children: "Contains" }), _jsx(MenuItem, { value: 'equals', children: "Equals" }), _jsx(MenuItem, { value: 'startswith', children: "Starts with" })] }), _jsx(TextField, { autoFocus: true, margin: 'dense', id: 'containsFilter', type: 'text', fullWidth: true, value: displayDialogContainsValue, onChange: _dialogContainsValue })] })) }), _jsxs(DialogActions, { children: [_jsx(Button, { onClick: _closeDialog, color: 'secondary', children: "Cancel" }), _jsx(Button, { onClick: _submitFilter, color: 'primary', children: "Submit" })] })] })] }));
|
|
504
|
+
} }), _jsxs(Menu, { id: 'table-edit-menu', anchorEl: editAnchorEl, keepMounted: true, open: Boolean(editAnchorEl), onClose: _menuClose, children: [_jsx(MenuItem, { onClick: () => editRecord(), children: "Edit" }), _jsx(MenuItem, { onClick: () => deleteRecord(), children: "Delete" })] })] }) }, 'DeleteIcon'))] }, index));
|
|
505
|
+
})] })] }), ((readOnlyMode && (!rowData || rowData?.length === 0)) || (editableMode && (!referenceList || referenceList?.length === 0))) && (_jsx("div", { className: 'no-records', id: 'no-records', children: getGenericFieldsLocalizedValue('CosmosFields.fields.lists', 'No records found.') }))] }), showAddRowButton && (_jsx("div", { style: { fontSize: '1rem' }, children: _jsxs(Link, { style: { cursor: 'pointer' }, onClick: addRecord, underline: 'hover', children: ["+ ", localizedVal('Add', localeCategory)] }) })), _jsxs(Menu, { id: 'simple-menu', anchorEl: anchorEl, keepMounted: true, open: Boolean(anchorEl), onClose: _menuClose, children: [_jsxs(MenuItem, { onClick: _filterMenu, children: [_jsx(FilterListIcon, {}), " Filter"] }), _jsxs(MenuItem, { onClick: _groupMenu, children: [_jsx(SubjectIcon, {}), " Group"] })] }), _jsxs(Dialog, { open: open, onClose: _closeDialog, "aria-labelledby": 'form-dialog-title', children: [_jsxs(DialogTitle, { id: 'form-dialog-title', children: ["Filter: ", filterBy] }), _jsx(DialogContent, { children: containsDateOrTime ? (_jsxs(_Fragment, { children: [_jsxs(Select, { variant: 'standard', value: displayDialogDateFilter, onChange: _dialogDateFilter, fullWidth: true, children: [_jsx(MenuItem, { value: 'notequal', children: "is not equal to" }), _jsx(MenuItem, { value: 'equal', children: "is equal to" }), _jsx(MenuItem, { value: 'after', children: "after" }), _jsx(MenuItem, { value: 'before', children: "before" }), _jsx(MenuItem, { value: 'null', children: "is null" }), _jsx(MenuItem, { value: 'notnull', children: "is not null" })] }), filterType === 'Date' && (_jsx(TextField, { variant: 'standard', autoFocus: true, margin: 'dense', id: 'containsFilter', type: 'date', fullWidth: true, value: displayDialogDateValue, onChange: _dialogDateValue })), filterType === 'DateTime' && (_jsx(TextField, { variant: 'standard', autoFocus: true, margin: 'dense', id: 'containsFilter', type: 'datetime-local', fullWidth: true, value: displayDialogDateValue, onChange: _dialogDateValue })), filterType === 'Time' && (_jsx(TextField, { variant: 'standard', autoFocus: true, margin: 'dense', id: 'containsFilter', type: 'time', fullWidth: true, value: displayDialogDateValue, onChange: _dialogDateValue }))] })) : (_jsxs(_Fragment, { children: [_jsxs(Select, { variant: 'standard', id: 'filter', fullWidth: true, onChange: _dialogContainsFilter, value: displayDialogContainsFilter, children: [_jsx(MenuItem, { value: 'contains', children: "Contains" }), _jsx(MenuItem, { value: 'equals', children: "Equals" }), _jsx(MenuItem, { value: 'startswith', children: "Starts with" })] }), _jsx(TextField, { variant: 'standard', autoFocus: true, margin: 'dense', id: 'containsFilter', type: 'text', fullWidth: true, value: displayDialogContainsValue, onChange: _dialogContainsValue })] })) }), _jsxs(DialogActions, { children: [_jsx(Button, { onClick: _closeDialog, color: 'secondary', children: "Cancel" }), _jsx(Button, { onClick: _submitFilter, color: 'primary', children: "Submit" })] })] })] }));
|
|
483
506
|
}
|
|
484
507
|
//# sourceMappingURL=SimpleTableManual.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleTableManual.js","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,OAAc,EAAqB,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC/F,OAAO,KAAK,MAAM,yBAAyB,CAAC;AAC5C,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAClD,OAAO,KAAK,MAAM,yBAAyB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,IAAI,MAAM,wBAAwB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,QAAQ,MAAM,6BAA6B,CAAC;AACnD,OAAO,IAAI,MAAM,wBAAwB,CAAC;AAC1C,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAClD,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,aAAa,MAAM,iCAAiC,CAAC;AAC5D,OAAO,aAAa,MAAM,iCAAiC,CAAC;AAC5D,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,SAAS,MAAM,6BAA6B,CAAC;AAEpD,OAAO,uBAAuB,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAElG,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAwBrD,MAAM,SAAS,GAAG,UAAU,CAAC,EAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC7C,KAAK,EAAE;QACL,MAAM,EAAE,KAAK;KACd;IACD,MAAM,EAAE;QACN,UAAU,EAAE,SAAS;KACtB;IACD,SAAS,EAAE;QACT,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,KAAK;KACf;IACD,cAAc,EAAE;QACd,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC,CAAC;QACV,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,EAAE;QACP,KAAK,EAAE,CAAC;KACT;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,QAAQ;KACxB;CACF,CAAC,CAAC,CAAC;AAEJ,IAAI,YAAY,GAAG,EAAE,CAAC;AACtB,IAAI,cAAc,GAAG,EAAE,CAAC;AACxB,IAAI,eAAe,GAAG,EAAE,CAAC;AAEzB,MAAM,eAAe,GAAU,EAAE,CAAC;AAClC,IAAI,MAAa,CAAC;AAElB,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAgD;IACxF,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,EACJ,WAAW,EACX,aAAa,GAAG,EAAE,EAAE,6DAA6D;IACjF,QAAQ,EACR,UAAU,EACV,OAAO,EACP,KAAK,EAAE,SAAS,EAChB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,gBAAgB,EACjB,GAAG,KAAK,CAAC;IACV,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAQ,KAAK,CAAC,CAAC;IACjD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAY,EAAE,CAAC,CAAC;IACtD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IACnE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAC3E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAU,CAAC;IACnD,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAC7E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAS,QAAQ,CAAC,CAAC;IAC/D,6DAA6D;IAC7D,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IACnF,MAAM,CAAC,2BAA2B,EAAE,8BAA8B,CAAC,GAAG,QAAQ,CAAS,UAAU,CAAC,CAAC;IACnG,MAAM,CAAC,0BAA0B,EAAE,6BAA6B,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IACzF,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,CAAS,UAAU,CAAC,CAAC;IAC3F,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IACjF,MAAM,gBAAgB,GAAQ,MAAM,CAAC,IAAI,CAAC,CAAC;IAE3C,MAAM,UAAU,GAAG,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC;IACzD,MAAM,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,IAAI,aAAa,CAAC;IACzC,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC;IAC9E,IAAI,UAAU,CAAC,SAAS,KAAK,KAAK,EAAE;QAClC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;KACvB;IACD,0BAA0B;IAC1B,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC7C,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACrC,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAEpF,MAAM,cAAc,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtF,wEAAwE;IACxE,+HAA+H;IAC/H,6GAA6G;IAC7G,kIAAkI;IAClI,MAAM,WAAW,GAAQ,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;IAExD,uGAAuG;IACvG,0DAA0D;IAC1D,mFAAmF;IACnF,iDAAiD;IACjD,4DAA4D;IAC5D,iDAAiD;IAEjD,MAAM,SAAS,GAAG,WAAW,EAAE,MAAM,CAAC;IACtC,MAAM,SAAS,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;IACxG,MAAM,oBAAoB,GAAG,WAAW,KAAK,cAAc,CAAC;IAC5D,MAAM,YAAY,GAAG,UAAU,KAAK,UAAU,CAAC;IAC/C,MAAM,YAAY,GAAG,UAAU,KAAK,UAAU,CAAC;IAC/C,MAAM,gBAAgB,GAAG,CAAC,YAAY,IAAI,CAAC,UAAU,CAAC;IACtD,MAAM,mBAAmB,GACvB,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,IAAI,oBAAoB,CAAC,CAAC;IAC/H,MAAM,gBAAgB,GAAG,YAAY,IAAI,CAAC,aAAa,CAAC;IACxD,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC;IACzF,MAAM,uBAAuB,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAChH,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAE7E,MAAM,mBAAmB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACzD,OAAO,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,IAAI,CAAC,mBAAmB,EAAE;YACxC,mEAAmE;YACnE,qBAAqB,EAAE,CAAC;SACzB;IACH,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,IAAI,mBAAmB,EAAE;YACvC,mEAAmE;YACnE,gBAAgB,EAAE,CAAC;SACpB;IACH,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,mFAAmF;IACnF,kFAAkF;IAClF,kFAAkF;IAClF,qGAAqG;IACrG,8EAA8E;IAC9E,gCAAgC;IAChC,MAAM,SAAS,GAAG,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAEnF,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,mBAAmB,EAAE;YACvB,WAAW,EAAE;iBACV,cAAc,EAAE;gBACjB,+DAA+D;iBAC9D,2BAA2B,CAC1B,WAAW,EAAE,CAAC,gBAAgB,EAAE,EAChC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3D,CAAC;SACL;aAAM;YACL,yDAAyD;YACzD,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC,2BAA2B,CAAC,WAAW,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC;SAC9F;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACrC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC;QACzE,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,QAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC/D,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;YAClD,OAAO,GAAG;gBACR,SAAS;gBACT,UAAU;aACX,CAAC;SACH;QACD,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9D,CAAC,CAAC;IAEF,gDAAgD;IAChD,iCAAiC;IAEjC,+EAA+E;IAC/E,0BAA0B;IAC1B,SAAS,WAAW,CAAC,SAAiB,EAAE,QAAgB;QACtD,4CAA4C;QAC5C,MAAM,OAAO,GAAa,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,UAAU,GAAG,SAAS,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;YACzB,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9B;QACD,OAAO,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE;QAC5B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACrB,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE;gBACpD,UAAU,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC/C,OAAO,UAAU,CAAC;YACpB,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,SAAS,gBAAgB;QACvB,6HAA6H;QAC7H,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,YAAY,EAAE;YACzC,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC7D,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACtC,MAAM,GAAG,IAAI,CAAC;gBACd,UAAU,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,wEAAwE;YACxE,4EAA4E;YAC5E,yCAAyC;YACzC,MAAM,IAAI,GAAQ,EAAE,CAAC;YACrB,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE;gBAC/B,MAAM,UAAU,GAAW,EAAE,CAAC;gBAC9B,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE;oBAClC,MAAM,MAAM,GAAW,GAAG,CAAC;oBAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACxC,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC;iBACnC;gBACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACtB,MAAM,GAAG,IAAI,CAAC;aACf;YACD,UAAU,CAAC,IAAI,CAAC,CAAC;SAClB;IACH,CAAC;IAED,6DAA6D;IAC7D,8DAA8D;IAC9D,wDAAwD;IACxD,sEAAsE;IACtE,oEAAoE;IACpE,kEAAkE;IAClE,0EAA0E;IAC1E,sGAAsG;IACtG,0GAA0G;IAC1G,EAAE;IACF,gDAAgD;IAChD,iCAAiC;IACjC,kEAAkE;IAClE,wCAAwC;IAExC,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,IAAI,mBAAmB,IAAI,WAAW,EAAE;YACtC,KAAK;iBACF,aAAa,EAAE;iBACf,qBAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;SACnI;aAAM;YACL,2DAA2D;YAC3D,KAAK,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;SAChF;QAED,WAAW,EAAE,CAAC,kBAAkB,CAAC;YAC/B,QAAQ,EAAG,WAAW,EAAE,CAAC,aAAa,EAAU,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;SACvE,CAAC,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,OAAO,gBAAgB,CAAC,OAAO,KAAK,QAAQ,EAAE;YAChD,KAAK;iBACF,aAAa,EAAE;iBACf,qBAAqB,CACpB,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAChD,KAAK,EACL,gBAAgB,EAChB,gBAAgB,CAAC,OAAO,EACxB,KAAK,CAAC,YAAY,EAAE,CAAC,eAAe,CAAC,MAAM,CAC5C,CAAC;SACL;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,2DAA2D;QAC3D,KAAK,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC,CAAC;IAEF,MAAM,8BAA8B,GAAG,CAAC,KAAa,EAAE,EAAE;QACvD,2DAA2D;QAC3D,KAAK,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,SAAS,qBAAqB;QAC5B,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACvC,MAAM,IAAI,GAAQ,EAAE,CAAC;YACrB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACvB,mEAAmE;gBACnE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;gBAC1D,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAClD,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACtD,MAAM,kBAAkB,GAAG,UAAU;oBACnC,CAAC,CAAC,GAAG,iBAAiB,IAAI,KAAK,GAAG;oBAClC,CAAC,CAAC,GAAG,KAAK,CAAC,gBAAgB,EAAE,GAAG,iBAAiB,CAAC,SAAS,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;gBAC9G,MAAM,MAAM,GAAG;oBACb,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE;wBACP,OAAO;wBACP,aAAa,EAAE,kBAAkB;wBACjC,aAAa,EAAE,iBAAiB;wBAChC,OAAO,EAAE,IAAI;qBACd;iBACF,CAAC;gBACF,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,eAAe,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,iBAAiB,GAAG,CAAC,KAAgC,EAAE,QAAmB,EAAE,EAAE;QAClF,MAAM,KAAK,GAAG,OAAO,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC;QACtD,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACjC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,QAAmB,EAAE,EAAE,CAAC,CAAC,KAAgC,EAAE,EAAE;QACtF,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,SAAS,oBAAoB,CAAI,CAAI,EAAE,CAAI,EAAE,SAAkB;QAC7D,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE;YAChD,OAAO,CAAC,CAAC,CAAC;SACX;QACD,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE;YAChD,OAAO,CAAC,CAAC;SACV;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAID,SAAS,aAAa,CACpB,QAAe,EACf,SAAc;QAEd,OAAO,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IAClI,CAAC;IAED,SAAS,UAAU,CAAI,KAAU,EAAE,UAAkC;QACnE,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAgB,CAAC,CAAC;QAC5E,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,wDAAwD;YACxD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC9B,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,SAAS,UAAU,CAAC,KAAK,EAAE,QAAgB,EAAE,UAAkB,EAAE,UAAkB;QACjF,YAAY,GAAG,QAAQ,CAAC;QACxB,cAAc,GAAG,UAAU,CAAC;QAC5B,eAAe,GAAG,UAAU,CAAC;QAE7B,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IAED,SAAS,aAAa,CAAC,KAAK,EAAE,KAAK;QACjC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;QACjC,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAED,SAAS,UAAU;QACjB,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,eAAe,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,SAAS,WAAW;QAClB,WAAW,CAAC,IAAI,CAAC,CAAC;QAElB,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE;YACvC,IAAI,SAAS,CAAC,GAAG,KAAK,YAAY,EAAE;gBAClC,WAAW,CAAC,eAAe,CAAC,CAAC;gBAC7B,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE;oBAC3F,qBAAqB,CAAC,IAAI,CAAC,CAAC;oBAC5B,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAC9B,0BAA0B,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBACrD,yBAAyB,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;iBAC1D;qBAAM;oBACL,qBAAqB,CAAC,KAAK,CAAC,CAAC;oBAC7B,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACxB,8BAA8B,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBACzD,6BAA6B,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;iBAC9D;gBACD,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM;aACP;SACF;QAED,IAAI,CAAC,MAAM,EAAE;YACX,WAAW,CAAC,eAAe,CAAC,CAAC;YAC7B,0BAA0B,CAAC,YAAY,CAAC,CAAC;YACzC,6BAA6B,CAAC,EAAE,CAAC,CAAC;YAElC,QAAQ,cAAc,EAAE;gBACtB,KAAK,MAAM,CAAC;gBACZ,KAAK,UAAU,CAAC;gBAChB,KAAK,MAAM;oBACT,qBAAqB,CAAC,IAAI,CAAC,CAAC;oBAC5B,aAAa,CAAC,cAAc,CAAC,CAAC;oBAC9B,MAAM;gBACR;oBACE,qBAAqB,CAAC,KAAK,CAAC,CAAC;oBAC7B,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACxB,MAAM;aACT;SACF;QAED,cAAc;QACd,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,SAAS,UAAU,KAAI,CAAC;IAExB,SAAS,YAAY;QACnB,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,SAAS,qBAAqB,CAAC,KAAK;QAClC,8BAA8B,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,oBAAoB,CAAC,KAAK;QACjC,6BAA6B,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,SAAS,iBAAiB,CAAC,KAAK;QAC9B,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,SAAS,gBAAgB,CAAC,KAAK;QAC7B,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,SAAS,iBAAiB;QACxB,wBAAwB;QACxB,IAAI,OAAO,GAAQ,MAAM,CAAC,KAAK,EAAE,CAAC;QAElC,oCAAoC;QACpC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;QAEtD,mCAAmC;QACnC,UAAU,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,SAAS,oBAAoB;QAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE;YACvC,IAAI,SAAS,CAAC,GAAG,KAAK,YAAY,EAAE;gBAClC,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC;gBAC5B,IAAI,kBAAkB,EAAE;oBACtB,SAAS,CAAC,cAAc,GAAG,uBAAuB,CAAC;oBACnD,SAAS,CAAC,mBAAmB,GAAG,sBAAsB,CAAC;iBACxD;qBAAM;oBACL,SAAS,CAAC,cAAc,GAAG,2BAA2B,CAAC;oBACvD,SAAS,CAAC,mBAAmB,GAAG,0BAA0B,CAAC;iBAC5D;gBACD,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM;aACP;SACF;QAED,IAAI,CAAC,MAAM,EAAE;YACX,SAAS;YACT,MAAM,SAAS,GAAQ,EAAE,CAAC;YAC1B,SAAS,CAAC,GAAG,GAAG,YAAY,CAAC;YAC7B,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC;YAC5B,IAAI,kBAAkB,EAAE;gBACtB,SAAS,CAAC,cAAc,GAAG,uBAAuB,CAAC;gBACnD,SAAS,CAAC,mBAAmB,GAAG,sBAAsB,CAAC;aACxD;iBAAM;gBACL,SAAS,CAAC,cAAc,GAAG,2BAA2B,CAAC;gBACvD,SAAS,CAAC,mBAAmB,GAAG,0BAA0B,CAAC;aAC5D;YAED,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACjC;IACH,CAAC;IAED,SAAS,aAAa;QACpB,oBAAoB,EAAE,CAAC;QACvB,iBAAiB,EAAE,CAAC;QAEpB,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,SAAS,iBAAiB,CAAC,QAAQ;QACjC,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE;YACvC,IAAI,SAAS,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC9B,gEAAgE;gBAChE,IAAI,SAAS,CAAC,mBAAmB,KAAK,EAAE,EAAE;oBACxC,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO,KAAK,CAAC;aACd;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,OAAO;QACd,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAE5D,OAAO,GAAG,CAAC,CAAC,CAAC,CACX,gBAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAC/C,GAAG,aAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAC1B,CACR,CAAC,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,OAAO,CACL,8BACE,MAAC,cAAc,IAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,EAAC,qBAAqB,aACrF,UAAU,CAAC,KAAK,IAAI,CACnB,cAAI,SAAS,EAAE,OAAO,CAAC,KAAK,aACzB,UAAU,CAAC,KAAK,OAAG,OAAO,EAAE,IAC1B,CACN,EACD,MAAC,KAAK,eACJ,KAAC,SAAS,IAAC,SAAS,EAAE,OAAO,CAAC,MAAM,YAClC,KAAC,QAAQ,cACN,SAAS,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,KAAK,EAAE,EAAE;wCACnC,OAAO,CACL,KAAC,SAAS,IAAyC,SAAS,EAAE,OAAO,CAAC,SAAS,YAC5E,YAAY,CAAC,CAAC,CAAC,CACd,0BACE,MAAC,cAAc,IACb,MAAM,EAAE,OAAO,KAAK,gBAAgB,CAAC,KAAK,CAAC,EAC3C,SAAS,EAAE,OAAO,KAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAC9D,OAAO,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,aAElD,KAAK,CAAC,KAAK,IAAI,KAAK,EACpB,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAC,cAAc,IAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,GAAI,EAChF,OAAO,KAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACrC,eAAM,SAAS,EAAE,OAAO,CAAC,cAAc,YAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,GAAQ,CAC9G,CAAC,CAAC,CAAC,IAAI,IACO,EACjB,KAAC,QAAQ,IACP,EAAE,EAAC,WAAW,EACd,SAAS,EAAE,OAAO,CAAC,QAAQ,EAC3B,OAAO,EAAE,KAAK,CAAC,EAAE;4DACf,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;wDAC9D,CAAC,GACD,IACE,CACP,CAAC,CAAC,CAAC,CACF,KAAK,CAAC,KAAK,CACZ,IAxBa,QAAQ,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAyBrC,CACb,CAAC;oCACJ,CAAC,CAAC,GACO,GACD,EACZ,MAAC,SAAS,eACP,YAAY;wCACX,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,KAAK,EAAE,EAAE;4CAC/B,MAAM,MAAM,GAAG,OAAO,KAAK,EAAE,CAAC;4CAC9B,OAAO,CACL,MAAC,QAAQ,eACN,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;wDAC5B,MAAM,SAAS,GAAG,QAAQ,KAAK,IAAI,UAAU,EAAE,CAAC;wDAChD,OAAO,CACL,KAAC,SAAS,IAAiB,SAAS,EAAE,OAAO,CAAC,SAAS,YACpD,IAAI,IADS,SAAS,CAEb,CACb,CAAC;oDACJ,CAAC,CAAC,EACD,gBAAgB,IAAI,CACnB,KAAC,SAAS,cACR,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qBAAqB,EAC/B,EAAE,EAAC,eAAe,gBACP,aAAa,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,8BAA8B,CAAC,KAAK,CAAC,YAEpD,cAAK,SAAS,EAAC,mCAAmC,EAAC,GAAG,EAAE,iBAAiB,GAAI,GACtE,GACC,CACb,KArBY,MAAM,CAsBV,CACZ,CAAC;wCACJ,CAAC,CAAC,EACH,CAAC,YAAY,IAAI,mBAAmB,CAAC;wCACpC,OAAO;wCACP,OAAO,CAAC,MAAM,GAAG,CAAC;wCAClB,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;6CAC/C,KAAK,CAAC,CAAC,CAAC;6CACR,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;4CAClB,OAAO;4CACL,oDAAoD;4CACpD,KAAC,QAAQ,cACN,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;oDAC7B,OAAO,CACL,KAAC,SAAS,IAAc,SAAS,EAAE,OAAO,CAAC,SAAS,YACjD,gBAAgB,IAAI,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,CAC7C,0BACE,KAAC,QAAQ,IACP,EAAE,EAAC,sBAAsB,EACzB,SAAS,EAAE,OAAO,CAAC,QAAQ,EAC3B,OAAO,EAAE,KAAK,CAAC,EAAE;wEACf,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oEAC9B,CAAC,GACD,EACF,MAAC,IAAI,IAAC,EAAE,EAAC,iBAAiB,EAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,QAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,aAC7G,KAAC,QAAQ,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,qBAAiB,EACtD,KAAC,QAAQ,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,uBAAmB,IACrD,IACH,CACP,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CACrD,OAAO,CACR,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CACpD,MAAM,CACP,CAAC,CAAC,CAAC,CACF,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CACrB,IArBa,MAAM,CAsBV,CACb,CAAC;gDACJ,CAAC,CAAC,IA3BW,KAAK,CA4BT,CACZ,CAAC;wCACJ,CAAC,CAAC,IACI,IACN,EACP,YAAY,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAClD,cAAK,SAAS,EAAC,YAAY,EAAC,EAAE,EAAC,YAAY,kCAErC,CACP,EACA,YAAY,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,CAC9D,cAAK,SAAS,EAAC,YAAY,EAAC,EAAE,EAAC,YAAY,kCAErC,CACP,IACc,EAChB,gBAAgB,IAAI,CACnB,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,YAC9B,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,sBAE/C,GACH,CACP,EACD,MAAC,IAAI,IAAC,EAAE,EAAC,aAAa,EAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,QAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,aACjG,MAAC,QAAQ,IAAC,OAAO,EAAE,WAAW,aAC5B,KAAC,cAAc,KAAG,eACT,EACX,MAAC,QAAQ,IAAC,OAAO,EAAE,UAAU,aAC3B,KAAC,WAAW,KAAG,cACN,IACN,EACP,MAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,qBAAkB,mBAAmB,aAC5E,MAAC,WAAW,IAAC,EAAE,EAAC,mBAAmB,yBAAU,QAAQ,IAAe,EACpE,KAAC,aAAa,cACX,kBAAkB,CAAC,CAAC,CAAC,CACpB,8BACE,MAAC,MAAM,IAAC,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,mBAC5E,KAAC,QAAQ,IAAC,KAAK,EAAC,UAAU,gCAA2B,EACrD,KAAC,QAAQ,IAAC,KAAK,EAAC,OAAO,4BAAuB,EAC9C,KAAC,QAAQ,IAAC,KAAK,EAAC,OAAO,sBAAiB,EACxC,KAAC,QAAQ,IAAC,KAAK,EAAC,QAAQ,uBAAkB,EAC1C,KAAC,QAAQ,IAAC,KAAK,EAAC,MAAM,wBAAmB,EACzC,KAAC,QAAQ,IAAC,KAAK,EAAC,SAAS,4BAAuB,IACzC,EACR,UAAU,KAAK,MAAM,IAAI,CACxB,KAAC,SAAS,IACR,SAAS,QACT,MAAM,EAAC,OAAO,EACd,EAAE,EAAC,gBAAgB,EACnB,IAAI,EAAC,MAAM,EACX,SAAS,QACT,KAAK,EAAE,sBAAsB,EAC7B,QAAQ,EAAE,gBAAgB,GAC1B,CACH,EACA,UAAU,KAAK,UAAU,IAAI,CAC5B,KAAC,SAAS,IACR,SAAS,QACT,MAAM,EAAC,OAAO,EACd,EAAE,EAAC,gBAAgB,EACnB,IAAI,EAAC,gBAAgB,EACrB,SAAS,QACT,KAAK,EAAE,sBAAsB,EAC7B,QAAQ,EAAE,gBAAgB,GAC1B,CACH,EACA,UAAU,KAAK,MAAM,IAAI,CACxB,KAAC,SAAS,IACR,SAAS,QACT,MAAM,EAAC,OAAO,EACd,EAAE,EAAC,gBAAgB,EACnB,IAAI,EAAC,MAAM,EACX,SAAS,QACT,KAAK,EAAE,sBAAsB,EAC7B,QAAQ,EAAE,gBAAgB,GAC1B,CACH,IACA,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,MAAC,MAAM,IAAC,EAAE,EAAC,QAAQ,EAAC,SAAS,QAAC,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAE,2BAA2B,aAC/F,KAAC,QAAQ,IAAC,KAAK,EAAC,UAAU,yBAAoB,EAC9C,KAAC,QAAQ,IAAC,KAAK,EAAC,QAAQ,uBAAkB,EAC1C,KAAC,QAAQ,IAAC,KAAK,EAAC,YAAY,4BAAuB,IAC5C,EACT,KAAC,SAAS,IACR,SAAS,QACT,MAAM,EAAC,OAAO,EACd,EAAE,EAAC,gBAAgB,EACnB,IAAI,EAAC,MAAM,EACX,SAAS,QACT,KAAK,EAAE,0BAA0B,EACjC,QAAQ,EAAE,oBAAoB,GAC9B,IACD,CACJ,GACa,EAChB,MAAC,aAAa,eACZ,KAAC,MAAM,IAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAC,WAAW,uBAEvC,EACT,KAAC,MAAM,IAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAC,SAAS,uBAEtC,IACK,IACT,IACR,CACJ,CAAC;AACJ,CAAC","sourcesContent":["/* eslint-disable no-nested-ternary */\nimport React, { PropsWithChildren, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Paper from '@material-ui/core/Paper';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Link from '@material-ui/core/Link';\nimport { createElement } from 'react';\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\nimport MoreIcon from '@material-ui/icons/MoreVert';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport FilterListIcon from '@material-ui/icons/FilterList';\nimport SubjectIcon from '@material-ui/icons/Subject';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Select from '@material-ui/core/Select';\nimport Button from '@material-ui/core/Button';\nimport TextField from '@material-ui/core/TextField';\n\nimport createPConnectComponent from '../../../../bridge/react_pconnect';\nimport { Utils } from '../../../helpers/utils';\nimport { getReferenceList } from '../../../helpers/field-group-utils';\nimport { getDataPage } from '../../../helpers/data_page';\nimport { buildFieldsForTable, filterData, getContext } from '../../../helpers/simpleTableHelpers';\nimport { PConnProps } from '../../../../types/PConnProps';\nimport { format } from '../../../helpers/formatters';\n\ninterface SimpleTableManualProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n hideAddRow?: boolean;\n hideDeleteRow?: boolean;\n referenceList?: any[];\n renderMode?: string;\n presets?: any[];\n label?: string;\n showLabel?: boolean;\n dataPageName?: string;\n contextClass?: string;\n propertyLabel?: string;\n fieldMetadata?: any;\n editMode?: string;\n addAndEditRowsWithin?: any;\n viewForAddAndEditModal?: any;\n editModeConfig?: any;\n displayMode?: string;\n useSeparateViewForEdit: any;\n viewForEditModal: any;\n}\n\nconst useStyles = makeStyles((/* theme */) => ({\n label: {\n margin: '8px'\n },\n header: {\n background: '#f5f5f5'\n },\n tableCell: {\n borderRight: '1px solid lightgray',\n padding: '8px'\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1\n },\n moreIcon: {\n verticalAlign: 'bottom'\n }\n}));\n\nlet menuColumnId = '';\nlet menuColumnType = '';\nlet menuColumnLabel = '';\n\nconst filterByColumns: any[] = [];\nlet myRows: any[];\n\nexport default function SimpleTableManual(props: PropsWithChildren<SimpleTableManualProps>) {\n const classes = useStyles();\n const {\n getPConnect,\n referenceList = [], // if referenceList not in configProps$, default to empy list\n children,\n renderMode,\n presets,\n label: labelProp,\n showLabel,\n dataPageName,\n contextClass,\n hideAddRow,\n hideDeleteRow,\n propertyLabel,\n fieldMetadata,\n editMode,\n addAndEditRowsWithin,\n viewForAddAndEditModal,\n editModeConfig,\n displayMode,\n useSeparateViewForEdit,\n viewForEditModal\n } = props;\n const pConn = getPConnect();\n const [rowData, setRowData] = useState([]);\n const [elements, setElementsData] = useState([]);\n const [order, setOrder] = useState<Order>('asc');\n const [orderBy, setOrderBy] = useState<keyof any>('');\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [editAnchorEl, setEditAnchorEl] = useState<null | HTMLElement>(null);\n const [open, setOpen] = useState(false);\n const [filterBy, setFilterBy] = useState<string>();\n const [containsDateOrTime, setContainsDateOrTime] = useState<boolean>(false);\n const [filterType, setFilterType] = useState<string>('string');\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [displayDialogFilterName, setDisplayDialogFilterName] = useState<string>('');\n const [displayDialogContainsFilter, setDisplayDialogContainsFilter] = useState<string>('contains');\n const [displayDialogContainsValue, setDisplayDialogContainsValue] = useState<string>('');\n const [displayDialogDateFilter, setDisplayDialogDateFilter] = useState<string>('notequal');\n const [displayDialogDateValue, setDisplayDialogDateValue] = useState<string>('');\n const selectedRowIndex: any = useRef(null);\n\n const parameters = fieldMetadata?.datasource?.parameters;\n const { referenceListStr } = getContext(getPConnect());\n const label = labelProp || propertyLabel;\n const propsToUse = { label, showLabel, ...getPConnect().getInheritedProps() };\n if (propsToUse.showLabel === false) {\n propsToUse.label = '';\n }\n // Getting current context\n const context = getPConnect().getContextName();\n const resolvedList = getReferenceList(pConn);\n pConn.setReferenceList(resolvedList);\n const menuIconOverride$ = Utils.getImageSrc('trash', Utils.getSDKStaticConentUrl());\n\n const resolvedFields = children?.[0]?.children || presets?.[0].children?.[0].children;\n // NOTE: props has each child.config with datasource and value undefined\n // but getRawMetadata() has each child.config with datasource and value showing their unresolved values (ex: \"@P thePropName\")\n // We need to use the prop name as the \"glue\" to tie the table dataSource, displayColumns and data together.\n // So, in the code below, we'll use the unresolved config.value (but replacing the space with an underscore to keep things happy)\n const rawMetadata: any = getPConnect().getRawMetadata();\n\n // get raw config since @P and other annotations are processed and don't appear in the resolved config.\n // Destructure \"raw\" children into array var: \"rawFields\"\n // NOTE: when config.listType == \"associated\", the property can be found in either\n // config.value (ex: \"@P .DeclarantChoice\") or\n // config.datasource (ex: \"@ASSOCIATED .DeclarantChoice\")\n // Neither of these appear in the resolved props\n\n const rawConfig = rawMetadata?.config;\n const rawFields = rawConfig?.children?.[0]?.children || rawConfig?.presets?.[0].children?.[0]?.children;\n const isDisplayModeEnabled = displayMode === 'DISPLAY_ONLY';\n const readOnlyMode = renderMode === 'ReadOnly';\n const editableMode = renderMode === 'Editable';\n const showAddRowButton = !readOnlyMode && !hideAddRow;\n const allowEditingInModal =\n (editMode ? editMode === 'modal' : addAndEditRowsWithin === 'modal') && !(renderMode === 'ReadOnly' || isDisplayModeEnabled);\n const showDeleteButton = editableMode && !hideDeleteRow;\n const defaultView = editModeConfig ? editModeConfig.defaultView : viewForAddAndEditModal;\n const bUseSeparateViewForEdit = editModeConfig ? editModeConfig.useSeparateViewForEdit : useSeparateViewForEdit;\n const editView = editModeConfig ? editModeConfig.editView : viewForEditModal;\n\n const fieldsWithPropNames = rawFields.map((field, index) => {\n return { ...resolvedFields[index], propName: field.config.value.replace('@P .', '') };\n });\n\n useEffect(() => {\n if (editableMode && !allowEditingInModal) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n buildElementsForTable();\n }\n }, [referenceList.length]);\n\n useEffect(() => {\n if (readOnlyMode || allowEditingInModal) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n generateRowsData();\n }\n }, [referenceList]);\n\n // fieldDefs will be an array where each entry will have a \"name\" which will be the\n // \"resolved\" property name (that we can use as the colId) though it's not really\n // resolved. The buildFieldsForTable helper just removes the \"@P \" (which is what\n // Constellation DX Components do). It will also have the \"label\", and \"meta\" contains the original,\n // unchanged config info. For now, much of the info here is carried over from\n // Constellation DX Components.\n const fieldDefs = buildFieldsForTable(rawFields, resolvedFields, showDeleteButton);\n\n useLayoutEffect(() => {\n if (allowEditingInModal) {\n getPConnect()\n .getListActions()\n // @ts-ignore - An argument for 'uniqueField' was not provided.\n .initDefaultPageInstructions(\n getPConnect().getReferenceList(),\n fieldDefs.filter(item => item.name).map(item => item.name)\n );\n } else {\n // @ts-ignore - An argument for 'fields' was not provided\n getPConnect().getListActions().initDefaultPageInstructions(getPConnect().getReferenceList());\n }\n }, []);\n\n const displayedColumns = fieldDefs.map(field => {\n return field.name ? field.name : field.cellRenderer;\n });\n\n const getFormattedValue = (val, key) => {\n const rawField = fieldsWithPropNames.find(item => item.propName === key);\n let options = {};\n if (rawField && ['Boolean', 'Checkbox'].includes(rawField.type)) {\n const { trueLabel, falseLabel } = rawField.config;\n options = {\n trueLabel,\n falseLabel\n };\n }\n return rawField ? format(val, rawField.type, options) : val;\n };\n\n // console.log(`SimpleTable displayedColumns:`);\n // console.log(displayedColumns);\n\n // return the value that should be shown as the contents for the given row data\n // of the given row field\n function getRowValue(inRowData: Object, inColKey: string): any {\n // See what data (if any) we have to display\n const refKeys: string[] = inColKey?.split('.');\n let valBuilder = inRowData;\n for (const key of refKeys) {\n valBuilder = valBuilder[key];\n }\n return getFormattedValue(valBuilder, inColKey);\n }\n\n const formatRowsData = data => {\n if (!data) return {};\n\n return data.map(item => {\n return displayedColumns.reduce((dataForRow, colKey) => {\n dataForRow[colKey] = getRowValue(item, colKey);\n return dataForRow;\n }, {});\n });\n };\n\n function generateRowsData() {\n // if referenceList is empty and dataPageName property value exists then make a datapage fetch call and get the list of data.\n if (!referenceList.length && dataPageName) {\n getDataPage(dataPageName, parameters, context).then(listData => {\n const data = formatRowsData(listData);\n myRows = data;\n setRowData(data);\n });\n } else {\n // The referenceList prop has the JSON data for each row to be displayed\n // in the table. So, iterate over referenceList to create the dataRows that\n // we're using as the table's dataSource\n const data: any = [];\n for (const row of referenceList) {\n const dataForRow: Object = {};\n for (const col of displayedColumns) {\n const colKey: string = col;\n const theVal = getRowValue(row, colKey);\n dataForRow[colKey] = theVal || '';\n }\n data.push(dataForRow);\n myRows = data;\n }\n setRowData(data);\n }\n }\n\n // May be useful for debugging or understanding how it works.\n // These are the data structures referred to in the html file.\n // These are the relationships that make the table work\n // displayedColumns: key/value pairs where key is order of column and\n // value is the property shown in that column. Ex: 1: \"FirstName\"\n // rowData: array of each row's key/value pairs. Inside each row,\n // each key is an entry in displayedColumns: ex: \"FirstName\": \"Charles\"\n // Ex: { 1: {config: {label: \"First Name\", readOnly: true: name: \"FirstName\"}}, type: \"TextInput\" }\n // The \"type\" indicates the type of component that should be used for editing (when editing is enabled)\n //\n // console.log(\"SimpleTable displayedColumns:\");\n // console.log(displayedColumns);\n // console.log(`SimpleTable rowData (${rowData.length} row(s)):`);\n // console.log(JSON.stringify(rowData));\n\n const addRecord = () => {\n if (allowEditingInModal && defaultView) {\n pConn\n .getActionsApi()\n .openEmbeddedDataModal(defaultView, pConn, referenceListStr, referenceList.length, PCore.getConstants().RESOURCE_STATUS.CREATE);\n } else {\n // @ts-ignore - An argument for 'pageRef' was not provided.\n pConn.getListActions().insert({ classID: contextClass }, referenceList.length);\n }\n\n getPConnect().clearErrorMessages({\n property: (getPConnect().getStateProps() as any)?.referenceList?.substring(1)\n } as any);\n };\n\n const editRecord = () => {\n setEditAnchorEl(null);\n if (typeof selectedRowIndex.current === 'number') {\n pConn\n .getActionsApi()\n .openEmbeddedDataModal(\n bUseSeparateViewForEdit ? editView : defaultView,\n pConn,\n referenceListStr,\n selectedRowIndex.current,\n PCore.getConstants().RESOURCE_STATUS.UPDATE\n );\n }\n };\n\n const deleteRecord = () => {\n setEditAnchorEl(null);\n // @ts-ignore - An argument for 'pageRef' was not provided.\n pConn.getListActions().deleteEntry(selectedRowIndex.current);\n };\n\n const deleteRecordFromInlineEditable = (index: number) => {\n // @ts-ignore - An argument for 'pageRef' was not provided.\n pConn.getListActions().deleteEntry(index);\n };\n\n function buildElementsForTable() {\n const eleData: any = [];\n referenceList.forEach((element, index) => {\n const data: any = [];\n rawFields.forEach(item => {\n // removing label field from config to hide title in the table cell\n item = { ...item, config: { ...item.config, label: '' } };\n const referenceListData = getReferenceList(pConn);\n const isDatapage = referenceListData.startsWith('D_');\n const pageReferenceValue = isDatapage\n ? `${referenceListData}[${index}]`\n : `${pConn.getPageReference()}${referenceListData.substring(referenceListData.lastIndexOf('.'))}[${index}]`;\n const config = {\n meta: item,\n options: {\n context,\n pageReference: pageReferenceValue,\n referenceList: referenceListData,\n hasForm: true\n }\n };\n const view = PCore.createPConnect(config);\n data.push(createElement(createPConnectComponent(), view));\n });\n eleData.push(data);\n });\n setElementsData(eleData);\n }\n\n const handleRequestSort = (event: React.MouseEvent<unknown>, property: keyof any) => {\n const isAsc = orderBy === property && order === 'asc';\n setOrder(isAsc ? 'desc' : 'asc');\n setOrderBy(property);\n };\n\n const createSortHandler = (property: keyof any) => (event: React.MouseEvent<unknown>) => {\n handleRequestSort(event, property);\n };\n\n function descendingComparator<T>(a: T, b: T, orderedBy: keyof T) {\n if (!b[orderedBy] || b[orderedBy] < a[orderedBy]) {\n return -1;\n }\n if (!a[orderedBy] || b[orderedBy] > a[orderedBy]) {\n return 1;\n }\n return 0;\n }\n\n type Order = 'asc' | 'desc';\n\n function getComparator<Key extends keyof any>(\n theOrder: Order,\n orderedBy: Key\n ): (a: { [key in Key]: number | string }, b: { [key in Key]: number | string }) => number {\n return theOrder === 'desc' ? (a, b) => descendingComparator(a, b, orderedBy) : (a, b) => -descendingComparator(a, b, orderedBy);\n }\n\n function stableSort<T>(array: T[], comparator: (a: T, b: T) => number) {\n const stabilizedThis = array.map((el, index) => [el, index] as [T, number]);\n stabilizedThis.sort((a, b) => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const order = comparator(a[0], b[0]);\n if (order !== 0) return order;\n return a[1] - b[1];\n });\n\n return stabilizedThis.map(el => el[0]);\n }\n\n function _menuClick(event, columnId: string, columnType: string, labelValue: string) {\n menuColumnId = columnId;\n menuColumnType = columnType;\n menuColumnLabel = labelValue;\n\n setAnchorEl(event.currentTarget);\n }\n\n function editMenuClick(event, index) {\n selectedRowIndex.current = index;\n setEditAnchorEl(event.currentTarget);\n }\n\n function _menuClose() {\n setAnchorEl(null);\n setEditAnchorEl(null);\n }\n\n function _filterMenu() {\n setAnchorEl(null);\n\n let bFound = false;\n\n for (const filterObj of filterByColumns) {\n if (filterObj.ref === menuColumnId) {\n setFilterBy(menuColumnLabel);\n if (filterObj.type === 'Date' || filterObj.type === 'DateTime' || filterObj.type === 'Time') {\n setContainsDateOrTime(true);\n setFilterType(filterObj.type);\n setDisplayDialogDateFilter(filterObj.containsFilter);\n setDisplayDialogDateValue(filterObj.containsFilterValue);\n } else {\n setContainsDateOrTime(false);\n setFilterType('string');\n setDisplayDialogContainsFilter(filterObj.containsFilter);\n setDisplayDialogContainsValue(filterObj.containsFilterValue);\n }\n bFound = true;\n break;\n }\n }\n\n if (!bFound) {\n setFilterBy(menuColumnLabel);\n setDisplayDialogFilterName(menuColumnId);\n setDisplayDialogContainsValue('');\n\n switch (menuColumnType) {\n case 'Date':\n case 'DateTime':\n case 'Time':\n setContainsDateOrTime(true);\n setFilterType(menuColumnType);\n break;\n default:\n setContainsDateOrTime(false);\n setFilterType('string');\n break;\n }\n }\n\n // open dialog\n setOpen(true);\n }\n\n function _groupMenu() {}\n\n function _closeDialog() {\n setOpen(false);\n }\n\n function _dialogContainsFilter(event) {\n setDisplayDialogContainsFilter(event.target.value);\n }\n\n function _dialogContainsValue(event) {\n setDisplayDialogContainsValue(event.target.value);\n }\n\n function _dialogDateFilter(event) {\n setDisplayDialogDateFilter(event.target.value);\n }\n\n function _dialogDateValue(event) {\n setDisplayDialogDateValue(event.target.value);\n }\n\n function filterSortGroupBy() {\n // get original data set\n let theData: any = myRows.slice();\n\n // last filter config data is global\n theData = theData.filter(filterData(filterByColumns));\n\n // move data to array and then sort\n setRowData(theData);\n }\n\n function updateFilterWithInfo() {\n let bFound = false;\n for (const filterObj of filterByColumns) {\n if (filterObj.ref === menuColumnId) {\n filterObj.type = filterType;\n if (containsDateOrTime) {\n filterObj.containsFilter = displayDialogDateFilter;\n filterObj.containsFilterValue = displayDialogDateValue;\n } else {\n filterObj.containsFilter = displayDialogContainsFilter;\n filterObj.containsFilterValue = displayDialogContainsValue;\n }\n bFound = true;\n break;\n }\n }\n\n if (!bFound) {\n // add in\n const filterObj: any = {};\n filterObj.ref = menuColumnId;\n filterObj.type = filterType;\n if (containsDateOrTime) {\n filterObj.containsFilter = displayDialogDateFilter;\n filterObj.containsFilterValue = displayDialogDateValue;\n } else {\n filterObj.containsFilter = displayDialogContainsFilter;\n filterObj.containsFilterValue = displayDialogContainsValue;\n }\n\n filterByColumns.push(filterObj);\n }\n }\n\n function _submitFilter() {\n updateFilterWithInfo();\n filterSortGroupBy();\n\n setOpen(false);\n }\n\n function _showFilteredIcon(columnId) {\n for (const filterObj of filterByColumns) {\n if (filterObj.ref === columnId) {\n // eslint-disable-next-line sonarjs/prefer-single-boolean-return\n if (filterObj.containsFilterValue !== '') {\n return true;\n }\n return false;\n }\n }\n\n return false;\n }\n\n function results() {\n const len = editableMode ? elements.length : rowData.length;\n\n return len ? (\n <span style={{ fontSize: '0.9em', opacity: '0.7' }}>\n {len} result{len > 1 ? 's' : ''}\n </span>\n ) : null;\n }\n\n return (\n <>\n <TableContainer component={Paper} style={{ margin: '4px 0px' }} id='simple-table-manual'>\n {propsToUse.label && (\n <h3 className={classes.label}>\n {propsToUse.label} {results()}\n </h3>\n )}\n <Table>\n <TableHead className={classes.header}>\n <TableRow>\n {fieldDefs.map((field: any, index) => {\n return (\n <TableCell key={`head-${displayedColumns[index]}`} className={classes.tableCell}>\n {readOnlyMode ? (\n <div>\n <TableSortLabel\n active={orderBy === displayedColumns[index]}\n direction={orderBy === displayedColumns[index] ? order : 'asc'}\n onClick={createSortHandler(displayedColumns[index])}\n >\n {field.label || '---'}\n {_showFilteredIcon(field.name) && <FilterListIcon className={classes.moreIcon} />}\n {orderBy === displayedColumns[index] ? (\n <span className={classes.visuallyHidden}>{order === 'desc' ? 'sorted descending' : 'sorted ascending'}</span>\n ) : null}\n </TableSortLabel>\n <MoreIcon\n id='menu-icon'\n className={classes.moreIcon}\n onClick={event => {\n _menuClick(event, field.name, field.meta.type, field.label);\n }}\n />\n </div>\n ) : (\n field.label\n )}\n </TableCell>\n );\n })}\n </TableRow>\n </TableHead>\n <TableBody>\n {editableMode &&\n elements.map((row: any, index) => {\n const theKey = `row-${index}`;\n return (\n <TableRow key={theKey}>\n {row.map((item, childIndex) => {\n const theColKey = `data-${index}-${childIndex}`;\n return (\n <TableCell key={theColKey} className={classes.tableCell}>\n {item}\n </TableCell>\n );\n })}\n {showDeleteButton && (\n <TableCell>\n <button\n type='button'\n className='psdk-utility-button'\n id='delete-button'\n aria-label='Delete Cell'\n onClick={() => deleteRecordFromInlineEditable(index)}\n >\n <img className='psdk-utility-card-action-svg-icon' src={menuIconOverride$} />\n </button>\n </TableCell>\n )}\n </TableRow>\n );\n })}\n {(readOnlyMode || allowEditingInModal) &&\n rowData &&\n rowData.length > 0 &&\n stableSort(rowData, getComparator(order, orderBy))\n .slice(0)\n .map((row, index) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n <TableRow key={index}>\n {displayedColumns.map(colKey => {\n return (\n <TableCell key={colKey} className={classes.tableCell}>\n {showDeleteButton && colKey === 'DeleteIcon' ? (\n <div>\n <MoreIcon\n id='table-edit-menu-icon'\n className={classes.moreIcon}\n onClick={event => {\n editMenuClick(event, index);\n }}\n />\n <Menu id='table-edit-menu' anchorEl={editAnchorEl} keepMounted open={Boolean(editAnchorEl)} onClose={_menuClose}>\n <MenuItem onClick={() => editRecord()}>Edit</MenuItem>\n <MenuItem onClick={() => deleteRecord()}>Delete</MenuItem>\n </Menu>\n </div>\n ) : typeof row[colKey] === 'boolean' && !row[colKey] ? (\n 'False'\n ) : typeof row[colKey] === 'boolean' && row[colKey] ? (\n 'True'\n ) : (\n row[colKey] || '---'\n )}\n </TableCell>\n );\n })}\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n {readOnlyMode && rowData && rowData.length === 0 && (\n <div className='no-records' id='no-records'>\n No records found.\n </div>\n )}\n {editableMode && referenceList && referenceList.length === 0 && (\n <div className='no-records' id='no-records'>\n No records found.\n </div>\n )}\n </TableContainer>\n {showAddRowButton && (\n <div style={{ fontSize: '1rem' }}>\n <Link style={{ cursor: 'pointer' }} onClick={addRecord}>\n + Add\n </Link>\n </div>\n )}\n <Menu id='simple-menu' anchorEl={anchorEl} keepMounted open={Boolean(anchorEl)} onClose={_menuClose}>\n <MenuItem onClick={_filterMenu}>\n <FilterListIcon /> Filter\n </MenuItem>\n <MenuItem onClick={_groupMenu}>\n <SubjectIcon /> Group\n </MenuItem>\n </Menu>\n <Dialog open={open} onClose={_closeDialog} aria-labelledby='form-dialog-title'>\n <DialogTitle id='form-dialog-title'>Filter: {filterBy}</DialogTitle>\n <DialogContent>\n {containsDateOrTime ? (\n <>\n <Select value={displayDialogDateFilter} onChange={_dialogDateFilter} fullWidth>\n <MenuItem value='notequal'>is not equal to</MenuItem>\n <MenuItem value='equal'>is equal to</MenuItem>\n <MenuItem value='after'>after</MenuItem>\n <MenuItem value='before'>before</MenuItem>\n <MenuItem value='null'>is null</MenuItem>\n <MenuItem value='notnull'>is not null</MenuItem>\n </Select>\n {filterType === 'Date' && (\n <TextField\n autoFocus\n margin='dense'\n id='containsFilter'\n type='date'\n fullWidth\n value={displayDialogDateValue}\n onChange={_dialogDateValue}\n />\n )}\n {filterType === 'DateTime' && (\n <TextField\n autoFocus\n margin='dense'\n id='containsFilter'\n type='datetime-local'\n fullWidth\n value={displayDialogDateValue}\n onChange={_dialogDateValue}\n />\n )}\n {filterType === 'Time' && (\n <TextField\n autoFocus\n margin='dense'\n id='containsFilter'\n type='time'\n fullWidth\n value={displayDialogDateValue}\n onChange={_dialogDateValue}\n />\n )}\n </>\n ) : (\n <>\n <Select id='filter' fullWidth onChange={_dialogContainsFilter} value={displayDialogContainsFilter}>\n <MenuItem value='contains'>Contains</MenuItem>\n <MenuItem value='equals'>Equals</MenuItem>\n <MenuItem value='startswith'>Starts with</MenuItem>\n </Select>\n <TextField\n autoFocus\n margin='dense'\n id='containsFilter'\n type='text'\n fullWidth\n value={displayDialogContainsValue}\n onChange={_dialogContainsValue}\n />\n </>\n )}\n </DialogContent>\n <DialogActions>\n <Button onClick={_closeDialog} color='secondary'>\n Cancel\n </Button>\n <Button onClick={_submitFilter} color='primary'>\n Submit\n </Button>\n </DialogActions>\n </Dialog>\n </>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SimpleTableManual.js","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { PropsWithChildren, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport Table from '@mui/material/Table';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableContainer from '@mui/material/TableContainer';\nimport TableHead from '@mui/material/TableHead';\nimport TableRow from '@mui/material/TableRow';\nimport Paper from '@mui/material/Paper';\nimport makeStyles from '@mui/styles/makeStyles';\nimport Link from '@mui/material/Link';\nimport { createElement } from 'react';\nimport TableSortLabel from '@mui/material/TableSortLabel';\nimport MoreIcon from '@mui/icons-material/MoreVert';\nimport Menu from '@mui/material/Menu';\nimport MenuItem from '@mui/material/MenuItem';\nimport FilterListIcon from '@mui/icons-material/FilterList';\nimport SubjectIcon from '@mui/icons-material/Subject';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport Select from '@mui/material/Select';\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\n\nimport createPConnectComponent from '../../../../bridge/react_pconnect';\nimport { Utils } from '../../../helpers/utils';\nimport { getReferenceList } from '../../../helpers/field-group-utils';\nimport { getDataPage } from '../../../helpers/data_page';\nimport { getGenericFieldsLocalizedValue } from '../../../helpers/common-utils';\nimport { buildFieldsForTable, filterData, getContext } from '../../../helpers/simpleTableHelpers';\nimport { PConnProps } from '../../../../types/PConnProps';\nimport { format } from '../../../helpers/formatters';\n\ninterface SimpleTableManualProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n hideAddRow?: boolean;\n hideDeleteRow?: boolean;\n referenceList?: any[];\n renderMode?: string;\n presets?: any[];\n label?: string;\n showLabel?: boolean;\n dataPageName?: string;\n contextClass?: string;\n propertyLabel?: string;\n fieldMetadata?: any;\n editMode?: string;\n addAndEditRowsWithin?: any;\n viewForAddAndEditModal?: any;\n editModeConfig?: any;\n displayMode?: string;\n useSeparateViewForEdit: any;\n viewForEditModal: any;\n validatemessage?: string;\n required?: boolean;\n}\n\nconst useStyles = makeStyles((/* theme */) => ({\n label: {\n margin: '8px'\n },\n tableLabel: {\n '&::after': {\n display: 'inline',\n content: '\" *\"',\n verticalAlign: 'top',\n color: 'var(--app-error-color)'\n }\n },\n message: {\n margin: '8px',\n color: 'var(--app-error-color)',\n fontSize: '14px'\n },\n header: {\n background: '#f5f5f5'\n },\n tableCell: {\n borderRight: '1px solid lightgray',\n padding: '8px'\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1\n },\n moreIcon: {\n verticalAlign: 'bottom'\n }\n}));\n\nlet menuColumnId = '';\nlet menuColumnType = '';\nlet menuColumnLabel = '';\n\nconst filterByColumns: any[] = [];\nlet myRows: any[];\n\nexport default function SimpleTableManual(props: PropsWithChildren<SimpleTableManualProps>) {\n const classes = useStyles();\n const {\n getPConnect,\n referenceList = [], // if referenceList not in configProps$, default to empy list\n children,\n renderMode,\n presets,\n label: labelProp,\n showLabel,\n dataPageName,\n contextClass,\n hideAddRow,\n hideDeleteRow,\n propertyLabel,\n fieldMetadata,\n editMode,\n addAndEditRowsWithin,\n viewForAddAndEditModal,\n editModeConfig,\n displayMode,\n useSeparateViewForEdit,\n viewForEditModal,\n required,\n validatemessage\n } = props;\n const pConn = getPConnect();\n const [rowData, setRowData] = useState([]);\n const [elements, setElementsData] = useState([]);\n const [order, setOrder] = useState<Order>('asc');\n const [orderBy, setOrderBy] = useState<keyof any>('');\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [editAnchorEl, setEditAnchorEl] = useState<null | HTMLElement>(null);\n const [open, setOpen] = useState(false);\n const [filterBy, setFilterBy] = useState<string>();\n const [containsDateOrTime, setContainsDateOrTime] = useState<boolean>(false);\n const [filterType, setFilterType] = useState<string>('string');\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [displayDialogFilterName, setDisplayDialogFilterName] = useState<string>('');\n const [displayDialogContainsFilter, setDisplayDialogContainsFilter] = useState<string>('contains');\n const [displayDialogContainsValue, setDisplayDialogContainsValue] = useState<string>('');\n const [displayDialogDateFilter, setDisplayDialogDateFilter] = useState<string>('notequal');\n const [displayDialogDateValue, setDisplayDialogDateValue] = useState<string>('');\n const selectedRowIndex: any = useRef(null);\n const localizedVal = PCore.getLocaleUtils().getLocaleValue;\n const localeCategory = 'SimpleTable';\n const parameters = fieldMetadata?.datasource?.parameters;\n const { referenceListStr } = getContext(getPConnect());\n const label = labelProp || propertyLabel;\n const propsToUse = { label, showLabel, ...getPConnect().getInheritedProps() };\n if (propsToUse.showLabel === false) {\n propsToUse.label = '';\n }\n // Getting current context\n const context = getPConnect().getContextName();\n const resolvedList = getReferenceList(pConn);\n pConn.setReferenceList(resolvedList);\n const menuIconOverride$ = Utils.getImageSrc('trash', Utils.getSDKStaticConentUrl());\n\n const resolvedFields = children?.[0]?.children || presets?.[0].children?.[0].children;\n // NOTE: props has each child.config with datasource and value undefined\n // but getRawMetadata() has each child.config with datasource and value showing their unresolved values (ex: \"@P thePropName\")\n // We need to use the prop name as the \"glue\" to tie the table dataSource, displayColumns and data together.\n // So, in the code below, we'll use the unresolved config.value (but replacing the space with an underscore to keep things happy)\n const rawMetadata: any = getPConnect().getRawMetadata();\n\n // get raw config since @P and other annotations are processed and don't appear in the resolved config.\n // Destructure \"raw\" children into array var: \"rawFields\"\n // NOTE: when config.listType == \"associated\", the property can be found in either\n // config.value (ex: \"@P .DeclarantChoice\") or\n // config.datasource (ex: \"@ASSOCIATED .DeclarantChoice\")\n // Neither of these appear in the resolved props\n\n const rawConfig = rawMetadata?.config;\n const rawFields = rawConfig?.children?.[0]?.children || rawConfig?.presets?.[0].children?.[0]?.children;\n const isDisplayModeEnabled = displayMode === 'DISPLAY_ONLY';\n const readOnlyMode = renderMode === 'ReadOnly';\n const editableMode = renderMode === 'Editable';\n const showAddRowButton = !readOnlyMode && !hideAddRow;\n const allowEditingInModal =\n (editMode ? editMode === 'modal' : addAndEditRowsWithin === 'modal') && !(renderMode === 'ReadOnly' || isDisplayModeEnabled);\n const showDeleteButton = editableMode && !hideDeleteRow;\n const defaultView = editModeConfig ? editModeConfig.defaultView : viewForAddAndEditModal;\n const bUseSeparateViewForEdit = editModeConfig ? editModeConfig.useSeparateViewForEdit : useSeparateViewForEdit;\n const editView = editModeConfig ? editModeConfig.editView : viewForEditModal;\n\n const fieldsWithPropNames = rawFields.map((field, index) => {\n return { ...resolvedFields[index], propName: field.config.value.replace('@P .', '') };\n });\n\n useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n buildElementsForTable();\n if (readOnlyMode || allowEditingInModal) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n generateRowsData();\n }\n }, [referenceList]);\n\n // fieldDefs will be an array where each entry will have a \"name\" which will be the\n // \"resolved\" property name (that we can use as the colId) though it's not really\n // resolved. The buildFieldsForTable helper just removes the \"@P \" (which is what\n // Constellation DX Components do). It will also have the \"label\", and \"meta\" contains the original,\n // unchanged config info. For now, much of the info here is carried over from\n // Constellation DX Components.\n const fieldDefs = buildFieldsForTable(rawFields, resolvedFields, showDeleteButton);\n\n useLayoutEffect(() => {\n if (allowEditingInModal) {\n getPConnect()\n .getListActions()\n .initDefaultPageInstructions(\n getPConnect().getReferenceList(),\n fieldDefs.filter(item => item.name).map(item => item.name)\n );\n } else {\n // @ts-ignore - An argument for 'fields' was not provided\n getPConnect().getListActions().initDefaultPageInstructions(getPConnect().getReferenceList());\n }\n }, []);\n\n const displayedColumns = fieldDefs.map(field => {\n return field.name ? field.name : field.cellRenderer;\n });\n\n const getFormattedValue = (val, key) => {\n const rawField = fieldsWithPropNames.find(item => item.propName === key);\n let options = {};\n if (rawField && ['Boolean', 'Checkbox'].includes(rawField.type)) {\n const { trueLabel, falseLabel } = rawField.config;\n options = {\n trueLabel,\n falseLabel\n };\n }\n return rawField ? format(val, rawField.type, options) : val;\n };\n\n // console.log(`SimpleTable displayedColumns:`);\n // console.log(displayedColumns);\n\n // return the value that should be shown as the contents for the given row data\n // of the given row field\n function getRowValue(inRowData: Object, inColKey: string): any {\n // See what data (if any) we have to display\n const refKeys: string[] = inColKey?.split('.');\n let valBuilder = inRowData;\n for (const key of refKeys) {\n valBuilder = valBuilder[key];\n }\n return getFormattedValue(valBuilder, inColKey);\n }\n\n const formatRowsData = data => {\n if (!data) return {};\n\n return data.map(item => {\n return displayedColumns.reduce((dataForRow, colKey) => {\n dataForRow[colKey] = getRowValue(item, colKey);\n return dataForRow;\n }, {});\n });\n };\n\n function generateRowsData() {\n // if referenceList is empty and dataPageName property value exists then make a datapage fetch call and get the list of data.\n if (!referenceList.length && dataPageName) {\n getDataPage(dataPageName, parameters, context)\n .then(listData => {\n const data = formatRowsData(listData);\n myRows = data;\n setRowData(data);\n })\n .catch(e => {\n // eslint-disable-next-line no-console\n console.log(e);\n });\n } else {\n // The referenceList prop has the JSON data for each row to be displayed\n // in the table. So, iterate over referenceList to create the dataRows that\n // we're using as the table's dataSource\n const data: any = [];\n for (const row of referenceList) {\n const dataForRow: Object = {};\n for (const col of displayedColumns) {\n const colKey: string = col;\n const theVal = getRowValue(row, colKey);\n dataForRow[colKey] = theVal || '';\n }\n data.push(dataForRow);\n myRows = data;\n }\n setRowData(data);\n }\n }\n\n // May be useful for debugging or understanding how it works.\n // These are the data structures referred to in the html file.\n // These are the relationships that make the table work\n // displayedColumns: key/value pairs where key is order of column and\n // value is the property shown in that column. Ex: 1: \"FirstName\"\n // rowData: array of each row's key/value pairs. Inside each row,\n // each key is an entry in displayedColumns: ex: \"FirstName\": \"Charles\"\n // Ex: { 1: {config: {label: \"First Name\", readOnly: true: name: \"FirstName\"}}, type: \"TextInput\" }\n // The \"type\" indicates the type of component that should be used for editing (when editing is enabled)\n //\n // console.log(\"SimpleTable displayedColumns:\");\n // console.log(displayedColumns);\n // console.log(`SimpleTable rowData (${rowData.length} row(s)):`);\n // console.log(JSON.stringify(rowData));\n\n const addRecord = () => {\n if (allowEditingInModal && defaultView) {\n pConn\n .getActionsApi()\n // @ts-ignore\n .openEmbeddedDataModal(defaultView, pConn, referenceListStr, referenceList.length, PCore.getConstants().RESOURCE_STATUS.CREATE);\n } else {\n pConn.getListActions().insert({ classID: contextClass }, referenceList.length);\n }\n\n getPConnect().clearErrorMessages({\n property: (getPConnect().getStateProps() as any)?.referenceList?.substring(1)\n } as any);\n };\n\n const editRecord = () => {\n setEditAnchorEl(null);\n if (typeof selectedRowIndex.current === 'number') {\n pConn\n .getActionsApi()\n // @ts-ignore\n .openEmbeddedDataModal(\n bUseSeparateViewForEdit ? editView : defaultView,\n pConn,\n referenceListStr,\n selectedRowIndex.current,\n PCore.getConstants().RESOURCE_STATUS.UPDATE\n );\n }\n };\n\n const deleteRecord = () => {\n setEditAnchorEl(null);\n pConn.getListActions().deleteEntry(selectedRowIndex.current);\n };\n\n const deleteRecordFromInlineEditable = (index: number) => {\n pConn.getListActions().deleteEntry(index);\n };\n\n function buildElementsForTable() {\n const eleData: any = [];\n referenceList.forEach((element, index) => {\n const data: any = [];\n rawFields.forEach(item => {\n // removing label field from config to hide title in the table cell\n item = { ...item, config: { ...item.config, label: '', displayMode: readOnlyMode || allowEditingInModal ? 'DISPLAY_ONLY' : undefined } };\n const referenceListData = getReferenceList(pConn);\n const isDatapage = referenceListData.startsWith('D_');\n const pageReferenceValue = isDatapage\n ? `${referenceListData}[${index}]`\n : `${pConn.getPageReference()}${referenceListData.substring(referenceListData.lastIndexOf('.'))}[${index}]`;\n const config = {\n meta: item,\n options: {\n context,\n pageReference: pageReferenceValue,\n referenceList: referenceListData,\n hasForm: true\n }\n };\n const view = PCore.createPConnect(config);\n data.push(createElement(createPConnectComponent(), view));\n });\n eleData.push(data);\n });\n setElementsData(eleData);\n }\n\n const handleRequestSort = (event: React.MouseEvent<unknown>, property: keyof any) => {\n const isAsc = orderBy === property && order === 'asc';\n setOrder(isAsc ? 'desc' : 'asc');\n setOrderBy(property);\n };\n\n const createSortHandler = (property: keyof any) => (event: React.MouseEvent<unknown>) => {\n handleRequestSort(event, property);\n };\n\n function descendingComparator<T>(a: T, b: T, orderedBy: keyof T) {\n if (!orderedBy || (!a[orderedBy] && !b[orderedBy])) {\n return 0;\n }\n if (!b[orderedBy] || b[orderedBy] < a[orderedBy]) {\n return -1;\n }\n if (!a[orderedBy] || b[orderedBy] > a[orderedBy]) {\n return 1;\n }\n return 0;\n }\n\n type Order = 'asc' | 'desc';\n\n interface Comparator<T> {\n (a: T, b: T): number;\n }\n\n function getComparator<Key extends keyof any, T extends Record<Key, any>>(theOrder: Order, orderedBy: Key): Comparator<T> {\n return theOrder === 'desc' ? (a: T, b: T) => descendingComparator<T>(a, b, orderedBy) : (a: T, b: T) => -descendingComparator<T>(a, b, orderedBy);\n }\n\n function stableSort<T>(array: T[], comparator: (a: T, b: T) => number) {\n const stabilizedThis = array.map((el, index) => [el, index] as [T, number]);\n stabilizedThis.sort((a, b) => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const order = comparator(a[0], b[0]);\n if (order !== 0) return order;\n return a[1] - b[1];\n });\n\n const newElements = new Array(stabilizedThis.length);\n stabilizedThis.forEach((el, index) => {\n newElements[index] = elements[el[1]];\n });\n return newElements;\n }\n\n function _menuClick(event, columnId: string, columnType: string, labelValue: string) {\n menuColumnId = columnId;\n menuColumnType = columnType;\n menuColumnLabel = labelValue;\n\n setAnchorEl(event.currentTarget);\n }\n\n function editMenuClick(event, index) {\n selectedRowIndex.current = index;\n setEditAnchorEl(event.currentTarget);\n }\n\n function _menuClose() {\n setAnchorEl(null);\n setEditAnchorEl(null);\n }\n\n function _filterMenu() {\n setAnchorEl(null);\n\n let bFound = false;\n\n for (const filterObj of filterByColumns) {\n if (filterObj.ref === menuColumnId) {\n setFilterBy(menuColumnLabel);\n if (filterObj.type === 'Date' || filterObj.type === 'DateTime' || filterObj.type === 'Time') {\n setContainsDateOrTime(true);\n setFilterType(filterObj.type);\n setDisplayDialogDateFilter(filterObj.containsFilter);\n setDisplayDialogDateValue(filterObj.containsFilterValue);\n } else {\n setContainsDateOrTime(false);\n setFilterType('string');\n setDisplayDialogContainsFilter(filterObj.containsFilter);\n setDisplayDialogContainsValue(filterObj.containsFilterValue);\n }\n bFound = true;\n break;\n }\n }\n\n if (!bFound) {\n setFilterBy(menuColumnLabel);\n setDisplayDialogFilterName(menuColumnId);\n setDisplayDialogContainsValue('');\n\n switch (menuColumnType) {\n case 'Date':\n case 'DateTime':\n case 'Time':\n setContainsDateOrTime(true);\n setFilterType(menuColumnType);\n break;\n default:\n setContainsDateOrTime(false);\n setFilterType('string');\n break;\n }\n }\n\n // open dialog\n setOpen(true);\n }\n\n function _groupMenu() {}\n\n function _closeDialog() {\n setOpen(false);\n }\n\n function _dialogContainsFilter(event) {\n setDisplayDialogContainsFilter(event.target.value);\n }\n\n function _dialogContainsValue(event) {\n setDisplayDialogContainsValue(event.target.value);\n }\n\n function _dialogDateFilter(event) {\n setDisplayDialogDateFilter(event.target.value);\n }\n\n function _dialogDateValue(event) {\n setDisplayDialogDateValue(event.target.value);\n }\n\n function filterSortGroupBy() {\n // get original data set\n let theData: any = myRows.slice();\n\n // last filter config data is global\n theData = theData.filter(filterData(filterByColumns));\n\n // move data to array and then sort\n setRowData(theData);\n }\n\n function updateFilterWithInfo() {\n let bFound = false;\n for (const filterObj of filterByColumns) {\n if (filterObj.ref === menuColumnId) {\n filterObj.type = filterType;\n if (containsDateOrTime) {\n filterObj.containsFilter = displayDialogDateFilter;\n filterObj.containsFilterValue = displayDialogDateValue;\n } else {\n filterObj.containsFilter = displayDialogContainsFilter;\n filterObj.containsFilterValue = displayDialogContainsValue;\n }\n bFound = true;\n break;\n }\n }\n\n if (!bFound) {\n // add in\n const filterObj: any = {};\n filterObj.ref = menuColumnId;\n filterObj.type = filterType;\n if (containsDateOrTime) {\n filterObj.containsFilter = displayDialogDateFilter;\n filterObj.containsFilterValue = displayDialogDateValue;\n } else {\n filterObj.containsFilter = displayDialogContainsFilter;\n filterObj.containsFilterValue = displayDialogContainsValue;\n }\n\n filterByColumns.push(filterObj);\n }\n }\n\n function _submitFilter() {\n updateFilterWithInfo();\n filterSortGroupBy();\n\n setOpen(false);\n }\n\n function _showFilteredIcon(columnId) {\n for (const filterObj of filterByColumns) {\n if (filterObj.ref === columnId) {\n // eslint-disable-next-line sonarjs/prefer-single-boolean-return\n if (filterObj.containsFilterValue !== '') {\n return true;\n }\n return false;\n }\n }\n\n return false;\n }\n\n function results() {\n const len = editableMode ? elements.length : rowData.length;\n\n return len ? (\n <span style={{ fontSize: '0.9em', opacity: '0.7' }}>\n {len} result{len > 1 ? 's' : ''}\n </span>\n ) : null;\n }\n\n return (\n <>\n <TableContainer component={Paper} style={{ margin: '4px 0px' }} id='simple-table-manual'>\n {propsToUse.label && (\n <h3 className={`${classes.label} ${required ? classes.tableLabel : ''}`}>\n {propsToUse.label} {results()}\n </h3>\n )}\n {validatemessage && <div className={classes.message}>{validatemessage}</div>}\n <Table>\n <TableHead className={classes.header}>\n <TableRow>\n {fieldDefs.map((field: any, index) => {\n return (\n <TableCell key={`head-${displayedColumns[index]}`} className={classes.tableCell}>\n {(readOnlyMode || allowEditingInModal) && field.cellRenderer !== 'DeleteIcon' ? (\n <div style={{ display: 'flex' }}>\n <TableSortLabel\n style={{ width: '75%' }}\n active={orderBy === displayedColumns[index]}\n direction={orderBy === displayedColumns[index] ? order : 'asc'}\n onClick={createSortHandler(displayedColumns[index])}\n >\n {field.label || '---'}\n {_showFilteredIcon(field.name) && <FilterListIcon className={classes.moreIcon} />}\n {orderBy === displayedColumns[index] ? (\n <span className={classes.visuallyHidden}>{order === 'desc' ? 'sorted descending' : 'sorted ascending'}</span>\n ) : null}\n </TableSortLabel>\n <MoreIcon\n style={{ cursor: 'pointer', zIndex: 1000 }}\n id='menu-icon'\n onClick={event => {\n _menuClick(event, field.name, field.meta.type, field.label);\n }}\n />\n </div>\n ) : (\n field.label\n )}\n </TableCell>\n );\n })}\n </TableRow>\n </TableHead>\n <TableBody>\n {editableMode &&\n !allowEditingInModal &&\n elements.map((row: any, index) => {\n const theKey = `row-${index}`;\n return (\n <TableRow key={theKey}>\n {row.map((item, childIndex) => {\n const theColKey = `data-${index}-${childIndex}`;\n return (\n <TableCell key={theColKey} className={classes.tableCell}>\n {item}\n </TableCell>\n );\n })}\n {showDeleteButton && (\n <TableCell>\n <button\n type='button'\n className='psdk-utility-button'\n id='delete-button'\n aria-label='Delete Cell'\n onClick={() => deleteRecordFromInlineEditable(index)}\n >\n <img className='psdk-utility-card-action-svg-icon' src={menuIconOverride$} />\n </button>\n </TableCell>\n )}\n </TableRow>\n );\n })}\n {(readOnlyMode || allowEditingInModal) &&\n rowData &&\n rowData.length > 0 &&\n stableSort(rowData, getComparator(order, orderBy))\n .slice(0)\n .map((row, index) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n <TableRow key={index}>\n {row.map((item, childIndex) => {\n const theColKey = displayedColumns[childIndex];\n return (\n <TableCell key={theColKey} className={classes.tableCell}>\n {item}\n </TableCell>\n );\n })}\n {showDeleteButton && (\n <TableCell key='DeleteIcon' className={classes.tableCell}>\n <div>\n <MoreIcon\n id='table-edit-menu-icon'\n className={classes.moreIcon}\n onClick={event => {\n editMenuClick(event, index);\n }}\n />\n <Menu id='table-edit-menu' anchorEl={editAnchorEl} keepMounted open={Boolean(editAnchorEl)} onClose={_menuClose}>\n <MenuItem onClick={() => editRecord()}>Edit</MenuItem>\n <MenuItem onClick={() => deleteRecord()}>Delete</MenuItem>\n </Menu>\n </div>\n </TableCell>\n )}\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n {((readOnlyMode && (!rowData || rowData?.length === 0)) || (editableMode && (!referenceList || referenceList?.length === 0))) && (\n <div className='no-records' id='no-records'>\n {getGenericFieldsLocalizedValue('CosmosFields.fields.lists', 'No records found.')}\n </div>\n )}\n </TableContainer>\n {showAddRowButton && (\n <div style={{ fontSize: '1rem' }}>\n <Link style={{ cursor: 'pointer' }} onClick={addRecord} underline='hover'>\n + {localizedVal('Add', localeCategory)}\n </Link>\n </div>\n )}\n <Menu id='simple-menu' anchorEl={anchorEl} keepMounted open={Boolean(anchorEl)} onClose={_menuClose}>\n <MenuItem onClick={_filterMenu}>\n <FilterListIcon /> Filter\n </MenuItem>\n <MenuItem onClick={_groupMenu}>\n <SubjectIcon /> Group\n </MenuItem>\n </Menu>\n <Dialog open={open} onClose={_closeDialog} aria-labelledby='form-dialog-title'>\n <DialogTitle id='form-dialog-title'>Filter: {filterBy}</DialogTitle>\n <DialogContent>\n {containsDateOrTime ? (\n <>\n <Select variant='standard' value={displayDialogDateFilter} onChange={_dialogDateFilter} fullWidth>\n <MenuItem value='notequal'>is not equal to</MenuItem>\n <MenuItem value='equal'>is equal to</MenuItem>\n <MenuItem value='after'>after</MenuItem>\n <MenuItem value='before'>before</MenuItem>\n <MenuItem value='null'>is null</MenuItem>\n <MenuItem value='notnull'>is not null</MenuItem>\n </Select>\n {filterType === 'Date' && (\n <TextField\n variant='standard'\n autoFocus\n margin='dense'\n id='containsFilter'\n type='date'\n fullWidth\n value={displayDialogDateValue}\n onChange={_dialogDateValue}\n />\n )}\n {filterType === 'DateTime' && (\n <TextField\n variant='standard'\n autoFocus\n margin='dense'\n id='containsFilter'\n type='datetime-local'\n fullWidth\n value={displayDialogDateValue}\n onChange={_dialogDateValue}\n />\n )}\n {filterType === 'Time' && (\n <TextField\n variant='standard'\n autoFocus\n margin='dense'\n id='containsFilter'\n type='time'\n fullWidth\n value={displayDialogDateValue}\n onChange={_dialogDateValue}\n />\n )}\n </>\n ) : (\n <>\n <Select variant='standard' id='filter' fullWidth onChange={_dialogContainsFilter} value={displayDialogContainsFilter}>\n <MenuItem value='contains'>Contains</MenuItem>\n <MenuItem value='equals'>Equals</MenuItem>\n <MenuItem value='startswith'>Starts with</MenuItem>\n </Select>\n <TextField\n variant='standard'\n autoFocus\n margin='dense'\n id='containsFilter'\n type='text'\n fullWidth\n value={displayDialogContainsValue}\n onChange={_dialogContainsValue}\n />\n </>\n )}\n </DialogContent>\n <DialogActions>\n <Button onClick={_closeDialog} color='secondary'>\n Cancel\n </Button>\n <Button onClick={_submitFilter} color='primary'>\n Submit\n </Button>\n </DialogActions>\n </Dialog>\n </>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleTableSelect.d.ts","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,UAAU,sBAAuB,SAAQ,UAAU;IAEjD,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,GAAG,CAAC;IAChB,mBAAmB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACvC,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAOD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"SimpleTableSelect.d.ts","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,UAAU,sBAAuB,SAAQ,UAAU;IAEjD,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,GAAG,CAAC;IAChB,mBAAmB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACvC,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAOD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CA+FtE"}
|
|
@@ -35,10 +35,8 @@ export default function SimpleTableSelect(props) {
|
|
|
35
35
|
}
|
|
36
36
|
// Need to get this written so typedefs work
|
|
37
37
|
const { datasource: { parameters: fieldParameters = {} } = {}, pageClass } = isMultiSelectMode
|
|
38
|
-
?
|
|
39
|
-
|
|
40
|
-
: // @ts-ignore - Property 'getCurrentPageFieldMetadata' is private and only accessible within class 'C11nEnv'.
|
|
41
|
-
pConn.getCurrentPageFieldMetadata(contextPageReference);
|
|
38
|
+
? pConn.getFieldMetadata(`@P .${referenceProp}`)
|
|
39
|
+
: pConn.getCurrentPageFieldMetadata(contextPageReference);
|
|
42
40
|
const compositeKeys = [];
|
|
43
41
|
Object.values(fieldParameters).forEach((param) => {
|
|
44
42
|
if (isSelfReferencedProperty(param, referenceProp)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleTableSelect.js","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAiBnF,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;IACxD,MAAM,CAAC,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,cAAc,KAAK,aAAa,CAAC;AAC1C,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAA6B;IACrE,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAE/D,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,GAAG,EAAE,EAAE,SAAS,GAAG,IAAI,EAAE,QAAQ,GAAG,EAAE,EAAE,UAAU,EAAE,uBAAuB,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAEnI,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC;IAC9E,IAAI,UAAU,CAAC,SAAS,KAAK,KAAK,EAAE;QAClC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;KACvB;IAED,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,mBAAmB,CAAC;IAC3D,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,cAAc,EAAS,CAAC;IACvE,MAAM,iBAAiB,GAAG,aAAa,KAAK,KAAK,CAAC;IAElD,IAAI,iBAAiB,IAAI,UAAU,KAAK,UAAU,EAAE;QAClD,OAAO,KAAC,WAAW,OAAK,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,GAAI,CAAC;KACpE;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAC/C,IAAI,aAAa,GAAG,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACjI,+CAA+C;IAC/C,IAAI,oBAAoB,GAAkB,IAAI,CAAC;IAC/C,IAAI,KAAK,CAAC,uBAAuB,KAAK,IAAI,IAAI,aAAa,KAAK,QAAQ,EAAE;QACxE,aAAa,GAAG,uBAAuB,CAAC;QACxC,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KACxE;IAED,4CAA4C;IAC5C,MAAM,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,eAAe,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,iBAAiB;QAC5F,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"SimpleTableSelect.js","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import { getComponentFromMap } from '../../../../bridge/helpers/sdk_component_map';\n\nimport { PConnProps } from '../../../../types/PConnProps';\n\ninterface SimpleTableSelectProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n label: string;\n referenceList: object[] | string;\n renderMode: string;\n showLabel: boolean;\n promptedFilters: object[];\n viewName: string;\n parameters: any;\n readonlyContextList: object[] | string;\n dataRelationshipContext: string;\n}\n\nconst isSelfReferencedProperty = (param, referenceProp) => {\n const [, parentPropName] = param.split('.');\n return parentPropName === referenceProp;\n};\n\n/**\n * SimpleTable react component\n * @param {*} props - props\n */\nexport default function SimpleTableSelect(props: SimpleTableSelectProps) {\n // Get emitted components from map (so we can get any override that may exist)\n const ListView = getComponentFromMap('ListView');\n const SimpleTable = getComponentFromMap('SimpleTable');\n const PromotedFilters = getComponentFromMap('PromotedFilters');\n\n const { label, getPConnect, renderMode = '', showLabel = true, viewName = '', parameters, dataRelationshipContext = null } = props;\n\n const propsToUse = { label, showLabel, ...getPConnect().getInheritedProps() };\n if (propsToUse.showLabel === false) {\n propsToUse.label = '';\n }\n\n const pConn = getPConnect();\n const { MULTI } = PCore.getConstants().LIST_SELECTION_MODE;\n const { selectionMode, selectionList } = pConn.getConfigProps() as any;\n const isMultiSelectMode = selectionMode === MULTI;\n\n if (isMultiSelectMode && renderMode === 'ReadOnly') {\n return <SimpleTable {...props} showLabel={propsToUse.showLabel} />;\n }\n\n const pageReference = pConn.getPageReference();\n let referenceProp = isMultiSelectMode ? selectionList.substring(1) : pageReference.substring(pageReference.lastIndexOf('.') + 1);\n // Replace here to use the context name instead\n let contextPageReference: string | null = null;\n if (props.dataRelationshipContext !== null && selectionMode === 'single') {\n referenceProp = dataRelationshipContext;\n contextPageReference = pageReference.concat('.').concat(referenceProp);\n }\n\n // Need to get this written so typedefs work\n const { datasource: { parameters: fieldParameters = {} } = {}, pageClass } = isMultiSelectMode\n ? pConn.getFieldMetadata(`@P .${referenceProp}`)\n : pConn.getCurrentPageFieldMetadata(contextPageReference);\n\n const compositeKeys: any[] = [];\n Object.values(fieldParameters).forEach((param: any) => {\n if (isSelfReferencedProperty(param, referenceProp)) {\n compositeKeys.push(param.substring(param.lastIndexOf('.') + 1));\n }\n });\n\n // setting default row height for select table\n const defaultRowHeight = '2';\n\n const additionalTableConfig = {\n rowDensity: false,\n enableFreezeColumns: false,\n autoSizeColumns: false,\n resetColumnWidths: false,\n defaultFieldDef: {\n showMenu: false,\n noContextMenu: true,\n grouping: false\n },\n itemKey: '$key',\n defaultRowHeight\n };\n\n const listViewProps = {\n ...props,\n title: propsToUse.label,\n personalization: false,\n grouping: false,\n expandGroups: false,\n reorderFields: false,\n showHeaderIcons: false,\n editing: false,\n globalSearch: true,\n toggleFieldVisibility: false,\n basicMode: true,\n additionalTableConfig,\n compositeKeys,\n viewName,\n parameters\n };\n\n const filters = (getPConnect().getRawMetadata() as any).config.promotedFilters ?? [];\n\n const isSearchable = filters.length > 0;\n\n if (isSearchable) {\n return (\n <PromotedFilters\n getPConnect={getPConnect}\n viewName={viewName}\n filters={filters}\n listViewProps={listViewProps}\n pageClass={pageClass}\n parameters={parameters}\n />\n );\n }\n return <ListView {...listViewProps} />;\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Children, useEffect, useState } from 'react';
|
|
3
|
-
import { Tab, Tabs } from '@material
|
|
4
|
-
import { TabContext, TabPanel } from '@
|
|
3
|
+
import { Tab, Tabs } from '@mui/material';
|
|
4
|
+
import { TabContext, TabPanel } from '@mui/lab';
|
|
5
5
|
import { getTransientTabs, getVisibleTabs, tabClick } from './tabUtils';
|
|
6
6
|
export default function SubTabs(props) {
|
|
7
7
|
const { children = [] } = props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubTabs.js","sourceRoot":"","sources":["../../../../src/components/template/SubTabs/SubTabs.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAqB,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SubTabs.js","sourceRoot":"","sources":["../../../../src/components/template/SubTabs/SubTabs.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAqB,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAOxE,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,KAAsC;IACpE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IAEhC,MAAM,eAAe,GAAG,CAAC,CAAC;IAC1B,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,cAAc,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAClE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE7E,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAQ,EAAE,CAAC,CAAC;IACnD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,gBAAgB,CAAC,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC7E,UAAU,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,cAAc,GAAG,CAAC,EAAE,EAAE,KAAa,EAAE,EAAE;QAC3C,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC1E,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,UAAU,IAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,aACxC,KAAC,IAAI,IAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAC,YAAY,YACtE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAC1B,KAAC,GAAG,IAAc,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IAAtC,GAAG,CAAC,EAAE,CAAoC,CACrD,CAAC,GACG,EAEN,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAC1B,KAAC,QAAQ,IAAc,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,YACrD,wBAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,GAAO,IAD/C,GAAG,CAAC,EAAE,CAEV,CACZ,CAAC,IACS,CACd,CAAC;AACJ,CAAC","sourcesContent":["import { Children, PropsWithChildren, useEffect, useState } from 'react';\nimport { Tab, Tabs } from '@mui/material';\nimport { TabContext, TabPanel } from '@mui/lab';\n\nimport { getTransientTabs, getVisibleTabs, tabClick } from './tabUtils';\nimport { PConnProps } from '../../../types/PConnProps';\n\ninterface SubTabsProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n}\n\nexport default function SubTabs(props: PropsWithChildren<SubTabsProps>) {\n const { children = [] } = props;\n\n const defaultTabIndex = 0;\n const deferLoadedTabs = Children.toArray(children)[0];\n const availableTabs = getVisibleTabs(deferLoadedTabs, 'tabsSubs');\n const [currentTabId, setCurrentTabId] = useState(defaultTabIndex.toString());\n\n const [tabItems, setTabitem] = useState<any[]>([]);\n useEffect(() => {\n const tempTabItems = getTransientTabs(availableTabs, currentTabId, tabItems);\n setTabitem(tempTabItems);\n }, [currentTabId]);\n\n const handleTabClick = (id, index: string) => {\n setCurrentTabId(index);\n tabClick(index, availableTabs, currentTabId, setCurrentTabId, tabItems);\n };\n\n return (\n <TabContext value={currentTabId.toString()}>\n <Tabs onChange={handleTabClick} value={currentTabId} variant='scrollable'>\n {tabItems.map((tab: any) => (\n <Tab key={tab.id} label={tab.name} value={tab.id} />\n ))}\n </Tabs>\n\n {tabItems.map((tab: any) => (\n <TabPanel key={tab.id} value={tab.id} tabIndex={+tab.id}>\n <div>{tab.content ? tab.content : 'No content exists'}</div>\n </TabPanel>\n ))}\n </TabContext>\n );\n}\n"]}
|