@wix/auto-patterns 1.14.0 → 1.16.0

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 (203) hide show
  1. package/dist/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +17 -6
  2. package/dist/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
  3. package/dist/cjs/components/AutoPatternsCollectionPageContent/SkeletonCollection.js +34 -0
  4. package/dist/cjs/components/AutoPatternsCollectionPageContent/SkeletonCollection.js.map +1 -0
  5. package/dist/cjs/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js +1 -0
  6. package/dist/cjs/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js.map +1 -1
  7. package/dist/cjs/components/AutoPatternsEntityPage/SkeletonEntity.js +198 -0
  8. package/dist/cjs/components/AutoPatternsEntityPage/SkeletonEntity.js.map +1 -0
  9. package/dist/cjs/components/AutoPatternsRoute/AutoPatternsPage.js +14 -5
  10. package/dist/cjs/components/AutoPatternsRoute/AutoPatternsPage.js.map +1 -1
  11. package/dist/cjs/components/filters/DynamicCollectionFilter.js +5 -11
  12. package/dist/cjs/components/filters/DynamicCollectionFilter.js.map +1 -1
  13. package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js +51 -88
  14. package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
  15. package/dist/cjs/dataSourceAdapters/cms/fetchCmsData.js +43 -0
  16. package/dist/cjs/dataSourceAdapters/cms/fetchCmsData.js.map +1 -0
  17. package/dist/cjs/dataSourceAdapters/cms/filterUtils.js +15 -15
  18. package/dist/cjs/dataSourceAdapters/cms/filterUtils.js.map +1 -1
  19. package/dist/cjs/dataSourceAdapters/cms/sortUtils.js +2 -2
  20. package/dist/cjs/dataSourceAdapters/cms/sortUtils.js.map +1 -1
  21. package/dist/cjs/dataSourceAdapters/factory.js +0 -20
  22. package/dist/cjs/dataSourceAdapters/factory.js.map +1 -1
  23. package/dist/cjs/hooks/useActionCell.js +0 -6
  24. package/dist/cjs/hooks/useActionCell.js.map +1 -1
  25. package/dist/cjs/hooks/useBaseTableFeatures.js +7 -2
  26. package/dist/cjs/hooks/useBaseTableFeatures.js.map +1 -1
  27. package/dist/cjs/hooks/useBulkActionToolbar.js +1 -7
  28. package/dist/cjs/hooks/useBulkActionToolbar.js.map +1 -1
  29. package/dist/cjs/hooks/useCollectionPageActions.js +2 -8
  30. package/dist/cjs/hooks/useCollectionPageActions.js.map +1 -1
  31. package/dist/cjs/hooks/useCollectionPageOnRowClickActions.js +49 -0
  32. package/dist/cjs/hooks/useCollectionPageOnRowClickActions.js.map +1 -0
  33. package/dist/cjs/hooks/useFetchData.js +9 -29
  34. package/dist/cjs/hooks/useFetchData.js.map +1 -1
  35. package/dist/cjs/hooks/useFilters.js +2 -2
  36. package/dist/cjs/hooks/useFilters.js.map +1 -1
  37. package/dist/cjs/hooks/useGridFeatures.js +3 -4
  38. package/dist/cjs/hooks/useGridFeatures.js.map +1 -1
  39. package/dist/cjs/hooks/useTableFeatures.js +3 -4
  40. package/dist/cjs/hooks/useTableFeatures.js.map +1 -1
  41. package/dist/cjs/hooks/useTableGridSwitchFeatures.js +3 -4
  42. package/dist/cjs/hooks/useTableGridSwitchFeatures.js.map +1 -1
  43. package/dist/cjs/providers/PatternsWizardOverridesContext.js +1 -1
  44. package/dist/cjs/providers/PatternsWizardOverridesContext.js.map +1 -1
  45. package/dist/cjs/providers/SchemaContext.js +32 -8
  46. package/dist/cjs/providers/SchemaContext.js.map +1 -1
  47. package/dist/cjs/types/CollectionPageConfig.js.map +1 -1
  48. package/dist/cjs/types/EntityPageConfig.js.map +1 -1
  49. package/dist/cjs/types/actions/actionCell.js.map +1 -1
  50. package/dist/cjs/types/actions/base.js.map +1 -1
  51. package/dist/cjs/types/actions/bulkActions.js.map +1 -1
  52. package/dist/cjs/types/actions/collectionPageActions.js.map +1 -1
  53. package/dist/cjs/types/index.js +6 -0
  54. package/dist/cjs/types/index.js.map +1 -1
  55. package/dist/cjs/types/providers.js +4 -0
  56. package/dist/cjs/types/providers.js.map +1 -0
  57. package/dist/cjs/types/types.js.map +1 -1
  58. package/dist/cjs/utils/actions/index.js +0 -6
  59. package/dist/cjs/utils/actions/index.js.map +1 -1
  60. package/dist/cjs/utils/actions/types.js.map +1 -1
  61. package/dist/docs/action_cell.md +214 -0
  62. package/dist/docs/app_config_structure.md +355 -0
  63. package/dist/docs/auto-patterns-guide.md +2447 -0
  64. package/dist/docs/bulk_actions.md +266 -0
  65. package/dist/docs/collection_page.md +54 -0
  66. package/dist/docs/collection_page_actions.md +343 -0
  67. package/dist/docs/custom_overrides.md +511 -0
  68. package/dist/docs/entity_page.md +104 -0
  69. package/dist/docs/entity_page_actions.md +92 -0
  70. package/dist/docs/index.md +76 -0
  71. package/dist/docs/installation.md +55 -0
  72. package/dist/docs/introduction.md +74 -0
  73. package/dist/docs/pages_configuration.md +129 -0
  74. package/dist/docs/recipe-bulk-operations.md +1352 -0
  75. package/dist/docs/recipe-crud-operations.md +786 -0
  76. package/dist/docs/recipe-customization.md +1702 -0
  77. package/dist/docs/recipe-first-dashboard.md +794 -0
  78. package/dist/docs/sdk_and_schema.md +215 -0
  79. package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +7 -2
  80. package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
  81. package/dist/esm/components/AutoPatternsCollectionPageContent/SkeletonCollection.js +21 -0
  82. package/dist/esm/components/AutoPatternsCollectionPageContent/SkeletonCollection.js.map +1 -0
  83. package/dist/esm/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js +3 -1
  84. package/dist/esm/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js.map +1 -1
  85. package/dist/esm/components/AutoPatternsEntityPage/SkeletonEntity.js +91 -0
  86. package/dist/esm/components/AutoPatternsEntityPage/SkeletonEntity.js.map +1 -0
  87. package/dist/esm/components/AutoPatternsRoute/AutoPatternsPage.js +5 -2
  88. package/dist/esm/components/AutoPatternsRoute/AutoPatternsPage.js.map +1 -1
  89. package/dist/esm/components/filters/DynamicCollectionFilter.js +4 -10
  90. package/dist/esm/components/filters/DynamicCollectionFilter.js.map +1 -1
  91. package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js +54 -88
  92. package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
  93. package/dist/esm/dataSourceAdapters/cms/fetchCmsData.js +42 -0
  94. package/dist/esm/dataSourceAdapters/cms/fetchCmsData.js.map +1 -0
  95. package/dist/esm/dataSourceAdapters/cms/filterUtils.js +15 -15
  96. package/dist/esm/dataSourceAdapters/cms/filterUtils.js.map +1 -1
  97. package/dist/esm/dataSourceAdapters/cms/sortUtils.js +2 -2
  98. package/dist/esm/dataSourceAdapters/cms/sortUtils.js.map +1 -1
  99. package/dist/esm/dataSourceAdapters/factory.js +1 -21
  100. package/dist/esm/dataSourceAdapters/factory.js.map +1 -1
  101. package/dist/esm/hooks/useActionCell.js +1 -7
  102. package/dist/esm/hooks/useActionCell.js.map +1 -1
  103. package/dist/esm/hooks/useBaseTableFeatures.js +6 -1
  104. package/dist/esm/hooks/useBaseTableFeatures.js.map +1 -1
  105. package/dist/esm/hooks/useBulkActionToolbar.js +1 -7
  106. package/dist/esm/hooks/useBulkActionToolbar.js.map +1 -1
  107. package/dist/esm/hooks/useCollectionPageActions.js +1 -7
  108. package/dist/esm/hooks/useCollectionPageActions.js.map +1 -1
  109. package/dist/esm/hooks/useCollectionPageOnRowClickActions.js +45 -0
  110. package/dist/esm/hooks/useCollectionPageOnRowClickActions.js.map +1 -0
  111. package/dist/esm/hooks/useFetchData.js +9 -29
  112. package/dist/esm/hooks/useFetchData.js.map +1 -1
  113. package/dist/esm/hooks/useFilters.js +2 -2
  114. package/dist/esm/hooks/useFilters.js.map +1 -1
  115. package/dist/esm/hooks/useGridFeatures.js +3 -4
  116. package/dist/esm/hooks/useGridFeatures.js.map +1 -1
  117. package/dist/esm/hooks/useTableFeatures.js +3 -4
  118. package/dist/esm/hooks/useTableFeatures.js.map +1 -1
  119. package/dist/esm/hooks/useTableGridSwitchFeatures.js +3 -4
  120. package/dist/esm/hooks/useTableGridSwitchFeatures.js.map +1 -1
  121. package/dist/esm/providers/PatternsWizardOverridesContext.js.map +1 -1
  122. package/dist/esm/providers/SchemaContext.js +31 -7
  123. package/dist/esm/providers/SchemaContext.js.map +1 -1
  124. package/dist/esm/types/CollectionPageConfig.js.map +1 -1
  125. package/dist/esm/types/EntityPageConfig.js.map +1 -1
  126. package/dist/esm/types/actions/actionCell.js.map +1 -1
  127. package/dist/esm/types/actions/base.js.map +1 -1
  128. package/dist/esm/types/actions/bulkActions.js.map +1 -1
  129. package/dist/esm/types/actions/collectionPageActions.js.map +1 -1
  130. package/dist/esm/types/index.js +1 -0
  131. package/dist/esm/types/index.js.map +1 -1
  132. package/dist/esm/types/providers.js +2 -0
  133. package/dist/esm/types/providers.js.map +1 -0
  134. package/dist/esm/types/types.js.map +1 -1
  135. package/dist/esm/utils/actions/index.js +0 -2
  136. package/dist/esm/utils/actions/index.js.map +1 -1
  137. package/dist/esm/utils/actions/types.js.map +1 -1
  138. package/dist/types/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.d.ts.map +1 -1
  139. package/dist/types/components/AutoPatternsCollectionPageContent/SkeletonCollection.d.ts +5 -0
  140. package/dist/types/components/AutoPatternsCollectionPageContent/SkeletonCollection.d.ts.map +1 -0
  141. package/dist/types/components/AutoPatternsEntityPage/SkeletonEntity.d.ts +7 -0
  142. package/dist/types/components/AutoPatternsEntityPage/SkeletonEntity.d.ts.map +1 -0
  143. package/dist/types/components/AutoPatternsRoute/AutoPatternsPage.d.ts.map +1 -1
  144. package/dist/types/components/filters/DynamicCollectionFilter.d.ts.map +1 -1
  145. package/dist/types/dataSourceAdapters/cms/cmsAdapter.d.ts +1 -10
  146. package/dist/types/dataSourceAdapters/cms/cmsAdapter.d.ts.map +1 -1
  147. package/dist/types/dataSourceAdapters/cms/fetchCmsData.d.ts +13 -0
  148. package/dist/types/dataSourceAdapters/cms/fetchCmsData.d.ts.map +1 -0
  149. package/dist/types/dataSourceAdapters/cms/filterUtils.d.ts +9 -7
  150. package/dist/types/dataSourceAdapters/cms/filterUtils.d.ts.map +1 -1
  151. package/dist/types/dataSourceAdapters/cms/sortUtils.d.ts +2 -2
  152. package/dist/types/dataSourceAdapters/cms/sortUtils.d.ts.map +1 -1
  153. package/dist/types/dataSourceAdapters/factory.d.ts +1 -11
  154. package/dist/types/dataSourceAdapters/factory.d.ts.map +1 -1
  155. package/dist/types/hooks/useActionCell.d.ts.map +1 -1
  156. package/dist/types/hooks/useBaseTableFeatures.d.ts +1 -1
  157. package/dist/types/hooks/useBaseTableFeatures.d.ts.map +1 -1
  158. package/dist/types/hooks/useBulkActionToolbar.d.ts.map +1 -1
  159. package/dist/types/hooks/useCollectionPageActions.d.ts.map +1 -1
  160. package/dist/types/hooks/useCollectionPageOnRowClickActions.d.ts +7 -0
  161. package/dist/types/hooks/useCollectionPageOnRowClickActions.d.ts.map +1 -0
  162. package/dist/types/hooks/useEntityPageHeaderTexts.d.ts.map +1 -1
  163. package/dist/types/hooks/useFetchData.d.ts +13 -7
  164. package/dist/types/hooks/useFetchData.d.ts.map +1 -1
  165. package/dist/types/hooks/useFilters.d.ts +1 -1
  166. package/dist/types/hooks/useGridFeatures.d.ts.map +1 -1
  167. package/dist/types/hooks/useTableFeatures.d.ts +1 -1
  168. package/dist/types/hooks/useTableFeatures.d.ts.map +1 -1
  169. package/dist/types/hooks/useTableGridSwitchFeatures.d.ts +1 -1
  170. package/dist/types/hooks/useTableGridSwitchFeatures.d.ts.map +1 -1
  171. package/dist/types/providers/PatternsWizardOverridesContext.d.ts +4 -5
  172. package/dist/types/providers/PatternsWizardOverridesContext.d.ts.map +1 -1
  173. package/dist/types/providers/SchemaContext.d.ts +4 -4
  174. package/dist/types/providers/SchemaContext.d.ts.map +1 -1
  175. package/dist/types/types/CollectionPageConfig.d.ts +4 -8
  176. package/dist/types/types/CollectionPageConfig.d.ts.map +1 -1
  177. package/dist/types/types/EntityPageConfig.d.ts +3 -4
  178. package/dist/types/types/EntityPageConfig.d.ts.map +1 -1
  179. package/dist/types/types/actions/actionCell.d.ts +2 -2
  180. package/dist/types/types/actions/actionCell.d.ts.map +1 -1
  181. package/dist/types/types/actions/base.d.ts +0 -7
  182. package/dist/types/types/actions/base.d.ts.map +1 -1
  183. package/dist/types/types/actions/bulkActions.d.ts +2 -2
  184. package/dist/types/types/actions/bulkActions.d.ts.map +1 -1
  185. package/dist/types/types/actions/collectionPageActions.d.ts +10 -2
  186. package/dist/types/types/actions/collectionPageActions.d.ts.map +1 -1
  187. package/dist/types/types/index.d.ts +1 -0
  188. package/dist/types/types/index.d.ts.map +1 -1
  189. package/dist/types/types/providers.d.ts +11 -0
  190. package/dist/types/types/providers.d.ts.map +1 -0
  191. package/dist/types/types/types.d.ts +25 -1
  192. package/dist/types/types/types.d.ts.map +1 -1
  193. package/dist/types/utils/actions/index.d.ts +0 -2
  194. package/dist/types/utils/actions/index.d.ts.map +1 -1
  195. package/dist/types/utils/actions/types.d.ts +1 -4
  196. package/dist/types/utils/actions/types.d.ts.map +1 -1
  197. package/package.json +21 -16
  198. package/dist/cjs/utils/actions/customModalAction.js +0 -22
  199. package/dist/cjs/utils/actions/customModalAction.js.map +0 -1
  200. package/dist/esm/utils/actions/customModalAction.js +0 -17
  201. package/dist/esm/utils/actions/customModalAction.js.map +0 -1
  202. package/dist/types/utils/actions/customModalAction.d.ts +0 -5
  203. package/dist/types/utils/actions/customModalAction.d.ts.map +0 -1
