@blaze-cms/plugin-data-ui 0.146.0-core-styles.60 → 0.146.0-core-styles.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.md +36 -0
- package/lib/components/EntityManager/Entity/Entity.js +24 -24
- package/lib/components/EntityManager/Entity/Entity.js.map +1 -1
- package/lib/components/EntityManager/Entity/EntityHeader/EntityHeader.js +1 -1
- package/lib/components/EntityManager/Entity/EntityHeader/EntityHeader.js.map +1 -1
- package/lib/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js +10 -10
- package/lib/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js.map +1 -1
- package/lib/components/EntityManager/Entity/SideBarRelations/index.js +23 -22
- package/lib/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
- package/lib/components/EntityManager/Entity/actions-handlers/create/submit.js +12 -12
- package/lib/components/EntityManager/Entity/actions-handlers/create/submit.js.map +1 -1
- package/lib/components/EntityManager/Entity/actions-handlers/delete/delete.js +12 -12
- package/lib/components/EntityManager/Entity/actions-handlers/delete/delete.js.map +1 -1
- package/lib/components/EntityManager/Entity/actions-handlers/shared/publish.js +15 -15
- package/lib/components/EntityManager/Entity/actions-handlers/shared/publish.js.map +1 -1
- package/lib/components/EntityManager/Entity/actions-handlers/update/submit.js +11 -11
- package/lib/components/EntityManager/Entity/actions-handlers/update/submit.js.map +1 -1
- package/lib/components/EntityManager/EntityManager.js +20 -20
- package/lib/components/EntityManager/EntityManager.js.map +1 -1
- package/lib/components/EntityManager/utils/entity.js +4 -4
- package/lib/components/EntityManager/utils/entity.js.map +1 -1
- package/lib/components/EntityManager/utils/entityAvailableActions.js +14 -14
- package/lib/components/EntityManager/utils/entityAvailableActions.js.map +1 -1
- package/lib/components/ListingTable/ListingTable.js +35 -27
- package/lib/components/ListingTable/ListingTable.js.map +1 -1
- package/lib/components/ListingTable/SearchFilter/SearchContainer.js +312 -0
- package/lib/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -0
- package/lib/components/ListingTable/SearchFilter/SearchFilter.js +58 -0
- package/lib/components/ListingTable/SearchFilter/SearchFilter.js.map +1 -0
- package/lib/components/ListingTable/SearchFilter/helpers.js +128 -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/service/index.js +6 -6
- package/lib/components/ListingTable/service/index.js.map +1 -1
- package/lib/constants.js +3 -1
- package/lib/constants.js.map +1 -1
- package/lib/index.js +5 -5
- package/lib/index.js.map +1 -1
- package/lib/utils/add-content-menu-items.js +6 -6
- package/lib/utils/add-content-menu-items.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/EntityHeader/EntityHeader.js +1 -1
- package/lib-es/components/EntityManager/Entity/EntityHeader/EntityHeader.js.map +1 -1
- package/lib-es/components/ListingTable/ListingTable.js +10 -2
- package/lib-es/components/ListingTable/ListingTable.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/constants.js +3 -1
- package/lib-es/constants.js.map +1 -1
- package/package.json +5 -5
- package/src/components/EntityManager/Entity/EntityHeader/EntityHeader.js +1 -1
- package/src/components/ListingTable/ListingTable.js +10 -1
- package/src/components/ListingTable/SearchFilter/SearchContainer.js +243 -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/constants.js +7 -1
|
@@ -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\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 &&\n _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 &&\n !showAddButton && (\n <Fragment>\n <Link\n data-testid=\"addEntity\"\n className=\"button button--small\"\n to={`${match.url}/create`}>\n Add\n </Link>\n <PageHeader.Actions>\n <More>\n <More.Avatar isMoreMenu>\n <span className=\"material-icons\">more_vert</span>\n </More.Avatar>\n <More.Content isMoreMenu />\n </More>\n </PageHeader.Actions>\n </Fragment>\n )}\n </PageHeader>\n {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","More","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","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 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\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 &&\n _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 &&\n !showAddButton && (\n <Fragment>\n <Link\n data-testid=\"addEntity\"\n className=\"button button--small\"\n to={`${match.url}/create`}>\n Add\n </Link>\n <PageHeader.Actions>\n <More>\n <More.Avatar isMoreMenu>\n <span className=\"material-icons\">more_vert</span>\n </More.Avatar>\n <More.Content isMoreMenu />\n </More>\n </PageHeader.Actions>\n </Fragment>\n )}\n </PageHeader>\n {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":[]}
|
|
@@ -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":";;;AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,OAAO,EAAEC,SAAS,EAAEC,WAAW,QAAQ,OAAO;AACxE,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AACxC,SAASC,QAAQ,EAAEC,eAAe,QAAQ,gBAAgB;AAC1D,SAASC,eAAe,EAAEC,QAAQ,QAAQ,2BAA2B;AACrE,SAASC,uBAAuB,EAAEC,QAAQ,QAAQ,gBAAgB;AAClE,SAASC,iBAAiB,EAAEC,gBAAgB,QAAQ,WAAW;AAC/D,SAASC,UAAU,QAAQ,UAAU;AACrC,SAASC,SAAS,EAAEC,2BAA2B,QAAQ,oBAAoB;AAE3E,MAAMC,eAAe,GAAGA,CAAC;EACvBC,cAAc;EACdC,mBAAmB,GAAG,EAAE;EACxBC,sBAAsB,GAAG,EAAE;EAC3BC,MAAM;EACNC;AACF,CAAC,KAAK;EACJ,MAAMC,YAAY,GAAGhB,eAAe,CAAC,CAAC;EACtC,MAAM,CAACiB,UAAU,EAAEC,aAAa,CAAC,GAAGzB,QAAQ,CAAC,EAAE,CAAC;EAChD,MAAM,CAAC0B,eAAe,EAAEC,kBAAkB,CAAC,GAAG3B,QAAQ,CAAC,CAAC,CAAC,CAAC;EAC1D,MAAM,CAAC4B,aAAa,EAAEC,gBAAgB,CAAC,GAAG7B,QAAQ,CAAC,EAAE,CAAC;EAEtD,MAAM8B,mBAAmB,GAAGX,mBAAmB,CAACY,MAAM,GAAG,CAAC;EAC1D,MAAMC,oBAAoB,GAAGZ,sBAAsB,CAACW,MAAM,GAAG,CAAC;EAE9D,MAAM;IAAEE,uBAAuB;IAAEC;EAAoB,CAAC,GAAGjC,OAAO,CAC9D,MAAM;IACJ,MAAMkC,MAAM,GAAG,EAAE;IACjB,MAAMC,UAAU,GAAG,EAAE;IAErBjB,mBAAmB,CAACkB,OAAO,CAAC,CAAC,CAACC,QAAQ,EAAE;MAAEC;IAAM,CAAC,CAAC,KAAK;MACrD,IAAIA,KAAK,EAAEJ,MAAM,CAACK,IAAI,CAACD,KAAK,CAAC;MAC7BH,UAAU,CAACI,IAAI,CAACF,QAAQ,CAAC;IAC3B,CAAC,CAAC;IAEF,OAAO;MAAEL,uBAAuB,EAAEG,UAAU;MAAEF,mBAAmB,EAAEC;IAAO,CAAC;EAC7E,CAAC,EACD,CAAChB,mBAAmB,CACtB,CAAC;EAED,MAAM;IAAEsB,SAAS;IAAEC;EAAS,CAAC,GAAGzC,OAAO,CACrC,MAAMY,gBAAgB,CAACO,sBAAsB,EAAEC,MAAM,CAACsB,EAAE,CAAC,EACzD,CAACvB,sBAAsB,EAAEC,MAAM,CAACsB,EAAE,CACpC,CAAC;EACD,MAAMC,MAAM,GAAGZ,oBAAoB,GAC/BxB,eAAe,CAAC,cAAc,CAAC,CAAC,CAACa,MAAM,CAAC,EAAEoB,SAAS,EAAE,KAAK,EAAEnB,KAAK,CAAC,GAClER,UAAU;EAEd,MAAM;IAAE+B;EAAK,CAAC,GAAGvC,QAAQ,CAACsC,MAAM,EAAE;IAChCE,IAAI,EAAE,CAACd,oBAAoB;IAC3Be,SAAS,EAAE;MAAEC,KAAK,EAAEN,QAAQ;MAAEO,KAAK,EAAE;IAAE,CAAC;IACxCC,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAMC,UAAU,GAAGlD,OAAO,CACxB,MAAM;IACJ,MAAM;MAAEmD,aAAa,EAAE;QAAEC,UAAU,EAAE;UAAEC,YAAY,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC;MAAE,CAAC,GAAG,CAAC;IAAE,CAAC,GAAGT,IAAI,IAAI,CAAC,CAAC;IACrF,MAAMU,cAAc,GAAG,EAAE;IACzBC,MAAM,CAACC,OAAO,CAACH,YAAY,CAAC,CAACjB,OAAO,CAAC,CAAC,CAACqB,GAAG,EAAE;MAAEC;IAAQ,CAAC,CAAC,KAAK;MAC3DJ,cAAc,CAACf,IAAI,CACjBoB,KAAK,CAACC,OAAO,CAACF,OAAO,CAAC,GAAG,CAACD,GAAG,EAAEC,OAAO,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACL,GAAG,CAAC,CAACM,MAAM,CAACC,OAAO,CAAC,CAAC,GAAG,EAC5E,CAAC;IACH,CAAC,CAAC;IAEF,OAAOV,cAAc;EACvB,CAAC,EACD,CAACV,IAAI,CACP,CAAC;EAED3C,SAAS,CACP,MAAM;IACJ,IAAI,CAACiD,UAAU,CAACpB,MAAM,EAAE;MACtBF,gBAAgB,CAAC,EAAE,CAAC;MACpB;IACF;IAEA,CAAC,YAAY;MACX,MAAMqC,OAAO,GAAG,MAAMC,OAAO,CAACC,GAAG,CAC/BjB,UAAU,CAACW,GAAG,CAAC,OAAO,CAACxB,QAAQ,EAAE+B,GAAG,CAAC,KAAK;QACxC,IAAI;UACF,IAAI,CAACA,GAAG,IAAI,CAACA,GAAG,CAACtC,MAAM,EAAE,OAAO,CAAC,CAAC;UAElC,MAAM,GAAGuC,gBAAgB,CAAC,GACxBlD,sBAAsB,CAACmD,IAAI,CAAC,CAAC,CAACC,cAAc,CAAC,KAAKA,cAAc,KAAKlC,QAAQ,CAAC,IAC9E,EAAE;UAEJ,IAAI,CAACgC,gBAAgB,EAAE,OAAO,IAAI;UAElC,IAAI,CAACA,gBAAgB,CAACG,QAAQ,EAAE;YAC9B,OAAO;cACL9B,EAAE,EAAEL,QAAQ;cACZC,KAAK,EAAE+B,gBAAgB,CAAC/B,KAAK;cAC7BmC,OAAO,EAAEL,GAAG,CAACP,GAAG,CAACa,KAAK,IAAI,CAACA,KAAK,EAAEA,KAAK,CAAC;YAC1C,CAAC;UACH;UACA,MAAMC,KAAK,GAAGnE,QAAQ,CAAC,mBAAmB,CAAC;UAC3C,MAAM;YACJoC,IAAI,EAAE;cACJgC,gBAAgB,EAAE,CAACC,cAAc;YACnC;UACF,CAAC,GAAG,MAAMvD,YAAY,CAACqD,KAAK,CAAC;YAC3BA,KAAK;YACL7B,SAAS,EAAE;cAAEgC,UAAU,EAAET,gBAAgB,CAACG,QAAQ,CAACO;YAAiB;UACtE,CAAC,CAAC;UAEF,MAAM;YACJnC,IAAI,EAAE;cAAEoC,MAAM,EAAEC,QAAQ,GAAG;YAAG;UAChC,CAAC,GAAG,MAAM3D,YAAY,CACnBqD,KAAK,CAAC;YACLA,KAAK,EAAEpE,eAAe,CAAC,kBAAkB,CAAC,CAACsE,cAAc,CAAC;YAC1D/B,SAAS,EAAE;cACTC,KAAK,EAAE;gBACLL,EAAE,EAAE;kBACFwC,GAAG,EAAEd;gBACP;cACF,CAAC;cACDe,IAAI,EAAE,CAAC;gBAAE9C,QAAQ,EAAE,MAAM;gBAAE+C,SAAS,EAAE;cAAM,CAAC;YAC/C;UACF,CAAC;UACD;UAAA,CACCC,KAAK,CAACC,CAAC,IAAIC,OAAO,CAACC,KAAK,CAACF,CAAC,CAAC,CAAC;UAE/B,OAAO;YACL5C,EAAE,EAAEL,QAAQ;YACZC,KAAK,EAAE+B,gBAAgB,CAAC/B,KAAK;YAC7BmC,OAAO,EAAEQ,QAAQ,CAACpB,GAAG,CAAC4B,IAAI,IAAI,CAACA,IAAI,CAAC/C,EAAE,EAAE+C,IAAI,CAACC,IAAI,CAAC;UACpD,CAAC;QACH,CAAC,CAAC,MAAM;UACN,OAAO,IAAI;QACb;MACF,CAAC,CACH,CAAC;MAED9D,gBAAgB,CAACqC,OAAO,CAACF,MAAM,CAACC,OAAO,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC;EACN,CAAC,EACD,CAAC1C,YAAY,EAAE4B,UAAU,EAAE9B,MAAM,EAAED,sBAAsB,CAC3D,CAAC;EAED,MAAMwE,aAAa,GAAGzF,WAAW,CAC/B,CAAC0F,IAAI,EAAEC,OAAO,KAAKlF,iBAAiB,CAACiF,IAAI,EAAEC,OAAO,EAAE5E,cAAc,EAAEe,uBAAuB,CAAC,EAC5F,CAACf,cAAc,EAAEe,uBAAuB,CAC1C,CAAC;EAED,MAAM8D,YAAY,GAAG5F,WAAW,CAAC,MAAMyF,aAAa,CAACpE,UAAU,EAAEE,eAAe,CAAC,EAAE,CACjFF,UAAU,EACVE,eAAe,EACfkE,aAAa,CACd,CAAC;EACF,MAAMI,kBAAkB,GAAG7F,WAAW,CAACoF,CAAC,IAAI9D,aAAa,CAAC8D,CAAC,CAACU,MAAM,CAACtB,KAAK,CAAC,EAAE,EAAE,CAAC;EAC9E,MAAMuB,cAAc,GAAG/F,WAAW,CAChCoF,CAAC,IAAI;IACH,IAAIA,CAAC,CAAC7B,GAAG,KAAK3C,SAAS,EAAEgF,YAAY,CAAC,CAAC;EACzC,CAAC,EACD,CAACA,YAAY,CACf,CAAC;EACD,MAAMI,WAAW,GAAGhG,WAAW,CAC7B,MAAM;IACJsB,aAAa,CAAC,EAAE,CAAC;IACjBE,kBAAkB,CAChB6B,MAAM,CAAC4C,IAAI,CAAC1E,eAAe,CAAC,CAAC2E,MAAM,CACjC,CAACC,GAAG,EAAE5C,GAAG,KAAA6C,aAAA,CAAAA,aAAA,KAAWD,GAAG;MAAE,CAAC5C,GAAG,GAAG1C;IAA2B,EAAG,EAC9D,CAAC,CACH,CACF,CAAC;IACD4E,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;EACvB,CAAC,EACD,CAAClE,eAAe,EAAEkE,aAAa,CACjC,CAAC;EACD,MAAMY,YAAY,GAAGrG,WAAW,CAC9B,CAACmC,QAAQ,EAAEmE,KAAK,KAAK;IACnB,MAAM;MAAE9B;IAAM,CAAC,GAAG8B,KAAK;IACvB,MAAMC,IAAI,GAAAH,aAAA,CAAAA,aAAA,KAAQ7E,eAAe;MAAE,CAACY,QAAQ,GAAGqC;IAAK,EAAE;IACtDhD,kBAAkB,CAAC+E,IAAI,CAAC;IACxBd,aAAa,CAACpE,UAAU,EAAEkF,IAAI,CAAC;EACjC,CAAC,EACD,CAAClF,UAAU,EAAEE,eAAe,EAAEkE,aAAa,CAC7C,CAAC;EAED,MAAMe,eAAe,GAAG,UAAUzE,mBAAmB,CAAC0E,IAAI,CAAC,IAAI,CAAC,EAAE;EAElE,oBACE7G,KAAA,CAAA8G,aAAA;IAAKC,SAAS,EAAC;EAAkB,GAC9BhF,mBAAmB,iBAClB/B,KAAA,CAAA8G,aAAA;IAAKC,SAAS,EAAC;EAA0C,gBACvD/G,KAAA,CAAA8G,aAAA;IACEE,IAAI,EAAC,QAAQ;IACbD,SAAS,EAAC,wDAAwD;IAClEE,WAAW,EAAEL,eAAgB;IAC7BhC,KAAK,EAAEnD,UAAW;IAClByF,QAAQ,EAAEjB,kBAAmB;IAC7BkB,SAAS,EAAEhB;EAAe,CAC3B,CAAC,eACFnG,KAAA,CAAA8G,aAAA;IAAGM,IAAI,EAAC,QAAQ;IAACC,OAAO,EAAErB;EAAa,gBACrChG,KAAA,CAAA8G,aAAA,CAAClG,QAAQ,MAAE,CACV,CACA,CACN,EAEAqB,oBAAoB,IACnBJ,aAAa,CAACkC,GAAG,CAAC,CAAC;IAAEnB,EAAE;IAAE+B,OAAO;IAAEnC;EAAM,CAAC,kBACvCxC,KAAA,CAAA8G,aAAA,CAAA9G,KAAA,CAAAsH,QAAA,QACG3C,OAAO,IACN,CAAC,CAACA,OAAO,CAAC3C,MAAM,iBACdhC,KAAA,CAAA8G,aAAA;IAAKC,SAAS,EAAC;EAAkC,gBAC/C/G,KAAA,CAAA8G,aAAA,CAACxG,MAAM;IACLkC,KAAK,EAAEA,KAAM;IACbI,EAAE,EAAEA,EAAG;IACPgD,IAAI,EAAEhD,EAAG;IACTsE,QAAQ,EAAER,KAAK,IAAID,YAAY,CAAC7D,EAAE,EAAE8D,KAAK,CAAE;IAC3C/B,OAAO,EAAEA,OAAQ;IACjBC,KAAK,EAAEjD,eAAe,CAACiB,EAAE,CAAE;IAC3B2E,gBAAgB,EAAEtG;EAA4B,CAC/C,CACE,CAET,CACH,CAAC,eAEJjB,KAAA,CAAA8G,aAAA;IAAKC,SAAS,EAAC;EAAgC,gBAC7C/G,KAAA,CAAA8G,aAAA;IAAMM,IAAI,EAAC,QAAQ;IAACC,OAAO,EAAEjB;EAAY,gBACvCpG,KAAA,CAAA8G,aAAA,CAACnG,uBAAuB,MAAE,CACtB,CACH,CACF,CAAC;AAEV,CAAC;AAEDO,eAAe,CAACsG,SAAS,GAAG;EAC1BrG,cAAc,EAAEd,SAAS,CAACoH,IAAI,CAACC,UAAU;EACzCtG,mBAAmB,EAAEf,SAAS,CAACsH,KAAK;EACpCtG,sBAAsB,EAAEhB,SAAS,CAACsH,KAAK;EACvCrG,MAAM,EAAEjB,SAAS,CAACuH,MAAM,CAACF,UAAU;EACnCnG,KAAK,EAAElB,SAAS,CAACwH;AACnB,CAAC;AAED3G,eAAe,CAAC4G,YAAY,GAAG;EAC7B1G,mBAAmB,EAAE,EAAE;EACvBC,sBAAsB,EAAE,EAAE;EAC1BE,KAAK,EAAE;AACT,CAAC;AAED,eAAeL,eAAe","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":[]}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { DEFAULT_FILTER_OPTION_LABEL } from '../../../constants';
|
|
2
|
+
const updateListFilters = (searchTerm, selectedFilters, setListFilters, fields = []) => {
|
|
3
|
+
const filters = [];
|
|
4
|
+
if (searchTerm) {
|
|
5
|
+
filters.push({
|
|
6
|
+
simple_query_string: {
|
|
7
|
+
query: `${searchTerm}`,
|
|
8
|
+
default_operator: 'AND',
|
|
9
|
+
fields: fields.map(field => field)
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
Object.entries(selectedFilters).forEach(([filterKey, filterValue]) => {
|
|
14
|
+
if (!filterValue || filterValue === DEFAULT_FILTER_OPTION_LABEL) return;
|
|
15
|
+
filters.push({
|
|
16
|
+
match: {
|
|
17
|
+
[`${filterKey}.keyword`]: {
|
|
18
|
+
query: filterValue
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
setListFilters(filters);
|
|
24
|
+
};
|
|
25
|
+
const getKeywordSearchFilters = schema => {
|
|
26
|
+
if (!schema || !schema.properties) return [];
|
|
27
|
+
const {
|
|
28
|
+
properties = {},
|
|
29
|
+
dynamicProperties = {}
|
|
30
|
+
} = schema;
|
|
31
|
+
const propertyKeyword = Object.entries(properties).filter(isFilterKeywordItem);
|
|
32
|
+
const dynamicPropertyKeywords = Object.entries(dynamicProperties).filter(isFilterKeywordItem);
|
|
33
|
+
return [...propertyKeyword, ...dynamicPropertyKeywords];
|
|
34
|
+
};
|
|
35
|
+
const isFilterKeywordItem = ([, item]) => item.adminListingOptions && item.adminListingOptions.includeInKeywordSeach === true;
|
|
36
|
+
const findSelectFilters = schema => {
|
|
37
|
+
if (!schema || !schema.properties) return [];
|
|
38
|
+
const {
|
|
39
|
+
properties = {},
|
|
40
|
+
dynamicProperties = {}
|
|
41
|
+
} = schema;
|
|
42
|
+
const propertySelects = Object.entries(properties).filter(isFilterSelectItem);
|
|
43
|
+
const dynamicPropertySelects = Object.entries(dynamicProperties).filter(isFilterSelectItem);
|
|
44
|
+
return [...propertySelects, ...dynamicPropertySelects];
|
|
45
|
+
};
|
|
46
|
+
const isFilterSelectItem = ([, item]) => item.adminListingOptions && item.adminListingOptions.filterType === 'select';
|
|
47
|
+
const buildQueryFields = (selectFilters, entityId) => {
|
|
48
|
+
if (!Array.isArray(selectFilters) || selectFilters.length === 0) {
|
|
49
|
+
return {
|
|
50
|
+
gqlFields: '',
|
|
51
|
+
rawQuery: '{}'
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
const aggs = {};
|
|
55
|
+
selectFilters.forEach(([property, details]) => {
|
|
56
|
+
aggs[property] = {
|
|
57
|
+
terms: {
|
|
58
|
+
field: `${property}.keyword`,
|
|
59
|
+
// todo: handle different field types
|
|
60
|
+
size: 1000,
|
|
61
|
+
// todo: customise size
|
|
62
|
+
order: {
|
|
63
|
+
_key: 'asc'
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
const docType = entityId;
|
|
69
|
+
const rawQueryObject = {
|
|
70
|
+
size: 0,
|
|
71
|
+
query: {
|
|
72
|
+
bool: {
|
|
73
|
+
filter: {
|
|
74
|
+
bool: {
|
|
75
|
+
must: [{
|
|
76
|
+
match: {
|
|
77
|
+
docType
|
|
78
|
+
}
|
|
79
|
+
}]
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
aggs
|
|
85
|
+
};
|
|
86
|
+
const rawQuery = JSON.stringify(rawQueryObject);
|
|
87
|
+
const gqlFields = `
|
|
88
|
+
rawResults
|
|
89
|
+
`;
|
|
90
|
+
return {
|
|
91
|
+
gqlFields,
|
|
92
|
+
rawQuery
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
export { buildQueryFields, updateListFilters, getKeywordSearchFilters, findSelectFilters };
|
|
96
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["DEFAULT_FILTER_OPTION_LABEL","updateListFilters","searchTerm","selectedFilters","setListFilters","fields","filters","push","simple_query_string","query","default_operator","map","field","Object","entries","forEach","filterKey","filterValue","match","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":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"querys.js","names":["gql","NOOP_QUERY"],"sources":["../../../../src/components/ListingTable/SearchFilter/querys.js"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst NOOP_QUERY = gql`\n query NoOp {\n __typename\n }\n`;\n\nexport { NOOP_QUERY };\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,UAAU,GAAGD,GAAG;AACtB;AACA;AACA;AACA,CAAC;AAED,SAASC,UAAU","ignoreList":[]}
|
package/lib-es/constants.js
CHANGED
|
@@ -27,6 +27,7 @@ const PAGE_BUILDER_TAB = 'Page builder';
|
|
|
27
27
|
const PAGE_BUILDER_TAB_INDEX = 1;
|
|
28
28
|
const EDITOR_VIEW_TAB = 'Editor view';
|
|
29
29
|
const EDITOR_VIEW_TAB_INDEX = 0;
|
|
30
|
+
const ENTER_KEY = 'Enter';
|
|
30
31
|
const ICON_SIZE = {
|
|
31
32
|
WIDTH: '25px',
|
|
32
33
|
HEIGHT: '25px'
|
|
@@ -35,5 +36,6 @@ const ICON_COLOR = {
|
|
|
35
36
|
STROKE: '#63779C',
|
|
36
37
|
FILL: '#63779C'
|
|
37
38
|
};
|
|
38
|
-
|
|
39
|
+
const DEFAULT_FILTER_OPTION_LABEL = 'Any';
|
|
40
|
+
export { DATA_LISTING_PREFIX, ENTITY_PUBLISHED, KEY_TO_CHECK, LEAVE_PAGE_MESSAGE, MENU_PERMISSIONS, PAGE_BUILDER, PLUGIN_NAME, PREVIEW_INTERFACE, SELECT_DEFAULT_VALUE, TEXT_CONTENT_TYPE, PAGE_BUILDER_FIELD_ID, PAGE_BUILDER_TEMPLATE_FIELD_ID, ERROR, SUCCESS, PUBLISHED, UNPUBLISHED, SAVE_BUTTON_TEXTS, ACTIONS, PAGE_BUILDER_TAB_INDEX, EDITOR_VIEW_TAB_INDEX, EDITOR_VIEW_TAB, PAGE_BUILDER_TAB, UNPUBLISHED_WARNING, SAVE_BEFORE_PUBLISH_MESSAGE, ICON_SIZE, ICON_COLOR, PAGE_NOT_FOUND, ENTER_KEY, DEFAULT_FILTER_OPTION_LABEL };
|
|
39
41
|
//# sourceMappingURL=constants.js.map
|
package/lib-es/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["PLUGIN_NAME","DATA_LISTING_PREFIX","PAGE_BUILDER","TEXT_CONTENT_TYPE","ENTITY_PUBLISHED","SELECT_DEFAULT_VALUE","LEAVE_PAGE_MESSAGE","KEY_TO_CHECK","MENU_PERMISSIONS","PREVIEW_INTERFACE","PAGE_BUILDER_FIELD_ID","PAGE_BUILDER_TEMPLATE_FIELD_ID","ERROR","SUCCESS","PUBLISHED","UNPUBLISHED","SAVE_BUTTON_TEXTS","save","saved","saving","ACTIONS","UNPUBLISHED_WARNING","PAGE_NOT_FOUND","SAVE_BEFORE_PUBLISH_MESSAGE","PAGE_BUILDER_TAB","PAGE_BUILDER_TAB_INDEX","EDITOR_VIEW_TAB","EDITOR_VIEW_TAB_INDEX","ICON_SIZE","WIDTH","HEIGHT","ICON_COLOR","STROKE","FILL"],"sources":["../src/constants.js"],"sourcesContent":["const PLUGIN_NAME = 'data-ui';\nconst DATA_LISTING_PREFIX = '/data-listing';\nconst PAGE_BUILDER = 'pageBuilder';\nconst TEXT_CONTENT_TYPE = 'Publish';\nconst ENTITY_PUBLISHED = 'published';\nconst SELECT_DEFAULT_VALUE = 'Please Choose...';\nconst LEAVE_PAGE_MESSAGE = 'You are going to leave without saving. Are you sure you want to leave?';\nconst KEY_TO_CHECK = 'values.slug';\nconst MENU_PERMISSIONS = ['update:any', 'update:own', 'create:any', 'create:own'];\nconst PREVIEW_INTERFACE = 'preview/can-preview';\nconst PAGE_BUILDER_FIELD_ID = 'pageBuilder';\nconst PAGE_BUILDER_TEMPLATE_FIELD_ID = 'pageBuilderTemplateId';\nconst ERROR = 'error';\nconst SUCCESS = 'success';\nconst PUBLISHED = 'published';\nconst UNPUBLISHED = 'unpublished';\nconst SAVE_BUTTON_TEXTS = { save: 'save', saved: 'saved', saving: 'saving' };\nconst ACTIONS = 'actions';\nconst UNPUBLISHED_WARNING = 'Page already unpublished';\nconst PAGE_NOT_FOUND = 'Page not found';\nconst SAVE_BEFORE_PUBLISH_MESSAGE =\n 'You have to click save to create the record before you can publish';\n\nconst PAGE_BUILDER_TAB = 'Page builder';\nconst PAGE_BUILDER_TAB_INDEX = 1;\nconst EDITOR_VIEW_TAB = 'Editor view';\nconst EDITOR_VIEW_TAB_INDEX = 0;\n\nconst ICON_SIZE = {\n WIDTH: '25px',\n HEIGHT: '25px'\n};\n\nconst ICON_COLOR = {\n STROKE: '#63779C',\n FILL: '#63779C'\n};\n\nexport {\n DATA_LISTING_PREFIX,\n ENTITY_PUBLISHED,\n KEY_TO_CHECK,\n LEAVE_PAGE_MESSAGE,\n MENU_PERMISSIONS,\n PAGE_BUILDER,\n PLUGIN_NAME,\n PREVIEW_INTERFACE,\n SELECT_DEFAULT_VALUE,\n TEXT_CONTENT_TYPE,\n PAGE_BUILDER_FIELD_ID,\n PAGE_BUILDER_TEMPLATE_FIELD_ID,\n ERROR,\n SUCCESS,\n PUBLISHED,\n UNPUBLISHED,\n SAVE_BUTTON_TEXTS,\n ACTIONS,\n PAGE_BUILDER_TAB_INDEX,\n EDITOR_VIEW_TAB_INDEX,\n EDITOR_VIEW_TAB,\n PAGE_BUILDER_TAB,\n UNPUBLISHED_WARNING,\n SAVE_BEFORE_PUBLISH_MESSAGE,\n ICON_SIZE,\n ICON_COLOR,\n PAGE_NOT_FOUND\n};\n"],"mappings":"AAAA,MAAMA,WAAW,GAAG,SAAS;AAC7B,MAAMC,mBAAmB,GAAG,eAAe;AAC3C,MAAMC,YAAY,GAAG,aAAa;AAClC,MAAMC,iBAAiB,GAAG,SAAS;AACnC,MAAMC,gBAAgB,GAAG,WAAW;AACpC,MAAMC,oBAAoB,GAAG,kBAAkB;AAC/C,MAAMC,kBAAkB,GAAG,wEAAwE;AACnG,MAAMC,YAAY,GAAG,aAAa;AAClC,MAAMC,gBAAgB,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;AACjF,MAAMC,iBAAiB,GAAG,qBAAqB;AAC/C,MAAMC,qBAAqB,GAAG,aAAa;AAC3C,MAAMC,8BAA8B,GAAG,uBAAuB;AAC9D,MAAMC,KAAK,GAAG,OAAO;AACrB,MAAMC,OAAO,GAAG,SAAS;AACzB,MAAMC,SAAS,GAAG,WAAW;AAC7B,MAAMC,WAAW,GAAG,aAAa;AACjC,MAAMC,iBAAiB,GAAG;EAAEC,IAAI,EAAE,MAAM;EAAEC,KAAK,EAAE,OAAO;EAAEC,MAAM,EAAE;AAAS,CAAC;AAC5E,MAAMC,OAAO,GAAG,SAAS;AACzB,MAAMC,mBAAmB,GAAG,0BAA0B;AACtD,MAAMC,cAAc,GAAG,gBAAgB;AACvC,MAAMC,2BAA2B,GAC/B,oEAAoE;AAEtE,MAAMC,gBAAgB,GAAG,cAAc;AACvC,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,eAAe,GAAG,aAAa;AACrC,MAAMC,qBAAqB,GAAG,CAAC;AAE/B,MAAMC,SAAS,GAAG;EAChBC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,UAAU,GAAG;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE;AACR,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"constants.js","names":["PLUGIN_NAME","DATA_LISTING_PREFIX","PAGE_BUILDER","TEXT_CONTENT_TYPE","ENTITY_PUBLISHED","SELECT_DEFAULT_VALUE","LEAVE_PAGE_MESSAGE","KEY_TO_CHECK","MENU_PERMISSIONS","PREVIEW_INTERFACE","PAGE_BUILDER_FIELD_ID","PAGE_BUILDER_TEMPLATE_FIELD_ID","ERROR","SUCCESS","PUBLISHED","UNPUBLISHED","SAVE_BUTTON_TEXTS","save","saved","saving","ACTIONS","UNPUBLISHED_WARNING","PAGE_NOT_FOUND","SAVE_BEFORE_PUBLISH_MESSAGE","PAGE_BUILDER_TAB","PAGE_BUILDER_TAB_INDEX","EDITOR_VIEW_TAB","EDITOR_VIEW_TAB_INDEX","ENTER_KEY","ICON_SIZE","WIDTH","HEIGHT","ICON_COLOR","STROKE","FILL","DEFAULT_FILTER_OPTION_LABEL"],"sources":["../src/constants.js"],"sourcesContent":["const PLUGIN_NAME = 'data-ui';\nconst DATA_LISTING_PREFIX = '/data-listing';\nconst PAGE_BUILDER = 'pageBuilder';\nconst TEXT_CONTENT_TYPE = 'Publish';\nconst ENTITY_PUBLISHED = 'published';\nconst SELECT_DEFAULT_VALUE = 'Please Choose...';\nconst LEAVE_PAGE_MESSAGE = 'You are going to leave without saving. Are you sure you want to leave?';\nconst KEY_TO_CHECK = 'values.slug';\nconst MENU_PERMISSIONS = ['update:any', 'update:own', 'create:any', 'create:own'];\nconst PREVIEW_INTERFACE = 'preview/can-preview';\nconst PAGE_BUILDER_FIELD_ID = 'pageBuilder';\nconst PAGE_BUILDER_TEMPLATE_FIELD_ID = 'pageBuilderTemplateId';\nconst ERROR = 'error';\nconst SUCCESS = 'success';\nconst PUBLISHED = 'published';\nconst UNPUBLISHED = 'unpublished';\nconst SAVE_BUTTON_TEXTS = { save: 'save', saved: 'saved', saving: 'saving' };\nconst ACTIONS = 'actions';\nconst UNPUBLISHED_WARNING = 'Page already unpublished';\nconst PAGE_NOT_FOUND = 'Page not found';\nconst SAVE_BEFORE_PUBLISH_MESSAGE =\n 'You have to click save to create the record before you can publish';\n\nconst PAGE_BUILDER_TAB = 'Page builder';\nconst PAGE_BUILDER_TAB_INDEX = 1;\nconst EDITOR_VIEW_TAB = 'Editor view';\nconst EDITOR_VIEW_TAB_INDEX = 0;\n\nconst ENTER_KEY = 'Enter';\n\nconst ICON_SIZE = {\n WIDTH: '25px',\n HEIGHT: '25px'\n};\n\nconst ICON_COLOR = {\n STROKE: '#63779C',\n FILL: '#63779C'\n};\n\nconst DEFAULT_FILTER_OPTION_LABEL = 'Any';\n\nexport {\n DATA_LISTING_PREFIX,\n ENTITY_PUBLISHED,\n KEY_TO_CHECK,\n LEAVE_PAGE_MESSAGE,\n MENU_PERMISSIONS,\n PAGE_BUILDER,\n PLUGIN_NAME,\n PREVIEW_INTERFACE,\n SELECT_DEFAULT_VALUE,\n TEXT_CONTENT_TYPE,\n PAGE_BUILDER_FIELD_ID,\n PAGE_BUILDER_TEMPLATE_FIELD_ID,\n ERROR,\n SUCCESS,\n PUBLISHED,\n UNPUBLISHED,\n SAVE_BUTTON_TEXTS,\n ACTIONS,\n PAGE_BUILDER_TAB_INDEX,\n EDITOR_VIEW_TAB_INDEX,\n EDITOR_VIEW_TAB,\n PAGE_BUILDER_TAB,\n UNPUBLISHED_WARNING,\n SAVE_BEFORE_PUBLISH_MESSAGE,\n ICON_SIZE,\n ICON_COLOR,\n PAGE_NOT_FOUND,\n ENTER_KEY,\n DEFAULT_FILTER_OPTION_LABEL\n};\n"],"mappings":"AAAA,MAAMA,WAAW,GAAG,SAAS;AAC7B,MAAMC,mBAAmB,GAAG,eAAe;AAC3C,MAAMC,YAAY,GAAG,aAAa;AAClC,MAAMC,iBAAiB,GAAG,SAAS;AACnC,MAAMC,gBAAgB,GAAG,WAAW;AACpC,MAAMC,oBAAoB,GAAG,kBAAkB;AAC/C,MAAMC,kBAAkB,GAAG,wEAAwE;AACnG,MAAMC,YAAY,GAAG,aAAa;AAClC,MAAMC,gBAAgB,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;AACjF,MAAMC,iBAAiB,GAAG,qBAAqB;AAC/C,MAAMC,qBAAqB,GAAG,aAAa;AAC3C,MAAMC,8BAA8B,GAAG,uBAAuB;AAC9D,MAAMC,KAAK,GAAG,OAAO;AACrB,MAAMC,OAAO,GAAG,SAAS;AACzB,MAAMC,SAAS,GAAG,WAAW;AAC7B,MAAMC,WAAW,GAAG,aAAa;AACjC,MAAMC,iBAAiB,GAAG;EAAEC,IAAI,EAAE,MAAM;EAAEC,KAAK,EAAE,OAAO;EAAEC,MAAM,EAAE;AAAS,CAAC;AAC5E,MAAMC,OAAO,GAAG,SAAS;AACzB,MAAMC,mBAAmB,GAAG,0BAA0B;AACtD,MAAMC,cAAc,GAAG,gBAAgB;AACvC,MAAMC,2BAA2B,GAC/B,oEAAoE;AAEtE,MAAMC,gBAAgB,GAAG,cAAc;AACvC,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,eAAe,GAAG,aAAa;AACrC,MAAMC,qBAAqB,GAAG,CAAC;AAE/B,MAAMC,SAAS,GAAG,OAAO;AAEzB,MAAMC,SAAS,GAAG;EAChBC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,UAAU,GAAG;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE;AACR,CAAC;AAED,MAAMC,2BAA2B,GAAG,KAAK;AAEzC,SACElC,mBAAmB,EACnBG,gBAAgB,EAChBG,YAAY,EACZD,kBAAkB,EAClBE,gBAAgB,EAChBN,YAAY,EACZF,WAAW,EACXS,iBAAiB,EACjBJ,oBAAoB,EACpBF,iBAAiB,EACjBO,qBAAqB,EACrBC,8BAA8B,EAC9BC,KAAK,EACLC,OAAO,EACPC,SAAS,EACTC,WAAW,EACXC,iBAAiB,EACjBI,OAAO,EACPK,sBAAsB,EACtBE,qBAAqB,EACrBD,eAAe,EACfF,gBAAgB,EAChBH,mBAAmB,EACnBE,2BAA2B,EAC3BM,SAAS,EACTG,UAAU,EACVV,cAAc,EACdM,SAAS,EACTO,2BAA2B","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/plugin-data-ui",
|
|
3
|
-
"version": "0.146.0-core-styles.
|
|
3
|
+
"version": "0.146.0-core-styles.62",
|
|
4
4
|
"description": "Blaze plugin data ui",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
},
|
|
28
28
|
"license": "GPL-3.0",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@blaze-cms/admin-ui-utils": "0.146.0-core-styles.
|
|
30
|
+
"@blaze-cms/admin-ui-utils": "0.146.0-core-styles.61",
|
|
31
31
|
"@blaze-cms/core-errors": "0.146.0-core-styles.52",
|
|
32
32
|
"@blaze-cms/plugin-render-hooks-ui": "0.145.1-core-styles.0",
|
|
33
|
-
"@blaze-cms/react-form-builder": "0.146.0-core-styles.
|
|
34
|
-
"@blaze-cms/react-page-builder": "0.146.0-core-styles.
|
|
33
|
+
"@blaze-cms/react-form-builder": "0.146.0-core-styles.61",
|
|
34
|
+
"@blaze-cms/react-page-builder": "0.146.0-core-styles.62",
|
|
35
35
|
"@blaze-cms/setup-ui": "0.145.1-core-styles.0",
|
|
36
36
|
"@blaze-cms/versioning-ui": "0.146.0-core-styles.3",
|
|
37
37
|
"@blaze-react/button": "0.8.0-alpha.82",
|
|
@@ -68,5 +68,5 @@
|
|
|
68
68
|
"lib/*",
|
|
69
69
|
"lib-es/*"
|
|
70
70
|
],
|
|
71
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "92dcab6fab3478c0e7966f13df33bd4a144c1401"
|
|
72
72
|
}
|
|
@@ -41,7 +41,7 @@ const EntityHeader = ({
|
|
|
41
41
|
<PageHeader.Actions>
|
|
42
42
|
{!saveOnChange && (
|
|
43
43
|
<Button onClick={onSubmit} modifiers={SaveButtonModifiers} data-testid="button-save">
|
|
44
|
-
{saveButtonText}
|
|
44
|
+
{saveButtonText === 'save' ? 'Apply' : saveButtonText}
|
|
45
45
|
</Button>
|
|
46
46
|
)}
|
|
47
47
|
<More disabled={shouldDisableMoreMenu}>
|
|
@@ -7,6 +7,7 @@ import { PageHeader, DeleteAction, CardPrompt } from '@blaze-cms/admin';
|
|
|
7
7
|
import { useToasts } from '@blaze-react/toaster';
|
|
8
8
|
import { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';
|
|
9
9
|
import ListingTableContent from './ListingTableContent';
|
|
10
|
+
import SearchFilter from './SearchFilter/SearchFilter';
|
|
10
11
|
import availableActions from '../EntityManager/Entity/actions-handlers';
|
|
11
12
|
import { fetchData } from './service';
|
|
12
13
|
import { populateRows, formatRows, getParsedRowData } from './mappers/populate-rows';
|
|
@@ -38,7 +39,7 @@ const ListingTable = ({ match, entitySchema, history }) => {
|
|
|
38
39
|
...queryParams,
|
|
39
40
|
offset: currentPage * queryParamsDefault.limit - queryParamsDefault.limit
|
|
40
41
|
};
|
|
41
|
-
await doQuery(
|
|
42
|
+
await doQuery([], updatedQueryParams);
|
|
42
43
|
setPreviousSchema({ id: entitySchema.id });
|
|
43
44
|
}
|
|
44
45
|
})();
|
|
@@ -207,6 +208,11 @@ const ListingTable = ({ match, entitySchema, history }) => {
|
|
|
207
208
|
listFilters={listFilters}
|
|
208
209
|
setListFilters={updateListingFilters}
|
|
209
210
|
/>
|
|
211
|
+
<SearchFilter
|
|
212
|
+
schema={entitySchema}
|
|
213
|
+
listFilters={listFilters}
|
|
214
|
+
setListFilters={updateListingFilters}
|
|
215
|
+
/>
|
|
210
216
|
<ListingTableContent
|
|
211
217
|
totalItems={totalItems}
|
|
212
218
|
currentPage={currentPage}
|
|
@@ -214,6 +220,9 @@ const ListingTable = ({ match, entitySchema, history }) => {
|
|
|
214
220
|
handleOnPageChange={handleOnPageChange}
|
|
215
221
|
tableData={tableData}
|
|
216
222
|
onCloseCardPrompt={onCloseCardPrompt}
|
|
223
|
+
schema={entitySchema}
|
|
224
|
+
listFilters={listFilters}
|
|
225
|
+
setListFilters={updateListingFilters}
|
|
217
226
|
/>
|
|
218
227
|
</>
|
|
219
228
|
)}
|