@blaze-cms/plugin-data-ui 0.146.0-rc-eagle.0 → 0.146.0-rc-eagle-3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/README.md +9 -2
  2. package/lib/components/EntityManager/Entity/Entity.js +1 -1
  3. package/lib/components/EntityManager/Entity/Entity.js.map +1 -1
  4. package/lib/components/EntityManager/Entity/actions-handlers/create/submit.js +4 -15
  5. package/lib/components/EntityManager/Entity/actions-handlers/create/submit.js.map +1 -1
  6. package/lib/components/EntityManager/utils/entity.js +2 -3
  7. package/lib/components/EntityManager/utils/entity.js.map +1 -1
  8. package/lib/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js +181 -0
  9. package/lib/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js.map +1 -0
  10. package/lib/components/ListingTable/SearchFilter/SearchContainer.js +348 -52
  11. package/lib/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -1
  12. package/lib/components/ListingTable/SearchFilter/SearchFilter.js +15 -3
  13. package/lib/components/ListingTable/SearchFilter/SearchFilter.js.map +1 -1
  14. package/lib/components/ListingTable/SearchFilter/helpers.js +41 -8
  15. package/lib/components/ListingTable/SearchFilter/helpers.js.map +1 -1
  16. package/lib/index.js +7 -0
  17. package/lib/index.js.map +1 -1
  18. package/lib/utils/build-create-entity-mutation.js +3 -19
  19. package/lib/utils/build-create-entity-mutation.js.map +1 -1
  20. package/lib/utils/get-default-query-params.js +17 -5
  21. package/lib/utils/get-default-query-params.js.map +1 -1
  22. package/lib-es/components/EntityDataListing/EntityDataListing.js +33 -0
  23. package/lib-es/components/EntityDataListing/EntityDataListing.js.map +1 -0
  24. package/lib-es/components/EntityDataListing/index.js +3 -0
  25. package/lib-es/components/EntityDataListing/index.js.map +1 -0
  26. package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js +30 -0
  27. package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js.map +1 -0
  28. package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/index.js +3 -0
  29. package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/index.js.map +1 -0
  30. package/lib-es/components/EntityManager/Entity/Entity.js +453 -0
  31. package/lib-es/components/EntityManager/Entity/Entity.js.map +1 -0
  32. package/lib-es/components/EntityManager/Entity/EntityHeader/EntityHeader.js +103 -0
  33. package/lib-es/components/EntityManager/Entity/EntityHeader/EntityHeader.js.map +1 -0
  34. package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js +47 -0
  35. package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js.map +1 -0
  36. package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/index.js +3 -0
  37. package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/index.js.map +1 -0
  38. package/lib-es/components/EntityManager/Entity/EntityHeader/index.js +3 -0
  39. package/lib-es/components/EntityManager/Entity/EntityHeader/index.js.map +1 -0
  40. package/lib-es/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js +30 -0
  41. package/lib-es/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js.map +1 -0
  42. package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +29 -0
  43. package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js.map +1 -0
  44. package/lib-es/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js +49 -0
  45. package/lib-es/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js.map +1 -0
  46. package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js +136 -0
  47. package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -0
  48. package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +36 -0
  49. package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js.map +1 -0
  50. package/lib-es/components/EntityManager/Entity/actions-handlers/create/index.js +5 -0
  51. package/lib-es/components/EntityManager/Entity/actions-handlers/create/index.js.map +1 -0
  52. package/lib-es/components/EntityManager/Entity/actions-handlers/create/submit.js +36 -0
  53. package/lib-es/components/EntityManager/Entity/actions-handlers/create/submit.js.map +1 -0
  54. package/lib-es/components/EntityManager/Entity/actions-handlers/delete/delete.js +32 -0
  55. package/lib-es/components/EntityManager/Entity/actions-handlers/delete/delete.js.map +1 -0
  56. package/lib-es/components/EntityManager/Entity/actions-handlers/delete/index.js +5 -0
  57. package/lib-es/components/EntityManager/Entity/actions-handlers/delete/index.js.map +1 -0
  58. package/lib-es/components/EntityManager/Entity/actions-handlers/index.js +12 -0
  59. package/lib-es/components/EntityManager/Entity/actions-handlers/index.js.map +1 -0
  60. package/lib-es/components/EntityManager/Entity/actions-handlers/shared/index.js +5 -0
  61. package/lib-es/components/EntityManager/Entity/actions-handlers/shared/index.js.map +1 -0
  62. package/lib-es/components/EntityManager/Entity/actions-handlers/shared/publish.js +39 -0
  63. package/lib-es/components/EntityManager/Entity/actions-handlers/shared/publish.js.map +1 -0
  64. package/lib-es/components/EntityManager/Entity/actions-handlers/update/index.js +5 -0
  65. package/lib-es/components/EntityManager/Entity/actions-handlers/update/index.js.map +1 -0
  66. package/lib-es/components/EntityManager/Entity/actions-handlers/update/submit.js +53 -0
  67. package/lib-es/components/EntityManager/Entity/actions-handlers/update/submit.js.map +1 -0
  68. package/lib-es/components/EntityManager/Entity/index.js +3 -0
  69. package/lib-es/components/EntityManager/Entity/index.js.map +1 -0
  70. package/lib-es/components/EntityManager/EntityManager.js +133 -0
  71. package/lib-es/components/EntityManager/EntityManager.js.map +1 -0
  72. package/lib-es/components/EntityManager/index.js +3 -0
  73. package/lib-es/components/EntityManager/index.js.map +1 -0
  74. package/lib-es/components/EntityManager/utils/RecordEditContext/index.js +6 -0
  75. package/lib-es/components/EntityManager/utils/RecordEditContext/index.js.map +1 -0
  76. package/lib-es/components/EntityManager/utils/data-mappers.js +55 -0
  77. package/lib-es/components/EntityManager/utils/data-mappers.js.map +1 -0
  78. package/lib-es/components/EntityManager/utils/entity.js +69 -0
  79. package/lib-es/components/EntityManager/utils/entity.js.map +1 -0
  80. package/lib-es/components/EntityManager/utils/entityAvailableActions.js +56 -0
  81. package/lib-es/components/EntityManager/utils/entityAvailableActions.js.map +1 -0
  82. package/lib-es/components/EntityManager/utils/is-form-empty.js +9 -0
  83. package/lib-es/components/EntityManager/utils/is-form-empty.js.map +1 -0
  84. package/lib-es/components/EntityManager/utils/query.js +23 -0
  85. package/lib-es/components/EntityManager/utils/query.js.map +1 -0
  86. package/lib-es/components/InfoBoxes/InfoBoxTooltip.js +36 -0
  87. package/lib-es/components/InfoBoxes/InfoBoxTooltip.js.map +1 -0
  88. package/lib-es/components/InfoBoxes/InfoBoxes.js +28 -0
  89. package/lib-es/components/InfoBoxes/InfoBoxes.js.map +1 -0
  90. package/lib-es/components/InfoBoxes/container/InfoBoxContainer.js +38 -0
  91. package/lib-es/components/InfoBoxes/container/InfoBoxContainer.js.map +1 -0
  92. package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js +28 -0
  93. package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js.map +1 -0
  94. package/lib-es/components/InfoBoxes/hooks/useData.js +39 -0
  95. package/lib-es/components/InfoBoxes/hooks/useData.js.map +1 -0
  96. package/lib-es/components/InfoBoxes/hooks/useInfoBox.js +17 -0
  97. package/lib-es/components/InfoBoxes/hooks/useInfoBox.js.map +1 -0
  98. package/lib-es/components/InfoBoxes/index.js +3 -0
  99. package/lib-es/components/InfoBoxes/index.js.map +1 -0
  100. package/lib-es/components/InfoBoxes/presentational/InfoBox.js +40 -0
  101. package/lib-es/components/InfoBoxes/presentational/InfoBox.js.map +1 -0
  102. package/lib-es/components/InfoBoxes/presentational/InfoBoxLabel.js +12 -0
  103. package/lib-es/components/InfoBoxes/presentational/InfoBoxLabel.js.map +1 -0
  104. package/lib-es/components/InfoBoxes/presentational/InfoBoxValue.js +30 -0
  105. package/lib-es/components/InfoBoxes/presentational/InfoBoxValue.js.map +1 -0
  106. package/lib-es/components/ListingTable/ListingTable.js +208 -0
  107. package/lib-es/components/ListingTable/ListingTable.js.map +1 -0
  108. package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js +72 -0
  109. package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -0
  110. package/lib-es/components/ListingTable/ListingTableContent/index.js +3 -0
  111. package/lib-es/components/ListingTable/ListingTableContent/index.js.map +1 -0
  112. package/lib-es/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js +173 -0
  113. package/lib-es/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js.map +1 -0
  114. package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js +503 -0
  115. package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -0
  116. package/lib-es/components/ListingTable/SearchFilter/SearchFilter.js +52 -0
  117. package/lib-es/components/ListingTable/SearchFilter/SearchFilter.js.map +1 -0
  118. package/lib-es/components/ListingTable/SearchFilter/helpers.js +127 -0
  119. package/lib-es/components/ListingTable/SearchFilter/helpers.js.map +1 -0
  120. package/lib-es/components/ListingTable/SearchFilter/querys.js +8 -0
  121. package/lib-es/components/ListingTable/SearchFilter/querys.js.map +1 -0
  122. package/lib-es/components/ListingTable/TableActions/TableActions.js +34 -0
  123. package/lib-es/components/ListingTable/TableActions/TableActions.js.map +1 -0
  124. package/lib-es/components/ListingTable/TableActions/index.js +3 -0
  125. package/lib-es/components/ListingTable/TableActions/index.js.map +1 -0
  126. package/lib-es/components/ListingTable/index.js +3 -0
  127. package/lib-es/components/ListingTable/index.js.map +1 -0
  128. package/lib-es/components/ListingTable/mappers/populate-rows.js +140 -0
  129. package/lib-es/components/ListingTable/mappers/populate-rows.js.map +1 -0
  130. package/lib-es/components/ListingTable/service/index.js +87 -0
  131. package/lib-es/components/ListingTable/service/index.js.map +1 -0
  132. package/lib-es/components/Tabs/index.js +38 -0
  133. package/lib-es/components/Tabs/index.js.map +1 -0
  134. package/lib-es/components/hooks/useCallbackDebounce.js +12 -0
  135. package/lib-es/components/hooks/useCallbackDebounce.js.map +1 -0
  136. package/lib-es/constants.js +42 -0
  137. package/lib-es/constants.js.map +1 -0
  138. package/lib-es/icons/ContentIcon.js +80 -0
  139. package/lib-es/icons/ContentIcon.js.map +1 -0
  140. package/lib-es/icons/SettingsIcon.js +36 -0
  141. package/lib-es/icons/SettingsIcon.js.map +1 -0
  142. package/lib-es/icons/TaxonomyIcon.js +60 -0
  143. package/lib-es/icons/TaxonomyIcon.js.map +1 -0
  144. package/lib-es/icons/UsersIcon.js +33 -0
  145. package/lib-es/icons/UsersIcon.js.map +1 -0
  146. package/lib-es/icons/index.js +6 -0
  147. package/lib-es/icons/index.js.map +1 -0
  148. package/lib-es/index.js +93 -0
  149. package/lib-es/index.js.map +1 -0
  150. package/lib-es/utils/add-content-menu-items.js +72 -0
  151. package/lib-es/utils/add-content-menu-items.js.map +1 -0
  152. package/lib-es/utils/build-create-entity-mutation.js +7 -0
  153. package/lib-es/utils/build-create-entity-mutation.js.map +1 -0
  154. package/lib-es/utils/build-delete-entity-mutation.js +18 -0
  155. package/lib-es/utils/build-delete-entity-mutation.js.map +1 -0
  156. package/lib-es/utils/build-listing-query.js +28 -0
  157. package/lib-es/utils/build-listing-query.js.map +1 -0
  158. package/lib-es/utils/build-update-data-query.js +24 -0
  159. package/lib-es/utils/build-update-data-query.js.map +1 -0
  160. package/lib-es/utils/build-update-publish-unpublish-mutation.js +22 -0
  161. package/lib-es/utils/build-update-publish-unpublish-mutation.js.map +1 -0
  162. package/lib-es/utils/get-default-query-params.js +29 -0
  163. package/lib-es/utils/get-default-query-params.js.map +1 -0
  164. package/lib-es/utils/hoc/withContext.js +8 -0
  165. package/lib-es/utils/hoc/withContext.js.map +1 -0
  166. package/lib-es/utils/hooks/useToggle.js +8 -0
  167. package/lib-es/utils/hooks/useToggle.js.map +1 -0
  168. package/lib-es/utils/index.js +3 -0
  169. package/lib-es/utils/index.js.map +1 -0
  170. package/package.json +16 -12
  171. package/src/components/EntityManager/Entity/Entity.js +1 -1
  172. package/src/components/EntityManager/Entity/actions-handlers/create/submit.js +4 -11
  173. package/src/components/EntityManager/utils/entity.js +4 -10
  174. package/src/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js +160 -0
  175. package/src/components/ListingTable/SearchFilter/SearchContainer.js +407 -74
  176. package/src/components/ListingTable/SearchFilter/SearchFilter.js +14 -3
  177. package/src/components/ListingTable/SearchFilter/helpers.js +55 -8
  178. package/src/index.js +2 -0
  179. package/src/utils/build-create-entity-mutation.js +5 -28
  180. package/src/utils/get-default-query-params.js +21 -9
  181. package/CHANGELOG.md +0 -1932
  182. package/babel.config.js +0 -3
  183. package/jest.config.js +0 -5
