@blaze-cms/plugin-data-ui 0.146.0-node18-core-styles-tooltips.3 → 0.146.0-node18-core-styles-tooltips.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +36 -0
  3. package/lib/components/EntityManager/Entity/Entity.js +16 -7
  4. package/lib/components/EntityManager/Entity/Entity.js.map +1 -1
  5. package/lib/components/EntityManager/Entity/SideBarRelations/index.js +22 -5
  6. package/lib/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
  7. package/lib/components/ListingTable/ListingTable.js +12 -11
  8. package/lib/components/ListingTable/ListingTable.js.map +1 -1
  9. package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js +27 -1
  10. package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
  11. package/lib/components/ListingTable/SearchFilter/SearchContainer.js +313 -0
  12. package/lib/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -0
  13. package/lib/components/ListingTable/SearchFilter/SearchFilter.js +59 -0
  14. package/lib/components/ListingTable/SearchFilter/SearchFilter.js.map +1 -0
  15. package/lib/components/ListingTable/SearchFilter/helpers.js +128 -0
  16. package/lib/components/ListingTable/SearchFilter/helpers.js.map +1 -0
  17. package/lib/components/ListingTable/SearchFilter/querys.js +13 -0
  18. package/lib/components/ListingTable/SearchFilter/querys.js.map +1 -0
  19. package/lib/components/ListingTable/service/index.js +3 -3
  20. package/lib/components/ListingTable/service/index.js.map +1 -1
  21. package/lib/constants.js +3 -1
  22. package/lib/constants.js.map +1 -1
  23. package/lib/utils/build-listing-query.js +4 -4
  24. package/lib/utils/build-listing-query.js.map +1 -1
  25. package/lib-es/components/EntityManager/Entity/Entity.js +7 -3
  26. package/lib-es/components/EntityManager/Entity/Entity.js.map +1 -1
  27. package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js +21 -5
  28. package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
  29. package/lib-es/components/ListingTable/ListingTable.js +12 -11
  30. package/lib-es/components/ListingTable/ListingTable.js.map +1 -1
  31. package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js +16 -1
  32. package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
  33. package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js +207 -0
  34. package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -0
  35. package/lib-es/components/ListingTable/SearchFilter/SearchFilter.js +40 -0
  36. package/lib-es/components/ListingTable/SearchFilter/SearchFilter.js.map +1 -0
  37. package/lib-es/components/ListingTable/SearchFilter/helpers.js +96 -0
  38. package/lib-es/components/ListingTable/SearchFilter/helpers.js.map +1 -0
  39. package/lib-es/components/ListingTable/SearchFilter/querys.js +8 -0
  40. package/lib-es/components/ListingTable/SearchFilter/querys.js.map +1 -0
  41. package/lib-es/components/ListingTable/service/index.js +3 -2
  42. package/lib-es/components/ListingTable/service/index.js.map +1 -1
  43. package/lib-es/constants.js +3 -1
  44. package/lib-es/constants.js.map +1 -1
  45. package/lib-es/utils/build-listing-query.js +4 -4
  46. package/lib-es/utils/build-listing-query.js.map +1 -1
  47. package/package.json +5 -5
  48. package/src/components/EntityManager/Entity/Entity.js +12 -2
  49. package/src/components/EntityManager/Entity/SideBarRelations/index.js +30 -7
  50. package/src/components/ListingTable/ListingTable.js +13 -18
  51. package/src/components/ListingTable/ListingTableContent/ListingTableContent.js +21 -1
  52. package/src/components/ListingTable/SearchFilter/SearchContainer.js +243 -0
  53. package/src/components/ListingTable/SearchFilter/SearchFilter.js +38 -0
  54. package/src/components/ListingTable/SearchFilter/helpers.js +99 -0
  55. package/src/components/ListingTable/SearchFilter/querys.js +9 -0
  56. package/src/components/ListingTable/service/index.js +2 -2
  57. package/src/constants.js +7 -1
  58. package/src/utils/build-listing-query.js +4 -4
