@blaze-cms/plugin-data-ui 0.146.0-translations.6 → 0.147.0-rc-eagle.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/README.md +57 -0
- package/lib/components/EntityDataListing/EntityDataListing.js +21 -19
- package/lib/components/EntityDataListing/EntityDataListing.js.map +1 -1
- package/lib/components/EntityDataListing/index.js +2 -3
- package/lib/components/EntityDataListing/index.js.map +1 -1
- package/lib/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js +18 -19
- package/lib/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js.map +1 -1
- package/lib/components/EntityManager/Entity/EntitiyNavLinks/index.js +2 -3
- package/lib/components/EntityManager/Entity/EntitiyNavLinks/index.js.map +1 -1
- package/lib/components/EntityManager/Entity/Entity.js +289 -452
- package/lib/components/EntityManager/Entity/Entity.js.map +1 -1
- package/lib/components/EntityManager/Entity/EntityHeader/EntityHeader.js +62 -66
- package/lib/components/EntityManager/Entity/EntityHeader/EntityHeader.js.map +1 -1
- package/lib/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js +34 -50
- package/lib/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js.map +1 -1
- package/lib/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/index.js +2 -3
- package/lib/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/index.js.map +1 -1
- package/lib/components/EntityManager/Entity/EntityHeader/index.js +2 -3
- package/lib/components/EntityManager/Entity/EntityHeader/index.js.map +1 -1
- package/lib/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js +20 -26
- package/lib/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js.map +1 -1
- package/lib/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +20 -17
- package/lib/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js.map +1 -1
- package/lib/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js +34 -32
- package/lib/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js.map +1 -1
- package/lib/components/EntityManager/Entity/SideBarRelations/index.js +104 -150
- package/lib/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
- package/lib/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +24 -24
- package/lib/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js.map +1 -1
- package/lib/components/EntityManager/Entity/actions-handlers/create/index.js +2 -3
- package/lib/components/EntityManager/Entity/actions-handlers/create/index.js.map +1 -1
- package/lib/components/EntityManager/Entity/actions-handlers/create/submit.js +42 -56
- package/lib/components/EntityManager/Entity/actions-handlers/create/submit.js.map +1 -1
- package/lib/components/EntityManager/Entity/actions-handlers/delete/delete.js +29 -45
- package/lib/components/EntityManager/Entity/actions-handlers/delete/delete.js.map +1 -1
- package/lib/components/EntityManager/Entity/actions-handlers/delete/index.js +2 -3
- package/lib/components/EntityManager/Entity/actions-handlers/delete/index.js.map +1 -1
- package/lib/components/EntityManager/Entity/actions-handlers/index.js +7 -8
- package/lib/components/EntityManager/Entity/actions-handlers/index.js.map +1 -1
- package/lib/components/EntityManager/Entity/actions-handlers/shared/index.js +2 -3
- package/lib/components/EntityManager/Entity/actions-handlers/shared/index.js.map +1 -1
- package/lib/components/EntityManager/Entity/actions-handlers/shared/publish.js +36 -57
- package/lib/components/EntityManager/Entity/actions-handlers/shared/publish.js.map +1 -1
- package/lib/components/EntityManager/Entity/actions-handlers/update/index.js +2 -3
- package/lib/components/EntityManager/Entity/actions-handlers/update/index.js.map +1 -1
- package/lib/components/EntityManager/Entity/actions-handlers/update/submit.js +47 -66
- package/lib/components/EntityManager/Entity/actions-handlers/update/submit.js.map +1 -1
- package/lib/components/EntityManager/Entity/index.js +2 -3
- package/lib/components/EntityManager/Entity/index.js.map +1 -1
- package/lib/components/EntityManager/EntityManager.js +91 -166
- package/lib/components/EntityManager/EntityManager.js.map +1 -1
- package/lib/components/EntityManager/index.js +2 -3
- package/lib/components/EntityManager/index.js.map +1 -1
- package/lib/components/EntityManager/utils/RecordEditContext/index.js +3 -4
- package/lib/components/EntityManager/utils/RecordEditContext/index.js.map +1 -1
- package/lib/components/EntityManager/utils/data-mappers.js +34 -46
- package/lib/components/EntityManager/utils/data-mappers.js.map +1 -1
- package/lib/components/EntityManager/utils/entity.js +35 -73
- package/lib/components/EntityManager/utils/entity.js.map +1 -1
- package/lib/components/EntityManager/utils/entityAvailableActions.js +51 -110
- package/lib/components/EntityManager/utils/entityAvailableActions.js.map +1 -1
- package/lib/components/EntityManager/utils/is-form-empty.js +6 -10
- package/lib/components/EntityManager/utils/is-form-empty.js.map +1 -1
- package/lib/components/EntityManager/utils/query.js +17 -10
- package/lib/components/EntityManager/utils/query.js.map +1 -1
- package/lib/components/InfoBoxes/InfoBoxTooltip.js +43 -0
- package/lib/components/InfoBoxes/InfoBoxTooltip.js.map +1 -0
- package/lib/components/InfoBoxes/InfoBoxes.js +19 -19
- package/lib/components/InfoBoxes/InfoBoxes.js.map +1 -1
- package/lib/components/InfoBoxes/container/InfoBoxContainer.js +26 -38
- package/lib/components/InfoBoxes/container/InfoBoxContainer.js.map +1 -1
- package/lib/components/InfoBoxes/helpers/build-dynamic-query.js +21 -16
- package/lib/components/InfoBoxes/helpers/build-dynamic-query.js.map +1 -1
- package/lib/components/InfoBoxes/hooks/useData.js +33 -30
- package/lib/components/InfoBoxes/hooks/useData.js.map +1 -1
- package/lib/components/InfoBoxes/hooks/useInfoBox.js +10 -10
- package/lib/components/InfoBoxes/hooks/useInfoBox.js.map +1 -1
- package/lib/components/InfoBoxes/index.js +2 -3
- package/lib/components/InfoBoxes/index.js.map +1 -1
- package/lib/components/InfoBoxes/presentational/InfoBox.js +28 -32
- package/lib/components/InfoBoxes/presentational/InfoBox.js.map +1 -1
- package/lib/components/InfoBoxes/presentational/InfoBoxLabel.js +11 -12
- package/lib/components/InfoBoxes/presentational/InfoBoxLabel.js.map +1 -1
- package/lib/components/InfoBoxes/presentational/InfoBoxValue.js +12 -12
- package/lib/components/InfoBoxes/presentational/InfoBoxValue.js.map +1 -1
- package/lib/components/ListingTable/ListingTable.js +163 -303
- package/lib/components/ListingTable/ListingTable.js.map +1 -1
- package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js +61 -40
- package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
- package/lib/components/ListingTable/ListingTableContent/index.js +2 -3
- package/lib/components/ListingTable/ListingTableContent/index.js.map +1 -1
- package/lib/components/ListingTable/SearchFilter/SearchContainer.js +215 -0
- package/lib/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -0
- package/lib/components/ListingTable/SearchFilter/SearchFilter.js +48 -0
- package/lib/components/ListingTable/SearchFilter/SearchFilter.js.map +1 -0
- package/lib/components/ListingTable/SearchFilter/helpers.js +105 -0
- package/lib/components/ListingTable/SearchFilter/helpers.js.map +1 -0
- package/lib/components/ListingTable/SearchFilter/querys.js +13 -0
- package/lib/components/ListingTable/SearchFilter/querys.js.map +1 -0
- package/lib/components/ListingTable/TableActions/TableActions.js +27 -31
- package/lib/components/ListingTable/TableActions/TableActions.js.map +1 -1
- package/lib/components/ListingTable/TableActions/index.js +2 -3
- package/lib/components/ListingTable/TableActions/index.js.map +1 -1
- package/lib/components/ListingTable/index.js +2 -3
- package/lib/components/ListingTable/index.js.map +1 -1
- package/lib/components/ListingTable/mappers/populate-rows.js +104 -120
- package/lib/components/ListingTable/mappers/populate-rows.js.map +1 -1
- package/lib/components/ListingTable/service/index.js +66 -83
- package/lib/components/ListingTable/service/index.js.map +1 -1
- package/lib/components/Tabs/index.js +26 -42
- package/lib/components/Tabs/index.js.map +1 -1
- package/lib/components/hooks/useCallbackDebounce.js +5 -9
- package/lib/components/hooks/useCallbackDebounce.js.map +1 -1
- package/lib/constants.js +31 -29
- package/lib/constants.js.map +1 -1
- package/lib/icons/ContentIcon.js +17 -20
- package/lib/icons/ContentIcon.js.map +1 -1
- package/lib/icons/SettingsIcon.js +12 -15
- package/lib/icons/SettingsIcon.js.map +1 -1
- package/lib/icons/TaxonomyIcon.js +15 -18
- package/lib/icons/TaxonomyIcon.js.map +1 -1
- package/lib/icons/UsersIcon.js +11 -14
- package/lib/icons/UsersIcon.js.map +1 -1
- package/lib/icons/index.js +8 -9
- package/lib/icons/index.js.map +1 -1
- package/lib/index.js +81 -121
- package/lib/index.js.map +1 -1
- package/lib/utils/add-content-menu-items.js +67 -93
- package/lib/utils/add-content-menu-items.js.map +1 -1
- package/lib/utils/build-create-entity-mutation.js +12 -9
- package/lib/utils/build-create-entity-mutation.js.map +1 -1
- package/lib/utils/build-delete-entity-mutation.js +11 -8
- package/lib/utils/build-delete-entity-mutation.js.map +1 -1
- package/lib/utils/build-listing-query.js +20 -17
- package/lib/utils/build-listing-query.js.map +1 -1
- package/lib/utils/build-update-data-query.js +15 -9
- package/lib/utils/build-update-data-query.js.map +1 -1
- package/lib/utils/build-update-publish-unpublish-mutation.js +15 -8
- package/lib/utils/build-update-publish-unpublish-mutation.js.map +1 -1
- package/lib/utils/get-default-query-params.js +7 -6
- package/lib/utils/get-default-query-params.js.map +1 -1
- package/lib/utils/hoc/withContext.js +4 -6
- package/lib/utils/hoc/withContext.js.map +1 -1
- package/lib/utils/hooks/useToggle.js +4 -12
- package/lib/utils/hooks/useToggle.js.map +1 -1
- package/lib/utils/index.js +2 -3
- package/lib/utils/index.js.map +1 -1
- package/lib-es/components/EntityDataListing/EntityDataListing.js.map +1 -1
- package/lib-es/components/EntityDataListing/index.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/index.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/Entity.js +21 -28
- package/lib-es/components/EntityManager/Entity/Entity.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/EntityHeader/EntityHeader.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js +6 -1
- package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/index.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/EntityHeader/index.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +2 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js +26 -7
- package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +8 -2
- package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/actions-handlers/create/index.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/actions-handlers/create/submit.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/actions-handlers/delete/delete.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/actions-handlers/delete/index.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/actions-handlers/index.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/actions-handlers/shared/index.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/actions-handlers/shared/publish.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/actions-handlers/update/index.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/actions-handlers/update/submit.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/index.js.map +1 -1
- package/lib-es/components/EntityManager/EntityManager.js.map +1 -1
- package/lib-es/components/EntityManager/index.js.map +1 -1
- package/lib-es/components/EntityManager/utils/RecordEditContext/index.js.map +1 -1
- package/lib-es/components/EntityManager/utils/data-mappers.js.map +1 -1
- package/lib-es/components/EntityManager/utils/entity.js +6 -2
- package/lib-es/components/EntityManager/utils/entity.js.map +1 -1
- package/lib-es/components/EntityManager/utils/entityAvailableActions.js.map +1 -1
- package/lib-es/components/EntityManager/utils/is-form-empty.js.map +1 -1
- package/lib-es/components/EntityManager/utils/query.js.map +1 -1
- package/lib-es/components/InfoBoxes/InfoBoxTooltip.js +36 -0
- package/lib-es/components/InfoBoxes/InfoBoxTooltip.js.map +1 -0
- package/lib-es/components/InfoBoxes/InfoBoxes.js.map +1 -1
- package/lib-es/components/InfoBoxes/container/InfoBoxContainer.js.map +1 -1
- package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js +2 -0
- package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js.map +1 -1
- package/lib-es/components/InfoBoxes/hooks/useData.js.map +1 -1
- package/lib-es/components/InfoBoxes/hooks/useInfoBox.js.map +1 -1
- package/lib-es/components/InfoBoxes/index.js.map +1 -1
- package/lib-es/components/InfoBoxes/presentational/InfoBox.js +4 -1
- package/lib-es/components/InfoBoxes/presentational/InfoBox.js.map +1 -1
- package/lib-es/components/InfoBoxes/presentational/InfoBoxLabel.js.map +1 -1
- package/lib-es/components/InfoBoxes/presentational/InfoBoxValue.js.map +1 -1
- package/lib-es/components/ListingTable/ListingTable.js +12 -11
- package/lib-es/components/ListingTable/ListingTable.js.map +1 -1
- package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js +34 -16
- package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
- package/lib-es/components/ListingTable/ListingTableContent/index.js.map +1 -1
- package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js +207 -0
- package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -0
- package/lib-es/components/ListingTable/SearchFilter/SearchFilter.js +40 -0
- package/lib-es/components/ListingTable/SearchFilter/SearchFilter.js.map +1 -0
- package/lib-es/components/ListingTable/SearchFilter/helpers.js +96 -0
- package/lib-es/components/ListingTable/SearchFilter/helpers.js.map +1 -0
- package/lib-es/components/ListingTable/SearchFilter/querys.js +8 -0
- package/lib-es/components/ListingTable/SearchFilter/querys.js.map +1 -0
- package/lib-es/components/ListingTable/TableActions/TableActions.js.map +1 -1
- package/lib-es/components/ListingTable/TableActions/index.js.map +1 -1
- package/lib-es/components/ListingTable/index.js.map +1 -1
- package/lib-es/components/ListingTable/mappers/populate-rows.js +3 -0
- package/lib-es/components/ListingTable/mappers/populate-rows.js.map +1 -1
- package/lib-es/components/ListingTable/service/index.js +3 -2
- package/lib-es/components/ListingTable/service/index.js.map +1 -1
- package/lib-es/components/Tabs/index.js +6 -7
- package/lib-es/components/Tabs/index.js.map +1 -1
- package/lib-es/components/hooks/useCallbackDebounce.js.map +1 -1
- package/lib-es/constants.js +4 -1
- package/lib-es/constants.js.map +1 -1
- package/lib-es/icons/ContentIcon.js.map +1 -1
- package/lib-es/icons/SettingsIcon.js.map +1 -1
- package/lib-es/icons/TaxonomyIcon.js.map +1 -1
- package/lib-es/icons/UsersIcon.js.map +1 -1
- package/lib-es/icons/index.js.map +1 -1
- package/lib-es/index.js +11 -3
- package/lib-es/index.js.map +1 -1
- package/lib-es/utils/add-content-menu-items.js.map +1 -1
- package/lib-es/utils/build-create-entity-mutation.js.map +1 -1
- package/lib-es/utils/build-delete-entity-mutation.js.map +1 -1
- package/lib-es/utils/build-listing-query.js +4 -4
- package/lib-es/utils/build-listing-query.js.map +1 -1
- package/lib-es/utils/build-update-data-query.js.map +1 -1
- package/lib-es/utils/build-update-publish-unpublish-mutation.js.map +1 -1
- package/lib-es/utils/get-default-query-params.js.map +1 -1
- package/lib-es/utils/hoc/withContext.js +1 -1
- package/lib-es/utils/hoc/withContext.js.map +1 -1
- package/lib-es/utils/hooks/useToggle.js.map +1 -1
- package/lib-es/utils/index.js.map +1 -1
- package/package.json +28 -22
- package/src/components/EntityManager/Entity/Entity.js +72 -80
- package/src/components/EntityManager/Entity/EntityHeader/EntityHeader.js +1 -2
- package/src/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js +8 -1
- package/src/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +2 -0
- package/src/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js +9 -7
- package/src/components/EntityManager/Entity/SideBarRelations/index.js +82 -59
- package/src/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +5 -3
- package/src/components/EntityManager/EntityManager.js +52 -45
- package/src/components/EntityManager/utils/entity.js +13 -2
- package/src/components/InfoBoxes/InfoBoxTooltip.js +32 -0
- package/src/components/InfoBoxes/container/InfoBoxContainer.js +3 -6
- package/src/components/InfoBoxes/helpers/build-dynamic-query.js +2 -0
- package/src/components/InfoBoxes/hooks/useData.js +6 -1
- package/src/components/InfoBoxes/presentational/InfoBox.js +4 -2
- package/src/components/ListingTable/ListingTable.js +23 -31
- package/src/components/ListingTable/ListingTableContent/ListingTableContent.js +43 -27
- package/src/components/ListingTable/SearchFilter/SearchContainer.js +228 -0
- package/src/components/ListingTable/SearchFilter/SearchFilter.js +38 -0
- package/src/components/ListingTable/SearchFilter/helpers.js +99 -0
- package/src/components/ListingTable/SearchFilter/querys.js +9 -0
- package/src/components/ListingTable/mappers/populate-rows.js +3 -0
- package/src/components/ListingTable/service/index.js +3 -4
- package/src/components/Tabs/index.js +17 -21
- package/src/constants.js +9 -1
- package/src/index.js +9 -7
- package/src/utils/build-listing-query.js +4 -4
- package/src/utils/hoc/withContext.js +5 -4
- package/CHANGELOG.md +0 -1939
- package/babel.config.js +0 -3
- package/jest.config.js +0 -5
|
@@ -1,59 +1,80 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.object.define-property.js");
|
|
4
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports
|
|
9
|
-
var _react =
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
9
|
var _table = _interopRequireDefault(require("@blaze-react/table"));
|
|
11
10
|
var _pagination = _interopRequireDefault(require("@blaze-react/pagination"));
|
|
12
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
12
|
var _reactRouterDom = require("react-router-dom");
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
13
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
|
+
const ListingTableContent = ({
|
|
15
|
+
tableData,
|
|
16
|
+
handleSelect,
|
|
17
|
+
onSort,
|
|
18
|
+
handleOnPageChange,
|
|
19
|
+
currentPage,
|
|
20
|
+
totalItems
|
|
21
|
+
}) => {
|
|
22
|
+
const ref = (0, _react.useRef)(null);
|
|
23
|
+
const displayTable = tableData && tableData.rows && !!tableData.rows.length;
|
|
24
|
+
const {
|
|
25
|
+
isEnquiry
|
|
26
|
+
} = tableData;
|
|
27
|
+
const className = `page__content${isEnquiry ? ' array-table' : ''}`;
|
|
28
|
+
(0, _react.useEffect)(() => {
|
|
29
|
+
// set table head to match body column widths to handle dynamic content
|
|
30
|
+
if (ref.current && displayTable) {
|
|
31
|
+
const tableHeadCells = ref.current.querySelectorAll('.table-head .table-cell');
|
|
32
|
+
const firstRowCells = ref.current.querySelectorAll('.table-body .table-row:first-child .table-cell');
|
|
33
|
+
firstRowCells.forEach((element, i) => {
|
|
34
|
+
const styles = window.getComputedStyle(element);
|
|
35
|
+
if (tableHeadCells[i]) {
|
|
36
|
+
tableHeadCells[i].style.flex = styles.flex;
|
|
37
|
+
tableHeadCells[i].style['justify-content'] = styles['justify-content'];
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}, [tableData, displayTable]);
|
|
42
|
+
if (displayTable) {
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
44
|
+
ref: ref,
|
|
45
|
+
className: className
|
|
46
|
+
}, /*#__PURE__*/_react.default.createElement(_table.default, {
|
|
47
|
+
onSort: onSort,
|
|
48
|
+
data: tableData,
|
|
49
|
+
onSelect: handleSelect,
|
|
50
|
+
"data-testid": "listing-table-content"
|
|
51
|
+
}), /*#__PURE__*/_react.default.createElement(_pagination.default, {
|
|
52
|
+
visiblePages: 10,
|
|
53
|
+
totalItems: totalItems,
|
|
54
|
+
currentPage: currentPage,
|
|
55
|
+
onPageChange: handleOnPageChange
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
38
59
|
className: "table-no-results",
|
|
39
60
|
"data-testid": "no-results"
|
|
40
|
-
}, "No results")
|
|
61
|
+
}, "No results");
|
|
41
62
|
};
|
|
42
63
|
ListingTableContent.propTypes = {
|
|
43
|
-
tableData: _propTypes
|
|
44
|
-
match: _propTypes
|
|
45
|
-
url: _propTypes
|
|
64
|
+
tableData: _propTypes.default.object.isRequired,
|
|
65
|
+
match: _propTypes.default.shape({
|
|
66
|
+
url: _propTypes.default.string
|
|
46
67
|
}).isRequired,
|
|
47
|
-
handleSelect: _propTypes
|
|
48
|
-
onSort: _propTypes
|
|
49
|
-
handleOnPageChange: _propTypes
|
|
50
|
-
currentPage: _propTypes
|
|
51
|
-
totalItems: _propTypes
|
|
68
|
+
handleSelect: _propTypes.default.func,
|
|
69
|
+
onSort: _propTypes.default.func,
|
|
70
|
+
handleOnPageChange: _propTypes.default.func,
|
|
71
|
+
currentPage: _propTypes.default.number.isRequired,
|
|
72
|
+
totalItems: _propTypes.default.number.isRequired
|
|
52
73
|
};
|
|
53
74
|
ListingTableContent.defaultProps = {
|
|
54
|
-
handleSelect:
|
|
55
|
-
onSort:
|
|
56
|
-
handleOnPageChange:
|
|
75
|
+
handleSelect: () => {},
|
|
76
|
+
onSort: () => {},
|
|
77
|
+
handleOnPageChange: () => {}
|
|
57
78
|
};
|
|
58
|
-
var _default = exports
|
|
79
|
+
var _default = exports.default = (0, _reactRouterDom.withRouter)(ListingTableContent);
|
|
59
80
|
//# sourceMappingURL=ListingTableContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListingTableContent.js","names":["_react","
|
|
1
|
+
{"version":3,"file":"ListingTableContent.js","names":["_react","_interopRequireWildcard","require","_table","_interopRequireDefault","_pagination","_propTypes","_reactRouterDom","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ListingTableContent","tableData","handleSelect","onSort","handleOnPageChange","currentPage","totalItems","ref","useRef","displayTable","rows","length","isEnquiry","className","useEffect","current","tableHeadCells","querySelectorAll","firstRowCells","forEach","element","styles","window","getComputedStyle","style","flex","createElement","data","onSelect","visiblePages","onPageChange","propTypes","PropTypes","object","isRequired","match","shape","url","string","func","number","defaultProps","_default","exports","withRouter"],"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 && displayTable) {\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, displayTable]);\n\n if (displayTable) {\n return (\n <div ref={ref} className={className}>\n <Table\n onSort={onSort}\n data={tableData}\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":[]}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.object.define-property.js");
|
|
4
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports
|
|
7
|
+
exports.default = void 0;
|
|
9
8
|
var _ListingTableContent = _interopRequireDefault(require("./ListingTableContent"));
|
|
10
|
-
var _default = exports
|
|
9
|
+
var _default = exports.default = _ListingTableContent.default;
|
|
11
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_ListingTableContent","_interopRequireDefault","require","_default","exports","ListingTableContent"],"sources":["../../../../src/components/ListingTable/ListingTableContent/index.js"],"sourcesContent":["import ListingTableContent from './ListingTableContent';\n\nexport default ListingTableContent;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_ListingTableContent","_interopRequireDefault","require","_default","exports","default","ListingTableContent"],"sources":["../../../../src/components/ListingTable/ListingTableContent/index.js"],"sourcesContent":["import ListingTableContent from './ListingTableContent';\n\nexport default ListingTableContent;\n"],"mappings":";;;;;;;AAAA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAwD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEzCC,4BAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _select = _interopRequireDefault(require("@blaze-react/select"));
|
|
12
|
+
var _client = require("@apollo/client");
|
|
13
|
+
var _adminUiUtils = require("@blaze-cms/admin-ui-utils");
|
|
14
|
+
var _bs = require("react-icons/bs");
|
|
15
|
+
var _helpers = require("./helpers");
|
|
16
|
+
var _querys = require("./querys");
|
|
17
|
+
var _constants = require("../../../constants");
|
|
18
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
19
|
+
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; }
|
|
20
|
+
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) { (0, _defineProperty2.default)(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; }
|
|
21
|
+
const SearchContainer = ({
|
|
22
|
+
setListFilters,
|
|
23
|
+
keywordFiltersToUse = [],
|
|
24
|
+
selectFiltersToDisplay = [],
|
|
25
|
+
schema,
|
|
26
|
+
index
|
|
27
|
+
}) => {
|
|
28
|
+
const apolloClient = (0, _client.useApolloClient)();
|
|
29
|
+
const [searchTerm, setSearchTerm] = (0, _react.useState)('');
|
|
30
|
+
const [selectedFilters, setSelectedFilters] = (0, _react.useState)({});
|
|
31
|
+
const [selectOptions, setSelectOptions] = (0, _react.useState)([]);
|
|
32
|
+
const displaySearchFilter = keywordFiltersToUse.length > 0;
|
|
33
|
+
const displaySelectFilters = selectFiltersToDisplay.length > 0;
|
|
34
|
+
const {
|
|
35
|
+
keywordSearchProperties,
|
|
36
|
+
keywordSearchLabels
|
|
37
|
+
} = (0, _react.useMemo)(() => {
|
|
38
|
+
const labels = [];
|
|
39
|
+
const properties = [];
|
|
40
|
+
keywordFiltersToUse.forEach(([property, {
|
|
41
|
+
label
|
|
42
|
+
}]) => {
|
|
43
|
+
if (label) labels.push(label);
|
|
44
|
+
properties.push(property);
|
|
45
|
+
});
|
|
46
|
+
return {
|
|
47
|
+
keywordSearchProperties: properties,
|
|
48
|
+
keywordSearchLabels: labels
|
|
49
|
+
};
|
|
50
|
+
}, [keywordFiltersToUse]);
|
|
51
|
+
const {
|
|
52
|
+
gqlFields,
|
|
53
|
+
rawQuery
|
|
54
|
+
} = (0, _react.useMemo)(() => (0, _helpers.buildQueryFields)(selectFiltersToDisplay, schema.id), [selectFiltersToDisplay, schema.id]);
|
|
55
|
+
const action = displaySelectFilters ? (0, _adminUiUtils.getDynamicQuery)('ADMIN_SEARCH')([schema], gqlFields, false, index) : _querys.NOOP_QUERY;
|
|
56
|
+
const {
|
|
57
|
+
data
|
|
58
|
+
} = (0, _client.useQuery)(action, {
|
|
59
|
+
skip: !displaySelectFilters,
|
|
60
|
+
variables: {
|
|
61
|
+
where: rawQuery,
|
|
62
|
+
limit: 0
|
|
63
|
+
},
|
|
64
|
+
fetchPolicy: 'cache-and-network'
|
|
65
|
+
});
|
|
66
|
+
const filterData = (0, _react.useMemo)(() => {
|
|
67
|
+
const {
|
|
68
|
+
searchResults: {
|
|
69
|
+
rawResults: {
|
|
70
|
+
aggregations = {}
|
|
71
|
+
} = {}
|
|
72
|
+
} = {}
|
|
73
|
+
} = data || {};
|
|
74
|
+
const proccessedData = [];
|
|
75
|
+
Object.entries(aggregations).forEach(([key, {
|
|
76
|
+
buckets
|
|
77
|
+
}]) => {
|
|
78
|
+
proccessedData.push(Array.isArray(buckets) ? [key, buckets.map(b => b.key).filter(Boolean)] : []);
|
|
79
|
+
});
|
|
80
|
+
return proccessedData;
|
|
81
|
+
}, [data]);
|
|
82
|
+
(0, _react.useEffect)(() => {
|
|
83
|
+
if (!filterData.length) {
|
|
84
|
+
setSelectOptions([]);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
(async () => {
|
|
88
|
+
const results = await Promise.all(filterData.map(async ([property, ids]) => {
|
|
89
|
+
try {
|
|
90
|
+
if (!ids || !ids.length) return {};
|
|
91
|
+
const [, selectionDetails] = selectFiltersToDisplay.find(([selectProperty]) => selectProperty === property) || [];
|
|
92
|
+
if (!selectionDetails) return null;
|
|
93
|
+
if (!selectionDetails.relation) {
|
|
94
|
+
return {
|
|
95
|
+
id: property,
|
|
96
|
+
label: selectionDetails.label,
|
|
97
|
+
options: ids.map(value => [value, value])
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
const query = (0, _adminUiUtils.getQuery)('GET_ENTITY_SCHEMA');
|
|
101
|
+
const {
|
|
102
|
+
data: {
|
|
103
|
+
getEntitySchemas: [relationSchema]
|
|
104
|
+
}
|
|
105
|
+
} = await apolloClient.query({
|
|
106
|
+
query,
|
|
107
|
+
variables: {
|
|
108
|
+
identifier: selectionDetails.relation.entityIdentifier
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
const {
|
|
112
|
+
data: {
|
|
113
|
+
result: selected = []
|
|
114
|
+
}
|
|
115
|
+
} = await apolloClient.query({
|
|
116
|
+
query: (0, _adminUiUtils.getDynamicQuery)('GET_ALL_ENTITIES')(relationSchema),
|
|
117
|
+
variables: {
|
|
118
|
+
where: {
|
|
119
|
+
id: {
|
|
120
|
+
_in: ids
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
sort: [{
|
|
124
|
+
property: 'name',
|
|
125
|
+
direction: 'asc'
|
|
126
|
+
}]
|
|
127
|
+
}
|
|
128
|
+
})
|
|
129
|
+
// eslint-disable-next-line no-console
|
|
130
|
+
.catch(e => console.error(e));
|
|
131
|
+
return {
|
|
132
|
+
id: property,
|
|
133
|
+
label: selectionDetails.label,
|
|
134
|
+
options: selected.map(item => [item.id, item.name])
|
|
135
|
+
};
|
|
136
|
+
} catch {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
}));
|
|
140
|
+
setSelectOptions(results.filter(Boolean));
|
|
141
|
+
})();
|
|
142
|
+
}, [apolloClient, filterData, schema, selectFiltersToDisplay]);
|
|
143
|
+
const updateFilters = (0, _react.useCallback)((term, filters) => (0, _helpers.updateListFilters)(term, filters, setListFilters, keywordSearchProperties), [setListFilters, keywordSearchProperties]);
|
|
144
|
+
const handleSearch = (0, _react.useCallback)(() => updateFilters(searchTerm, selectedFilters), [searchTerm, selectedFilters, updateFilters]);
|
|
145
|
+
const handleSearchChange = (0, _react.useCallback)(e => setSearchTerm(e.target.value), []);
|
|
146
|
+
const handleEnterKey = (0, _react.useCallback)(e => {
|
|
147
|
+
if (e.key === _constants.ENTER_KEY) handleSearch();
|
|
148
|
+
}, [handleSearch]);
|
|
149
|
+
const handleReset = (0, _react.useCallback)(() => {
|
|
150
|
+
setSearchTerm('');
|
|
151
|
+
setSelectedFilters(Object.keys(selectedFilters).reduce((acc, key) => _objectSpread(_objectSpread({}, acc), {}, {
|
|
152
|
+
[key]: _constants.DEFAULT_FILTER_OPTION_LABEL
|
|
153
|
+
}), {}));
|
|
154
|
+
updateFilters('', {});
|
|
155
|
+
}, [selectedFilters, updateFilters]);
|
|
156
|
+
const handleSelect = (0, _react.useCallback)((property, event) => {
|
|
157
|
+
const {
|
|
158
|
+
value
|
|
159
|
+
} = event;
|
|
160
|
+
const next = _objectSpread(_objectSpread({}, selectedFilters), {}, {
|
|
161
|
+
[property]: value
|
|
162
|
+
});
|
|
163
|
+
setSelectedFilters(next);
|
|
164
|
+
updateFilters(searchTerm, next);
|
|
165
|
+
}, [searchTerm, selectedFilters, updateFilters]);
|
|
166
|
+
const placeholderText = `Search ${keywordSearchLabels.join(', ')}`;
|
|
167
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
168
|
+
className: "search-container"
|
|
169
|
+
}, displaySearchFilter && /*#__PURE__*/_react.default.createElement("div", {
|
|
170
|
+
className: "search-container__search-input-container"
|
|
171
|
+
}, /*#__PURE__*/_react.default.createElement("input", {
|
|
172
|
+
type: "search",
|
|
173
|
+
className: "search-container__search-input-container__search-input",
|
|
174
|
+
placeholder: placeholderText,
|
|
175
|
+
value: searchTerm,
|
|
176
|
+
onChange: handleSearchChange,
|
|
177
|
+
onKeyDown: handleEnterKey
|
|
178
|
+
}), /*#__PURE__*/_react.default.createElement("i", {
|
|
179
|
+
role: "button",
|
|
180
|
+
onClick: handleSearch
|
|
181
|
+
}, /*#__PURE__*/_react.default.createElement(_bs.BsSearch, null))), displaySelectFilters && selectOptions.map(({
|
|
182
|
+
id,
|
|
183
|
+
options,
|
|
184
|
+
label
|
|
185
|
+
}) => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, options && !!options.length && /*#__PURE__*/_react.default.createElement("div", {
|
|
186
|
+
className: "search-container__select-wrapper"
|
|
187
|
+
}, /*#__PURE__*/_react.default.createElement(_select.default, {
|
|
188
|
+
label: label,
|
|
189
|
+
id: id,
|
|
190
|
+
name: id,
|
|
191
|
+
onChange: event => handleSelect(id, event),
|
|
192
|
+
options: options,
|
|
193
|
+
value: selectedFilters[id],
|
|
194
|
+
defaultTextValue: _constants.DEFAULT_FILTER_OPTION_LABEL
|
|
195
|
+
})))), /*#__PURE__*/_react.default.createElement("div", {
|
|
196
|
+
className: "search-container__reset-button"
|
|
197
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
198
|
+
role: "button",
|
|
199
|
+
onClick: handleReset
|
|
200
|
+
}, /*#__PURE__*/_react.default.createElement(_bs.BsArrowCounterclockwise, null))));
|
|
201
|
+
};
|
|
202
|
+
SearchContainer.propTypes = {
|
|
203
|
+
setListFilters: _propTypes.default.func.isRequired,
|
|
204
|
+
keywordFiltersToUse: _propTypes.default.array,
|
|
205
|
+
selectFiltersToDisplay: _propTypes.default.array,
|
|
206
|
+
schema: _propTypes.default.object.isRequired,
|
|
207
|
+
index: _propTypes.default.string
|
|
208
|
+
};
|
|
209
|
+
SearchContainer.defaultProps = {
|
|
210
|
+
keywordFiltersToUse: [],
|
|
211
|
+
selectFiltersToDisplay: [],
|
|
212
|
+
index: 'admin'
|
|
213
|
+
};
|
|
214
|
+
var _default = exports.default = SearchContainer;
|
|
215
|
+
//# sourceMappingURL=SearchContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchContainer.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_select","_client","_adminUiUtils","_bs","_helpers","_querys","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","SearchContainer","setListFilters","keywordFiltersToUse","selectFiltersToDisplay","schema","index","apolloClient","useApolloClient","searchTerm","setSearchTerm","useState","selectedFilters","setSelectedFilters","selectOptions","setSelectOptions","displaySearchFilter","displaySelectFilters","keywordSearchProperties","keywordSearchLabels","useMemo","labels","properties","property","label","gqlFields","rawQuery","buildQueryFields","id","action","getDynamicQuery","NOOP_QUERY","data","useQuery","skip","variables","where","limit","fetchPolicy","filterData","searchResults","rawResults","aggregations","proccessedData","entries","key","buckets","Array","isArray","map","b","Boolean","useEffect","results","Promise","all","ids","selectionDetails","find","selectProperty","relation","options","value","query","getQuery","getEntitySchemas","relationSchema","identifier","entityIdentifier","result","selected","_in","sort","direction","catch","console","error","item","name","updateFilters","useCallback","term","filters","updateListFilters","handleSearch","handleSearchChange","target","handleEnterKey","ENTER_KEY","handleReset","reduce","acc","DEFAULT_FILTER_OPTION_LABEL","handleSelect","event","next","placeholderText","join","createElement","className","type","placeholder","onChange","onKeyDown","role","onClick","BsSearch","Fragment","defaultTextValue","BsArrowCounterclockwise","propTypes","PropTypes","func","isRequired","array","object","string","defaultProps","_default","exports"],"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 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 }, [keywordFiltersToUse]);\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 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 }, [data]);\n\n useEffect(() => {\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 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 }, [apolloClient, filterData, schema, selectFiltersToDisplay]);\n\n const updateFilters = useCallback(\n (term, filters) => updateListFilters(term, filters, setListFilters, keywordSearchProperties),\n [setListFilters, keywordSearchProperties]\n );\n\n const handleSearch = useCallback(\n () => updateFilters(searchTerm, selectedFilters),\n [searchTerm, selectedFilters, 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 setSearchTerm('');\n setSelectedFilters(\n Object.keys(selectedFilters).reduce(\n (acc, key) => ({ ...acc, [key]: DEFAULT_FILTER_OPTION_LABEL }),\n {}\n )\n );\n updateFilters('', {});\n }, [selectedFilters, updateFilters]);\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 && !!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,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _helpers = require("./helpers");
|
|
11
|
+
var _SearchContainer = _interopRequireDefault(require("./SearchContainer"));
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
|
+
const SearchFilter = ({
|
|
14
|
+
schema,
|
|
15
|
+
setListFilters
|
|
16
|
+
}) => {
|
|
17
|
+
const {
|
|
18
|
+
displayProperties = {}
|
|
19
|
+
} = schema || {};
|
|
20
|
+
const {
|
|
21
|
+
adminListings: {
|
|
22
|
+
dataSource: {
|
|
23
|
+
source,
|
|
24
|
+
index
|
|
25
|
+
} = {},
|
|
26
|
+
disableListingFilter = false
|
|
27
|
+
} = {}
|
|
28
|
+
} = displayProperties;
|
|
29
|
+
const keywordFiltersToUse = (0, _react.useMemo)(() => (0, _helpers.getKeywordSearchFilters)(schema), [schema]);
|
|
30
|
+
const selectFiltersToDisplay = (0, _react.useMemo)(() => (0, _helpers.findSelectFilters)(schema), [schema]);
|
|
31
|
+
if (disableListingFilter) return null;
|
|
32
|
+
const canSearch = source === 'search' && (keywordFiltersToUse.length > 0 || selectFiltersToDisplay.length > 0);
|
|
33
|
+
if (!canSearch) return null;
|
|
34
|
+
return /*#__PURE__*/_react.default.createElement(_SearchContainer.default, {
|
|
35
|
+
index: index,
|
|
36
|
+
key: schema.id,
|
|
37
|
+
setListFilters: setListFilters,
|
|
38
|
+
keywordFiltersToUse: keywordFiltersToUse,
|
|
39
|
+
selectFiltersToDisplay: selectFiltersToDisplay,
|
|
40
|
+
schema: schema
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
SearchFilter.propTypes = {
|
|
44
|
+
setListFilters: _propTypes.default.func.isRequired,
|
|
45
|
+
schema: _propTypes.default.object.isRequired
|
|
46
|
+
};
|
|
47
|
+
var _default = exports.default = SearchFilter;
|
|
48
|
+
//# sourceMappingURL=SearchFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchFilter.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_helpers","_SearchContainer","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SearchFilter","schema","setListFilters","displayProperties","adminListings","dataSource","source","index","disableListingFilter","keywordFiltersToUse","useMemo","getKeywordSearchFilters","selectFiltersToDisplay","findSelectFilters","canSearch","length","createElement","key","id","propTypes","PropTypes","func","isRequired","object","_default","exports"],"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,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAF,sBAAA,CAAAF,OAAA;AAAgD,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAEhD,MAAMkB,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,GAAG,IAAAC,cAAO,EAAC,MAAM,IAAAC,gCAAuB,EAACV,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EACpF,MAAMW,sBAAsB,GAAG,IAAAF,cAAO,EAAC,MAAM,IAAAG,0BAAiB,EAACZ,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEjF,IAAIO,oBAAoB,EAAE,OAAO,IAAI;EAErC,MAAMM,SAAS,GACbR,MAAM,KAAK,QAAQ,KAAKG,mBAAmB,CAACM,MAAM,GAAG,CAAC,IAAIH,sBAAsB,CAACG,MAAM,GAAG,CAAC,CAAC;EAC9F,IAAI,CAACD,SAAS,EAAE,OAAO,IAAI;EAE3B,oBACExC,MAAA,CAAAiB,OAAA,CAAAyB,aAAA,CAACpC,gBAAA,CAAAW,OAAe;IACdgB,KAAK,EAAEA,KAAM;IACbU,GAAG,EAAEhB,MAAM,CAACiB,EAAG;IACfhB,cAAc,EAAEA,cAAe;IAC/BO,mBAAmB,EAAEA,mBAAoB;IACzCG,sBAAsB,EAAEA,sBAAuB;IAC/CX,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN,CAAC;AAEDD,YAAY,CAACmB,SAAS,GAAG;EACvBjB,cAAc,EAAEkB,kBAAS,CAACC,IAAI,CAACC,UAAU;EACzCrB,MAAM,EAAEmB,kBAAS,CAACG,MAAM,CAACD;AAC3B,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAlC,OAAA,GAEaS,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.updateListFilters = exports.getKeywordSearchFilters = exports.findSelectFilters = exports.buildQueryFields = void 0;
|
|
7
|
+
var _constants = require("../../../constants");
|
|
8
|
+
const updateListFilters = (searchTerm, selectedFilters, setListFilters, fields = []) => {
|
|
9
|
+
const filters = [];
|
|
10
|
+
if (searchTerm) {
|
|
11
|
+
filters.push({
|
|
12
|
+
simple_query_string: {
|
|
13
|
+
query: `${searchTerm}`,
|
|
14
|
+
default_operator: 'AND',
|
|
15
|
+
fields: fields.map(field => field)
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
Object.entries(selectedFilters).forEach(([filterKey, filterValue]) => {
|
|
20
|
+
if (!filterValue || filterValue === _constants.DEFAULT_FILTER_OPTION_LABEL) return;
|
|
21
|
+
filters.push({
|
|
22
|
+
match: {
|
|
23
|
+
[`${filterKey}.keyword`]: {
|
|
24
|
+
query: filterValue
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
setListFilters(filters);
|
|
30
|
+
};
|
|
31
|
+
exports.updateListFilters = updateListFilters;
|
|
32
|
+
const getKeywordSearchFilters = schema => {
|
|
33
|
+
if (!schema || !schema.properties) return [];
|
|
34
|
+
const {
|
|
35
|
+
properties = {},
|
|
36
|
+
dynamicProperties = {}
|
|
37
|
+
} = schema;
|
|
38
|
+
const propertyKeyword = Object.entries(properties).filter(isFilterKeywordItem);
|
|
39
|
+
const dynamicPropertyKeywords = Object.entries(dynamicProperties).filter(isFilterKeywordItem);
|
|
40
|
+
return [...propertyKeyword, ...dynamicPropertyKeywords];
|
|
41
|
+
};
|
|
42
|
+
exports.getKeywordSearchFilters = getKeywordSearchFilters;
|
|
43
|
+
const isFilterKeywordItem = ([, item]) => item.adminListingOptions && item.adminListingOptions.includeInKeywordSeach === true;
|
|
44
|
+
const findSelectFilters = schema => {
|
|
45
|
+
if (!schema || !schema.properties) return [];
|
|
46
|
+
const {
|
|
47
|
+
properties = {},
|
|
48
|
+
dynamicProperties = {}
|
|
49
|
+
} = schema;
|
|
50
|
+
const propertySelects = Object.entries(properties).filter(isFilterSelectItem);
|
|
51
|
+
const dynamicPropertySelects = Object.entries(dynamicProperties).filter(isFilterSelectItem);
|
|
52
|
+
return [...propertySelects, ...dynamicPropertySelects];
|
|
53
|
+
};
|
|
54
|
+
exports.findSelectFilters = findSelectFilters;
|
|
55
|
+
const isFilterSelectItem = ([, item]) => item.adminListingOptions && item.adminListingOptions.filterType === 'select';
|
|
56
|
+
const buildQueryFields = (selectFilters, entityId) => {
|
|
57
|
+
if (!Array.isArray(selectFilters) || selectFilters.length === 0) {
|
|
58
|
+
return {
|
|
59
|
+
gqlFields: '',
|
|
60
|
+
rawQuery: '{}'
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const aggs = {};
|
|
64
|
+
selectFilters.forEach(([property, details]) => {
|
|
65
|
+
aggs[property] = {
|
|
66
|
+
terms: {
|
|
67
|
+
field: `${property}.keyword`,
|
|
68
|
+
// todo: handle different field types
|
|
69
|
+
size: 1000,
|
|
70
|
+
// todo: customise size
|
|
71
|
+
order: {
|
|
72
|
+
_key: 'asc'
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
});
|
|
77
|
+
const docType = entityId;
|
|
78
|
+
const rawQueryObject = {
|
|
79
|
+
size: 0,
|
|
80
|
+
query: {
|
|
81
|
+
bool: {
|
|
82
|
+
filter: {
|
|
83
|
+
bool: {
|
|
84
|
+
must: [{
|
|
85
|
+
match: {
|
|
86
|
+
docType
|
|
87
|
+
}
|
|
88
|
+
}]
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
aggs
|
|
94
|
+
};
|
|
95
|
+
const rawQuery = JSON.stringify(rawQueryObject);
|
|
96
|
+
const gqlFields = `
|
|
97
|
+
rawResults
|
|
98
|
+
`;
|
|
99
|
+
return {
|
|
100
|
+
gqlFields,
|
|
101
|
+
rawQuery
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
exports.buildQueryFields = buildQueryFields;
|
|
105
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["_constants","require","updateListFilters","searchTerm","selectedFilters","setListFilters","fields","filters","push","simple_query_string","query","default_operator","map","field","Object","entries","forEach","filterKey","filterValue","DEFAULT_FILTER_OPTION_LABEL","match","exports","getKeywordSearchFilters","schema","properties","dynamicProperties","propertyKeyword","filter","isFilterKeywordItem","dynamicPropertyKeywords","item","adminListingOptions","includeInKeywordSeach","findSelectFilters","propertySelects","isFilterSelectItem","dynamicPropertySelects","filterType","buildQueryFields","selectFilters","entityId","Array","isArray","length","gqlFields","rawQuery","aggs","property","details","terms","size","order","_key","docType","rawQueryObject","bool","must","JSON","stringify"],"sources":["../../../../src/components/ListingTable/SearchFilter/helpers.js"],"sourcesContent":["import { DEFAULT_FILTER_OPTION_LABEL } from '../../../constants';\n\nconst updateListFilters = (searchTerm, selectedFilters, setListFilters, fields = []) => {\n const filters = [];\n\n if (searchTerm) {\n filters.push({\n simple_query_string: {\n query: `${searchTerm}`,\n default_operator: 'AND',\n fields: fields.map(field => field)\n }\n });\n }\n\n Object.entries(selectedFilters).forEach(([filterKey, filterValue]) => {\n if (!filterValue || filterValue === DEFAULT_FILTER_OPTION_LABEL) return;\n filters.push({\n match: {\n [`${filterKey}.keyword`]: {\n query: filterValue\n }\n }\n });\n });\n\n setListFilters(filters);\n};\n\nconst getKeywordSearchFilters = schema => {\n if (!schema || !schema.properties) return [];\n\n const { properties = {}, dynamicProperties = {} } = schema;\n\n const propertyKeyword = Object.entries(properties).filter(isFilterKeywordItem);\n const dynamicPropertyKeywords = Object.entries(dynamicProperties).filter(isFilterKeywordItem);\n\n return [...propertyKeyword, ...dynamicPropertyKeywords];\n};\n\nconst isFilterKeywordItem = ([, item]) =>\n item.adminListingOptions && item.adminListingOptions.includeInKeywordSeach === true;\n\nconst findSelectFilters = schema => {\n if (!schema || !schema.properties) return [];\n\n const { properties = {}, dynamicProperties = {} } = schema;\n\n const propertySelects = Object.entries(properties).filter(isFilterSelectItem);\n const dynamicPropertySelects = Object.entries(dynamicProperties).filter(isFilterSelectItem);\n\n return [...propertySelects, ...dynamicPropertySelects];\n};\n\nconst isFilterSelectItem = ([, item]) =>\n item.adminListingOptions && item.adminListingOptions.filterType === 'select';\n\nconst buildQueryFields = (selectFilters, entityId) => {\n if (!Array.isArray(selectFilters) || selectFilters.length === 0) {\n return { gqlFields: '', rawQuery: '{}' };\n }\n\n const aggs = {};\n selectFilters.forEach(([property, details]) => {\n aggs[property] = {\n terms: {\n field: `${property}.keyword`, // todo: handle different field types\n size: 1000, // todo: customise size\n order: {\n _key: 'asc'\n }\n }\n };\n });\n\n const docType = entityId;\n const rawQueryObject = {\n size: 0,\n query: {\n bool: {\n filter: {\n bool: {\n must: [{ match: { docType } }]\n }\n }\n }\n },\n aggs\n };\n const rawQuery = JSON.stringify(rawQueryObject);\n\n const gqlFields = `\n rawResults\n `;\n\n return { gqlFields, rawQuery };\n};\n\nexport { buildQueryFields, updateListFilters, getKeywordSearchFilters, findSelectFilters };\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA,MAAMC,iBAAiB,GAAGA,CAACC,UAAU,EAAEC,eAAe,EAAEC,cAAc,EAAEC,MAAM,GAAG,EAAE,KAAK;EACtF,MAAMC,OAAO,GAAG,EAAE;EAElB,IAAIJ,UAAU,EAAE;IACdI,OAAO,CAACC,IAAI,CAAC;MACXC,mBAAmB,EAAE;QACnBC,KAAK,EAAE,GAAGP,UAAU,EAAE;QACtBQ,gBAAgB,EAAE,KAAK;QACvBL,MAAM,EAAEA,MAAM,CAACM,GAAG,CAACC,KAAK,IAAIA,KAAK;MACnC;IACF,CAAC,CAAC;EACJ;EAEAC,MAAM,CAACC,OAAO,CAACX,eAAe,CAAC,CAACY,OAAO,CAAC,CAAC,CAACC,SAAS,EAAEC,WAAW,CAAC,KAAK;IACpE,IAAI,CAACA,WAAW,IAAIA,WAAW,KAAKC,sCAA2B,EAAE;IACjEZ,OAAO,CAACC,IAAI,CAAC;MACXY,KAAK,EAAE;QACL,CAAC,GAAGH,SAAS,UAAU,GAAG;UACxBP,KAAK,EAAEQ;QACT;MACF;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFb,cAAc,CAACE,OAAO,CAAC;AACzB,CAAC;AAACc,OAAA,CAAAnB,iBAAA,GAAAA,iBAAA;AAEF,MAAMoB,uBAAuB,GAAGC,MAAM,IAAI;EACxC,IAAI,CAACA,MAAM,IAAI,CAACA,MAAM,CAACC,UAAU,EAAE,OAAO,EAAE;EAE5C,MAAM;IAAEA,UAAU,GAAG,CAAC,CAAC;IAAEC,iBAAiB,GAAG,CAAC;EAAE,CAAC,GAAGF,MAAM;EAE1D,MAAMG,eAAe,GAAGZ,MAAM,CAACC,OAAO,CAACS,UAAU,CAAC,CAACG,MAAM,CAACC,mBAAmB,CAAC;EAC9E,MAAMC,uBAAuB,GAAGf,MAAM,CAACC,OAAO,CAACU,iBAAiB,CAAC,CAACE,MAAM,CAACC,mBAAmB,CAAC;EAE7F,OAAO,CAAC,GAAGF,eAAe,EAAE,GAAGG,uBAAuB,CAAC;AACzD,CAAC;AAACR,OAAA,CAAAC,uBAAA,GAAAA,uBAAA;AAEF,MAAMM,mBAAmB,GAAGA,CAAC,GAAGE,IAAI,CAAC,KACnCA,IAAI,CAACC,mBAAmB,IAAID,IAAI,CAACC,mBAAmB,CAACC,qBAAqB,KAAK,IAAI;AAErF,MAAMC,iBAAiB,GAAGV,MAAM,IAAI;EAClC,IAAI,CAACA,MAAM,IAAI,CAACA,MAAM,CAACC,UAAU,EAAE,OAAO,EAAE;EAE5C,MAAM;IAAEA,UAAU,GAAG,CAAC,CAAC;IAAEC,iBAAiB,GAAG,CAAC;EAAE,CAAC,GAAGF,MAAM;EAE1D,MAAMW,eAAe,GAAGpB,MAAM,CAACC,OAAO,CAACS,UAAU,CAAC,CAACG,MAAM,CAACQ,kBAAkB,CAAC;EAC7E,MAAMC,sBAAsB,GAAGtB,MAAM,CAACC,OAAO,CAACU,iBAAiB,CAAC,CAACE,MAAM,CAACQ,kBAAkB,CAAC;EAE3F,OAAO,CAAC,GAAGD,eAAe,EAAE,GAAGE,sBAAsB,CAAC;AACxD,CAAC;AAACf,OAAA,CAAAY,iBAAA,GAAAA,iBAAA;AAEF,MAAME,kBAAkB,GAAGA,CAAC,GAAGL,IAAI,CAAC,KAClCA,IAAI,CAACC,mBAAmB,IAAID,IAAI,CAACC,mBAAmB,CAACM,UAAU,KAAK,QAAQ;AAE9E,MAAMC,gBAAgB,GAAGA,CAACC,aAAa,EAAEC,QAAQ,KAAK;EACpD,IAAI,CAACC,KAAK,CAACC,OAAO,CAACH,aAAa,CAAC,IAAIA,aAAa,CAACI,MAAM,KAAK,CAAC,EAAE;IAC/D,OAAO;MAAEC,SAAS,EAAE,EAAE;MAAEC,QAAQ,EAAE;IAAK,CAAC;EAC1C;EAEA,MAAMC,IAAI,GAAG,CAAC,CAAC;EACfP,aAAa,CAACvB,OAAO,CAAC,CAAC,CAAC+B,QAAQ,EAAEC,OAAO,CAAC,KAAK;IAC7CF,IAAI,CAACC,QAAQ,CAAC,GAAG;MACfE,KAAK,EAAE;QACLpC,KAAK,EAAE,GAAGkC,QAAQ,UAAU;QAAE;QAC9BG,IAAI,EAAE,IAAI;QAAE;QACZC,KAAK,EAAE;UACLC,IAAI,EAAE;QACR;MACF;IACF,CAAC;EACH,CAAC,CAAC;EAEF,MAAMC,OAAO,GAAGb,QAAQ;EACxB,MAAMc,cAAc,GAAG;IACrBJ,IAAI,EAAE,CAAC;IACPxC,KAAK,EAAE;MACL6C,IAAI,EAAE;QACJ5B,MAAM,EAAE;UACN4B,IAAI,EAAE;YACJC,IAAI,EAAE,CAAC;cAAEpC,KAAK,EAAE;gBAAEiC;cAAQ;YAAE,CAAC;UAC/B;QACF;MACF;IACF,CAAC;IACDP;EACF,CAAC;EACD,MAAMD,QAAQ,GAAGY,IAAI,CAACC,SAAS,CAACJ,cAAc,CAAC;EAE/C,MAAMV,SAAS,GAAG;AACpB;AACA,GAAG;EAED,OAAO;IAAEA,SAAS;IAAEC;EAAS,CAAC;AAChC,CAAC;AAACxB,OAAA,CAAAiB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.NOOP_QUERY = void 0;
|
|
7
|
+
var _client = require("@apollo/client");
|
|
8
|
+
const NOOP_QUERY = exports.NOOP_QUERY = (0, _client.gql)`
|
|
9
|
+
query NoOp {
|
|
10
|
+
__typename
|
|
11
|
+
}
|
|
12
|
+
`;
|
|
13
|
+
//# sourceMappingURL=querys.js.map
|