@@ -1,6 +1,5 @@
1
1
  import { collections, items } from '@wix/data';
2
- import { addFiltersToDataQuery, addSearchToDataQuery } from './filterUtils';
3
- import { addSortToDataQuery } from './sortUtils';
2
+ import { fetchCmsData } from './fetchCmsData';
4
3
  export const CmsFieldTypeToPatternsFieldType = {
5
4
  [collections.Type.TEXT]: 'SHORT_TEXT',
6
5
  [collections.Type.DATE]: 'DATE',
@@ -20,55 +19,56 @@ export const CmsFieldTypeToPatternsFieldType = {
20
19
  export async function fetchCmsSchema(collectionId) {
21
20
  var _schema$fields$find;
22
21
  const schema = await collections.getDataCollection(collectionId);
23
- return {
22
+ const transformedFields = schema.fields.reduce((acc, field) => {
23
+ var _field$capabilities, _field$capabilities2, _field$typeMetadata;
24
+ if (!field.key) {
25
+ return acc;
26
+ }
27
+ const fieldType = field.type ? CmsFieldTypeToPatternsFieldType[field.type] || 'SHORT_TEXT' : 'SHORT_TEXT';
28
+ const baseField = {
29
+ id: field.key,
30
+ displayName: field.displayName || '',
31
+ validation: {
32
+ numberRange: field.numberRange ? {
33
+ min: field.numberRange.min ?? undefined,
34
+ max: field.numberRange.max ?? undefined
35
+ } : undefined,
36
+ stringLengthRange: field.stringLengthRange ? {
37
+ minLength: field.stringLengthRange.minLength ?? undefined,
38
+ maxLength: field.stringLengthRange.maxLength ?? undefined
39
+ } : undefined,
40
+ required: field.required ?? false
41
+ },
42
+ capabilities: {
43
+ supportedQueryOperators: ((_field$capabilities = field.capabilities) == null ? void 0 : _field$capabilities.queryOperators) || [],
44
+ sortable: ((_field$capabilities2 = field.capabilities) == null ? void 0 : _field$capabilities2.sortable) || false
45
+ }
46
+ };
47
+ if (fieldType === 'REFERENCE' && (_field$typeMetadata = field.typeMetadata) != null && (_field$typeMetadata = _field$typeMetadata.reference) != null && _field$typeMetadata.referencedCollectionId) {
48
+ const referenceField = {
49
+ ...baseField,
50
+ type: 'REFERENCE',
51
+ referenceMetadata: {
52
+ referencedCollectionId: field.typeMetadata.reference.referencedCollectionId
53
+ }
54
+ };
55
+ acc[field.key] = referenceField;
56
+ } else {
57
+ const nonReferenceType = fieldType === 'REFERENCE' ? 'SHORT_TEXT' : fieldType;
58
+ const nonReferenceField = {
59
+ ...baseField,
60
+ type: nonReferenceType
61
+ };
62
+ acc[field.key] = nonReferenceField;
63
+ }
64
+ return acc;
65
+ }, {});
66
+ const schemaConfig = {
24
67
  id: collectionId,
25
68
  displayField: schema.displayField ?? '_id',
26
69
  idField: '_id',
27
70
  imageField: (_schema$fields$find = schema.fields.find(field => field.type === 'IMAGE')) == null ? void 0 : _schema$fields$find.key,
28
- fields: schema.fields.reduce((acc, field) => {
29
- var _field$capabilities, _field$capabilities2, _field$typeMetadata;
30
- if (!field.key) {
31
- return acc;
32
- }
33
- const fieldType = field.type ? CmsFieldTypeToPatternsFieldType[field.type] || 'SHORT_TEXT' : 'SHORT_TEXT';
34
- const baseField = {
35
- id: field.key,
36
- displayName: field.displayName || '',
37
- validation: {
38
- numberRange: field.numberRange ? {
39
- min: field.numberRange.min ?? undefined,
40
- max: field.numberRange.max ?? undefined
41
- } : undefined,
42
- stringLengthRange: field.stringLengthRange ? {
43
- minLength: field.stringLengthRange.minLength ?? undefined,
44
- maxLength: field.stringLengthRange.maxLength ?? undefined
45
- } : undefined,
46
- required: field.required ?? false
47
- },
48
- capabilities: {
49
- supportedQueryOperators: ((_field$capabilities = field.capabilities) == null ? void 0 : _field$capabilities.queryOperators) || [],
50
- sortable: ((_field$capabilities2 = field.capabilities) == null ? void 0 : _field$capabilities2.sortable) || false
51
- }
52
- };
53
- if (fieldType === 'REFERENCE' && (_field$typeMetadata = field.typeMetadata) != null && (_field$typeMetadata = _field$typeMetadata.reference) != null && _field$typeMetadata.referencedCollectionId) {
54
- const referenceField = {
55
- ...baseField,
56
- type: 'REFERENCE',
57
- referenceMetadata: {
58
- referencedCollectionId: field.typeMetadata.reference.referencedCollectionId
59
- }
60
- };
61
- acc[field.key] = referenceField;
62
- } else {
63
- const nonReferenceType = fieldType === 'REFERENCE' ? 'SHORT_TEXT' : fieldType;
64
- const nonReferenceField = {
65
- ...baseField,
66
- type: nonReferenceType
67
- };
68
- acc[field.key] = nonReferenceField;
69
- }
70
- return acc;
71
- }, {}),
71
+ fields: transformedFields,
72
72
  actions: {
73
73
  get: entityId => {
74
74
  return items.get(collectionId, entityId);
@@ -84,49 +84,15 @@ export async function fetchCmsSchema(collectionId) {
84
84
  },
85
85
  bulkDelete: entityIds => {
86
86
  return items.bulkRemove(collectionId, entityIds);
87
+ },
88
+ find: async function (query, options) {
89
+ if (options === void 0) {
90
+ options = {};
91
+ }
92
+ return fetchCmsData(collectionId, query, transformedFields, options);
87
93
  }
88
94
  }
89
95
  };
90
- }
91
- export function createCmsDataProvider(_ref) {
92
- let {
93
- collectionId,
94
- schema,
95
- visibleFieldIds,
96
- filtersMapping
97
- } = _ref;
98
- return {
99
- fetchData: async query => {
100
- let dataQuery = items.query(collectionId);
101
- dataQuery = addSearchToDataQuery({
102
- dataQuery,
103
- query,
104
- schema,
105
- visibleFieldIds
106
- });
107
- dataQuery = addFiltersToDataQuery({
108
- dataQuery,
109
- query,
110
- schema,
111
- filtersMapping
112
- });
113
- dataQuery = addSortToDataQuery({
114
- dataQuery,
115
- query,
116
- schema
117
- });
118
- const referenceFieldIds = Object.values(schema.fields).filter(field => !!field && field.type === 'REFERENCE' && visibleFieldIds.includes(field.id)).map(field => field.id);
119
- if (referenceFieldIds.length > 0) {
120
- dataQuery = dataQuery.include(...referenceFieldIds);
121
- }
122
- const res = await dataQuery.skip(query.offset).limit(query.limit).find({
123
- returnTotalCount: true
124
- });
125
- return {
126
- items: res.items,
127
- total: res.totalCount ?? 0
128
- };
129
- }
130
- };
96
+ return schemaConfig;
131
97
  }
132
98
  //# sourceMappingURL=cmsAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["collections","items","addFiltersToDataQuery","addSearchToDataQuery","addSortToDataQuery","CmsFieldTypeToPatternsFieldType","Type","TEXT","DATE","DATETIME","NUMBER","BOOLEAN","URL","ADDRESS","OBJECT","RICH_TEXT","RICH_CONTENT","ARRAY","ARRAY_STRING","REFERENCE","IMAGE","fetchCmsSchema","collectionId","_schema$fields$find","schema","getDataCollection","id","displayField","idField","imageField","fields","find","field","type","key","reduce","acc","_field$capabilities","_field$capabilities2","_field$typeMetadata","fieldType","baseField","displayName","validation","numberRange","min","undefined","max","stringLengthRange","minLength","maxLength","required","capabilities","supportedQueryOperators","queryOperators","sortable","typeMetadata","reference","referencedCollectionId","referenceField","referenceMetadata","nonReferenceType","nonReferenceField","actions","get","entityId","create","entity","insert","update","delete","remove","bulkDelete","entityIds","bulkRemove","createCmsDataProvider","_ref","visibleFieldIds","filtersMapping","fetchData","query","dataQuery","referenceFieldIds","Object","values","filter","includes","map","length","include","res","skip","offset","limit","returnTotalCount","total","totalCount"],"sources":["../../../../src/dataSourceAdapters/cms/cmsAdapter.ts"],"sourcesContent":["import { Field, SchemaConfig, PatternsFieldType, Filter } from '../../types';\nimport { collections, items } from '@wix/data';\nimport { ComputedQuery, CollectionConfig } from '@wix/patterns';\nimport { addFiltersToDataQuery, addSearchToDataQuery } from './filterUtils';\nimport { addSortToDataQuery } from './sortUtils';\n\nexport const CmsFieldTypeToPatternsFieldType: Partial<\n Record<collections.Type, PatternsFieldType>\n> = {\n [collections.Type.TEXT]: 'SHORT_TEXT',\n [collections.Type.DATE]: 'DATE',\n [collections.Type.DATETIME]: 'DATETIME',\n [collections.Type.NUMBER]: 'NUMBER',\n [collections.Type.BOOLEAN]: 'BOOLEAN',\n [collections.Type.URL]: 'URL',\n [collections.Type.ADDRESS]: 'SHORT_TEXT',\n [collections.Type.OBJECT]: 'LONG_TEXT',\n [collections.Type.RICH_TEXT]: 'LONG_TEXT',\n [collections.Type.RICH_CONTENT]: 'SHORT_TEXT',\n [collections.Type.ARRAY]: 'ARRAY',\n [collections.Type.ARRAY_STRING]: 'ARRAY',\n [collections.Type.REFERENCE]: 'REFERENCE',\n [collections.Type.IMAGE]: 'IMAGE',\n};\n\nexport async function fetchCmsSchema(\n collectionId: string,\n): Promise<SchemaConfig> {\n const schema = await collections.getDataCollection(collectionId);\n\n return {\n id: collectionId,\n displayField: schema.displayField ?? '_id',\n idField: '_id',\n imageField: schema.fields.find((field) => field.type === 'IMAGE')?.key,\n fields: schema.fields.reduce<Record<string, Field>>((acc, field) => {\n if (!field.key) {\n return acc;\n }\n\n const fieldType = field.type\n ? CmsFieldTypeToPatternsFieldType[field.type] || 'SHORT_TEXT'\n : 'SHORT_TEXT';\n const baseField = {\n id: field.key,\n displayName: field.displayName || '',\n validation: {\n numberRange: field.numberRange\n ? {\n min: field.numberRange.min ?? undefined,\n max: field.numberRange.max ?? undefined,\n }\n : undefined,\n stringLengthRange: field.stringLengthRange\n ? {\n minLength: field.stringLengthRange.minLength ?? undefined,\n maxLength: field.stringLengthRange.maxLength ?? undefined,\n }\n : undefined,\n required: field.required ?? false,\n },\n capabilities: {\n supportedQueryOperators: field.capabilities?.queryOperators || [],\n sortable: field.capabilities?.sortable || false,\n },\n };\n\n if (\n fieldType === 'REFERENCE' &&\n field.typeMetadata?.reference?.referencedCollectionId\n ) {\n const referenceField: Field = {\n ...baseField,\n type: 'REFERENCE',\n referenceMetadata: {\n referencedCollectionId:\n field.typeMetadata.reference.referencedCollectionId,\n },\n };\n acc[field.key] = referenceField;\n } else {\n const nonReferenceType =\n fieldType === 'REFERENCE' ? 'SHORT_TEXT' : fieldType;\n const nonReferenceField: Field = {\n ...baseField,\n type: nonReferenceType,\n };\n acc[field.key] = nonReferenceField;\n }\n\n return acc;\n }, {}),\n actions: {\n get: (entityId: string) => {\n return items.get(collectionId, entityId);\n },\n create: (entity) => {\n return items.insert(collectionId, entity);\n },\n update: (entity) => {\n return items.update(collectionId, entity);\n },\n delete: (entityId) => {\n return items.remove(collectionId, entityId);\n },\n bulkDelete: (entityIds) => {\n return items.bulkRemove(collectionId, entityIds);\n },\n },\n };\n}\n\nexport function createCmsDataProvider({\n collectionId,\n schema,\n visibleFieldIds,\n filtersMapping,\n}: {\n collectionId: string;\n schema: SchemaConfig;\n visibleFieldIds: string[];\n filtersMapping?: Record<string, Filter>;\n}): { fetchData: CollectionConfig<any, any>['fetchData'] } {\n return {\n fetchData: async (query: ComputedQuery<any>) => {\n let dataQuery = items.query(collectionId);\n dataQuery = addSearchToDataQuery({\n dataQuery,\n query,\n schema,\n visibleFieldIds,\n });\n dataQuery = addFiltersToDataQuery({\n dataQuery,\n query,\n schema,\n filtersMapping,\n });\n dataQuery = addSortToDataQuery({\n dataQuery,\n query,\n schema,\n });\n\n const referenceFieldIds = Object.values(schema.fields)\n .filter(\n (field): field is Field =>\n !!field &&\n field.type === 'REFERENCE' &&\n visibleFieldIds.includes(field.id),\n )\n .map((field) => field.id);\n\n if (referenceFieldIds.length > 0) {\n dataQuery = dataQuery.include(...referenceFieldIds);\n }\n\n const res = await dataQuery\n .skip(query.offset)\n .limit(query.limit)\n .find({ returnTotalCount: true });\n\n return {\n items: res.items,\n total: res.totalCount ?? 0,\n };\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["collections","items","fetchCmsData","CmsFieldTypeToPatternsFieldType","Type","TEXT","DATE","DATETIME","NUMBER","BOOLEAN","URL","ADDRESS","OBJECT","RICH_TEXT","RICH_CONTENT","ARRAY","ARRAY_STRING","REFERENCE","IMAGE","fetchCmsSchema","collectionId","_schema$fields$find","schema","getDataCollection","transformedFields","fields","reduce","acc","field","_field$capabilities","_field$capabilities2","_field$typeMetadata","key","fieldType","type","baseField","id","displayName","validation","numberRange","min","undefined","max","stringLengthRange","minLength","maxLength","required","capabilities","supportedQueryOperators","queryOperators","sortable","typeMetadata","reference","referencedCollectionId","referenceField","referenceMetadata","nonReferenceType","nonReferenceField","schemaConfig","displayField","idField","imageField","find","actions","get","entityId","create","entity","insert","update","delete","remove","bulkDelete","entityIds","bulkRemove","query","options"],"sources":["../../../../src/dataSourceAdapters/cms/cmsAdapter.ts"],"sourcesContent":["import { Field, SchemaConfig, PatternsFieldType } from '../../types';\nimport { ComputedQuery } from '@wix/patterns';\nimport { collections, items } from '@wix/data';\nimport { fetchCmsData } from './fetchCmsData';\n\nexport const CmsFieldTypeToPatternsFieldType: Partial<\n Record<collections.Type, PatternsFieldType>\n> = {\n [collections.Type.TEXT]: 'SHORT_TEXT',\n [collections.Type.DATE]: 'DATE',\n [collections.Type.DATETIME]: 'DATETIME',\n [collections.Type.NUMBER]: 'NUMBER',\n [collections.Type.BOOLEAN]: 'BOOLEAN',\n [collections.Type.URL]: 'URL',\n [collections.Type.ADDRESS]: 'SHORT_TEXT',\n [collections.Type.OBJECT]: 'LONG_TEXT',\n [collections.Type.RICH_TEXT]: 'LONG_TEXT',\n [collections.Type.RICH_CONTENT]: 'SHORT_TEXT',\n [collections.Type.ARRAY]: 'ARRAY',\n [collections.Type.ARRAY_STRING]: 'ARRAY',\n [collections.Type.REFERENCE]: 'REFERENCE',\n [collections.Type.IMAGE]: 'IMAGE',\n};\n\nexport async function fetchCmsSchema(\n collectionId: string,\n): Promise<SchemaConfig> {\n const schema = await collections.getDataCollection(collectionId);\n\n const transformedFields = schema.fields.reduce<Record<string, Field>>(\n (acc, field) => {\n if (!field.key) {\n return acc;\n }\n\n const fieldType = field.type\n ? CmsFieldTypeToPatternsFieldType[field.type] || 'SHORT_TEXT'\n : 'SHORT_TEXT';\n const baseField = {\n id: field.key,\n displayName: field.displayName || '',\n validation: {\n numberRange: field.numberRange\n ? {\n min: field.numberRange.min ?? undefined,\n max: field.numberRange.max ?? undefined,\n }\n : undefined,\n stringLengthRange: field.stringLengthRange\n ? {\n minLength: field.stringLengthRange.minLength ?? undefined,\n maxLength: field.stringLengthRange.maxLength ?? undefined,\n }\n : undefined,\n required: field.required ?? false,\n },\n capabilities: {\n supportedQueryOperators: field.capabilities?.queryOperators || [],\n sortable: field.capabilities?.sortable || false,\n },\n };\n\n if (\n fieldType === 'REFERENCE' &&\n field.typeMetadata?.reference?.referencedCollectionId\n ) {\n const referenceField: Field = {\n ...baseField,\n type: 'REFERENCE',\n referenceMetadata: {\n referencedCollectionId:\n field.typeMetadata.reference.referencedCollectionId,\n },\n };\n acc[field.key] = referenceField;\n } else {\n const nonReferenceType =\n fieldType === 'REFERENCE' ? 'SHORT_TEXT' : fieldType;\n const nonReferenceField: Field = {\n ...baseField,\n type: nonReferenceType,\n };\n acc[field.key] = nonReferenceField;\n }\n\n return acc;\n },\n {},\n );\n\n const schemaConfig: SchemaConfig = {\n id: collectionId,\n displayField: schema.displayField ?? '_id',\n idField: '_id',\n imageField: schema.fields.find((field) => field.type === 'IMAGE')?.key,\n fields: transformedFields,\n actions: {\n get: (entityId: string) => {\n return items.get(collectionId, entityId);\n },\n create: (entity) => {\n return items.insert(collectionId, entity);\n },\n update: (entity) => {\n return items.update(collectionId, entity);\n },\n delete: (entityId) => {\n return items.remove(collectionId, entityId);\n },\n bulkDelete: (entityIds) => {\n return items.bulkRemove(collectionId, entityIds);\n },\n find: async (\n query: ComputedQuery<any>,\n options: {\n searchableFieldIds?: string[];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n } = {},\n ) => {\n return fetchCmsData(collectionId, query, transformedFields, options);\n },\n },\n };\n\n return schemaConfig;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ import { items } from '@wix/data';
2
+ import { addFiltersToDataQuery, addSearchToDataQuery } from './filterUtils';
3
+ import { addSortToDataQuery } from './sortUtils';
4
+ export async function fetchCmsData(collectionId, query, fields, options) {
5
+ if (options === void 0) {
6
+ options = {};
7
+ }
8
+ const {
9
+ searchableFieldIds = [],
10
+ filterFieldMapping
11
+ } = options;
12
+ let dataQuery = items.query(collectionId);
13
+ dataQuery = addSearchToDataQuery({
14
+ dataQuery,
15
+ query,
16
+ fields,
17
+ searchableFieldIds
18
+ });
19
+ dataQuery = addFiltersToDataQuery({
20
+ dataQuery,
21
+ query,
22
+ fields,
23
+ filterFieldMapping
24
+ });
25
+ dataQuery = addSortToDataQuery({
26
+ dataQuery,
27
+ query,
28
+ fields
29
+ });
30
+ const referenceFieldIds = Object.values(fields).filter(field => !!field && field.type === 'REFERENCE' && searchableFieldIds.includes(field.id)).map(field => field.id);
31
+ if (referenceFieldIds.length > 0) {
32
+ dataQuery = dataQuery.include(...referenceFieldIds);
33
+ }
34
+ const res = await dataQuery.skip(query.offset).limit(query.limit).find({
35
+ returnTotalCount: true
36
+ });
37
+ return {
38
+ items: res.items,
39
+ total: res.totalCount ?? 0
40
+ };
41
+ }
42
+ //# sourceMappingURL=fetchCmsData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["items","addFiltersToDataQuery","addSearchToDataQuery","addSortToDataQuery","fetchCmsData","collectionId","query","fields","options","searchableFieldIds","filterFieldMapping","dataQuery","referenceFieldIds","Object","values","filter","field","type","includes","id","map","length","include","res","skip","offset","limit","find","returnTotalCount","total","totalCount"],"sources":["../../../../src/dataSourceAdapters/cms/fetchCmsData.ts"],"sourcesContent":["import { ComputedQuery } from '@wix/patterns';\nimport { items } from '@wix/data';\nimport { Field } from '../../types';\nimport { addFiltersToDataQuery, addSearchToDataQuery } from './filterUtils';\nimport { addSortToDataQuery } from './sortUtils';\n\nexport async function fetchCmsData(\n collectionId: string,\n query: ComputedQuery<any>,\n fields: Record<string, Field | undefined>,\n options: {\n searchableFieldIds?: string[];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n } = {},\n) {\n const { searchableFieldIds = [], filterFieldMapping } = options;\n\n let dataQuery = items.query(collectionId);\n dataQuery = addSearchToDataQuery({\n dataQuery,\n query,\n fields,\n searchableFieldIds,\n });\n dataQuery = addFiltersToDataQuery({\n dataQuery,\n query,\n fields,\n filterFieldMapping,\n });\n dataQuery = addSortToDataQuery({\n dataQuery,\n query,\n fields,\n });\n\n const referenceFieldIds = Object.values(fields)\n .filter(\n (field): field is Field =>\n !!field &&\n field.type === 'REFERENCE' &&\n searchableFieldIds.includes(field.id),\n )\n .map((field) => field.id);\n\n if (referenceFieldIds.length > 0) {\n dataQuery = dataQuery.include(...referenceFieldIds);\n }\n\n const res = await dataQuery\n .skip(query.offset)\n .limit(query.limit)\n .find({ returnTotalCount: true });\n\n return {\n items: res.items,\n total: res.totalCount ?? 0,\n };\n}\n"],"mappings":"AACA,SAASA,KAAK,QAAQ,WAAW;AAEjC,SAASC,qBAAqB,EAAEC,oBAAoB,QAAQ,eAAe;AAC3E,SAASC,kBAAkB,QAAQ,aAAa;AAEhD,OAAO,eAAeC,YAAYA,CAChCC,YAAoB,EACpBC,KAAyB,EACzBC,MAAyC,EACzCC,OAGC,EACD;EAAA,IAJAA,OAGC;IAHDA,OAGC,GAAG,CAAC,CAAC;EAAA;EAEN,MAAM;IAAEC,kBAAkB,GAAG,EAAE;IAAEC;EAAmB,CAAC,GAAGF,OAAO;EAE/D,IAAIG,SAAS,GAAGX,KAAK,CAACM,KAAK,CAACD,YAAY,CAAC;EACzCM,SAAS,GAAGT,oBAAoB,CAAC;IAC/BS,SAAS;IACTL,KAAK;IACLC,MAAM;IACNE;EACF,CAAC,CAAC;EACFE,SAAS,GAAGV,qBAAqB,CAAC;IAChCU,SAAS;IACTL,KAAK;IACLC,MAAM;IACNG;EACF,CAAC,CAAC;EACFC,SAAS,GAAGR,kBAAkB,CAAC;IAC7BQ,SAAS;IACTL,KAAK;IACLC;EACF,CAAC,CAAC;EAEF,MAAMK,iBAAiB,GAAGC,MAAM,CAACC,MAAM,CAACP,MAAM,CAAC,CAC5CQ,MAAM,CACJC,KAAK,IACJ,CAAC,CAACA,KAAK,IACPA,KAAK,CAACC,IAAI,KAAK,WAAW,IAC1BR,kBAAkB,CAACS,QAAQ,CAACF,KAAK,CAACG,EAAE,CACxC,CAAC,CACAC,GAAG,CAAEJ,KAAK,IAAKA,KAAK,CAACG,EAAE,CAAC;EAE3B,IAAIP,iBAAiB,CAACS,MAAM,GAAG,CAAC,EAAE;IAChCV,SAAS,GAAGA,SAAS,CAACW,OAAO,CAAC,GAAGV,iBAAiB,CAAC;EACrD;EAEA,MAAMW,GAAG,GAAG,MAAMZ,SAAS,CACxBa,IAAI,CAAClB,KAAK,CAACmB,MAAM,CAAC,CAClBC,KAAK,CAACpB,KAAK,CAACoB,KAAK,CAAC,CAClBC,IAAI,CAAC;IAAEC,gBAAgB,EAAE;EAAK,CAAC,CAAC;EAEnC,OAAO;IACL5B,KAAK,EAAEuB,GAAG,CAACvB,KAAK;IAChB6B,KAAK,EAAEN,GAAG,CAACO,UAAU,IAAI;EAC3B,CAAC;AACH","ignoreList":[]}
@@ -13,8 +13,8 @@ function getOperatorForFilter(prop) {
13
13
  }
14
14
  return undefined;
15
15
  }
16
- const isSupportedOperator = (schema, filterProp, filterKey) => {
17
- const field = schema.fields[filterKey];
16
+ const isSupportedOperator = (fields, filterProp, filterKey) => {
17
+ const field = fields[filterKey];
18
18
  if (!field) {
19
19
  return false;
20
20
  }
@@ -29,10 +29,10 @@ export function addFiltersToDataQuery(_ref) {
29
29
  let {
30
30
  dataQuery,
31
31
  query,
32
- schema,
33
- filtersMapping
32
+ fields,
33
+ filterFieldMapping
34
34
  } = _ref;
35
- if (!filtersMapping) {
35
+ if (!filterFieldMapping) {
36
36
  return dataQuery;
37
37
  }
38
38
  let dataQueryWithFilters = dataQuery;
@@ -40,13 +40,13 @@ export function addFiltersToDataQuery(_ref) {
40
40
  filters
41
41
  } = query;
42
42
  for (const fieldKey in filters) {
43
- const fieldId = filtersMapping[fieldKey].fieldId;
43
+ const fieldId = filterFieldMapping[fieldKey].fieldId;
44
44
  const filter = filters[fieldKey];
45
45
  if (filter) {
46
46
  if (Array.isArray(filter)) {
47
- var _schema$fields$fieldI;
47
+ var _fields$fieldId;
48
48
  const filterArray = filter;
49
- if (((_schema$fields$fieldI = schema.fields[fieldId]) == null ? void 0 : _schema$fields$fieldI.type) === 'BOOLEAN') {
49
+ if (((_fields$fieldId = fields[fieldId]) == null ? void 0 : _fields$fieldId.type) === 'BOOLEAN') {
50
50
  if (filterArray.some(item => item.id === BooleanFilters.checked)) {
51
51
  dataQueryWithFilters = dataQueryWithFilters.eq(fieldId, true);
52
52
  } else {
@@ -61,7 +61,7 @@ export function addFiltersToDataQuery(_ref) {
61
61
  const filterObj = filter;
62
62
  for (const filterProp in filterObj) {
63
63
  const operator = getOperatorForFilter(filterProp);
64
- if (operator && typeof dataQuery[operator] === 'function' && isSupportedOperator(schema, filterProp, fieldId)) {
64
+ if (operator && typeof dataQuery[operator] === 'function' && isSupportedOperator(fields, filterProp, fieldId)) {
65
65
  const value = filterObj[filterProp];
66
66
  if (value !== undefined && value !== null) {
67
67
  dataQueryWithFilters = dataQueryWithFilters[operator](fieldId, value);
@@ -78,13 +78,13 @@ export function addSearchToDataQuery(_ref2) {
78
78
  let {
79
79
  dataQuery,
80
80
  query,
81
- schema,
82
- visibleFieldIds
81
+ fields,
82
+ searchableFieldIds
83
83
  } = _ref2;
84
- const searchableFields = Object.keys(schema.fields).filter(fieldId => {
85
- const field = schema.fields[fieldId];
86
- const column = visibleFieldIds.find(id => id === fieldId);
87
- return column && field && TEXT_FIELD_TYPES.includes(field.type);
84
+ const searchableFields = Object.keys(fields).filter(fieldId => {
85
+ const field = fields[fieldId];
86
+ const isFieldSearchable = searchableFieldIds.includes(fieldId);
87
+ return isFieldSearchable && field && TEXT_FIELD_TYPES.includes(field.type);
88
88
  });
89
89
  if (query.search && searchableFields.length > 0) {
90
90
  let searchFilter = null;
@@ -1 +1 @@
1
- {"version":3,"names":["items","BooleanFilters","FilterPropToOperator","FilterPropToMethod","from","to","isValidFilterProp","prop","getOperatorForFilter","undefined","isSupportedOperator","schema","filterProp","filterKey","field","fields","operator","supportedOperators","capabilities","supportedQueryOperators","includes","addFiltersToDataQuery","_ref","dataQuery","query","filtersMapping","dataQueryWithFilters","filters","fieldKey","fieldId","filter","Array","isArray","_schema$fields$fieldI","filterArray","type","some","item","id","checked","eq","falseFilter","undefinedFilter","and","or","hasSome","map","filterObj","value","TEXT_FIELD_TYPES","addSearchToDataQuery","_ref2","visibleFieldIds","searchableFields","Object","keys","column","find","search","length","searchFilter","forEach","currentFilter","contains"],"sources":["../../../../src/dataSourceAdapters/cms/filterUtils.ts"],"sourcesContent":["import { ComputedQuery } from '@wix/patterns';\nimport { items } from '@wix/data';\nimport { BooleanFilters, FilterProp, FilterPropToOperator } from '../constants';\nimport { SchemaConfig, Filter } from '../../types';\n\nexport type CmsOperatorMethod = 'ge' | 'le';\n\nconst FilterPropToMethod: Record<FilterProp, CmsOperatorMethod> = {\n from: 'ge',\n to: 'le',\n};\n\nfunction isValidFilterProp(prop: string): prop is FilterProp {\n return prop in FilterPropToMethod;\n}\n\nfunction getOperatorForFilter(prop: string): CmsOperatorMethod | undefined {\n if (isValidFilterProp(prop)) {\n return FilterPropToMethod[prop];\n }\n return undefined;\n}\n\nconst isSupportedOperator = (\n schema: SchemaConfig,\n filterProp: string,\n filterKey: string,\n) => {\n const field = schema.fields[filterKey];\n if (!field) {\n return false;\n }\n\n if (!isValidFilterProp(filterProp)) {\n return false;\n }\n\n const operator = FilterPropToOperator[filterProp];\n const supportedOperators = field.capabilities.supportedQueryOperators;\n return supportedOperators.includes(operator);\n};\n\nexport function addFiltersToDataQuery({\n dataQuery,\n query,\n schema,\n filtersMapping,\n}: {\n dataQuery: items.WixDataQuery;\n query: ComputedQuery<any>;\n schema: SchemaConfig;\n filtersMapping?: Record<string, Filter>;\n}) {\n if (!filtersMapping) {\n return dataQuery;\n }\n\n let dataQueryWithFilters = dataQuery;\n const { filters } = query;\n for (const fieldKey in filters) {\n const fieldId = filtersMapping[fieldKey].fieldId;\n const filter = filters[fieldKey];\n if (filter) {\n if (Array.isArray(filter)) {\n const filterArray = filter as { [key: string]: any }[];\n if (schema.fields[fieldId]?.type === 'BOOLEAN') {\n if (filterArray.some((item) => item.id === BooleanFilters.checked)) {\n dataQueryWithFilters = dataQueryWithFilters.eq(fieldId, true);\n } else {\n const falseFilter = items.filter().eq(fieldId, false);\n const undefinedFilter = items.filter().eq(fieldId, undefined);\n dataQueryWithFilters = dataQueryWithFilters.and(\n falseFilter.or(undefinedFilter),\n );\n }\n } else {\n dataQueryWithFilters = dataQueryWithFilters.hasSome(\n fieldId,\n filterArray.map((item) => item.id),\n );\n }\n } else if (typeof filter === 'object') {\n const filterObj = filter as Record<string, any>;\n\n for (const filterProp in filterObj) {\n const operator = getOperatorForFilter(filterProp);\n if (\n operator &&\n typeof dataQuery[operator] === 'function' &&\n isSupportedOperator(schema, filterProp, fieldId)\n ) {\n const value = filterObj[filterProp];\n if (value !== undefined && value !== null) {\n dataQueryWithFilters = dataQueryWithFilters[operator](\n fieldId,\n value,\n );\n }\n }\n }\n }\n }\n }\n\n return dataQueryWithFilters;\n}\n\nconst TEXT_FIELD_TYPES = ['LONG_TEXT', 'SHORT_TEXT'];\nexport function addSearchToDataQuery({\n dataQuery,\n query,\n schema,\n visibleFieldIds,\n}: {\n dataQuery: items.WixDataQuery;\n query: ComputedQuery<any>;\n schema: SchemaConfig;\n visibleFieldIds: string[];\n}) {\n const searchableFields = Object.keys(schema.fields).filter((fieldId) => {\n const field = schema.fields[fieldId];\n const column = visibleFieldIds.find((id) => id === fieldId);\n\n return column && field && TEXT_FIELD_TYPES.includes(field.type);\n });\n\n if (query.search && searchableFields.length > 0) {\n let searchFilter: items.WixDataFilter | null = null;\n\n searchableFields.forEach((field) => {\n const currentFilter = items.filter().contains(field, query.search!);\n searchFilter = searchFilter\n ? searchFilter.or(currentFilter)\n : currentFilter;\n });\n\n if (searchFilter) {\n dataQuery = dataQuery.and(searchFilter);\n }\n }\n\n return dataQuery;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["items","BooleanFilters","FilterPropToOperator","FilterPropToMethod","from","to","isValidFilterProp","prop","getOperatorForFilter","undefined","isSupportedOperator","fields","filterProp","filterKey","field","operator","supportedOperators","capabilities","supportedQueryOperators","includes","addFiltersToDataQuery","_ref","dataQuery","query","filterFieldMapping","dataQueryWithFilters","filters","fieldKey","fieldId","filter","Array","isArray","_fields$fieldId","filterArray","type","some","item","id","checked","eq","falseFilter","undefinedFilter","and","or","hasSome","map","filterObj","value","TEXT_FIELD_TYPES","addSearchToDataQuery","_ref2","searchableFieldIds","searchableFields","Object","keys","isFieldSearchable","search","length","searchFilter","forEach","currentFilter","contains"],"sources":["../../../../src/dataSourceAdapters/cms/filterUtils.ts"],"sourcesContent":["import { ComputedQuery } from '@wix/patterns';\nimport { items } from '@wix/data';\nimport { BooleanFilters, FilterProp, FilterPropToOperator } from '../constants';\nimport { SchemaConfig } from '../../types';\n\nexport type CmsOperatorMethod = 'ge' | 'le';\n\nconst FilterPropToMethod: Record<FilterProp, CmsOperatorMethod> = {\n from: 'ge',\n to: 'le',\n};\n\nfunction isValidFilterProp(prop: string): prop is FilterProp {\n return prop in FilterPropToMethod;\n}\n\nfunction getOperatorForFilter(prop: string): CmsOperatorMethod | undefined {\n if (isValidFilterProp(prop)) {\n return FilterPropToMethod[prop];\n }\n return undefined;\n}\n\nconst isSupportedOperator = (\n fields: SchemaConfig['fields'],\n filterProp: string,\n filterKey: string,\n) => {\n const field = fields[filterKey];\n if (!field) {\n return false;\n }\n\n if (!isValidFilterProp(filterProp)) {\n return false;\n }\n\n const operator = FilterPropToOperator[filterProp];\n const supportedOperators = field.capabilities.supportedQueryOperators;\n return supportedOperators.includes(operator);\n};\n\nexport function addFiltersToDataQuery({\n dataQuery,\n query,\n fields,\n filterFieldMapping,\n}: {\n dataQuery: items.WixDataQuery;\n query: ComputedQuery<any>;\n fields: SchemaConfig['fields'];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n}) {\n if (!filterFieldMapping) {\n return dataQuery;\n }\n\n let dataQueryWithFilters = dataQuery;\n const { filters } = query;\n for (const fieldKey in filters) {\n const fieldId = filterFieldMapping[fieldKey].fieldId;\n const filter = filters[fieldKey];\n if (filter) {\n if (Array.isArray(filter)) {\n const filterArray = filter as { [key: string]: any }[];\n if (fields[fieldId]?.type === 'BOOLEAN') {\n if (filterArray.some((item) => item.id === BooleanFilters.checked)) {\n dataQueryWithFilters = dataQueryWithFilters.eq(fieldId, true);\n } else {\n const falseFilter = items.filter().eq(fieldId, false);\n const undefinedFilter = items.filter().eq(fieldId, undefined);\n dataQueryWithFilters = dataQueryWithFilters.and(\n falseFilter.or(undefinedFilter),\n );\n }\n } else {\n dataQueryWithFilters = dataQueryWithFilters.hasSome(\n fieldId,\n filterArray.map((item) => item.id),\n );\n }\n } else if (typeof filter === 'object') {\n const filterObj = filter as Record<string, any>;\n\n for (const filterProp in filterObj) {\n const operator = getOperatorForFilter(filterProp);\n if (\n operator &&\n typeof dataQuery[operator] === 'function' &&\n isSupportedOperator(fields, filterProp, fieldId)\n ) {\n const value = filterObj[filterProp];\n if (value !== undefined && value !== null) {\n dataQueryWithFilters = dataQueryWithFilters[operator](\n fieldId,\n value,\n );\n }\n }\n }\n }\n }\n }\n\n return dataQueryWithFilters;\n}\n\nconst TEXT_FIELD_TYPES = ['LONG_TEXT', 'SHORT_TEXT'];\nexport function addSearchToDataQuery({\n dataQuery,\n query,\n fields,\n searchableFieldIds,\n}: {\n dataQuery: items.WixDataQuery;\n query: ComputedQuery<any>;\n fields: SchemaConfig['fields'];\n searchableFieldIds: string[];\n}) {\n const searchableFields = Object.keys(fields).filter((fieldId) => {\n const field = fields[fieldId];\n const isFieldSearchable = searchableFieldIds.includes(fieldId);\n\n return isFieldSearchable && field && TEXT_FIELD_TYPES.includes(field.type);\n });\n\n if (query.search && searchableFields.length > 0) {\n let searchFilter: items.WixDataFilter | null = null;\n\n searchableFields.forEach((field) => {\n const currentFilter = items.filter().contains(field, query.search!);\n searchFilter = searchFilter\n ? searchFilter.or(currentFilter)\n : currentFilter;\n });\n\n if (searchFilter) {\n dataQuery = dataQuery.and(searchFilter);\n }\n }\n\n return dataQuery;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@ export function addSortToDataQuery(_ref) {
2
2
  let {
3
3
  dataQuery,
4
4
  query,
5
- schema
5
+ fields
6
6
  } = _ref;
7
7
  let dataQueryWithSort = dataQuery;
8
8
  const {
@@ -14,7 +14,7 @@ export function addSortToDataQuery(_ref) {
14
14
  order
15
15
  } = sortField;
16
16
  if (fieldName && order) {
17
- const fieldDefinition = schema.fields[fieldName];
17
+ const fieldDefinition = fields[fieldName];
18
18
  if (fieldDefinition != null && fieldDefinition.capabilities.sortable) {
19
19
  if (order === 'asc') {
20
20
  dataQueryWithSort = dataQueryWithSort.ascending(fieldName);
@@ -1 +1 @@
1
- {"version":3,"names":["addSortToDataQuery","_ref","dataQuery","query","schema","dataQueryWithSort","sort","forEach","sortField","fieldName","order","fieldDefinition","fields","capabilities","sortable","ascending","descending"],"sources":["../../../../src/dataSourceAdapters/cms/sortUtils.ts"],"sourcesContent":["import { items } from '@wix/data';\nimport { SchemaConfig } from '../../types';\nimport { ComputedQuery } from '@wix/patterns';\n\nexport function addSortToDataQuery({\n dataQuery,\n query,\n schema,\n}: {\n dataQuery: items.WixDataQuery;\n query: ComputedQuery<any>;\n schema: SchemaConfig;\n}) {\n let dataQueryWithSort = dataQuery;\n const { sort } = query;\n sort?.forEach((sortField) => {\n const { fieldName, order } = sortField;\n if (fieldName && order) {\n const fieldDefinition = schema.fields[fieldName];\n if (fieldDefinition?.capabilities.sortable) {\n if (order === 'asc') {\n dataQueryWithSort = dataQueryWithSort.ascending(fieldName);\n } else if (order === 'desc') {\n dataQueryWithSort = dataQueryWithSort.descending(fieldName);\n }\n }\n }\n });\n\n return dataQueryWithSort;\n}\n"],"mappings":"AAIA,OAAO,SAASA,kBAAkBA,CAAAC,IAAA,EAQ/B;EAAA,IARgC;IACjCC,SAAS;IACTC,KAAK;IACLC;EAKF,CAAC,GAAAH,IAAA;EACC,IAAII,iBAAiB,GAAGH,SAAS;EACjC,MAAM;IAAEI;EAAK,CAAC,GAAGH,KAAK;EACtBG,IAAI,YAAJA,IAAI,CAAEC,OAAO,CAAEC,SAAS,IAAK;IAC3B,MAAM;MAAEC,SAAS;MAAEC;IAAM,CAAC,GAAGF,SAAS;IACtC,IAAIC,SAAS,IAAIC,KAAK,EAAE;MACtB,MAAMC,eAAe,GAAGP,MAAM,CAACQ,MAAM,CAACH,SAAS,CAAC;MAChD,IAAIE,eAAe,YAAfA,eAAe,CAAEE,YAAY,CAACC,QAAQ,EAAE;QAC1C,IAAIJ,KAAK,KAAK,KAAK,EAAE;UACnBL,iBAAiB,GAAGA,iBAAiB,CAACU,SAAS,CAACN,SAAS,CAAC;QAC5D,CAAC,MAAM,IAAIC,KAAK,KAAK,MAAM,EAAE;UAC3BL,iBAAiB,GAAGA,iBAAiB,CAACW,UAAU,CAACP,SAAS,CAAC;QAC7D;MACF;IACF;EACF,CAAC,CAAC;EAEF,OAAOJ,iBAAiB;AAC1B","ignoreList":[]}
1
+ {"version":3,"names":["addSortToDataQuery","_ref","dataQuery","query","fields","dataQueryWithSort","sort","forEach","sortField","fieldName","order","fieldDefinition","capabilities","sortable","ascending","descending"],"sources":["../../../../src/dataSourceAdapters/cms/sortUtils.ts"],"sourcesContent":["import { items } from '@wix/data';\nimport { SchemaConfig } from '../../types';\nimport { ComputedQuery } from '@wix/patterns';\n\nexport function addSortToDataQuery({\n dataQuery,\n query,\n fields,\n}: {\n dataQuery: items.WixDataQuery;\n query: ComputedQuery<any>;\n fields: SchemaConfig['fields'];\n}) {\n let dataQueryWithSort = dataQuery;\n const { sort } = query;\n sort?.forEach((sortField) => {\n const { fieldName, order } = sortField;\n if (fieldName && order) {\n const fieldDefinition = fields[fieldName];\n if (fieldDefinition?.capabilities.sortable) {\n if (order === 'asc') {\n dataQueryWithSort = dataQueryWithSort.ascending(fieldName);\n } else if (order === 'desc') {\n dataQueryWithSort = dataQueryWithSort.descending(fieldName);\n }\n }\n }\n });\n\n return dataQueryWithSort;\n}\n"],"mappings":"AAIA,OAAO,SAASA,kBAAkBA,CAAAC,IAAA,EAQ/B;EAAA,IARgC;IACjCC,SAAS;IACTC,KAAK;IACLC;EAKF,CAAC,GAAAH,IAAA;EACC,IAAII,iBAAiB,GAAGH,SAAS;EACjC,MAAM;IAAEI;EAAK,CAAC,GAAGH,KAAK;EACtBG,IAAI,YAAJA,IAAI,CAAEC,OAAO,CAAEC,SAAS,IAAK;IAC3B,MAAM;MAAEC,SAAS;MAAEC;IAAM,CAAC,GAAGF,SAAS;IACtC,IAAIC,SAAS,IAAIC,KAAK,EAAE;MACtB,MAAMC,eAAe,GAAGP,MAAM,CAACK,SAAS,CAAC;MACzC,IAAIE,eAAe,YAAfA,eAAe,CAAEC,YAAY,CAACC,QAAQ,EAAE;QAC1C,IAAIH,KAAK,KAAK,KAAK,EAAE;UACnBL,iBAAiB,GAAGA,iBAAiB,CAACS,SAAS,CAACL,SAAS,CAAC;QAC5D,CAAC,MAAM,IAAIC,KAAK,KAAK,MAAM,EAAE;UAC3BL,iBAAiB,GAAGA,iBAAiB,CAACU,UAAU,CAACN,SAAS,CAAC;QAC7D;MACF;IACF;EACF,CAAC,CAAC;EAEF,OAAOJ,iBAAiB;AAC1B","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { fetchCmsSchema, createCmsDataProvider } from './cms/cmsAdapter';
1
+ import { fetchCmsSchema } from './cms/cmsAdapter';
2
2
  export async function getSchema(collectionId, entityTypeSource) {
3
3
  switch (entityTypeSource) {
4
4
  case 'cms':
@@ -7,24 +7,4 @@ export async function getSchema(collectionId, entityTypeSource) {
7
7
  throw new Error(`Unsupported entityTypeSource: ${entityTypeSource}`);
8
8
  }
9
9
  }
10
- export function createDataProvider(_ref) {
11
- let {
12
- collectionId,
13
- entityTypeSource,
14
- schema,
15
- visibleFieldIds,
16
- filtersMapping
17
- } = _ref;
18
- switch (entityTypeSource) {
19
- case 'cms':
20
- return createCmsDataProvider({
21
- collectionId,
22
- schema,
23
- visibleFieldIds,
24
- filtersMapping
25
- });
26
- default:
27
- throw new Error(`Unsupported entityTypeSource: ${entityTypeSource}`);
28
- }
29
- }
30
10
  //# sourceMappingURL=factory.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["fetchCmsSchema","createCmsDataProvider","getSchema","collectionId","entityTypeSource","Error","createDataProvider","_ref","schema","visibleFieldIds","filtersMapping"],"sources":["../../../src/dataSourceAdapters/factory.ts"],"sourcesContent":["import { Filter, SchemaConfig } from '../types';\nimport { fetchCmsSchema, createCmsDataProvider } from './cms/cmsAdapter';\nimport { CollectionConfig as PatternsCollectionConfig } from '@wix/patterns';\n\nexport async function getSchema(\n collectionId: string,\n entityTypeSource: string,\n): Promise<SchemaConfig> {\n switch (entityTypeSource) {\n case 'cms':\n return fetchCmsSchema(collectionId);\n default:\n throw new Error(`Unsupported entityTypeSource: ${entityTypeSource}`);\n }\n}\n\nexport function createDataProvider({\n collectionId,\n entityTypeSource,\n schema,\n visibleFieldIds,\n filtersMapping,\n}: {\n collectionId: string;\n entityTypeSource: string;\n schema: SchemaConfig;\n visibleFieldIds: string[];\n filtersMapping?: Record<string, Filter>;\n}): { fetchData: PatternsCollectionConfig<any, any>['fetchData'] } {\n switch (entityTypeSource) {\n case 'cms':\n return createCmsDataProvider({\n collectionId,\n schema,\n visibleFieldIds,\n filtersMapping,\n });\n default:\n throw new Error(`Unsupported entityTypeSource: ${entityTypeSource}`);\n }\n}\n"],"mappings":"AACA,SAASA,cAAc,EAAEC,qBAAqB,QAAQ,kBAAkB;AAGxE,OAAO,eAAeC,SAASA,CAC7BC,YAAoB,EACpBC,gBAAwB,EACD;EACvB,QAAQA,gBAAgB;IACtB,KAAK,KAAK;MACR,OAAOJ,cAAc,CAACG,YAAY,CAAC;IACrC;MACE,MAAM,IAAIE,KAAK,CAAC,iCAAiCD,gBAAgB,EAAE,CAAC;EACxE;AACF;AAEA,OAAO,SAASE,kBAAkBA,CAAAC,IAAA,EAYiC;EAAA,IAZhC;IACjCJ,YAAY;IACZC,gBAAgB;IAChBI,MAAM;IACNC,eAAe;IACfC;EAOF,CAAC,GAAAH,IAAA;EACC,QAAQH,gBAAgB;IACtB,KAAK,KAAK;MACR,OAAOH,qBAAqB,CAAC;QAC3BE,YAAY;QACZK,MAAM;QACNC,eAAe;QACfC;MACF,CAAC,CAAC;IACJ;MACE,MAAM,IAAIL,KAAK,CAAC,iCAAiCD,gBAAgB,EAAE,CAAC;EACxE;AACF","ignoreList":[]}
1
+ {"version":3,"names":["fetchCmsSchema","getSchema","collectionId","entityTypeSource","Error"],"sources":["../../../src/dataSourceAdapters/factory.ts"],"sourcesContent":["import { SchemaConfig } from '../types';\nimport { fetchCmsSchema } from './cms/cmsAdapter';\n\nexport async function getSchema(\n collectionId: string,\n entityTypeSource: string,\n): Promise<SchemaConfig> {\n switch (entityTypeSource) {\n case 'cms':\n return fetchCmsSchema(collectionId);\n default:\n throw new Error(`Unsupported entityTypeSource: ${entityTypeSource}`);\n }\n}\n"],"mappings":"AACA,SAASA,cAAc,QAAQ,kBAAkB;AAEjD,OAAO,eAAeC,SAASA,CAC7BC,YAAoB,EACpBC,gBAAwB,EACD;EACvB,QAAQA,gBAAgB;IACtB,KAAK,KAAK;MACR,OAAOH,cAAc,CAACE,YAAY,CAAC;IACrC;MACE,MAAM,IAAIE,KAAK,CAAC,iCAAiCD,gBAAgB,EAAE,CAAC;EACxE;AACF","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { useCallback } from 'react';
2
2
  import { useActionsSDK } from './useActionsSDK';
3
- import { updateAction, customModalAction, customAction, resolveAction, deleteAction } from '../utils/actions';
3
+ import { updateAction, customAction, resolveAction, deleteAction } from '../utils/actions';
4
4
  const cleanupActionsWithDividers = (actions, inlineCount) => {
5
5
  const clean = a => a.filter((x, i, ar) => {
6
6
  var _ar;
@@ -46,12 +46,6 @@ export const useActionCell = _ref => {
46
46
  ...baseParams
47
47
  });
48
48
  break;
49
- case 'customModal':
50
- actionToResolve = customModalAction({
51
- action: actionConfig,
52
- ...baseParams
53
- });
54
- break;
55
49
  case 'custom':
56
50
  actionToResolve = customAction({
57
51
  action: actionConfig,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useActionsSDK","updateAction","customModalAction","customAction","resolveAction","deleteAction","cleanupActionsWithDividers","actions","inlineCount","clean","a","filter","x","i","ar","_ar","divider","length","slice","useActionCell","_ref","config","collectionId","sdk","buildCellActions","item","index","api","_config$primaryAction","_config$secondaryActi","_config$secondaryActi2","_config$secondaryActi3","_config$secondaryActi4","buildAction","actionConfig","type","actionToResolve","baseParams","actionParams","action","resolvedAction","label","tooltip","resolvedActionProps","text","disabledDescription","primaryAction","undefined","rawSecondaryActions","secondaryActions","items","map","Boolean","numOfVisibleSecondaryActions","alwaysShowSecondaryActions","inlineAlwaysVisible"],"sources":["../../../src/hooks/useActionCell.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport {\n ActionCellConfig,\n ActionCellItemConfig,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n updateAction,\n customModalAction,\n customAction,\n resolveAction,\n deleteAction,\n} from '../utils/actions';\nimport { DividerActionConfig } from '../types/actions/base';\n\nexport interface useActionCellParams {\n config?: ActionCellConfig;\n collectionId: string;\n}\n\nconst cleanupActionsWithDividers = (\n actions: any[],\n inlineCount?: number,\n): any[] => {\n const clean = (a: any[]) =>\n a.filter(\n (x, i, ar) =>\n x?.divider !== true ||\n (i > 0 && i < ar.length - 1 && ar[i - 1]?.divider !== true)\n );\n return !actions?.length || !inlineCount || inlineCount >= actions.length\n ? clean(actions || [])\n : [\n ...clean(actions.slice(0, inlineCount)),\n ...clean(actions.slice(inlineCount)),\n ];\n};\n\nexport const useActionCell = ({\n config,\n collectionId,\n}: useActionCellParams) => {\n const sdk = useActionsSDK({\n collectionId,\n });\n\n const buildCellActions = useCallback(\n (item, index, api) => {\n const buildAction = (\n actionConfig: ActionCellItemConfig | DividerActionConfig,\n ) => {\n if (actionConfig.type === 'divider') {\n return { divider: true };\n }\n\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: { item, index, api },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'update':\n actionToResolve = updateAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'delete':\n actionToResolve = deleteAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'customModal':\n actionToResolve = customModalAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n default:\n return null;\n }\n\n if (!actionToResolve) {\n return null;\n }\n\n const resolvedAction = resolveAction(actionConfig, actionToResolve);\n const { label, tooltip, ...resolvedActionProps } = resolvedAction;\n\n return {\n ...resolvedActionProps,\n text: resolvedAction.label,\n disabledDescription: resolvedAction.tooltip,\n };\n };\n\n const primaryAction = config?.primaryAction?.item\n ? buildAction(config.primaryAction.item)\n : undefined;\n\n const rawSecondaryActions = config?.secondaryActions?.items.length\n ? config.secondaryActions.items.map(buildAction).filter(Boolean)\n : [];\n\n // Process secondary actions with inline count consideration\n const secondaryActions = cleanupActionsWithDividers(\n rawSecondaryActions,\n config?.secondaryActions?.inlineCount,\n );\n\n const numOfVisibleSecondaryActions =\n config?.secondaryActions?.inlineCount;\n const alwaysShowSecondaryActions =\n config?.secondaryActions?.inlineAlwaysVisible;\n\n if (!primaryAction && !secondaryActions.length) {\n return {};\n }\n\n return {\n ...(primaryAction ? { primaryAction } : { primaryAction: undefined }),\n ...(secondaryActions.length && { secondaryActions }),\n numOfVisibleSecondaryActions,\n alwaysShowSecondaryActions,\n };\n },\n [config, sdk],\n );\n\n return buildCellActions;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useActionsSDK","updateAction","customAction","resolveAction","deleteAction","cleanupActionsWithDividers","actions","inlineCount","clean","a","filter","x","i","ar","_ar","divider","length","slice","useActionCell","_ref","config","collectionId","sdk","buildCellActions","item","index","api","_config$primaryAction","_config$secondaryActi","_config$secondaryActi2","_config$secondaryActi3","_config$secondaryActi4","buildAction","actionConfig","type","actionToResolve","baseParams","actionParams","action","resolvedAction","label","tooltip","resolvedActionProps","text","disabledDescription","primaryAction","undefined","rawSecondaryActions","secondaryActions","items","map","Boolean","numOfVisibleSecondaryActions","alwaysShowSecondaryActions","inlineAlwaysVisible"],"sources":["../../../src/hooks/useActionCell.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport {\n ActionCellConfig,\n ActionCellItemConfig,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n updateAction,\n customAction,\n resolveAction,\n deleteAction,\n} from '../utils/actions';\nimport { DividerActionConfig } from '../types/actions/base';\n\nexport interface useActionCellParams {\n config?: ActionCellConfig;\n collectionId: string;\n}\n\nconst cleanupActionsWithDividers = (\n actions: any[],\n inlineCount?: number,\n): any[] => {\n const clean = (a: any[]) =>\n a.filter(\n (x, i, ar) =>\n x?.divider !== true ||\n (i > 0 && i < ar.length - 1 && ar[i - 1]?.divider !== true),\n );\n return !actions?.length || !inlineCount || inlineCount >= actions.length\n ? clean(actions || [])\n : [\n ...clean(actions.slice(0, inlineCount)),\n ...clean(actions.slice(inlineCount)),\n ];\n};\n\nexport const useActionCell = ({\n config,\n collectionId,\n}: useActionCellParams) => {\n const sdk = useActionsSDK({\n collectionId,\n });\n\n const buildCellActions = useCallback(\n (item, index, api) => {\n const buildAction = (\n actionConfig: ActionCellItemConfig | DividerActionConfig,\n ) => {\n if (actionConfig.type === 'divider') {\n return { divider: true };\n }\n\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: { item, index, api },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'update':\n actionToResolve = updateAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'delete':\n actionToResolve = deleteAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n default:\n return null;\n }\n\n if (!actionToResolve) {\n return null;\n }\n\n const resolvedAction = resolveAction(actionConfig, actionToResolve);\n const { label, tooltip, ...resolvedActionProps } = resolvedAction;\n\n return {\n ...resolvedActionProps,\n text: resolvedAction.label,\n disabledDescription: resolvedAction.tooltip,\n };\n };\n\n const primaryAction = config?.primaryAction?.item\n ? buildAction(config.primaryAction.item)\n : undefined;\n\n const rawSecondaryActions = config?.secondaryActions?.items.length\n ? config.secondaryActions.items.map(buildAction).filter(Boolean)\n : [];\n\n // Process secondary actions with inline count consideration\n const secondaryActions = cleanupActionsWithDividers(\n rawSecondaryActions,\n config?.secondaryActions?.inlineCount,\n );\n\n const numOfVisibleSecondaryActions =\n config?.secondaryActions?.inlineCount;\n const alwaysShowSecondaryActions =\n config?.secondaryActions?.inlineAlwaysVisible;\n\n if (!primaryAction && !secondaryActions.length) {\n return {};\n }\n\n return {\n ...(primaryAction ? { primaryAction } : { primaryAction: undefined }),\n ...(secondaryActions.length && { secondaryActions }),\n numOfVisibleSecondaryActions,\n alwaysShowSecondaryActions,\n };\n },\n [config, sdk],\n );\n\n return buildCellActions;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import React, { useMemo } from 'react';
2
2
  import { useColumns } from './useColumns';
3
3
  import { CustomColumns } from '@wix/patterns';
4
+ import { useCollectionPageOnRowClickActions } from './useCollectionPageOnRowClickActions';
4
5
  import { useNavigation } from './useNavigationUtils';
5
6
  export const useBaseTableFeatures = configuration => {
6
7
  var _configuration$custom;
@@ -10,7 +11,11 @@ export const useBaseTableFeatures = configuration => {
10
11
  const columns = useColumns(configuration.columns);
11
12
  const visibleFieldIds = useMemo(() => configuration.columns.map(column => column.id), [configuration]);
12
13
  const entityPageId = configuration.entityPageId;
13
- const onRowClick = item => navigateToEntityPage({
14
+ const onRowClickOverride = useCollectionPageOnRowClickActions({
15
+ collectionPageOnRowClickActions: configuration.onRowClick,
16
+ collectionId: configuration.collection.collectionId
17
+ });
18
+ const onRowClick = configuration.onRowClick ? onRowClickOverride : item => navigateToEntityPage({
14
19
  item,
15
20
  entityPageId
16
21
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","useColumns","CustomColumns","useNavigation","useBaseTableFeatures","configuration","_configuration$custom","navigateToEntityPage","columns","visibleFieldIds","map","column","id","entityPageId","onRowClick","item","stickyColumns","stickySelectionColumn","customColumns","enabled","createElement","undefined"],"sources":["../../../src/hooks/useBaseTableFeatures.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { TableConfig } from '../types';\nimport { useColumns } from './useColumns';\nimport { CustomColumns } from '@wix/patterns';\nimport { useNavigation } from './useNavigationUtils';\n\nexport const useBaseTableFeatures = (configuration: TableConfig) => {\n const { navigateToEntityPage } = useNavigation();\n\n const columns = useColumns(configuration.columns);\n const visibleFieldIds = useMemo(\n () => configuration.columns.map((column) => column.id),\n [configuration],\n );\n\n const entityPageId = configuration.entityPageId;\n\n const onRowClick = (item: any) =>\n navigateToEntityPage({\n item,\n entityPageId,\n });\n\n const stickyColumns = configuration.stickyColumns;\n const stickySelectionColumn = !!stickyColumns; // Sticky selection column is true if stickyColumns is positive number\n\n return {\n columns,\n visibleFieldIds,\n onRowClick,\n customColumns: configuration.customColumns?.enabled ? (\n <CustomColumns />\n ) : undefined,\n stickyColumns,\n stickySelectionColumn,\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AAEtC,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,aAAa,QAAQ,eAAe;AAC7C,SAASC,aAAa,QAAQ,sBAAsB;AAEpD,OAAO,MAAMC,oBAAoB,GAAIC,aAA0B,IAAK;EAAA,IAAAC,qBAAA;EAClE,MAAM;IAAEC;EAAqB,CAAC,GAAGJ,aAAa,CAAC,CAAC;EAEhD,MAAMK,OAAO,GAAGP,UAAU,CAACI,aAAa,CAACG,OAAO,CAAC;EACjD,MAAMC,eAAe,GAAGT,OAAO,CAC7B,MAAMK,aAAa,CAACG,OAAO,CAACE,GAAG,CAAEC,MAAM,IAAKA,MAAM,CAACC,EAAE,CAAC,EACtD,CAACP,aAAa,CAChB,CAAC;EAED,MAAMQ,YAAY,GAAGR,aAAa,CAACQ,YAAY;EAE/C,MAAMC,UAAU,GAAIC,IAAS,IAC3BR,oBAAoB,CAAC;IACnBQ,IAAI;IACJF;EACF,CAAC,CAAC;EAEJ,MAAMG,aAAa,GAAGX,aAAa,CAACW,aAAa;EACjD,MAAMC,qBAAqB,GAAG,CAAC,CAACD,aAAa,CAAC,CAAC;;EAE/C,OAAO;IACLR,OAAO;IACPC,eAAe;IACfK,UAAU;IACVI,aAAa,EAAE,CAAAZ,qBAAA,GAAAD,aAAa,CAACa,aAAa,aAA3BZ,qBAAA,CAA6Ba,OAAO,gBACjDpB,KAAA,CAAAqB,aAAA,CAAClB,aAAa,MAAE,CAAC,GACfmB,SAAS;IACbL,aAAa;IACbC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","useColumns","CustomColumns","useCollectionPageOnRowClickActions","useNavigation","useBaseTableFeatures","configuration","_configuration$custom","navigateToEntityPage","columns","visibleFieldIds","map","column","id","entityPageId","onRowClickOverride","collectionPageOnRowClickActions","onRowClick","collectionId","collection","item","stickyColumns","stickySelectionColumn","customColumns","enabled","createElement","undefined"],"sources":["../../../src/hooks/useBaseTableFeatures.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { TableConfig } from '../types';\nimport { useColumns } from './useColumns';\nimport { CustomColumns } from '@wix/patterns';\nimport { useCollectionPageOnRowClickActions } from './useCollectionPageOnRowClickActions';\nimport { useNavigation } from './useNavigationUtils';\n\nexport const useBaseTableFeatures = (configuration: TableConfig) => {\n const { navigateToEntityPage } = useNavigation();\n const columns = useColumns(configuration.columns);\n const visibleFieldIds = useMemo(\n () => configuration.columns.map((column) => column.id),\n [configuration],\n );\n\n const entityPageId = configuration.entityPageId;\n\n const onRowClickOverride = useCollectionPageOnRowClickActions({\n collectionPageOnRowClickActions: configuration.onRowClick,\n collectionId: configuration.collection.collectionId,\n });\n\n const onRowClick = configuration.onRowClick\n ? onRowClickOverride\n : (item: any) =>\n navigateToEntityPage({\n item,\n entityPageId,\n });\n\n const stickyColumns = configuration.stickyColumns;\n const stickySelectionColumn = !!stickyColumns; // Sticky selection column is true if stickyColumns is positive number\n\n return {\n columns,\n visibleFieldIds,\n onRowClick,\n customColumns: configuration.customColumns?.enabled ? (\n <CustomColumns />\n ) : undefined,\n stickyColumns,\n stickySelectionColumn,\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AAEtC,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,aAAa,QAAQ,eAAe;AAC7C,SAASC,kCAAkC,QAAQ,sCAAsC;AACzF,SAASC,aAAa,QAAQ,sBAAsB;AAEpD,OAAO,MAAMC,oBAAoB,GAAIC,aAA0B,IAAK;EAAA,IAAAC,qBAAA;EAClE,MAAM;IAAEC;EAAqB,CAAC,GAAGJ,aAAa,CAAC,CAAC;EAChD,MAAMK,OAAO,GAAGR,UAAU,CAACK,aAAa,CAACG,OAAO,CAAC;EACjD,MAAMC,eAAe,GAAGV,OAAO,CAC7B,MAAMM,aAAa,CAACG,OAAO,CAACE,GAAG,CAAEC,MAAM,IAAKA,MAAM,CAACC,EAAE,CAAC,EACtD,CAACP,aAAa,CAChB,CAAC;EAED,MAAMQ,YAAY,GAAGR,aAAa,CAACQ,YAAY;EAE/C,MAAMC,kBAAkB,GAAGZ,kCAAkC,CAAC;IAC5Da,+BAA+B,EAAEV,aAAa,CAACW,UAAU;IACzDC,YAAY,EAAEZ,aAAa,CAACa,UAAU,CAACD;EACzC,CAAC,CAAC;EAEF,MAAMD,UAAU,GAAGX,aAAa,CAACW,UAAU,GACvCF,kBAAkB,GACjBK,IAAS,IACRZ,oBAAoB,CAAC;IACnBY,IAAI;IACJN;EACF,CAAC,CAAC;EAER,MAAMO,aAAa,GAAGf,aAAa,CAACe,aAAa;EACjD,MAAMC,qBAAqB,GAAG,CAAC,CAACD,aAAa,CAAC,CAAC;;EAE/C,OAAO;IACLZ,OAAO;IACPC,eAAe;IACfO,UAAU;IACVM,aAAa,EAAE,CAAAhB,qBAAA,GAAAD,aAAa,CAACiB,aAAa,aAA3BhB,qBAAA,CAA6BiB,OAAO,gBACjDzB,KAAA,CAAA0B,aAAA,CAACvB,aAAa,MAAE,CAAC,GACfwB,SAAS;IACbL,aAAa;IACbC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import React, { useCallback } from 'react';
2
2
  import { useActionsSDK } from './useActionsSDK';
3
3
  import { MultiBulkActionToolbar } from '@wix/patterns';
4
- import { bulkDeleteAction, customAction, customModalAction, resolveAction, groupActions } from '../utils/actions';
4
+ import { bulkDeleteAction, customAction, resolveAction, groupActions } from '../utils/actions';
5
5
  export const useBulkActionToolbar = _ref => {
6
6
  let {
7
7
  config,
@@ -24,12 +24,6 @@ export const useBulkActionToolbar = _ref => {
24
24
  ...baseParams
25
25
  });
26
26
  break;
27
- case 'customModal':
28
- actionToResolve = customModalAction({
29
- action: actionConfig,
30
- ...baseParams
31
- });
32
- break;
33
27
  case 'custom':
34
28
  actionToResolve = customAction({
35
29
  action: actionConfig,