@@ -13,7 +13,9 @@ const SideBarRelations = ({
13
13
  schema,
14
14
  onChange,
15
15
  formData,
16
- entity
16
+ entity,
17
+ isOpen,
18
+ onToggle
17
19
  }) => {
18
20
  const {
19
21
  relation: RelationComponent
@@ -23,6 +25,7 @@ const SideBarRelations = ({
23
25
  formattedUpdated,
24
26
  formattedCreated,
25
27
  formattedPublished,
28
+ updatedBy,
26
29
  status
27
30
  } = formData;
28
31
  const client = useApolloClient();
@@ -70,9 +73,18 @@ const SideBarRelations = ({
70
73
  'sidebar__status__badge--unpublished': status === UNPUBLISHED
71
74
  });
72
75
  return /*#__PURE__*/React.createElement("div", {
73
- className: "sidebar",
76
+ className: classnames('sidebar', {
77
+ 'sidebar--collapsed': !isOpen
78
+ }),
74
79
  "data-testid": "sideBarRelations-main-div"
75
80
  }, /*#__PURE__*/React.createElement("div", {
81
+ className: "sidebar__toggle-button",
82
+ onClick: onToggle,
83
+ role: "button",
84
+ "aria-label": isOpen ? 'Collapse sidebar' : 'Expand sidebar'
85
+ }, /*#__PURE__*/React.createElement("i", {
86
+ className: "material-icons"
87
+ }, isOpen ? 'keyboard_arrow_right' : 'keyboard_arrow_left')), /*#__PURE__*/React.createElement("div", {
76
88
  className: "sidebar__content"
77
89
  }, /*#__PURE__*/React.createElement("div", {
78
90
  className: "sidebar__status"
@@ -82,7 +94,7 @@ const SideBarRelations = ({
82
94
  className: "sidebar__status__wrapper"
83
95
  }, /*#__PURE__*/React.createElement("b", null, "Status"), /*#__PURE__*/React.createElement("span", {
84
96
  className: statusClassName
85
- }, formattedStatus)), formattedStatus === PUBLISHED && /*#__PURE__*/React.createElement("p", null, formattedStatus, " on: ", /*#__PURE__*/React.createElement("span", null, " ", formattedPublished))), !schema.displayProperties.disableDefaultAdminInfo && formattedCreated && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("p", null, "Created: ", /*#__PURE__*/React.createElement("span", null, formattedCreated)), /*#__PURE__*/React.createElement("p", null, "Updated: ", /*#__PURE__*/React.createElement("span", null, formattedUpdated))), /*#__PURE__*/React.createElement(CustomSidebarInfoContainer, {
97
+ }, formattedStatus)), formattedStatus === PUBLISHED && /*#__PURE__*/React.createElement("p", null, formattedStatus, " on: ", /*#__PURE__*/React.createElement("span", null, " ", formattedPublished))), !schema.displayProperties.disableDefaultAdminInfo && formattedCreated && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("p", null, "Created: ", /*#__PURE__*/React.createElement("span", null, formattedCreated)), /*#__PURE__*/React.createElement("p", null, "Updated: ", /*#__PURE__*/React.createElement("span", null, formattedUpdated)), updatedBy && /*#__PURE__*/React.createElement("p", null, "Updated by: ", /*#__PURE__*/React.createElement("span", null, updatedBy.name))), /*#__PURE__*/React.createElement(CustomSidebarInfoContainer, {
86
98
  id: itemId,
87
99
  schema: schema,
88
100
  displayProperties: schema.displayProperties
@@ -108,10 +120,14 @@ SideBarRelations.propTypes = {
108
120
  schema: PropTypes.object.isRequired,
109
121
  onChange: PropTypes.func.isRequired,
110
122
  formData: PropTypes.object.isRequired,
111
- entity: PropTypes.object
123
+ entity: PropTypes.object,
124
+ isOpen: PropTypes.bool,
125
+ onToggle: PropTypes.func
112
126
  };
113
127
  SideBarRelations.defaultProps = {
114
- entity: {}
128
+ entity: {},
129
+ isOpen: true,
130
+ onToggle: () => {}
115
131
  };
116
132
  export default SideBarRelations;
117
133
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useState","useEffect","PropTypes","uuidv1","useApolloClient","getQuery","formFieldTypes","classnames","VersionsList","PUBLISHED","UNPUBLISHED","CustomSidebarInfoContainer","EntityNavLinks","SideBarRelations","schema","onChange","formData","entity","relation","RelationComponent","formattedStatus","formattedUpdated","formattedCreated","formattedPublished","status","client","relationsComponents","setRelationsComponents","fetchRelationSchema","entityIdentifier","data","getEntitySchemas","relationSchema","query","variables","identifier","allRelationComponents","Promise","all","relations","filter","showInForm","foreignKey","properties","map","id","staticData","itemId","itemEntity","interfaces","statusClassName","createElement","className","displayProperties","disableDefaultAdminInfo","Fragment","entitySchema","key","onSelect","propTypes","object","isRequired","func","defaultProps"],"sources":["../../../../../src/components/EntityManager/Entity/SideBarRelations/index.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport uuidv1 from 'uuid/v1';\nimport { useApolloClient } from '@apollo/client';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport { formFieldTypes } from '@blaze-cms/react-form-builder';\nimport classnames from 'classnames';\nimport { VersionsList } from '@blaze-cms/versioning-ui';\nimport { PUBLISHED, UNPUBLISHED } from '../../../../constants';\nimport CustomSidebarInfoContainer from './container/CustomSidebarInfoContainer';\nimport EntityNavLinks from '../EntitiyNavLinks';\n\nconst SideBarRelations = ({ schema, onChange, formData, entity }) => {\n const { relation: RelationComponent } = formFieldTypes;\n const { formattedStatus, formattedUpdated, formattedCreated, formattedPublished, status } =\n formData;\n const client = useApolloClient();\n\n const [relationsComponents, setRelationsComponents] = useState(null);\n\n useEffect(() => {\n (async () => {\n const fetchRelationSchema = async ({ entityIdentifier }) => {\n if (!entityIdentifier) return null;\n\n const {\n data: {\n getEntitySchemas: [relationSchema]\n }\n } = await client.query({\n query: getQuery('GET_ENTITY_SCHEMA'),\n variables: { identifier: entityIdentifier }\n });\n return relationSchema;\n };\n\n if (!relationsComponents && schema) {\n const allRelationComponents = await Promise.all(\n schema.relations\n .filter(({ showInForm, foreignKey }) => showInForm && schema.properties[foreignKey])\n .map(async relation => ({\n id: uuidv1(),\n staticData: relation,\n schema: await fetchRelationSchema(relation)\n }))\n );\n\n setRelationsComponents(allRelationComponents);\n }\n })();\n }, [client, relationsComponents, schema, schema.relations]);\n const { id: itemId } = entity;\n const { identifier: itemEntity, interfaces } = schema;\n\n const statusClassName = classnames('sidebar__status__badge', {\n 'sidebar__status__badge--published': status === PUBLISHED,\n 'sidebar__status__badge--unpublished': status === UNPUBLISHED\n });\n\n return (\n <div className=\"sidebar\" data-testid=\"sideBarRelations-main-div\">\n <div className=\"sidebar__content\">\n <div className=\"sidebar__status\">\n {formattedCreated && (\n <div className=\"sidebar__top\">\n <div className=\"sidebar__status__wrapper\">\n <b>Status</b>\n <span className={statusClassName}>{formattedStatus}</span>\n </div>\n {formattedStatus === PUBLISHED && (\n <p>\n {formattedStatus} on: <span> {formattedPublished}</span>\n </p>\n )}\n </div>\n )}\n {!schema.displayProperties.disableDefaultAdminInfo && formattedCreated && (\n <>\n <p>\n Created: <span>{formattedCreated}</span>\n </p>\n <p>\n Updated: <span>{formattedUpdated}</span>\n </p>\n </>\n )}\n\n <CustomSidebarInfoContainer\n id={itemId}\n schema={schema}\n displayProperties={schema.displayProperties}\n />\n </div>\n\n <VersionsList itemEntity={itemEntity} itemId={itemId} interfaces={interfaces} />\n <EntityNavLinks schema={schema} />\n\n {relationsComponents &&\n relationsComponents.map(({ id, staticData, schema: entitySchema }) => (\n <RelationComponent\n formData={formData}\n schema={entitySchema}\n key={id}\n staticData={staticData}\n onSelect={onChange}\n />\n ))}\n </div>\n </div>\n );\n};\n\nSideBarRelations.propTypes = {\n schema: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n formData: PropTypes.object.isRequired,\n entity: PropTypes.object\n};\n\nSideBarRelations.defaultProps = {\n entity: {}\n};\n\nexport default SideBarRelations;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useState","useEffect","PropTypes","uuidv1","useApolloClient","getQuery","formFieldTypes","classnames","VersionsList","PUBLISHED","UNPUBLISHED","CustomSidebarInfoContainer","EntityNavLinks","SideBarRelations","schema","onChange","formData","entity","isOpen","onToggle","relation","RelationComponent","formattedStatus","formattedUpdated","formattedCreated","formattedPublished","updatedBy","status","client","relationsComponents","setRelationsComponents","fetchRelationSchema","entityIdentifier","data","getEntitySchemas","relationSchema","query","variables","identifier","allRelationComponents","Promise","all","relations","filter","showInForm","foreignKey","properties","map","id","staticData","itemId","itemEntity","interfaces","statusClassName","createElement","className","onClick","role","displayProperties","disableDefaultAdminInfo","Fragment","name","entitySchema","key","onSelect","propTypes","object","isRequired","func","bool","defaultProps"],"sources":["../../../../../src/components/EntityManager/Entity/SideBarRelations/index.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport uuidv1 from 'uuid/v1';\nimport { useApolloClient } from '@apollo/client';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport { formFieldTypes } from '@blaze-cms/react-form-builder';\nimport classnames from 'classnames';\nimport { VersionsList } from '@blaze-cms/versioning-ui';\nimport { PUBLISHED, UNPUBLISHED } from '../../../../constants';\nimport CustomSidebarInfoContainer from './container/CustomSidebarInfoContainer';\nimport EntityNavLinks from '../EntitiyNavLinks';\n\nconst SideBarRelations = ({ schema, onChange, formData, entity, isOpen, onToggle }) => {\n const { relation: RelationComponent } = formFieldTypes;\n const {\n formattedStatus,\n formattedUpdated,\n formattedCreated,\n formattedPublished,\n updatedBy,\n status\n } = formData;\n const client = useApolloClient();\n\n const [relationsComponents, setRelationsComponents] = useState(null);\n\n useEffect(() => {\n (async () => {\n const fetchRelationSchema = async ({ entityIdentifier }) => {\n if (!entityIdentifier) return null;\n\n const {\n data: {\n getEntitySchemas: [relationSchema]\n }\n } = await client.query({\n query: getQuery('GET_ENTITY_SCHEMA'),\n variables: { identifier: entityIdentifier }\n });\n return relationSchema;\n };\n\n if (!relationsComponents && schema) {\n const allRelationComponents = await Promise.all(\n schema.relations\n .filter(({ showInForm, foreignKey }) => showInForm && schema.properties[foreignKey])\n .map(async relation => ({\n id: uuidv1(),\n staticData: relation,\n schema: await fetchRelationSchema(relation)\n }))\n );\n\n setRelationsComponents(allRelationComponents);\n }\n })();\n }, [client, relationsComponents, schema, schema.relations]);\n const { id: itemId } = entity;\n const { identifier: itemEntity, interfaces } = schema;\n\n const statusClassName = classnames('sidebar__status__badge', {\n 'sidebar__status__badge--published': status === PUBLISHED,\n 'sidebar__status__badge--unpublished': status === UNPUBLISHED\n });\n\n return (\n <div\n className={classnames('sidebar', { 'sidebar--collapsed': !isOpen })}\n data-testid=\"sideBarRelations-main-div\">\n <div\n className=\"sidebar__toggle-button\"\n onClick={onToggle}\n role=\"button\"\n aria-label={isOpen ? 'Collapse sidebar' : 'Expand sidebar'}>\n <i className=\"material-icons\">{isOpen ? 'keyboard_arrow_right' : 'keyboard_arrow_left'}</i>\n </div>\n <div className=\"sidebar__content\">\n <div className=\"sidebar__status\">\n {formattedCreated && (\n <div className=\"sidebar__top\">\n <div className=\"sidebar__status__wrapper\">\n <b>Status</b>\n <span className={statusClassName}>{formattedStatus}</span>\n </div>\n {formattedStatus === PUBLISHED && (\n <p>\n {formattedStatus} on: <span> {formattedPublished}</span>\n </p>\n )}\n </div>\n )}\n {!schema.displayProperties.disableDefaultAdminInfo && formattedCreated && (\n <>\n <p>\n Created: <span>{formattedCreated}</span>\n </p>\n <p>\n Updated: <span>{formattedUpdated}</span>\n </p>\n {updatedBy && (\n <p>\n Updated by: <span>{updatedBy.name}</span>\n </p>\n )}\n </>\n )}\n\n <CustomSidebarInfoContainer\n id={itemId}\n schema={schema}\n displayProperties={schema.displayProperties}\n />\n </div>\n\n <VersionsList itemEntity={itemEntity} itemId={itemId} interfaces={interfaces} />\n <EntityNavLinks schema={schema} />\n\n {relationsComponents &&\n relationsComponents.map(({ id, staticData, schema: entitySchema }) => (\n <RelationComponent\n formData={formData}\n schema={entitySchema}\n key={id}\n staticData={staticData}\n onSelect={onChange}\n />\n ))}\n </div>\n </div>\n );\n};\n\nSideBarRelations.propTypes = {\n schema: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n formData: PropTypes.object.isRequired,\n entity: PropTypes.object,\n isOpen: PropTypes.bool,\n onToggle: PropTypes.func\n};\nSideBarRelations.defaultProps = {\n entity: {},\n isOpen: true,\n onToggle: () => {}\n};\n\nexport default SideBarRelations;\n"],"mappings":"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","ignoreList":[]}
@@ -3,13 +3,13 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
4
  import React, { useEffect, useState, Fragment } from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import More from '@blaze-react/more';
7
6
  import { useApolloClient } from '@apollo/client';
8
7
  import { withRouter, Link, useLocation } from 'react-router-dom';
9
8
  import { PageHeader, DeleteAction, CardPrompt } from '@blaze-cms/admin';
10
9
  import { useToasts } from '@blaze-react/toaster';
11
10
  import { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';
12
11
  import ListingTableContent from './ListingTableContent';
12
+ import SearchFilter from './SearchFilter/SearchFilter';
13
13
  import availableActions from '../EntityManager/Entity/actions-handlers';
14
14
  import { fetchData } from './service';
15
15
  import { populateRows, formatRows, getParsedRowData } from './mappers/populate-rows';
@@ -42,7 +42,7 @@ const ListingTable = ({
42
42
  const updatedQueryParams = _objectSpread(_objectSpread({}, queryParams), {}, {
43
43
  offset: currentPage * queryParamsDefault.limit - queryParamsDefault.limit
44
44
  });
45
- await doQuery(listFilters, updatedQueryParams);
45
+ await doQuery([], updatedQueryParams);
46
46
  setPreviousSchema({
47
47
  id: entitySchema.id
48
48
  });
@@ -170,17 +170,11 @@ const ListingTable = ({
170
170
  }), /*#__PURE__*/React.createElement(PageHeader, {
171
171
  title: entitySchema.displayName,
172
172
  subtitle: ""
173
- }, createAction.active && !showAddButton && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Link, {
173
+ }, createAction.active && !showAddButton && /*#__PURE__*/React.createElement(Link, {
174
174
  "data-testid": "addEntity",
175
175
  className: "button button--small",
176
176
  to: `${match.url}/create`
177
- }, "Add"), /*#__PURE__*/React.createElement(PageHeader.Actions, null, /*#__PURE__*/React.createElement(More, null, /*#__PURE__*/React.createElement(More.Avatar, {
178
- isMoreMenu: true
179
- }, /*#__PURE__*/React.createElement("span", {
180
- className: "material-icons"
181
- }, "more_vert")), /*#__PURE__*/React.createElement(More.Content, {
182
- isMoreMenu: true
183
- }))))), showAddButton ? /*#__PURE__*/React.createElement(CardPrompt, null, /*#__PURE__*/React.createElement(Link, {
177
+ }, "Add")), showAddButton ? /*#__PURE__*/React.createElement(CardPrompt, null, /*#__PURE__*/React.createElement(Link, {
184
178
  className: "button button--rounded button--cta",
185
179
  to: `${match.url}/create`,
186
180
  "data-testid": "add-button"
@@ -189,13 +183,20 @@ const ListingTable = ({
189
183
  schema: entitySchema,
190
184
  listFilters: listFilters,
191
185
  setListFilters: updateListingFilters
186
+ }), /*#__PURE__*/React.createElement(SearchFilter, {
187
+ schema: entitySchema,
188
+ listFilters: listFilters,
189
+ setListFilters: updateListingFilters
192
190
  }), /*#__PURE__*/React.createElement(ListingTableContent, {
193
191
  totalItems: totalItems,
194
192
  currentPage: currentPage,
195
193
  onSort: handleSort,
196
194
  handleOnPageChange: handleOnPageChange,
197
195
  tableData: tableData,
198
- onCloseCardPrompt: onCloseCardPrompt
196
+ onCloseCardPrompt: onCloseCardPrompt,
197
+ schema: entitySchema,
198
+ listFilters: listFilters,
199
+ setListFilters: updateListingFilters
199
200
  })));
200
201
  };
201
202
  ListingTable.propTypes = {
@@ -1 +1 @@
1
- {"version":3,"file":"ListingTable.js","names":["React","useEffect","useState","Fragment","PropTypes","More","useApolloClient","withRouter","Link","useLocation","PageHeader","DeleteAction","CardPrompt","useToasts","RenderHook","ListingTableContent","availableActions","fetchData","populateRows","formatRows","getParsedRowData","getDefaultQueryParams","ListingTable","match","entitySchema","history","tableData","setTableData","modalStatus","setModalStatus","itemToDelete","setItemToDelete","previousSchema","setPreviousSchema","id","totalItems","setTotalItems","queryParamsDefault","queryParams","setQueryParams","listFilters","setListFilters","client","addToast","location","searchParams","URLSearchParams","search","currentPage","Number","get","updatedQueryParams","_objectSpread","offset","limit","doQuery","url","filters","params","listingData","totalRecords","querySettings","populatedTable","toggleModal","rows","handleOnPageChange","pageNumber","_offset","push","document","getElementsByClassName","scrollTo","updateListingFilters","onCloseCardPrompt","item","deleteAction","delete","submit","parsedFormValues","updatedTableData","filter","handleSort","event","property","direction","Object","entries","sortQueryParams","sort","columns","isEnquiry","firstColumn","appliedSort","displayProperties","adminCrudActions","create","createAction","active","_deleteAction","showAddButton","length","createElement","className","onClose","itemName","name","title","displayName","subtitle","to","Actions","Avatar","isMoreMenu","Content","hookKey","schema","onSort","propTypes","object","isRequired"],"sources":["../../../src/components/ListingTable/ListingTable.js"],"sourcesContent":["import React, { useEffect, useState, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport More from '@blaze-react/more';\nimport { useApolloClient } from '@apollo/client';\nimport { withRouter, Link, useLocation } from 'react-router-dom';\nimport { PageHeader, DeleteAction, CardPrompt } from '@blaze-cms/admin';\nimport { useToasts } from '@blaze-react/toaster';\nimport { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';\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 ListingTable = ({ match, entitySchema, history }) => {\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 [totalItems, setTotalItems] = useState(0);\n const queryParamsDefault = getDefaultQueryParams(entitySchema);\n const [queryParams, setQueryParams] = useState(queryParamsDefault);\n const [listFilters, setListFilters] = useState([]);\n const client = useApolloClient();\n const { addToast } = useToasts();\n const location = useLocation();\n const searchParams = new URLSearchParams(location.search);\n const currentPage = Number(searchParams.get('page')) || 1;\n\n useEffect(\n () => {\n (async () => {\n if (\n entitySchema.id !== previousSchema.id ||\n (previousSchema.id === null && entitySchema.id)\n ) {\n const updatedQueryParams = {\n ...queryParams,\n offset: currentPage * queryParamsDefault.limit - queryParamsDefault.limit\n };\n await doQuery(listFilters, updatedQueryParams);\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 doQuery = async (filters = listFilters, params = queryParamsDefault) => {\n const { listingData, totalRecords } = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: params\n },\n listFilters: filters\n });\n\n const populatedTable = populateRows({\n toggleModal,\n url: match.url,\n entitySchema,\n rows: listingData\n });\n\n setTableData(populatedTable);\n setTotalItems(totalRecords);\n };\n\n const handleOnPageChange = async ({ pageNumber, offset: _offset }) => {\n const updatedQueryParams = {\n ...queryParams,\n offset: _offset\n };\n\n await doQuery(listFilters, updatedQueryParams);\n\n history.push(`?page=${pageNumber}`);\n document.getElementsByClassName('page')[0].scrollTo(0, 0);\n };\n\n const updateListingFilters = async filters => {\n await doQuery(filters);\n setListFilters(filters);\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 setQueryParams(sortQueryParams);\n\n const { listingData } = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: sortQueryParams\n },\n listFilters\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(listingData),\n url: match.url,\n toggleModal,\n firstColumn,\n isEnquiry,\n entitySchema\n })\n });\n history.push('?page=1');\n };\n if (!tableData || !tableData.rows) return 'loading';\n\n const {\n displayProperties: {\n adminCrudActions: {\n create: createAction = { active: true },\n delete: _deleteAction = { active: true }\n } = {}\n } = {}\n } = entitySchema;\n\n const showAddButton = !tableData.rows.length && listFilters.length === 0;\n\n return (\n <div className=\"page\">\n {modalStatus && _deleteAction.active && (\n <DeleteAction\n data-testid=\"deleteEntity\"\n onClose={toggleModal}\n deleteAction={deleteAction}\n itemName={itemToDelete.name}\n />\n )}\n <PageHeader title={entitySchema.displayName} subtitle=\"\">\n {createAction.active && !showAddButton && (\n <>\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 </>\n )}\n </PageHeader>\n {showAddButton ? (\n <CardPrompt>\n <Link\n className=\"button button--rounded button--cta\"\n to={`${match.url}/create`}\n data-testid=\"add-button\">\n Add\n </Link>\n </CardPrompt>\n ) : (\n <>\n <RenderHook\n hookKey=\"entity:listing:main:top\"\n schema={entitySchema}\n listFilters={listFilters}\n setListFilters={updateListingFilters}\n />\n <ListingTableContent\n totalItems={totalItems}\n currentPage={currentPage}\n onSort={handleSort}\n handleOnPageChange={handleOnPageChange}\n tableData={tableData}\n onCloseCardPrompt={onCloseCardPrompt}\n />\n </>\n )}\n </div>\n );\n};\nListingTable.propTypes = {\n entitySchema: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired\n};\n\nexport default withRouter(ListingTable);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ListingTable.js","names":["React","useEffect","useState","Fragment","PropTypes","useApolloClient","withRouter","Link","useLocation","PageHeader","DeleteAction","CardPrompt","useToasts","RenderHook","ListingTableContent","SearchFilter","availableActions","fetchData","populateRows","formatRows","getParsedRowData","getDefaultQueryParams","ListingTable","match","entitySchema","history","tableData","setTableData","modalStatus","setModalStatus","itemToDelete","setItemToDelete","previousSchema","setPreviousSchema","id","totalItems","setTotalItems","queryParamsDefault","queryParams","setQueryParams","listFilters","setListFilters","client","addToast","location","searchParams","URLSearchParams","search","currentPage","Number","get","updatedQueryParams","_objectSpread","offset","limit","doQuery","url","filters","params","listingData","totalRecords","querySettings","populatedTable","toggleModal","rows","handleOnPageChange","pageNumber","_offset","push","document","getElementsByClassName","scrollTo","updateListingFilters","onCloseCardPrompt","item","deleteAction","delete","submit","parsedFormValues","updatedTableData","filter","handleSort","event","property","direction","Object","entries","sortQueryParams","sort","columns","isEnquiry","firstColumn","appliedSort","displayProperties","adminCrudActions","create","createAction","active","_deleteAction","showAddButton","length","createElement","className","onClose","itemName","name","title","displayName","subtitle","to","hookKey","schema","onSort","propTypes","object","isRequired"],"sources":["../../../src/components/ListingTable/ListingTable.js"],"sourcesContent":["import React, { useEffect, useState, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { useApolloClient } from '@apollo/client';\nimport { withRouter, Link, useLocation } from 'react-router-dom';\nimport { PageHeader, DeleteAction, CardPrompt } from '@blaze-cms/admin';\nimport { useToasts } from '@blaze-react/toaster';\nimport { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';\nimport ListingTableContent from './ListingTableContent';\nimport SearchFilter from './SearchFilter/SearchFilter';\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 ListingTable = ({ match, entitySchema, history }) => {\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 [totalItems, setTotalItems] = useState(0);\n const queryParamsDefault = getDefaultQueryParams(entitySchema);\n const [queryParams, setQueryParams] = useState(queryParamsDefault);\n const [listFilters, setListFilters] = useState([]);\n const client = useApolloClient();\n const { addToast } = useToasts();\n const location = useLocation();\n const searchParams = new URLSearchParams(location.search);\n const currentPage = Number(searchParams.get('page')) || 1;\n\n useEffect(\n () => {\n (async () => {\n if (\n entitySchema.id !== previousSchema.id ||\n (previousSchema.id === null && entitySchema.id)\n ) {\n const updatedQueryParams = {\n ...queryParams,\n offset: currentPage * queryParamsDefault.limit - queryParamsDefault.limit\n };\n await doQuery([], updatedQueryParams);\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 doQuery = async (filters = listFilters, params = queryParamsDefault) => {\n const { listingData, totalRecords } = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: params\n },\n listFilters: filters\n });\n\n const populatedTable = populateRows({\n toggleModal,\n url: match.url,\n entitySchema,\n rows: listingData\n });\n\n setTableData(populatedTable);\n setTotalItems(totalRecords);\n };\n\n const handleOnPageChange = async ({ pageNumber, offset: _offset }) => {\n const updatedQueryParams = {\n ...queryParams,\n offset: _offset\n };\n\n await doQuery(listFilters, updatedQueryParams);\n\n history.push(`?page=${pageNumber}`);\n document.getElementsByClassName('page')[0].scrollTo(0, 0);\n };\n\n const updateListingFilters = async filters => {\n await doQuery(filters);\n setListFilters(filters);\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 setQueryParams(sortQueryParams);\n\n const { listingData } = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: sortQueryParams\n },\n listFilters\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(listingData),\n url: match.url,\n toggleModal,\n firstColumn,\n isEnquiry,\n entitySchema\n })\n });\n history.push('?page=1');\n };\n if (!tableData || !tableData.rows) return 'loading';\n\n const {\n displayProperties: {\n adminCrudActions: {\n create: createAction = { active: true },\n delete: _deleteAction = { active: true }\n } = {}\n } = {}\n } = entitySchema;\n\n const showAddButton = !tableData.rows.length && listFilters.length === 0;\n\n return (\n <div className=\"page\">\n {modalStatus && _deleteAction.active && (\n <DeleteAction\n data-testid=\"deleteEntity\"\n onClose={toggleModal}\n deleteAction={deleteAction}\n itemName={itemToDelete.name}\n />\n )}\n <PageHeader title={entitySchema.displayName} subtitle=\"\">\n {createAction.active && !showAddButton && (\n <Link data-testid=\"addEntity\" className=\"button button--small\" to={`${match.url}/create`}>\n Add\n </Link>\n )}\n </PageHeader>\n {showAddButton ? (\n <CardPrompt>\n <Link\n className=\"button button--rounded button--cta\"\n to={`${match.url}/create`}\n data-testid=\"add-button\">\n Add\n </Link>\n </CardPrompt>\n ) : (\n <>\n <RenderHook\n hookKey=\"entity:listing:main:top\"\n schema={entitySchema}\n listFilters={listFilters}\n setListFilters={updateListingFilters}\n />\n <SearchFilter\n schema={entitySchema}\n listFilters={listFilters}\n setListFilters={updateListingFilters}\n />\n <ListingTableContent\n totalItems={totalItems}\n currentPage={currentPage}\n onSort={handleSort}\n handleOnPageChange={handleOnPageChange}\n tableData={tableData}\n onCloseCardPrompt={onCloseCardPrompt}\n schema={entitySchema}\n listFilters={listFilters}\n setListFilters={updateListingFilters}\n />\n </>\n )}\n </div>\n );\n};\nListingTable.propTypes = {\n entitySchema: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired\n};\n\nexport default withRouter(ListingTable);\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { useEffect, useRef } from 'react';
2
2
  import Table from '@blaze-react/table';
3
3
  import Pagination from '@blaze-react/pagination';
4
4
  import PropTypes from 'prop-types';
@@ -11,11 +11,26 @@ const ListingTableContent = ({
11
11
  currentPage,
12
12
  totalItems
13
13
  }) => {
14
+ const ref = useRef(null);
14
15
  const displayTable = tableData && tableData.rows && !!tableData.rows.length;
15
16
  const {
16
17
  isEnquiry
17
18
  } = tableData;
18
19
  const className = `page__content${isEnquiry ? ' array-table' : ''}`;
20
+ useEffect(() => {
21
+ // set table head to match body column widths to handle dynamic content
22
+ if (ref.current) {
23
+ const tableHeadCells = ref.current.querySelectorAll('.table-head .table-cell');
24
+ const firstRowCells = ref.current.querySelectorAll('.table-body .table-row:first-child .table-cell');
25
+ firstRowCells.forEach((element, i) => {
26
+ const styles = window.getComputedStyle(element);
27
+ if (tableHeadCells[i]) {
28
+ tableHeadCells[i].style.flex = styles.flex;
29
+ tableHeadCells[i].style['justify-content'] = styles['justify-content'];
30
+ }
31
+ });
32
+ }
33
+ }, [tableData]);
19
34
  if (displayTable) {
20
35
  return /*#__PURE__*/React.createElement("div", {
21
36
  className: className
@@ -1 +1 @@
1
- {"version":3,"file":"ListingTableContent.js","names":["React","Table","Pagination","PropTypes","withRouter","ListingTableContent","tableData","handleSelect","onSort","handleOnPageChange","currentPage","totalItems","displayTable","rows","length","isEnquiry","className","createElement","data","checkboxes","onSelect","visiblePages","onPageChange","propTypes","object","isRequired","match","shape","url","string","func","number","defaultProps"],"sources":["../../../../src/components/ListingTable/ListingTableContent/ListingTableContent.js"],"sourcesContent":["import React from 'react';\nimport Table from '@blaze-react/table';\nimport Pagination from '@blaze-react/pagination';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nconst ListingTableContent = ({\n tableData,\n handleSelect,\n onSort,\n handleOnPageChange,\n currentPage,\n totalItems\n}) => {\n const displayTable = tableData && tableData.rows && !!tableData.rows.length;\n const { isEnquiry } = tableData;\n const className = `page__content${isEnquiry ? ' array-table' : ''}`;\n\n if (displayTable) {\n return (\n <div className={className}>\n <Table\n onSort={onSort}\n data={tableData}\n checkboxes={!isEnquiry}\n onSelect={handleSelect}\n data-testid=\"listing-table-content\"\n />\n <Pagination\n visiblePages={10}\n totalItems={totalItems}\n currentPage={currentPage}\n onPageChange={handleOnPageChange}\n />\n </div>\n );\n }\n\n return (\n <span className=\"table-no-results\" data-testid=\"no-results\">\n No results\n </span>\n );\n};\n\nListingTableContent.propTypes = {\n tableData: PropTypes.object.isRequired,\n match: PropTypes.shape({\n url: PropTypes.string\n }).isRequired,\n handleSelect: PropTypes.func,\n onSort: PropTypes.func,\n handleOnPageChange: PropTypes.func,\n currentPage: PropTypes.number.isRequired,\n totalItems: PropTypes.number.isRequired\n};\n\nListingTableContent.defaultProps = {\n handleSelect: () => {},\n onSort: () => {},\n handleOnPageChange: () => {}\n};\n\nexport default withRouter(ListingTableContent);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,KAAK,MAAM,oBAAoB;AACtC,OAAOC,UAAU,MAAM,yBAAyB;AAChD,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,MAAMC,mBAAmB,GAAGA,CAAC;EAC3BC,SAAS;EACTC,YAAY;EACZC,MAAM;EACNC,kBAAkB;EAClBC,WAAW;EACXC;AACF,CAAC,KAAK;EACJ,MAAMC,YAAY,GAAGN,SAAS,IAAIA,SAAS,CAACO,IAAI,IAAI,CAAC,CAACP,SAAS,CAACO,IAAI,CAACC,MAAM;EAC3E,MAAM;IAAEC;EAAU,CAAC,GAAGT,SAAS;EAC/B,MAAMU,SAAS,GAAG,gBAAgBD,SAAS,GAAG,cAAc,GAAG,EAAE,EAAE;EAEnE,IAAIH,YAAY,EAAE;IAChB,oBACEZ,KAAA,CAAAiB,aAAA;MAAKD,SAAS,EAAEA;IAAU,gBACxBhB,KAAA,CAAAiB,aAAA,CAAChB,KAAK;MACJO,MAAM,EAAEA,MAAO;MACfU,IAAI,EAAEZ,SAAU;MAChBa,UAAU,EAAE,CAACJ,SAAU;MACvBK,QAAQ,EAAEb,YAAa;MACvB,eAAY;IAAuB,CACpC,CAAC,eACFP,KAAA,CAAAiB,aAAA,CAACf,UAAU;MACTmB,YAAY,EAAE,EAAG;MACjBV,UAAU,EAAEA,UAAW;MACvBD,WAAW,EAAEA,WAAY;MACzBY,YAAY,EAAEb;IAAmB,CAClC,CACE,CAAC;EAEV;EAEA,oBACET,KAAA,CAAAiB,aAAA;IAAMD,SAAS,EAAC,kBAAkB;IAAC,eAAY;EAAY,GAAC,YAEtD,CAAC;AAEX,CAAC;AAEDX,mBAAmB,CAACkB,SAAS,GAAG;EAC9BjB,SAAS,EAAEH,SAAS,CAACqB,MAAM,CAACC,UAAU;EACtCC,KAAK,EAAEvB,SAAS,CAACwB,KAAK,CAAC;IACrBC,GAAG,EAAEzB,SAAS,CAAC0B;EACjB,CAAC,CAAC,CAACJ,UAAU;EACblB,YAAY,EAAEJ,SAAS,CAAC2B,IAAI;EAC5BtB,MAAM,EAAEL,SAAS,CAAC2B,IAAI;EACtBrB,kBAAkB,EAAEN,SAAS,CAAC2B,IAAI;EAClCpB,WAAW,EAAEP,SAAS,CAAC4B,MAAM,CAACN,UAAU;EACxCd,UAAU,EAAER,SAAS,CAAC4B,MAAM,CAACN;AAC/B,CAAC;AAEDpB,mBAAmB,CAAC2B,YAAY,GAAG;EACjCzB,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBC,MAAM,EAAEA,CAAA,KAAM,CAAC,CAAC;EAChBC,kBAAkB,EAAEA,CAAA,KAAM,CAAC;AAC7B,CAAC;AAED,eAAeL,UAAU,CAACC,mBAAmB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"ListingTableContent.js","names":["React","useEffect","useRef","Table","Pagination","PropTypes","withRouter","ListingTableContent","tableData","handleSelect","onSort","handleOnPageChange","currentPage","totalItems","ref","displayTable","rows","length","isEnquiry","className","current","tableHeadCells","querySelectorAll","firstRowCells","forEach","element","i","styles","window","getComputedStyle","style","flex","createElement","data","checkboxes","onSelect","visiblePages","onPageChange","propTypes","object","isRequired","match","shape","url","string","func","number","defaultProps"],"sources":["../../../../src/components/ListingTable/ListingTableContent/ListingTableContent.js"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport Table from '@blaze-react/table';\nimport Pagination from '@blaze-react/pagination';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nconst ListingTableContent = ({\n tableData,\n handleSelect,\n onSort,\n handleOnPageChange,\n currentPage,\n totalItems\n}) => {\n const ref = useRef(null);\n const displayTable = tableData && tableData.rows && !!tableData.rows.length;\n const { isEnquiry } = tableData;\n const className = `page__content${isEnquiry ? ' array-table' : ''}`;\n\n useEffect(() => {\n // set table head to match body column widths to handle dynamic content\n if (ref.current) {\n const tableHeadCells = ref.current.querySelectorAll('.table-head .table-cell');\n const firstRowCells = ref.current.querySelectorAll(\n '.table-body .table-row:first-child .table-cell'\n );\n\n firstRowCells.forEach((element, i) => {\n const styles = window.getComputedStyle(element);\n\n if (tableHeadCells[i]) {\n tableHeadCells[i].style.flex = styles.flex;\n tableHeadCells[i].style['justify-content'] = styles['justify-content'];\n }\n });\n }\n }, [tableData]);\n\n if (displayTable) {\n return (\n <div className={className}>\n <Table\n onSort={onSort}\n data={tableData}\n checkboxes={!isEnquiry}\n onSelect={handleSelect}\n data-testid=\"listing-table-content\"\n />\n <Pagination\n visiblePages={10}\n totalItems={totalItems}\n currentPage={currentPage}\n onPageChange={handleOnPageChange}\n />\n </div>\n );\n }\n\n return (\n <span className=\"table-no-results\" data-testid=\"no-results\">\n No results\n </span>\n );\n};\n\nListingTableContent.propTypes = {\n tableData: PropTypes.object.isRequired,\n match: PropTypes.shape({\n url: PropTypes.string\n }).isRequired,\n handleSelect: PropTypes.func,\n onSort: PropTypes.func,\n handleOnPageChange: PropTypes.func,\n currentPage: PropTypes.number.isRequired,\n totalItems: PropTypes.number.isRequired\n};\n\nListingTableContent.defaultProps = {\n handleSelect: () => {},\n onSort: () => {},\n handleOnPageChange: () => {}\n};\n\nexport default withRouter(ListingTableContent);\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,207 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import React, { useState, useMemo, useEffect, useCallback } from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import Select from '@blaze-react/select';
7
+ import { useQuery, useApolloClient } from '@apollo/client';
8
+ import { getDynamicQuery, getQuery } from '@blaze-cms/admin-ui-utils';
9
+ import { BsArrowCounterclockwise, BsSearch } from 'react-icons/bs';
10
+ import { updateListFilters, buildQueryFields } from './helpers';
11
+ import { NOOP_QUERY } from './querys';
12
+ import { ENTER_KEY, DEFAULT_FILTER_OPTION_LABEL } from '../../../constants';
13
+ const SearchContainer = ({
14
+ setListFilters,
15
+ keywordFiltersToUse = [],
16
+ selectFiltersToDisplay = [],
17
+ schema,
18
+ index
19
+ }) => {
20
+ const apolloClient = useApolloClient();
21
+ const [searchTerm, setSearchTerm] = useState('');
22
+ const [selectedFilters, setSelectedFilters] = useState({});
23
+ const [selectOptions, setSelectOptions] = useState([]);
24
+ const displaySearchFilter = keywordFiltersToUse.length > 0;
25
+ const displaySelectFilters = selectFiltersToDisplay.length > 0;
26
+ const {
27
+ keywordSearchProperties,
28
+ keywordSearchLabels
29
+ } = useMemo(() => {
30
+ const labels = [];
31
+ const properties = [];
32
+ keywordFiltersToUse.forEach(([property, {
33
+ label
34
+ }]) => {
35
+ if (label) labels.push(label);
36
+ properties.push(property);
37
+ });
38
+ return {
39
+ keywordSearchProperties: properties,
40
+ keywordSearchLabels: labels
41
+ };
42
+ }, [keywordFiltersToUse]);
43
+ const {
44
+ gqlFields,
45
+ rawQuery
46
+ } = useMemo(() => buildQueryFields(selectFiltersToDisplay, schema.id), [selectFiltersToDisplay, schema.id]);
47
+ const action = displaySelectFilters ? getDynamicQuery('ADMIN_SEARCH')([schema], gqlFields, false, index) : NOOP_QUERY;
48
+ const {
49
+ data
50
+ } = useQuery(action, {
51
+ skip: !displaySelectFilters,
52
+ variables: {
53
+ where: rawQuery,
54
+ limit: 0
55
+ },
56
+ fetchPolicy: 'cache-and-network'
57
+ });
58
+ const filterData = useMemo(() => {
59
+ const {
60
+ searchResults: {
61
+ rawResults: {
62
+ aggregations = {}
63
+ } = {}
64
+ } = {}
65
+ } = data || {};
66
+ const proccessedData = [];
67
+ Object.entries(aggregations).forEach(([key, {
68
+ buckets
69
+ }]) => {
70
+ proccessedData.push(Array.isArray(buckets) ? [key, buckets.map(b => b.key).filter(Boolean)] : []);
71
+ });
72
+ return proccessedData;
73
+ }, [data]);
74
+ useEffect(() => {
75
+ if (!filterData.length) {
76
+ setSelectOptions([]);
77
+ return;
78
+ }
79
+ (async () => {
80
+ const results = await Promise.all(filterData.map(async ([property, ids]) => {
81
+ try {
82
+ if (!ids || !ids.length) return {};
83
+ const [, selectionDetails] = selectFiltersToDisplay.find(([selectProperty]) => selectProperty === property) || [];
84
+ if (!selectionDetails) return null;
85
+ if (!selectionDetails.relation) {
86
+ return {
87
+ id: property,
88
+ label: selectionDetails.label,
89
+ options: ids.map(value => [value, value])
90
+ };
91
+ }
92
+ const query = getQuery('GET_ENTITY_SCHEMA');
93
+ const {
94
+ data: {
95
+ getEntitySchemas: [relationSchema]
96
+ }
97
+ } = await apolloClient.query({
98
+ query,
99
+ variables: {
100
+ identifier: selectionDetails.relation.entityIdentifier
101
+ }
102
+ });
103
+ const {
104
+ data: {
105
+ result: selected = []
106
+ }
107
+ } = await apolloClient.query({
108
+ query: getDynamicQuery('GET_ALL_ENTITIES')(relationSchema),
109
+ variables: {
110
+ where: {
111
+ id: {
112
+ _in: ids
113
+ }
114
+ },
115
+ sort: [{
116
+ property: 'name',
117
+ direction: 'asc'
118
+ }]
119
+ }
120
+ })
121
+ // eslint-disable-next-line no-console
122
+ .catch(e => console.error(e));
123
+ return {
124
+ id: property,
125
+ label: selectionDetails.label,
126
+ options: selected.map(item => [item.id, item.name])
127
+ };
128
+ } catch {
129
+ return null;
130
+ }
131
+ }));
132
+ setSelectOptions(results.filter(Boolean));
133
+ })();
134
+ }, [apolloClient, filterData, schema, selectFiltersToDisplay]);
135
+ const updateFilters = useCallback((term, filters) => updateListFilters(term, filters, setListFilters, keywordSearchProperties), [setListFilters, keywordSearchProperties]);
136
+ const handleSearch = useCallback(() => updateFilters(searchTerm, selectedFilters), [searchTerm, selectedFilters, updateFilters]);
137
+ const handleSearchChange = useCallback(e => setSearchTerm(e.target.value), []);
138
+ const handleEnterKey = useCallback(e => {
139
+ if (e.key === ENTER_KEY) handleSearch();
140
+ }, [handleSearch]);
141
+ const handleReset = useCallback(() => {
142
+ setSearchTerm('');
143
+ setSelectedFilters(Object.keys(selectedFilters).reduce((acc, key) => _objectSpread(_objectSpread({}, acc), {}, {
144
+ [key]: DEFAULT_FILTER_OPTION_LABEL
145
+ }), {}));
146
+ updateFilters('', {});
147
+ }, [selectedFilters, updateFilters]);
148
+ const handleSelect = useCallback((property, event) => {
149
+ const {
150
+ value
151
+ } = event;
152
+ const next = _objectSpread(_objectSpread({}, selectedFilters), {}, {
153
+ [property]: value
154
+ });
155
+ setSelectedFilters(next);
156
+ updateFilters(searchTerm, next);
157
+ }, [searchTerm, selectedFilters, updateFilters]);
158
+ const placeholderText = `Search ${keywordSearchLabels.join(', ')}`;
159
+ return /*#__PURE__*/React.createElement("div", {
160
+ className: "search-container"
161
+ }, displaySearchFilter && /*#__PURE__*/React.createElement("div", {
162
+ className: "search-container__search-input-container"
163
+ }, /*#__PURE__*/React.createElement("input", {
164
+ type: "search",
165
+ className: "search-container__search-input-container__search-input",
166
+ placeholder: placeholderText,
167
+ value: searchTerm,
168
+ onChange: handleSearchChange,
169
+ onKeyDown: handleEnterKey
170
+ }), /*#__PURE__*/React.createElement("i", {
171
+ role: "button",
172
+ onClick: handleSearch
173
+ }, /*#__PURE__*/React.createElement(BsSearch, null))), displaySelectFilters && selectOptions.map(({
174
+ id,
175
+ options,
176
+ label
177
+ }) => /*#__PURE__*/React.createElement(React.Fragment, null, options && !!options.length && /*#__PURE__*/React.createElement("div", {
178
+ className: "search-container__select-wrapper"
179
+ }, /*#__PURE__*/React.createElement(Select, {
180
+ label: label,
181
+ id: id,
182
+ name: id,
183
+ onChange: event => handleSelect(id, event),
184
+ options: options,
185
+ value: selectedFilters[id],
186
+ defaultTextValue: DEFAULT_FILTER_OPTION_LABEL
187
+ })))), /*#__PURE__*/React.createElement("div", {
188
+ className: "search-container__reset-button"
189
+ }, /*#__PURE__*/React.createElement("span", {
190
+ role: "button",
191
+ onClick: handleReset
192
+ }, /*#__PURE__*/React.createElement(BsArrowCounterclockwise, null))));
193
+ };
194
+ SearchContainer.propTypes = {
195
+ setListFilters: PropTypes.func.isRequired,
196
+ keywordFiltersToUse: PropTypes.array,
197
+ selectFiltersToDisplay: PropTypes.array,
198
+ schema: PropTypes.object.isRequired,
199
+ index: PropTypes.string
200
+ };
201
+ SearchContainer.defaultProps = {
202
+ keywordFiltersToUse: [],
203
+ selectFiltersToDisplay: [],
204
+ index: 'admin'
205
+ };
206
+ export default SearchContainer;
207
+ //# sourceMappingURL=SearchContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchContainer.js","names":["React","useState","useMemo","useEffect","useCallback","PropTypes","Select","useQuery","useApolloClient","getDynamicQuery","getQuery","BsArrowCounterclockwise","BsSearch","updateListFilters","buildQueryFields","NOOP_QUERY","ENTER_KEY","DEFAULT_FILTER_OPTION_LABEL","SearchContainer","setListFilters","keywordFiltersToUse","selectFiltersToDisplay","schema","index","apolloClient","searchTerm","setSearchTerm","selectedFilters","setSelectedFilters","selectOptions","setSelectOptions","displaySearchFilter","length","displaySelectFilters","keywordSearchProperties","keywordSearchLabels","labels","properties","forEach","property","label","push","gqlFields","rawQuery","id","action","data","skip","variables","where","limit","fetchPolicy","filterData","searchResults","rawResults","aggregations","proccessedData","Object","entries","key","buckets","Array","isArray","map","b","filter","Boolean","results","Promise","all","ids","selectionDetails","find","selectProperty","relation","options","value","query","getEntitySchemas","relationSchema","identifier","entityIdentifier","result","selected","_in","sort","direction","catch","e","console","error","item","name","updateFilters","term","filters","handleSearch","handleSearchChange","target","handleEnterKey","handleReset","keys","reduce","acc","_objectSpread","handleSelect","event","next","placeholderText","join","createElement","className","type","placeholder","onChange","onKeyDown","role","onClick","Fragment","defaultTextValue","propTypes","func","isRequired","array","object","string","defaultProps"],"sources":["../../../../src/components/ListingTable/SearchFilter/SearchContainer.js"],"sourcesContent":["import React, { useState, useMemo, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport Select from '@blaze-react/select';\nimport { useQuery, useApolloClient } from '@apollo/client';\nimport { getDynamicQuery, getQuery } from '@blaze-cms/admin-ui-utils';\nimport { BsArrowCounterclockwise, BsSearch } from 'react-icons/bs';\nimport { updateListFilters, buildQueryFields } from './helpers';\nimport { NOOP_QUERY } from './querys';\nimport { ENTER_KEY, DEFAULT_FILTER_OPTION_LABEL } from '../../../constants';\n\nconst SearchContainer = ({\n setListFilters,\n keywordFiltersToUse = [],\n selectFiltersToDisplay = [],\n schema,\n index\n}) => {\n const apolloClient = useApolloClient();\n const [searchTerm, setSearchTerm] = useState('');\n const [selectedFilters, setSelectedFilters] = useState({});\n const [selectOptions, setSelectOptions] = useState([]);\n\n const displaySearchFilter = keywordFiltersToUse.length > 0;\n const displaySelectFilters = selectFiltersToDisplay.length > 0;\n\n const { keywordSearchProperties, keywordSearchLabels } = useMemo(\n () => {\n const labels = [];\n const properties = [];\n\n keywordFiltersToUse.forEach(([property, { label }]) => {\n if (label) labels.push(label);\n properties.push(property);\n });\n\n return { keywordSearchProperties: properties, keywordSearchLabels: labels };\n },\n [keywordFiltersToUse]\n );\n\n const { gqlFields, rawQuery } = useMemo(\n () => buildQueryFields(selectFiltersToDisplay, schema.id),\n [selectFiltersToDisplay, schema.id]\n );\n const action = displaySelectFilters\n ? getDynamicQuery('ADMIN_SEARCH')([schema], gqlFields, false, index)\n : NOOP_QUERY;\n\n const { data } = useQuery(action, {\n skip: !displaySelectFilters,\n variables: { where: rawQuery, limit: 0 },\n fetchPolicy: 'cache-and-network'\n });\n\n const filterData = useMemo(\n () => {\n const { searchResults: { rawResults: { aggregations = {} } = {} } = {} } = data || {};\n const proccessedData = [];\n Object.entries(aggregations).forEach(([key, { buckets }]) => {\n proccessedData.push(\n Array.isArray(buckets) ? [key, buckets.map(b => b.key).filter(Boolean)] : []\n );\n });\n\n return proccessedData;\n },\n [data]\n );\n\n useEffect(\n () => {\n if (!filterData.length) {\n setSelectOptions([]);\n return;\n }\n\n (async () => {\n const results = await Promise.all(\n filterData.map(async ([property, ids]) => {\n try {\n if (!ids || !ids.length) return {};\n\n const [, selectionDetails] =\n selectFiltersToDisplay.find(([selectProperty]) => selectProperty === property) ||\n [];\n\n if (!selectionDetails) return null;\n\n if (!selectionDetails.relation) {\n return {\n id: property,\n label: selectionDetails.label,\n options: ids.map(value => [value, value])\n };\n }\n const query = getQuery('GET_ENTITY_SCHEMA');\n const {\n data: {\n getEntitySchemas: [relationSchema]\n }\n } = await apolloClient.query({\n query,\n variables: { identifier: selectionDetails.relation.entityIdentifier }\n });\n\n const {\n data: { result: selected = [] }\n } = await apolloClient\n .query({\n query: getDynamicQuery('GET_ALL_ENTITIES')(relationSchema),\n variables: {\n where: {\n id: {\n _in: ids\n }\n },\n sort: [{ property: 'name', direction: 'asc' }]\n }\n })\n // eslint-disable-next-line no-console\n .catch(e => console.error(e));\n\n return {\n id: property,\n label: selectionDetails.label,\n options: selected.map(item => [item.id, item.name])\n };\n } catch {\n return null;\n }\n })\n );\n\n setSelectOptions(results.filter(Boolean));\n })();\n },\n [apolloClient, filterData, schema, selectFiltersToDisplay]\n );\n\n const updateFilters = useCallback(\n (term, filters) => updateListFilters(term, filters, setListFilters, keywordSearchProperties),\n [setListFilters, keywordSearchProperties]\n );\n\n const handleSearch = useCallback(() => updateFilters(searchTerm, selectedFilters), [\n searchTerm,\n selectedFilters,\n updateFilters\n ]);\n const handleSearchChange = useCallback(e => setSearchTerm(e.target.value), []);\n const handleEnterKey = useCallback(\n e => {\n if (e.key === ENTER_KEY) handleSearch();\n },\n [handleSearch]\n );\n const handleReset = useCallback(\n () => {\n setSearchTerm('');\n setSelectedFilters(\n Object.keys(selectedFilters).reduce(\n (acc, key) => ({ ...acc, [key]: DEFAULT_FILTER_OPTION_LABEL }),\n {}\n )\n );\n updateFilters('', {});\n },\n [selectedFilters, updateFilters]\n );\n const handleSelect = useCallback(\n (property, event) => {\n const { value } = event;\n const next = { ...selectedFilters, [property]: value };\n setSelectedFilters(next);\n updateFilters(searchTerm, next);\n },\n [searchTerm, selectedFilters, updateFilters]\n );\n\n const placeholderText = `Search ${keywordSearchLabels.join(', ')}`;\n\n return (\n <div className=\"search-container\">\n {displaySearchFilter && (\n <div className=\"search-container__search-input-container\">\n <input\n type=\"search\"\n className=\"search-container__search-input-container__search-input\"\n placeholder={placeholderText}\n value={searchTerm}\n onChange={handleSearchChange}\n onKeyDown={handleEnterKey}\n />\n <i role=\"button\" onClick={handleSearch}>\n <BsSearch />\n </i>\n </div>\n )}\n\n {displaySelectFilters &&\n selectOptions.map(({ id, options, label }) => (\n <>\n {options &&\n !!options.length && (\n <div className=\"search-container__select-wrapper\">\n <Select\n label={label}\n id={id}\n name={id}\n onChange={event => handleSelect(id, event)}\n options={options}\n value={selectedFilters[id]}\n defaultTextValue={DEFAULT_FILTER_OPTION_LABEL}\n />\n </div>\n )}\n </>\n ))}\n\n <div className=\"search-container__reset-button\">\n <span role=\"button\" onClick={handleReset}>\n <BsArrowCounterclockwise />\n </span>\n </div>\n </div>\n );\n};\n\nSearchContainer.propTypes = {\n setListFilters: PropTypes.func.isRequired,\n keywordFiltersToUse: PropTypes.array,\n selectFiltersToDisplay: PropTypes.array,\n schema: PropTypes.object.isRequired,\n index: PropTypes.string\n};\n\nSearchContainer.defaultProps = {\n keywordFiltersToUse: [],\n selectFiltersToDisplay: [],\n index: 'admin'\n};\n\nexport default SearchContainer;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ import React, { useMemo } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { getKeywordSearchFilters, findSelectFilters } from './helpers';
4
+ import SearchContainer from './SearchContainer';
5
+ const SearchFilter = ({
6
+ schema,
7
+ setListFilters
8
+ }) => {
9
+ const {
10
+ displayProperties = {}
11
+ } = schema || {};
12
+ const {
13
+ adminListings: {
14
+ dataSource: {
15
+ source,
16
+ index
17
+ } = {},
18
+ disableListingFilter = false
19
+ } = {}
20
+ } = displayProperties;
21
+ const keywordFiltersToUse = useMemo(() => getKeywordSearchFilters(schema), [schema]);
22
+ const selectFiltersToDisplay = useMemo(() => findSelectFilters(schema), [schema]);
23
+ if (disableListingFilter) return null;
24
+ const canSearch = source === 'search' && (keywordFiltersToUse.length > 0 || selectFiltersToDisplay.length > 0);
25
+ if (!canSearch) return null;
26
+ return /*#__PURE__*/React.createElement(SearchContainer, {
27
+ index: index,
28
+ key: schema.id,
29
+ setListFilters: setListFilters,
30
+ keywordFiltersToUse: keywordFiltersToUse,
31
+ selectFiltersToDisplay: selectFiltersToDisplay,
32
+ schema: schema
33
+ });
34
+ };
35
+ SearchFilter.propTypes = {
36
+ setListFilters: PropTypes.func.isRequired,
37
+ schema: PropTypes.object.isRequired
38
+ };
39
+ export default SearchFilter;
40
+ //# sourceMappingURL=SearchFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchFilter.js","names":["React","useMemo","PropTypes","getKeywordSearchFilters","findSelectFilters","SearchContainer","SearchFilter","schema","setListFilters","displayProperties","adminListings","dataSource","source","index","disableListingFilter","keywordFiltersToUse","selectFiltersToDisplay","canSearch","length","createElement","key","id","propTypes","func","isRequired","object"],"sources":["../../../../src/components/ListingTable/SearchFilter/SearchFilter.js"],"sourcesContent":["import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { getKeywordSearchFilters, findSelectFilters } from './helpers';\nimport SearchContainer from './SearchContainer';\n\nconst SearchFilter = ({ schema, setListFilters }) => {\n const { displayProperties = {} } = schema || {};\n const {\n adminListings: { dataSource: { source, index } = {}, disableListingFilter = false } = {}\n } = displayProperties;\n\n const keywordFiltersToUse = useMemo(() => getKeywordSearchFilters(schema), [schema]);\n const selectFiltersToDisplay = useMemo(() => findSelectFilters(schema), [schema]);\n\n if (disableListingFilter) return null;\n\n const canSearch =\n source === 'search' && (keywordFiltersToUse.length > 0 || selectFiltersToDisplay.length > 0);\n if (!canSearch) return null;\n\n return (\n <SearchContainer\n index={index}\n key={schema.id}\n setListFilters={setListFilters}\n keywordFiltersToUse={keywordFiltersToUse}\n selectFiltersToDisplay={selectFiltersToDisplay}\n schema={schema}\n />\n );\n};\n\nSearchFilter.propTypes = {\n setListFilters: PropTypes.func.isRequired,\n schema: PropTypes.object.isRequired\n};\n\nexport default SearchFilter;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,uBAAuB,EAAEC,iBAAiB,QAAQ,WAAW;AACtE,OAAOC,eAAe,MAAM,mBAAmB;AAE/C,MAAMC,YAAY,GAAGA,CAAC;EAAEC,MAAM;EAAEC;AAAe,CAAC,KAAK;EACnD,MAAM;IAAEC,iBAAiB,GAAG,CAAC;EAAE,CAAC,GAAGF,MAAM,IAAI,CAAC,CAAC;EAC/C,MAAM;IACJG,aAAa,EAAE;MAAEC,UAAU,EAAE;QAAEC,MAAM;QAAEC;MAAM,CAAC,GAAG,CAAC,CAAC;MAAEC,oBAAoB,GAAG;IAAM,CAAC,GAAG,CAAC;EACzF,CAAC,GAAGL,iBAAiB;EAErB,MAAMM,mBAAmB,GAAGd,OAAO,CAAC,MAAME,uBAAuB,CAACI,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EACpF,MAAMS,sBAAsB,GAAGf,OAAO,CAAC,MAAMG,iBAAiB,CAACG,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEjF,IAAIO,oBAAoB,EAAE,OAAO,IAAI;EAErC,MAAMG,SAAS,GACbL,MAAM,KAAK,QAAQ,KAAKG,mBAAmB,CAACG,MAAM,GAAG,CAAC,IAAIF,sBAAsB,CAACE,MAAM,GAAG,CAAC,CAAC;EAC9F,IAAI,CAACD,SAAS,EAAE,OAAO,IAAI;EAE3B,oBACEjB,KAAA,CAAAmB,aAAA,CAACd,eAAe;IACdQ,KAAK,EAAEA,KAAM;IACbO,GAAG,EAAEb,MAAM,CAACc,EAAG;IACfb,cAAc,EAAEA,cAAe;IAC/BO,mBAAmB,EAAEA,mBAAoB;IACzCC,sBAAsB,EAAEA,sBAAuB;IAC/CT,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN,CAAC;AAEDD,YAAY,CAACgB,SAAS,GAAG;EACvBd,cAAc,EAAEN,SAAS,CAACqB,IAAI,CAACC,UAAU;EACzCjB,MAAM,EAAEL,SAAS,CAACuB,MAAM,CAACD;AAC3B,CAAC;AAED,eAAelB,YAAY","ignoreList":[]}