@pega/react-sdk-components 25.1.10 → 25.1.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.
Files changed (99) hide show
  1. package/lib/components/designSystemExtension/AlertBanner/AlertBanner.css +46 -0
  2. package/lib/components/designSystemExtension/AlertBanner/AlertBanner.d.ts +2 -1
  3. package/lib/components/designSystemExtension/AlertBanner/AlertBanner.d.ts.map +1 -1
  4. package/lib/components/designSystemExtension/AlertBanner/AlertBanner.js +18 -16
  5. package/lib/components/designSystemExtension/AlertBanner/AlertBanner.js.map +1 -1
  6. package/lib/components/designSystemExtension/FieldGroupList/FieldGroupList.js +1 -1
  7. package/lib/components/designSystemExtension/FieldGroupList/FieldGroupList.js.map +1 -1
  8. package/lib/components/field/SelectableCard/SelectableCard.d.ts.map +1 -1
  9. package/lib/components/field/SelectableCard/SelectableCard.js +13 -2
  10. package/lib/components/field/SelectableCard/SelectableCard.js.map +1 -1
  11. package/lib/components/infra/Assignment/Assignment.d.ts.map +1 -1
  12. package/lib/components/infra/Assignment/Assignment.js +6 -2
  13. package/lib/components/infra/Assignment/Assignment.js.map +1 -1
  14. package/lib/components/infra/Assignment/useValidationBanner.d.ts +7 -0
  15. package/lib/components/infra/Assignment/useValidationBanner.d.ts.map +1 -0
  16. package/lib/components/infra/Assignment/useValidationBanner.js +26 -0
  17. package/lib/components/infra/Assignment/useValidationBanner.js.map +1 -0
  18. package/lib/components/infra/Containers/FlowContainer/FlowContainer.d.ts.map +1 -1
  19. package/lib/components/infra/Containers/FlowContainer/FlowContainer.js +5 -6
  20. package/lib/components/infra/Containers/FlowContainer/FlowContainer.js.map +1 -1
  21. package/lib/components/infra/Containers/ModalViewContainer/ModalViewContainer.d.ts +4 -0
  22. package/lib/components/infra/Containers/ModalViewContainer/ModalViewContainer.d.ts.map +1 -1
  23. package/lib/components/infra/Containers/ModalViewContainer/ModalViewContainer.js +1 -1
  24. package/lib/components/infra/Containers/ModalViewContainer/ModalViewContainer.js.map +1 -1
  25. package/lib/components/infra/Containers/ViewContainer/ViewContainer.d.ts +4 -0
  26. package/lib/components/infra/Containers/ViewContainer/ViewContainer.d.ts.map +1 -1
  27. package/lib/components/infra/Containers/ViewContainer/ViewContainer.js +4 -7
  28. package/lib/components/infra/Containers/ViewContainer/ViewContainer.js.map +1 -1
  29. package/lib/components/infra/DeferLoad/DeferLoad.d.ts +1 -0
  30. package/lib/components/infra/DeferLoad/DeferLoad.d.ts.map +1 -1
  31. package/lib/components/infra/DeferLoad/DeferLoad.js +24 -9
  32. package/lib/components/infra/DeferLoad/DeferLoad.js.map +1 -1
  33. package/lib/components/infra/NavBar/NavBar.d.ts.map +1 -1
  34. package/lib/components/infra/NavBar/NavBar.js +6 -0
  35. package/lib/components/infra/NavBar/NavBar.js.map +1 -1
  36. package/lib/components/infra/Reference/Reference.d.ts.map +1 -1
  37. package/lib/components/infra/Reference/Reference.js +4 -0
  38. package/lib/components/infra/Reference/Reference.js.map +1 -1
  39. package/lib/components/infra/RootContainer/RootContainer.d.ts.map +1 -1
  40. package/lib/components/infra/RootContainer/RootContainer.js +4 -5
  41. package/lib/components/infra/RootContainer/RootContainer.js.map +1 -1
  42. package/lib/components/infra/View/View.d.ts.map +1 -1
  43. package/lib/components/infra/View/View.js +5 -6
  44. package/lib/components/infra/View/View.js.map +1 -1
  45. package/lib/components/template/AppShell/AppShell.css +0 -4
  46. package/lib/components/template/CaseSummary/CaseSummary.d.ts.map +1 -1
  47. package/lib/components/template/CaseSummary/CaseSummary.js +2 -6
  48. package/lib/components/template/CaseSummary/CaseSummary.js.map +1 -1
  49. package/lib/components/template/FieldGroupTemplate/FieldGroupTemplate.d.ts +1 -0
  50. package/lib/components/template/FieldGroupTemplate/FieldGroupTemplate.d.ts.map +1 -1
  51. package/lib/components/template/FieldGroupTemplate/FieldGroupTemplate.js +7 -3
  52. package/lib/components/template/FieldGroupTemplate/FieldGroupTemplate.js.map +1 -1
  53. package/lib/components/template/HierarchicalForm/HierarchicalForm.d.ts +4 -0
  54. package/lib/components/template/HierarchicalForm/HierarchicalForm.d.ts.map +1 -0
  55. package/lib/components/template/HierarchicalForm/HierarchicalForm.js +16 -0
  56. package/lib/components/template/HierarchicalForm/HierarchicalForm.js.map +1 -0
  57. package/lib/components/template/HierarchicalForm/hooks.d.ts +15 -0
  58. package/lib/components/template/HierarchicalForm/hooks.d.ts.map +1 -0
  59. package/lib/components/template/HierarchicalForm/hooks.js +163 -0
  60. package/lib/components/template/HierarchicalForm/hooks.js.map +1 -0
  61. package/lib/components/template/HierarchicalForm/index.d.ts +2 -0
  62. package/lib/components/template/HierarchicalForm/index.d.ts.map +1 -0
  63. package/lib/components/template/HierarchicalForm/index.js +2 -0
  64. package/lib/components/template/HierarchicalForm/index.js.map +1 -0
  65. package/lib/components/template/ListView/ListView.d.ts +1 -0
  66. package/lib/components/template/ListView/ListView.d.ts.map +1 -1
  67. package/lib/components/template/ListView/ListView.js +56 -9
  68. package/lib/components/template/ListView/ListView.js.map +1 -1
  69. package/lib/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.d.ts +3 -1
  70. package/lib/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.d.ts.map +1 -1
  71. package/lib/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.js +13 -1
  72. package/lib/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.js.map +1 -1
  73. package/lib/components/template/ObjectPage/index.d.ts +2 -0
  74. package/lib/components/template/ObjectPage/index.d.ts.map +1 -0
  75. package/lib/components/template/ObjectPage/index.js +2 -0
  76. package/lib/components/template/ObjectPage/index.js.map +1 -0
  77. package/lib/components/template/SelfServiceCaseView/SelfServiceCaseView.d.ts.map +1 -1
  78. package/lib/components/template/SelfServiceCaseView/SelfServiceCaseView.js +13 -2
  79. package/lib/components/template/SelfServiceCaseView/SelfServiceCaseView.js.map +1 -1
  80. package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.d.ts.map +1 -1
  81. package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js +8 -6
  82. package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js.map +1 -1
  83. package/lib/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.d.ts +17 -0
  84. package/lib/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.d.ts.map +1 -0
  85. package/lib/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.js +94 -0
  86. package/lib/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.js.map +1 -0
  87. package/lib/components/template/SimpleTable/SimpleTableSelectReadonly/index.d.ts +2 -0
  88. package/lib/components/template/SimpleTable/SimpleTableSelectReadonly/index.d.ts.map +1 -0
  89. package/lib/components/template/SimpleTable/SimpleTableSelectReadonly/index.js +2 -0
  90. package/lib/components/template/SimpleTable/SimpleTableSelectReadonly/index.js.map +1 -0
  91. package/lib/hooks/useFocusFirstField.d.ts +3 -3
  92. package/lib/hooks/useFocusFirstField.d.ts.map +1 -1
  93. package/lib/hooks/useFocusFirstField.js +19 -12
  94. package/lib/hooks/useFocusFirstField.js.map +1 -1
  95. package/lib/sdk-pega-component-map.d.ts +6 -0
  96. package/lib/sdk-pega-component-map.d.ts.map +1 -1
  97. package/lib/sdk-pega-component-map.js +6 -0
  98. package/lib/sdk-pega-component-map.js.map +1 -1
  99. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleTableManual.d.ts","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,iBAAiB,EAAgD,MAAM,OAAO,CAAC;AA+BpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG/D,UAAU,sBAAuB,SAAQ,UAAU;IAEjD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,GAAG,CAAC;IAC3B,sBAAsB,CAAC,EAAE,GAAG,CAAC;IAC7B,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,GAAG,CAAC;IAC5B,gBAAgB,EAAE,GAAG,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiDD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,sBAAsB,CAAC,2CAwsBzF"}
