@blaze-cms/plugin-data-ui 0.130.0-project-admin-customisations.0 → 0.130.0-project-admin-customisations.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/lib/components/ListingTable/ListingTable.js +10 -7
- package/lib/components/ListingTable/ListingTable.js.map +1 -1
- package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js +4 -2
- package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
- package/lib/components/ListingTable/mappers/populate-rows.js +92 -26
- package/lib/components/ListingTable/mappers/populate-rows.js.map +1 -1
- package/lib-es/components/ListingTable/ListingTable.js +11 -7
- package/lib-es/components/ListingTable/ListingTable.js.map +1 -1
- package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js +6 -2
- package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
- package/lib-es/components/ListingTable/mappers/populate-rows.js +76 -24
- package/lib-es/components/ListingTable/mappers/populate-rows.js.map +1 -1
- package/package.json +2 -2
- package/src/components/ListingTable/ListingTable.js +18 -5
- package/src/components/ListingTable/ListingTableContent/ListingTableContent.js +4 -2
- package/src/components/ListingTable/mappers/populate-rows.js +83 -18
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.130.0-project-admin-customisations.2](https://github.com/thebyte9/blaze/compare/v0.130.0-project-admin-customisations.1...v0.130.0-project-admin-customisations.2) (2023-06-16)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* listings now handle array values ([#3960](https://github.com/thebyte9/blaze/issues/3960)) ([ffd9fa5](https://github.com/thebyte9/blaze/commit/ffd9fa5c3462f275ea1312b4f931e8d29c8d6c07)), closes [#3956](https://github.com/thebyte9/blaze/issues/3956)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [0.130.0-project-admin-customisations.0](https://github.com/thebyte9/blaze/compare/v0.129.0-project-admin-customisations.3...v0.130.0-project-admin-customisations.0) (2023-06-14)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -169,7 +169,7 @@ var ListingTable = function ListingTable(_ref) {
|
|
|
169
169
|
}();
|
|
170
170
|
var handleSort = /*#__PURE__*/function () {
|
|
171
171
|
var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(event) {
|
|
172
|
-
var _Object$entries, _Object$entries2, _Object$entries2$, property, direction, sortQueryParams, data, columns, _columns, firstColumn;
|
|
172
|
+
var _Object$entries, _Object$entries2, _Object$entries2$, property, direction, sortQueryParams, data, columns, isEnquiry, _columns, firstColumn;
|
|
173
173
|
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
174
174
|
while (1) switch (_context3.prev = _context3.next) {
|
|
175
175
|
case 0:
|
|
@@ -193,15 +193,16 @@ var ListingTable = function ListingTable(_ref) {
|
|
|
193
193
|
});
|
|
194
194
|
case 7:
|
|
195
195
|
data = _context3.sent;
|
|
196
|
-
columns = tableData.columns;
|
|
196
|
+
columns = tableData.columns, isEnquiry = tableData.isEnquiry;
|
|
197
197
|
_columns = (0, _slicedToArray2["default"])(columns, 1), firstColumn = _columns[0];
|
|
198
198
|
setTableData(_objectSpread(_objectSpread({}, tableData), {}, {
|
|
199
199
|
appliedSort: (0, _defineProperty2["default"])({}, property, direction),
|
|
200
200
|
rows: (0, _populateRows.formatRows)({
|
|
201
|
-
rows: data,
|
|
201
|
+
rows: (0, _populateRows.getParsedRowData)(data),
|
|
202
202
|
url: match.url,
|
|
203
203
|
toggleModal: toggleModal,
|
|
204
|
-
firstColumn: firstColumn
|
|
204
|
+
firstColumn: firstColumn,
|
|
205
|
+
isEnquiry: isEnquiry
|
|
205
206
|
})
|
|
206
207
|
}));
|
|
207
208
|
case 11:
|
|
@@ -241,9 +242,10 @@ var ListingTable = function ListingTable(_ref) {
|
|
|
241
242
|
case 7:
|
|
242
243
|
data = _context4.sent;
|
|
243
244
|
updatedRows = [].concat((0, _toConsumableArray2["default"])(tableData.rows), (0, _toConsumableArray2["default"])((0, _populateRows.formatRows)({
|
|
244
|
-
rows: data,
|
|
245
|
+
rows: (0, _populateRows.getParsedRowData)(data),
|
|
245
246
|
url: match.url,
|
|
246
|
-
toggleModal: toggleModal
|
|
247
|
+
toggleModal: toggleModal,
|
|
248
|
+
isEnquiry: tableData.isEnquiry
|
|
247
249
|
})));
|
|
248
250
|
setVerifiedRanges([].concat((0, _toConsumableArray2["default"])(verifiedRanges), [loadIndex]));
|
|
249
251
|
setQueryParams(updatedQueryParams);
|
|
@@ -262,6 +264,7 @@ var ListingTable = function ListingTable(_ref) {
|
|
|
262
264
|
};
|
|
263
265
|
}();
|
|
264
266
|
if (!tableData || !tableData.rows) return 'loading';
|
|
267
|
+
var showAddButton = !!tableData.rows.length && !tableData.isEnquiry;
|
|
265
268
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
266
269
|
className: "page"
|
|
267
270
|
}, modalStatus && /*#__PURE__*/_react["default"].createElement(_admin.DeleteAction, {
|
|
@@ -271,7 +274,7 @@ var ListingTable = function ListingTable(_ref) {
|
|
|
271
274
|
}), /*#__PURE__*/_react["default"].createElement(_admin.PageHeader, {
|
|
272
275
|
title: entitySchema.displayName,
|
|
273
276
|
subtitle: ""
|
|
274
|
-
},
|
|
277
|
+
}, showAddButton && /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Link, {
|
|
275
278
|
"data-testid": "addEntity",
|
|
276
279
|
className: "button button--small",
|
|
277
280
|
to: "".concat(match.url, "/create")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListingTable.js","names":["_client","require","_react","_interopRequireWildcard","_propTypes","_interopRequireDefault","_reactRouterDom","_more","_admin","_toaster","_ListingTableContent","_actionsHandlers","_service","_populateRows","_getDefaultQueryParams","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","OVER_SCAN_BUFFER","ListingTable","_ref","match","entitySchema","_useState","useState","_useState2","_slicedToArray2","tableData","setTableData","_useState3","_useState4","modalStatus","setModalStatus","_useState5","_useState6","itemToDelete","setItemToDelete","_useState7","id","_useState8","previousSchema","setPreviousSchema","_useState9","_useState10","scrollToIndex","setScrollToIndex","_useState11","_useState12","verifiedRanges","setVerifiedRanges","queryParamsDefault","getDefaultQueryParams","schema","_useState13","_useState14","queryParams","setQueryParams","client","useApolloClient","_useToasts","useToasts","addToast","useEffect","_asyncToGenerator2","_regenerator","mark","_callee","data","populatedTable","wrap","_callee$","_context","prev","next","fetchData","querySettings","sent","populateRows","toggleModal","url","rows","stop","onCloseCardPrompt","item","deleteAction","_ref3","_callee2","updatedTableData","_callee2$","_context2","availableActions","submit","parsedFormValues","_ref4","handleSort","_ref5","_callee3","event","_Object$entries","_Object$entries2","_Object$entries2$","property","direction","sortQueryParams","columns","_columns","firstColumn","_callee3$","_context3","entries","sort","appliedSort","formatRows","_x","handleRenderedItems","_ref6","_callee4","params","startIndex","rowsLength","loadIndex","updatedQueryParams","updatedRows","_callee4$","_context4","Math","floor","includes","offset","concat","_toConsumableArray2","_x2","createElement","className","DeleteAction","onClose","itemName","name","PageHeader","title","displayName","subtitle","Fragment","Link","to","Actions","Avatar","isMoreMenu","Content","overScanBuffer","onSort","onRenderItems","propTypes","PropTypes","isRequired","_default","withRouter","exports"],"sources":["../../../src/components/ListingTable/ListingTable.js"],"sourcesContent":["import { useApolloClient } from '@apollo/client';\nimport React, { useEffect, useState, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter, Link } from 'react-router-dom';\nimport More from '@blaze-react/more';\nimport { PageHeader, DeleteAction } from '@blaze-cms/admin';\nimport { useToasts } from '@blaze-react/toaster';\nimport ListingTableContent from './ListingTableContent';\nimport availableActions from '../EntityManager/Entity/actions-handlers';\nimport { fetchData } from './service';\nimport { populateRows, formatRows } from './mappers/populate-rows';\nimport { getDefaultQueryParams } from '../../utils/get-default-query-params';\n\nconst OVER_SCAN_BUFFER = 10;\n\nconst ListingTable = ({ match, entitySchema }) => {\n const [tableData, setTableData] = useState({});\n const [modalStatus, setModalStatus] = useState(false);\n const [itemToDelete, setItemToDelete] = useState({});\n const [previousSchema, setPreviousSchema] = useState({ id: null });\n const [scrollToIndex, setScrollToIndex] = useState(0);\n const [verifiedRanges, setVerifiedRanges] = useState([]);\n const queryParamsDefault = getDefaultQueryParams({ schema: entitySchema });\n const [queryParams, setQueryParams] = useState(queryParamsDefault);\n const client = useApolloClient();\n const { addToast } = useToasts();\n\n useEffect(\n () => {\n (async () => {\n if (\n entitySchema.id !== previousSchema.id ||\n (previousSchema.id === null && entitySchema.id)\n ) {\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: queryParamsDefault\n }\n });\n const populatedTable = populateRows({\n toggleModal,\n url: match.url,\n entitySchema,\n rows: data\n });\n setTableData(populatedTable);\n setPreviousSchema({ id: entitySchema.id });\n }\n })();\n },\n [client, entitySchema, match.url, previousSchema.id, queryParams] // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n const onCloseCardPrompt = () => null;\n\n const toggleModal = item => {\n setModalStatus(!!item);\n setItemToDelete(item || {});\n };\n\n const deleteAction = async () => {\n await availableActions.delete.submit(\n {\n entitySchema,\n parsedFormValues: { id: itemToDelete.id },\n client\n },\n addToast\n );\n\n toggleModal();\n\n const updatedTableData = {\n ...tableData,\n rows: tableData.rows.filter(({ id }) => id !== itemToDelete.id)\n };\n\n setTableData(updatedTableData);\n };\n\n const handleSort = async event => {\n const [[property, direction]] = Object.entries(event);\n const sortQueryParams = {\n ...queryParamsDefault,\n sort: [{ property, direction }]\n };\n setScrollToIndex(0);\n setVerifiedRanges([]);\n setQueryParams(sortQueryParams);\n\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: sortQueryParams\n }\n });\n const { columns } = tableData;\n const [firstColumn] = columns;\n\n setTableData({\n ...tableData,\n appliedSort: { [property]: direction },\n rows: formatRows({ rows: data, url: match.url, toggleModal, firstColumn })\n });\n };\n\n const handleRenderedItems = async params => {\n const { startIndex } = params;\n const rowsLength = tableData.rows.length;\n const loadIndex = Math.floor(rowsLength / 3) - OVER_SCAN_BUFFER;\n if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {\n const updatedQueryParams = {\n ...queryParams,\n offset: rowsLength\n };\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: updatedQueryParams\n }\n });\n const updatedRows = [\n ...tableData.rows,\n ...formatRows({ rows: data, url: match.url, toggleModal })\n ];\n\n setVerifiedRanges([...verifiedRanges, loadIndex]);\n setQueryParams(updatedQueryParams);\n setTableData({\n ...tableData,\n rows: updatedRows\n });\n setScrollToIndex(startIndex + OVER_SCAN_BUFFER);\n }\n };\n\n if (!tableData || !tableData.rows) return 'loading';\n\n return (\n <div className=\"page\">\n {modalStatus && (\n <DeleteAction\n onClose={toggleModal}\n deleteAction={deleteAction}\n itemName={itemToDelete.name}\n />\n )}\n <PageHeader title={entitySchema.displayName} subtitle=\"\">\n {!!tableData.rows.length && (\n <Fragment>\n <Link\n data-testid=\"addEntity\"\n className=\"button button--small\"\n to={`${match.url}/create`}>\n Add\n </Link>\n <PageHeader.Actions>\n <More>\n <More.Avatar isMoreMenu>\n <span className=\"material-icons\">more_vert</span>\n </More.Avatar>\n <More.Content isMoreMenu />\n </More>\n </PageHeader.Actions>\n </Fragment>\n )}\n </PageHeader>\n <ListingTableContent\n overScanBuffer={OVER_SCAN_BUFFER}\n onSort={handleSort}\n onRenderItems={handleRenderedItems}\n tableData={tableData}\n onCloseCardPrompt={onCloseCardPrompt}\n scrollToIndex={scrollToIndex}\n />\n </div>\n );\n};\nListingTable.propTypes = {\n entitySchema: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired\n};\n\nexport default withRouter(ListingTable);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListingTable.js","names":["_client","require","_react","_interopRequireWildcard","_propTypes","_interopRequireDefault","_reactRouterDom","_more","_admin","_toaster","_ListingTableContent","_actionsHandlers","_service","_populateRows","_getDefaultQueryParams","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","OVER_SCAN_BUFFER","ListingTable","_ref","match","entitySchema","_useState","useState","_useState2","_slicedToArray2","tableData","setTableData","_useState3","_useState4","modalStatus","setModalStatus","_useState5","_useState6","itemToDelete","setItemToDelete","_useState7","id","_useState8","previousSchema","setPreviousSchema","_useState9","_useState10","scrollToIndex","setScrollToIndex","_useState11","_useState12","verifiedRanges","setVerifiedRanges","queryParamsDefault","getDefaultQueryParams","schema","_useState13","_useState14","queryParams","setQueryParams","client","useApolloClient","_useToasts","useToasts","addToast","useEffect","_asyncToGenerator2","_regenerator","mark","_callee","data","populatedTable","wrap","_callee$","_context","prev","next","fetchData","querySettings","sent","populateRows","toggleModal","url","rows","stop","onCloseCardPrompt","item","deleteAction","_ref3","_callee2","updatedTableData","_callee2$","_context2","availableActions","submit","parsedFormValues","_ref4","handleSort","_ref5","_callee3","event","_Object$entries","_Object$entries2","_Object$entries2$","property","direction","sortQueryParams","columns","isEnquiry","_columns","firstColumn","_callee3$","_context3","entries","sort","appliedSort","formatRows","getParsedRowData","_x","handleRenderedItems","_ref6","_callee4","params","startIndex","rowsLength","loadIndex","updatedQueryParams","updatedRows","_callee4$","_context4","Math","floor","includes","offset","concat","_toConsumableArray2","_x2","showAddButton","createElement","className","DeleteAction","onClose","itemName","name","PageHeader","title","displayName","subtitle","Fragment","Link","to","Actions","Avatar","isMoreMenu","Content","overScanBuffer","onSort","onRenderItems","propTypes","PropTypes","isRequired","_default","withRouter","exports"],"sources":["../../../src/components/ListingTable/ListingTable.js"],"sourcesContent":["import { useApolloClient } from '@apollo/client';\nimport React, { useEffect, useState, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter, Link } from 'react-router-dom';\nimport More from '@blaze-react/more';\nimport { PageHeader, DeleteAction } from '@blaze-cms/admin';\nimport { useToasts } from '@blaze-react/toaster';\nimport ListingTableContent from './ListingTableContent';\nimport availableActions from '../EntityManager/Entity/actions-handlers';\nimport { fetchData } from './service';\nimport { populateRows, formatRows, getParsedRowData } from './mappers/populate-rows';\nimport { getDefaultQueryParams } from '../../utils/get-default-query-params';\n\nconst OVER_SCAN_BUFFER = 10;\n\nconst ListingTable = ({ match, entitySchema }) => {\n const [tableData, setTableData] = useState({});\n const [modalStatus, setModalStatus] = useState(false);\n const [itemToDelete, setItemToDelete] = useState({});\n const [previousSchema, setPreviousSchema] = useState({ id: null });\n const [scrollToIndex, setScrollToIndex] = useState(0);\n const [verifiedRanges, setVerifiedRanges] = useState([]);\n const queryParamsDefault = getDefaultQueryParams({ schema: entitySchema });\n const [queryParams, setQueryParams] = useState(queryParamsDefault);\n const client = useApolloClient();\n const { addToast } = useToasts();\n\n useEffect(\n () => {\n (async () => {\n if (\n entitySchema.id !== previousSchema.id ||\n (previousSchema.id === null && entitySchema.id)\n ) {\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: queryParamsDefault\n }\n });\n const populatedTable = populateRows({\n toggleModal,\n url: match.url,\n entitySchema,\n rows: data\n });\n\n setTableData(populatedTable);\n setPreviousSchema({ id: entitySchema.id });\n }\n })();\n },\n [client, entitySchema, match.url, previousSchema.id, queryParams] // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n const onCloseCardPrompt = () => null;\n\n const toggleModal = item => {\n setModalStatus(!!item);\n setItemToDelete(item || {});\n };\n\n const deleteAction = async () => {\n await availableActions.delete.submit(\n {\n entitySchema,\n parsedFormValues: { id: itemToDelete.id },\n client\n },\n addToast\n );\n\n toggleModal();\n\n const updatedTableData = {\n ...tableData,\n rows: tableData.rows.filter(({ id }) => id !== itemToDelete.id)\n };\n\n setTableData(updatedTableData);\n };\n\n const handleSort = async event => {\n const [[property, direction]] = Object.entries(event);\n const sortQueryParams = {\n ...queryParamsDefault,\n sort: [{ property, direction }]\n };\n setScrollToIndex(0);\n setVerifiedRanges([]);\n setQueryParams(sortQueryParams);\n\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: sortQueryParams\n }\n });\n const { columns, isEnquiry } = tableData;\n const [firstColumn] = columns;\n\n setTableData({\n ...tableData,\n appliedSort: { [property]: direction },\n rows: formatRows({\n rows: getParsedRowData(data),\n url: match.url,\n toggleModal,\n firstColumn,\n isEnquiry\n })\n });\n };\n\n const handleRenderedItems = async params => {\n const { startIndex } = params;\n const rowsLength = tableData.rows.length;\n const loadIndex = Math.floor(rowsLength / 3) - OVER_SCAN_BUFFER;\n if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {\n const updatedQueryParams = {\n ...queryParams,\n offset: rowsLength\n };\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: updatedQueryParams\n }\n });\n const updatedRows = [\n ...tableData.rows,\n ...formatRows({\n rows: getParsedRowData(data),\n url: match.url,\n toggleModal,\n isEnquiry: tableData.isEnquiry\n })\n ];\n\n setVerifiedRanges([...verifiedRanges, loadIndex]);\n setQueryParams(updatedQueryParams);\n setTableData({\n ...tableData,\n rows: updatedRows\n });\n setScrollToIndex(startIndex + OVER_SCAN_BUFFER);\n }\n };\n\n if (!tableData || !tableData.rows) return 'loading';\n const showAddButton = !!tableData.rows.length && !tableData.isEnquiry;\n\n return (\n <div className=\"page\">\n {modalStatus && (\n <DeleteAction\n onClose={toggleModal}\n deleteAction={deleteAction}\n itemName={itemToDelete.name}\n />\n )}\n <PageHeader title={entitySchema.displayName} subtitle=\"\">\n {showAddButton && (\n <Fragment>\n <Link\n data-testid=\"addEntity\"\n className=\"button button--small\"\n to={`${match.url}/create`}>\n Add\n </Link>\n <PageHeader.Actions>\n <More>\n <More.Avatar isMoreMenu>\n <span className=\"material-icons\">more_vert</span>\n </More.Avatar>\n <More.Content isMoreMenu />\n </More>\n </PageHeader.Actions>\n </Fragment>\n )}\n </PageHeader>\n <ListingTableContent\n overScanBuffer={OVER_SCAN_BUFFER}\n onSort={handleSort}\n onRenderItems={handleRenderedItems}\n tableData={tableData}\n onCloseCardPrompt={onCloseCardPrompt}\n scrollToIndex={scrollToIndex}\n />\n </div>\n );\n};\nListingTable.propTypes = {\n entitySchema: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired\n};\n\nexport default withRouter(ListingTable);\n"],"mappings":"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"}
|
|
@@ -24,8 +24,10 @@ var ListingTableContent = function ListingTableContent(_ref) {
|
|
|
24
24
|
onRenderItems = _ref.onRenderItems,
|
|
25
25
|
scrollToIndex = _ref.scrollToIndex;
|
|
26
26
|
var displayTable = tableData && tableData.rows && !!tableData.rows.length;
|
|
27
|
+
var isEnquiry = tableData.isEnquiry;
|
|
28
|
+
var className = "page__content".concat(isEnquiry ? ' array-table' : '');
|
|
27
29
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, displayTable && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
28
|
-
className:
|
|
30
|
+
className: className
|
|
29
31
|
}, /*#__PURE__*/_react["default"].createElement(_table["default"], {
|
|
30
32
|
scrollToIndex: scrollToIndex,
|
|
31
33
|
onSort: onSort,
|
|
@@ -33,7 +35,7 @@ var ListingTableContent = function ListingTableContent(_ref) {
|
|
|
33
35
|
overScanBuffer: overScanBuffer,
|
|
34
36
|
onRenderItems: onRenderItems,
|
|
35
37
|
data: tableData,
|
|
36
|
-
checkboxes:
|
|
38
|
+
checkboxes: !isEnquiry,
|
|
37
39
|
onSelect: handleSelect,
|
|
38
40
|
"data-testid": "listing-table-content"
|
|
39
41
|
}))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListingTableContent.js","names":["_react","_interopRequireDefault","require","_table","_propTypes","_reactRouterDom","ListingTableContent","_ref","tableData","handleSelect","onCloseCardPrompt","selectedMenuItem","match","onSort","onClickRow","overScanBuffer","onRenderItems","scrollToIndex","displayTable","rows","length","
|
|
1
|
+
{"version":3,"file":"ListingTableContent.js","names":["_react","_interopRequireDefault","require","_table","_propTypes","_reactRouterDom","ListingTableContent","_ref","tableData","handleSelect","onCloseCardPrompt","selectedMenuItem","match","onSort","onClickRow","overScanBuffer","onRenderItems","scrollToIndex","displayTable","rows","length","isEnquiry","className","concat","createElement","Fragment","data","checkboxes","onSelect","propTypes","PropTypes","object","isRequired","func","shape","url","string","number","defaultProps","_default","withRouter","exports"],"sources":["../../../../src/components/ListingTable/ListingTableContent/ListingTableContent.js"],"sourcesContent":["import React from 'react';\nimport Table from '@blaze-react/table';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nconst ListingTableContent = ({\n tableData,\n handleSelect,\n onCloseCardPrompt,\n selectedMenuItem,\n match,\n onSort,\n onClickRow,\n overScanBuffer,\n onRenderItems,\n scrollToIndex\n}) => {\n const displayTable = tableData && tableData.rows && !!tableData.rows.length;\n const { isEnquiry } = tableData;\n const className = `page__content${isEnquiry ? ' array-table' : ''}`;\n\n return (\n <>\n {displayTable && (\n <>\n <div className={className}>\n <Table\n scrollToIndex={scrollToIndex}\n onSort={onSort}\n onClickRow={onClickRow}\n overScanBuffer={overScanBuffer}\n onRenderItems={onRenderItems}\n data={tableData}\n checkboxes={!isEnquiry}\n onSelect={handleSelect}\n data-testid=\"listing-table-content\"\n />\n </div>\n </>\n )}\n </>\n );\n};\n\nListingTableContent.propTypes = {\n tableData: PropTypes.object.isRequired,\n onCloseCardPrompt: PropTypes.func.isRequired,\n selectedMenuItem: PropTypes.object,\n match: PropTypes.shape({\n url: PropTypes.string\n }).isRequired,\n handleSelect: PropTypes.func,\n onSort: PropTypes.func,\n onClickRow: PropTypes.func,\n overScanBuffer: PropTypes.number,\n scrollToIndex: PropTypes.number,\n onRenderItems: PropTypes.func\n};\n\nListingTableContent.defaultProps = {\n handleSelect: () => {},\n onSort: () => {},\n onClickRow: () => {},\n overScanBuffer: 0,\n scrollToIndex: 0,\n onRenderItems: () => {},\n selectedMenuItem: null\n};\n\nexport default withRouter(ListingTableContent);\n"],"mappings":"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"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.object.keys.js");
|
|
4
3
|
require("core-js/modules/es.symbol.js");
|
|
5
4
|
require("core-js/modules/es.array.filter.js");
|
|
6
5
|
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
7
|
-
require("core-js/modules/es.array.for-each.js");
|
|
8
|
-
require("core-js/modules/web.dom-collections.for-each.js");
|
|
9
6
|
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
10
7
|
require("core-js/modules/es.object.define-properties.js");
|
|
11
8
|
require("core-js/modules/es.object.define-property.js");
|
|
@@ -13,14 +10,21 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
13
10
|
Object.defineProperty(exports, "__esModule", {
|
|
14
11
|
value: true
|
|
15
12
|
});
|
|
16
|
-
exports.populateRows = exports.formatRows = void 0;
|
|
13
|
+
exports.populateRows = exports.getParsedRowData = exports.formatRows = void 0;
|
|
17
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
18
15
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
19
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
20
17
|
require("core-js/modules/es.array.map.js");
|
|
21
18
|
require("core-js/modules/es.array.concat.js");
|
|
19
|
+
require("core-js/modules/es.array.slice.js");
|
|
22
20
|
require("core-js/modules/es.array.reduce.js");
|
|
23
21
|
require("core-js/modules/es.object.to-string.js");
|
|
22
|
+
require("core-js/modules/es.object.keys.js");
|
|
23
|
+
require("core-js/modules/es.array.is-array.js");
|
|
24
|
+
require("core-js/modules/es.array.for-each.js");
|
|
25
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
26
|
+
require("core-js/modules/es.array.includes.js");
|
|
27
|
+
require("core-js/modules/es.string.includes.js");
|
|
24
28
|
var _react = _interopRequireDefault(require("react"));
|
|
25
29
|
var _reactRouterDom = require("react-router-dom");
|
|
26
30
|
var _TableActions = _interopRequireDefault(require("../TableActions"));
|
|
@@ -33,18 +37,20 @@ var formatRows = function formatRows(_ref) {
|
|
|
33
37
|
toggleModal = _ref.toggleModal,
|
|
34
38
|
label = _ref.label,
|
|
35
39
|
_ref$firstColumn = _ref.firstColumn,
|
|
36
|
-
firstColumn = _ref$firstColumn === void 0 ? 'name' : _ref$firstColumn
|
|
40
|
+
firstColumn = _ref$firstColumn === void 0 ? 'name' : _ref$firstColumn,
|
|
41
|
+
isEnquiry = _ref.isEnquiry;
|
|
37
42
|
return rows.map(function (data) {
|
|
38
|
-
var _objectSpread2;
|
|
39
43
|
var editUrl = "".concat(url, "/update/").concat(data.id);
|
|
40
|
-
|
|
44
|
+
var rowProps = _objectSpread(_objectSpread({}, data), {}, (0, _defineProperty2["default"])({}, firstColumn, /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Link, {
|
|
41
45
|
to: editUrl,
|
|
42
46
|
role: "button"
|
|
43
|
-
}, data[firstColumn]))
|
|
47
|
+
}, data[firstColumn])));
|
|
48
|
+
if (!isEnquiry) rowProps.actions = /*#__PURE__*/_react["default"].createElement(_TableActions["default"], {
|
|
44
49
|
editUrl: editUrl,
|
|
45
50
|
data: data,
|
|
46
51
|
showDeleteModal: toggleModal
|
|
47
|
-
})
|
|
52
|
+
});
|
|
53
|
+
return rowProps;
|
|
48
54
|
});
|
|
49
55
|
};
|
|
50
56
|
exports.formatRows = formatRows;
|
|
@@ -55,27 +61,85 @@ var getSanitizedColumnLabel = function getSanitizedColumnLabel(columnProp) {
|
|
|
55
61
|
}
|
|
56
62
|
return sanitizedChar;
|
|
57
63
|
};
|
|
58
|
-
var
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return
|
|
63
|
-
|
|
64
|
+
var buildArrayRowContent = function buildArrayRowContent(rowData) {
|
|
65
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
66
|
+
className: "table-row-list"
|
|
67
|
+
}, rowData.map(function (rowGroup) {
|
|
68
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
69
|
+
className: "table-row-list__group"
|
|
70
|
+
}, rowGroup.map(function (_ref2) {
|
|
71
|
+
var label = _ref2.label,
|
|
72
|
+
value = _ref2.value,
|
|
73
|
+
url = _ref2.url;
|
|
74
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
75
|
+
className: "table-row-list__group__item"
|
|
76
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
77
|
+
className: "table-row-list__group__item__label"
|
|
78
|
+
}, " ", label, ":"), url ? /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Link, {
|
|
79
|
+
to: url,
|
|
80
|
+
role: "button",
|
|
81
|
+
className: "table-row-list__group__item__value"
|
|
82
|
+
}, value) : /*#__PURE__*/_react["default"].createElement("span", {
|
|
83
|
+
className: "table-row-list__group__item__value"
|
|
84
|
+
}, " ", value));
|
|
85
|
+
}));
|
|
86
|
+
}));
|
|
87
|
+
};
|
|
88
|
+
var buildArrayRowData = function buildArrayRowData(rowData) {
|
|
89
|
+
var dataGroups = [];
|
|
90
|
+
var groups = Math.ceil(rowData.length / 3) || 1;
|
|
91
|
+
for (var index = 0; index < groups; index += 1) {
|
|
92
|
+
var currentStart = index * groups;
|
|
93
|
+
dataGroups[index] = rowData.slice(currentStart, currentStart + 3);
|
|
94
|
+
}
|
|
95
|
+
return buildArrayRowContent(dataGroups);
|
|
64
96
|
};
|
|
65
|
-
var
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
97
|
+
var getParsedRowData = function getParsedRowData(rows) {
|
|
98
|
+
return rows.map(function (rowData) {
|
|
99
|
+
return Object.keys(rowData).reduce(function (acc, key) {
|
|
100
|
+
var parsedData = Array.isArray(rowData[key]) ? buildArrayRowData(rowData[key]) : rowData[key];
|
|
101
|
+
return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2["default"])({}, key, parsedData));
|
|
102
|
+
}, {});
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
exports.getParsedRowData = getParsedRowData;
|
|
106
|
+
var getColumnsAndLabels = function getColumnsAndLabels(listingProperties, allProperties, rows) {
|
|
107
|
+
var columns = [];
|
|
108
|
+
var labels = {};
|
|
109
|
+
listingProperties.forEach(function (listingProperty) {
|
|
110
|
+
var propKey = listingProperty.includes(' ') ? listingProperty.split(' ')[0] : listingProperty;
|
|
111
|
+
var _ref3 = allProperties[propKey] || {},
|
|
112
|
+
label = _ref3.label;
|
|
113
|
+
columns.push(propKey);
|
|
114
|
+
labels[propKey] = label || getSanitizedColumnLabel(propKey);
|
|
115
|
+
});
|
|
116
|
+
var parsedRowData = getParsedRowData(rows);
|
|
117
|
+
return {
|
|
118
|
+
columns: columns,
|
|
119
|
+
labels: labels,
|
|
120
|
+
parsedRowData: parsedRowData
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
var populateRows = function populateRows(_ref4) {
|
|
124
|
+
var toggleModal = _ref4.toggleModal,
|
|
125
|
+
url = _ref4.url,
|
|
126
|
+
entitySchema = _ref4.entitySchema,
|
|
127
|
+
rows = _ref4.rows;
|
|
128
|
+
var schemaId = entitySchema.id,
|
|
129
|
+
listingProperties = entitySchema.listingProperties,
|
|
71
130
|
properties = entitySchema.properties,
|
|
72
131
|
_entitySchema$dynamic = entitySchema.dynamicProperties,
|
|
73
132
|
dynamicProperties = _entitySchema$dynamic === void 0 ? {} : _entitySchema$dynamic,
|
|
74
133
|
formProperties = entitySchema.formProperties;
|
|
75
|
-
var
|
|
134
|
+
var isEnquiry = schemaId === 'enquiry';
|
|
135
|
+
var columnOptions = !isEnquiry ? [].concat((0, _toConsumableArray2["default"])(listingProperties), [_constants.ACTIONS]) : (0, _toConsumableArray2["default"])(listingProperties);
|
|
136
|
+
var allProperties = _objectSpread(_objectSpread({}, properties), dynamicProperties);
|
|
137
|
+
var _getColumnsAndLabels = getColumnsAndLabels(columnOptions, allProperties, rows),
|
|
138
|
+
columns = _getColumnsAndLabels.columns,
|
|
139
|
+
labels = _getColumnsAndLabels.labels,
|
|
140
|
+
parsedRowData = _getColumnsAndLabels.parsedRowData;
|
|
76
141
|
var _columns = (0, _slicedToArray2["default"])(columns, 1),
|
|
77
142
|
firstColumn = _columns[0];
|
|
78
|
-
var labels = _objectSpread(_objectSpread({}, getColumnLabels(listingProperties, properties, dynamicProperties)), {}, (0, _defineProperty2["default"])({}, _constants.ACTIONS, _constants.ACTIONS));
|
|
79
143
|
return {
|
|
80
144
|
identification: 'id',
|
|
81
145
|
sort: null,
|
|
@@ -84,10 +148,12 @@ var populateRows = function populateRows(_ref2) {
|
|
|
84
148
|
orderBy: (0, _toConsumableArray2["default"])(formProperties),
|
|
85
149
|
rows: formatRows({
|
|
86
150
|
firstColumn: firstColumn,
|
|
87
|
-
rows:
|
|
151
|
+
rows: parsedRowData,
|
|
88
152
|
url: url,
|
|
89
|
-
toggleModal: toggleModal
|
|
90
|
-
|
|
153
|
+
toggleModal: toggleModal,
|
|
154
|
+
isEnquiry: isEnquiry
|
|
155
|
+
}),
|
|
156
|
+
isEnquiry: isEnquiry
|
|
91
157
|
};
|
|
92
158
|
};
|
|
93
159
|
exports.populateRows = populateRows;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"populate-rows.js","names":["_react","_interopRequireDefault","require","_reactRouterDom","_TableActions","_constants","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","formatRows","_ref","rows","url","toggleModal","label","_ref$firstColumn","firstColumn","map","data","_objectSpread2","editUrl","concat","id","createElement","Link","to","role","showDeleteModal","exports","getSanitizedColumnLabel","columnProp","sanitizedChar","index","toUpperCase","toLowerCase","getColumnLabels","listingProperties","properties","dynamicProperties","allProperties","reduce","acc","listingProperty","populateRows","_ref2","entitySchema","_entitySchema$dynamic","formProperties","columns","_toConsumableArray2","ACTIONS","_columns","_slicedToArray2","labels","identification","sort","orderBy"],"sources":["../../../../src/components/ListingTable/mappers/populate-rows.js"],"sourcesContent":["import React from 'react';\nimport { Link } from 'react-router-dom';\nimport TableActions from '../TableActions';\nimport { ACTIONS } from '../../../constants';\n\nconst formatRows = ({ rows, url, toggleModal, label, firstColumn = 'name' }) =>\n rows.map(data => {\n const editUrl = `${url}/update/${data.id}`;\n return {\n ...data,\n [firstColumn]: (\n <Link to={editUrl} role=\"button\">\n {data[firstColumn]}\n </Link>\n ),\n actions: <TableActions editUrl={editUrl} data={data} showDeleteModal={toggleModal} />\n };\n });\n\nconst getSanitizedColumnLabel = columnProp => {\n let sanitizedChar = '';\n\n for (let index = 0; index < columnProp.length; index += 1) {\n if (index && columnProp[index] === columnProp[index].toUpperCase())\n sanitizedChar = `${sanitizedChar} ${columnProp[index].toLowerCase()}`;\n else sanitizedChar += columnProp[index];\n }\n return sanitizedChar;\n};\n\nconst getColumnLabels = (listingProperties, properties, dynamicProperties) => {\n const allProperties = { ...properties, ...dynamicProperties };\n return listingProperties.reduce((acc, listingProperty) => {\n const label = allProperties[listingProperty].label || getSanitizedColumnLabel(listingProperty);\n return { ...acc, ...{ [listingProperty]: label } };\n }, {});\n};\n\nconst populateRows = ({ toggleModal, url, entitySchema, rows }) => {\n const { listingProperties, properties, dynamicProperties = {}, formProperties } = entitySchema;\n const columns = [...listingProperties, ACTIONS];\n const [firstColumn] = columns;\n const labels = {\n ...getColumnLabels(listingProperties, properties, dynamicProperties),\n [ACTIONS]: ACTIONS\n };\n\n return {\n identification: 'id',\n sort: null,\n columns,\n labels,\n orderBy: [...formProperties],\n rows: formatRows({ firstColumn, rows, url, toggleModal })\n };\n};\n\nexport { populateRows, formatRows };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"populate-rows.js","names":["_react","_interopRequireDefault","require","_reactRouterDom","_TableActions","_constants","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","formatRows","_ref","rows","url","toggleModal","label","_ref$firstColumn","firstColumn","isEnquiry","map","data","editUrl","concat","id","rowProps","createElement","Link","to","role","actions","showDeleteModal","exports","getSanitizedColumnLabel","columnProp","sanitizedChar","index","toUpperCase","toLowerCase","buildArrayRowContent","rowData","className","rowGroup","_ref2","value","buildArrayRowData","dataGroups","groups","Math","ceil","currentStart","slice","getParsedRowData","reduce","acc","parsedData","Array","isArray","getColumnsAndLabels","listingProperties","allProperties","columns","labels","listingProperty","propKey","includes","split","_ref3","parsedRowData","populateRows","_ref4","entitySchema","schemaId","properties","_entitySchema$dynamic","dynamicProperties","formProperties","columnOptions","_toConsumableArray2","ACTIONS","_getColumnsAndLabels","_columns","_slicedToArray2","identification","sort","orderBy"],"sources":["../../../../src/components/ListingTable/mappers/populate-rows.js"],"sourcesContent":["import React from 'react';\nimport { Link } from 'react-router-dom';\nimport TableActions from '../TableActions';\nimport { ACTIONS } from '../../../constants';\n\nconst formatRows = ({ rows, url, toggleModal, label, firstColumn = 'name', isEnquiry }) =>\n rows.map(data => {\n const editUrl = `${url}/update/${data.id}`;\n const rowProps = {\n ...data,\n [firstColumn]: (\n <Link to={editUrl} role=\"button\">\n {data[firstColumn]}\n </Link>\n )\n };\n if (!isEnquiry)\n rowProps.actions = (\n <TableActions editUrl={editUrl} data={data} showDeleteModal={toggleModal} />\n );\n return rowProps;\n });\n\nconst getSanitizedColumnLabel = columnProp => {\n let sanitizedChar = '';\n\n for (let index = 0; index < columnProp.length; index += 1) {\n if (index && columnProp[index] === columnProp[index].toUpperCase())\n sanitizedChar = `${sanitizedChar} ${columnProp[index].toLowerCase()}`;\n else sanitizedChar += columnProp[index];\n }\n return sanitizedChar;\n};\n\nconst buildArrayRowContent = rowData => (\n <div className=\"table-row-list\">\n {rowData.map(rowGroup => (\n <div className=\"table-row-list__group\">\n {rowGroup.map(({ label, value, url }) => (\n <div className=\"table-row-list__group__item\">\n <span className=\"table-row-list__group__item__label\"> {label}:</span>\n {url ? (\n <Link to={url} role=\"button\" className=\"table-row-list__group__item__value\">\n {value}\n </Link>\n ) : (\n <span className=\"table-row-list__group__item__value\"> {value}</span>\n )}\n </div>\n ))}\n </div>\n ))}\n </div>\n);\n\nconst buildArrayRowData = rowData => {\n const dataGroups = [];\n const groups = Math.ceil(rowData.length / 3) || 1;\n for (let index = 0; index < groups; index += 1) {\n const currentStart = index * groups;\n dataGroups[index] = rowData.slice(currentStart, currentStart + 3);\n }\n\n return buildArrayRowContent(dataGroups);\n};\n\nconst getParsedRowData = rows =>\n rows.map(rowData =>\n Object.keys(rowData).reduce((acc, key) => {\n const parsedData = Array.isArray(rowData[key])\n ? buildArrayRowData(rowData[key])\n : rowData[key];\n return { ...acc, [key]: parsedData };\n }, {})\n );\n\nconst getColumnsAndLabels = (listingProperties, allProperties, rows) => {\n const columns = [];\n const labels = {};\n\n listingProperties.forEach(listingProperty => {\n const propKey = listingProperty.includes(' ') ? listingProperty.split(' ')[0] : listingProperty;\n const { label } = allProperties[propKey] || {};\n columns.push(propKey);\n labels[propKey] = label || getSanitizedColumnLabel(propKey);\n });\n const parsedRowData = getParsedRowData(rows);\n\n return { columns, labels, parsedRowData };\n};\n\nconst populateRows = ({ toggleModal, url, entitySchema, rows }) => {\n const {\n id: schemaId,\n listingProperties,\n properties,\n dynamicProperties = {},\n formProperties\n } = entitySchema;\n\n const isEnquiry = schemaId === 'enquiry';\n const columnOptions = !isEnquiry ? [...listingProperties, ACTIONS] : [...listingProperties];\n\n const allProperties = { ...properties, ...dynamicProperties };\n const { columns, labels, parsedRowData } = getColumnsAndLabels(\n columnOptions,\n allProperties,\n rows\n );\n const [firstColumn] = columns;\n\n return {\n identification: 'id',\n sort: null,\n columns,\n labels,\n orderBy: [...formProperties],\n rows: formatRows({ firstColumn, rows: parsedRowData, url, toggleModal, isEnquiry }),\n isEnquiry\n };\n};\n\nexport { populateRows, formatRows, getParsedRowData };\n"],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { useToasts } from '@blaze-react/toaster';
|
|
|
11
11
|
import ListingTableContent from './ListingTableContent';
|
|
12
12
|
import availableActions from '../EntityManager/Entity/actions-handlers';
|
|
13
13
|
import { fetchData } from './service';
|
|
14
|
-
import { populateRows, formatRows } from './mappers/populate-rows';
|
|
14
|
+
import { populateRows, formatRows, getParsedRowData } from './mappers/populate-rows';
|
|
15
15
|
import { getDefaultQueryParams } from '../../utils/get-default-query-params';
|
|
16
16
|
const OVER_SCAN_BUFFER = 10;
|
|
17
17
|
const ListingTable = ({
|
|
@@ -99,7 +99,8 @@ const ListingTable = ({
|
|
|
99
99
|
}
|
|
100
100
|
});
|
|
101
101
|
const {
|
|
102
|
-
columns
|
|
102
|
+
columns,
|
|
103
|
+
isEnquiry
|
|
103
104
|
} = tableData;
|
|
104
105
|
const [firstColumn] = columns;
|
|
105
106
|
setTableData(_objectSpread(_objectSpread({}, tableData), {}, {
|
|
@@ -107,10 +108,11 @@ const ListingTable = ({
|
|
|
107
108
|
[property]: direction
|
|
108
109
|
},
|
|
109
110
|
rows: formatRows({
|
|
110
|
-
rows: data,
|
|
111
|
+
rows: getParsedRowData(data),
|
|
111
112
|
url: match.url,
|
|
112
113
|
toggleModal,
|
|
113
|
-
firstColumn
|
|
114
|
+
firstColumn,
|
|
115
|
+
isEnquiry
|
|
114
116
|
})
|
|
115
117
|
}));
|
|
116
118
|
};
|
|
@@ -132,9 +134,10 @@ const ListingTable = ({
|
|
|
132
134
|
}
|
|
133
135
|
});
|
|
134
136
|
const updatedRows = [...tableData.rows, ...formatRows({
|
|
135
|
-
rows: data,
|
|
137
|
+
rows: getParsedRowData(data),
|
|
136
138
|
url: match.url,
|
|
137
|
-
toggleModal
|
|
139
|
+
toggleModal,
|
|
140
|
+
isEnquiry: tableData.isEnquiry
|
|
138
141
|
})];
|
|
139
142
|
setVerifiedRanges([...verifiedRanges, loadIndex]);
|
|
140
143
|
setQueryParams(updatedQueryParams);
|
|
@@ -145,6 +148,7 @@ const ListingTable = ({
|
|
|
145
148
|
}
|
|
146
149
|
};
|
|
147
150
|
if (!tableData || !tableData.rows) return 'loading';
|
|
151
|
+
const showAddButton = !!tableData.rows.length && !tableData.isEnquiry;
|
|
148
152
|
return /*#__PURE__*/React.createElement("div", {
|
|
149
153
|
className: "page"
|
|
150
154
|
}, modalStatus && /*#__PURE__*/React.createElement(DeleteAction, {
|
|
@@ -154,7 +158,7 @@ const ListingTable = ({
|
|
|
154
158
|
}), /*#__PURE__*/React.createElement(PageHeader, {
|
|
155
159
|
title: entitySchema.displayName,
|
|
156
160
|
subtitle: ""
|
|
157
|
-
},
|
|
161
|
+
}, showAddButton && /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Link, {
|
|
158
162
|
"data-testid": "addEntity",
|
|
159
163
|
className: "button button--small",
|
|
160
164
|
to: `${match.url}/create`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListingTable.js","names":["useApolloClient","React","useEffect","useState","Fragment","PropTypes","withRouter","Link","More","PageHeader","DeleteAction","useToasts","ListingTableContent","availableActions","fetchData","populateRows","formatRows","getDefaultQueryParams","OVER_SCAN_BUFFER","ListingTable","match","entitySchema","tableData","setTableData","modalStatus","setModalStatus","itemToDelete","setItemToDelete","previousSchema","setPreviousSchema","id","scrollToIndex","setScrollToIndex","verifiedRanges","setVerifiedRanges","queryParamsDefault","schema","queryParams","setQueryParams","client","addToast","data","querySettings","populatedTable","toggleModal","url","rows","onCloseCardPrompt","item","deleteAction","delete","submit","parsedFormValues","updatedTableData","_objectSpread","filter","handleSort","event","property","direction","Object","entries","sortQueryParams","sort","columns","firstColumn","appliedSort","handleRenderedItems","params","startIndex","rowsLength","length","loadIndex","Math","floor","includes","updatedQueryParams","offset","updatedRows","createElement","className","onClose","itemName","name","title","displayName","subtitle","to","Actions","Avatar","isMoreMenu","Content","overScanBuffer","onSort","onRenderItems","propTypes","object","isRequired"],"sources":["../../../src/components/ListingTable/ListingTable.js"],"sourcesContent":["import { useApolloClient } from '@apollo/client';\nimport React, { useEffect, useState, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter, Link } from 'react-router-dom';\nimport More from '@blaze-react/more';\nimport { PageHeader, DeleteAction } from '@blaze-cms/admin';\nimport { useToasts } from '@blaze-react/toaster';\nimport ListingTableContent from './ListingTableContent';\nimport availableActions from '../EntityManager/Entity/actions-handlers';\nimport { fetchData } from './service';\nimport { populateRows, formatRows } from './mappers/populate-rows';\nimport { getDefaultQueryParams } from '../../utils/get-default-query-params';\n\nconst OVER_SCAN_BUFFER = 10;\n\nconst ListingTable = ({ match, entitySchema }) => {\n const [tableData, setTableData] = useState({});\n const [modalStatus, setModalStatus] = useState(false);\n const [itemToDelete, setItemToDelete] = useState({});\n const [previousSchema, setPreviousSchema] = useState({ id: null });\n const [scrollToIndex, setScrollToIndex] = useState(0);\n const [verifiedRanges, setVerifiedRanges] = useState([]);\n const queryParamsDefault = getDefaultQueryParams({ schema: entitySchema });\n const [queryParams, setQueryParams] = useState(queryParamsDefault);\n const client = useApolloClient();\n const { addToast } = useToasts();\n\n useEffect(\n () => {\n (async () => {\n if (\n entitySchema.id !== previousSchema.id ||\n (previousSchema.id === null && entitySchema.id)\n ) {\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: queryParamsDefault\n }\n });\n const populatedTable = populateRows({\n toggleModal,\n url: match.url,\n entitySchema,\n rows: data\n });\n setTableData(populatedTable);\n setPreviousSchema({ id: entitySchema.id });\n }\n })();\n },\n [client, entitySchema, match.url, previousSchema.id, queryParams] // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n const onCloseCardPrompt = () => null;\n\n const toggleModal = item => {\n setModalStatus(!!item);\n setItemToDelete(item || {});\n };\n\n const deleteAction = async () => {\n await availableActions.delete.submit(\n {\n entitySchema,\n parsedFormValues: { id: itemToDelete.id },\n client\n },\n addToast\n );\n\n toggleModal();\n\n const updatedTableData = {\n ...tableData,\n rows: tableData.rows.filter(({ id }) => id !== itemToDelete.id)\n };\n\n setTableData(updatedTableData);\n };\n\n const handleSort = async event => {\n const [[property, direction]] = Object.entries(event);\n const sortQueryParams = {\n ...queryParamsDefault,\n sort: [{ property, direction }]\n };\n setScrollToIndex(0);\n setVerifiedRanges([]);\n setQueryParams(sortQueryParams);\n\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: sortQueryParams\n }\n });\n const { columns } = tableData;\n const [firstColumn] = columns;\n\n setTableData({\n ...tableData,\n appliedSort: { [property]: direction },\n rows: formatRows({ rows: data, url: match.url, toggleModal, firstColumn })\n });\n };\n\n const handleRenderedItems = async params => {\n const { startIndex } = params;\n const rowsLength = tableData.rows.length;\n const loadIndex = Math.floor(rowsLength / 3) - OVER_SCAN_BUFFER;\n if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {\n const updatedQueryParams = {\n ...queryParams,\n offset: rowsLength\n };\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: updatedQueryParams\n }\n });\n const updatedRows = [\n ...tableData.rows,\n ...formatRows({ rows: data, url: match.url, toggleModal })\n ];\n\n setVerifiedRanges([...verifiedRanges, loadIndex]);\n setQueryParams(updatedQueryParams);\n setTableData({\n ...tableData,\n rows: updatedRows\n });\n setScrollToIndex(startIndex + OVER_SCAN_BUFFER);\n }\n };\n\n if (!tableData || !tableData.rows) return 'loading';\n\n return (\n <div className=\"page\">\n {modalStatus && (\n <DeleteAction\n onClose={toggleModal}\n deleteAction={deleteAction}\n itemName={itemToDelete.name}\n />\n )}\n <PageHeader title={entitySchema.displayName} subtitle=\"\">\n {!!tableData.rows.length && (\n <Fragment>\n <Link\n data-testid=\"addEntity\"\n className=\"button button--small\"\n to={`${match.url}/create`}>\n Add\n </Link>\n <PageHeader.Actions>\n <More>\n <More.Avatar isMoreMenu>\n <span className=\"material-icons\">more_vert</span>\n </More.Avatar>\n <More.Content isMoreMenu />\n </More>\n </PageHeader.Actions>\n </Fragment>\n )}\n </PageHeader>\n <ListingTableContent\n overScanBuffer={OVER_SCAN_BUFFER}\n onSort={handleSort}\n onRenderItems={handleRenderedItems}\n tableData={tableData}\n onCloseCardPrompt={onCloseCardPrompt}\n scrollToIndex={scrollToIndex}\n />\n </div>\n );\n};\nListingTable.propTypes = {\n entitySchema: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired\n};\n\nexport default withRouter(ListingTable);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListingTable.js","names":["useApolloClient","React","useEffect","useState","Fragment","PropTypes","withRouter","Link","More","PageHeader","DeleteAction","useToasts","ListingTableContent","availableActions","fetchData","populateRows","formatRows","getParsedRowData","getDefaultQueryParams","OVER_SCAN_BUFFER","ListingTable","match","entitySchema","tableData","setTableData","modalStatus","setModalStatus","itemToDelete","setItemToDelete","previousSchema","setPreviousSchema","id","scrollToIndex","setScrollToIndex","verifiedRanges","setVerifiedRanges","queryParamsDefault","schema","queryParams","setQueryParams","client","addToast","data","querySettings","populatedTable","toggleModal","url","rows","onCloseCardPrompt","item","deleteAction","delete","submit","parsedFormValues","updatedTableData","_objectSpread","filter","handleSort","event","property","direction","Object","entries","sortQueryParams","sort","columns","isEnquiry","firstColumn","appliedSort","handleRenderedItems","params","startIndex","rowsLength","length","loadIndex","Math","floor","includes","updatedQueryParams","offset","updatedRows","showAddButton","createElement","className","onClose","itemName","name","title","displayName","subtitle","to","Actions","Avatar","isMoreMenu","Content","overScanBuffer","onSort","onRenderItems","propTypes","object","isRequired"],"sources":["../../../src/components/ListingTable/ListingTable.js"],"sourcesContent":["import { useApolloClient } from '@apollo/client';\nimport React, { useEffect, useState, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter, Link } from 'react-router-dom';\nimport More from '@blaze-react/more';\nimport { PageHeader, DeleteAction } from '@blaze-cms/admin';\nimport { useToasts } from '@blaze-react/toaster';\nimport ListingTableContent from './ListingTableContent';\nimport availableActions from '../EntityManager/Entity/actions-handlers';\nimport { fetchData } from './service';\nimport { populateRows, formatRows, getParsedRowData } from './mappers/populate-rows';\nimport { getDefaultQueryParams } from '../../utils/get-default-query-params';\n\nconst OVER_SCAN_BUFFER = 10;\n\nconst ListingTable = ({ match, entitySchema }) => {\n const [tableData, setTableData] = useState({});\n const [modalStatus, setModalStatus] = useState(false);\n const [itemToDelete, setItemToDelete] = useState({});\n const [previousSchema, setPreviousSchema] = useState({ id: null });\n const [scrollToIndex, setScrollToIndex] = useState(0);\n const [verifiedRanges, setVerifiedRanges] = useState([]);\n const queryParamsDefault = getDefaultQueryParams({ schema: entitySchema });\n const [queryParams, setQueryParams] = useState(queryParamsDefault);\n const client = useApolloClient();\n const { addToast } = useToasts();\n\n useEffect(\n () => {\n (async () => {\n if (\n entitySchema.id !== previousSchema.id ||\n (previousSchema.id === null && entitySchema.id)\n ) {\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: queryParamsDefault\n }\n });\n const populatedTable = populateRows({\n toggleModal,\n url: match.url,\n entitySchema,\n rows: data\n });\n\n setTableData(populatedTable);\n setPreviousSchema({ id: entitySchema.id });\n }\n })();\n },\n [client, entitySchema, match.url, previousSchema.id, queryParams] // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n const onCloseCardPrompt = () => null;\n\n const toggleModal = item => {\n setModalStatus(!!item);\n setItemToDelete(item || {});\n };\n\n const deleteAction = async () => {\n await availableActions.delete.submit(\n {\n entitySchema,\n parsedFormValues: { id: itemToDelete.id },\n client\n },\n addToast\n );\n\n toggleModal();\n\n const updatedTableData = {\n ...tableData,\n rows: tableData.rows.filter(({ id }) => id !== itemToDelete.id)\n };\n\n setTableData(updatedTableData);\n };\n\n const handleSort = async event => {\n const [[property, direction]] = Object.entries(event);\n const sortQueryParams = {\n ...queryParamsDefault,\n sort: [{ property, direction }]\n };\n setScrollToIndex(0);\n setVerifiedRanges([]);\n setQueryParams(sortQueryParams);\n\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: sortQueryParams\n }\n });\n const { columns, isEnquiry } = tableData;\n const [firstColumn] = columns;\n\n setTableData({\n ...tableData,\n appliedSort: { [property]: direction },\n rows: formatRows({\n rows: getParsedRowData(data),\n url: match.url,\n toggleModal,\n firstColumn,\n isEnquiry\n })\n });\n };\n\n const handleRenderedItems = async params => {\n const { startIndex } = params;\n const rowsLength = tableData.rows.length;\n const loadIndex = Math.floor(rowsLength / 3) - OVER_SCAN_BUFFER;\n if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {\n const updatedQueryParams = {\n ...queryParams,\n offset: rowsLength\n };\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: updatedQueryParams\n }\n });\n const updatedRows = [\n ...tableData.rows,\n ...formatRows({\n rows: getParsedRowData(data),\n url: match.url,\n toggleModal,\n isEnquiry: tableData.isEnquiry\n })\n ];\n\n setVerifiedRanges([...verifiedRanges, loadIndex]);\n setQueryParams(updatedQueryParams);\n setTableData({\n ...tableData,\n rows: updatedRows\n });\n setScrollToIndex(startIndex + OVER_SCAN_BUFFER);\n }\n };\n\n if (!tableData || !tableData.rows) return 'loading';\n const showAddButton = !!tableData.rows.length && !tableData.isEnquiry;\n\n return (\n <div className=\"page\">\n {modalStatus && (\n <DeleteAction\n onClose={toggleModal}\n deleteAction={deleteAction}\n itemName={itemToDelete.name}\n />\n )}\n <PageHeader title={entitySchema.displayName} subtitle=\"\">\n {showAddButton && (\n <Fragment>\n <Link\n data-testid=\"addEntity\"\n className=\"button button--small\"\n to={`${match.url}/create`}>\n Add\n </Link>\n <PageHeader.Actions>\n <More>\n <More.Avatar isMoreMenu>\n <span className=\"material-icons\">more_vert</span>\n </More.Avatar>\n <More.Content isMoreMenu />\n </More>\n </PageHeader.Actions>\n </Fragment>\n )}\n </PageHeader>\n <ListingTableContent\n overScanBuffer={OVER_SCAN_BUFFER}\n onSort={handleSort}\n onRenderItems={handleRenderedItems}\n tableData={tableData}\n onCloseCardPrompt={onCloseCardPrompt}\n scrollToIndex={scrollToIndex}\n />\n </div>\n );\n};\nListingTable.propTypes = {\n entitySchema: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired\n};\n\nexport default withRouter(ListingTable);\n"],"mappings":"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"}
|
|
@@ -15,8 +15,12 @@ const ListingTableContent = ({
|
|
|
15
15
|
scrollToIndex
|
|
16
16
|
}) => {
|
|
17
17
|
const displayTable = tableData && tableData.rows && !!tableData.rows.length;
|
|
18
|
+
const {
|
|
19
|
+
isEnquiry
|
|
20
|
+
} = tableData;
|
|
21
|
+
const className = `page__content${isEnquiry ? ' array-table' : ''}`;
|
|
18
22
|
return /*#__PURE__*/React.createElement(React.Fragment, null, displayTable && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
19
|
-
className:
|
|
23
|
+
className: className
|
|
20
24
|
}, /*#__PURE__*/React.createElement(Table, {
|
|
21
25
|
scrollToIndex: scrollToIndex,
|
|
22
26
|
onSort: onSort,
|
|
@@ -24,7 +28,7 @@ const ListingTableContent = ({
|
|
|
24
28
|
overScanBuffer: overScanBuffer,
|
|
25
29
|
onRenderItems: onRenderItems,
|
|
26
30
|
data: tableData,
|
|
27
|
-
checkboxes:
|
|
31
|
+
checkboxes: !isEnquiry,
|
|
28
32
|
onSelect: handleSelect,
|
|
29
33
|
"data-testid": "listing-table-content"
|
|
30
34
|
}))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListingTableContent.js","names":["React","Table","PropTypes","withRouter","ListingTableContent","tableData","handleSelect","onCloseCardPrompt","selectedMenuItem","match","onSort","onClickRow","overScanBuffer","onRenderItems","scrollToIndex","displayTable","rows","length","
|
|
1
|
+
{"version":3,"file":"ListingTableContent.js","names":["React","Table","PropTypes","withRouter","ListingTableContent","tableData","handleSelect","onCloseCardPrompt","selectedMenuItem","match","onSort","onClickRow","overScanBuffer","onRenderItems","scrollToIndex","displayTable","rows","length","isEnquiry","className","createElement","Fragment","data","checkboxes","onSelect","propTypes","object","isRequired","func","shape","url","string","number","defaultProps"],"sources":["../../../../src/components/ListingTable/ListingTableContent/ListingTableContent.js"],"sourcesContent":["import React from 'react';\nimport Table from '@blaze-react/table';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nconst ListingTableContent = ({\n tableData,\n handleSelect,\n onCloseCardPrompt,\n selectedMenuItem,\n match,\n onSort,\n onClickRow,\n overScanBuffer,\n onRenderItems,\n scrollToIndex\n}) => {\n const displayTable = tableData && tableData.rows && !!tableData.rows.length;\n const { isEnquiry } = tableData;\n const className = `page__content${isEnquiry ? ' array-table' : ''}`;\n\n return (\n <>\n {displayTable && (\n <>\n <div className={className}>\n <Table\n scrollToIndex={scrollToIndex}\n onSort={onSort}\n onClickRow={onClickRow}\n overScanBuffer={overScanBuffer}\n onRenderItems={onRenderItems}\n data={tableData}\n checkboxes={!isEnquiry}\n onSelect={handleSelect}\n data-testid=\"listing-table-content\"\n />\n </div>\n </>\n )}\n </>\n );\n};\n\nListingTableContent.propTypes = {\n tableData: PropTypes.object.isRequired,\n onCloseCardPrompt: PropTypes.func.isRequired,\n selectedMenuItem: PropTypes.object,\n match: PropTypes.shape({\n url: PropTypes.string\n }).isRequired,\n handleSelect: PropTypes.func,\n onSort: PropTypes.func,\n onClickRow: PropTypes.func,\n overScanBuffer: PropTypes.number,\n scrollToIndex: PropTypes.number,\n onRenderItems: PropTypes.func\n};\n\nListingTableContent.defaultProps = {\n handleSelect: () => {},\n onSort: () => {},\n onClickRow: () => {},\n overScanBuffer: 0,\n scrollToIndex: 0,\n onRenderItems: () => {},\n selectedMenuItem: null\n};\n\nexport default withRouter(ListingTableContent);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,KAAK,MAAM,oBAAoB;AACtC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,MAAMC,mBAAmB,GAAGA,CAAC;EAC3BC,SAAS;EACTC,YAAY;EACZC,iBAAiB;EACjBC,gBAAgB;EAChBC,KAAK;EACLC,MAAM;EACNC,UAAU;EACVC,cAAc;EACdC,aAAa;EACbC;AACF,CAAC,KAAK;EACJ,MAAMC,YAAY,GAAGV,SAAS,IAAIA,SAAS,CAACW,IAAI,IAAI,CAAC,CAACX,SAAS,CAACW,IAAI,CAACC,MAAM;EAC3E,MAAM;IAAEC;EAAU,CAAC,GAAGb,SAAS;EAC/B,MAAMc,SAAS,GAAI,gBAAeD,SAAS,GAAG,cAAc,GAAG,EAAG,EAAC;EAEnE,oBACElB,KAAA,CAAAoB,aAAA,CAAApB,KAAA,CAAAqB,QAAA,QACGN,YAAY,iBACXf,KAAA,CAAAoB,aAAA,CAAApB,KAAA,CAAAqB,QAAA,qBACErB,KAAA,CAAAoB,aAAA;IAAKD,SAAS,EAAEA;EAAU,gBACxBnB,KAAA,CAAAoB,aAAA,CAACnB,KAAK;IACJa,aAAa,EAAEA,aAAc;IAC7BJ,MAAM,EAAEA,MAAO;IACfC,UAAU,EAAEA,UAAW;IACvBC,cAAc,EAAEA,cAAe;IAC/BC,aAAa,EAAEA,aAAc;IAC7BS,IAAI,EAAEjB,SAAU;IAChBkB,UAAU,EAAE,CAACL,SAAU;IACvBM,QAAQ,EAAElB,YAAa;IACvB,eAAY;EAAuB,CACpC,CACE,CACL,CAEJ,CAAC;AAEP,CAAC;AAEDF,mBAAmB,CAACqB,SAAS,GAAG;EAC9BpB,SAAS,EAAEH,SAAS,CAACwB,MAAM,CAACC,UAAU;EACtCpB,iBAAiB,EAAEL,SAAS,CAAC0B,IAAI,CAACD,UAAU;EAC5CnB,gBAAgB,EAAEN,SAAS,CAACwB,MAAM;EAClCjB,KAAK,EAAEP,SAAS,CAAC2B,KAAK,CAAC;IACrBC,GAAG,EAAE5B,SAAS,CAAC6B;EACjB,CAAC,CAAC,CAACJ,UAAU;EACbrB,YAAY,EAAEJ,SAAS,CAAC0B,IAAI;EAC5BlB,MAAM,EAAER,SAAS,CAAC0B,IAAI;EACtBjB,UAAU,EAAET,SAAS,CAAC0B,IAAI;EAC1BhB,cAAc,EAAEV,SAAS,CAAC8B,MAAM;EAChClB,aAAa,EAAEZ,SAAS,CAAC8B,MAAM;EAC/BnB,aAAa,EAAEX,SAAS,CAAC0B;AAC3B,CAAC;AAEDxB,mBAAmB,CAAC6B,YAAY,GAAG;EACjC3B,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBI,MAAM,EAAEA,CAAA,KAAM,CAAC,CAAC;EAChBC,UAAU,EAAEA,CAAA,KAAM,CAAC,CAAC;EACpBC,cAAc,EAAE,CAAC;EACjBE,aAAa,EAAE,CAAC;EAChBD,aAAa,EAAEA,CAAA,KAAM,CAAC,CAAC;EACvBL,gBAAgB,EAAE;AACpB,CAAC;AAED,eAAeL,UAAU,CAACC,mBAAmB,CAAC"}
|
|
@@ -10,20 +10,22 @@ const formatRows = ({
|
|
|
10
10
|
url,
|
|
11
11
|
toggleModal,
|
|
12
12
|
label,
|
|
13
|
-
firstColumn = 'name'
|
|
13
|
+
firstColumn = 'name',
|
|
14
|
+
isEnquiry
|
|
14
15
|
}) => rows.map(data => {
|
|
15
16
|
const editUrl = `${url}/update/${data.id}`;
|
|
16
|
-
|
|
17
|
+
const rowProps = _objectSpread(_objectSpread({}, data), {}, {
|
|
17
18
|
[firstColumn]: /*#__PURE__*/React.createElement(Link, {
|
|
18
19
|
to: editUrl,
|
|
19
20
|
role: "button"
|
|
20
|
-
}, data[firstColumn])
|
|
21
|
-
actions: /*#__PURE__*/React.createElement(TableActions, {
|
|
22
|
-
editUrl: editUrl,
|
|
23
|
-
data: data,
|
|
24
|
-
showDeleteModal: toggleModal
|
|
25
|
-
})
|
|
21
|
+
}, data[firstColumn])
|
|
26
22
|
});
|
|
23
|
+
if (!isEnquiry) rowProps.actions = /*#__PURE__*/React.createElement(TableActions, {
|
|
24
|
+
editUrl: editUrl,
|
|
25
|
+
data: data,
|
|
26
|
+
showDeleteModal: toggleModal
|
|
27
|
+
});
|
|
28
|
+
return rowProps;
|
|
27
29
|
});
|
|
28
30
|
const getSanitizedColumnLabel = columnProp => {
|
|
29
31
|
let sanitizedChar = '';
|
|
@@ -32,14 +34,57 @@ const getSanitizedColumnLabel = columnProp => {
|
|
|
32
34
|
}
|
|
33
35
|
return sanitizedChar;
|
|
34
36
|
};
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
const buildArrayRowContent = rowData => /*#__PURE__*/React.createElement("div", {
|
|
38
|
+
className: "table-row-list"
|
|
39
|
+
}, rowData.map(rowGroup => /*#__PURE__*/React.createElement("div", {
|
|
40
|
+
className: "table-row-list__group"
|
|
41
|
+
}, rowGroup.map(({
|
|
42
|
+
label,
|
|
43
|
+
value,
|
|
44
|
+
url
|
|
45
|
+
}) => /*#__PURE__*/React.createElement("div", {
|
|
46
|
+
className: "table-row-list__group__item"
|
|
47
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
48
|
+
className: "table-row-list__group__item__label"
|
|
49
|
+
}, " ", label, ":"), url ? /*#__PURE__*/React.createElement(Link, {
|
|
50
|
+
to: url,
|
|
51
|
+
role: "button",
|
|
52
|
+
className: "table-row-list__group__item__value"
|
|
53
|
+
}, value) : /*#__PURE__*/React.createElement("span", {
|
|
54
|
+
className: "table-row-list__group__item__value"
|
|
55
|
+
}, " ", value))))));
|
|
56
|
+
const buildArrayRowData = rowData => {
|
|
57
|
+
const dataGroups = [];
|
|
58
|
+
const groups = Math.ceil(rowData.length / 3) || 1;
|
|
59
|
+
for (let index = 0; index < groups; index += 1) {
|
|
60
|
+
const currentStart = index * groups;
|
|
61
|
+
dataGroups[index] = rowData.slice(currentStart, currentStart + 3);
|
|
62
|
+
}
|
|
63
|
+
return buildArrayRowContent(dataGroups);
|
|
64
|
+
};
|
|
65
|
+
const getParsedRowData = rows => rows.map(rowData => Object.keys(rowData).reduce((acc, key) => {
|
|
66
|
+
const parsedData = Array.isArray(rowData[key]) ? buildArrayRowData(rowData[key]) : rowData[key];
|
|
67
|
+
return _objectSpread(_objectSpread({}, acc), {}, {
|
|
68
|
+
[key]: parsedData
|
|
69
|
+
});
|
|
70
|
+
}, {}));
|
|
71
|
+
const getColumnsAndLabels = (listingProperties, allProperties, rows) => {
|
|
72
|
+
const columns = [];
|
|
73
|
+
const labels = {};
|
|
74
|
+
listingProperties.forEach(listingProperty => {
|
|
75
|
+
const propKey = listingProperty.includes(' ') ? listingProperty.split(' ')[0] : listingProperty;
|
|
76
|
+
const {
|
|
77
|
+
label
|
|
78
|
+
} = allProperties[propKey] || {};
|
|
79
|
+
columns.push(propKey);
|
|
80
|
+
labels[propKey] = label || getSanitizedColumnLabel(propKey);
|
|
81
|
+
});
|
|
82
|
+
const parsedRowData = getParsedRowData(rows);
|
|
83
|
+
return {
|
|
84
|
+
columns,
|
|
85
|
+
labels,
|
|
86
|
+
parsedRowData
|
|
87
|
+
};
|
|
43
88
|
};
|
|
44
89
|
const populateRows = ({
|
|
45
90
|
toggleModal,
|
|
@@ -48,16 +93,21 @@ const populateRows = ({
|
|
|
48
93
|
rows
|
|
49
94
|
}) => {
|
|
50
95
|
const {
|
|
96
|
+
id: schemaId,
|
|
51
97
|
listingProperties,
|
|
52
98
|
properties,
|
|
53
99
|
dynamicProperties = {},
|
|
54
100
|
formProperties
|
|
55
101
|
} = entitySchema;
|
|
56
|
-
const
|
|
102
|
+
const isEnquiry = schemaId === 'enquiry';
|
|
103
|
+
const columnOptions = !isEnquiry ? [...listingProperties, ACTIONS] : [...listingProperties];
|
|
104
|
+
const allProperties = _objectSpread(_objectSpread({}, properties), dynamicProperties);
|
|
105
|
+
const {
|
|
106
|
+
columns,
|
|
107
|
+
labels,
|
|
108
|
+
parsedRowData
|
|
109
|
+
} = getColumnsAndLabels(columnOptions, allProperties, rows);
|
|
57
110
|
const [firstColumn] = columns;
|
|
58
|
-
const labels = _objectSpread(_objectSpread({}, getColumnLabels(listingProperties, properties, dynamicProperties)), {}, {
|
|
59
|
-
[ACTIONS]: ACTIONS
|
|
60
|
-
});
|
|
61
111
|
return {
|
|
62
112
|
identification: 'id',
|
|
63
113
|
sort: null,
|
|
@@ -66,11 +116,13 @@ const populateRows = ({
|
|
|
66
116
|
orderBy: [...formProperties],
|
|
67
117
|
rows: formatRows({
|
|
68
118
|
firstColumn,
|
|
69
|
-
rows,
|
|
119
|
+
rows: parsedRowData,
|
|
70
120
|
url,
|
|
71
|
-
toggleModal
|
|
72
|
-
|
|
121
|
+
toggleModal,
|
|
122
|
+
isEnquiry
|
|
123
|
+
}),
|
|
124
|
+
isEnquiry
|
|
73
125
|
};
|
|
74
126
|
};
|
|
75
|
-
export { populateRows, formatRows };
|
|
127
|
+
export { populateRows, formatRows, getParsedRowData };
|
|
76
128
|
//# sourceMappingURL=populate-rows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"populate-rows.js","names":["React","Link","TableActions","ACTIONS","formatRows","rows","url","toggleModal","label","firstColumn","map","data","editUrl","id","_objectSpread","createElement","to","role","actions","showDeleteModal","getSanitizedColumnLabel","columnProp","sanitizedChar","index","length","toUpperCase","toLowerCase","
|
|
1
|
+
{"version":3,"file":"populate-rows.js","names":["React","Link","TableActions","ACTIONS","formatRows","rows","url","toggleModal","label","firstColumn","isEnquiry","map","data","editUrl","id","rowProps","_objectSpread","createElement","to","role","actions","showDeleteModal","getSanitizedColumnLabel","columnProp","sanitizedChar","index","length","toUpperCase","toLowerCase","buildArrayRowContent","rowData","className","rowGroup","value","buildArrayRowData","dataGroups","groups","Math","ceil","currentStart","slice","getParsedRowData","Object","keys","reduce","acc","key","parsedData","Array","isArray","getColumnsAndLabels","listingProperties","allProperties","columns","labels","forEach","listingProperty","propKey","includes","split","push","parsedRowData","populateRows","entitySchema","schemaId","properties","dynamicProperties","formProperties","columnOptions","identification","sort","orderBy"],"sources":["../../../../src/components/ListingTable/mappers/populate-rows.js"],"sourcesContent":["import React from 'react';\nimport { Link } from 'react-router-dom';\nimport TableActions from '../TableActions';\nimport { ACTIONS } from '../../../constants';\n\nconst formatRows = ({ rows, url, toggleModal, label, firstColumn = 'name', isEnquiry }) =>\n rows.map(data => {\n const editUrl = `${url}/update/${data.id}`;\n const rowProps = {\n ...data,\n [firstColumn]: (\n <Link to={editUrl} role=\"button\">\n {data[firstColumn]}\n </Link>\n )\n };\n if (!isEnquiry)\n rowProps.actions = (\n <TableActions editUrl={editUrl} data={data} showDeleteModal={toggleModal} />\n );\n return rowProps;\n });\n\nconst getSanitizedColumnLabel = columnProp => {\n let sanitizedChar = '';\n\n for (let index = 0; index < columnProp.length; index += 1) {\n if (index && columnProp[index] === columnProp[index].toUpperCase())\n sanitizedChar = `${sanitizedChar} ${columnProp[index].toLowerCase()}`;\n else sanitizedChar += columnProp[index];\n }\n return sanitizedChar;\n};\n\nconst buildArrayRowContent = rowData => (\n <div className=\"table-row-list\">\n {rowData.map(rowGroup => (\n <div className=\"table-row-list__group\">\n {rowGroup.map(({ label, value, url }) => (\n <div className=\"table-row-list__group__item\">\n <span className=\"table-row-list__group__item__label\"> {label}:</span>\n {url ? (\n <Link to={url} role=\"button\" className=\"table-row-list__group__item__value\">\n {value}\n </Link>\n ) : (\n <span className=\"table-row-list__group__item__value\"> {value}</span>\n )}\n </div>\n ))}\n </div>\n ))}\n </div>\n);\n\nconst buildArrayRowData = rowData => {\n const dataGroups = [];\n const groups = Math.ceil(rowData.length / 3) || 1;\n for (let index = 0; index < groups; index += 1) {\n const currentStart = index * groups;\n dataGroups[index] = rowData.slice(currentStart, currentStart + 3);\n }\n\n return buildArrayRowContent(dataGroups);\n};\n\nconst getParsedRowData = rows =>\n rows.map(rowData =>\n Object.keys(rowData).reduce((acc, key) => {\n const parsedData = Array.isArray(rowData[key])\n ? buildArrayRowData(rowData[key])\n : rowData[key];\n return { ...acc, [key]: parsedData };\n }, {})\n );\n\nconst getColumnsAndLabels = (listingProperties, allProperties, rows) => {\n const columns = [];\n const labels = {};\n\n listingProperties.forEach(listingProperty => {\n const propKey = listingProperty.includes(' ') ? listingProperty.split(' ')[0] : listingProperty;\n const { label } = allProperties[propKey] || {};\n columns.push(propKey);\n labels[propKey] = label || getSanitizedColumnLabel(propKey);\n });\n const parsedRowData = getParsedRowData(rows);\n\n return { columns, labels, parsedRowData };\n};\n\nconst populateRows = ({ toggleModal, url, entitySchema, rows }) => {\n const {\n id: schemaId,\n listingProperties,\n properties,\n dynamicProperties = {},\n formProperties\n } = entitySchema;\n\n const isEnquiry = schemaId === 'enquiry';\n const columnOptions = !isEnquiry ? [...listingProperties, ACTIONS] : [...listingProperties];\n\n const allProperties = { ...properties, ...dynamicProperties };\n const { columns, labels, parsedRowData } = getColumnsAndLabels(\n columnOptions,\n allProperties,\n rows\n );\n const [firstColumn] = columns;\n\n return {\n identification: 'id',\n sort: null,\n columns,\n labels,\n orderBy: [...formProperties],\n rows: formatRows({ firstColumn, rows: parsedRowData, url, toggleModal, isEnquiry }),\n isEnquiry\n };\n};\n\nexport { populateRows, formatRows, getParsedRowData };\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/plugin-data-ui",
|
|
3
|
-
"version": "0.130.0-project-admin-customisations.
|
|
3
|
+
"version": "0.130.0-project-admin-customisations.2",
|
|
4
4
|
"description": "Blaze plugin data ui",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -66,5 +66,5 @@
|
|
|
66
66
|
"lib/*",
|
|
67
67
|
"lib-es/*"
|
|
68
68
|
],
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "abe09050b6b5c41cfa06b8c56bf7824ea15a51e1"
|
|
70
70
|
}
|
|
@@ -8,7 +8,7 @@ import { useToasts } from '@blaze-react/toaster';
|
|
|
8
8
|
import ListingTableContent from './ListingTableContent';
|
|
9
9
|
import availableActions from '../EntityManager/Entity/actions-handlers';
|
|
10
10
|
import { fetchData } from './service';
|
|
11
|
-
import { populateRows, formatRows } from './mappers/populate-rows';
|
|
11
|
+
import { populateRows, formatRows, getParsedRowData } from './mappers/populate-rows';
|
|
12
12
|
import { getDefaultQueryParams } from '../../utils/get-default-query-params';
|
|
13
13
|
|
|
14
14
|
const OVER_SCAN_BUFFER = 10;
|
|
@@ -45,6 +45,7 @@ const ListingTable = ({ match, entitySchema }) => {
|
|
|
45
45
|
entitySchema,
|
|
46
46
|
rows: data
|
|
47
47
|
});
|
|
48
|
+
|
|
48
49
|
setTableData(populatedTable);
|
|
49
50
|
setPreviousSchema({ id: entitySchema.id });
|
|
50
51
|
}
|
|
@@ -97,13 +98,19 @@ const ListingTable = ({ match, entitySchema }) => {
|
|
|
97
98
|
queryParams: sortQueryParams
|
|
98
99
|
}
|
|
99
100
|
});
|
|
100
|
-
const { columns } = tableData;
|
|
101
|
+
const { columns, isEnquiry } = tableData;
|
|
101
102
|
const [firstColumn] = columns;
|
|
102
103
|
|
|
103
104
|
setTableData({
|
|
104
105
|
...tableData,
|
|
105
106
|
appliedSort: { [property]: direction },
|
|
106
|
-
rows: formatRows({
|
|
107
|
+
rows: formatRows({
|
|
108
|
+
rows: getParsedRowData(data),
|
|
109
|
+
url: match.url,
|
|
110
|
+
toggleModal,
|
|
111
|
+
firstColumn,
|
|
112
|
+
isEnquiry
|
|
113
|
+
})
|
|
107
114
|
});
|
|
108
115
|
};
|
|
109
116
|
|
|
@@ -125,7 +132,12 @@ const ListingTable = ({ match, entitySchema }) => {
|
|
|
125
132
|
});
|
|
126
133
|
const updatedRows = [
|
|
127
134
|
...tableData.rows,
|
|
128
|
-
...formatRows({
|
|
135
|
+
...formatRows({
|
|
136
|
+
rows: getParsedRowData(data),
|
|
137
|
+
url: match.url,
|
|
138
|
+
toggleModal,
|
|
139
|
+
isEnquiry: tableData.isEnquiry
|
|
140
|
+
})
|
|
129
141
|
];
|
|
130
142
|
|
|
131
143
|
setVerifiedRanges([...verifiedRanges, loadIndex]);
|
|
@@ -139,6 +151,7 @@ const ListingTable = ({ match, entitySchema }) => {
|
|
|
139
151
|
};
|
|
140
152
|
|
|
141
153
|
if (!tableData || !tableData.rows) return 'loading';
|
|
154
|
+
const showAddButton = !!tableData.rows.length && !tableData.isEnquiry;
|
|
142
155
|
|
|
143
156
|
return (
|
|
144
157
|
<div className="page">
|
|
@@ -150,7 +163,7 @@ const ListingTable = ({ match, entitySchema }) => {
|
|
|
150
163
|
/>
|
|
151
164
|
)}
|
|
152
165
|
<PageHeader title={entitySchema.displayName} subtitle="">
|
|
153
|
-
{
|
|
166
|
+
{showAddButton && (
|
|
154
167
|
<Fragment>
|
|
155
168
|
<Link
|
|
156
169
|
data-testid="addEntity"
|
|
@@ -16,12 +16,14 @@ const ListingTableContent = ({
|
|
|
16
16
|
scrollToIndex
|
|
17
17
|
}) => {
|
|
18
18
|
const displayTable = tableData && tableData.rows && !!tableData.rows.length;
|
|
19
|
+
const { isEnquiry } = tableData;
|
|
20
|
+
const className = `page__content${isEnquiry ? ' array-table' : ''}`;
|
|
19
21
|
|
|
20
22
|
return (
|
|
21
23
|
<>
|
|
22
24
|
{displayTable && (
|
|
23
25
|
<>
|
|
24
|
-
<div className=
|
|
26
|
+
<div className={className}>
|
|
25
27
|
<Table
|
|
26
28
|
scrollToIndex={scrollToIndex}
|
|
27
29
|
onSort={onSort}
|
|
@@ -29,7 +31,7 @@ const ListingTableContent = ({
|
|
|
29
31
|
overScanBuffer={overScanBuffer}
|
|
30
32
|
onRenderItems={onRenderItems}
|
|
31
33
|
data={tableData}
|
|
32
|
-
checkboxes
|
|
34
|
+
checkboxes={!isEnquiry}
|
|
33
35
|
onSelect={handleSelect}
|
|
34
36
|
data-testid="listing-table-content"
|
|
35
37
|
/>
|
|
@@ -3,18 +3,22 @@ import { Link } from 'react-router-dom';
|
|
|
3
3
|
import TableActions from '../TableActions';
|
|
4
4
|
import { ACTIONS } from '../../../constants';
|
|
5
5
|
|
|
6
|
-
const formatRows = ({ rows, url, toggleModal, label, firstColumn = 'name' }) =>
|
|
6
|
+
const formatRows = ({ rows, url, toggleModal, label, firstColumn = 'name', isEnquiry }) =>
|
|
7
7
|
rows.map(data => {
|
|
8
8
|
const editUrl = `${url}/update/${data.id}`;
|
|
9
|
-
|
|
9
|
+
const rowProps = {
|
|
10
10
|
...data,
|
|
11
11
|
[firstColumn]: (
|
|
12
12
|
<Link to={editUrl} role="button">
|
|
13
13
|
{data[firstColumn]}
|
|
14
14
|
</Link>
|
|
15
|
-
)
|
|
16
|
-
actions: <TableActions editUrl={editUrl} data={data} showDeleteModal={toggleModal} />
|
|
15
|
+
)
|
|
17
16
|
};
|
|
17
|
+
if (!isEnquiry)
|
|
18
|
+
rowProps.actions = (
|
|
19
|
+
<TableActions editUrl={editUrl} data={data} showDeleteModal={toggleModal} />
|
|
20
|
+
);
|
|
21
|
+
return rowProps;
|
|
18
22
|
});
|
|
19
23
|
|
|
20
24
|
const getSanitizedColumnLabel = columnProp => {
|
|
@@ -28,22 +32,82 @@ const getSanitizedColumnLabel = columnProp => {
|
|
|
28
32
|
return sanitizedChar;
|
|
29
33
|
};
|
|
30
34
|
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
const buildArrayRowContent = rowData => (
|
|
36
|
+
<div className="table-row-list">
|
|
37
|
+
{rowData.map(rowGroup => (
|
|
38
|
+
<div className="table-row-list__group">
|
|
39
|
+
{rowGroup.map(({ label, value, url }) => (
|
|
40
|
+
<div className="table-row-list__group__item">
|
|
41
|
+
<span className="table-row-list__group__item__label"> {label}:</span>
|
|
42
|
+
{url ? (
|
|
43
|
+
<Link to={url} role="button" className="table-row-list__group__item__value">
|
|
44
|
+
{value}
|
|
45
|
+
</Link>
|
|
46
|
+
) : (
|
|
47
|
+
<span className="table-row-list__group__item__value"> {value}</span>
|
|
48
|
+
)}
|
|
49
|
+
</div>
|
|
50
|
+
))}
|
|
51
|
+
</div>
|
|
52
|
+
))}
|
|
53
|
+
</div>
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
const buildArrayRowData = rowData => {
|
|
57
|
+
const dataGroups = [];
|
|
58
|
+
const groups = Math.ceil(rowData.length / 3) || 1;
|
|
59
|
+
for (let index = 0; index < groups; index += 1) {
|
|
60
|
+
const currentStart = index * groups;
|
|
61
|
+
dataGroups[index] = rowData.slice(currentStart, currentStart + 3);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return buildArrayRowContent(dataGroups);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const getParsedRowData = rows =>
|
|
68
|
+
rows.map(rowData =>
|
|
69
|
+
Object.keys(rowData).reduce((acc, key) => {
|
|
70
|
+
const parsedData = Array.isArray(rowData[key])
|
|
71
|
+
? buildArrayRowData(rowData[key])
|
|
72
|
+
: rowData[key];
|
|
73
|
+
return { ...acc, [key]: parsedData };
|
|
74
|
+
}, {})
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
const getColumnsAndLabels = (listingProperties, allProperties, rows) => {
|
|
78
|
+
const columns = [];
|
|
79
|
+
const labels = {};
|
|
80
|
+
|
|
81
|
+
listingProperties.forEach(listingProperty => {
|
|
82
|
+
const propKey = listingProperty.includes(' ') ? listingProperty.split(' ')[0] : listingProperty;
|
|
83
|
+
const { label } = allProperties[propKey] || {};
|
|
84
|
+
columns.push(propKey);
|
|
85
|
+
labels[propKey] = label || getSanitizedColumnLabel(propKey);
|
|
86
|
+
});
|
|
87
|
+
const parsedRowData = getParsedRowData(rows);
|
|
88
|
+
|
|
89
|
+
return { columns, labels, parsedRowData };
|
|
37
90
|
};
|
|
38
91
|
|
|
39
92
|
const populateRows = ({ toggleModal, url, entitySchema, rows }) => {
|
|
40
|
-
const {
|
|
41
|
-
|
|
93
|
+
const {
|
|
94
|
+
id: schemaId,
|
|
95
|
+
listingProperties,
|
|
96
|
+
properties,
|
|
97
|
+
dynamicProperties = {},
|
|
98
|
+
formProperties
|
|
99
|
+
} = entitySchema;
|
|
100
|
+
|
|
101
|
+
const isEnquiry = schemaId === 'enquiry';
|
|
102
|
+
const columnOptions = !isEnquiry ? [...listingProperties, ACTIONS] : [...listingProperties];
|
|
103
|
+
|
|
104
|
+
const allProperties = { ...properties, ...dynamicProperties };
|
|
105
|
+
const { columns, labels, parsedRowData } = getColumnsAndLabels(
|
|
106
|
+
columnOptions,
|
|
107
|
+
allProperties,
|
|
108
|
+
rows
|
|
109
|
+
);
|
|
42
110
|
const [firstColumn] = columns;
|
|
43
|
-
const labels = {
|
|
44
|
-
...getColumnLabels(listingProperties, properties, dynamicProperties),
|
|
45
|
-
[ACTIONS]: ACTIONS
|
|
46
|
-
};
|
|
47
111
|
|
|
48
112
|
return {
|
|
49
113
|
identification: 'id',
|
|
@@ -51,8 +115,9 @@ const populateRows = ({ toggleModal, url, entitySchema, rows }) => {
|
|
|
51
115
|
columns,
|
|
52
116
|
labels,
|
|
53
117
|
orderBy: [...formProperties],
|
|
54
|
-
rows: formatRows({ firstColumn, rows, url, toggleModal })
|
|
118
|
+
rows: formatRows({ firstColumn, rows: parsedRowData, url, toggleModal, isEnquiry }),
|
|
119
|
+
isEnquiry
|
|
55
120
|
};
|
|
56
121
|
};
|
|
57
122
|
|
|
58
|
-
export { populateRows, formatRows };
|
|
123
|
+
export { populateRows, formatRows, getParsedRowData };
|