@blaze-cms/plugin-data-ui 0.147.0-rc-eagle.4 → 0.147.0-rc-eagle.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/README.md +9 -2
  2. package/lib/components/EntityManager/Entity/Entity.js +7 -6
  3. package/lib/components/EntityManager/Entity/Entity.js.map +1 -1
  4. package/lib/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js +181 -0
  5. package/lib/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js.map +1 -0
  6. package/lib/components/ListingTable/SearchFilter/SearchContainer.js +18 -1
  7. package/lib/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -1
  8. package/lib/components/ListingTable/SearchFilter/helpers.js.map +1 -1
  9. package/lib/utils/get-default-query-params.js +17 -5
  10. package/lib/utils/get-default-query-params.js.map +1 -1
  11. package/lib-es/components/EntityManager/Entity/Entity.js +7 -6
  12. package/lib-es/components/EntityManager/Entity/Entity.js.map +1 -1
  13. package/lib-es/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js +173 -0
  14. package/lib-es/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js.map +1 -0
  15. package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js +18 -1
  16. package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -1
  17. package/lib-es/components/ListingTable/SearchFilter/helpers.js.map +1 -1
  18. package/lib-es/utils/get-default-query-params.js +17 -5
  19. package/lib-es/utils/get-default-query-params.js.map +1 -1
  20. package/package.json +7 -8
  21. package/src/components/EntityManager/Entity/Entity.js +8 -9
  22. package/src/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js +160 -0
  23. package/src/components/ListingTable/SearchFilter/SearchContainer.js +35 -2
  24. package/src/components/ListingTable/SearchFilter/helpers.js +2 -3
  25. package/src/utils/get-default-query-params.js +21 -9
package/README.md CHANGED
@@ -36,6 +36,10 @@ The `displayProperties` property can be set on entity schema in the api to provi
36
36
  "dataSource": {
37
37
  "source": "search",
38
38
  "index": "admin"
39
+ },
40
+ "defaultSort": {
41
+ "property": "name",
42
+ "direction": "asc"
39
43
  }
40
44
  }
41
45
  }