1
+ {"version":3,"file":"SimpleTableManual.d.ts","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,iBAAiB,EAAyD,MAAM,OAAO,CAAC;AA+B7G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI/D,UAAU,sBAAuB,SAAQ,UAAU;IAEjD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,GAAG,CAAC;IAC3B,sBAAsB,CAAC,EAAE,GAAG,CAAC;IAC7B,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,GAAG,CAAC;IAC5B,gBAAgB,EAAE,GAAG,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiDD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,sBAAsB,CAAC,2CA+sBzF"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
- import React, { useEffect, useLayoutEffect, useRef, useState } from 'react';
2
+ import React, { useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
3
3
  import Table from '@mui/material/Table';
4
4
  import TableBody from '@mui/material/TableBody';
5
5
  import TableCell from '@mui/material/TableCell';
@@ -28,8 +28,9 @@ import { Utils } from '../../../helpers/utils';
28
28
  import { getReferenceList } from '../../../helpers/field-group-utils';
29
29
  import { getDataPage } from '../../../helpers/data_page';
30
30
  import { getGenericFieldsLocalizedValue } from '../../../helpers/common-utils';
31
- import { buildFieldsForTable, filterData, getContext } from '../../../helpers/simpleTableHelpers';
31
+ import { buildFieldsForTable, filterData, getConfigFields, getContext } from '../../../helpers/simpleTableHelpers';
32
32
  import { format } from '../../../helpers/formatters';
33
+ import { initializeColumns } from '../../ListView/utils';
33
34
  const useStyles = makeStyles(( /* theme */) => ({
34
35
  label: {
35
36
  margin: '8px'
@@ -134,6 +135,7 @@ export default function SimpleTableManual(props) {
134
135
  const defaultView = editModeConfig ? editModeConfig.defaultView : viewForAddAndEditModal;
135
136
  const bUseSeparateViewForEdit = editModeConfig ? editModeConfig.useSeparateViewForEdit : useSeparateViewForEdit;
136
137
  const editView = editModeConfig ? editModeConfig.editView : viewForEditModal;
138
+ const configFields = getConfigFields(rawFields, contextClass, primaryFieldsViewIndex);
137
139
  const fieldsWithPropNames = rawFields.map((field, index) => {
138
140
  return { ...resolvedFields[index], propName: field.config.value.replace('@P .', '') };
139
141
  });
@@ -149,10 +151,10 @@ export default function SimpleTableManual(props) {
149
151
  // Constellation DX Components do). It will also have the "label", and "meta" contains the original,
150
152
  // unchanged config info. For now, much of the info here is carried over from
151
153
  // Constellation DX Components.
152
- const fieldDefs = buildFieldsForTable(rawFields, getPConnect(), showDeleteButton, {
153
- primaryFieldsViewIndex,
154
- fields: resolvedFields
155
- });
154
+ const fieldDefs = useMemo(() => isDisplayModeEnabled || readOnlyMode
155
+ ? initializeColumns(configFields, undefined)
156
+ : // For inline edit table
157
+ buildFieldsForTable(rawFields, getPConnect(), showDeleteButton, { primaryFieldsViewIndex, fields: resolvedFields }), []);
156
158
  useLayoutEffect(() => {
157
159
  if (allowEditingInModal) {
158
160
  getPConnect()
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleTableManual.js","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { type 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 type { 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: 'var(--table-header-background)'\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 const primaryFieldsViewIndex = resolvedFields.findIndex(field => field.config.value === 'pyPrimaryFields');\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 buildElementsForTable();\n if (readOnlyMode || allowEditingInModal) {\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, getPConnect(), showDeleteButton, {\n primaryFieldsViewIndex,\n fields: resolvedFields\n });\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-expect-error - 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 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-expect-error\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-expect-error\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 if (!item.config.hide) {\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 });\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 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 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 if (field?.meta?.config?.hide) {\n return null; // Skip rendering if hide = true\n }\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 <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.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
+ {"version":3,"file":"SimpleTableManual.js","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { type PropsWithChildren, useEffect, useLayoutEffect, useMemo, 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, getConfigFields, getContext } from '../../../helpers/simpleTableHelpers';\nimport type { PConnProps } from '../../../../types/PConnProps';\nimport { format } from '../../../helpers/formatters';\nimport { initializeColumns } from '../../ListView/utils';\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: 'var(--table-header-background)'\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 const primaryFieldsViewIndex = resolvedFields.findIndex(field => field.config.value === 'pyPrimaryFields');\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 configFields = getConfigFields(rawFields, contextClass, primaryFieldsViewIndex);\n\n const fieldsWithPropNames = rawFields.map((field, index) => {\n return { ...resolvedFields[index], propName: field.config.value.replace('@P .', '') };\n });\n\n useEffect(() => {\n buildElementsForTable();\n if (readOnlyMode || allowEditingInModal) {\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\n const fieldDefs = useMemo(\n () =>\n isDisplayModeEnabled || readOnlyMode\n ? initializeColumns(configFields, undefined)\n : // For inline edit table\n buildFieldsForTable(rawFields, getPConnect(), showDeleteButton, { primaryFieldsViewIndex, fields: resolvedFields }),\n []\n );\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-expect-error - 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 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-expect-error\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-expect-error\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 if (!item.config.hide) {\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 });\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 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 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 if (field?.meta?.config?.hide) {\n return null; // Skip rendering if hide = true\n }\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 <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.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"]}
@@ -0,0 +1,17 @@
1
+ import type { PConnProps } from '../../../../types/PConnProps';
2
+ interface SimpleTableSelectReadonlyProps extends PConnProps {
3
+ label?: string;
4
+ referenceList: object[] | string;
5
+ readonlyContextList?: object[];
6
+ primaryField?: string;
7
+ referenceType?: string;
8
+ selectionKey?: string;
9
+ selectionList?: string;
10
+ hideLabel?: boolean;
11
+ variant?: string;
12
+ displayAs?: string;
13
+ displayMode?: string;
14
+ }
15
+ export default function SimpleTableSelectReadonly(props: SimpleTableSelectReadonlyProps): any;
16
+ export {};
17
+ //# sourceMappingURL=SimpleTableSelectReadonly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleTableSelectReadonly.d.ts","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,UAAU,8BAA+B,SAAQ,UAAU;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,KAAK,EAAE,8BAA8B,OAqJtF"}
@@ -0,0 +1,94 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { createElement, Fragment, useState } from 'react';
3
+ import Button from '@mui/material/Button';
4
+ import Dialog from '@mui/material/Dialog';
5
+ import DialogActions from '@mui/material/DialogActions';
6
+ import DialogContent from '@mui/material/DialogContent';
7
+ import DialogTitle from '@mui/material/DialogTitle';
8
+ import Link from '@mui/material/Link';
9
+ import Typography from '@mui/material/Typography';
10
+ import { getComponentFromMap } from '../../../../bridge/helpers/sdk_component_map';
11
+ import createPConnectComponent from '../../../../bridge/react_pconnect';
12
+ import { Utils } from '../../../helpers/utils';
13
+ import { SIMPLE_TABLE_MANUAL_READONLY } from '../../../field/ObjectReference/utils';
14
+ export default function SimpleTableSelectReadonly(props) {
15
+ const { label = '', getPConnect, readonlyContextList = [], primaryField = '', referenceType = '', selectionKey = '', selectionList = '', hideLabel = false, displayAs = 'readonly', displayMode } = props;
16
+ const [modalOpen, setModalOpen] = useState(false);
17
+ const { DATA, CASE } = PCore.getConstants().RESOURCE_TYPES;
18
+ const pConn = getPConnect();
19
+ const localizedVal = PCore.getLocaleUtils().getLocaleValue;
20
+ const localeCategory = 'SimpleTableSelectReadOnly';
21
+ const PComponent = createPConnectComponent();
22
+ const openModal = () => {
23
+ const rawConfig = getPConnect().getRawMetadata().config;
24
+ const rawFields = rawConfig?.presets?.[0].children?.[0]?.children || [];
25
+ const caseFields = rawFields
26
+ .filter((field) => field.config.value.includes(`@P .${Utils.getMappedKey('pyID')}`) || field.config.value.includes(`@P ${primaryField}`))
27
+ .map((field) => field.config.value);
28
+ const dataFields = rawFields.filter((field) => field.config.value.includes(`@P ${primaryField}`)).map((field) => field.config.value);
29
+ const defaultFields = rawConfig?.detailsDisplay || [];
30
+ if (defaultFields?.length === 2 && defaultFields[0].config.value === defaultFields[1].config.value) {
31
+ defaultFields.splice(0, 1);
32
+ }
33
+ defaultFields.forEach((field) => {
34
+ if ((referenceType.toUpperCase() === CASE && !caseFields.includes(field?.config?.value)) ||
35
+ (referenceType.toUpperCase() === DATA && !dataFields.includes(field?.config?.value))) {
36
+ getPConnect().getRawMetadata().config?.presets?.[0].children?.[0]?.children?.unshift(field);
37
+ }
38
+ });
39
+ setModalOpen(true);
40
+ };
41
+ const closeModal = () => {
42
+ setModalOpen(false);
43
+ };
44
+ const renderModal = () => {
45
+ const SimpleTableManual = getComponentFromMap('SimpleTableManual');
46
+ let readonlyContextObject;
47
+ if (typeof props.referenceList === 'string') {
48
+ readonlyContextObject = { referenceList: readonlyContextList };
49
+ }
50
+ return (_jsxs(Dialog, { open: modalOpen, onClose: closeModal, maxWidth: 'md', fullWidth: true, children: [_jsx(DialogTitle, { children: label }), _jsx(DialogContent, { children: _jsx(SimpleTableManual, { ...props, ...readonlyContextObject, classId: SIMPLE_TABLE_MANUAL_READONLY }) }), _jsx(DialogActions, { children: _jsx(Button, { onClick: closeModal, variant: 'contained', children: localizedVal('Close', localeCategory) }) })] }));
51
+ };
52
+ let displayComp;
53
+ if (readonlyContextList && readonlyContextList.length > 0) {
54
+ const listLength = readonlyContextList.length;
55
+ const filteredList = ['combobox', 'checkboxgroup'].includes(displayAs) ? readonlyContextList : readonlyContextList.slice(0, 5);
56
+ displayComp = (_jsxs("div", { children: [filteredList.map((child, index) => {
57
+ const selectionKeyProp = selectionKey.substring(1);
58
+ const primaryFieldProp = primaryField?.substring(1);
59
+ const selectionListProp = selectionList?.substring(1);
60
+ const referenceLabel = child[primaryFieldProp] || '';
61
+ let resourcePayload = {};
62
+ let resourceParams = {};
63
+ let previewKey = '';
64
+ if (referenceType.toUpperCase() === CASE) {
65
+ previewKey = child[Utils.getMappedKey('pzInsKey')];
66
+ resourcePayload = { caseClassName: child.classID };
67
+ resourceParams = { workID: child[selectionKeyProp] };
68
+ }
69
+ const metadata = {
70
+ type: 'SemanticLink',
71
+ config: {
72
+ text: referenceLabel,
73
+ resourceParams,
74
+ resourcePayload,
75
+ previewKey,
76
+ referenceType
77
+ }
78
+ };
79
+ const childPConnectConfig = PCore.createPConnect({
80
+ meta: metadata,
81
+ options: {
82
+ context: pConn.getContextName(),
83
+ pageReference: `${pConn.getPageReference()}.${selectionListProp}[${index}]`
84
+ }
85
+ });
86
+ return (_jsxs(Fragment, { children: [createElement(PComponent, { ...childPConnectConfig }), index + 1 !== filteredList.length && ', '] }, child[selectionKeyProp]));
87
+ }), listLength > 5 && !['combobox', 'checkboxgroup'].includes(displayAs) && (_jsxs(Link, { component: 'button', onClick: openModal, underline: 'hover', children: ["(", listLength, " ", localizedVal('Total', localeCategory), ")"] }))] }));
88
+ }
89
+ if (displayMode === 'DISPLAY_ONLY') {
90
+ return displayComp ?? _jsx(Typography, { variant: 'body2', children: "---" });
91
+ }
92
+ return (_jsxs("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'baseline', gap: '0.5rem' }, children: [!hideLabel && label && (_jsx(Typography, { variant: 'body2', color: 'text.secondary', children: label })), displayComp, renderModal()] }));
93
+ }
94
+ //# sourceMappingURL=SimpleTableSelectReadonly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleTableSelectReadonly.js","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.tsx"],"names":[],"mappings":"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","sourcesContent":["import { createElement, Fragment, useState } from 'react';\nimport Button from '@mui/material/Button';\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 Link from '@mui/material/Link';\nimport Typography from '@mui/material/Typography';\n\nimport { getComponentFromMap } from '../../../../bridge/helpers/sdk_component_map';\nimport createPConnectComponent from '../../../../bridge/react_pconnect';\nimport { Utils } from '../../../helpers/utils';\nimport { SIMPLE_TABLE_MANUAL_READONLY } from '../../../field/ObjectReference/utils';\nimport type { PConnProps } from '../../../../types/PConnProps';\n\ninterface SimpleTableSelectReadonlyProps extends PConnProps {\n label?: string;\n referenceList: object[] | string;\n readonlyContextList?: object[];\n primaryField?: string;\n referenceType?: string;\n selectionKey?: string;\n selectionList?: string;\n hideLabel?: boolean;\n variant?: string;\n displayAs?: string;\n displayMode?: string;\n}\n\nexport default function SimpleTableSelectReadonly(props: SimpleTableSelectReadonlyProps) {\n const {\n label = '',\n getPConnect,\n readonlyContextList = [],\n primaryField = '',\n referenceType = '',\n selectionKey = '',\n selectionList = '',\n hideLabel = false,\n displayAs = 'readonly',\n displayMode\n } = props;\n\n const [modalOpen, setModalOpen] = useState(false);\n\n const { DATA, CASE } = PCore.getConstants().RESOURCE_TYPES;\n const pConn = getPConnect();\n const localizedVal = PCore.getLocaleUtils().getLocaleValue;\n const localeCategory = 'SimpleTableSelectReadOnly';\n const PComponent = createPConnectComponent();\n\n const openModal = () => {\n const rawConfig = (getPConnect().getRawMetadata() as any).config;\n const rawFields = rawConfig?.presets?.[0].children?.[0]?.children || [];\n\n const caseFields = rawFields\n .filter((field: any) => field.config.value.includes(`@P .${Utils.getMappedKey('pyID')}`) || field.config.value.includes(`@P ${primaryField}`))\n .map((field: any) => field.config.value);\n\n const dataFields = rawFields.filter((field: any) => field.config.value.includes(`@P ${primaryField}`)).map((field: any) => field.config.value);\n\n const defaultFields: any[] = rawConfig?.detailsDisplay || [];\n if (defaultFields?.length === 2 && defaultFields[0].config.value === defaultFields[1].config.value) {\n defaultFields.splice(0, 1);\n }\n defaultFields.forEach((field: any) => {\n if (\n (referenceType.toUpperCase() === CASE && !caseFields.includes(field?.config?.value)) ||\n (referenceType.toUpperCase() === DATA && !dataFields.includes(field?.config?.value))\n ) {\n (getPConnect().getRawMetadata() as any).config?.presets?.[0].children?.[0]?.children?.unshift(field);\n }\n });\n\n setModalOpen(true);\n };\n\n const closeModal = () => {\n setModalOpen(false);\n };\n\n const renderModal = () => {\n const SimpleTableManual = getComponentFromMap('SimpleTableManual');\n\n let readonlyContextObject: { referenceList?: object[] } | undefined;\n if (typeof props.referenceList === 'string') {\n readonlyContextObject = { referenceList: readonlyContextList };\n }\n\n return (\n <Dialog open={modalOpen} onClose={closeModal} maxWidth='md' fullWidth>\n <DialogTitle>{label}</DialogTitle>\n <DialogContent>\n <SimpleTableManual {...props} {...readonlyContextObject} classId={SIMPLE_TABLE_MANUAL_READONLY} />\n </DialogContent>\n <DialogActions>\n <Button onClick={closeModal} variant='contained'>\n {localizedVal('Close', localeCategory)}\n </Button>\n </DialogActions>\n </Dialog>\n );\n };\n\n let displayComp: any;\n\n if (readonlyContextList && readonlyContextList.length > 0) {\n const listLength = readonlyContextList.length;\n const filteredList = ['combobox', 'checkboxgroup'].includes(displayAs) ? readonlyContextList : readonlyContextList.slice(0, 5);\n\n displayComp = (\n <div>\n {filteredList.map((child: any, index: number) => {\n const selectionKeyProp = selectionKey.substring(1);\n const primaryFieldProp = primaryField?.substring(1);\n const selectionListProp = selectionList?.substring(1);\n const referenceLabel = child[primaryFieldProp] || '';\n\n let resourcePayload = {};\n let resourceParams = {};\n let previewKey = '';\n\n if (referenceType.toUpperCase() === CASE) {\n previewKey = child[Utils.getMappedKey('pzInsKey')];\n resourcePayload = { caseClassName: child.classID };\n resourceParams = { workID: child[selectionKeyProp] };\n }\n\n const metadata = {\n type: 'SemanticLink',\n config: {\n text: referenceLabel,\n resourceParams,\n resourcePayload,\n previewKey,\n referenceType\n }\n };\n\n const childPConnectConfig = PCore.createPConnect({\n meta: metadata,\n options: {\n context: pConn.getContextName(),\n pageReference: `${pConn.getPageReference()}.${selectionListProp}[${index}]`\n }\n });\n\n return (\n <Fragment key={child[selectionKeyProp]}>\n {createElement(PComponent, { ...childPConnectConfig })}\n {index + 1 !== filteredList.length && ', '}\n </Fragment>\n );\n })}\n {listLength > 5 && !['combobox', 'checkboxgroup'].includes(displayAs) && (\n <Link component='button' onClick={openModal} underline='hover'>\n ({listLength} {localizedVal('Total', localeCategory)})\n </Link>\n )}\n </div>\n );\n }\n\n if (displayMode === 'DISPLAY_ONLY') {\n return displayComp ?? <Typography variant='body2'>---</Typography>;\n }\n\n return (\n <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'baseline', gap: '0.5rem' }}>\n {!hideLabel && label && (\n <Typography variant='body2' color='text.secondary'>\n {label}\n </Typography>\n )}\n {displayComp}\n {renderModal()}\n </div>\n );\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export { default } from './SimpleTableSelectReadonly';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableSelectReadonly/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default } from './SimpleTableSelectReadonly';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableSelectReadonly/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC","sourcesContent":["export { default } from './SimpleTableSelectReadonly';\n"]}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @example useFocusFirstField(id, children);
3
- * Focuses first editable field in the view.
2
+ * @example useFocusFirstField(id, viewName);
3
+ * Focuses first editable field in the view based on field identity.
4
4
  */
5
- declare const useFocusFirstField: (id: any, children: any) => void;
5
+ declare const useFocusFirstField: (id: any, viewName: any) => void;
6
6
  export default useFocusFirstField;
7
7
  //# sourceMappingURL=useFocusFirstField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFocusFirstField.d.ts","sourceRoot":"","sources":["../../src/hooks/useFocusFirstField.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,QAAA,MAAM,kBAAkB,GAAI,OAAE,EAAE,aAAQ,SAavC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"useFocusFirstField.d.ts","sourceRoot":"","sources":["../../src/hooks/useFocusFirstField.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,QAAA,MAAM,kBAAkB,GAAI,OAAE,EAAE,aAAQ,SAsBvC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1,20 +1,27 @@
1
- import { useEffect } from 'react';
1
+ import { useLayoutEffect, useRef } from 'react';
2
2
  /**
3
- * @example useFocusFirstField(id, children);
4
- * Focuses first editable field in the view.
3
+ * @example useFocusFirstField(id, viewName);
4
+ * Focuses first editable field in the view based on field identity.
5
5
  */
6
- const useFocusFirstField = (id, children) => {
7
- useEffect(() => {
6
+ const useFocusFirstField = (id, viewName) => {
7
+ const previousViewNameRef = useRef(null);
8
+ useLayoutEffect(() => {
9
+ if (previousViewNameRef.current === viewName || !viewName) {
10
+ return;
11
+ }
12
+ previousViewNameRef.current = viewName;
8
13
  const assignment = document.getElementById(id);
9
14
  if (assignment) {
10
- // Find all editable elements within the div
11
- const editableElements = assignment.querySelectorAll('input, select, textarea');
12
- // Focus on the first editable element
13
- if (editableElements.length > 0) {
14
- editableElements[0].focus();
15
- }
15
+ setTimeout(() => {
16
+ // Find all editable elements within the div
17
+ const editableElements = assignment.querySelectorAll('input, select, textarea, div[role="combobox"]');
18
+ if (editableElements.length > 0) {
19
+ // Focus on the first editable element
20
+ editableElements[0].focus();
21
+ }
22
+ }, 100);
16
23
  }
17
- }, [children]);
24
+ }, [viewName]);
18
25
  };
19
26
  export default useFocusFirstField;
20
27
  //# sourceMappingURL=useFocusFirstField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFocusFirstField.js","sourceRoot":"","sources":["../../src/hooks/useFocusFirstField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE;IAC1C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,UAAU,EAAE,CAAC;YACf,4CAA4C;YAC5C,MAAM,gBAAgB,GAA4B,UAAU,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;YAEzG,sCAAsC;YACtC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC","sourcesContent":["import { useEffect } from 'react';\n\n/**\n * @example useFocusFirstField(id, children);\n * Focuses first editable field in the view.\n */\nconst useFocusFirstField = (id, children) => {\n useEffect(() => {\n const assignment = document.getElementById(id);\n if (assignment) {\n // Find all editable elements within the div\n const editableElements: NodeListOf<HTMLElement> = assignment.querySelectorAll('input, select, textarea');\n\n // Focus on the first editable element\n if (editableElements.length > 0) {\n editableElements[0].focus();\n }\n }\n }, [children]);\n};\n\nexport default useFocusFirstField;\n"]}
1
+ {"version":3,"file":"useFocusFirstField.js","sourceRoot":"","sources":["../../src/hooks/useFocusFirstField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEhD;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE;IAC1C,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAEzC,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,mBAAmB,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,mBAAmB,CAAC,OAAO,GAAG,QAAQ,CAAC;QACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAE/C,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,GAAG,EAAE;gBACd,4CAA4C;gBAC5C,MAAM,gBAAgB,GAA4B,UAAU,CAAC,gBAAgB,CAAC,+CAA+C,CAAC,CAAC;gBAC/H,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,sCAAsC;oBACtC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC9B,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC","sourcesContent":["import { useLayoutEffect, useRef } from 'react';\n\n/**\n * @example useFocusFirstField(id, viewName);\n * Focuses first editable field in the view based on field identity.\n */\nconst useFocusFirstField = (id, viewName) => {\n const previousViewNameRef = useRef(null);\n\n useLayoutEffect(() => {\n if (previousViewNameRef.current === viewName || !viewName) {\n return;\n }\n\n previousViewNameRef.current = viewName;\n const assignment = document.getElementById(id);\n\n if (assignment) {\n setTimeout(() => {\n // Find all editable elements within the div\n const editableElements: NodeListOf<HTMLElement> = assignment.querySelectorAll('input, select, textarea, div[role=\"combobox\"]');\n if (editableElements.length > 0) {\n // Focus on the first editable element\n editableElements[0].focus();\n }\n }, 100);\n }\n }, [viewName]);\n};\n\nexport default useFocusFirstField;\n"]}
@@ -27,6 +27,7 @@ declare namespace pegaSdkComponentMap {
27
27
  export { DateTime };
28
28
  export { Decimal };
29
29
  export { DefaultForm };
30
+ export { HierarchicalForm };
30
31
  export { DefaultPage };
31
32
  export { DeferLoad };
32
33
  export { Details };
@@ -62,6 +63,7 @@ declare namespace pegaSdkComponentMap {
62
63
  export { NarrowWideForm };
63
64
  export { NarrowWidePage };
64
65
  export { NavBar };
66
+ export { ObjectPage };
65
67
  export { ObjectReference };
66
68
  export { OneColumn };
67
69
  export { OneColumnPage };
@@ -87,6 +89,7 @@ declare namespace pegaSdkComponentMap {
87
89
  export { SimpleTable };
88
90
  export { SimpleTableManual };
89
91
  export { SimpleTableSelect };
92
+ export { SimpleTableSelectReadonly };
90
93
  export { SingleReferenceReadOnly };
91
94
  export { Stages };
92
95
  export { SubTabs };
@@ -139,6 +142,7 @@ import Date from './components/field/Date';
139
142
  import DateTime from './components/field/DateTime';
140
143
  import Decimal from './components/field/Decimal';
141
144
  import DefaultForm from './components/template/DefaultForm';
145
+ import HierarchicalForm from './components/template/HierarchicalForm';
142
146
  import DefaultPage from './components/template/DefaultPage';
143
147
  import DeferLoad from './components/infra/DeferLoad';
144
148
  import Details from './components/template/Details/Details';
@@ -174,6 +178,7 @@ import NarrowWideDetails from './components/template/NarrowWide/NarrowWideDetail
174
178
  import NarrowWideForm from './components/template/NarrowWide/NarrowWideForm';
175
179
  import NarrowWidePage from './components/template/NarrowWide/NarrowWidePage';
176
180
  import NavBar from './components/infra/NavBar';
181
+ import ObjectPage from './components/template/ObjectPage';
177
182
  import ObjectReference from './components/field/ObjectReference';
178
183
  import OneColumn from './components/template/OneColumn/OneColumn';
179
184
  import OneColumnPage from './components/template/OneColumn/OneColumnPage';
@@ -199,6 +204,7 @@ import SemanticLink from './components/field/SemanticLink';
199
204
  import SimpleTable from './components/template/SimpleTable/SimpleTable';
200
205
  import SimpleTableManual from './components/template/SimpleTable/SimpleTableManual';
201
206
  import SimpleTableSelect from './components/template/SimpleTable/SimpleTableSelect';
207
+ import SimpleTableSelectReadonly from './components/template/SimpleTable/SimpleTableSelectReadonly';
202
208
  import SingleReferenceReadOnly from './components/template/SingleReferenceReadOnly';
203
209
  import Stages from './components/infra/Stages';
204
210
  import SubTabs from './components/template/SubTabs';