@pega/react-sdk-components 0.23.13 → 0.23.14
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/components/field/DateTime/DateTime.d.ts.map +1 -1
- package/lib/components/field/DateTime/DateTime.js +5 -1
- package/lib/components/field/DateTime/DateTime.js.map +1 -1
- package/lib/components/helpers/simpleTableHelpers.d.ts.map +1 -0
- package/lib/components/{template/SimpleTable → helpers}/simpleTableHelpers.js +1 -1
- package/lib/components/helpers/simpleTableHelpers.js.map +1 -0
- package/lib/components/template/ListView/ListView.js +1 -1
- package/lib/components/template/ListView/ListView.js.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js +1 -1
- package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js.map +1 -1
- package/package.json +1 -1
- package/lib/components/template/SimpleTable/simpleTableHelpers.d.ts.map +0 -1
- package/lib/components/template/SimpleTable/simpleTableHelpers.js.map +0 -1
- /package/lib/components/{template/SimpleTable → helpers}/simpleTableHelpers.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTime.d.ts","sourceRoot":"","sources":["../../../../src/components/field/DateTime/DateTime.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"DateTime.d.ts","sourceRoot":"","sources":["../../../../src/components/field/DateTime/DateTime.tsx"],"names":[],"mappings":";AAOA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,KAAA,eAuErC"}
|
|
@@ -3,6 +3,7 @@ import { KeyboardDateTimePicker } from '@material-ui/pickers';
|
|
|
3
3
|
import TextInput from '../TextInput';
|
|
4
4
|
import handleEvent from '../../helpers/event-utils';
|
|
5
5
|
import FieldValueList from '../../designSystemExtension/FieldValueList';
|
|
6
|
+
import { format } from '../../helpers/formatters/';
|
|
6
7
|
export default function DateTime(props) {
|
|
7
8
|
const { getPConnect, label, required, disabled, value = '', validatemessage, status, onChange, readOnly, testId, helperText, displayMode } = props;
|
|
8
9
|
const pConn = getPConnect();
|
|
@@ -10,12 +11,15 @@ export default function DateTime(props) {
|
|
|
10
11
|
const propName = pConn.getStateProps().value;
|
|
11
12
|
const helperTextToDisplay = validatemessage || helperText;
|
|
12
13
|
if (displayMode === 'LABELS_LEFT') {
|
|
14
|
+
const formattedDate = format(props.value, 'datetime');
|
|
13
15
|
const field = {
|
|
14
|
-
[label]:
|
|
16
|
+
[label]: formattedDate
|
|
15
17
|
};
|
|
16
18
|
return React.createElement(FieldValueList, { item: field });
|
|
17
19
|
}
|
|
18
20
|
if (readOnly) {
|
|
21
|
+
const formattedDate = format(props.value, 'datetime');
|
|
22
|
+
props.value = formattedDate;
|
|
19
23
|
return React.createElement(TextInput, { ...props });
|
|
20
24
|
}
|
|
21
25
|
const handleChange = date => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../../../../src/components/field/DateTime/DateTime.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,cAAc,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../../../../src/components/field/DateTime/DateTime.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,cAAc,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK;IACpC,MAAM,EACJ,WAAW,EACX,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,GAAG,EAAE,EACV,eAAe,EACf,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,UAAU,EACV,WAAW,EACZ,GAAG,KAAK,CAAC;IACV,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC;IAC7C,MAAM,mBAAmB,GAAG,eAAe,IAAI,UAAU,CAAC;IAE1D,IAAG,WAAW,KAAK,aAAa,EAAC;QAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG;YACZ,CAAC,KAAK,CAAC,EAAE,aAAa;SACvB,CAAC;QACF,OAAO,oBAAC,cAAc,IAAC,IAAI,EAAE,KAAK,GAAG,CAAA;KACtC;IAED,IAAI,QAAQ,EAAE;QACZ,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACtD,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC;QAC5B,OAAO,oBAAC,SAAS,OAAK,KAAK,GAAI,CAAC;KACjC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE;QAC1B,MAAM,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,QAAQ,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE;QAC1B,MAAM,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,EAAE;IACF,iGAAiG;IACjG,8DAA8D;IAC9D,EAAE;IAEF,OAAO,CACL,oBAAC,sBAAsB,IACrB,OAAO,EAAC,QAAQ,EAChB,YAAY,EAAC,UAAU,EACvB,SAAS,QACT,MAAM,QACN,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAC,qBAAqB,EACjC,MAAM,EAAC,oBAAoB,EAC3B,IAAI,EAAC,qBAAqB,EAC1B,WAAW,EAAE,CAAC,EACd,KAAK,EAAE,MAAM,KAAK,OAAO,EACzB,UAAU,EAAE,mBAAmB,EAC/B,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,IAAI,IAAI,EACpB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,kBACR,MAAM,GACpB,CACH,CAAC;AACJ,CAAC","sourcesContent":["import React from 'react';\nimport { KeyboardDateTimePicker } from '@material-ui/pickers';\nimport TextInput from '../TextInput';\nimport handleEvent from '../../helpers/event-utils';\nimport FieldValueList from '../../designSystemExtension/FieldValueList';\nimport { format } from '../../helpers/formatters/';\n\nexport default function DateTime(props) {\n const {\n getPConnect,\n label,\n required,\n disabled,\n value = '',\n validatemessage,\n status,\n onChange,\n readOnly,\n testId,\n helperText,\n displayMode\n } = props;\n const pConn = getPConnect();\n const actions = pConn.getActionsApi();\n const propName = pConn.getStateProps().value;\n const helperTextToDisplay = validatemessage || helperText;\n\n if(displayMode === 'LABELS_LEFT'){\n const formattedDate = format(props.value, 'datetime');\n const field = {\n [label]: formattedDate\n };\n return <FieldValueList item={field}/>\n }\n\n if (readOnly) {\n const formattedDate = format(props.value, 'datetime');\n props.value = formattedDate;\n return <TextInput {...props} />;\n }\n\n const handleChange = date => {\n const changeValue = date && date.isValid() ? date.toISOString() : null;\n onChange({ value: changeValue });\n };\n\n const handleAccept = date => {\n const changeValue = date && date.isValid() ? date.toISOString() : null;\n handleEvent(actions, 'changeNblur', propName, changeValue);\n };\n\n //\n // TODO: Keyboard doesn't work in the minute field, it updates one digit then jump to am/pm field\n // try an older version of the lib or use DateTimePicker\n //\n\n return (\n <KeyboardDateTimePicker\n variant='inline'\n inputVariant='outlined'\n fullWidth\n autoOk\n required={required}\n disabled={disabled}\n placeholder='mm/dd/yyyy hh:mm am'\n format='MM/DD/YYYY hh:mm a'\n mask='__/__/____ __:__ _m'\n minutesStep={5}\n error={status === 'error'}\n helperText={helperTextToDisplay}\n size='small'\n label={label}\n value={value || null}\n onChange={handleChange}\n onAccept={handleAccept}\n data-test-id={testId}\n />\n );\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simpleTableHelpers.d.ts","sourceRoot":"","sources":["../../../src/components/helpers/simpleTableHelpers.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,gBAAgB,CAAC;AACxC,eAAO,MAAM,WAAW,eAAe,CAAC;AAwCxC,eAAO,MAAM,UAAU;;;;CAmBtB,CAAC;AAEF,eAAO,MAAM,cAAc,uBAI1B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;CAwBzB,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyChC,CAAC;AAEF,eAAO,MAAM,mBAAmB,gEAmC/B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;CAuB9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,0CAE7B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,mEAY1B,CAAC;AAEF,eAAO,MAAM,UAAU,kDA+HtB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simpleTableHelpers.js","sourceRoot":"","sources":["../../../src/components/helpers/simpleTableHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { Utils } from './utils';\n\ndeclare const PCore;\n\nexport const TABLE_CELL = \"SdkRenderer\";\nexport const DELETE_ICON = \"DeleteIcon\";\n\n// BUG-615253: Workaround for autosize in table with lazy loading components\n/* istanbul ignore next */\nfunction getFieldWidth(field, label) {\n let width;\n switch (field.type) {\n case \"Time\":\n width = 150;\n break;\n case \"Date\":\n width = 160;\n break;\n case \"DateTime\":\n width = 205;\n break;\n case \"AutoComplete\":\n case \"TextArea\":\n width = 190;\n break;\n case \"Currency\":\n case \"TextInput\":\n width = 182;\n break;\n case \"Checkbox\":\n // eslint-disable-next-line no-case-declarations\n const text = document.createElement(\"span\");\n document.body.appendChild(text);\n text.style.fontSize = \"13px\";\n text.style.position = \"absolute\";\n text.innerHTML = label;\n width = Math.ceil(text.clientWidth) + 30;\n document.body.removeChild(text);\n break;\n default:\n width = 180;\n }\n return width;\n}\n\nexport const getContext = (thePConn) => {\n const contextName = thePConn.getContextName();\n const pageReference = thePConn.getPageReference();\n let { referenceList } = thePConn.getStateProps().config;\n const pageReferenceForRows = referenceList.startsWith(\".\")\n ? `${pageReference}.${referenceList.substring(1)}`\n : referenceList;\n\n // removing \"caseInfo.content\" prefix to avoid setting it as a target while preparing pageInstructions\n referenceList = pageReferenceForRows.replace(\n PCore.getConstants().CASE_INFO.CASE_INFO_CONTENT,\n \"\"\n );\n\n return {\n contextName,\n referenceListStr: referenceList,\n pageReferenceForRows\n };\n};\n\nexport const populateRowKey = (rawData) => {\n return rawData.map((row, index) => {\n return { ...row, index };\n });\n};\n\nexport const getApiContext = (processedData, pConnect, reorderCB) => {\n return {\n fetchData: () => {\n return new Promise((resolve) => {\n resolve({\n data: processedData,\n filteredRecordCount: processedData.length,\n totalRecordCount: processedData.length\n });\n });\n },\n fetchPersonalizations: () => {\n return Promise.resolve({});\n },\n applyRowReorder: (sourceKey, destinationKey) => {\n // indexes are keys for simple table so, it should work.\n reorderCB();\n return Promise.resolve(\n pConnect\n .getListActions()\n .reorder(parseInt(sourceKey, 10), parseInt(destinationKey, 10))\n );\n }\n };\n};\n\nexport const buildMetaForListView = (\n fieldMetadata,\n fields,\n type,\n ruleClass,\n name,\n propertyLabel,\n parameters\n) => {\n return {\n name,\n config: {\n type,\n referenceList: fieldMetadata.datasource.name,\n parameters: parameters ?? fieldMetadata.datasource.parameters,\n personalization: false,\n grouping: true,\n globalSearch: true,\n reorderFields: true,\n toggleFieldVisibility: true,\n personalizationId: \"\" /* TODO */,\n template: \"ListView\",\n presets: [\n {\n name: \"presets\",\n template: \"Table\",\n config: {},\n children: [\n {\n name: \"Columns\",\n type: \"Region\",\n children: fields\n }\n ],\n label: propertyLabel,\n id: \"P_\" /* TODO */\n }\n ],\n ruleClass\n }\n };\n};\n\nexport const buildFieldsForTable = (configFields, fields, showDeleteButton) => {\n const fieldDefs = configFields.map((field, index) => {\n return {\n type: \"text\",\n label: fields[index].config.label || fields[index].config.caption,\n fillAvailableSpace: !!field.config.fillAvailableSpace,\n id: index,\n name: field.config.value.substr(4),\n cellRenderer: TABLE_CELL,\n sort: false,\n noContextMenu: true,\n showMenu: false,\n meta: {\n ...field\n },\n // BUG-615253: Workaround for autosize in table with lazy loading components\n width: getFieldWidth(field, fields[index].config.label)\n };\n });\n\n // ONLY add DELETE_ICON to fields when the table is requested as EDITABLE\n if (showDeleteButton) {\n fieldDefs.push({\n type: \"text\",\n id: fieldDefs.length,\n cellRenderer: DELETE_ICON,\n sort: false,\n noContextMenu: true,\n showMenu: false,\n // BUG-615253: Workaround for autosize in table with lazy loading components\n width: 46\n });\n }\n\n return fieldDefs;\n};\n\nexport const createMetaForTable = (fields, renderMode) => {\n return {\n height: {\n minHeight: \"auto\",\n fitHeightToElement: \"fitHeightToElement\",\n deltaAdjustment: \"deltaAdjustment\",\n autoSize: true\n },\n fieldDefs: fields,\n itemKey: \"index\",\n grouping: false,\n reorderFields: false,\n reorderItems: renderMode === \"Editable\",\n dragHandle: renderMode === \"Editable\",\n globalSearch: false,\n personalization: false,\n toggleFieldVisibility: false,\n toolbar: false,\n footer: false,\n filterExpression: null,\n editing: false,\n timezone: PCore.getEnvironmentInfo().getTimeZone()\n };\n};\n\n/**\n * This method returns a callBack function for Add action.\n * @param {object} pConnect - PConnect object\n * @param {number} index - index of the page list to add\n */\nexport const getAddRowCallback = (pConnect, index) => {\n return () => pConnect.getListActions().insert({}, index);\n};\n\n/**\n * This method creates a PConnect object with proper options for Add and Delete actions\n * @param {string} contextName - contextName\n * @param {string} referenceList - referenceList\n * @param {string} pageReference - pageReference\n */\nexport const createPConnect = (contextName, referenceList, pageReference) => {\n const options = {\n context: contextName,\n pageReference,\n referenceList\n };\n\n // create PConnect object\n const config = { meta: {}, options };\n const { getPConnect } = PCore.createPConnect(config);\n\n return getPConnect();\n};\n\nexport const filterData = (filterByColumns) => {\n return function filteringData(item) {\n let bKeep = true;\n for (const filterObj of filterByColumns) {\n if (\n filterObj.containsFilterValue !== '' ||\n filterObj.containsFilter === 'null' ||\n filterObj.containsFilter === 'notnull'\n ) {\n let value: any;\n let filterValue: any;\n\n switch (filterObj.type) {\n case 'Date':\n case 'DateTime':\n case 'Time':\n value =\n item[filterObj.ref] !== null ?? item[filterObj.ref] !== ''\n ? Utils.getSeconds(item[filterObj.ref])\n : null;\n filterValue =\n filterObj.containsFilterValue !== null && filterObj.containsFilterValue !== ''\n ? Utils.getSeconds(filterObj.containsFilterValue)\n : null;\n\n // eslint-disable-next-line sonarjs/no-nested-switch\n switch (filterObj.containsFilter) {\n case 'notequal':\n // becasue filterValue is in minutes, need to have a range of less than 60 secons\n\n if (value !== null && filterValue !== null) {\n // get rid of milliseconds\n value /= 1000;\n filterValue /= 1000;\n\n const diff = value - filterValue;\n if (diff >= 0 && diff < 60) {\n bKeep = false;\n }\n }\n\n break;\n\n case 'equal':\n // becasue filterValue is in minutes, need to have a range of less than 60 secons\n\n if (value !== null && filterValue !== null) {\n // get rid of milliseconds\n value /= 1000;\n filterValue /= 1000;\n\n const diff = value - filterValue;\n if (diff !== 0) {\n bKeep = false;\n }\n }\n\n break;\n\n case 'after':\n if (value < filterValue) {\n bKeep = false;\n }\n break;\n\n case 'before':\n if (value > filterValue) {\n bKeep = false;\n }\n break;\n\n case 'null':\n if (value !== null) {\n bKeep = false;\n }\n break;\n\n case 'notnull':\n if (value === null) {\n bKeep = false;\n }\n break;\n\n default:\n break;\n }\n break;\n\n default:\n value = item[filterObj.ref].toLowerCase();\n filterValue = filterObj.containsFilterValue.toLowerCase();\n\n // eslint-disable-next-line sonarjs/no-nested-switch\n switch (filterObj.containsFilter) {\n case 'contains':\n if (value.indexOf(filterValue) < 0) {\n bKeep = false;\n }\n break;\n\n case 'equals':\n if (value !== filterValue) {\n bKeep = false;\n }\n break;\n\n case 'startswith':\n if (value.indexOf(filterValue) !== 0) {\n bKeep = false;\n }\n break;\n\n default:\n break;\n }\n\n break;\n }\n }\n\n // if don't keep stop filtering\n if (!bKeep) {\n break;\n }\n }\n return bKeep;\n }\n}\n"]}
|
|
@@ -35,7 +35,7 @@ import IconButton from '@material-ui/core/IconButton';
|
|
|
35
35
|
import CloseIcon from '@material-ui/icons/Close';
|
|
36
36
|
import { Radio } from '@material-ui/core';
|
|
37
37
|
import Checkbox from '@material-ui/core/Checkbox';
|
|
38
|
-
import { filterData } from '
|
|
38
|
+
import { filterData } from '../../helpers/simpleTableHelpers';
|
|
39
39
|
import './ListView.css';
|
|
40
40
|
const SELECTION_MODE = { SINGLE: 'single', MULTI: 'multi' };
|
|
41
41
|
let myRows;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListView.js","sourceRoot":"","sources":["../../../../src/components/template/ListView/ListView.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-plusplus */\n/* eslint-disable guard-for-in */\n/* eslint-disable @typescript-eslint/no-use-before-define */\nimport React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\nimport { Utils } from '../../helpers/utils';\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 TablePagination from '@material-ui/core/TablePagination';\nimport TableRow from '@material-ui/core/TableRow';\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\nimport Paper from '@material-ui/core/Paper';\nimport MoreIcon from '@material-ui/icons/MoreVert';\nimport FilterListIcon from '@material-ui/icons/FilterList';\nimport SubjectIcon from '@material-ui/icons/Subject';\nimport SearchIcon from '@material-ui/icons/Search';\nimport TextField from '@material-ui/core/TextField';\nimport Grid from '@material-ui/core/Grid';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\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 Link from '@material-ui/core/Link';\nimport Typography from '@material-ui/core/Typography';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { Radio } from '@material-ui/core';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { filterData } from '../SimpleTable/simpleTableHelpers';\nimport './ListView.css';\n\nconst SELECTION_MODE = { SINGLE: 'single', MULTI: 'multi' };\ndeclare const PCore: any;\n\nlet myRows: Array<any>;\nlet myDisplayColumnList: Array<any>;\n\nlet menuColumnId = '';\nlet menuColumnType = '';\nlet menuColumnLabel = '';\n\nlet sortColumnId: any;\n\n// let dialogContainsFilter: string = \"contains\";\n// let dialogContainsValue: string = \"\";\n// let dialogDateFilter: string = \"notequal\";\n// let dialogDateValue: string = \"\";\n\nconst filterByColumns: Array<any> = [];\n\nexport default function ListView(props) {\n const { getPConnect, bInForm } = props;\n const { globalSearch, presets, referenceList, rowClickAction, selectionMode, referenceType, payload, parameters, compositeKeys } = props;\n\n const thePConn = getPConnect();\n const componentConfig = thePConn.getComponentConfig();\n const resolvedConfigProps = thePConn.getConfigProps();\n\n /** By default, pyGUID is used for Data classes and pyID is for Work classes as row-id/key */\n const defRowID = referenceType === 'Case' ? 'pyID' : 'pyGUID';\n\n /** If compositeKeys is defined, use dynamic value, else fallback to pyID or pyGUID. */\n const rowID = compositeKeys && compositeKeys?.length === 1 ? compositeKeys[0] : defRowID;\n\n const [arRows, setRows] = useState<Array<any>>([]);\n const [arColumns, setColumns] = useState<Array<any>>([]);\n const [response, setResponse] = useState<Array<any>>([]);\n const [order, setOrder] = useState<Order>('asc');\n const [orderBy, setOrderBy] = useState<keyof any>('');\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [open, setOpen] = useState(false);\n\n const [showSnackbar, setShowSnackbar] = useState(false);\n const [snackbarMessage, setSnackbarMessage] = useState('');\n\n const [selectedValue, setSelectedValue] = useState('');\n\n // This basically will hold the list of all current filters\n const filters = useRef({});\n\n // Will contain the list of columns specific for an instance\n let columnList: any = useRef([]);\n let dashboardFilterPayload: any ;\n // Will be sent in the dashboardFilterPayload\n let selectParam: Array<any> = [];\n\n // dataview parameters coming from the ListPage\n // This constant will also be used for parameters coming from from other components/utility fnctions in future\n const dataViewParameters = parameters;\n\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n width: '100%'\n },\n paper: {\n width: '100%',\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2)\n },\n search: {\n padding: '5px 5px'\n },\n table: {\n minWidth: 750\n },\n tableInForm: {\n minWidth: 750,\n maxHeight: 550,\n overflow: 'auto'\n },\n moreIcon: {\n verticalAlign: 'bottom'\n },\n filteredIcon: {\n verticalAlign: 'bottom'\n },\n cell: {\n whiteSpace: 'nowrap'\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 title: {\n marginTop: theme.spacing(1),\n marginLeft: theme.spacing(1)\n }\n })\n );\n\n const classes = useStyles();\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 sortColumnId = property;\n handleRequestSort(event, property);\n };\n\n function descendingComparator<T>(a: T, b: T, orderedBy: keyof T) {\n if (b[orderedBy] < a[orderedBy]) {\n return -1;\n }\n if (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 // eslint-disable-next-line no-unused-vars\n ): (a: { [key in Key]: number | string }, b: { [key in Key]: number | string }) => number {\n return theOrder === 'desc'\n ? (a, b) => descendingComparator(a, b, orderedBy)\n : (a, b) => -descendingComparator(a, b, orderedBy);\n }\n\n // eslint-disable-next-line no-unused-vars\n function stableSort<T>(array: 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, no-shadow\n const order = comparator(a[0], b[0]);\n if (order !== 0) return order;\n return a[1] - b[1];\n });\n return stabilizedThis.map(el => el[0]);\n }\n\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(10);\n\n const handleChangePage = (event: unknown, newPage: number) => {\n setPage(newPage);\n };\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent<HTMLInputElement>) => {\n setRowsPerPage(+event.target.value);\n setPage(0);\n };\n\n // function getDisplayColumns(fields = []) {\n // let arReturn = fields.map(( field: any, colIndex) => {\n // let theField = field.config.value.substring(field.config.value.indexOf(\" \")+1);\n // if (theField.indexOf(\".\") == 0) {\n // theField = theField.substring(1);\n // }\n\n // return theField;\n // });\n // return arReturn;\n\n // }\n\n function getHeaderCells(colFields, fields) {\n const arReturn = colFields.map((field: any, colIndex) => {\n let theField = field.config.value.substring(field.config.value.indexOf(' ') + 1);\n if (theField.indexOf('.') === 0) {\n theField = theField.substring(1);\n }\n\n const headerRow: any = {};\n headerRow.id = theField;\n headerRow.type = field.type;\n headerRow.numeric =\n field.type === 'Decimal' ||\n field.type === 'Integer' ||\n field.type === 'Percentage' ||\n field.type === 'Currency' ||\n false;\n headerRow.disablePadding = false;\n headerRow.label = fields[colIndex].config.label;\n\n return headerRow;\n });\n return arReturn;\n }\n\n function updateFields(arFields, theColumns): Array<any> {\n const arReturn = arFields;\n arFields.forEach((field, index) => {\n arReturn[index].config.name = theColumns[index].id;\n });\n\n return arReturn;\n }\n\n function getUsingData(arTableData, theColumns): Array<any> {\n if (selectionMode === SELECTION_MODE.SINGLE || selectionMode === SELECTION_MODE.MULTI) {\n const record = arTableData?.length > 0 ? arTableData[0] : '';\n if (typeof record === 'object' && !('pyGUID' in record) && !('pyID' in record)) {\n // eslint-disable-next-line no-console\n console.error('pyGUID or pyID values are mandatory to select the required row from the list');\n }\n }\n const arReturn = arTableData?.map((data: any) => {\n const row: any = {};\n\n theColumns.forEach(col => {\n row[col.id] = data[col.id];\n });\n row[rowID] = data[rowID];\n // for (const field of theColumns) {\n // row[field.id] = data[field.id];\n // }\n\n // add in pxRefObjectClass and pzInsKey\n if (data['pxRefObjectClass']) {\n row['pxRefObjectClass'] = data['pxRefObjectClass'];\n }\n\n if (data['pzInsKey']) {\n row['pzInsKey'] = data['pzInsKey'];\n }\n\n return row;\n });\n\n return arReturn;\n }\n\n function updateData(listData: Array<any>, fieldData: Array<any>): Array<any> {\n const returnList: Array<any> = new Array<any>();\n listData?.forEach(row => {\n // copy\n const rowData = JSON.parse(JSON.stringify(row));\n\n fieldData.forEach(field => {\n const config = field.config;\n let fieldName;\n let formattedDate;\n let myFormat;\n\n switch (field.type) {\n case 'Date':\n fieldName = config.name;\n myFormat = config.formatter;\n if (!myFormat) {\n myFormat = 'Date';\n }\n formattedDate = Utils.generateDate(rowData[fieldName], myFormat);\n\n rowData[fieldName] = formattedDate;\n break;\n\n case 'DateTime':\n fieldName = config.name;\n myFormat = config.formatter;\n if (!myFormat) {\n myFormat = 'DateTime-Long';\n }\n formattedDate = Utils.generateDateTime(rowData[fieldName], myFormat);\n\n rowData[fieldName] = formattedDate;\n break;\n\n default:\n break;\n }\n });\n\n returnList.push(rowData);\n });\n\n return returnList;\n }\n\n function getMyColumnList(arCols: Array<any>): Array<string> {\n const myColList: Array<string> = [];\n\n arCols.forEach(col => {\n myColList.push(col.id);\n });\n\n // for (const col of arCols) {\n // myColList.push(col.id);\n // }\n\n return myColList;\n }\n\n /** Will return field from a filter expression */\n function getFieldFromFilter(filter, dateRange = false) {\n let fieldValue;\n if (dateRange) {\n fieldValue = filter?.AND[0]?.condition.lhs.field;\n } else {\n fieldValue = filter?.condition.lhs.field;\n }\n return fieldValue;\n }\n\n // Will be triggered when EVENT_DASHBOARD_FILTER_CHANGE fires\n function processFilterChange(data) {\n const { filterId, filterExpression } = data;\n dashboardFilterPayload = {\n query: {\n filter: {},\n select: []\n }\n };\n\n filters.current[filterId] = filterExpression;\n // eslint-disable-next-line no-unneeded-ternary\n let isDateRange = data.filterExpression?.AND ? true : false;\n // Will be AND by default but making it dynamic in case we support dynamic relational ops in future\n const relationalOp = 'AND';\n\n let field = getFieldFromFilter(filterExpression, isDateRange);\n selectParam = [];\n // Constructing the select parameters list( will be sent in dashboardFilterPayload)\n columnList.forEach(col => {\n selectParam.push({\n field: col\n });\n });\n\n // Checking if the triggered filter is applicable for this list\n if (data.filterExpression !== null && !(columnList.length && columnList.includes(field))) {\n return;\n }\n // This is a flag which will be used to reset dashboardFilterPayload in case we don't find any valid filters\n let validFilter = false;\n\n let index = 1;\n // Iterating over the current filters list to create filter data which will be POSTed\n for (const filterExp in filters.current) {\n const filter = filters.current[filterExp];\n // If the filter is null then we can skip this iteration\n if (filter === null) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n // Checking if the filter is of type- Date Range\n // eslint-disable-next-line no-unneeded-ternary\n isDateRange = filter?.AND ? true : false;\n field = getFieldFromFilter(filter, isDateRange);\n\n if (!(columnList.length && columnList.includes(field))) {\n // eslint-disable-next-line no-continue\n continue;\n }\n // If we reach here that implies we've at least one valid filter, hence setting the flag\n validFilter = true;\n /** Below are the 2 cases for- Text & Date-Range filter types where we'll construct filter data which will be sent in the dashboardFilterPayload\n * In Nebula, through Repeating Structures they might be using several APIs to do it, we're doing it here\n */\n if (isDateRange) {\n const dateRelationalOp = filter?.AND ? 'AND' : 'OR';\n dashboardFilterPayload.query.filter.filterConditions = {\n ...dashboardFilterPayload.query.filter.filterConditions,\n [`T${index++}`]: { ...filter[relationalOp][0].condition },\n [`T${index++}`]: { ...filter[relationalOp][1].condition }\n };\n if (dashboardFilterPayload.query.filter.logic) {\n dashboardFilterPayload.query.filter.logic = `${dashboardFilterPayload.query.filter.logic} ${relationalOp} (T${\n index - 2\n } ${dateRelationalOp} T${index - 1})`;\n } else {\n dashboardFilterPayload.query.filter.logic = `(T${index - 2} ${relationalOp} T${index - 1})`;\n }\n\n dashboardFilterPayload.query.select = selectParam;\n } else {\n dashboardFilterPayload.query.filter.filterConditions = {\n ...dashboardFilterPayload.query.filter.filterConditions,\n [`T${index++}`]: { ...filter.condition, ignoreCase: true }\n };\n\n if (dashboardFilterPayload.query.filter.logic) {\n dashboardFilterPayload.query.filter.logic = `${dashboardFilterPayload.query.filter.logic} ${relationalOp} T${\n index - 1\n }`;\n } else {\n dashboardFilterPayload.query.filter.logic = `T${index - 1}`;\n }\n\n dashboardFilterPayload.query.select = selectParam;\n }\n }\n\n // Reset the dashboardFilterPayload if we end up with no valid filters for the list\n if (!validFilter) {\n dashboardFilterPayload = undefined;\n }\n\n fetchDataFromServer();\n }\n\n // Will be triggered when EVENT_DASHBOARD_FILTER_CLEAR_ALL fires\n function processFilterClear() {\n dashboardFilterPayload = undefined;\n fetchDataFromServer();\n }\n\n useEffect(() => {\n setTimeout(() => {\n PCore.getPubSubUtils().subscribe(\n PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CHANGE,\n data => {\n processFilterChange(data);\n },\n `dashboard-component-${'id'}`,\n false,\n getPConnect().getContextName()\n );\n PCore.getPubSubUtils().subscribe(\n PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CLEAR_ALL,\n () => {\n filters.current = {};\n processFilterClear();\n },\n `dashboard-component-${'id'}`,\n false,\n getPConnect().getContextName()\n );\n }, 0);\n }, []);\n\n function fetchAllData() {\n const context = getPConnect().getContextName();\n return PCore.getDataPageUtils().getDataAsync(\n referenceList,\n context,\n payload ? payload.dataViewParameters : dataViewParameters,\n null,\n payload ? payload.query : dashboardFilterPayload && dashboardFilterPayload.query\n );\n }\n\n async function fetchDataFromServer() {\n let bCallSetRowsColumns = true;\n const workListJSON = await fetchAllData();\n\n // don't update these fields until we return from promise\n let fields = presets[0].children[0].children;\n\n // this is an unresovled version of this.fields$, need unresolved, so can get the property reference\n const columnFields = componentConfig.presets[0].children[0].children;\n\n const tableDataResults = workListJSON['data'];\n\n const myColumns = getHeaderCells(columnFields, fields);\n\n const selectParams: any = [];\n\n myColumns.forEach(column => {\n selectParams.push({\n field: column.id\n });\n });\n\n const colList: any = [];\n\n selectParams.forEach(col => {\n colList.push(col.field);\n });\n\n columnList = colList;\n\n fields = updateFields(fields, myColumns);\n\n setResponse(tableDataResults);\n\n const usingDataResults = getUsingData(tableDataResults, myColumns);\n\n // store globally, so can be searched, filtered, etc.\n myRows = updateData(usingDataResults, fields);\n myDisplayColumnList = getMyColumnList(myColumns);\n\n // At this point, if we have data ready to render and haven't been asked\n // to NOT call setRows and setColumns, call them\n if (bCallSetRowsColumns) {\n setRows(myRows);\n setColumns(myColumns);\n }\n\n return () => {\n // Inspired by https://juliangaramendy.dev/blog/use-promise-subscription\n // The useEffect closure lets us have access to the bCallSetRowsColumns\n // variable inside the useEffect and inside the \"then\" clause of the\n // workListData promise\n // So, if this cleanup code gets run before the promise .then is called,\n // we can avoid calling the useState setters which would otherwise show a warning\n bCallSetRowsColumns = false;\n };\n }\n\n useEffect(() => {\n fetchDataFromServer();\n }, []);\n\n function searchFilter(value: string, rows: Array<any>) {\n function filterArray(el: any): boolean {\n const bReturn = false;\n for (const key in el) {\n // only search columsn that are displayed (pzInsKey and pxRefObjectClass are added and may or may not be displayed)\n if (myDisplayColumnList.includes(key)) {\n let myVal = el[key];\n if (myVal !== null) {\n if (typeof myVal !== 'string') {\n myVal = myVal.toString();\n }\n if (myVal.toLowerCase().indexOf(value.toLowerCase()) >= 0) {\n return true;\n }\n }\n }\n }\n\n return bReturn;\n }\n\n rows = rows.filter(filterArray);\n\n return rows;\n }\n\n function _onSearch(event: any) {\n const searchValue = event.target.value;\n\n const filteredRows = searchFilter(searchValue, myRows.slice());\n\n setRows(filteredRows);\n }\n\n function showToast(message: string) {\n const theMessage = `Assignment: ${message}`;\n // eslint-disable-next-line no-console\n console.error(theMessage);\n setSnackbarMessage(message);\n setShowSnackbar(true);\n }\n\n function openAssignment(row) {\n const { pxRefObjectClass, pzInsKey } = row;\n const sTarget = thePConn.getContainerName();\n\n const options = { containerName: sTarget };\n\n thePConn\n .getActionsApi()\n .openAssignment(pzInsKey, pxRefObjectClass, options)\n .then(() => {\n // console.log(\"openAssignment successful\");\n })\n .catch(() => {\n showToast(`openAssignment failed!`);\n });\n }\n\n function _rowClick(row: any) {\n // eslint-disable-next-line sonarjs/no-small-switch\n switch (rowClickAction) {\n case 'openAssignment':\n openAssignment(row);\n break;\n\n default:\n break;\n }\n }\n\n function openWork(row) {\n const { pxRefObjectClass, pxRefObjectKey } = row;\n\n if (pxRefObjectClass !== '' && pxRefObjectKey !== '') {\n thePConn.getActionsApi().openWorkByHandle(pxRefObjectKey, pxRefObjectClass);\n }\n }\n\n function handleSnackbarClose(event: React.SyntheticEvent | React.MouseEvent, reason?: string) {\n if (reason === 'clickaway') {\n return;\n }\n setShowSnackbar(false);\n }\n\n function _menuClick(event, columnId: string, columnType: string, label: string) {\n menuColumnId = columnId;\n menuColumnType = columnType;\n menuColumnLabel = label;\n\n setAnchorEl(event.currentTarget);\n }\n\n function _menuClose() {\n setAnchorEl(null);\n }\n\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, no-unused-vars\n const [displayDialogFilterName, setDisplayDialogFilterName] = useState<string>('');\n const [displayDialogContainsFilter, setDisplayDialogContainsFilter] =\n useState<string>('contains');\n const [displayDialogContainsValue, setDisplayDialogContainsValue] = useState<string>('');\n const [displayDialogDateFilter, setDisplayDialogDateFilter] = useState<string>('notequal');\n const [displayDialogDateValue, setDisplayDialogDateValue] = useState<string>('');\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 (\n filterObj.type === 'Date' ||\n filterObj.type === 'DateTime' ||\n filterObj.type === 'Time'\n ) {\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 setAnchorEl(null);\n }\n\n function _closeDialog() {\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 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 filterSortGroupBy() {\n // get original data set\n let theData = 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 setRows(theData);\n createSortHandler(sortColumnId);\n\n // grouping here\n\n // let reGroupData = this.addGroups(theData, this.groupByColumns$);\n\n // this.repeatList$.data = [];\n // this.repeatList$.data.push( ...reGroupData);\n\n // if (this.searchFilter && this.searchFilter != \"\") {\n // this.repeatList$.filter = this.searchFilter;\n // }\n // else {\n // this.perfFilter = performance.now().toString();\n // this.repeatList$.filter = this.perfFilter;\n // }\n // this.repeatList$.filter = \"\";\n\n // if (this.repeatList$.paginator) {\n // this.repeatList$.paginator.firstPage();\n // }\n }\n\n function _dialogContainsFilter(event) {\n // dialogContainsFilter = event.target.value;\n setDisplayDialogContainsFilter(event.target.value);\n }\n\n function _dialogContainsValue(event) {\n // dialogContainsValue = event.target.value;\n setDisplayDialogContainsValue(event.target.value);\n }\n\n function _dialogDateFilter(event) {\n // dialogDateFilter = event.target.value;\n setDisplayDialogDateFilter(event.target.value);\n }\n\n function _dialogDateValue(event) {\n setDisplayDialogDateValue(event.target.value);\n }\n\n function _submitFilter() {\n updateFilterWithInfo();\n filterSortGroupBy();\n\n setOpen(false);\n }\n\n function _showButton(name, row) {\n let bReturn = false;\n const { pxRefObjectClass, pzInsKey, pxRefObjectKey } = row;\n switch (name) {\n case 'pxTaskLabel':\n if (pxRefObjectClass !== '' && pzInsKey !== '') {\n bReturn = true;\n }\n break;\n\n case 'pxRefObjectInsName':\n if (pxRefObjectClass !== '' && pxRefObjectKey !== '') {\n bReturn = true;\n }\n break;\n\n default:\n break;\n }\n\n return bReturn;\n }\n\n function _listViewClick(name, row) {\n switch (name) {\n case 'pxTaskLabel':\n openAssignment(row);\n break;\n\n case 'pxRefObjectInsName':\n openWork(row);\n break;\n\n default:\n break;\n }\n }\n\n function _listTitle() {\n const defaultTitle = 'List';\n let title = resolvedConfigProps.title ? resolvedConfigProps.title : defaultTitle;\n const inheritedProps = resolvedConfigProps?.inheritedProps;\n\n // Let any title in resolvedConfigProps that isn't the default take precedence\n // but only look in inheritedProps if they exist\n if (title === defaultTitle && inheritedProps) {\n for (const inheritedProp of inheritedProps) {\n if (inheritedProp?.prop === 'label') {\n title = inheritedProp?.value;\n break;\n }\n }\n }\n\n return title;\n }\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n const reqObj = {};\n if (compositeKeys?.length > 1) {\n const index = response.findIndex(element => element[rowID] === value);\n const selectedRow = response[index];\n compositeKeys.forEach(element => {\n reqObj[element] = selectedRow[element]\n });\n } else {\n reqObj[rowID] = value;\n }\n getPConnect()\n ?.getListActions?.()\n ?.setSelectedRows([reqObj]);\n setSelectedValue(value);\n };\n\n const onCheckboxClick = event => {\n const value = event?.target?.value;\n const checked = event?.target?.checked;\n const reqObj = {};\n if (compositeKeys?.length > 1) {\n const index = response.findIndex(element => element[rowID] === value);\n const selectedRow = response[index];\n compositeKeys.forEach(element => {\n reqObj[element] = selectedRow[element]\n });\n reqObj['$selected'] = checked;\n } else {\n reqObj[rowID] = value;\n reqObj['$selected'] = checked;\n }\n getPConnect()\n ?.getListActions()\n ?.setSelectedRows([reqObj]);\n };\n\n return (\n <>\n {arColumns && arColumns.length > 0 && (\n <Paper className={classes.paper}>\n <Typography className={classes.title} variant='h6' color='textPrimary' gutterBottom>\n {_listTitle()}\n </Typography>\n {globalSearch && (\n <Grid container spacing={1} alignItems='flex-end' className={classes.search}>\n <Grid item>\n <SearchIcon />\n </Grid>\n <Grid item>\n <TextField\n label='Search'\n fullWidth\n variant='outlined'\n placeholder=''\n size='small'\n onChange={_onSearch}\n />\n </Grid>\n </Grid>\n )}\n <>\n {bInForm ? (\n <TableContainer className={classes.tableInForm}>\n <Table stickyHeader aria-label='sticky table'>\n <TableHead>\n <TableRow>\n {arColumns.map(column => {\n return (\n <TableCell\n className={classes.cell}\n key={column.id}\n sortDirection={orderBy === column.id ? order : false}\n >\n <TableSortLabel\n active={orderBy === column.id}\n direction={orderBy === column.id ? order : 'asc'}\n onClick={createSortHandler(column.id)}\n >\n {column.label}\n {_showFilteredIcon(column.id) && (\n <FilterListIcon className={classes.filteredIcon} />\n )}\n {orderBy === column.id ? (\n <span className={classes.visuallyHidden}>\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n </span>\n ) : null}\n </TableSortLabel>\n <MoreIcon\n className={classes.moreIcon}\n onClick={event => {\n _menuClick(event, column.id, column.type, column.label);\n }}\n />\n </TableCell>\n );\n })}\n </TableRow>\n </TableHead>\n <TableBody>\n {stableSort(arRows, getComparator(order, orderBy))\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n .map(row => {\n return (\n <TableRow\n key={row.pxRefObjectInsName || row.pyID}\n onClick={() => {\n _rowClick(row);\n }}\n >\n {arColumns.map(column => {\n const value = row[column.id];\n return (\n <TableCell\n key={column.id}\n align={column.align}\n className={classes.cell}\n >\n {_showButton(column.id, row) ? (\n <Link\n component='button'\n onClick={() => {\n _listViewClick(column.id, row);\n }}\n >\n {column.format && typeof value === 'number'\n ? column.format(value)\n : value}\n </Link>\n ) : (\n <>\n {column.format && typeof value === 'number'\n ? column.format(value)\n : value}\n </>\n )}\n </TableCell>\n );\n })}\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n </TableContainer>\n ) : (\n <TableContainer>\n <Table>\n <TableHead>\n <TableRow>\n {(selectionMode === SELECTION_MODE.SINGLE ||\n selectionMode === SELECTION_MODE.MULTI) && <TableCell></TableCell>}\n {arColumns.map(column => {\n return (\n <TableCell\n className={classes.cell}\n key={column.id}\n sortDirection={orderBy === column.id ? order : false}\n >\n <TableSortLabel\n active={orderBy === column.id}\n direction={orderBy === column.id ? order : 'asc'}\n onClick={createSortHandler(column.id)}\n >\n {column.label}\n {orderBy === column.id ? (\n <span className={classes.visuallyHidden}>\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n </span>\n ) : null}\n </TableSortLabel>\n </TableCell>\n );\n })}\n </TableRow>\n </TableHead>\n <TableBody>\n {arRows &&\n arRows.length > 0 &&\n stableSort(arRows, getComparator(order, orderBy))\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n .map(row => {\n return (\n <TableRow\n key={row[rowID]}\n onClick={() => {\n _rowClick(row);\n }}\n >\n {selectionMode === SELECTION_MODE.SINGLE && (\n <TableCell>\n <Radio\n onChange={handleChange}\n value={row[rowID]}\n name='radio-buttons'\n inputProps={{ 'aria-label': 'A' }}\n checked={selectedValue === row[rowID]}\n ></Radio>\n </TableCell>\n )}\n {selectionMode === SELECTION_MODE.MULTI && (\n <TableCell>\n <Checkbox\n onChange={onCheckboxClick}\n value={row[rowID]}\n ></Checkbox>\n </TableCell>\n )}\n {arColumns.map(column => {\n const value = row[column.id];\n return (\n <TableCell\n className={classes.cell}\n key={column.id}\n align={column.align}\n >\n {column.format && typeof value === 'number'\n ? column.format(value)\n : value}\n </TableCell>\n );\n })}\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n {arRows && arRows.length === 0 && (\n <div className='no-records'>No records found.</div>\n )}\n </TableContainer>\n )}\n </>\n {arRows && arRows.length > 0 && (\n <TablePagination\n rowsPerPageOptions={[10, 25, 100]}\n component='div'\n count={arRows.length}\n rowsPerPage={rowsPerPage}\n page={page}\n onPageChange={handleChangePage}\n onRowsPerPageChange={handleChangeRowsPerPage}\n />\n )}\n </Paper>\n )}\n <Menu\n id='simple-menu'\n anchorEl={anchorEl}\n keepMounted\n open={Boolean(anchorEl)}\n onClose={_menuClose}\n >\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='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\n fullWidth\n onChange={_dialogContainsFilter}\n value={displayDialogContainsFilter}\n >\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 <Snackbar\n open={showSnackbar}\n autoHideDuration={3000}\n onClose={handleSnackbarClose}\n message={snackbarMessage}\n action={\n <IconButton size='small' aria-label='close' color='inherit' onClick={handleSnackbarClose}>\n <CloseIcon fontSize='small' />\n </IconButton>\n }\n />\n </>\n );\n}\n\nListView.defaultProps = {\n // parameters: undefined\n};\n\nListView.propTypes = {\n getPConnect: PropTypes.func.isRequired\n // parameters: PropTypes.objectOf(PropTypes.any)\n};\n"]}
|
|
1
|
+
{"version":3,"file":"ListView.js","sourceRoot":"","sources":["../../../../src/components/template/ListView/ListView.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-plusplus */\n/* eslint-disable guard-for-in */\n/* eslint-disable @typescript-eslint/no-use-before-define */\nimport React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\nimport { Utils } from '../../helpers/utils';\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 TablePagination from '@material-ui/core/TablePagination';\nimport TableRow from '@material-ui/core/TableRow';\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\nimport Paper from '@material-ui/core/Paper';\nimport MoreIcon from '@material-ui/icons/MoreVert';\nimport FilterListIcon from '@material-ui/icons/FilterList';\nimport SubjectIcon from '@material-ui/icons/Subject';\nimport SearchIcon from '@material-ui/icons/Search';\nimport TextField from '@material-ui/core/TextField';\nimport Grid from '@material-ui/core/Grid';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\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 Link from '@material-ui/core/Link';\nimport Typography from '@material-ui/core/Typography';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { Radio } from '@material-ui/core';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { filterData } from '../../helpers/simpleTableHelpers';\nimport './ListView.css';\n\nconst SELECTION_MODE = { SINGLE: 'single', MULTI: 'multi' };\ndeclare const PCore: any;\n\nlet myRows: Array<any>;\nlet myDisplayColumnList: Array<any>;\n\nlet menuColumnId = '';\nlet menuColumnType = '';\nlet menuColumnLabel = '';\n\nlet sortColumnId: any;\n\n// let dialogContainsFilter: string = \"contains\";\n// let dialogContainsValue: string = \"\";\n// let dialogDateFilter: string = \"notequal\";\n// let dialogDateValue: string = \"\";\n\nconst filterByColumns: Array<any> = [];\n\nexport default function ListView(props) {\n const { getPConnect, bInForm } = props;\n const { globalSearch, presets, referenceList, rowClickAction, selectionMode, referenceType, payload, parameters, compositeKeys } = props;\n\n const thePConn = getPConnect();\n const componentConfig = thePConn.getComponentConfig();\n const resolvedConfigProps = thePConn.getConfigProps();\n\n /** By default, pyGUID is used for Data classes and pyID is for Work classes as row-id/key */\n const defRowID = referenceType === 'Case' ? 'pyID' : 'pyGUID';\n\n /** If compositeKeys is defined, use dynamic value, else fallback to pyID or pyGUID. */\n const rowID = compositeKeys && compositeKeys?.length === 1 ? compositeKeys[0] : defRowID;\n\n const [arRows, setRows] = useState<Array<any>>([]);\n const [arColumns, setColumns] = useState<Array<any>>([]);\n const [response, setResponse] = useState<Array<any>>([]);\n const [order, setOrder] = useState<Order>('asc');\n const [orderBy, setOrderBy] = useState<keyof any>('');\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [open, setOpen] = useState(false);\n\n const [showSnackbar, setShowSnackbar] = useState(false);\n const [snackbarMessage, setSnackbarMessage] = useState('');\n\n const [selectedValue, setSelectedValue] = useState('');\n\n // This basically will hold the list of all current filters\n const filters = useRef({});\n\n // Will contain the list of columns specific for an instance\n let columnList: any = useRef([]);\n let dashboardFilterPayload: any ;\n // Will be sent in the dashboardFilterPayload\n let selectParam: Array<any> = [];\n\n // dataview parameters coming from the ListPage\n // This constant will also be used for parameters coming from from other components/utility fnctions in future\n const dataViewParameters = parameters;\n\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n width: '100%'\n },\n paper: {\n width: '100%',\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2)\n },\n search: {\n padding: '5px 5px'\n },\n table: {\n minWidth: 750\n },\n tableInForm: {\n minWidth: 750,\n maxHeight: 550,\n overflow: 'auto'\n },\n moreIcon: {\n verticalAlign: 'bottom'\n },\n filteredIcon: {\n verticalAlign: 'bottom'\n },\n cell: {\n whiteSpace: 'nowrap'\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 title: {\n marginTop: theme.spacing(1),\n marginLeft: theme.spacing(1)\n }\n })\n );\n\n const classes = useStyles();\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 sortColumnId = property;\n handleRequestSort(event, property);\n };\n\n function descendingComparator<T>(a: T, b: T, orderedBy: keyof T) {\n if (b[orderedBy] < a[orderedBy]) {\n return -1;\n }\n if (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 // eslint-disable-next-line no-unused-vars\n ): (a: { [key in Key]: number | string }, b: { [key in Key]: number | string }) => number {\n return theOrder === 'desc'\n ? (a, b) => descendingComparator(a, b, orderedBy)\n : (a, b) => -descendingComparator(a, b, orderedBy);\n }\n\n // eslint-disable-next-line no-unused-vars\n function stableSort<T>(array: 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, no-shadow\n const order = comparator(a[0], b[0]);\n if (order !== 0) return order;\n return a[1] - b[1];\n });\n return stabilizedThis.map(el => el[0]);\n }\n\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(10);\n\n const handleChangePage = (event: unknown, newPage: number) => {\n setPage(newPage);\n };\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent<HTMLInputElement>) => {\n setRowsPerPage(+event.target.value);\n setPage(0);\n };\n\n // function getDisplayColumns(fields = []) {\n // let arReturn = fields.map(( field: any, colIndex) => {\n // let theField = field.config.value.substring(field.config.value.indexOf(\" \")+1);\n // if (theField.indexOf(\".\") == 0) {\n // theField = theField.substring(1);\n // }\n\n // return theField;\n // });\n // return arReturn;\n\n // }\n\n function getHeaderCells(colFields, fields) {\n const arReturn = colFields.map((field: any, colIndex) => {\n let theField = field.config.value.substring(field.config.value.indexOf(' ') + 1);\n if (theField.indexOf('.') === 0) {\n theField = theField.substring(1);\n }\n\n const headerRow: any = {};\n headerRow.id = theField;\n headerRow.type = field.type;\n headerRow.numeric =\n field.type === 'Decimal' ||\n field.type === 'Integer' ||\n field.type === 'Percentage' ||\n field.type === 'Currency' ||\n false;\n headerRow.disablePadding = false;\n headerRow.label = fields[colIndex].config.label;\n\n return headerRow;\n });\n return arReturn;\n }\n\n function updateFields(arFields, theColumns): Array<any> {\n const arReturn = arFields;\n arFields.forEach((field, index) => {\n arReturn[index].config.name = theColumns[index].id;\n });\n\n return arReturn;\n }\n\n function getUsingData(arTableData, theColumns): Array<any> {\n if (selectionMode === SELECTION_MODE.SINGLE || selectionMode === SELECTION_MODE.MULTI) {\n const record = arTableData?.length > 0 ? arTableData[0] : '';\n if (typeof record === 'object' && !('pyGUID' in record) && !('pyID' in record)) {\n // eslint-disable-next-line no-console\n console.error('pyGUID or pyID values are mandatory to select the required row from the list');\n }\n }\n const arReturn = arTableData?.map((data: any) => {\n const row: any = {};\n\n theColumns.forEach(col => {\n row[col.id] = data[col.id];\n });\n row[rowID] = data[rowID];\n // for (const field of theColumns) {\n // row[field.id] = data[field.id];\n // }\n\n // add in pxRefObjectClass and pzInsKey\n if (data['pxRefObjectClass']) {\n row['pxRefObjectClass'] = data['pxRefObjectClass'];\n }\n\n if (data['pzInsKey']) {\n row['pzInsKey'] = data['pzInsKey'];\n }\n\n return row;\n });\n\n return arReturn;\n }\n\n function updateData(listData: Array<any>, fieldData: Array<any>): Array<any> {\n const returnList: Array<any> = new Array<any>();\n listData?.forEach(row => {\n // copy\n const rowData = JSON.parse(JSON.stringify(row));\n\n fieldData.forEach(field => {\n const config = field.config;\n let fieldName;\n let formattedDate;\n let myFormat;\n\n switch (field.type) {\n case 'Date':\n fieldName = config.name;\n myFormat = config.formatter;\n if (!myFormat) {\n myFormat = 'Date';\n }\n formattedDate = Utils.generateDate(rowData[fieldName], myFormat);\n\n rowData[fieldName] = formattedDate;\n break;\n\n case 'DateTime':\n fieldName = config.name;\n myFormat = config.formatter;\n if (!myFormat) {\n myFormat = 'DateTime-Long';\n }\n formattedDate = Utils.generateDateTime(rowData[fieldName], myFormat);\n\n rowData[fieldName] = formattedDate;\n break;\n\n default:\n break;\n }\n });\n\n returnList.push(rowData);\n });\n\n return returnList;\n }\n\n function getMyColumnList(arCols: Array<any>): Array<string> {\n const myColList: Array<string> = [];\n\n arCols.forEach(col => {\n myColList.push(col.id);\n });\n\n // for (const col of arCols) {\n // myColList.push(col.id);\n // }\n\n return myColList;\n }\n\n /** Will return field from a filter expression */\n function getFieldFromFilter(filter, dateRange = false) {\n let fieldValue;\n if (dateRange) {\n fieldValue = filter?.AND[0]?.condition.lhs.field;\n } else {\n fieldValue = filter?.condition.lhs.field;\n }\n return fieldValue;\n }\n\n // Will be triggered when EVENT_DASHBOARD_FILTER_CHANGE fires\n function processFilterChange(data) {\n const { filterId, filterExpression } = data;\n dashboardFilterPayload = {\n query: {\n filter: {},\n select: []\n }\n };\n\n filters.current[filterId] = filterExpression;\n // eslint-disable-next-line no-unneeded-ternary\n let isDateRange = data.filterExpression?.AND ? true : false;\n // Will be AND by default but making it dynamic in case we support dynamic relational ops in future\n const relationalOp = 'AND';\n\n let field = getFieldFromFilter(filterExpression, isDateRange);\n selectParam = [];\n // Constructing the select parameters list( will be sent in dashboardFilterPayload)\n columnList.forEach(col => {\n selectParam.push({\n field: col\n });\n });\n\n // Checking if the triggered filter is applicable for this list\n if (data.filterExpression !== null && !(columnList.length && columnList.includes(field))) {\n return;\n }\n // This is a flag which will be used to reset dashboardFilterPayload in case we don't find any valid filters\n let validFilter = false;\n\n let index = 1;\n // Iterating over the current filters list to create filter data which will be POSTed\n for (const filterExp in filters.current) {\n const filter = filters.current[filterExp];\n // If the filter is null then we can skip this iteration\n if (filter === null) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n // Checking if the filter is of type- Date Range\n // eslint-disable-next-line no-unneeded-ternary\n isDateRange = filter?.AND ? true : false;\n field = getFieldFromFilter(filter, isDateRange);\n\n if (!(columnList.length && columnList.includes(field))) {\n // eslint-disable-next-line no-continue\n continue;\n }\n // If we reach here that implies we've at least one valid filter, hence setting the flag\n validFilter = true;\n /** Below are the 2 cases for- Text & Date-Range filter types where we'll construct filter data which will be sent in the dashboardFilterPayload\n * In Nebula, through Repeating Structures they might be using several APIs to do it, we're doing it here\n */\n if (isDateRange) {\n const dateRelationalOp = filter?.AND ? 'AND' : 'OR';\n dashboardFilterPayload.query.filter.filterConditions = {\n ...dashboardFilterPayload.query.filter.filterConditions,\n [`T${index++}`]: { ...filter[relationalOp][0].condition },\n [`T${index++}`]: { ...filter[relationalOp][1].condition }\n };\n if (dashboardFilterPayload.query.filter.logic) {\n dashboardFilterPayload.query.filter.logic = `${dashboardFilterPayload.query.filter.logic} ${relationalOp} (T${\n index - 2\n } ${dateRelationalOp} T${index - 1})`;\n } else {\n dashboardFilterPayload.query.filter.logic = `(T${index - 2} ${relationalOp} T${index - 1})`;\n }\n\n dashboardFilterPayload.query.select = selectParam;\n } else {\n dashboardFilterPayload.query.filter.filterConditions = {\n ...dashboardFilterPayload.query.filter.filterConditions,\n [`T${index++}`]: { ...filter.condition, ignoreCase: true }\n };\n\n if (dashboardFilterPayload.query.filter.logic) {\n dashboardFilterPayload.query.filter.logic = `${dashboardFilterPayload.query.filter.logic} ${relationalOp} T${\n index - 1\n }`;\n } else {\n dashboardFilterPayload.query.filter.logic = `T${index - 1}`;\n }\n\n dashboardFilterPayload.query.select = selectParam;\n }\n }\n\n // Reset the dashboardFilterPayload if we end up with no valid filters for the list\n if (!validFilter) {\n dashboardFilterPayload = undefined;\n }\n\n fetchDataFromServer();\n }\n\n // Will be triggered when EVENT_DASHBOARD_FILTER_CLEAR_ALL fires\n function processFilterClear() {\n dashboardFilterPayload = undefined;\n fetchDataFromServer();\n }\n\n useEffect(() => {\n setTimeout(() => {\n PCore.getPubSubUtils().subscribe(\n PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CHANGE,\n data => {\n processFilterChange(data);\n },\n `dashboard-component-${'id'}`,\n false,\n getPConnect().getContextName()\n );\n PCore.getPubSubUtils().subscribe(\n PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CLEAR_ALL,\n () => {\n filters.current = {};\n processFilterClear();\n },\n `dashboard-component-${'id'}`,\n false,\n getPConnect().getContextName()\n );\n }, 0);\n }, []);\n\n function fetchAllData() {\n const context = getPConnect().getContextName();\n return PCore.getDataPageUtils().getDataAsync(\n referenceList,\n context,\n payload ? payload.dataViewParameters : dataViewParameters,\n null,\n payload ? payload.query : dashboardFilterPayload && dashboardFilterPayload.query\n );\n }\n\n async function fetchDataFromServer() {\n let bCallSetRowsColumns = true;\n const workListJSON = await fetchAllData();\n\n // don't update these fields until we return from promise\n let fields = presets[0].children[0].children;\n\n // this is an unresovled version of this.fields$, need unresolved, so can get the property reference\n const columnFields = componentConfig.presets[0].children[0].children;\n\n const tableDataResults = workListJSON['data'];\n\n const myColumns = getHeaderCells(columnFields, fields);\n\n const selectParams: any = [];\n\n myColumns.forEach(column => {\n selectParams.push({\n field: column.id\n });\n });\n\n const colList: any = [];\n\n selectParams.forEach(col => {\n colList.push(col.field);\n });\n\n columnList = colList;\n\n fields = updateFields(fields, myColumns);\n\n setResponse(tableDataResults);\n\n const usingDataResults = getUsingData(tableDataResults, myColumns);\n\n // store globally, so can be searched, filtered, etc.\n myRows = updateData(usingDataResults, fields);\n myDisplayColumnList = getMyColumnList(myColumns);\n\n // At this point, if we have data ready to render and haven't been asked\n // to NOT call setRows and setColumns, call them\n if (bCallSetRowsColumns) {\n setRows(myRows);\n setColumns(myColumns);\n }\n\n return () => {\n // Inspired by https://juliangaramendy.dev/blog/use-promise-subscription\n // The useEffect closure lets us have access to the bCallSetRowsColumns\n // variable inside the useEffect and inside the \"then\" clause of the\n // workListData promise\n // So, if this cleanup code gets run before the promise .then is called,\n // we can avoid calling the useState setters which would otherwise show a warning\n bCallSetRowsColumns = false;\n };\n }\n\n useEffect(() => {\n fetchDataFromServer();\n }, []);\n\n function searchFilter(value: string, rows: Array<any>) {\n function filterArray(el: any): boolean {\n const bReturn = false;\n for (const key in el) {\n // only search columsn that are displayed (pzInsKey and pxRefObjectClass are added and may or may not be displayed)\n if (myDisplayColumnList.includes(key)) {\n let myVal = el[key];\n if (myVal !== null) {\n if (typeof myVal !== 'string') {\n myVal = myVal.toString();\n }\n if (myVal.toLowerCase().indexOf(value.toLowerCase()) >= 0) {\n return true;\n }\n }\n }\n }\n\n return bReturn;\n }\n\n rows = rows.filter(filterArray);\n\n return rows;\n }\n\n function _onSearch(event: any) {\n const searchValue = event.target.value;\n\n const filteredRows = searchFilter(searchValue, myRows.slice());\n\n setRows(filteredRows);\n }\n\n function showToast(message: string) {\n const theMessage = `Assignment: ${message}`;\n // eslint-disable-next-line no-console\n console.error(theMessage);\n setSnackbarMessage(message);\n setShowSnackbar(true);\n }\n\n function openAssignment(row) {\n const { pxRefObjectClass, pzInsKey } = row;\n const sTarget = thePConn.getContainerName();\n\n const options = { containerName: sTarget };\n\n thePConn\n .getActionsApi()\n .openAssignment(pzInsKey, pxRefObjectClass, options)\n .then(() => {\n // console.log(\"openAssignment successful\");\n })\n .catch(() => {\n showToast(`openAssignment failed!`);\n });\n }\n\n function _rowClick(row: any) {\n // eslint-disable-next-line sonarjs/no-small-switch\n switch (rowClickAction) {\n case 'openAssignment':\n openAssignment(row);\n break;\n\n default:\n break;\n }\n }\n\n function openWork(row) {\n const { pxRefObjectClass, pxRefObjectKey } = row;\n\n if (pxRefObjectClass !== '' && pxRefObjectKey !== '') {\n thePConn.getActionsApi().openWorkByHandle(pxRefObjectKey, pxRefObjectClass);\n }\n }\n\n function handleSnackbarClose(event: React.SyntheticEvent | React.MouseEvent, reason?: string) {\n if (reason === 'clickaway') {\n return;\n }\n setShowSnackbar(false);\n }\n\n function _menuClick(event, columnId: string, columnType: string, label: string) {\n menuColumnId = columnId;\n menuColumnType = columnType;\n menuColumnLabel = label;\n\n setAnchorEl(event.currentTarget);\n }\n\n function _menuClose() {\n setAnchorEl(null);\n }\n\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, no-unused-vars\n const [displayDialogFilterName, setDisplayDialogFilterName] = useState<string>('');\n const [displayDialogContainsFilter, setDisplayDialogContainsFilter] =\n useState<string>('contains');\n const [displayDialogContainsValue, setDisplayDialogContainsValue] = useState<string>('');\n const [displayDialogDateFilter, setDisplayDialogDateFilter] = useState<string>('notequal');\n const [displayDialogDateValue, setDisplayDialogDateValue] = useState<string>('');\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 (\n filterObj.type === 'Date' ||\n filterObj.type === 'DateTime' ||\n filterObj.type === 'Time'\n ) {\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 setAnchorEl(null);\n }\n\n function _closeDialog() {\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 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 filterSortGroupBy() {\n // get original data set\n let theData = 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 setRows(theData);\n createSortHandler(sortColumnId);\n\n // grouping here\n\n // let reGroupData = this.addGroups(theData, this.groupByColumns$);\n\n // this.repeatList$.data = [];\n // this.repeatList$.data.push( ...reGroupData);\n\n // if (this.searchFilter && this.searchFilter != \"\") {\n // this.repeatList$.filter = this.searchFilter;\n // }\n // else {\n // this.perfFilter = performance.now().toString();\n // this.repeatList$.filter = this.perfFilter;\n // }\n // this.repeatList$.filter = \"\";\n\n // if (this.repeatList$.paginator) {\n // this.repeatList$.paginator.firstPage();\n // }\n }\n\n function _dialogContainsFilter(event) {\n // dialogContainsFilter = event.target.value;\n setDisplayDialogContainsFilter(event.target.value);\n }\n\n function _dialogContainsValue(event) {\n // dialogContainsValue = event.target.value;\n setDisplayDialogContainsValue(event.target.value);\n }\n\n function _dialogDateFilter(event) {\n // dialogDateFilter = event.target.value;\n setDisplayDialogDateFilter(event.target.value);\n }\n\n function _dialogDateValue(event) {\n setDisplayDialogDateValue(event.target.value);\n }\n\n function _submitFilter() {\n updateFilterWithInfo();\n filterSortGroupBy();\n\n setOpen(false);\n }\n\n function _showButton(name, row) {\n let bReturn = false;\n const { pxRefObjectClass, pzInsKey, pxRefObjectKey } = row;\n switch (name) {\n case 'pxTaskLabel':\n if (pxRefObjectClass !== '' && pzInsKey !== '') {\n bReturn = true;\n }\n break;\n\n case 'pxRefObjectInsName':\n if (pxRefObjectClass !== '' && pxRefObjectKey !== '') {\n bReturn = true;\n }\n break;\n\n default:\n break;\n }\n\n return bReturn;\n }\n\n function _listViewClick(name, row) {\n switch (name) {\n case 'pxTaskLabel':\n openAssignment(row);\n break;\n\n case 'pxRefObjectInsName':\n openWork(row);\n break;\n\n default:\n break;\n }\n }\n\n function _listTitle() {\n const defaultTitle = 'List';\n let title = resolvedConfigProps.title ? resolvedConfigProps.title : defaultTitle;\n const inheritedProps = resolvedConfigProps?.inheritedProps;\n\n // Let any title in resolvedConfigProps that isn't the default take precedence\n // but only look in inheritedProps if they exist\n if (title === defaultTitle && inheritedProps) {\n for (const inheritedProp of inheritedProps) {\n if (inheritedProp?.prop === 'label') {\n title = inheritedProp?.value;\n break;\n }\n }\n }\n\n return title;\n }\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n const reqObj = {};\n if (compositeKeys?.length > 1) {\n const index = response.findIndex(element => element[rowID] === value);\n const selectedRow = response[index];\n compositeKeys.forEach(element => {\n reqObj[element] = selectedRow[element]\n });\n } else {\n reqObj[rowID] = value;\n }\n getPConnect()\n ?.getListActions?.()\n ?.setSelectedRows([reqObj]);\n setSelectedValue(value);\n };\n\n const onCheckboxClick = event => {\n const value = event?.target?.value;\n const checked = event?.target?.checked;\n const reqObj = {};\n if (compositeKeys?.length > 1) {\n const index = response.findIndex(element => element[rowID] === value);\n const selectedRow = response[index];\n compositeKeys.forEach(element => {\n reqObj[element] = selectedRow[element]\n });\n reqObj['$selected'] = checked;\n } else {\n reqObj[rowID] = value;\n reqObj['$selected'] = checked;\n }\n getPConnect()\n ?.getListActions()\n ?.setSelectedRows([reqObj]);\n };\n\n return (\n <>\n {arColumns && arColumns.length > 0 && (\n <Paper className={classes.paper}>\n <Typography className={classes.title} variant='h6' color='textPrimary' gutterBottom>\n {_listTitle()}\n </Typography>\n {globalSearch && (\n <Grid container spacing={1} alignItems='flex-end' className={classes.search}>\n <Grid item>\n <SearchIcon />\n </Grid>\n <Grid item>\n <TextField\n label='Search'\n fullWidth\n variant='outlined'\n placeholder=''\n size='small'\n onChange={_onSearch}\n />\n </Grid>\n </Grid>\n )}\n <>\n {bInForm ? (\n <TableContainer className={classes.tableInForm}>\n <Table stickyHeader aria-label='sticky table'>\n <TableHead>\n <TableRow>\n {arColumns.map(column => {\n return (\n <TableCell\n className={classes.cell}\n key={column.id}\n sortDirection={orderBy === column.id ? order : false}\n >\n <TableSortLabel\n active={orderBy === column.id}\n direction={orderBy === column.id ? order : 'asc'}\n onClick={createSortHandler(column.id)}\n >\n {column.label}\n {_showFilteredIcon(column.id) && (\n <FilterListIcon className={classes.filteredIcon} />\n )}\n {orderBy === column.id ? (\n <span className={classes.visuallyHidden}>\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n </span>\n ) : null}\n </TableSortLabel>\n <MoreIcon\n className={classes.moreIcon}\n onClick={event => {\n _menuClick(event, column.id, column.type, column.label);\n }}\n />\n </TableCell>\n );\n })}\n </TableRow>\n </TableHead>\n <TableBody>\n {stableSort(arRows, getComparator(order, orderBy))\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n .map(row => {\n return (\n <TableRow\n key={row.pxRefObjectInsName || row.pyID}\n onClick={() => {\n _rowClick(row);\n }}\n >\n {arColumns.map(column => {\n const value = row[column.id];\n return (\n <TableCell\n key={column.id}\n align={column.align}\n className={classes.cell}\n >\n {_showButton(column.id, row) ? (\n <Link\n component='button'\n onClick={() => {\n _listViewClick(column.id, row);\n }}\n >\n {column.format && typeof value === 'number'\n ? column.format(value)\n : value}\n </Link>\n ) : (\n <>\n {column.format && typeof value === 'number'\n ? column.format(value)\n : value}\n </>\n )}\n </TableCell>\n );\n })}\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n </TableContainer>\n ) : (\n <TableContainer>\n <Table>\n <TableHead>\n <TableRow>\n {(selectionMode === SELECTION_MODE.SINGLE ||\n selectionMode === SELECTION_MODE.MULTI) && <TableCell></TableCell>}\n {arColumns.map(column => {\n return (\n <TableCell\n className={classes.cell}\n key={column.id}\n sortDirection={orderBy === column.id ? order : false}\n >\n <TableSortLabel\n active={orderBy === column.id}\n direction={orderBy === column.id ? order : 'asc'}\n onClick={createSortHandler(column.id)}\n >\n {column.label}\n {orderBy === column.id ? (\n <span className={classes.visuallyHidden}>\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n </span>\n ) : null}\n </TableSortLabel>\n </TableCell>\n );\n })}\n </TableRow>\n </TableHead>\n <TableBody>\n {arRows &&\n arRows.length > 0 &&\n stableSort(arRows, getComparator(order, orderBy))\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n .map(row => {\n return (\n <TableRow\n key={row[rowID]}\n onClick={() => {\n _rowClick(row);\n }}\n >\n {selectionMode === SELECTION_MODE.SINGLE && (\n <TableCell>\n <Radio\n onChange={handleChange}\n value={row[rowID]}\n name='radio-buttons'\n inputProps={{ 'aria-label': 'A' }}\n checked={selectedValue === row[rowID]}\n ></Radio>\n </TableCell>\n )}\n {selectionMode === SELECTION_MODE.MULTI && (\n <TableCell>\n <Checkbox\n onChange={onCheckboxClick}\n value={row[rowID]}\n ></Checkbox>\n </TableCell>\n )}\n {arColumns.map(column => {\n const value = row[column.id];\n return (\n <TableCell\n className={classes.cell}\n key={column.id}\n align={column.align}\n >\n {column.format && typeof value === 'number'\n ? column.format(value)\n : value}\n </TableCell>\n );\n })}\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n {arRows && arRows.length === 0 && (\n <div className='no-records'>No records found.</div>\n )}\n </TableContainer>\n )}\n </>\n {arRows && arRows.length > 0 && (\n <TablePagination\n rowsPerPageOptions={[10, 25, 100]}\n component='div'\n count={arRows.length}\n rowsPerPage={rowsPerPage}\n page={page}\n onPageChange={handleChangePage}\n onRowsPerPageChange={handleChangeRowsPerPage}\n />\n )}\n </Paper>\n )}\n <Menu\n id='simple-menu'\n anchorEl={anchorEl}\n keepMounted\n open={Boolean(anchorEl)}\n onClose={_menuClose}\n >\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='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\n fullWidth\n onChange={_dialogContainsFilter}\n value={displayDialogContainsFilter}\n >\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 <Snackbar\n open={showSnackbar}\n autoHideDuration={3000}\n onClose={handleSnackbarClose}\n message={snackbarMessage}\n action={\n <IconButton size='small' aria-label='close' color='inherit' onClick={handleSnackbarClose}>\n <CloseIcon fontSize='small' />\n </IconButton>\n }\n />\n </>\n );\n}\n\nListView.defaultProps = {\n // parameters: undefined\n};\n\nListView.propTypes = {\n getPConnect: PropTypes.func.isRequired\n // parameters: PropTypes.objectOf(PropTypes.any)\n};\n"]}
|
|
@@ -8,7 +8,7 @@ import TableHead from '@material-ui/core/TableHead';
|
|
|
8
8
|
import TableRow from '@material-ui/core/TableRow';
|
|
9
9
|
import Paper from '@material-ui/core/Paper';
|
|
10
10
|
import { makeStyles } from '@material-ui/core/styles';
|
|
11
|
-
import { buildFieldsForTable, filterData } from '
|
|
11
|
+
import { buildFieldsForTable, filterData } from '../../../helpers/simpleTableHelpers';
|
|
12
12
|
import { getDataPage } from '../../../helpers/data_page';
|
|
13
13
|
import Link from '@material-ui/core/Link';
|
|
14
14
|
import { getReferenceList } from '../../../helpers/field-group-utils';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleTableManual.js","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-nested-ternary */\nimport React, { useEffect, 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 { buildFieldsForTable, filterData } from '../simpleTableHelpers';\nimport { getDataPage } from '../../../helpers/data_page';\nimport Link from '@material-ui/core/Link';\nimport { getReferenceList } from '../../../helpers/field-group-utils';\nimport { Utils } from '../../../helpers/utils';\nimport { createElement } from 'react';\n\nimport createPConnectComponent from '../../../../bridge/react_pconnect';\n\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\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\ndeclare const PCore: any;\n\nlet menuColumnId = '';\nlet menuColumnType = '';\nlet menuColumnLabel = '';\n\nconst filterByColumns: Array<any> = [];\nlet myRows: Array<any>;\nexport default function SimpleTableManual(props) {\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 } = 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 [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, no-unused-vars\n const [displayDialogFilterName, setDisplayDialogFilterName] = useState<string>('');\n const [displayDialogContainsFilter, setDisplayDialogContainsFilter] =\n useState<string>('contains');\n const [displayDialogContainsValue, setDisplayDialogContainsValue] = useState<string>('');\n const [displayDialogDateFilter, setDisplayDialogDateFilter] = useState<string>('notequal');\n const [displayDialogDateValue, setDisplayDialogDateValue] = useState<string>('');\n\n const parameters = fieldMetadata?.datasource?.parameters;\n\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 const pageReference = `${pConn.getPageReference()}${resolvedList}`;\n pConn.setReferenceList(resolvedList);\n const menuIconOverride$ = Utils.getImageSrc('trash', PCore.getAssetLoader().getStaticServerUrl());\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 = 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 =\n rawConfig?.children?.[0]?.children || rawConfig?.presets?.[0].children?.[0]?.children;\n\n const readOnlyMode = renderMode === 'ReadOnly';\n const editableMode = renderMode === 'Editable';\n const showAddRowButton = !readOnlyMode && !hideAddRow;\n const showDeleteButton = !readOnlyMode && !hideDeleteRow;\n useEffect(() => {\n if (editableMode) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n buildElementsForTable();\n } else {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n generateRowsData();\n }\n }, [referenceList.length]);\n\n // Nebula has other handling for isReadOnlyMode but has Cosmos-specific code\n // so ignoring that for now...\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 // Nebula does). 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 // Nebula and we may not end up using it all.\n const fieldDefs = buildFieldsForTable(rawFields, resolvedFields, showDeleteButton);\n\n const displayedColumns = fieldDefs.map(field => {\n return field.name ? field.name : field.cellRenderer;\n });\n\n // console.log(`SimpleTable displayedColumns:`);\n // console.log(displayedColumns);\n\n // And now we can process the resolvedFields to add in the \"name\"\n // from from the fieldDefs. This \"name\" is the value that\n // we'll share to connect things together in the table.\n\n // const processedFields = resolvedFields.map((field, i) => {\n // field.config['name'] = displayedColumns[i]; // .config[\"value\"].replace(/ ./g,\"_\"); // replace space dot with underscore\n // return field;\n // });\n\n // console.log(\"SimpleTable processedFields:\");\n // console.log(processedFields);\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: Array<string> = inColKey.split('.');\n let valBuilder = inRowData;\n for (const key of refKeys) {\n valBuilder = valBuilder[key];\n }\n return valBuilder;\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 dataPageName property value exists then make a datapage fetch call and get the list of data.\n if (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 // 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 // processedFields: key/value pairs where each key is order of column\n // and each value is an object of more detailed information about that\n // column.\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 // Note that the \"property\" shown in the column (\"FirstName\" in the above examples) is what\n // ties the 3 data structures together.\n\n // console.log(\"SimpleTable displayedColumns:\");\n // console.log(displayedColumns);\n // console.log(\"SimpleTable processedFields:\");\n // console.log(processedFields);\n // console.log(`SimpleTable rowData (${rowData.length} row(s)):`);\n // console.log(JSON.stringify(rowData));\n\n const addRecord = () => {\n if (PCore.getPCoreVersion()?.includes('8.7')) {\n pConn.getListActions().insert({ classID: contextClass }, referenceList.length, pageReference);\n } else {\n pConn.getListActions().insert({ classID: contextClass }, referenceList.length);\n }\n };\n\n const deleteRecord = index => {\n if (PCore.getPCoreVersion()?.includes('8.7')) {\n pConn.getListActions().deleteEntry(index, pageReference);\n } else {\n pConn.getListActions().deleteEntry(index);\n }\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(\n referenceListData.lastIndexOf('.')\n )}[${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] < a[orderedBy]) {\n return -1;\n }\n if (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 // eslint-disable-next-line no-unused-vars\n ): (a: { [key in Key]: number | string }, b: { [key in Key]: number | string }) => number {\n return theOrder === 'desc'\n ? (a, b) => descendingComparator(a, b, orderedBy)\n : (a, b) => -descendingComparator(a, b, orderedBy);\n }\n\n // eslint-disable-next-line no-unused-vars\n function stableSort<T>(array: 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, 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 _menuClose() {\n setAnchorEl(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 (\n filterObj.type === 'Date' ||\n filterObj.type === 'DateTime' ||\n filterObj.type === 'Time'\n ) {\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 <React.Fragment>\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) && (\n <FilterListIcon className={classes.moreIcon} />\n )}\n {orderBy === displayedColumns[index] ? (\n <span className={classes.visuallyHidden}>\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n </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 onClick={() => deleteRecord(index)}\n >\n <img\n className='psdk-utility-card-action-svg-icon'\n src={menuIconOverride$}\n ></img>\n </button>\n </TableCell>\n )}\n </TableRow>\n );\n })}\n {readOnlyMode &&\n rowData &&\n rowData.length > 0 &&\n stableSort(rowData, getComparator(order, orderBy))\n .slice(0)\n .map(row => {\n return (\n <TableRow key={row[displayedColumns[0]]}>\n {displayedColumns.map(colKey => {\n return (\n <TableCell key={colKey} className={classes.tableCell}>\n {typeof row[colKey] === 'boolean' && !row[colKey]\n ? 'False'\n : typeof row[colKey] === 'boolean' && row[colKey]\n ? 'True'\n : row[colKey]}\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\n id='simple-menu'\n anchorEl={anchorEl}\n keepMounted\n open={Boolean(anchorEl)}\n onClose={_menuClose}\n >\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\n id='filter'\n fullWidth\n onChange={_dialogContainsFilter}\n value={displayDialogContainsFilter}\n >\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 </React.Fragment>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SimpleTableManual.js","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,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,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,IAAI,MAAM,wBAAwB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,uBAAuB,MAAM,mCAAmC,CAAC;AAExE,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,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;AAIJ,IAAI,YAAY,GAAG,EAAE,CAAC;AACtB,IAAI,cAAc,GAAG,EAAE,CAAC;AACxB,IAAI,eAAe,GAAG,EAAE,CAAC;AAEzB,MAAM,eAAe,GAAe,EAAE,CAAC;AACvC,IAAI,MAAkB,CAAC;AACvB,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAK;IAC7C,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,EACd,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,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,6EAA6E;IAC7E,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IACnF,MAAM,CAAC,2BAA2B,EAAE,8BAA8B,CAAC,GACjE,QAAQ,CAAS,UAAU,CAAC,CAAC;IAC/B,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;IAEjF,MAAM,UAAU,GAAG,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC;IAEzD,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,MAAM,aAAa,GAAG,GAAG,KAAK,CAAC,gBAAgB,EAAE,GAAG,YAAY,EAAE,CAAC;IACnE,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACrC,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAElG,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,GAAG,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;IAEnD,uGAAuG;IACvG,0DAA0D;IAC1D,mFAAmF;IACnF,iDAAiD;IACjD,4DAA4D;IAC5D,iDAAiD;IAEjD,MAAM,SAAS,GAAG,WAAW,EAAE,MAAM,CAAC;IACtC,MAAM,SAAS,GACb,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;IAExF,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,gBAAgB,GAAG,CAAC,YAAY,IAAI,CAAC,aAAa,CAAC;IACzD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,EAAE;YAChB,mEAAmE;YACnE,qBAAqB,EAAE,CAAC;SACzB;aAAM;YACL,mEAAmE;YACnE,gBAAgB,EAAE,CAAC;SACpB;IACH,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3B,4EAA4E;IAC5E,+BAA+B;IAC/B,mFAAmF;IACnF,kFAAkF;IAClF,kFAAkF;IAClF,kFAAkF;IAClF,8EAA8E;IAC9E,8CAA8C;IAC9C,MAAM,SAAS,GAAG,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAEnF,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,gDAAgD;IAChD,iCAAiC;IAEjC,iEAAiE;IACjE,0DAA0D;IAC1D,wDAAwD;IAExD,6DAA6D;IAC7D,+HAA+H;IAC/H,kBAAkB;IAClB,MAAM;IAEN,+CAA+C;IAC/C,gCAAgC;IAEhC,+EAA+E;IAC/E,0BAA0B;IAC1B,SAAS,WAAW,CAAC,SAAiB,EAAE,QAAgB;QACtD,4CAA4C;QAC5C,MAAM,OAAO,GAAkB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,UAAU,GAAG,SAAS,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;YACzB,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9B;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE;QAC5B,IAAG,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAEpB,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,kGAAkG;QAClG,IAAI,YAAY,EAAE;YAChB,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,8DAA8D;IAC9D,wDAAwD;IACxD,sEAAsE;IACtE,oEAAoE;IACpE,sEAAsE;IACtE,yEAAyE;IACzE,aAAa;IACb,kEAAkE;IAClE,0EAA0E;IAC1E,sGAAsG;IACtG,0GAA0G;IAC1G,EAAE;IACF,4FAA4F;IAC5F,wCAAwC;IAExC,gDAAgD;IAChD,iCAAiC;IACjC,+CAA+C;IAC/C,gCAAgC;IAChC,kEAAkE;IAClE,wCAAwC;IAExC,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,IAAI,KAAK,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC5C,KAAK,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;SAC/F;aAAM;YACL,KAAK,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;SAChF;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,EAAE;QAC3B,IAAI,KAAK,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC5C,KAAK,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;SAC1D;aAAM;YACL,KAAK,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC3C;IACH,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,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,EAAC,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAC,EAAC,CAAC;gBACtD,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,CACvD,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CACnC,IAAI,KAAK,GAAG,CAAC;gBAClB,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,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE;YAC/B,OAAO,CAAC,CAAC,CAAC;SACX;QACD,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE;YAC/B,OAAO,CAAC,CAAC;SACV;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAID,SAAS,aAAa,CACpB,QAAe,EACf,SAAc;IACd,0CAA0C;;QAE1C,OAAO,QAAQ,KAAK,MAAM;YACxB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;YACjD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,0CAA0C;IAC1C,SAAS,UAAU,CAAI,KAAe,EAAE,UAAkC;QACxE,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,mEAAmE;YACnE,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,UAAU;QACjB,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,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,IACE,SAAS,CAAC,IAAI,KAAK,MAAM;oBACzB,SAAS,CAAC,IAAI,KAAK,UAAU;oBAC7B,SAAS,CAAC,IAAI,KAAK,MAAM,EACzB;oBACA,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,KAAK,CAAC,KAAK,YAAY,EAAE;gBACrC,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;gBAC/B,IAAI,kBAAkB,EAAE;oBACtB,SAAS,CAAC,gBAAgB,CAAC,GAAG,uBAAuB,CAAC;oBACtD,SAAS,CAAC,qBAAqB,CAAC,GAAG,sBAAsB,CAAC;iBAC3D;qBAAM;oBACL,SAAS,CAAC,gBAAgB,CAAC,GAAG,2BAA2B,CAAC;oBAC1D,SAAS,CAAC,qBAAqB,CAAC,GAAG,0BAA0B,CAAC;iBAC/D;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,MAAM,CAAC,GAAG,UAAU,CAAC;YAC/B,IAAI,kBAAkB,EAAE;gBACtB,SAAS,CAAC,gBAAgB,CAAC,GAAG,uBAAuB,CAAC;gBACtD,SAAS,CAAC,qBAAqB,CAAC,GAAG,sBAAsB,CAAC;aAC3D;iBAAM;gBACL,SAAS,CAAC,gBAAgB,CAAC,GAAG,2BAA2B,CAAC;gBAC1D,SAAS,CAAC,qBAAqB,CAAC,GAAG,0BAA0B,CAAC;aAC/D;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,KAAK,CAAC,KAAK,QAAQ,EAAE;gBACjC,gEAAgE;gBAChE,IAAI,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,EAAE;oBAC3C,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,8BAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;YAC/C,GAAG;;YAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC1B,CACR,CAAC,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ;QACb,oBAAC,cAAc,IAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,EAAC,qBAAqB;YACrF,UAAU,CAAC,KAAK,IAAI,CACnB,4BAAI,SAAS,EAAE,OAAO,CAAC,KAAK;gBACzB,UAAU,CAAC,KAAK;;gBAAG,OAAO,EAAE,CAC1B,CACN;YACD,oBAAC,KAAK;gBACJ,oBAAC,SAAS,IAAC,SAAS,EAAE,OAAO,CAAC,MAAM;oBAClC,oBAAC,QAAQ,QACN,SAAS,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,KAAK,EAAE,EAAE;wBACnC,OAAO,CACL,oBAAC,SAAS,IAAC,GAAG,EAAE,QAAQ,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,IAC5E,YAAY,CAAC,CAAC,CAAC,CACd;4BACE,oBAAC,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;gCAElD,KAAK,CAAC,KAAK;gCACX,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAChC,oBAAC,cAAc,IAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,GAAI,CAChD;gCACA,OAAO,KAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACrC,8BAAM,SAAS,EAAE,OAAO,CAAC,cAAc,IACpC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CACvD,CACR,CAAC,CAAC,CAAC,IAAI,CACO;4BACjB,oBAAC,QAAQ,IACP,EAAE,EAAC,WAAW,EACd,SAAS,EAAE,OAAO,CAAC,QAAQ,EAC3B,OAAO,EAAE,KAAK,CAAC,EAAE;oCACf,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gCAC9D,CAAC,GACD,CACE,CACP,CAAC,CAAC,CAAC,CACF,KAAK,CAAC,KAAK,CACZ,CACS,CACb,CAAC;oBACJ,CAAC,CAAC,CACO,CACD;gBACZ,oBAAC,SAAS;oBACP,YAAY;wBACX,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,KAAK,EAAE,EAAE;4BAC/B,MAAM,MAAM,GAAG,OAAO,KAAK,EAAE,CAAC;4BAC9B,OAAO,CACL,oBAAC,QAAQ,IAAC,GAAG,EAAE,MAAM;gCAClB,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;oCAC5B,MAAM,SAAS,GAAG,QAAQ,KAAK,IAAI,UAAU,EAAE,CAAC;oCAChD,OAAO,CACL,oBAAC,SAAS,IAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,IACpD,IAAI,CACK,CACb,CAAC;gCACJ,CAAC,CAAC;gCACD,gBAAgB,IAAI,CACnB,oBAAC,SAAS;oCACR,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qBAAqB,EAC/B,EAAE,EAAC,eAAe,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;wCAElC,6BACE,SAAS,EAAC,mCAAmC,EAC7C,GAAG,EAAE,iBAAiB,GACjB,CACA,CACC,CACb,CACQ,CACZ,CAAC;wBACJ,CAAC,CAAC;oBACH,YAAY;wBACX,OAAO;wBACP,OAAO,CAAC,MAAM,GAAG,CAAC;wBAClB,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;6BAC/C,KAAK,CAAC,CAAC,CAAC;6BACR,GAAG,CAAC,GAAG,CAAC,EAAE;4BACT,OAAO,CACL,oBAAC,QAAQ,IAAC,GAAG,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IACpC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gCAC7B,OAAO,CACL,oBAAC,SAAS,IAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,IACjD,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;oCAC/C,CAAC,CAAC,OAAO;oCACT,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC;wCACjD,CAAC,CAAC,MAAM;wCACR,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CACL,CACb,CAAC;4BACJ,CAAC,CAAC,CACO,CACZ,CAAC;wBACJ,CAAC,CAAC,CACI,CACN;YACP,YAAY,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAClD,6BAAK,SAAS,EAAC,YAAY,EAAC,EAAE,EAAC,YAAY,wBAErC,CACP;YACA,YAAY,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,CAC9D,6BAAK,SAAS,EAAC,YAAY,EAAC,EAAE,EAAC,YAAY,wBAErC,CACP,CACc;QAChB,gBAAgB,IAAI,CACnB,6BAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;YAC9B,oBAAC,IAAI,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,YAE/C,CACH,CACP;QACD,oBAAC,IAAI,IACH,EAAE,EAAC,aAAa,EAChB,QAAQ,EAAE,QAAQ,EAClB,WAAW,QACX,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EACvB,OAAO,EAAE,UAAU;YAEnB,oBAAC,QAAQ,IAAC,OAAO,EAAE,WAAW;gBAC5B,oBAAC,cAAc,OAAG;0BACT;YACX,oBAAC,QAAQ,IAAC,OAAO,EAAE,UAAU;gBAC3B,oBAAC,WAAW,OAAG;yBACN,CACN;QACP,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,qBAAkB,mBAAmB;YAC5E,oBAAC,WAAW,IAAC,EAAE,EAAC,mBAAmB;;gBAAU,QAAQ,CAAe;YACpE,oBAAC,aAAa,QACX,kBAAkB,CAAC,CAAC,CAAC,CACpB;gBACE,oBAAC,MAAM,IAAC,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS;oBAC5E,oBAAC,QAAQ,IAAC,KAAK,EAAC,UAAU,sBAA2B;oBACrD,oBAAC,QAAQ,IAAC,KAAK,EAAC,OAAO,kBAAuB;oBAC9C,oBAAC,QAAQ,IAAC,KAAK,EAAC,OAAO,YAAiB;oBACxC,oBAAC,QAAQ,IAAC,KAAK,EAAC,QAAQ,aAAkB;oBAC1C,oBAAC,QAAQ,IAAC,KAAK,EAAC,MAAM,cAAmB;oBACzC,oBAAC,QAAQ,IAAC,KAAK,EAAC,SAAS,kBAAuB,CACzC;gBACR,UAAU,KAAK,MAAM,IAAI,CACxB,oBAAC,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;gBACA,UAAU,KAAK,UAAU,IAAI,CAC5B,oBAAC,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;gBACA,UAAU,KAAK,MAAM,IAAI,CACxB,oBAAC,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,CACA,CACJ,CAAC,CAAC,CAAC,CACF;gBACE,oBAAC,MAAM,IACL,EAAE,EAAC,QAAQ,EACX,SAAS,QACT,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,2BAA2B;oBAElC,oBAAC,QAAQ,IAAC,KAAK,EAAC,UAAU,eAAoB;oBAC9C,oBAAC,QAAQ,IAAC,KAAK,EAAC,QAAQ,aAAkB;oBAC1C,oBAAC,QAAQ,IAAC,KAAK,EAAC,YAAY,kBAAuB,CAC5C;gBACT,oBAAC,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,CACD,CACJ,CACa;YAChB,oBAAC,aAAa;gBACZ,oBAAC,MAAM,IAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAC,WAAW,aAEvC;gBACT,oBAAC,MAAM,IAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAC,SAAS,aAEtC,CACK,CACT,CACM,CAClB,CAAC;AACJ,CAAC","sourcesContent":["/* eslint-disable no-nested-ternary */\nimport React, { useEffect, 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 { buildFieldsForTable, filterData } from '../../../helpers/simpleTableHelpers';\nimport { getDataPage } from '../../../helpers/data_page';\nimport Link from '@material-ui/core/Link';\nimport { getReferenceList } from '../../../helpers/field-group-utils';\nimport { Utils } from '../../../helpers/utils';\nimport { createElement } from 'react';\n\nimport createPConnectComponent from '../../../../bridge/react_pconnect';\n\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\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\ndeclare const PCore: any;\n\nlet menuColumnId = '';\nlet menuColumnType = '';\nlet menuColumnLabel = '';\n\nconst filterByColumns: Array<any> = [];\nlet myRows: Array<any>;\nexport default function SimpleTableManual(props) {\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 } = 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 [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, no-unused-vars\n const [displayDialogFilterName, setDisplayDialogFilterName] = useState<string>('');\n const [displayDialogContainsFilter, setDisplayDialogContainsFilter] =\n useState<string>('contains');\n const [displayDialogContainsValue, setDisplayDialogContainsValue] = useState<string>('');\n const [displayDialogDateFilter, setDisplayDialogDateFilter] = useState<string>('notequal');\n const [displayDialogDateValue, setDisplayDialogDateValue] = useState<string>('');\n\n const parameters = fieldMetadata?.datasource?.parameters;\n\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 const pageReference = `${pConn.getPageReference()}${resolvedList}`;\n pConn.setReferenceList(resolvedList);\n const menuIconOverride$ = Utils.getImageSrc('trash', PCore.getAssetLoader().getStaticServerUrl());\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 = 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 =\n rawConfig?.children?.[0]?.children || rawConfig?.presets?.[0].children?.[0]?.children;\n\n const readOnlyMode = renderMode === 'ReadOnly';\n const editableMode = renderMode === 'Editable';\n const showAddRowButton = !readOnlyMode && !hideAddRow;\n const showDeleteButton = !readOnlyMode && !hideDeleteRow;\n useEffect(() => {\n if (editableMode) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n buildElementsForTable();\n } else {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n generateRowsData();\n }\n }, [referenceList.length]);\n\n // Nebula has other handling for isReadOnlyMode but has Cosmos-specific code\n // so ignoring that for now...\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 // Nebula does). 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 // Nebula and we may not end up using it all.\n const fieldDefs = buildFieldsForTable(rawFields, resolvedFields, showDeleteButton);\n\n const displayedColumns = fieldDefs.map(field => {\n return field.name ? field.name : field.cellRenderer;\n });\n\n // console.log(`SimpleTable displayedColumns:`);\n // console.log(displayedColumns);\n\n // And now we can process the resolvedFields to add in the \"name\"\n // from from the fieldDefs. This \"name\" is the value that\n // we'll share to connect things together in the table.\n\n // const processedFields = resolvedFields.map((field, i) => {\n // field.config['name'] = displayedColumns[i]; // .config[\"value\"].replace(/ ./g,\"_\"); // replace space dot with underscore\n // return field;\n // });\n\n // console.log(\"SimpleTable processedFields:\");\n // console.log(processedFields);\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: Array<string> = inColKey.split('.');\n let valBuilder = inRowData;\n for (const key of refKeys) {\n valBuilder = valBuilder[key];\n }\n return valBuilder;\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 dataPageName property value exists then make a datapage fetch call and get the list of data.\n if (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 // 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 // processedFields: key/value pairs where each key is order of column\n // and each value is an object of more detailed information about that\n // column.\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 // Note that the \"property\" shown in the column (\"FirstName\" in the above examples) is what\n // ties the 3 data structures together.\n\n // console.log(\"SimpleTable displayedColumns:\");\n // console.log(displayedColumns);\n // console.log(\"SimpleTable processedFields:\");\n // console.log(processedFields);\n // console.log(`SimpleTable rowData (${rowData.length} row(s)):`);\n // console.log(JSON.stringify(rowData));\n\n const addRecord = () => {\n if (PCore.getPCoreVersion()?.includes('8.7')) {\n pConn.getListActions().insert({ classID: contextClass }, referenceList.length, pageReference);\n } else {\n pConn.getListActions().insert({ classID: contextClass }, referenceList.length);\n }\n };\n\n const deleteRecord = index => {\n if (PCore.getPCoreVersion()?.includes('8.7')) {\n pConn.getListActions().deleteEntry(index, pageReference);\n } else {\n pConn.getListActions().deleteEntry(index);\n }\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(\n referenceListData.lastIndexOf('.')\n )}[${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] < a[orderedBy]) {\n return -1;\n }\n if (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 // eslint-disable-next-line no-unused-vars\n ): (a: { [key in Key]: number | string }, b: { [key in Key]: number | string }) => number {\n return theOrder === 'desc'\n ? (a, b) => descendingComparator(a, b, orderedBy)\n : (a, b) => -descendingComparator(a, b, orderedBy);\n }\n\n // eslint-disable-next-line no-unused-vars\n function stableSort<T>(array: 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, 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 _menuClose() {\n setAnchorEl(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 (\n filterObj.type === 'Date' ||\n filterObj.type === 'DateTime' ||\n filterObj.type === 'Time'\n ) {\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 <React.Fragment>\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) && (\n <FilterListIcon className={classes.moreIcon} />\n )}\n {orderBy === displayedColumns[index] ? (\n <span className={classes.visuallyHidden}>\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n </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 onClick={() => deleteRecord(index)}\n >\n <img\n className='psdk-utility-card-action-svg-icon'\n src={menuIconOverride$}\n ></img>\n </button>\n </TableCell>\n )}\n </TableRow>\n );\n })}\n {readOnlyMode &&\n rowData &&\n rowData.length > 0 &&\n stableSort(rowData, getComparator(order, orderBy))\n .slice(0)\n .map(row => {\n return (\n <TableRow key={row[displayedColumns[0]]}>\n {displayedColumns.map(colKey => {\n return (\n <TableCell key={colKey} className={classes.tableCell}>\n {typeof row[colKey] === 'boolean' && !row[colKey]\n ? 'False'\n : typeof row[colKey] === 'boolean' && row[colKey]\n ? 'True'\n : row[colKey]}\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\n id='simple-menu'\n anchorEl={anchorEl}\n keepMounted\n open={Boolean(anchorEl)}\n onClose={_menuClose}\n >\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\n id='filter'\n fullWidth\n onChange={_dialogContainsFilter}\n value={displayDialogContainsFilter}\n >\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 </React.Fragment>\n );\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simpleTableHelpers.d.ts","sourceRoot":"","sources":["../../../../src/components/template/SimpleTable/simpleTableHelpers.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,gBAAgB,CAAC;AACxC,eAAO,MAAM,WAAW,eAAe,CAAC;AAwCxC,eAAO,MAAM,UAAU;;;;CAmBtB,CAAC;AAEF,eAAO,MAAM,cAAc,uBAI1B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;CAwBzB,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyChC,CAAC;AAEF,eAAO,MAAM,mBAAmB,gEAmC/B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;CAuB9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,0CAE7B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,mEAY1B,CAAC;AAEF,eAAO,MAAM,UAAU,kDA+HtB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simpleTableHelpers.js","sourceRoot":"","sources":["../../../../src/components/template/SimpleTable/simpleTableHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { Utils } from '../../helpers/utils';\n\ndeclare const PCore;\n\nexport const TABLE_CELL = \"SdkRenderer\";\nexport const DELETE_ICON = \"DeleteIcon\";\n\n// BUG-615253: Workaround for autosize in table with lazy loading components\n/* istanbul ignore next */\nfunction getFieldWidth(field, label) {\n let width;\n switch (field.type) {\n case \"Time\":\n width = 150;\n break;\n case \"Date\":\n width = 160;\n break;\n case \"DateTime\":\n width = 205;\n break;\n case \"AutoComplete\":\n case \"TextArea\":\n width = 190;\n break;\n case \"Currency\":\n case \"TextInput\":\n width = 182;\n break;\n case \"Checkbox\":\n // eslint-disable-next-line no-case-declarations\n const text = document.createElement(\"span\");\n document.body.appendChild(text);\n text.style.fontSize = \"13px\";\n text.style.position = \"absolute\";\n text.innerHTML = label;\n width = Math.ceil(text.clientWidth) + 30;\n document.body.removeChild(text);\n break;\n default:\n width = 180;\n }\n return width;\n}\n\nexport const getContext = (thePConn) => {\n const contextName = thePConn.getContextName();\n const pageReference = thePConn.getPageReference();\n let { referenceList } = thePConn.getStateProps().config;\n const pageReferenceForRows = referenceList.startsWith(\".\")\n ? `${pageReference}.${referenceList.substring(1)}`\n : referenceList;\n\n // removing \"caseInfo.content\" prefix to avoid setting it as a target while preparing pageInstructions\n referenceList = pageReferenceForRows.replace(\n PCore.getConstants().CASE_INFO.CASE_INFO_CONTENT,\n \"\"\n );\n\n return {\n contextName,\n referenceListStr: referenceList,\n pageReferenceForRows\n };\n};\n\nexport const populateRowKey = (rawData) => {\n return rawData.map((row, index) => {\n return { ...row, index };\n });\n};\n\nexport const getApiContext = (processedData, pConnect, reorderCB) => {\n return {\n fetchData: () => {\n return new Promise((resolve) => {\n resolve({\n data: processedData,\n filteredRecordCount: processedData.length,\n totalRecordCount: processedData.length\n });\n });\n },\n fetchPersonalizations: () => {\n return Promise.resolve({});\n },\n applyRowReorder: (sourceKey, destinationKey) => {\n // indexes are keys for simple table so, it should work.\n reorderCB();\n return Promise.resolve(\n pConnect\n .getListActions()\n .reorder(parseInt(sourceKey, 10), parseInt(destinationKey, 10))\n );\n }\n };\n};\n\nexport const buildMetaForListView = (\n fieldMetadata,\n fields,\n type,\n ruleClass,\n name,\n propertyLabel,\n parameters\n) => {\n return {\n name,\n config: {\n type,\n referenceList: fieldMetadata.datasource.name,\n parameters: parameters ?? fieldMetadata.datasource.parameters,\n personalization: false,\n grouping: true,\n globalSearch: true,\n reorderFields: true,\n toggleFieldVisibility: true,\n personalizationId: \"\" /* TODO */,\n template: \"ListView\",\n presets: [\n {\n name: \"presets\",\n template: \"Table\",\n config: {},\n children: [\n {\n name: \"Columns\",\n type: \"Region\",\n children: fields\n }\n ],\n label: propertyLabel,\n id: \"P_\" /* TODO */\n }\n ],\n ruleClass\n }\n };\n};\n\nexport const buildFieldsForTable = (configFields, fields, showDeleteButton) => {\n const fieldDefs = configFields.map((field, index) => {\n return {\n type: \"text\",\n label: fields[index].config.label || fields[index].config.caption,\n fillAvailableSpace: !!field.config.fillAvailableSpace,\n id: index,\n name: field.config.value.substr(4),\n cellRenderer: TABLE_CELL,\n sort: false,\n noContextMenu: true,\n showMenu: false,\n meta: {\n ...field\n },\n // BUG-615253: Workaround for autosize in table with lazy loading components\n width: getFieldWidth(field, fields[index].config.label)\n };\n });\n\n // ONLY add DELETE_ICON to fields when the table is requested as EDITABLE\n if (showDeleteButton) {\n fieldDefs.push({\n type: \"text\",\n id: fieldDefs.length,\n cellRenderer: DELETE_ICON,\n sort: false,\n noContextMenu: true,\n showMenu: false,\n // BUG-615253: Workaround for autosize in table with lazy loading components\n width: 46\n });\n }\n\n return fieldDefs;\n};\n\nexport const createMetaForTable = (fields, renderMode) => {\n return {\n height: {\n minHeight: \"auto\",\n fitHeightToElement: \"fitHeightToElement\",\n deltaAdjustment: \"deltaAdjustment\",\n autoSize: true\n },\n fieldDefs: fields,\n itemKey: \"index\",\n grouping: false,\n reorderFields: false,\n reorderItems: renderMode === \"Editable\",\n dragHandle: renderMode === \"Editable\",\n globalSearch: false,\n personalization: false,\n toggleFieldVisibility: false,\n toolbar: false,\n footer: false,\n filterExpression: null,\n editing: false,\n timezone: PCore.getEnvironmentInfo().getTimeZone()\n };\n};\n\n/**\n * This method returns a callBack function for Add action.\n * @param {object} pConnect - PConnect object\n * @param {number} index - index of the page list to add\n */\nexport const getAddRowCallback = (pConnect, index) => {\n return () => pConnect.getListActions().insert({}, index);\n};\n\n/**\n * This method creates a PConnect object with proper options for Add and Delete actions\n * @param {string} contextName - contextName\n * @param {string} referenceList - referenceList\n * @param {string} pageReference - pageReference\n */\nexport const createPConnect = (contextName, referenceList, pageReference) => {\n const options = {\n context: contextName,\n pageReference,\n referenceList\n };\n\n // create PConnect object\n const config = { meta: {}, options };\n const { getPConnect } = PCore.createPConnect(config);\n\n return getPConnect();\n};\n\nexport const filterData = (filterByColumns) => {\n return function filteringData(item) {\n let bKeep = true;\n for (const filterObj of filterByColumns) {\n if (\n filterObj.containsFilterValue !== '' ||\n filterObj.containsFilter === 'null' ||\n filterObj.containsFilter === 'notnull'\n ) {\n let value: any;\n let filterValue: any;\n\n switch (filterObj.type) {\n case 'Date':\n case 'DateTime':\n case 'Time':\n value =\n item[filterObj.ref] !== null ?? item[filterObj.ref] !== ''\n ? Utils.getSeconds(item[filterObj.ref])\n : null;\n filterValue =\n filterObj.containsFilterValue !== null && filterObj.containsFilterValue !== ''\n ? Utils.getSeconds(filterObj.containsFilterValue)\n : null;\n\n // eslint-disable-next-line sonarjs/no-nested-switch\n switch (filterObj.containsFilter) {\n case 'notequal':\n // becasue filterValue is in minutes, need to have a range of less than 60 secons\n\n if (value !== null && filterValue !== null) {\n // get rid of milliseconds\n value /= 1000;\n filterValue /= 1000;\n\n const diff = value - filterValue;\n if (diff >= 0 && diff < 60) {\n bKeep = false;\n }\n }\n\n break;\n\n case 'equal':\n // becasue filterValue is in minutes, need to have a range of less than 60 secons\n\n if (value !== null && filterValue !== null) {\n // get rid of milliseconds\n value /= 1000;\n filterValue /= 1000;\n\n const diff = value - filterValue;\n if (diff !== 0) {\n bKeep = false;\n }\n }\n\n break;\n\n case 'after':\n if (value < filterValue) {\n bKeep = false;\n }\n break;\n\n case 'before':\n if (value > filterValue) {\n bKeep = false;\n }\n break;\n\n case 'null':\n if (value !== null) {\n bKeep = false;\n }\n break;\n\n case 'notnull':\n if (value === null) {\n bKeep = false;\n }\n break;\n\n default:\n break;\n }\n break;\n\n default:\n value = item[filterObj.ref].toLowerCase();\n filterValue = filterObj.containsFilterValue.toLowerCase();\n\n // eslint-disable-next-line sonarjs/no-nested-switch\n switch (filterObj.containsFilter) {\n case 'contains':\n if (value.indexOf(filterValue) < 0) {\n bKeep = false;\n }\n break;\n\n case 'equals':\n if (value !== filterValue) {\n bKeep = false;\n }\n break;\n\n case 'startswith':\n if (value.indexOf(filterValue) !== 0) {\n bKeep = false;\n }\n break;\n\n default:\n break;\n }\n\n break;\n }\n }\n\n // if don't keep stop filtering\n if (!bKeep) {\n break;\n }\n }\n return bKeep;\n }\n}\n"]}
|
|
File without changes
|