@@ -47,8 +51,11 @@ The `displayProperties` property can be set on entity schema in the api to provi
47
51
  - adminMainInfoProperty: indicates a property that returns data to be displayed in the admin edit sidebar. Data is returned is formatted with the [data/info-properties](#Info properties) definition
48
52
  - disableDefaultAdminInfo: boolean value that can be used to hide default sidebar values updated/created
49
53
  - adminListings.dataSource:
50
- -- adminListings.dataSource.source: indicates whether to get listing data from search queries instead of direct entity queries.
51
- -- adminListings.dataSource.index: which index to search. This changes the query used e.g. searchAdmin
54
+ - adminListings.dataSource.source: indicates whether to get listing data from search queries instead of direct entity queries.
55
+ - adminListings.dataSource.index: which index to search. This changes the query used e.g. searchAdmin
56
+ - adminListings.defaultSort: specifies custom default sort order for listings (overrides the default "updated" descending)
57
+ - adminListings.defaultSort.property: the property to sort by (required if defaultSort is specified)
58
+ - adminListings.defaultSort.direction: sort direction - "asc" or "desc" (defaults to "asc" if not specified)
52
59
 
53
60
  ### Listing filters
54
61
  You can add the following to an entity properties/dynamicProperties to have them generate filters that appear at the top of admin record listings.
@@ -18,7 +18,6 @@ var _admin = require("@blaze-cms/admin");
18
18
  var _toaster = require("@blaze-react/toaster");
19
19
  var _lodash = _interopRequireDefault(require("lodash.clonedeep"));
20
20
  var _dataMappers = require("../utils/data-mappers");
21
- var _isFormEmpty = _interopRequireDefault(require("../utils/is-form-empty"));
22
21
  var _actionsHandlers = _interopRequireDefault(require("./actions-handlers"));
23
22
  var _SideBarRelations = _interopRequireDefault(require("./SideBarRelations"));
24
23
  var _useCallbackDebounce = _interopRequireDefault(require("../../hooks/useCallbackDebounce"));
@@ -63,6 +62,7 @@ const Entity = ({
63
62
  const [newUpdatedDate, setNewUpdatedDate] = (0, _react.useState)(null);
64
63
  const [saveButtonText, setSaveButtonText] = (0, _react.useState)(_constants.SAVE_BUTTON_TEXTS.save);
65
64
  const [externalUpdateTime, setExternalUpdateTime] = (0, _react.useState)(null);
65
+ const [suppressPrompt, setSuppressPrompt] = (0, _react.useState)(false);
66
66
  const [isRightSidebarOpen, setIsRightSidebarOpen] = (0, _react.useState)(true);
67
67
  const handleToggleRightSidebar = () => setIsRightSidebarOpen(!isRightSidebarOpen);
68
68
  const isCreatePage = history.location.pathname.includes('create');
@@ -224,12 +224,11 @@ const Entity = ({
224
224
  id
225
225
  }) => id === 'name');
226
226
  updatedEntity && setPageTitle(updatedEntity.value);
227
- const isValidAndNewValueSet = isValid && isNewValueSet;
228
227
  const isNotValidOrNotNewValueSet = !isValid || !isNewValueSet;
229
228
  if (componentIsMounted.current) {
230
229
  setIsFormValid(isValid);
231
230
  }
232
- if (isValidAndNewValueSet && componentIsMounted.current) {
231
+ if (isValid && isNewValueSet && componentIsMounted.current) {
233
232
  setIsSaveButtonAvailable(true);
234
233
  setSaveButtonText(_constants.SAVE_BUTTON_TEXTS.save);
235
234
  }
@@ -243,6 +242,9 @@ const Entity = ({
243
242
  const onSubmit = event => {
244
243
  event && event.preventDefault();
245
244
  if (!isSaveButtonAvailable) return null;
245
+ if (isCreatePage) {
246
+ setSuppressPrompt(true);
247
+ }
246
248
  const parsedFormValues = (0, _reactFormBuilder.parseFormValues)(formValues);
247
249
  const updatedFormValues = newUpdatedDate ? _objectSpread(_objectSpread({}, formData.values), {}, {
248
250
  update: newUpdatedDate
@@ -356,8 +358,7 @@ const Entity = ({
356
358
  const showModal = (0, _entity.checkFulfilConditions)(formData, modalStatus);
357
359
  const onViewUrlHandler = (0, _entity.canViewPage)(formData, entity, schema, entityIsPublished) ? () => (0, _entity.onViewUrlClick)(getFullUrl) : onViewUrl;
358
360
  const pageName = formData && formData.values && formData.values.name;
359
- const hasNewFormValues = (0, _entity.checkFulfilConditions)(isNewEntity, !(0, _isFormEmpty.default)(formValues));
360
- const hasToDisplayPrompt = isSaveButtonAvailable || hasNewFormValues;
361
+ const hasToDisplayPrompt = isSaveButtonAvailable && !suppressPrompt;
361
362
  const showSideBarRelations = (0, _entity.checkFulfilConditions)(schema, formData);
362
363
  return /*#__PURE__*/_react.default.createElement(_RecordEditContext.RecordEditContextProvider, {
363
364
  value: {
@@ -399,7 +400,7 @@ const Entity = ({
399
400
  copyAction: onCopy,
400
401
  getFormData: getFormData
401
402
  }), /*#__PURE__*/_react.default.createElement("div", {
402
- className: `page__content--fixed${!isRightSidebarOpen ? ' right-sidebar-collapsed' : ''}`
403
+ className: `page__content${!isRightSidebarOpen ? ' right-sidebar-collapsed' : ''}`
403
404
  }, /*#__PURE__*/_react.default.createElement("div", {
404
405
  className: "page__content"
405
406
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.js","names":["_react","_interopRequireWildcard","require","_reactRouterDom","_client","_propTypes","_interopRequireDefault","_pluginRenderHooksUi","_adminUiUtils","_reactFormBuilder","_admin","_toaster","_lodash","_dataMappers","_isFormEmpty","_actionsHandlers","_SideBarRelations","_useCallbackDebounce","_constants","_EntityHeader","_entity","_useToggle","_InfoBoxes","_RecordEditContext","_excluded","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","Entity","formData","entity","schema","previousQuery","action","history","updateFormData","onViewUrl","refetchRecord","_formData$values","formValues","setFormValues","useState","entitySchema","setEntitySchema","entityData","setEntityData","entityIdentifier","setEntityIdentifier","pageTitle","setPageTitle","isSaveButtonAvailable","setIsSaveButtonAvailable","entityIsPublished","setEntityIsPublish","values","status","isEnablePublishButton","setEnablePublishButton","isEnablePreviewButton","setEnablePreviewButton","modalStatus","setModalStatus","useToggle","copyModalStatus","setCopyModalStatus","pageBuilderTemplateStatus","setPageBuilderTemplateStatus","shouldCopyData","setShouldCopyData","isFormValid","setIsFormValid","formDataFromCopy","setFormDataFromCopy","newUpdatedDate","setNewUpdatedDate","saveButtonText","setSaveButtonText","SAVE_BUTTON_TEXTS","save","externalUpdateTime","setExternalUpdateTime","isRightSidebarOpen","setIsRightSidebarOpen","handleToggleRightSidebar","isCreatePage","location","pathname","includes","isNewEntity","setIsNewEntity","client","useApolloClient","shouldUpdateState","checkFulfilConditions","id","clonedFormData","cloneDeep","addToast","useToasts","componentIsMounted","useRef","displayProperties","saveOnChange","useCallbackDebounce","onSubmit","useEffect","current","getPageName","actions","publish","identifier","interfaces","PREVIEW_INTERFACE","isPageBuilderTemplateSet","pageBuilderTemplateId","writeQuery","query","getQuery","data","pageBuilderTemplateSet","currentEntity","currentItemId","getFullUrl","getEntityUrl","variables","itemId","itemEntity","fullUrl","fetchPolicy","getFormValues","onChangeSideBarRelations","value","requiredChildField","updatedFormValues","getUpdatedFormValues","shouldActiveSaveButton","validateSideBarRelations","onChangeFormValues","_ref","isValid","fields","isNewValueSet","valuesChecked","currentField","fieldValue","otherProps","_objectWithoutProperties2","slice","PAGE_BUILDER_TEMPLATE_FIELD_ID","pageBuilder","formValue","PAGE_BUILDER_FIELD_ID","parent","mergePageBuilderTemplateChanges","map","updatedFormValue","itemsToAdd","item","index","findIndex","updatedEntity","isValidAndNewValueSet","isNotValidOrNotNewValueSet","event","preventDefault","parsedFormValues","parseFormValues","update","handleUpdateFormData","submitParams","create","currentAction","availableActions","submit","onDelete","delete","onCopy","name","updateCopyData","handleCopyDataFromClose","getFormData","formDataValues","formDataUpdated","handlePublishAndUnpublish","target","textContent","isPublishButton","TEXT_CONTENT_TYPE","isPublished","ENTITY_PUBLISHED","isUnpublish","UNPUBLISHED_WARNING","appearance","autoDismiss","savedPageMessage","ERROR","shared","triggerPublish","showModal","onViewUrlHandler","canViewPage","onViewUrlClick","pageName","hasNewFormValues","isFormEmpty","hasToDisplayPrompt","showSideBarRelations","createElement","RecordEditContextProvider","updated","className","toggleCopyModal","toggleModal","Prompt","when","message","LEAVE_PAGE_MESSAGE","DeleteAction","onClose","deleteAction","itemName","CopyDataFromAction","copyAction","RenderHook","hookKey","FormBuilder","getIsFormValid","onChange","onExternalUpdate","mode","isOpen","onToggle","propTypes","PropTypes","object","string","isRequired","func","defaultProps","_default","exports","withRouter"],"sources":["../../../../src/components/EntityManager/Entity/Entity.js"],"sourcesContent":["/* eslint-disable no-undef */\nimport React, { useEffect, useState, useRef } from 'react';\nimport { withRouter, Prompt } from 'react-router-dom';\nimport { useApolloClient } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport { FormBuilder, parseFormValues } from '@blaze-cms/react-form-builder';\nimport { DeleteAction, CopyDataFromAction } from '@blaze-cms/admin';\nimport { useToasts } from '@blaze-react/toaster';\nimport cloneDeep from 'lodash.clonedeep';\nimport { getPageName } from '../utils/data-mappers';\nimport isFormEmpty from '../utils/is-form-empty';\nimport availableActions from './actions-handlers';\nimport SideBarRelations from './SideBarRelations';\nimport useCallbackDebounce from '../../hooks/useCallbackDebounce';\n\nimport {\n ENTITY_PUBLISHED,\n TEXT_CONTENT_TYPE,\n LEAVE_PAGE_MESSAGE,\n PREVIEW_INTERFACE,\n PAGE_BUILDER_FIELD_ID,\n PAGE_BUILDER_TEMPLATE_FIELD_ID,\n ERROR,\n SAVE_BUTTON_TEXTS,\n UNPUBLISHED_WARNING\n} from '../../../constants';\nimport EntityHeader from './EntityHeader';\n\nimport {\n validateSideBarRelations,\n canViewPage,\n onViewUrlClick,\n getUpdatedFormValues,\n checkFulfilConditions\n} from '../utils/entity';\nimport useToggle from '../../../utils/hooks/useToggle';\nimport InfoBoxes from '../../InfoBoxes/InfoBoxes';\nimport { RecordEditContextProvider } from '../utils/RecordEditContext';\n\nconst Entity = ({\n formData,\n entity,\n schema,\n previousQuery,\n action,\n history,\n updateFormData,\n onViewUrl,\n refetchRecord\n}) => {\n const [formValues, setFormValues] = useState(null);\n const [entitySchema, setEntitySchema] = useState(null);\n const [entityData, setEntityData] = useState(null);\n const [entityIdentifier, setEntityIdentifier] = useState(null);\n const [pageTitle, setPageTitle] = useState('');\n const [isSaveButtonAvailable, setIsSaveButtonAvailable] = useState(false);\n const [entityIsPublished, setEntityIsPublish] = useState(\n formData && formData.values && formData.values.status\n );\n const [isEnablePublishButton, setEnablePublishButton] = useState(false);\n const [isEnablePreviewButton, setEnablePreviewButton] = useState(false);\n const [modalStatus, setModalStatus] = useToggle(false);\n const [copyModalStatus, setCopyModalStatus] = useToggle(false);\n const [pageBuilderTemplateStatus, setPageBuilderTemplateStatus] = useState(true);\n const [shouldCopyData, setShouldCopyData] = useState(false);\n const [isFormValid, setIsFormValid] = useState(false);\n const [formDataFromCopy, setFormDataFromCopy] = useState(null);\n const [newUpdatedDate, setNewUpdatedDate] = useState(null);\n const [saveButtonText, setSaveButtonText] = useState(SAVE_BUTTON_TEXTS.save);\n const [externalUpdateTime, setExternalUpdateTime] = useState(null);\n const [isRightSidebarOpen, setIsRightSidebarOpen] = useState(true);\n const handleToggleRightSidebar = () => setIsRightSidebarOpen(!isRightSidebarOpen);\n\n const isCreatePage = history.location.pathname.includes('create');\n const [isNewEntity, setIsNewEntity] = useState(isCreatePage);\n\n const client = useApolloClient();\n const shouldUpdateState =\n !entityIdentifier ||\n checkFulfilConditions(entity, schema, previousQuery, !entityData) ||\n (entityData && entityData.id !== entity.id);\n const clonedFormData = cloneDeep(formData);\n const { addToast } = useToasts();\n\n // Here's how we'll keep track of our component's mounted state\n const componentIsMounted = useRef(true);\n\n const {\n displayProperties: { saveOnChange = false }\n } = schema;\n\n useCallbackDebounce(\n () => {\n isSaveButtonAvailable && onSubmit();\n },\n 500,\n [isSaveButtonAvailable],\n !saveOnChange\n );\n\n useEffect(\n () => () => {\n componentIsMounted.current = false;\n },\n []\n ); // Using an empty dependency array ensures this only runs on unmount\n\n useEffect(() => {\n if (shouldUpdateState) {\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n setEntityData(entity);\n setPageTitle(getPageName(schema.displayProperties, entity));\n setEntityIsPublish(entity.status);\n setEntitySchema(schema);\n setEnablePublishButton(schema.actions.publish);\n setEntityIdentifier(schema.identifier);\n setEnablePreviewButton(!!schema.interfaces.includes(PREVIEW_INTERFACE));\n }\n\n if (formData && pageBuilderTemplateStatus) {\n const isPageBuilderTemplateSet = !!formData.values.pageBuilderTemplateId;\n client.writeQuery({\n query: getQuery('GET_PB_TEMPLATE_STATUS'),\n data: {\n pageBuilderTemplateSet: isPageBuilderTemplateSet,\n pageBuilderTemplateId: formData.values.pageBuilderTemplateId || ''\n }\n });\n }\n if (schema) {\n client.writeQuery({\n query: getQuery('GET_CURRENT_ENTITY'),\n data: {\n currentEntity: schema.id,\n currentItemId: entity ? entity.id : null\n }\n });\n }\n }, [\n client,\n entity,\n entityData,\n formData,\n formValues,\n pageBuilderTemplateStatus,\n previousQuery,\n schema,\n shouldUpdateState\n ]);\n\n const getFullUrl = async () => {\n const query = getQuery('GET_ENTITY_URL');\n const { data: { getEntityUrl = '' } = {} } = await client.query({\n query,\n variables: { itemId: entity.id, itemEntity: schema.id, fullUrl: true },\n fetchPolicy: 'network-only'\n });\n return getEntityUrl;\n };\n\n const getFormValues = values => {\n if (componentIsMounted.current) {\n setFormValues(values);\n }\n };\n\n const onChangeSideBarRelations = ({ id, value }, requiredChildField) => {\n const updatedFormValues = getUpdatedFormValues({ id, value, requiredChildField, formValues });\n\n const shouldActiveSaveButton = validateSideBarRelations(updatedFormValues, requiredChildField);\n\n if (isFormValid && shouldActiveSaveButton && componentIsMounted.current) {\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n } else if (componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n if (componentIsMounted.current) {\n setFormValues(updatedFormValues);\n }\n };\n\n const onChangeFormValues = async ({\n isValid,\n fields,\n isNewValueSet,\n valuesChecked,\n currentField,\n value: fieldValue,\n ...otherProps\n }) => {\n let updatedFormValues = valuesChecked ? valuesChecked.slice() : [];\n if (currentField === PAGE_BUILDER_TEMPLATE_FIELD_ID) {\n const pageBuilderTemplateId = fieldValue;\n client.writeQuery({\n query: getQuery('GET_PB_TEMPLATE_STATUS'),\n data: {\n pageBuilderTemplateSet: !!pageBuilderTemplateId,\n pageBuilderTemplateId\n }\n });\n\n if (componentIsMounted.current) {\n setPageBuilderTemplateStatus(false);\n }\n\n const pageBuilder = updatedFormValues.filter(\n formValue => formValue.id === PAGE_BUILDER_FIELD_ID\n );\n\n if (pageBuilderTemplateId) {\n const { data = {} } = await client.query({\n query: getQuery('MERGE_PB_TEMPLATE_CHANGES'),\n variables: {\n parent: {\n pageBuilder: pageBuilder[0].value,\n pageBuilderTemplateId\n },\n entityIdentifier\n }\n });\n\n if (data && data.mergePageBuilderTemplateChanges) {\n updatedFormValues = updatedFormValues.map(updatedFormValue => {\n if (updatedFormValue.id === PAGE_BUILDER_FIELD_ID) {\n return {\n ...updatedFormValue,\n value: data.mergePageBuilderTemplateChanges\n };\n }\n return updatedFormValue;\n });\n }\n }\n }\n const itemsToAdd = [];\n if (formValues && formValues.length > updatedFormValues.length) {\n [...updatedFormValues, ...formValues].forEach(item => {\n const index = updatedFormValues.findIndex(value => value.id === item.id);\n if (index === -1) {\n itemsToAdd.push(item);\n }\n });\n }\n\n const [updatedEntity = null] = fields.filter(({ id }) => id === 'name');\n updatedEntity && setPageTitle(updatedEntity.value);\n\n const isValidAndNewValueSet = isValid && isNewValueSet;\n const isNotValidOrNotNewValueSet = !isValid || !isNewValueSet;\n if (componentIsMounted.current) {\n setIsFormValid(isValid);\n }\n\n if (isValidAndNewValueSet && componentIsMounted.current) {\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n }\n\n if (isNotValidOrNotNewValueSet && componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n if (componentIsMounted.current) {\n setFormValues([...updatedFormValues, ...itemsToAdd]);\n }\n };\n\n const onSubmit = event => {\n event && event.preventDefault();\n\n if (!isSaveButtonAvailable) return null;\n const parsedFormValues = parseFormValues(formValues);\n\n const updatedFormValues = newUpdatedDate\n ? { ...formData.values, update: newUpdatedDate }\n : { ...formData.values };\n\n const handleUpdateFormData = () =>\n updateFormData(\n {\n values: { ...updatedFormValues, ...parsedFormValues }\n },\n true\n );\n\n const submitParams = {\n update: {\n entitySchema,\n entityData,\n parsedFormValues,\n client,\n setIsSaveButtonAvailable,\n setNewUpdatedDate,\n newUpdatedDate,\n previousQuery,\n setSaveButtonText,\n handleUpdateFormData\n },\n create: {\n entitySchema,\n parsedFormValues,\n client,\n setEntityData,\n setIsSaveButtonAvailable,\n history,\n setIsNewEntity,\n setSaveButtonText,\n handleUpdateFormData\n }\n };\n\n const currentAction = submitParams[action];\n return availableActions[action].submit(currentAction, addToast);\n };\n\n const onDelete = async () => {\n const {\n values: { id }\n } = formData;\n\n if (componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n await availableActions.delete.submit(\n {\n entitySchema,\n client,\n parsedFormValues: { id }\n },\n addToast\n );\n\n history.push(`/data-listing/${entitySchema.id}`);\n };\n\n const onCopy = () => {\n if (formDataFromCopy && componentIsMounted.current) {\n updateFormData(formDataFromCopy);\n setShouldCopyData(true);\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n if (formDataFromCopy.values.name) {\n setPageTitle(formDataFromCopy.values.name);\n }\n }\n };\n\n const updateCopyData = () => {\n setCopyModalStatus(!copyModalStatus);\n setShouldCopyData(false);\n };\n\n const handleCopyDataFromClose = () => {\n setCopyModalStatus(false);\n setFormDataFromCopy(null);\n };\n\n const getFormData = formDataValues => {\n const formDataUpdated = {\n values: { ...formDataValues }\n };\n setFormDataFromCopy(formDataUpdated);\n };\n\n const handlePublishAndUnpublish = async ({ target: { textContent } }) => {\n const isPublishButton = textContent === TEXT_CONTENT_TYPE;\n const isPublished = entityIsPublished === ENTITY_PUBLISHED;\n\n const isUnpublish = checkFulfilConditions(!isPublishButton, !isPublished);\n\n if (isUnpublish) {\n return addToast(UNPUBLISHED_WARNING, {\n appearance: 'warning',\n autoDismiss: true\n });\n }\n\n if (checkFulfilConditions(isPublishButton, isSaveButtonAvailable)) {\n const savedPageMessage = await onSubmit();\n\n if (savedPageMessage === ERROR) {\n return addToast(`Content not published`, {\n appearance: ERROR,\n autoDismiss: true\n });\n }\n }\n\n return availableActions.shared.triggerPublish(\n {\n entityData,\n client,\n setEntityIsPublish,\n entitySchema,\n textContent,\n refetchRecord\n },\n addToast\n );\n };\n\n const showModal = checkFulfilConditions(formData, modalStatus);\n\n const onViewUrlHandler = canViewPage(formData, entity, schema, entityIsPublished)\n ? () => onViewUrlClick(getFullUrl)\n : onViewUrl;\n\n const pageName = formData && formData.values && formData.values.name;\n\n const hasNewFormValues = checkFulfilConditions(isNewEntity, !isFormEmpty(formValues));\n const hasToDisplayPrompt = isSaveButtonAvailable || hasNewFormValues;\n\n const showSideBarRelations = checkFulfilConditions(schema, formData);\n\n return (\n <RecordEditContextProvider value={{ externalUpdateTime, updated: formData?.values?.updated }}>\n <div className=\"page\">\n <EntityHeader\n entityData={entityData}\n entityIdentifier={entityIdentifier}\n pageTitle={pageTitle}\n pageName={pageName}\n onSubmit={onSubmit}\n handlePublishAndUnpublish={handlePublishAndUnpublish}\n isSaveButtonAvailable={isSaveButtonAvailable}\n isEnablePublishButton={isEnablePublishButton}\n isEnablePreviewButton={isEnablePreviewButton}\n toggleCopyModal={setCopyModalStatus}\n toggleModal={setModalStatus}\n formData={formData}\n onViewUrl={onViewUrlHandler}\n saveButtonText={saveButtonText}\n saveOnChange={saveOnChange}\n entitySchema={entitySchema}\n />\n <div className=\"page-wrapper__content\">\n <div className=\"tabs-wrapper tabs-wrapper__tab\">\n <Prompt when={hasToDisplayPrompt} message={LEAVE_PAGE_MESSAGE} />\n {showModal && (\n <DeleteAction\n onClose={setModalStatus}\n deleteAction={onDelete}\n itemName={formData.values.name}\n />\n )}\n {copyModalStatus && (\n <CopyDataFromAction\n onClose={handleCopyDataFromClose}\n copyAction={onCopy}\n getFormData={getFormData}\n />\n )}\n\n <div\n className={`page__content--fixed${!isRightSidebarOpen ? ' right-sidebar-collapsed' : ''\n }`}>\n <div className=\"page__content\">\n <div className=\"content\">\n <RenderHook\n hookKey={`entity:${action}:main:top`}\n entity={entity}\n schema={schema}\n />\n <InfoBoxes id={entity.id} schema={schema} />\n <FormBuilder\n getIsFormValid={setIsFormValid}\n getFormValues={getFormValues}\n schema={schema}\n data={clonedFormData}\n onChange={onChangeFormValues}\n shouldCopyData={shouldCopyData}\n updateCopyData={updateCopyData}\n formValues={formValues}\n isNewEntity={isNewEntity}\n onExternalUpdate={setExternalUpdateTime}\n mode={isNewEntity ? 'create' : 'update'}\n />\n <RenderHook\n hookKey={`entity:${action}:main:bottom`}\n entity={entity}\n schema={schema}\n />\n </div>\n </div>\n </div>\n </div>\n\n <div\n className={`column column--one-third page-sidebar page-sidebar--relations${!isRightSidebarOpen ? ' sidebar--collapsed' : ''\n }`}>\n {showSideBarRelations && (\n <SideBarRelations\n entity={entity}\n formData={formData.values}\n schema={schema}\n onChange={onChangeSideBarRelations}\n isOpen={isRightSidebarOpen}\n onToggle={handleToggleRightSidebar}\n />\n )}\n </div>\n </div>\n </div>\n </RecordEditContextProvider>\n );\n};\n\nEntity.propTypes = {\n entity: PropTypes.object,\n schema: PropTypes.object,\n previousQuery: PropTypes.object,\n action: PropTypes.string.isRequired,\n history: PropTypes.object.isRequired,\n formData: PropTypes.object,\n updateFormData: PropTypes.func.isRequired,\n onViewUrl: PropTypes.func,\n refetchRecord: PropTypes.func.isRequired\n};\n\nEntity.defaultProps = {\n previousQuery: null,\n schema: null,\n entity: null,\n formData: null,\n onViewUrl: null\n};\n\nexport default withRouter(Entity);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Entity.js","names":["_react","_interopRequireWildcard","require","_reactRouterDom","_client","_propTypes","_interopRequireDefault","_pluginRenderHooksUi","_adminUiUtils","_reactFormBuilder","_admin","_toaster","_lodash","_dataMappers","_actionsHandlers","_SideBarRelations","_useCallbackDebounce","_constants","_EntityHeader","_entity","_useToggle","_InfoBoxes","_RecordEditContext","_excluded","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","Entity","formData","entity","schema","previousQuery","action","history","updateFormData","onViewUrl","refetchRecord","_formData$values","formValues","setFormValues","useState","entitySchema","setEntitySchema","entityData","setEntityData","entityIdentifier","setEntityIdentifier","pageTitle","setPageTitle","isSaveButtonAvailable","setIsSaveButtonAvailable","entityIsPublished","setEntityIsPublish","values","status","isEnablePublishButton","setEnablePublishButton","isEnablePreviewButton","setEnablePreviewButton","modalStatus","setModalStatus","useToggle","copyModalStatus","setCopyModalStatus","pageBuilderTemplateStatus","setPageBuilderTemplateStatus","shouldCopyData","setShouldCopyData","isFormValid","setIsFormValid","formDataFromCopy","setFormDataFromCopy","newUpdatedDate","setNewUpdatedDate","saveButtonText","setSaveButtonText","SAVE_BUTTON_TEXTS","save","externalUpdateTime","setExternalUpdateTime","suppressPrompt","setSuppressPrompt","isRightSidebarOpen","setIsRightSidebarOpen","handleToggleRightSidebar","isCreatePage","location","pathname","includes","isNewEntity","setIsNewEntity","client","useApolloClient","shouldUpdateState","checkFulfilConditions","id","clonedFormData","cloneDeep","addToast","useToasts","componentIsMounted","useRef","displayProperties","saveOnChange","useCallbackDebounce","onSubmit","useEffect","current","getPageName","actions","publish","identifier","interfaces","PREVIEW_INTERFACE","isPageBuilderTemplateSet","pageBuilderTemplateId","writeQuery","query","getQuery","data","pageBuilderTemplateSet","currentEntity","currentItemId","getFullUrl","getEntityUrl","variables","itemId","itemEntity","fullUrl","fetchPolicy","getFormValues","onChangeSideBarRelations","value","requiredChildField","updatedFormValues","getUpdatedFormValues","shouldActiveSaveButton","validateSideBarRelations","onChangeFormValues","_ref","isValid","fields","isNewValueSet","valuesChecked","currentField","fieldValue","otherProps","_objectWithoutProperties2","slice","PAGE_BUILDER_TEMPLATE_FIELD_ID","pageBuilder","formValue","PAGE_BUILDER_FIELD_ID","parent","mergePageBuilderTemplateChanges","map","updatedFormValue","itemsToAdd","item","index","findIndex","updatedEntity","isNotValidOrNotNewValueSet","event","preventDefault","parsedFormValues","parseFormValues","update","handleUpdateFormData","submitParams","create","currentAction","availableActions","submit","onDelete","delete","onCopy","name","updateCopyData","handleCopyDataFromClose","getFormData","formDataValues","formDataUpdated","handlePublishAndUnpublish","target","textContent","isPublishButton","TEXT_CONTENT_TYPE","isPublished","ENTITY_PUBLISHED","isUnpublish","UNPUBLISHED_WARNING","appearance","autoDismiss","savedPageMessage","ERROR","shared","triggerPublish","showModal","onViewUrlHandler","canViewPage","onViewUrlClick","pageName","hasToDisplayPrompt","showSideBarRelations","createElement","RecordEditContextProvider","updated","className","toggleCopyModal","toggleModal","Prompt","when","message","LEAVE_PAGE_MESSAGE","DeleteAction","onClose","deleteAction","itemName","CopyDataFromAction","copyAction","RenderHook","hookKey","FormBuilder","getIsFormValid","onChange","onExternalUpdate","mode","isOpen","onToggle","propTypes","PropTypes","object","string","isRequired","func","defaultProps","_default","exports","withRouter"],"sources":["../../../../src/components/EntityManager/Entity/Entity.js"],"sourcesContent":["/* eslint-disable no-undef */\nimport React, { useEffect, useState, useRef } from 'react';\nimport { withRouter, Prompt } from 'react-router-dom';\nimport { useApolloClient } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport { FormBuilder, parseFormValues } from '@blaze-cms/react-form-builder';\nimport { DeleteAction, CopyDataFromAction } from '@blaze-cms/admin';\nimport { useToasts } from '@blaze-react/toaster';\nimport cloneDeep from 'lodash.clonedeep';\nimport { getPageName } from '../utils/data-mappers';\nimport availableActions from './actions-handlers';\nimport SideBarRelations from './SideBarRelations';\nimport useCallbackDebounce from '../../hooks/useCallbackDebounce';\n\nimport {\n ENTITY_PUBLISHED,\n TEXT_CONTENT_TYPE,\n LEAVE_PAGE_MESSAGE,\n PREVIEW_INTERFACE,\n PAGE_BUILDER_FIELD_ID,\n PAGE_BUILDER_TEMPLATE_FIELD_ID,\n ERROR,\n SAVE_BUTTON_TEXTS,\n UNPUBLISHED_WARNING\n} from '../../../constants';\nimport EntityHeader from './EntityHeader';\n\nimport {\n validateSideBarRelations,\n canViewPage,\n onViewUrlClick,\n getUpdatedFormValues,\n checkFulfilConditions\n} from '../utils/entity';\nimport useToggle from '../../../utils/hooks/useToggle';\nimport InfoBoxes from '../../InfoBoxes/InfoBoxes';\nimport { RecordEditContextProvider } from '../utils/RecordEditContext';\n\nconst Entity = ({\n formData,\n entity,\n schema,\n previousQuery,\n action,\n history,\n updateFormData,\n onViewUrl,\n refetchRecord\n}) => {\n const [formValues, setFormValues] = useState(null);\n const [entitySchema, setEntitySchema] = useState(null);\n const [entityData, setEntityData] = useState(null);\n const [entityIdentifier, setEntityIdentifier] = useState(null);\n const [pageTitle, setPageTitle] = useState('');\n const [isSaveButtonAvailable, setIsSaveButtonAvailable] = useState(false);\n const [entityIsPublished, setEntityIsPublish] = useState(\n formData && formData.values && formData.values.status\n );\n const [isEnablePublishButton, setEnablePublishButton] = useState(false);\n const [isEnablePreviewButton, setEnablePreviewButton] = useState(false);\n const [modalStatus, setModalStatus] = useToggle(false);\n const [copyModalStatus, setCopyModalStatus] = useToggle(false);\n const [pageBuilderTemplateStatus, setPageBuilderTemplateStatus] = useState(true);\n const [shouldCopyData, setShouldCopyData] = useState(false);\n const [isFormValid, setIsFormValid] = useState(false);\n const [formDataFromCopy, setFormDataFromCopy] = useState(null);\n const [newUpdatedDate, setNewUpdatedDate] = useState(null);\n const [saveButtonText, setSaveButtonText] = useState(SAVE_BUTTON_TEXTS.save);\n const [externalUpdateTime, setExternalUpdateTime] = useState(null);\n const [suppressPrompt, setSuppressPrompt] = useState(false);\n const [isRightSidebarOpen, setIsRightSidebarOpen] = useState(true);\n const handleToggleRightSidebar = () => setIsRightSidebarOpen(!isRightSidebarOpen);\n\n const isCreatePage = history.location.pathname.includes('create');\n const [isNewEntity, setIsNewEntity] = useState(isCreatePage);\n\n const client = useApolloClient();\n const shouldUpdateState =\n !entityIdentifier ||\n checkFulfilConditions(entity, schema, previousQuery, !entityData) ||\n (entityData && entityData.id !== entity.id);\n const clonedFormData = cloneDeep(formData);\n const { addToast } = useToasts();\n\n // Here's how we'll keep track of our component's mounted state\n const componentIsMounted = useRef(true);\n\n const {\n displayProperties: { saveOnChange = false }\n } = schema;\n\n useCallbackDebounce(\n () => {\n isSaveButtonAvailable && onSubmit();\n },\n 500,\n [isSaveButtonAvailable],\n !saveOnChange\n );\n\n useEffect(\n () => () => {\n componentIsMounted.current = false;\n },\n []\n ); // Using an empty dependency array ensures this only runs on unmount\n\n useEffect(() => {\n if (shouldUpdateState) {\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n setEntityData(entity);\n setPageTitle(getPageName(schema.displayProperties, entity));\n setEntityIsPublish(entity.status);\n setEntitySchema(schema);\n setEnablePublishButton(schema.actions.publish);\n setEntityIdentifier(schema.identifier);\n setEnablePreviewButton(!!schema.interfaces.includes(PREVIEW_INTERFACE));\n }\n\n if (formData && pageBuilderTemplateStatus) {\n const isPageBuilderTemplateSet = !!formData.values.pageBuilderTemplateId;\n client.writeQuery({\n query: getQuery('GET_PB_TEMPLATE_STATUS'),\n data: {\n pageBuilderTemplateSet: isPageBuilderTemplateSet,\n pageBuilderTemplateId: formData.values.pageBuilderTemplateId || ''\n }\n });\n }\n if (schema) {\n client.writeQuery({\n query: getQuery('GET_CURRENT_ENTITY'),\n data: {\n currentEntity: schema.id,\n currentItemId: entity ? entity.id : null\n }\n });\n }\n }, [\n client,\n entity,\n entityData,\n formData,\n formValues,\n pageBuilderTemplateStatus,\n previousQuery,\n schema,\n shouldUpdateState\n ]);\n\n const getFullUrl = async () => {\n const query = getQuery('GET_ENTITY_URL');\n const { data: { getEntityUrl = '' } = {} } = await client.query({\n query,\n variables: { itemId: entity.id, itemEntity: schema.id, fullUrl: true },\n fetchPolicy: 'network-only'\n });\n return getEntityUrl;\n };\n\n const getFormValues = values => {\n if (componentIsMounted.current) {\n setFormValues(values);\n }\n };\n\n const onChangeSideBarRelations = ({ id, value }, requiredChildField) => {\n const updatedFormValues = getUpdatedFormValues({ id, value, requiredChildField, formValues });\n\n const shouldActiveSaveButton = validateSideBarRelations(updatedFormValues, requiredChildField);\n\n if (isFormValid && shouldActiveSaveButton && componentIsMounted.current) {\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n } else if (componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n if (componentIsMounted.current) {\n setFormValues(updatedFormValues);\n }\n };\n\n const onChangeFormValues = async ({\n isValid,\n fields,\n isNewValueSet,\n valuesChecked,\n currentField,\n value: fieldValue,\n ...otherProps\n }) => {\n let updatedFormValues = valuesChecked ? valuesChecked.slice() : [];\n if (currentField === PAGE_BUILDER_TEMPLATE_FIELD_ID) {\n const pageBuilderTemplateId = fieldValue;\n client.writeQuery({\n query: getQuery('GET_PB_TEMPLATE_STATUS'),\n data: {\n pageBuilderTemplateSet: !!pageBuilderTemplateId,\n pageBuilderTemplateId\n }\n });\n\n if (componentIsMounted.current) {\n setPageBuilderTemplateStatus(false);\n }\n\n const pageBuilder = updatedFormValues.filter(\n formValue => formValue.id === PAGE_BUILDER_FIELD_ID\n );\n\n if (pageBuilderTemplateId) {\n const { data = {} } = await client.query({\n query: getQuery('MERGE_PB_TEMPLATE_CHANGES'),\n variables: {\n parent: {\n pageBuilder: pageBuilder[0].value,\n pageBuilderTemplateId\n },\n entityIdentifier\n }\n });\n\n if (data && data.mergePageBuilderTemplateChanges) {\n updatedFormValues = updatedFormValues.map(updatedFormValue => {\n if (updatedFormValue.id === PAGE_BUILDER_FIELD_ID) {\n return {\n ...updatedFormValue,\n value: data.mergePageBuilderTemplateChanges\n };\n }\n return updatedFormValue;\n });\n }\n }\n }\n const itemsToAdd = [];\n if (formValues && formValues.length > updatedFormValues.length) {\n [...updatedFormValues, ...formValues].forEach(item => {\n const index = updatedFormValues.findIndex(value => value.id === item.id);\n if (index === -1) {\n itemsToAdd.push(item);\n }\n });\n }\n\n const [updatedEntity = null] = fields.filter(({ id }) => id === 'name');\n updatedEntity && setPageTitle(updatedEntity.value);\n\n const isNotValidOrNotNewValueSet = !isValid || !isNewValueSet;\n if (componentIsMounted.current) {\n setIsFormValid(isValid);\n }\n\n if (isValid && isNewValueSet && componentIsMounted.current) {\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n }\n\n if (isNotValidOrNotNewValueSet && componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n if (componentIsMounted.current) {\n setFormValues([...updatedFormValues, ...itemsToAdd]);\n }\n };\n\n const onSubmit = event => {\n event && event.preventDefault();\n if (!isSaveButtonAvailable) return null;\n\n if (isCreatePage) {\n setSuppressPrompt(true);\n }\n const parsedFormValues = parseFormValues(formValues);\n const updatedFormValues = newUpdatedDate\n ? { ...formData.values, update: newUpdatedDate }\n : { ...formData.values };\n\n const handleUpdateFormData = () =>\n updateFormData(\n {\n values: { ...updatedFormValues, ...parsedFormValues }\n },\n true\n );\n\n const submitParams = {\n update: {\n entitySchema,\n entityData,\n parsedFormValues,\n client,\n setIsSaveButtonAvailable,\n setNewUpdatedDate,\n newUpdatedDate,\n previousQuery,\n setSaveButtonText,\n handleUpdateFormData\n },\n create: {\n entitySchema,\n parsedFormValues,\n client,\n setEntityData,\n setIsSaveButtonAvailable,\n history,\n setIsNewEntity,\n setSaveButtonText,\n handleUpdateFormData\n }\n };\n\n const currentAction = submitParams[action];\n return availableActions[action].submit(currentAction, addToast);\n };\n\n const onDelete = async () => {\n const {\n values: { id }\n } = formData;\n\n if (componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n await availableActions.delete.submit(\n {\n entitySchema,\n client,\n parsedFormValues: { id }\n },\n addToast\n );\n\n history.push(`/data-listing/${entitySchema.id}`);\n };\n\n const onCopy = () => {\n if (formDataFromCopy && componentIsMounted.current) {\n updateFormData(formDataFromCopy);\n setShouldCopyData(true);\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n if (formDataFromCopy.values.name) {\n setPageTitle(formDataFromCopy.values.name);\n }\n }\n };\n\n const updateCopyData = () => {\n setCopyModalStatus(!copyModalStatus);\n setShouldCopyData(false);\n };\n\n const handleCopyDataFromClose = () => {\n setCopyModalStatus(false);\n setFormDataFromCopy(null);\n };\n\n const getFormData = formDataValues => {\n const formDataUpdated = {\n values: { ...formDataValues }\n };\n setFormDataFromCopy(formDataUpdated);\n };\n\n const handlePublishAndUnpublish = async ({ target: { textContent } }) => {\n const isPublishButton = textContent === TEXT_CONTENT_TYPE;\n const isPublished = entityIsPublished === ENTITY_PUBLISHED;\n\n const isUnpublish = checkFulfilConditions(!isPublishButton, !isPublished);\n\n if (isUnpublish) {\n return addToast(UNPUBLISHED_WARNING, {\n appearance: 'warning',\n autoDismiss: true\n });\n }\n\n if (checkFulfilConditions(isPublishButton, isSaveButtonAvailable)) {\n const savedPageMessage = await onSubmit();\n\n if (savedPageMessage === ERROR) {\n return addToast(`Content not published`, {\n appearance: ERROR,\n autoDismiss: true\n });\n }\n }\n\n return availableActions.shared.triggerPublish(\n {\n entityData,\n client,\n setEntityIsPublish,\n entitySchema,\n textContent,\n refetchRecord\n },\n addToast\n );\n };\n\n const showModal = checkFulfilConditions(formData, modalStatus);\n\n const onViewUrlHandler = canViewPage(formData, entity, schema, entityIsPublished)\n ? () => onViewUrlClick(getFullUrl)\n : onViewUrl;\n\n const pageName = formData && formData.values && formData.values.name;\n\n const hasToDisplayPrompt = isSaveButtonAvailable && !suppressPrompt;\n\n const showSideBarRelations = checkFulfilConditions(schema, formData);\n\n return (\n <RecordEditContextProvider value={{ externalUpdateTime, updated: formData?.values?.updated }}>\n <div className=\"page\">\n <EntityHeader\n entityData={entityData}\n entityIdentifier={entityIdentifier}\n pageTitle={pageTitle}\n pageName={pageName}\n onSubmit={onSubmit}\n handlePublishAndUnpublish={handlePublishAndUnpublish}\n isSaveButtonAvailable={isSaveButtonAvailable}\n isEnablePublishButton={isEnablePublishButton}\n isEnablePreviewButton={isEnablePreviewButton}\n toggleCopyModal={setCopyModalStatus}\n toggleModal={setModalStatus}\n formData={formData}\n onViewUrl={onViewUrlHandler}\n saveButtonText={saveButtonText}\n saveOnChange={saveOnChange}\n entitySchema={entitySchema}\n />\n <div className=\"page-wrapper__content\">\n <div className=\"tabs-wrapper tabs-wrapper__tab\">\n <Prompt when={hasToDisplayPrompt} message={LEAVE_PAGE_MESSAGE} />\n {showModal && (\n <DeleteAction\n onClose={setModalStatus}\n deleteAction={onDelete}\n itemName={formData.values.name}\n />\n )}\n {copyModalStatus && (\n <CopyDataFromAction\n onClose={handleCopyDataFromClose}\n copyAction={onCopy}\n getFormData={getFormData}\n />\n )}\n\n <div\n className={`page__content${!isRightSidebarOpen ? ' right-sidebar-collapsed' : ''}`}>\n <div className=\"page__content\">\n <div className=\"content\">\n <RenderHook\n hookKey={`entity:${action}:main:top`}\n entity={entity}\n schema={schema}\n />\n <InfoBoxes id={entity.id} schema={schema} />\n <FormBuilder\n getIsFormValid={setIsFormValid}\n getFormValues={getFormValues}\n schema={schema}\n data={clonedFormData}\n onChange={onChangeFormValues}\n shouldCopyData={shouldCopyData}\n updateCopyData={updateCopyData}\n formValues={formValues}\n isNewEntity={isNewEntity}\n onExternalUpdate={setExternalUpdateTime}\n mode={isNewEntity ? 'create' : 'update'}\n />\n <RenderHook\n hookKey={`entity:${action}:main:bottom`}\n entity={entity}\n schema={schema}\n />\n </div>\n </div>\n </div>\n </div>\n\n <div\n className={`column column--one-third page-sidebar page-sidebar--relations${!isRightSidebarOpen ? ' sidebar--collapsed' : ''\n }`}>\n {showSideBarRelations && (\n <SideBarRelations\n entity={entity}\n formData={formData.values}\n schema={schema}\n onChange={onChangeSideBarRelations}\n isOpen={isRightSidebarOpen}\n onToggle={handleToggleRightSidebar}\n />\n )}\n </div>\n </div>\n </div>\n </RecordEditContextProvider>\n );\n};\n\nEntity.propTypes = {\n entity: PropTypes.object,\n schema: PropTypes.object,\n previousQuery: PropTypes.object,\n action: PropTypes.string.isRequired,\n history: PropTypes.object.isRequired,\n formData: PropTypes.object,\n updateFormData: PropTypes.func.isRequired,\n onViewUrl: PropTypes.func,\n refetchRecord: PropTypes.func.isRequired\n};\n\nEntity.defaultProps = {\n previousQuery: null,\n schema: null,\n entity: null,\n formData: null,\n onViewUrl: null\n};\n\nexport default withRouter(Entity);\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,181 @@
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 _multiselect = _interopRequireDefault(require("@blaze-react/multiselect"));
12
+ var _lodash = _interopRequireDefault(require("lodash.debounce"));
13
+ var _lodash2 = _interopRequireDefault(require("lodash.unionby"));
14
+ var _client = require("@apollo/client");
15
+ var _adminUiUtils = require("@blaze-cms/admin-ui-utils");
16
+ 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); }
17
+ 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; }
18
+ 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; }
19
+ const DEBOUNCE_TIME = 500;
20
+ const SEARCH_LOAD_OFFSET = 10;
21
+ const SELECTION_LIMIT = 10;
22
+ const shouldLoadMore = (searchTerm, stopIndex, currentDataLength) => searchTerm && stopIndex > SEARCH_LOAD_OFFSET && stopIndex >= currentDataLength - SEARCH_LOAD_OFFSET;
23
+ const RelationMultiSelectFilter = ({
24
+ id,
25
+ label,
26
+ entityIdentifier,
27
+ selectedIds,
28
+ onChange
29
+ }) => {
30
+ const client = (0, _client.useApolloClient)();
31
+ const [schema, setSchema] = (0, _react.useState)(null);
32
+ const [data, setData] = (0, _react.useState)([]);
33
+ const [searchTerm, setSearchTerm] = (0, _react.useState)('');
34
+ const {
35
+ displayProperties
36
+ } = schema || {};
37
+ (0, _react.useEffect)(() => {
38
+ let active = true;
39
+ (async () => {
40
+ try {
41
+ const {
42
+ data: {
43
+ getEntitySchemas = []
44
+ } = {}
45
+ } = await client.query({
46
+ query: (0, _adminUiUtils.getQuery)('GET_ENTITY_SCHEMA'),
47
+ variables: {
48
+ identifier: entityIdentifier
49
+ }
50
+ });
51
+ const [relationSchema] = getEntitySchemas;
52
+ if (active && relationSchema) setSchema(relationSchema);
53
+ } catch {
54
+ if (active) setSchema(null);
55
+ }
56
+ })();
57
+ return () => {
58
+ active = false;
59
+ };
60
+ }, [client, entityIdentifier]);
61
+ (0, _react.useEffect)(() => {
62
+ if (!schema || !selectedIds.length) return undefined;
63
+ let active = true;
64
+ (async () => {
65
+ try {
66
+ const {
67
+ data: {
68
+ result = []
69
+ } = {}
70
+ } = await client.query({
71
+ query: (0, _adminUiUtils.getDynamicQuery)('GET_ALL_ENTITIES')(schema),
72
+ variables: {
73
+ where: {
74
+ id: {
75
+ _in: selectedIds
76
+ }
77
+ },
78
+ sort: [{
79
+ property: 'name',
80
+ direction: 'asc'
81
+ }]
82
+ }
83
+ });
84
+ if (active && result.length) setData(prev => (0, _lodash2.default)([...prev, ...result], 'id'));
85
+ } catch {
86
+ // ignore - selected chips will fall back to id-only display
87
+ }
88
+ })();
89
+ return () => {
90
+ active = false;
91
+ };
92
+ // eslint-disable-next-line react-hooks/exhaustive-deps
93
+ }, [schema]);
94
+ const onSearch = (0, _react.useMemo)(() => schema ? (0, _adminUiUtils.getAdminRecordSearch)(schema, client) : null, [schema, client]);
95
+ const currentData = (0, _react.useMemo)(() => data.map(option => {
96
+ const checked = selectedIds.includes(option.id);
97
+ return _objectSpread(_objectSpread({}, option), {}, {
98
+ checked,
99
+ show: true,
100
+ name: (0, _adminUiUtils.buildLabel)(displayProperties, option)
101
+ });
102
+ }), [data, selectedIds, displayProperties]);
103
+ const interceptOnSearchChange = (0, _lodash.default)(async ({
104
+ value
105
+ }) => {
106
+ setSearchTerm(value);
107
+ if (!onSearch) return;
108
+ const result = await onSearch({
109
+ event: {
110
+ value
111
+ },
112
+ currentValue: selectedIds
113
+ });
114
+ if (!result) return;
115
+ setData(prev => {
116
+ const selected = prev.filter(item => selectedIds.includes(item.id));
117
+ const newOnes = result.filter(item => !selectedIds.includes(item.id));
118
+ return (0, _lodash2.default)([...selected, ...newOnes], 'id');
119
+ });
120
+ }, DEBOUNCE_TIME);
121
+ const scrollHook = (0, _lodash.default)(async ({
122
+ stopIndex
123
+ }) => {
124
+ if (!onSearch) return;
125
+ const currentDataLength = data.length - selectedIds.length;
126
+ if (!shouldLoadMore(searchTerm, stopIndex, currentDataLength)) return;
127
+ const result = await onSearch({
128
+ event: {
129
+ value: searchTerm
130
+ },
131
+ currentValue: selectedIds,
132
+ currentOffset: currentDataLength
133
+ });
134
+ if (!result || !result.length) return;
135
+ setData(prev => (0, _lodash2.default)([...prev, ...result], 'id'));
136
+ }, DEBOUNCE_TIME);
137
+ const onItemsRenderedIntercept = async event => {
138
+ if (!onSearch) return;
139
+ scrollHook(event);
140
+ };
141
+ const getSelected = ({
142
+ event: {
143
+ target: {
144
+ value
145
+ }
146
+ }
147
+ }) => {
148
+ onChange(id, value);
149
+ };
150
+ return /*#__PURE__*/_react.default.createElement(_multiselect.default, {
151
+ label: label,
152
+ name: id,
153
+ data: {
154
+ data: currentData,
155
+ filterBy: ['name'],
156
+ identification: 'id',
157
+ keyValue: 'name'
158
+ },
159
+ limit: SELECTION_LIMIT,
160
+ onChange: interceptOnSearchChange,
161
+ getSelected: getSelected,
162
+ onItemsRendered: onItemsRenderedIntercept,
163
+ required: false,
164
+ checkedPreviewCount: 1,
165
+ formatMoreLabel: count => `${count} more`,
166
+ isDynamic: true
167
+ });
168
+ };
169
+ RelationMultiSelectFilter.propTypes = {
170
+ id: _propTypes.default.string.isRequired,
171
+ label: _propTypes.default.string,
172
+ entityIdentifier: _propTypes.default.string.isRequired,
173
+ selectedIds: _propTypes.default.array,
174
+ onChange: _propTypes.default.func.isRequired
175
+ };
176
+ RelationMultiSelectFilter.defaultProps = {
177
+ label: '',
178
+ selectedIds: []
179
+ };
180
+ var _default = exports.default = RelationMultiSelectFilter;
181
+ //# sourceMappingURL=RelationMultiSelectFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RelationMultiSelectFilter.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_multiselect","_lodash","_lodash2","_client","_adminUiUtils","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","DEBOUNCE_TIME","SEARCH_LOAD_OFFSET","SELECTION_LIMIT","shouldLoadMore","searchTerm","stopIndex","currentDataLength","RelationMultiSelectFilter","id","label","entityIdentifier","selectedIds","onChange","client","useApolloClient","schema","setSchema","useState","data","setData","setSearchTerm","displayProperties","useEffect","active","getEntitySchemas","query","getQuery","variables","identifier","relationSchema","undefined","result","getDynamicQuery","where","_in","sort","property","direction","prev","unionBy","onSearch","useMemo","getAdminRecordSearch","currentData","map","option","checked","includes","show","name","buildLabel","interceptOnSearchChange","debounce","value","event","currentValue","selected","item","newOnes","scrollHook","currentOffset","onItemsRenderedIntercept","getSelected","target","createElement","filterBy","identification","keyValue","limit","onItemsRendered","required","checkedPreviewCount","formatMoreLabel","count","isDynamic","propTypes","PropTypes","string","isRequired","array","func","defaultProps","_default","exports"],"sources":["../../../../src/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js"],"sourcesContent":["import React, { useState, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport MultiSelect from '@blaze-react/multiselect';\nimport debounce from 'lodash.debounce';\nimport unionBy from 'lodash.unionby';\nimport { useApolloClient } from '@apollo/client';\nimport {\n getQuery,\n getDynamicQuery,\n getAdminRecordSearch,\n buildLabel\n} from '@blaze-cms/admin-ui-utils';\n\nconst DEBOUNCE_TIME = 500;\nconst SEARCH_LOAD_OFFSET = 10;\nconst SELECTION_LIMIT = 10;\n\nconst shouldLoadMore = (searchTerm, stopIndex, currentDataLength) =>\n searchTerm &&\n stopIndex > SEARCH_LOAD_OFFSET &&\n stopIndex >= currentDataLength - SEARCH_LOAD_OFFSET;\n\nconst RelationMultiSelectFilter = ({ id, label, entityIdentifier, selectedIds, onChange }) => {\n const client = useApolloClient();\n const [schema, setSchema] = useState(null);\n const [data, setData] = useState([]);\n const [searchTerm, setSearchTerm] = useState('');\n\n const { displayProperties } = schema || {};\n\n useEffect(() => {\n let active = true;\n (async () => {\n try {\n const { data: { getEntitySchemas = [] } = {} } = await client.query({\n query: getQuery('GET_ENTITY_SCHEMA'),\n variables: { identifier: entityIdentifier }\n });\n const [relationSchema] = getEntitySchemas;\n if (active && relationSchema) setSchema(relationSchema);\n } catch {\n if (active) setSchema(null);\n }\n })();\n return () => {\n active = false;\n };\n }, [client, entityIdentifier]);\n\n useEffect(() => {\n if (!schema || !selectedIds.length) return undefined;\n let active = true;\n (async () => {\n try {\n const { data: { result = [] } = {} } = await client.query({\n query: getDynamicQuery('GET_ALL_ENTITIES')(schema),\n variables: {\n where: { id: { _in: selectedIds } },\n sort: [{ property: 'name', direction: 'asc' }]\n }\n });\n if (active && result.length) setData(prev => unionBy([...prev, ...result], 'id'));\n } catch {\n // ignore - selected chips will fall back to id-only display\n }\n })();\n return () => {\n active = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [schema]);\n\n const onSearch = useMemo(\n () => (schema ? getAdminRecordSearch(schema, client) : null),\n [schema, client]\n );\n\n const currentData = useMemo(\n () =>\n data.map(option => {\n const checked = selectedIds.includes(option.id);\n return {\n ...option,\n checked,\n show: true,\n name: buildLabel(displayProperties, option)\n };\n }),\n [data, selectedIds, displayProperties]\n );\n\n const interceptOnSearchChange = debounce(async ({ value }) => {\n setSearchTerm(value);\n if (!onSearch) return;\n const result = await onSearch({ event: { value }, currentValue: selectedIds });\n if (!result) return;\n setData(prev => {\n const selected = prev.filter(item => selectedIds.includes(item.id));\n const newOnes = result.filter(item => !selectedIds.includes(item.id));\n return unionBy([...selected, ...newOnes], 'id');\n });\n }, DEBOUNCE_TIME);\n\n const scrollHook = debounce(async ({ stopIndex }) => {\n if (!onSearch) return;\n const currentDataLength = data.length - selectedIds.length;\n if (!shouldLoadMore(searchTerm, stopIndex, currentDataLength)) return;\n const result = await onSearch({\n event: { value: searchTerm },\n currentValue: selectedIds,\n currentOffset: currentDataLength\n });\n if (!result || !result.length) return;\n setData(prev => unionBy([...prev, ...result], 'id'));\n }, DEBOUNCE_TIME);\n\n const onItemsRenderedIntercept = async event => {\n if (!onSearch) return;\n scrollHook(event);\n };\n\n const getSelected = ({\n event: {\n target: { value }\n }\n }) => {\n onChange(id, value);\n };\n\n return (\n <MultiSelect\n label={label}\n name={id}\n data={{ data: currentData, filterBy: ['name'], identification: 'id', keyValue: 'name' }}\n limit={SELECTION_LIMIT}\n onChange={interceptOnSearchChange}\n getSelected={getSelected}\n onItemsRendered={onItemsRenderedIntercept}\n required={false}\n checkedPreviewCount={1}\n formatMoreLabel={count => `${count} more`}\n isDynamic\n />\n );\n};\n\nRelationMultiSelectFilter.propTypes = {\n id: PropTypes.string.isRequired,\n label: PropTypes.string,\n entityIdentifier: PropTypes.string.isRequired,\n selectedIds: PropTypes.array,\n onChange: PropTypes.func.isRequired\n};\n\nRelationMultiSelectFilter.defaultProps = {\n label: '',\n selectedIds: []\n};\n\nexport default RelationMultiSelectFilter;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,OAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,QAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,aAAA,GAAAP,OAAA;AAKmC,SAAAD,wBAAAS,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAS,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;AAAA,SAAAkB,QAAAnB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAe,MAAA,CAAAI,IAAA,CAAApB,CAAA,OAAAgB,MAAA,CAAAK,qBAAA,QAAAf,CAAA,GAAAU,MAAA,CAAAK,qBAAA,CAAArB,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAgB,MAAA,WAAAnB,CAAA,WAAAa,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAoB,UAAA,OAAAtB,CAAA,CAAAuB,IAAA,CAAAC,KAAA,CAAAxB,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAAyB,cAAA1B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAwB,SAAA,CAAAC,MAAA,EAAAzB,CAAA,UAAAF,CAAA,WAAA0B,SAAA,CAAAxB,CAAA,IAAAwB,SAAA,CAAAxB,CAAA,QAAAA,CAAA,OAAAgB,OAAA,CAAAH,MAAA,CAAAf,CAAA,OAAA4B,OAAA,WAAA1B,CAAA,QAAA2B,gBAAA,CAAApB,OAAA,EAAAV,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAa,MAAA,CAAAe,yBAAA,GAAAf,MAAA,CAAAgB,gBAAA,CAAAhC,CAAA,EAAAgB,MAAA,CAAAe,yBAAA,CAAA9B,CAAA,KAAAkB,OAAA,CAAAH,MAAA,CAAAf,CAAA,GAAA4B,OAAA,WAAA1B,CAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAjB,CAAA,EAAAG,CAAA,EAAAa,MAAA,CAAAE,wBAAA,CAAAjB,CAAA,EAAAE,CAAA,iBAAAH,CAAA;AAEnC,MAAMiC,aAAa,GAAG,GAAG;AACzB,MAAMC,kBAAkB,GAAG,EAAE;AAC7B,MAAMC,eAAe,GAAG,EAAE;AAE1B,MAAMC,cAAc,GAAGA,CAACC,UAAU,EAAEC,SAAS,EAAEC,iBAAiB,KAC9DF,UAAU,IACVC,SAAS,GAAGJ,kBAAkB,IAC9BI,SAAS,IAAIC,iBAAiB,GAAGL,kBAAkB;AAErD,MAAMM,yBAAyB,GAAGA,CAAC;EAAEC,EAAE;EAAEC,KAAK;EAAEC,gBAAgB;EAAEC,WAAW;EAAEC;AAAS,CAAC,KAAK;EAC5F,MAAMC,MAAM,GAAG,IAAAC,uBAAe,EAAC,CAAC;EAChC,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAC,IAAI,CAAC;EAC1C,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAF,eAAQ,EAAC,EAAE,CAAC;EACpC,MAAM,CAACb,UAAU,EAAEgB,aAAa,CAAC,GAAG,IAAAH,eAAQ,EAAC,EAAE,CAAC;EAEhD,MAAM;IAAEI;EAAkB,CAAC,GAAGN,MAAM,IAAI,CAAC,CAAC;EAE1C,IAAAO,gBAAS,EAAC,MAAM;IACd,IAAIC,MAAM,GAAG,IAAI;IACjB,CAAC,YAAY;MACX,IAAI;QACF,MAAM;UAAEL,IAAI,EAAE;YAAEM,gBAAgB,GAAG;UAAG,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,MAAMX,MAAM,CAACY,KAAK,CAAC;UAClEA,KAAK,EAAE,IAAAC,sBAAQ,EAAC,mBAAmB,CAAC;UACpCC,SAAS,EAAE;YAAEC,UAAU,EAAElB;UAAiB;QAC5C,CAAC,CAAC;QACF,MAAM,CAACmB,cAAc,CAAC,GAAGL,gBAAgB;QACzC,IAAID,MAAM,IAAIM,cAAc,EAAEb,SAAS,CAACa,cAAc,CAAC;MACzD,CAAC,CAAC,MAAM;QACN,IAAIN,MAAM,EAAEP,SAAS,CAAC,IAAI,CAAC;MAC7B;IACF,CAAC,EAAE,CAAC;IACJ,OAAO,MAAM;MACXO,MAAM,GAAG,KAAK;IAChB,CAAC;EACH,CAAC,EAAE,CAACV,MAAM,EAAEH,gBAAgB,CAAC,CAAC;EAE9B,IAAAY,gBAAS,EAAC,MAAM;IACd,IAAI,CAACP,MAAM,IAAI,CAACJ,WAAW,CAAChB,MAAM,EAAE,OAAOmC,SAAS;IACpD,IAAIP,MAAM,GAAG,IAAI;IACjB,CAAC,YAAY;MACX,IAAI;QACF,MAAM;UAAEL,IAAI,EAAE;YAAEa,MAAM,GAAG;UAAG,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,MAAMlB,MAAM,CAACY,KAAK,CAAC;UACxDA,KAAK,EAAE,IAAAO,6BAAe,EAAC,kBAAkB,CAAC,CAACjB,MAAM,CAAC;UAClDY,SAAS,EAAE;YACTM,KAAK,EAAE;cAAEzB,EAAE,EAAE;gBAAE0B,GAAG,EAAEvB;cAAY;YAAE,CAAC;YACnCwB,IAAI,EAAE,CAAC;cAAEC,QAAQ,EAAE,MAAM;cAAEC,SAAS,EAAE;YAAM,CAAC;UAC/C;QACF,CAAC,CAAC;QACF,IAAId,MAAM,IAAIQ,MAAM,CAACpC,MAAM,EAAEwB,OAAO,CAACmB,IAAI,IAAI,IAAAC,gBAAO,EAAC,CAAC,GAAGD,IAAI,EAAE,GAAGP,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;MACnF,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ,CAAC,EAAE,CAAC;IACJ,OAAO,MAAM;MACXR,MAAM,GAAG,KAAK;IAChB,CAAC;IACD;EACF,CAAC,EAAE,CAACR,MAAM,CAAC,CAAC;EAEZ,MAAMyB,QAAQ,GAAG,IAAAC,cAAO,EACtB,MAAO1B,MAAM,GAAG,IAAA2B,kCAAoB,EAAC3B,MAAM,EAAEF,MAAM,CAAC,GAAG,IAAK,EAC5D,CAACE,MAAM,EAAEF,MAAM,CACjB,CAAC;EAED,MAAM8B,WAAW,GAAG,IAAAF,cAAO,EACzB,MACEvB,IAAI,CAAC0B,GAAG,CAACC,MAAM,IAAI;IACjB,MAAMC,OAAO,GAAGnC,WAAW,CAACoC,QAAQ,CAACF,MAAM,CAACrC,EAAE,CAAC;IAC/C,OAAAf,aAAA,CAAAA,aAAA,KACKoD,MAAM;MACTC,OAAO;MACPE,IAAI,EAAE,IAAI;MACVC,IAAI,EAAE,IAAAC,wBAAU,EAAC7B,iBAAiB,EAAEwB,MAAM;IAAC;EAE/C,CAAC,CAAC,EACJ,CAAC3B,IAAI,EAAEP,WAAW,EAAEU,iBAAiB,CACvC,CAAC;EAED,MAAM8B,uBAAuB,GAAG,IAAAC,eAAQ,EAAC,OAAO;IAAEC;EAAM,CAAC,KAAK;IAC5DjC,aAAa,CAACiC,KAAK,CAAC;IACpB,IAAI,CAACb,QAAQ,EAAE;IACf,MAAMT,MAAM,GAAG,MAAMS,QAAQ,CAAC;MAAEc,KAAK,EAAE;QAAED;MAAM,CAAC;MAAEE,YAAY,EAAE5C;IAAY,CAAC,CAAC;IAC9E,IAAI,CAACoB,MAAM,EAAE;IACbZ,OAAO,CAACmB,IAAI,IAAI;MACd,MAAMkB,QAAQ,GAAGlB,IAAI,CAACjD,MAAM,CAACoE,IAAI,IAAI9C,WAAW,CAACoC,QAAQ,CAACU,IAAI,CAACjD,EAAE,CAAC,CAAC;MACnE,MAAMkD,OAAO,GAAG3B,MAAM,CAAC1C,MAAM,CAACoE,IAAI,IAAI,CAAC9C,WAAW,CAACoC,QAAQ,CAACU,IAAI,CAACjD,EAAE,CAAC,CAAC;MACrE,OAAO,IAAA+B,gBAAO,EAAC,CAAC,GAAGiB,QAAQ,EAAE,GAAGE,OAAO,CAAC,EAAE,IAAI,CAAC;IACjD,CAAC,CAAC;EACJ,CAAC,EAAE1D,aAAa,CAAC;EAEjB,MAAM2D,UAAU,GAAG,IAAAP,eAAQ,EAAC,OAAO;IAAE/C;EAAU,CAAC,KAAK;IACnD,IAAI,CAACmC,QAAQ,EAAE;IACf,MAAMlC,iBAAiB,GAAGY,IAAI,CAACvB,MAAM,GAAGgB,WAAW,CAAChB,MAAM;IAC1D,IAAI,CAACQ,cAAc,CAACC,UAAU,EAAEC,SAAS,EAAEC,iBAAiB,CAAC,EAAE;IAC/D,MAAMyB,MAAM,GAAG,MAAMS,QAAQ,CAAC;MAC5Bc,KAAK,EAAE;QAAED,KAAK,EAAEjD;MAAW,CAAC;MAC5BmD,YAAY,EAAE5C,WAAW;MACzBiD,aAAa,EAAEtD;IACjB,CAAC,CAAC;IACF,IAAI,CAACyB,MAAM,IAAI,CAACA,MAAM,CAACpC,MAAM,EAAE;IAC/BwB,OAAO,CAACmB,IAAI,IAAI,IAAAC,gBAAO,EAAC,CAAC,GAAGD,IAAI,EAAE,GAAGP,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;EACtD,CAAC,EAAE/B,aAAa,CAAC;EAEjB,MAAM6D,wBAAwB,GAAG,MAAMP,KAAK,IAAI;IAC9C,IAAI,CAACd,QAAQ,EAAE;IACfmB,UAAU,CAACL,KAAK,CAAC;EACnB,CAAC;EAED,MAAMQ,WAAW,GAAGA,CAAC;IACnBR,KAAK,EAAE;MACLS,MAAM,EAAE;QAAEV;MAAM;IAClB;EACF,CAAC,KAAK;IACJzC,QAAQ,CAACJ,EAAE,EAAE6C,KAAK,CAAC;EACrB,CAAC;EAED,oBACEhG,MAAA,CAAAoB,OAAA,CAAAuF,aAAA,CAACtG,YAAA,CAAAe,OAAW;IACVgC,KAAK,EAAEA,KAAM;IACbwC,IAAI,EAAEzC,EAAG;IACTU,IAAI,EAAE;MAAEA,IAAI,EAAEyB,WAAW;MAAEsB,QAAQ,EAAE,CAAC,MAAM,CAAC;MAAEC,cAAc,EAAE,IAAI;MAAEC,QAAQ,EAAE;IAAO,CAAE;IACxFC,KAAK,EAAElE,eAAgB;IACvBU,QAAQ,EAAEuC,uBAAwB;IAClCW,WAAW,EAAEA,WAAY;IACzBO,eAAe,EAAER,wBAAyB;IAC1CS,QAAQ,EAAE,KAAM;IAChBC,mBAAmB,EAAE,CAAE;IACvBC,eAAe,EAAEC,KAAK,IAAI,GAAGA,KAAK,OAAQ;IAC1CC,SAAS;EAAA,CACV,CAAC;AAEN,CAAC;AAEDnE,yBAAyB,CAACoE,SAAS,GAAG;EACpCnE,EAAE,EAAEoE,kBAAS,CAACC,MAAM,CAACC,UAAU;EAC/BrE,KAAK,EAAEmE,kBAAS,CAACC,MAAM;EACvBnE,gBAAgB,EAAEkE,kBAAS,CAACC,MAAM,CAACC,UAAU;EAC7CnE,WAAW,EAAEiE,kBAAS,CAACG,KAAK;EAC5BnE,QAAQ,EAAEgE,kBAAS,CAACI,IAAI,CAACF;AAC3B,CAAC;AAEDvE,yBAAyB,CAAC0E,YAAY,GAAG;EACvCxE,KAAK,EAAE,EAAE;EACTE,WAAW,EAAE;AACf,CAAC;AAAC,IAAAuE,QAAA,GAAAC,OAAA,CAAA1G,OAAA,GAEa8B,yBAAyB","ignoreList":[]}
@@ -17,6 +17,7 @@ var _adminUiUtils = require("@blaze-cms/admin-ui-utils");
17
17
  var _utils = require("@blaze-cms/utils");
18
18
  var _bs = require("react-icons/bs");
19
19
  var _helpers = require("./helpers");
20
+ var _RelationMultiSelectFilter = _interopRequireDefault(require("./RelationMultiSelectFilter"));
20
21
  var _querys = require("./querys");
21
22
  var _constants = require("../../../constants");
22
23
  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); }
@@ -54,6 +55,8 @@ const SearchContainer = ({
54
55
  })();
55
56
  }, [client]);
56
57
  const multiSelectPropertySet = (0, _react.useMemo)(() => new Set(multiSelectFiltersToDisplay.map(([property]) => property)), [multiSelectFiltersToDisplay]);
58
+ const relationMultiSelectFilters = (0, _react.useMemo)(() => multiSelectFiltersToDisplay.filter(([, config]) => config && config.relation), [multiSelectFiltersToDisplay]);
59
+ const nonRelationMultiSelectFilters = (0, _react.useMemo)(() => multiSelectFiltersToDisplay.filter(([, config]) => !config || !config.relation), [multiSelectFiltersToDisplay]);
57
60
  const {
58
61
  keywordSearchProperties,
59
62
  keywordSearchLabels
@@ -74,7 +77,7 @@ const SearchContainer = ({
74
77
  const {
75
78
  gqlFields,
76
79
  rawQuery
77
- } = (0, _react.useMemo)(() => (0, _helpers.buildQueryFields)([...selectFiltersToDisplay, ...multiSelectFiltersToDisplay], schema.id), [selectFiltersToDisplay, multiSelectFiltersToDisplay, schema.id]);
80
+ } = (0, _react.useMemo)(() => (0, _helpers.buildQueryFields)([...selectFiltersToDisplay, ...nonRelationMultiSelectFilters], schema.id), [selectFiltersToDisplay, nonRelationMultiSelectFilters, schema.id]);
78
81
  const action = displayAggregations ? (0, _adminUiUtils.getDynamicQuery)('ADMIN_SEARCH')([schema], gqlFields, false, index) : _querys.NOOP_QUERY;
79
82
  const {
80
83
  data
@@ -462,6 +465,20 @@ const SearchContainer = ({
462
465
  checkedPreviewCount: 1,
463
466
  formatMoreLabel: n => `${n} more`
464
467
  }));
468
+ }), relationMultiSelectFilters.map(([property, config]) => {
469
+ var _config$relation2;
470
+ const entityIdentifier = resolveEntityIdentifier(property, config) || ((_config$relation2 = config.relation) === null || _config$relation2 === void 0 ? void 0 : _config$relation2.entityIdentifier);
471
+ if (!entityIdentifier) return null;
472
+ return /*#__PURE__*/_react.default.createElement("div", {
473
+ className: "search-container__select-wrapper",
474
+ key: `relation-multiselect-${property}`
475
+ }, /*#__PURE__*/_react.default.createElement(_RelationMultiSelectFilter.default, {
476
+ id: property,
477
+ label: config.label || config.relation.label,
478
+ entityIdentifier: entityIdentifier,
479
+ selectedIds: selectedFilters[property] || [],
480
+ onChange: handleMultiSelect
481
+ }));
465
482
  }), /*#__PURE__*/_react.default.createElement("div", {
466
483
  className: "search-container__reset-button"
467
484
  }, /*#__PURE__*/_react.default.createElement("span", {