@@ -14,14 +14,32 @@ const updateListFilters = (searchTerm, selectedFilters, setListFilters, fields =
14
14
  }
15
15
 
16
16
  Object.entries(selectedFilters).forEach(([filterKey, filterValue]) => {
17
- if (!filterValue || filterValue === DEFAULT_FILTER_OPTION_LABEL) return;
18
- filters.push({
19
- match: {
20
- [`${filterKey}.keyword`]: {
21
- query: filterValue
22
- }
17
+ const isEmptyArray = Array.isArray(filterValue) && filterValue.length === 0;
18
+ if (
19
+ filterValue == null ||
20
+ filterValue === '' ||
21
+ filterValue === DEFAULT_FILTER_OPTION_LABEL ||
22
+ isEmptyArray
23
+ )
24
+ return;
25
+
26
+ const field = `${filterKey}.keyword`;
27
+
28
+ if (Array.isArray(filterValue)) {
29
+ if (filterValue.length > 1) {
30
+ filters.push({
31
+ terms: { [field]: filterValue }
32
+ });
33
+ } else {
34
+ filters.push({
35
+ term: { [field]: filterValue[0] }
36
+ });
23
37
  }
24
- });
38
+ } else {
39
+ filters.push({
40
+ term: { [field]: filterValue }
41
+ });
42
+ }
25
43
  });
26
44
 
27
45
  setListFilters(filters);
@@ -52,9 +70,22 @@ const findSelectFilters = schema => {
52
70
  return [...propertySelects, ...dynamicPropertySelects];
53
71
  };
54
72
 
73
+ const findMultiSelectFilters = schema => {
74
+ if (!schema || !schema.properties) return [];
75
+
76
+ const { properties = {}, dynamicProperties = {} } = schema;
77
+ const propertyMultiSelect = Object.entries(properties).filter(isFilterMultiSelectItems);
78
+ const dynamicPropertyMultiSelect =
79
+ Object.entries(dynamicProperties).filter(isFilterMultiSelectItems);
80
+ return [...propertyMultiSelect, ...dynamicPropertyMultiSelect];
81
+ };
82
+
55
83
  const isFilterSelectItem = ([, item]) =>
56
84
  item.adminListingOptions && item.adminListingOptions.filterType === 'select';
57
85
 
86
+ const isFilterMultiSelectItems = ([, item]) =>
87
+ item.adminListingOptions && item.adminListingOptions.filterType === 'multiSelect';
88
+
58
89
  const buildQueryFields = (selectFilters, entityId) => {
59
90
  if (!Array.isArray(selectFilters) || selectFilters.length === 0) {
60
91
  return { gqlFields: '', rawQuery: '{}' };
@@ -96,4 +127,20 @@ const buildQueryFields = (selectFilters, entityId) => {
96
127
  return { gqlFields, rawQuery };
97
128
  };
98
129
 
99
- export { buildQueryFields, updateListFilters, getKeywordSearchFilters, findSelectFilters };
130
+ const getTidyLabel = (value, tidy) => {
131
+ if (!tidy) return value;
132
+
133
+ return value
134
+ .split(/[\s_-]+/)
135
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
136
+ .join(' ');
137
+ };
138
+
139
+ export {
140
+ buildQueryFields,
141
+ updateListFilters,
142
+ getKeywordSearchFilters,
143
+ findSelectFilters,
144
+ findMultiSelectFilters,
145
+ getTidyLabel
146
+ };
package/src/index.js CHANGED
@@ -14,6 +14,8 @@ import EntityManager from './components/EntityManager';
14
14
  // () => import(/* webpackChunkName: 'EntityManager' */ './components/EntityManager')
15
15
  // );
16
16
 
17
+ export { default as SearchFilter } from './components/ListingTable/SearchFilter/SearchFilter';
18
+
17
19
  export default async function load(app) {
18
20
  app.events.once('admin:menu:config:load', getAddContentMenuItems(app));
19
21
 
@@ -1,31 +1,8 @@
1
- import { gql } from '@apollo/client';
2
- import { BlazeError } from '@blaze-cms/core-errors';
3
- import upperfirst from 'lodash.upperfirst';
4
- import { getDataProperties } from '@blaze-cms/admin-ui-utils';
1
+ import { getDynamicMutation } from '@blaze-cms/admin-ui-utils';
5
2
 
6
- function buildCreateEntityMutation(entitySchema) {
7
- if (
8
- !entitySchema ||
9
- !entitySchema.actions ||
10
- !entitySchema.actions.create ||
11
- !entitySchema.properties
12
- ) {
13
- throw new BlazeError(
14
- 'Create entity query requires create action and properties from entity schema'
15
- );
16
- }
17
-
18
- const actionInput = upperfirst(`${entitySchema.actions.create}Input`);
19
- const dataProperties = getDataProperties(entitySchema);
20
-
21
- return gql`mutation createEntity($input: ${actionInput}) {
22
- createdEntity: ${entitySchema.actions.create}(input: $input){
23
- result {
24
- id,
25
- ${dataProperties.join(',\n')}
26
- }
27
- }
28
- }`;
29
- }
3
+ // Kept for back-compat: the builder now lives in the admin-ui-utils dynamic
4
+ // mutation registry so packages that cannot depend on this plugin can use it.
5
+ const buildCreateEntityMutation = entitySchema =>
6
+ getDynamicMutation('CREATE_ENTITY_MUTATION')(entitySchema);
30
7
 
31
8
  export default buildCreateEntityMutation;
@@ -1,19 +1,31 @@
1
1
  const getDefaultQueryParams = schema => {
2
2
  const updated = schema.properties && schema.properties.updated;
3
- const { adminDefaultListingFilter: where } = schema.displayProperties || {};
3
+ const { adminDefaultListingFilter: where, adminListings: { defaultSort } = {} } =
4
+ schema.displayProperties || {};
5
+
6
+ let sort = [];
7
+
8
+ if (defaultSort?.property) {
9
+ sort = [
10
+ {
11
+ property: defaultSort.property,
12
+ direction: defaultSort.direction || 'asc'
13
+ }
14
+ ];
15
+ } else if (updated) {
16
+ sort = [
17
+ {
18
+ property: 'updated',
19
+ direction: 'desc'
20
+ }
21
+ ];
22
+ }
4
23
 
5
24
  return {
6
25
  where,
7
26
  limit: 10,
8
27
  offset: 0,
9
- sort: updated
10
- ? [
11
- {
12
- property: 'updated',
13
- direction: 'desc'
14
- }
15
- ]
16
- : []
28
+ sort
17
29
  };
18
30
  };
19
31