@wix/auto-patterns 1.13.0 → 1.15.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 (175) hide show
  1. package/dist/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +1 -2
  2. package/dist/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
  3. package/dist/cjs/components/AutoPatternsEntityPage/Fields/DateTime.js +0 -1
  4. package/dist/cjs/components/AutoPatternsEntityPage/Fields/DateTime.js.map +1 -1
  5. package/dist/cjs/components/AutoPatternsRoute/AutoPatternsPage.js +2 -3
  6. package/dist/cjs/components/AutoPatternsRoute/AutoPatternsPage.js.map +1 -1
  7. package/dist/cjs/components/filters/DynamicCollectionFilter.js +5 -11
  8. package/dist/cjs/components/filters/DynamicCollectionFilter.js.map +1 -1
  9. package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js +51 -88
  10. package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
  11. package/dist/cjs/dataSourceAdapters/cms/fetchCmsData.js +43 -0
  12. package/dist/cjs/dataSourceAdapters/cms/fetchCmsData.js.map +1 -0
  13. package/dist/cjs/dataSourceAdapters/cms/filterUtils.js +15 -15
  14. package/dist/cjs/dataSourceAdapters/cms/filterUtils.js.map +1 -1
  15. package/dist/cjs/dataSourceAdapters/cms/sortUtils.js +2 -2
  16. package/dist/cjs/dataSourceAdapters/cms/sortUtils.js.map +1 -1
  17. package/dist/cjs/dataSourceAdapters/factory.js +0 -20
  18. package/dist/cjs/dataSourceAdapters/factory.js.map +1 -1
  19. package/dist/cjs/hooks/useActionCell.js +19 -10
  20. package/dist/cjs/hooks/useActionCell.js.map +1 -1
  21. package/dist/cjs/hooks/useBulkActionToolbar.js +9 -14
  22. package/dist/cjs/hooks/useBulkActionToolbar.js.map +1 -1
  23. package/dist/cjs/hooks/useCollectionPageActions.js +8 -13
  24. package/dist/cjs/hooks/useCollectionPageActions.js.map +1 -1
  25. package/dist/cjs/hooks/useEntityPageMoreActions.js +2 -1
  26. package/dist/cjs/hooks/useEntityPageMoreActions.js.map +1 -1
  27. package/dist/cjs/hooks/useFetchData.js +9 -29
  28. package/dist/cjs/hooks/useFetchData.js.map +1 -1
  29. package/dist/cjs/hooks/useFilters.js +2 -2
  30. package/dist/cjs/hooks/useFilters.js.map +1 -1
  31. package/dist/cjs/hooks/useGridFeatures.js +3 -4
  32. package/dist/cjs/hooks/useGridFeatures.js.map +1 -1
  33. package/dist/cjs/hooks/useTableFeatures.js +3 -4
  34. package/dist/cjs/hooks/useTableFeatures.js.map +1 -1
  35. package/dist/cjs/hooks/useTableGridSwitchFeatures.js +3 -4
  36. package/dist/cjs/hooks/useTableGridSwitchFeatures.js.map +1 -1
  37. package/dist/cjs/providers/PatternsWizardOverridesContext.js +1 -1
  38. package/dist/cjs/providers/PatternsWizardOverridesContext.js.map +1 -1
  39. package/dist/cjs/providers/SchemaContext.js +29 -6
  40. package/dist/cjs/providers/SchemaContext.js.map +1 -1
  41. package/dist/cjs/types/CollectionPageConfig.js.map +1 -1
  42. package/dist/cjs/types/EntityPageConfig.js.map +1 -1
  43. package/dist/cjs/types/actions/actionCell.js.map +1 -1
  44. package/dist/cjs/types/actions/base.js.map +1 -1
  45. package/dist/cjs/types/actions/bulkActions.js.map +1 -1
  46. package/dist/cjs/types/actions/collectionPageActions.js.map +1 -1
  47. package/dist/cjs/types/actions/entityPageActions.js.map +1 -1
  48. package/dist/cjs/types/index.js +6 -0
  49. package/dist/cjs/types/index.js.map +1 -1
  50. package/dist/cjs/types/providers.js +4 -0
  51. package/dist/cjs/types/providers.js.map +1 -0
  52. package/dist/cjs/types/types.js.map +1 -1
  53. package/dist/cjs/utils/actions/groupActions.js +29 -0
  54. package/dist/cjs/utils/actions/groupActions.js.map +1 -0
  55. package/dist/cjs/utils/actions/index.js +6 -6
  56. package/dist/cjs/utils/actions/index.js.map +1 -1
  57. package/dist/cjs/utils/actions/types.js.map +1 -1
  58. package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +1 -2
  59. package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
  60. package/dist/esm/components/AutoPatternsEntityPage/Fields/DateTime.js +0 -1
  61. package/dist/esm/components/AutoPatternsEntityPage/Fields/DateTime.js.map +1 -1
  62. package/dist/esm/components/AutoPatternsRoute/AutoPatternsPage.js +1 -2
  63. package/dist/esm/components/AutoPatternsRoute/AutoPatternsPage.js.map +1 -1
  64. package/dist/esm/components/filters/DynamicCollectionFilter.js +4 -10
  65. package/dist/esm/components/filters/DynamicCollectionFilter.js.map +1 -1
  66. package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js +54 -88
  67. package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
  68. package/dist/esm/dataSourceAdapters/cms/fetchCmsData.js +42 -0
  69. package/dist/esm/dataSourceAdapters/cms/fetchCmsData.js.map +1 -0
  70. package/dist/esm/dataSourceAdapters/cms/filterUtils.js +15 -15
  71. package/dist/esm/dataSourceAdapters/cms/filterUtils.js.map +1 -1
  72. package/dist/esm/dataSourceAdapters/cms/sortUtils.js +2 -2
  73. package/dist/esm/dataSourceAdapters/cms/sortUtils.js.map +1 -1
  74. package/dist/esm/dataSourceAdapters/factory.js +1 -21
  75. package/dist/esm/dataSourceAdapters/factory.js.map +1 -1
  76. package/dist/esm/hooks/useActionCell.js +20 -11
  77. package/dist/esm/hooks/useActionCell.js.map +1 -1
  78. package/dist/esm/hooks/useBulkActionToolbar.js +9 -14
  79. package/dist/esm/hooks/useBulkActionToolbar.js.map +1 -1
  80. package/dist/esm/hooks/useCollectionPageActions.js +7 -12
  81. package/dist/esm/hooks/useCollectionPageActions.js.map +1 -1
  82. package/dist/esm/hooks/useEntityPageMoreActions.js +3 -2
  83. package/dist/esm/hooks/useEntityPageMoreActions.js.map +1 -1
  84. package/dist/esm/hooks/useFetchData.js +9 -29
  85. package/dist/esm/hooks/useFetchData.js.map +1 -1
  86. package/dist/esm/hooks/useFilters.js +2 -2
  87. package/dist/esm/hooks/useFilters.js.map +1 -1
  88. package/dist/esm/hooks/useGridFeatures.js +3 -4
  89. package/dist/esm/hooks/useGridFeatures.js.map +1 -1
  90. package/dist/esm/hooks/useTableFeatures.js +3 -4
  91. package/dist/esm/hooks/useTableFeatures.js.map +1 -1
  92. package/dist/esm/hooks/useTableGridSwitchFeatures.js +3 -4
  93. package/dist/esm/hooks/useTableGridSwitchFeatures.js.map +1 -1
  94. package/dist/esm/providers/PatternsWizardOverridesContext.js.map +1 -1
  95. package/dist/esm/providers/SchemaContext.js +28 -5
  96. package/dist/esm/providers/SchemaContext.js.map +1 -1
  97. package/dist/esm/types/CollectionPageConfig.js.map +1 -1
  98. package/dist/esm/types/EntityPageConfig.js.map +1 -1
  99. package/dist/esm/types/actions/actionCell.js.map +1 -1
  100. package/dist/esm/types/actions/base.js.map +1 -1
  101. package/dist/esm/types/actions/bulkActions.js.map +1 -1
  102. package/dist/esm/types/actions/collectionPageActions.js.map +1 -1
  103. package/dist/esm/types/actions/entityPageActions.js.map +1 -1
  104. package/dist/esm/types/index.js +1 -0
  105. package/dist/esm/types/index.js.map +1 -1
  106. package/dist/esm/types/providers.js +2 -0
  107. package/dist/esm/types/providers.js.map +1 -0
  108. package/dist/esm/types/types.js.map +1 -1
  109. package/dist/esm/utils/actions/groupActions.js +25 -0
  110. package/dist/esm/utils/actions/groupActions.js.map +1 -0
  111. package/dist/esm/utils/actions/index.js +1 -2
  112. package/dist/esm/utils/actions/index.js.map +1 -1
  113. package/dist/esm/utils/actions/types.js.map +1 -1
  114. package/dist/types/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.d.ts.map +1 -1
  115. package/dist/types/components/AutoPatternsEntityPage/Fields/DateTime.d.ts.map +1 -1
  116. package/dist/types/components/AutoPatternsRoute/AutoPatternsPage.d.ts.map +1 -1
  117. package/dist/types/components/filters/DynamicCollectionFilter.d.ts.map +1 -1
  118. package/dist/types/dataSourceAdapters/cms/cmsAdapter.d.ts +1 -10
  119. package/dist/types/dataSourceAdapters/cms/cmsAdapter.d.ts.map +1 -1
  120. package/dist/types/dataSourceAdapters/cms/fetchCmsData.d.ts +13 -0
  121. package/dist/types/dataSourceAdapters/cms/fetchCmsData.d.ts.map +1 -0
  122. package/dist/types/dataSourceAdapters/cms/filterUtils.d.ts +9 -7
  123. package/dist/types/dataSourceAdapters/cms/filterUtils.d.ts.map +1 -1
  124. package/dist/types/dataSourceAdapters/cms/sortUtils.d.ts +2 -2
  125. package/dist/types/dataSourceAdapters/cms/sortUtils.d.ts.map +1 -1
  126. package/dist/types/dataSourceAdapters/factory.d.ts +1 -11
  127. package/dist/types/dataSourceAdapters/factory.d.ts.map +1 -1
  128. package/dist/types/hooks/useActionCell.d.ts.map +1 -1
  129. package/dist/types/hooks/useBulkActionToolbar.d.ts.map +1 -1
  130. package/dist/types/hooks/useCollectionPageActions.d.ts.map +1 -1
  131. package/dist/types/hooks/useEntityPageHeaderTexts.d.ts.map +1 -1
  132. package/dist/types/hooks/useEntityPageMoreActions.d.ts.map +1 -1
  133. package/dist/types/hooks/useFetchData.d.ts +13 -7
  134. package/dist/types/hooks/useFetchData.d.ts.map +1 -1
  135. package/dist/types/hooks/useFilters.d.ts +1 -1
  136. package/dist/types/hooks/useGridFeatures.d.ts.map +1 -1
  137. package/dist/types/hooks/useTableFeatures.d.ts.map +1 -1
  138. package/dist/types/hooks/useTableGridSwitchFeatures.d.ts.map +1 -1
  139. package/dist/types/providers/PatternsWizardOverridesContext.d.ts +2 -3
  140. package/dist/types/providers/PatternsWizardOverridesContext.d.ts.map +1 -1
  141. package/dist/types/providers/SchemaContext.d.ts +3 -4
  142. package/dist/types/providers/SchemaContext.d.ts.map +1 -1
  143. package/dist/types/types/CollectionPageConfig.d.ts +2 -7
  144. package/dist/types/types/CollectionPageConfig.d.ts.map +1 -1
  145. package/dist/types/types/EntityPageConfig.d.ts +3 -4
  146. package/dist/types/types/EntityPageConfig.d.ts.map +1 -1
  147. package/dist/types/types/actions/actionCell.d.ts +3 -3
  148. package/dist/types/types/actions/actionCell.d.ts.map +1 -1
  149. package/dist/types/types/actions/base.d.ts +3 -7
  150. package/dist/types/types/actions/base.d.ts.map +1 -1
  151. package/dist/types/types/actions/bulkActions.d.ts +13 -14
  152. package/dist/types/types/actions/bulkActions.d.ts.map +1 -1
  153. package/dist/types/types/actions/collectionPageActions.d.ts +13 -13
  154. package/dist/types/types/actions/collectionPageActions.d.ts.map +1 -1
  155. package/dist/types/types/actions/entityPageActions.d.ts +2 -3
  156. package/dist/types/types/actions/entityPageActions.d.ts.map +1 -1
  157. package/dist/types/types/index.d.ts +1 -0
  158. package/dist/types/types/index.d.ts.map +1 -1
  159. package/dist/types/types/providers.d.ts +11 -0
  160. package/dist/types/types/providers.d.ts.map +1 -0
  161. package/dist/types/types/types.d.ts +25 -1
  162. package/dist/types/types/types.d.ts.map +1 -1
  163. package/dist/types/utils/actions/groupActions.d.ts +3 -0
  164. package/dist/types/utils/actions/groupActions.d.ts.map +1 -0
  165. package/dist/types/utils/actions/index.d.ts +1 -2
  166. package/dist/types/utils/actions/index.d.ts.map +1 -1
  167. package/dist/types/utils/actions/types.d.ts +1 -4
  168. package/dist/types/utils/actions/types.d.ts.map +1 -1
  169. package/package.json +3 -3
  170. package/dist/cjs/utils/actions/customModalAction.js +0 -22
  171. package/dist/cjs/utils/actions/customModalAction.js.map +0 -1
  172. package/dist/esm/utils/actions/customModalAction.js +0 -17
  173. package/dist/esm/utils/actions/customModalAction.js.map +0 -1
  174. package/dist/types/utils/actions/customModalAction.d.ts +0 -5
  175. package/dist/types/utils/actions/customModalAction.d.ts.map +0 -1
@@ -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,13 @@
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
+ const cleanupActionsWithDividers = (actions, inlineCount) => {
5
+ const clean = a => a.filter((x, i, ar) => {
6
+ var _ar;
7
+ return (x == null ? void 0 : x.divider) !== true || i > 0 && i < ar.length - 1 && ((_ar = ar[i - 1]) == null ? void 0 : _ar.divider) !== true;
8
+ });
9
+ return !(actions != null && actions.length) || !inlineCount || inlineCount >= actions.length ? clean(actions || []) : [...clean(actions.slice(0, inlineCount)), ...clean(actions.slice(inlineCount))];
10
+ };
4
11
  export const useActionCell = _ref => {
5
12
  let {
6
13
  config,
@@ -10,8 +17,13 @@ export const useActionCell = _ref => {
10
17
  collectionId
11
18
  });
12
19
  const buildCellActions = useCallback((item, index, api) => {
13
- var _config$primaryAction, _config$secondaryActi, _config$secondaryActi2, _config$secondaryActi3;
20
+ var _config$primaryAction, _config$secondaryActi, _config$secondaryActi2, _config$secondaryActi3, _config$secondaryActi4;
14
21
  const buildAction = actionConfig => {
22
+ if (actionConfig.type === 'divider') {
23
+ return {
24
+ divider: true
25
+ };
26
+ }
15
27
  let actionToResolve = null;
16
28
  const baseParams = {
17
29
  actionParams: {
@@ -34,12 +46,6 @@ export const useActionCell = _ref => {
34
46
  ...baseParams
35
47
  });
36
48
  break;
37
- case 'customModal':
38
- actionToResolve = customModalAction({
39
- action: actionConfig,
40
- ...baseParams
41
- });
42
- break;
43
49
  case 'custom':
44
50
  actionToResolve = customAction({
45
51
  action: actionConfig,
@@ -65,9 +71,12 @@ export const useActionCell = _ref => {
65
71
  };
66
72
  };
67
73
  const primaryAction = config != null && (_config$primaryAction = config.primaryAction) != null && _config$primaryAction.item ? buildAction(config.primaryAction.item) : undefined;
68
- const secondaryActions = config != null && (_config$secondaryActi = config.secondaryActions) != null && _config$secondaryActi.items.length ? config.secondaryActions.items.map(buildAction).filter(Boolean) : [];
69
- const numOfVisibleSecondaryActions = config == null || (_config$secondaryActi2 = config.secondaryActions) == null ? void 0 : _config$secondaryActi2.inlineCount;
70
- const alwaysShowSecondaryActions = config == null || (_config$secondaryActi3 = config.secondaryActions) == null ? void 0 : _config$secondaryActi3.inlineAlwaysVisible;
74
+ const rawSecondaryActions = config != null && (_config$secondaryActi = config.secondaryActions) != null && _config$secondaryActi.items.length ? config.secondaryActions.items.map(buildAction).filter(Boolean) : [];
75
+
76
+ // Process secondary actions with inline count consideration
77
+ const secondaryActions = cleanupActionsWithDividers(rawSecondaryActions, config == null || (_config$secondaryActi2 = config.secondaryActions) == null ? void 0 : _config$secondaryActi2.inlineCount);
78
+ const numOfVisibleSecondaryActions = config == null || (_config$secondaryActi3 = config.secondaryActions) == null ? void 0 : _config$secondaryActi3.inlineCount;
79
+ const alwaysShowSecondaryActions = config == null || (_config$secondaryActi4 = config.secondaryActions) == null ? void 0 : _config$secondaryActi4.inlineAlwaysVisible;
71
80
  if (!primaryAction && !secondaryActions.length) {
72
81
  return {};
73
82
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useActionsSDK","updateAction","customModalAction","customAction","resolveAction","deleteAction","useActionCell","_ref","config","collectionId","sdk","buildCellActions","item","index","api","_config$primaryAction","_config$secondaryActi","_config$secondaryActi2","_config$secondaryActi3","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","resolvedAction","label","tooltip","resolvedActionProps","text","disabledDescription","primaryAction","undefined","secondaryActions","items","length","map","filter","Boolean","numOfVisibleSecondaryActions","inlineCount","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';\n\nexport interface useActionCellParams {\n config?: ActionCellConfig;\n collectionId: string;\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 = (actionConfig: ActionCellItemConfig) => {\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 secondaryActions = config?.secondaryActions?.items.length\n ? config.secondaryActions.items.map(buildAction).filter(Boolean)\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,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 } 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,
@@ -58,17 +52,18 @@ export const useBulkActionToolbar = _ref => {
58
52
  return [];
59
53
  }
60
54
  return config.primaryActions.map((primaryItem, index) => {
61
- if (primaryItem.type === 'single') {
62
- return buildAction(primaryItem.single.item);
55
+ if (primaryItem.type === 'action') {
56
+ return buildAction(primaryItem.action.item);
63
57
  }
64
- if (primaryItem.type === 'multi') {
65
- const subItems = primaryItem.multi.items.map(buildAction).filter(action => Boolean(action));
58
+ if (primaryItem.type === 'menu') {
59
+ const actionGroups = groupActions(primaryItem.menu.items);
60
+ const subItems = actionGroups.map(group => group.map(buildAction).filter(action => Boolean(action))).filter(group => group.length > 0);
66
61
  if (subItems.length === 0) {
67
62
  return null;
68
63
  }
69
64
  return {
70
- label: primaryItem.multi.label,
71
- subItems: [subItems],
65
+ label: primaryItem.menu.label,
66
+ subItems,
72
67
  dataHook: `bulk-multi-action-${index}`
73
68
  };
74
69
  }
@@ -76,7 +71,7 @@ export const useBulkActionToolbar = _ref => {
76
71
  }).filter(action => Boolean(action));
77
72
  };
78
73
  const primaryActionItems = buildPrimaryActions();
79
- const secondaryActionItems = ((config == null ? void 0 : config.secondaryActions) || []).map(sectionItems => sectionItems.map(a => buildAction(a)).filter(action => Boolean(action)));
74
+ const secondaryActionItems = config != null && config.secondaryActions ? groupActions(config.secondaryActions).map(group => group.map(buildAction).filter(action => Boolean(action))).filter(group => group.length > 0) : [];
80
75
  return /*#__PURE__*/React.createElement(MultiBulkActionToolbar, {
81
76
  primaryActionItems: primaryActionItems,
82
77
  secondaryActionItems: secondaryActionItems
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useActionsSDK","MultiBulkActionToolbar","bulkDeleteAction","customAction","customModalAction","resolveAction","useBulkActionToolbar","_ref","config","collectionId","sdk","bulkActionToolbar","param","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","resolvedAction","icon","resolvedActionParams","prefixIcon","isValidElement","undefined","dataHook","id","buildPrimaryActions","primaryActions","map","primaryItem","index","single","item","subItems","multi","items","filter","Boolean","length","label","primaryActionItems","secondaryActionItems","secondaryActions","sectionItems","a","createElement","hasPrimaryActions","hasSecondaryActions"],"sources":["../../../src/hooks/useBulkActionToolbar.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n BulkActionItemConfig,\n BulkActionsConfig,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n TableProps,\n MultiBulkActionToolbar,\n ActionSubitem,\n} from '@wix/patterns';\nimport {\n bulkDeleteAction,\n customAction,\n customModalAction,\n resolveAction,\n} from '../utils/actions';\n\nexport type BulkActionToolbarRenderProp = Parameters<\n NonNullable<TableProps<any, any>['bulkActionToolbar']>\n>[0];\n\nexport interface useBulkActionToolbarParams {\n config?: BulkActionsConfig;\n collectionId: string;\n}\n\nexport const useBulkActionToolbar = ({\n config,\n collectionId,\n}: useBulkActionToolbarParams) => {\n const sdk = useActionsSDK({\n collectionId,\n });\n\n const bulkActionToolbar = useCallback(\n (param: BulkActionToolbarRenderProp) => {\n const buildAction = (\n actionConfig: BulkActionItemConfig,\n ): ActionSubitem | null => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: param,\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'bulkDelete':\n actionToResolve = bulkDeleteAction({\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 { icon, ...resolvedActionParams } = resolvedAction;\n\n return {\n prefixIcon: React.isValidElement(icon) ? icon : undefined,\n dataHook: actionConfig.id,\n ...resolvedActionParams,\n };\n };\n\n const buildPrimaryActions = (): ActionSubitem[] => {\n if (!config?.primaryActions) {\n return [];\n }\n\n return config.primaryActions\n .map((primaryItem, index) => {\n if (primaryItem.type === 'single') {\n return buildAction(primaryItem.single.item);\n }\n\n if (primaryItem.type === 'multi') {\n const subItems = primaryItem.multi.items\n .map(buildAction)\n .filter((action): action is ActionSubitem => Boolean(action));\n\n if (subItems.length === 0) {\n return null;\n }\n\n return {\n label: primaryItem.multi.label,\n subItems: [subItems],\n dataHook: `bulk-multi-action-${index}`,\n };\n }\n\n return null;\n })\n .filter((action): action is ActionSubitem => Boolean(action));\n };\n\n const primaryActionItems = buildPrimaryActions();\n const secondaryActionItems = (config?.secondaryActions || []).map(\n (sectionItems) =>\n sectionItems\n .map((a) => buildAction(a))\n .filter((action): action is ActionSubitem => Boolean(action)),\n );\n\n return (\n <MultiBulkActionToolbar\n primaryActionItems={primaryActionItems}\n secondaryActionItems={secondaryActionItems}\n />\n );\n },\n [config, sdk],\n );\n\n if (!config) {\n return undefined;\n }\n\n const hasPrimaryActions =\n config.primaryActions && config.primaryActions.length > 0;\n\n const hasSecondaryActions =\n config.secondaryActions && config.secondaryActions.length > 0;\n\n if (!hasPrimaryActions && !hasSecondaryActions) {\n return undefined;\n }\n\n return bulkActionToolbar;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useActionsSDK","MultiBulkActionToolbar","bulkDeleteAction","customAction","resolveAction","groupActions","useBulkActionToolbar","_ref","config","collectionId","sdk","bulkActionToolbar","param","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","resolvedAction","icon","resolvedActionParams","prefixIcon","isValidElement","undefined","dataHook","id","buildPrimaryActions","primaryActions","map","primaryItem","index","item","actionGroups","menu","items","subItems","group","filter","Boolean","length","label","primaryActionItems","secondaryActionItems","secondaryActions","createElement","hasPrimaryActions","hasSecondaryActions"],"sources":["../../../src/hooks/useBulkActionToolbar.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n BulkActionItemConfig,\n BulkActionsConfig,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n TableProps,\n MultiBulkActionToolbar,\n ActionSubitem,\n} from '@wix/patterns';\nimport {\n bulkDeleteAction,\n customAction,\n resolveAction,\n groupActions,\n} from '../utils/actions';\n\nexport type BulkActionToolbarRenderProp = Parameters<\n NonNullable<TableProps<any, any>['bulkActionToolbar']>\n>[0];\n\nexport interface useBulkActionToolbarParams {\n config?: BulkActionsConfig;\n collectionId: string;\n}\n\nexport const useBulkActionToolbar = ({\n config,\n collectionId,\n}: useBulkActionToolbarParams) => {\n const sdk = useActionsSDK({\n collectionId,\n });\n\n const bulkActionToolbar = useCallback(\n (param: BulkActionToolbarRenderProp) => {\n const buildAction = (\n actionConfig: BulkActionItemConfig,\n ): ActionSubitem | null => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: param,\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'bulkDelete':\n actionToResolve = bulkDeleteAction({\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 { icon, ...resolvedActionParams } = resolvedAction;\n\n return {\n prefixIcon: React.isValidElement(icon) ? icon : undefined,\n dataHook: actionConfig.id,\n ...resolvedActionParams,\n };\n };\n\n const buildPrimaryActions = (): ActionSubitem[] => {\n if (!config?.primaryActions) {\n return [];\n }\n\n return config.primaryActions\n .map((primaryItem, index) => {\n if (primaryItem.type === 'action') {\n return buildAction(primaryItem.action.item);\n }\n\n if (primaryItem.type === 'menu') {\n const actionGroups = groupActions(primaryItem.menu.items);\n const subItems = actionGroups\n .map((group) =>\n group\n .map(buildAction)\n .filter((action): action is ActionSubitem =>\n Boolean(action),\n ),\n )\n .filter((group) => group.length > 0);\n\n if (subItems.length === 0) {\n return null;\n }\n\n return {\n label: primaryItem.menu.label,\n subItems,\n dataHook: `bulk-multi-action-${index}`,\n };\n }\n\n return null;\n })\n .filter((action): action is ActionSubitem => Boolean(action));\n };\n\n const primaryActionItems = buildPrimaryActions();\n\n const secondaryActionItems = config?.secondaryActions\n ? groupActions(config.secondaryActions)\n .map((group) =>\n group\n .map(buildAction)\n .filter((action): action is ActionSubitem => Boolean(action)),\n )\n .filter((group) => group.length > 0)\n : [];\n\n return (\n <MultiBulkActionToolbar\n primaryActionItems={primaryActionItems}\n secondaryActionItems={secondaryActionItems}\n />\n );\n },\n [config, sdk],\n );\n\n if (!config) {\n return undefined;\n }\n\n const hasPrimaryActions =\n config.primaryActions && config.primaryActions.length > 0;\n\n const hasSecondaryActions =\n config.secondaryActions && config.secondaryActions.length > 0;\n\n if (!hasPrimaryActions && !hasSecondaryActions) {\n return undefined;\n }\n\n return bulkActionToolbar;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import React, { useCallback, useMemo } from 'react';
2
2
  import { useActionsSDK } from './useActionsSDK';
3
- import { createAction, customAction, customModalAction, resolveAction } from '../utils/actions';
3
+ import { createAction, customAction, resolveAction, groupActions } from '../utils/actions';
4
4
  import { PrimaryActions, SecondaryActions } from '@wix/patterns';
5
5
  export const useCollectionPageActions = _ref => {
6
6
  let {
@@ -28,12 +28,6 @@ export const useCollectionPageActions = _ref => {
28
28
  ...baseParams
29
29
  });
30
30
  break;
31
- case 'customModal':
32
- actionToResolve = customModalAction({
33
- action: actionConfig,
34
- ...baseParams
35
- });
36
- break;
37
31
  case 'custom':
38
32
  actionToResolve = customAction({
39
33
  action: actionConfig,
@@ -59,16 +53,17 @@ export const useCollectionPageActions = _ref => {
59
53
  };
60
54
  };
61
55
  const handleActionsType = actions => {
62
- if (actions.type === 'single') {
63
- return buildAction(actions.single.item);
56
+ if (actions.type === 'action') {
57
+ return buildAction(actions.action.item);
64
58
  }
65
- if (actions.type === 'multi') {
66
- const subItems = actions.multi.items.map(buildAction).filter(action => action !== null);
59
+ if (actions.type === 'menu') {
60
+ const actionGroups = groupActions(actions.menu.items);
61
+ const subItems = actionGroups.map(group => group.map(buildAction).filter(action => action !== null)).filter(group => group.length > 0);
67
62
  if (!subItems.length) {
68
63
  return null;
69
64
  }
70
65
  return {
71
- label: actions.multi.label,
66
+ label: actions.menu.label,
72
67
  subItems
73
68
  };
74
69
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useMemo","useActionsSDK","createAction","customAction","customModalAction","resolveAction","PrimaryActions","SecondaryActions","useCollectionPageActions","_ref","collectionPageActions","sdk","collectionId","buildCollectionPageActions","buildAction","actionConfig","actionToResolve","baseParams","actionParams","collection","type","action","resolvedAction","tooltip","icon","resolvedActionProps","prefixIcon","disabledDescription","handleActionsType","actions","single","item","subItems","multi","items","map","filter","length","label","primaryActions","secondaryActions","createElement","undefined"],"sources":["../../../src/hooks/useCollectionPageActions.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport {\n CollectionPageActionConfig,\n CollectionPageConfig,\n CollectionPagePrimaryActions,\n CollectionPageSecondaryActions,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n createAction,\n customAction,\n customModalAction,\n resolveAction,\n} from '../utils/actions';\nimport { IconElement } from '@wix/design-system';\nimport { PrimaryActions, SecondaryActions } from '@wix/patterns';\n\nexport interface UseCollectionPageActionsParams {\n collectionPageActions: CollectionPageConfig['actions'];\n}\n\nexport const useCollectionPageActions = ({\n collectionPageActions,\n}: UseCollectionPageActionsParams) => {\n const sdk = useActionsSDK({\n collectionId: '',\n });\n\n const buildCollectionPageActions = useCallback(() => {\n if (!collectionPageActions) {\n return;\n }\n\n const buildAction = (actionConfig: CollectionPageActionConfig) => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: {\n collectionId: actionConfig.collection.collectionId,\n },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'create':\n actionToResolve = createAction({\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 { tooltip, icon, ...resolvedActionProps } = resolvedAction;\n\n return {\n ...resolvedActionProps,\n prefixIcon: icon as IconElement,\n disabledDescription: resolvedAction.tooltip,\n };\n };\n\n const handleActionsType = (\n actions: CollectionPagePrimaryActions | CollectionPageSecondaryActions,\n ) => {\n if (actions.type === 'single') {\n return buildAction(actions.single.item);\n }\n\n if (actions.type === 'multi') {\n const subItems = actions.multi.items\n .map(buildAction)\n .filter((action) => action !== null);\n if (!subItems.length) {\n return null;\n }\n\n return {\n label: actions.multi.label,\n subItems,\n };\n }\n\n return null;\n };\n\n const primaryActions =\n collectionPageActions?.primaryActions &&\n handleActionsType(collectionPageActions.primaryActions);\n\n const secondaryActions =\n collectionPageActions?.secondaryActions &&\n handleActionsType(collectionPageActions.secondaryActions);\n\n if (!primaryActions && !secondaryActions) {\n return;\n }\n\n return {\n primaryActions: primaryActions ? (\n <PrimaryActions {...primaryActions} />\n ) : undefined,\n secondaryActions: secondaryActions ? (\n <SecondaryActions {...secondaryActions} />\n ) : undefined,\n };\n }, [collectionPageActions, sdk]);\n\n const actions = useMemo(() => {\n return {\n primaryActions: undefined,\n secondaryActions: undefined,\n };\n }, []);\n\n if (\n !collectionPageActions?.primaryActions &&\n !collectionPageActions?.secondaryActions\n ) {\n return { ...actions };\n }\n\n return buildCollectionPageActions() ?? { ...actions };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMemo","useActionsSDK","createAction","customAction","resolveAction","groupActions","PrimaryActions","SecondaryActions","useCollectionPageActions","_ref","collectionPageActions","sdk","collectionId","buildCollectionPageActions","buildAction","actionConfig","actionToResolve","baseParams","actionParams","collection","type","action","resolvedAction","tooltip","icon","resolvedActionProps","prefixIcon","disabledDescription","handleActionsType","actions","item","actionGroups","menu","items","subItems","map","group","filter","length","label","primaryActions","secondaryActions","createElement","undefined"],"sources":["../../../src/hooks/useCollectionPageActions.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport {\n CollectionPageActionConfig,\n CollectionPageConfig,\n CollectionPagePrimaryActions,\n CollectionPageSecondaryActions,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n createAction,\n customAction,\n resolveAction,\n groupActions,\n} from '../utils/actions';\nimport { IconElement } from '@wix/design-system';\nimport { PrimaryActions, SecondaryActions } from '@wix/patterns';\n\nexport interface UseCollectionPageActionsParams {\n collectionPageActions: CollectionPageConfig['actions'];\n}\n\nexport const useCollectionPageActions = ({\n collectionPageActions,\n}: UseCollectionPageActionsParams) => {\n const sdk = useActionsSDK({\n collectionId: '',\n });\n\n const buildCollectionPageActions = useCallback(() => {\n if (!collectionPageActions) {\n return;\n }\n\n const buildAction = (actionConfig: CollectionPageActionConfig) => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: {\n collectionId: actionConfig.collection.collectionId,\n },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'create':\n actionToResolve = createAction({\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 { tooltip, icon, ...resolvedActionProps } = resolvedAction;\n\n return {\n ...resolvedActionProps,\n prefixIcon: icon as IconElement,\n disabledDescription: resolvedAction.tooltip,\n };\n };\n\n const handleActionsType = (\n actions: CollectionPagePrimaryActions | CollectionPageSecondaryActions,\n ) => {\n if (actions.type === 'action') {\n return buildAction(actions.action.item);\n }\n\n if (actions.type === 'menu') {\n const actionGroups = groupActions(actions.menu.items);\n const subItems = actionGroups\n .map((group) =>\n group.map(buildAction).filter((action) => action !== null),\n )\n .filter((group) => group.length > 0);\n\n if (!subItems.length) {\n return null;\n }\n\n return {\n label: actions.menu.label,\n subItems,\n };\n }\n\n return null;\n };\n\n const primaryActions =\n collectionPageActions?.primaryActions &&\n handleActionsType(collectionPageActions.primaryActions);\n\n const secondaryActions =\n collectionPageActions?.secondaryActions &&\n handleActionsType(collectionPageActions.secondaryActions);\n\n if (!primaryActions && !secondaryActions) {\n return;\n }\n\n return {\n primaryActions: primaryActions ? (\n <PrimaryActions {...primaryActions} />\n ) : undefined,\n secondaryActions: secondaryActions ? (\n <SecondaryActions {...secondaryActions} />\n ) : undefined,\n };\n }, [collectionPageActions, sdk]);\n\n const actions = useMemo(() => {\n return {\n primaryActions: undefined,\n secondaryActions: undefined,\n };\n }, []);\n\n if (\n !collectionPageActions?.primaryActions &&\n !collectionPageActions?.secondaryActions\n ) {\n return { ...actions };\n }\n\n return buildCollectionPageActions() ?? { ...actions };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { customAction, resolveAction } from '../utils/actions';
1
+ import { customAction, resolveAction, groupActions } from '../utils/actions';
2
2
  import { useCallback } from 'react';
3
3
  export function useEntityPageMoreActions(moreActions, entity, sdk, form) {
4
4
  const buildEntityPageActions = useCallback(() => {
@@ -35,7 +35,8 @@ export function useEntityPageMoreActions(moreActions, entity, sdk, form) {
35
35
  disabled: resolved.disabled
36
36
  };
37
37
  };
38
- return moreActions.map(group => group.map(buildAction).filter(Boolean));
38
+ const actionGroups = groupActions(moreActions);
39
+ return actionGroups.map(group => group.map(buildAction).filter(action => Boolean(action))).filter(group => group.length > 0);
39
40
  }, [moreActions, sdk, entity, form]);
40
41
  return buildEntityPageActions() ?? [];
41
42
  }
@@ -1 +1 @@
1
- {"version":3,"names":["customAction","resolveAction","useCallback","useEntityPageMoreActions","moreActions","entity","sdk","form","buildEntityPageActions","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","resolved","onClick","text","label","prefixIcon","icon","disabled","map","group","filter","Boolean"],"sources":["../../../src/hooks/useEntityPageMoreActions.ts"],"sourcesContent":["import { ActionsSDK, ResolvedAction } from '../types';\nimport {\n EntityPageMoreActions,\n EntityPageActionConfig,\n} from '../types/actions';\nimport { customAction, resolveAction } from '../utils/actions';\nimport { useCallback } from 'react';\nimport { MoreActionsItem } from '@wix/patterns';\nimport { FieldValues, UseFormReturn } from '@wix/patterns/form';\n\nexport function useEntityPageMoreActions(\n moreActions: EntityPageMoreActions | undefined,\n entity: Record<string, any>,\n sdk: ActionsSDK,\n form: UseFormReturn<FieldValues, any, undefined>,\n) {\n const buildEntityPageActions = useCallback(() => {\n if (!moreActions) {\n return;\n }\n\n const buildAction = (\n actionConfig: EntityPageActionConfig,\n ): MoreActionsItem | null => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n const baseParams = {\n actionParams: { entity, form },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n default:\n return null;\n }\n\n if (!actionToResolve) {\n return null;\n }\n\n const resolved = resolveAction(\n actionConfig,\n actionToResolve,\n ) as ResolvedAction;\n\n return {\n onClick: resolved.onClick,\n text: resolved.label,\n prefixIcon: resolved.icon,\n disabled: resolved.disabled,\n };\n };\n\n return (moreActions as EntityPageActionConfig[][]).map((group) =>\n group.map(buildAction).filter(Boolean),\n ) as MoreActionsItem[][];\n }, [moreActions, sdk, entity, form]);\n\n return buildEntityPageActions() ?? [];\n}\n"],"mappings":"AAKA,SAASA,YAAY,EAAEC,aAAa,QAAQ,kBAAkB;AAC9D,SAASC,WAAW,QAAQ,OAAO;AAInC,OAAO,SAASC,wBAAwBA,CACtCC,WAA8C,EAC9CC,MAA2B,EAC3BC,GAAe,EACfC,IAAgD,EAChD;EACA,MAAMC,sBAAsB,GAAGN,WAAW,CAAC,MAAM;IAC/C,IAAI,CAACE,WAAW,EAAE;MAChB;IACF;IAEA,MAAMK,WAAW,GACfC,YAAoC,IACT;MAC3B,IAAIC,eAA+C,GAAG,IAAI;MAC1D,MAAMC,UAAU,GAAG;QACjBC,YAAY,EAAE;UAAER,MAAM;UAAEE;QAAK,CAAC;QAC9BD;MACF,CAAC;MAED,QAAQI,YAAY,CAACI,IAAI;QACvB,KAAK,QAAQ;UACXH,eAAe,GAAGX,YAAY,CAAC;YAC7Be,MAAM,EAAEL,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QACF;UACE,OAAO,IAAI;MACf;MAEA,IAAI,CAACD,eAAe,EAAE;QACpB,OAAO,IAAI;MACb;MAEA,MAAMK,QAAQ,GAAGf,aAAa,CAC5BS,YAAY,EACZC,eACF,CAAmB;MAEnB,OAAO;QACLM,OAAO,EAAED,QAAQ,CAACC,OAAO;QACzBC,IAAI,EAAEF,QAAQ,CAACG,KAAK;QACpBC,UAAU,EAAEJ,QAAQ,CAACK,IAAI;QACzBC,QAAQ,EAAEN,QAAQ,CAACM;MACrB,CAAC;IACH,CAAC;IAED,OAAQlB,WAAW,CAAgCmB,GAAG,CAAEC,KAAK,IAC3DA,KAAK,CAACD,GAAG,CAACd,WAAW,CAAC,CAACgB,MAAM,CAACC,OAAO,CACvC,CAAC;EACH,CAAC,EAAE,CAACtB,WAAW,EAAEE,GAAG,EAAED,MAAM,EAAEE,IAAI,CAAC,CAAC;EAEpC,OAAOC,sBAAsB,CAAC,CAAC,IAAI,EAAE;AACvC","ignoreList":[]}
1
+ {"version":3,"names":["customAction","resolveAction","groupActions","useCallback","useEntityPageMoreActions","moreActions","entity","sdk","form","buildEntityPageActions","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","resolved","onClick","text","label","prefixIcon","icon","disabled","actionGroups","map","group","filter","Boolean","length"],"sources":["../../../src/hooks/useEntityPageMoreActions.ts"],"sourcesContent":["import { ActionsSDK, ResolvedAction } from '../types';\nimport { EntityPageMoreActions } from '../types/actions';\nimport { customAction, resolveAction, groupActions } from '../utils/actions';\nimport { useCallback } from 'react';\nimport { MoreActionsItem } from '@wix/patterns';\nimport { FieldValues, UseFormReturn } from '@wix/patterns/form';\nimport { CustomActionConfig } from '../types/actions/base';\n\nexport function useEntityPageMoreActions(\n moreActions: EntityPageMoreActions | undefined,\n entity: Record<string, any>,\n sdk: ActionsSDK,\n form: UseFormReturn<FieldValues, any, undefined>,\n) {\n const buildEntityPageActions = useCallback(() => {\n if (!moreActions) {\n return;\n }\n\n const buildAction = (\n actionConfig: CustomActionConfig,\n ): MoreActionsItem | null => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n const baseParams = {\n actionParams: { entity, form },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n default:\n return null;\n }\n\n if (!actionToResolve) {\n return null;\n }\n\n const resolved = resolveAction(\n actionConfig,\n actionToResolve,\n ) as ResolvedAction;\n\n return {\n onClick: resolved.onClick,\n text: resolved.label,\n prefixIcon: resolved.icon,\n disabled: resolved.disabled,\n };\n };\n\n const actionGroups = groupActions(moreActions);\n return actionGroups\n .map((group) =>\n group\n .map(buildAction)\n .filter((action): action is MoreActionsItem => Boolean(action)),\n )\n .filter((group) => group.length > 0);\n }, [moreActions, sdk, entity, form]);\n\n return buildEntityPageActions() ?? [];\n}\n"],"mappings":"AAEA,SAASA,YAAY,EAAEC,aAAa,EAAEC,YAAY,QAAQ,kBAAkB;AAC5E,SAASC,WAAW,QAAQ,OAAO;AAKnC,OAAO,SAASC,wBAAwBA,CACtCC,WAA8C,EAC9CC,MAA2B,EAC3BC,GAAe,EACfC,IAAgD,EAChD;EACA,MAAMC,sBAAsB,GAAGN,WAAW,CAAC,MAAM;IAC/C,IAAI,CAACE,WAAW,EAAE;MAChB;IACF;IAEA,MAAMK,WAAW,GACfC,YAAgC,IACL;MAC3B,IAAIC,eAA+C,GAAG,IAAI;MAC1D,MAAMC,UAAU,GAAG;QACjBC,YAAY,EAAE;UAAER,MAAM;UAAEE;QAAK,CAAC;QAC9BD;MACF,CAAC;MAED,QAAQI,YAAY,CAACI,IAAI;QACvB,KAAK,QAAQ;UACXH,eAAe,GAAGZ,YAAY,CAAC;YAC7BgB,MAAM,EAAEL,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QACF;UACE,OAAO,IAAI;MACf;MAEA,IAAI,CAACD,eAAe,EAAE;QACpB,OAAO,IAAI;MACb;MAEA,MAAMK,QAAQ,GAAGhB,aAAa,CAC5BU,YAAY,EACZC,eACF,CAAmB;MAEnB,OAAO;QACLM,OAAO,EAAED,QAAQ,CAACC,OAAO;QACzBC,IAAI,EAAEF,QAAQ,CAACG,KAAK;QACpBC,UAAU,EAAEJ,QAAQ,CAACK,IAAI;QACzBC,QAAQ,EAAEN,QAAQ,CAACM;MACrB,CAAC;IACH,CAAC;IAED,MAAMC,YAAY,GAAGtB,YAAY,CAACG,WAAW,CAAC;IAC9C,OAAOmB,YAAY,CAChBC,GAAG,CAAEC,KAAK,IACTA,KAAK,CACFD,GAAG,CAACf,WAAW,CAAC,CAChBiB,MAAM,CAAEX,MAAM,IAAgCY,OAAO,CAACZ,MAAM,CAAC,CAClE,CAAC,CACAW,MAAM,CAAED,KAAK,IAAKA,KAAK,CAACG,MAAM,GAAG,CAAC,CAAC;EACxC,CAAC,EAAE,CAACxB,WAAW,EAAEE,GAAG,EAAED,MAAM,EAAEE,IAAI,CAAC,CAAC;EAEpC,OAAOC,sBAAsB,CAAC,CAAC,IAAI,EAAE;AACvC","ignoreList":[]}
@@ -1,39 +1,19 @@
1
1
  import React from 'react';
2
- import { usePatternsWizardOverridesContext } from '../providers';
3
2
  import { useSchema } from '../providers/SchemaContext';
4
- import { createDataProvider } from '../dataSourceAdapters/factory';
5
3
  export const useFetchData = _ref => {
6
4
  let {
7
- collectionConfig,
8
- visibleFieldIds,
9
- filtersMapping
5
+ searchableFieldIds,
6
+ filterFieldMapping
10
7
  } = _ref;
11
8
  const schema = useSchema();
12
- const overrides = usePatternsWizardOverridesContext();
13
- const {
14
- fetchData: fetchDataOverride
15
- } = collectionConfig;
16
- const defaultDataProvider = React.useMemo(() => {
17
- if (!schema) {
18
- throw new Error('useFetchData: schema is not available');
19
- }
20
- return createDataProvider({
21
- collectionId: collectionConfig.collectionId,
22
- entityTypeSource: collectionConfig.entityTypeSource,
23
- schema,
24
- visibleFieldIds,
25
- filtersMapping
26
- });
27
- }, [schema, collectionConfig.collectionId, collectionConfig.entityTypeSource, visibleFieldIds, filtersMapping]);
28
9
  const fetchData = React.useMemo(() => {
29
- const defaultFetch = defaultDataProvider == null ? void 0 : defaultDataProvider.fetchData;
30
- if (fetchDataOverride != null && fetchDataOverride.id) {
31
- var _overrides$fetchData;
32
- const overrideFetch = overrides == null || (_overrides$fetchData = overrides.fetchData) == null ? void 0 : _overrides$fetchData[fetchDataOverride.id];
33
- return overrideFetch ?? defaultFetch;
34
- }
35
- return defaultFetch;
36
- }, [defaultDataProvider, fetchDataOverride == null ? void 0 : fetchDataOverride.id, overrides == null ? void 0 : overrides.fetchData]);
10
+ return query => {
11
+ return schema.actions.find(query, {
12
+ searchableFieldIds: searchableFieldIds || [],
13
+ filterFieldMapping
14
+ });
15
+ };
16
+ }, [schema, searchableFieldIds, filterFieldMapping]);
37
17
  return {
38
18
  fetchData
39
19
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","usePatternsWizardOverridesContext","useSchema","createDataProvider","useFetchData","_ref","collectionConfig","visibleFieldIds","filtersMapping","schema","overrides","fetchData","fetchDataOverride","defaultDataProvider","useMemo","Error","collectionId","entityTypeSource","defaultFetch","id","_overrides$fetchData","overrideFetch"],"sources":["../../../src/hooks/useFetchData.tsx"],"sourcesContent":["import React from 'react';\nimport { usePatternsWizardOverridesContext } from '../providers';\nimport { CollectionConfig, Filter } from '../types';\nimport { useSchema } from '../providers/SchemaContext';\nimport { createDataProvider } from '../dataSourceAdapters/factory';\n\nexport const useFetchData = ({\n collectionConfig,\n visibleFieldIds,\n filtersMapping,\n}: {\n collectionConfig: CollectionConfig;\n visibleFieldIds: string[];\n filtersMapping?: Record<string, Filter>;\n}) => {\n const schema = useSchema();\n const overrides = usePatternsWizardOverridesContext();\n const { fetchData: fetchDataOverride } = collectionConfig;\n\n const defaultDataProvider = React.useMemo(() => {\n if (!schema) {\n throw new Error('useFetchData: schema is not available');\n }\n return createDataProvider({\n collectionId: collectionConfig.collectionId,\n entityTypeSource: collectionConfig.entityTypeSource,\n schema,\n visibleFieldIds,\n filtersMapping,\n });\n }, [\n schema,\n collectionConfig.collectionId,\n collectionConfig.entityTypeSource,\n visibleFieldIds,\n filtersMapping,\n ]);\n\n const fetchData = React.useMemo(() => {\n const defaultFetch = defaultDataProvider?.fetchData;\n\n if (fetchDataOverride?.id) {\n const overrideFetch = overrides?.fetchData?.[fetchDataOverride.id];\n return overrideFetch ?? defaultFetch;\n }\n return defaultFetch;\n }, [defaultDataProvider, fetchDataOverride?.id, overrides?.fetchData]);\n\n return {\n fetchData,\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,iCAAiC,QAAQ,cAAc;AAEhE,SAASC,SAAS,QAAQ,4BAA4B;AACtD,SAASC,kBAAkB,QAAQ,+BAA+B;AAElE,OAAO,MAAMC,YAAY,GAAGC,IAAA,IAQtB;EAAA,IARuB;IAC3BC,gBAAgB;IAChBC,eAAe;IACfC;EAKF,CAAC,GAAAH,IAAA;EACC,MAAMI,MAAM,GAAGP,SAAS,CAAC,CAAC;EAC1B,MAAMQ,SAAS,GAAGT,iCAAiC,CAAC,CAAC;EACrD,MAAM;IAAEU,SAAS,EAAEC;EAAkB,CAAC,GAAGN,gBAAgB;EAEzD,MAAMO,mBAAmB,GAAGb,KAAK,CAACc,OAAO,CAAC,MAAM;IAC9C,IAAI,CAACL,MAAM,EAAE;MACX,MAAM,IAAIM,KAAK,CAAC,uCAAuC,CAAC;IAC1D;IACA,OAAOZ,kBAAkB,CAAC;MACxBa,YAAY,EAAEV,gBAAgB,CAACU,YAAY;MAC3CC,gBAAgB,EAAEX,gBAAgB,CAACW,gBAAgB;MACnDR,MAAM;MACNF,eAAe;MACfC;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CACDC,MAAM,EACNH,gBAAgB,CAACU,YAAY,EAC7BV,gBAAgB,CAACW,gBAAgB,EACjCV,eAAe,EACfC,cAAc,CACf,CAAC;EAEF,MAAMG,SAAS,GAAGX,KAAK,CAACc,OAAO,CAAC,MAAM;IACpC,MAAMI,YAAY,GAAGL,mBAAmB,oBAAnBA,mBAAmB,CAAEF,SAAS;IAEnD,IAAIC,iBAAiB,YAAjBA,iBAAiB,CAAEO,EAAE,EAAE;MAAA,IAAAC,oBAAA;MACzB,MAAMC,aAAa,GAAGX,SAAS,aAAAU,oBAAA,GAATV,SAAS,CAAEC,SAAS,qBAApBS,oBAAA,CAAuBR,iBAAiB,CAACO,EAAE,CAAC;MAClE,OAAOE,aAAa,IAAIH,YAAY;IACtC;IACA,OAAOA,YAAY;EACrB,CAAC,EAAE,CAACL,mBAAmB,EAAED,iBAAiB,oBAAjBA,iBAAiB,CAAEO,EAAE,EAAET,SAAS,oBAATA,SAAS,CAAEC,SAAS,CAAC,CAAC;EAEtE,OAAO;IACLA;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useSchema","useFetchData","_ref","searchableFieldIds","filterFieldMapping","schema","fetchData","useMemo","query","actions","find"],"sources":["../../../src/hooks/useFetchData.tsx"],"sourcesContent":["import React from 'react';\nimport { useSchema } from '../providers/SchemaContext';\nimport { ComputedQuery } from '@wix/patterns';\n\ninterface UseFetchDataProps {\n searchableFieldIds?: string[];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n}\n\nexport const useFetchData = ({\n searchableFieldIds,\n filterFieldMapping,\n}: UseFetchDataProps) => {\n const schema = useSchema();\n\n const fetchData = React.useMemo(() => {\n return (query: ComputedQuery<any>) => {\n return schema.actions.find(query, {\n searchableFieldIds: searchableFieldIds || [],\n filterFieldMapping,\n });\n };\n }, [schema, searchableFieldIds, filterFieldMapping]);\n\n return {\n fetchData,\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,4BAA4B;AAQtD,OAAO,MAAMC,YAAY,GAAGC,IAAA,IAGH;EAAA,IAHI;IAC3BC,kBAAkB;IAClBC;EACiB,CAAC,GAAAF,IAAA;EAClB,MAAMG,MAAM,GAAGL,SAAS,CAAC,CAAC;EAE1B,MAAMM,SAAS,GAAGP,KAAK,CAACQ,OAAO,CAAC,MAAM;IACpC,OAAQC,KAAyB,IAAK;MACpC,OAAOH,MAAM,CAACI,OAAO,CAACC,IAAI,CAACF,KAAK,EAAE;QAChCL,kBAAkB,EAAEA,kBAAkB,IAAI,EAAE;QAC5CC;MACF,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,EAAE,CAACC,MAAM,EAAEF,kBAAkB,EAAEC,kBAAkB,CAAC,CAAC;EAEpD,OAAO;IACLE;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -91,7 +91,7 @@ export const useFilters = configuration => {
91
91
  });
92
92
  return currFilters;
93
93
  }, [configuration == null ? void 0 : configuration.items, schema.fields, schemaRegistry]);
94
- const filtersMapping = React.useMemo(() => {
94
+ const filterFieldMapping = React.useMemo(() => {
95
95
  return configuration == null ? void 0 : configuration.items.reduce((acc, filter) => {
96
96
  acc[filter.id] = filter;
97
97
  return acc;
@@ -125,7 +125,7 @@ export const useFilters = configuration => {
125
125
  collectionToolbarFiltersProps
126
126
  });
127
127
  return {
128
- filtersMapping,
128
+ filterFieldMapping,
129
129
  filtersObject: filtersData.filters,
130
130
  filterComponent: filtersData.components.length > 0 ? /*#__PURE__*/React.createElement(CollectionToolbarFilters, collectionToolbarFiltersProps, filtersData.components) : undefined
131
131
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","CollectionToolbarFilters","useSchema","useSchemaRegistry","StaticCollectionFilter","DynamicCollectionFilter","createDateTimeFilter","createBooleanFilter","createNumberFilter","createEnumFilter","createReferenceFilter","useFilters","configuration","schema","schemaRegistry","filters","useMemo","currFilters","items","forEach","filter","id","fieldId","fieldDefinition","fields","label","displayName","openByDefault","tagLabel","sectionTitle","baseParams","commonFilterProps","initiallyOpen","accordionItemProps","toolbarItemProps","toolbarTagProps","type","push","config","dateConfig","booleanConfig","numberConfig","referencedCollectionId","referenceMetadata","referencedSchema","getSchema","dynamicOptionsConfig","additionalParams","enumConfig","filtersMapping","reduce","acc","collectionToolbarFiltersProps","inline","maxInlineFilters","panelTitle","filtersData","key","components","collectionData","createElement","_extends","component","props","collectionId","componentName","filtersObject","filterComponent","length","undefined"],"sources":["../../../src/hooks/useFilters.tsx"],"sourcesContent":["import React from 'react';\nimport {\n CollectionToolbarFilters,\n CollectionToolbarFiltersProps,\n Filter,\n} from '@wix/patterns';\nimport { Filter as SchemaFilterType, FiltersConfig } from '../types';\nimport { useSchema } from '../providers/SchemaContext';\nimport { useSchemaRegistry } from '../providers';\nimport {\n StaticCollectionFilter,\n DynamicCollectionFilter,\n} from '../components/filters';\nimport {\n createDateTimeFilter,\n createBooleanFilter,\n createNumberFilter,\n createEnumFilter,\n createReferenceFilter,\n} from '../utils/filterCreators';\n\nexport interface FilterOptions {\n key: string;\n fieldId: string;\n filter: Filter<any>;\n component: React.ElementType;\n collectionData?: { id: string; name: string }[];\n collectionId?: string;\n componentName?: string;\n props: Record<string, any>;\n}\n\nexport interface ReturnValue {\n filters: { [key: string]: Filter<any> };\n components: React.JSX.Element[];\n collectionToolbarFiltersProps: Pick<\n CollectionToolbarFiltersProps,\n 'inline' | 'panelTitle' | 'useNewFilters'\n >;\n}\n\nexport const useFilters = (configuration?: FiltersConfig) => {\n const schema = useSchema();\n const schemaRegistry = useSchemaRegistry();\n const filters = React.useMemo(() => {\n const currFilters: FilterOptions[] = [];\n configuration?.items.forEach((filter) => {\n const { id, fieldId } = filter;\n const fieldDefinition = schema.fields[fieldId];\n if (!fieldDefinition) {\n return;\n }\n\n const label = filter.displayName || fieldDefinition.displayName;\n const { openByDefault, tagLabel, sectionTitle } = filter;\n\n const baseParams = {\n id,\n fieldId,\n commonFilterProps: {\n sectionTitle,\n initiallyOpen: openByDefault,\n accordionItemProps: { label },\n toolbarItemProps: { label },\n toolbarTagProps: { label: tagLabel },\n },\n };\n\n switch (fieldDefinition.type) {\n case 'DATE':\n case 'DATETIME':\n currFilters.push(\n createDateTimeFilter({\n ...baseParams,\n config: filter.dateConfig,\n }),\n );\n break;\n\n case 'BOOLEAN':\n currFilters.push(\n createBooleanFilter({\n ...baseParams,\n config: filter.booleanConfig,\n }),\n );\n break;\n\n case 'NUMBER':\n currFilters.push(\n createNumberFilter({\n ...baseParams,\n config: filter.numberConfig,\n }),\n );\n break;\n\n case 'REFERENCE': {\n const { referencedCollectionId } = fieldDefinition.referenceMetadata;\n const referencedSchema = schemaRegistry.getSchema(\n referencedCollectionId,\n );\n\n if (referencedSchema) {\n currFilters.push(\n createReferenceFilter({\n ...baseParams,\n config: filter.dynamicOptionsConfig,\n additionalParams: {\n referencedSchema,\n },\n }),\n );\n }\n break;\n }\n\n default:\n if (filter?.enumConfig) {\n currFilters.push(\n createEnumFilter({\n ...baseParams,\n config: filter.enumConfig,\n }),\n );\n }\n break;\n }\n });\n return currFilters;\n }, [configuration?.items, schema.fields, schemaRegistry]);\n\n const filtersMapping = React.useMemo(() => {\n return configuration?.items.reduce((acc, filter) => {\n acc[filter.id] = filter;\n return acc;\n }, {} as Record<string, SchemaFilterType>);\n }, [configuration?.items]);\n\n const collectionToolbarFiltersProps = React.useMemo<\n Pick<CollectionToolbarFiltersProps, 'inline' | 'panelTitle'>\n >(\n () => ({\n inline: configuration?.maxInlineFilters || 0,\n panelTitle: configuration?.panelTitle,\n }),\n [configuration],\n );\n\n const filtersData = filters.reduce<ReturnValue>(\n (acc, filter) => {\n acc.filters[filter.key] = filter.filter;\n acc.components.push(\n filter.collectionData ? (\n <StaticCollectionFilter\n filter={filter.filter}\n key={filter.key}\n component={filter.component}\n collectionData={filter.collectionData}\n {...filter.props}\n />\n ) : filter.collectionId ? (\n <DynamicCollectionFilter\n filter={filter.filter}\n key={filter.key}\n component={filter.component}\n collectionId={filter.collectionId}\n componentName={filter.props.componentName}\n {...filter.props}\n />\n ) : (\n <filter.component\n key={filter.key}\n filter={filter.filter}\n {...filter.props}\n />\n ),\n );\n\n return acc;\n },\n { filters: {}, components: [], collectionToolbarFiltersProps },\n );\n\n return {\n filtersMapping,\n filtersObject: filtersData.filters,\n filterComponent:\n filtersData.components.length > 0 ? (\n <CollectionToolbarFilters {...collectionToolbarFiltersProps}>\n {filtersData.components}\n </CollectionToolbarFilters>\n ) : undefined,\n };\n};\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,wBAAwB,QAGnB,eAAe;AAEtB,SAASC,SAAS,QAAQ,4BAA4B;AACtD,SAASC,iBAAiB,QAAQ,cAAc;AAChD,SACEC,sBAAsB,EACtBC,uBAAuB,QAClB,uBAAuB;AAC9B,SACEC,oBAAoB,EACpBC,mBAAmB,EACnBC,kBAAkB,EAClBC,gBAAgB,EAChBC,qBAAqB,QAChB,yBAAyB;AAsBhC,OAAO,MAAMC,UAAU,GAAIC,aAA6B,IAAK;EAC3D,MAAMC,MAAM,GAAGX,SAAS,CAAC,CAAC;EAC1B,MAAMY,cAAc,GAAGX,iBAAiB,CAAC,CAAC;EAC1C,MAAMY,OAAO,GAAGf,KAAK,CAACgB,OAAO,CAAC,MAAM;IAClC,MAAMC,WAA4B,GAAG,EAAE;IACvCL,aAAa,YAAbA,aAAa,CAAEM,KAAK,CAACC,OAAO,CAAEC,MAAM,IAAK;MACvC,MAAM;QAAEC,EAAE;QAAEC;MAAQ,CAAC,GAAGF,MAAM;MAC9B,MAAMG,eAAe,GAAGV,MAAM,CAACW,MAAM,CAACF,OAAO,CAAC;MAC9C,IAAI,CAACC,eAAe,EAAE;QACpB;MACF;MAEA,MAAME,KAAK,GAAGL,MAAM,CAACM,WAAW,IAAIH,eAAe,CAACG,WAAW;MAC/D,MAAM;QAAEC,aAAa;QAAEC,QAAQ;QAAEC;MAAa,CAAC,GAAGT,MAAM;MAExD,MAAMU,UAAU,GAAG;QACjBT,EAAE;QACFC,OAAO;QACPS,iBAAiB,EAAE;UACjBF,YAAY;UACZG,aAAa,EAAEL,aAAa;UAC5BM,kBAAkB,EAAE;YAAER;UAAM,CAAC;UAC7BS,gBAAgB,EAAE;YAAET;UAAM,CAAC;UAC3BU,eAAe,EAAE;YAAEV,KAAK,EAAEG;UAAS;QACrC;MACF,CAAC;MAED,QAAQL,eAAe,CAACa,IAAI;QAC1B,KAAK,MAAM;QACX,KAAK,UAAU;UACbnB,WAAW,CAACoB,IAAI,CACd/B,oBAAoB,CAAC;YACnB,GAAGwB,UAAU;YACbQ,MAAM,EAAElB,MAAM,CAACmB;UACjB,CAAC,CACH,CAAC;UACD;QAEF,KAAK,SAAS;UACZtB,WAAW,CAACoB,IAAI,CACd9B,mBAAmB,CAAC;YAClB,GAAGuB,UAAU;YACbQ,MAAM,EAAElB,MAAM,CAACoB;UACjB,CAAC,CACH,CAAC;UACD;QAEF,KAAK,QAAQ;UACXvB,WAAW,CAACoB,IAAI,CACd7B,kBAAkB,CAAC;YACjB,GAAGsB,UAAU;YACbQ,MAAM,EAAElB,MAAM,CAACqB;UACjB,CAAC,CACH,CAAC;UACD;QAEF,KAAK,WAAW;UAAE;YAChB,MAAM;cAAEC;YAAuB,CAAC,GAAGnB,eAAe,CAACoB,iBAAiB;YACpE,MAAMC,gBAAgB,GAAG9B,cAAc,CAAC+B,SAAS,CAC/CH,sBACF,CAAC;YAED,IAAIE,gBAAgB,EAAE;cACpB3B,WAAW,CAACoB,IAAI,CACd3B,qBAAqB,CAAC;gBACpB,GAAGoB,UAAU;gBACbQ,MAAM,EAAElB,MAAM,CAAC0B,oBAAoB;gBACnCC,gBAAgB,EAAE;kBAChBH;gBACF;cACF,CAAC,CACH,CAAC;YACH;YACA;UACF;QAEA;UACE,IAAIxB,MAAM,YAANA,MAAM,CAAE4B,UAAU,EAAE;YACtB/B,WAAW,CAACoB,IAAI,CACd5B,gBAAgB,CAAC;cACf,GAAGqB,UAAU;cACbQ,MAAM,EAAElB,MAAM,CAAC4B;YACjB,CAAC,CACH,CAAC;UACH;UACA;MACJ;IACF,CAAC,CAAC;IACF,OAAO/B,WAAW;EACpB,CAAC,EAAE,CAACL,aAAa,oBAAbA,aAAa,CAAEM,KAAK,EAAEL,MAAM,CAACW,MAAM,EAAEV,cAAc,CAAC,CAAC;EAEzD,MAAMmC,cAAc,GAAGjD,KAAK,CAACgB,OAAO,CAAC,MAAM;IACzC,OAAOJ,aAAa,oBAAbA,aAAa,CAAEM,KAAK,CAACgC,MAAM,CAAC,CAACC,GAAG,EAAE/B,MAAM,KAAK;MAClD+B,GAAG,CAAC/B,MAAM,CAACC,EAAE,CAAC,GAAGD,MAAM;MACvB,OAAO+B,GAAG;IACZ,CAAC,EAAE,CAAC,CAAqC,CAAC;EAC5C,CAAC,EAAE,CAACvC,aAAa,oBAAbA,aAAa,CAAEM,KAAK,CAAC,CAAC;EAE1B,MAAMkC,6BAA6B,GAAGpD,KAAK,CAACgB,OAAO,CAGjD,OAAO;IACLqC,MAAM,EAAE,CAAAzC,aAAa,oBAAbA,aAAa,CAAE0C,gBAAgB,KAAI,CAAC;IAC5CC,UAAU,EAAE3C,aAAa,oBAAbA,aAAa,CAAE2C;EAC7B,CAAC,CAAC,EACF,CAAC3C,aAAa,CAChB,CAAC;EAED,MAAM4C,WAAW,GAAGzC,OAAO,CAACmC,MAAM,CAChC,CAACC,GAAG,EAAE/B,MAAM,KAAK;IACf+B,GAAG,CAACpC,OAAO,CAACK,MAAM,CAACqC,GAAG,CAAC,GAAGrC,MAAM,CAACA,MAAM;IACvC+B,GAAG,CAACO,UAAU,CAACrB,IAAI,CACjBjB,MAAM,CAACuC,cAAc,gBACnB3D,KAAA,CAAA4D,aAAA,CAACxD,sBAAsB,EAAAyD,QAAA;MACrBzC,MAAM,EAAEA,MAAM,CAACA,MAAO;MACtBqC,GAAG,EAAErC,MAAM,CAACqC,GAAI;MAChBK,SAAS,EAAE1C,MAAM,CAAC0C,SAAU;MAC5BH,cAAc,EAAEvC,MAAM,CAACuC;IAAe,GAClCvC,MAAM,CAAC2C,KAAK,CACjB,CAAC,GACA3C,MAAM,CAAC4C,YAAY,gBACrBhE,KAAA,CAAA4D,aAAA,CAACvD,uBAAuB,EAAAwD,QAAA;MACtBzC,MAAM,EAAEA,MAAM,CAACA,MAAO;MACtBqC,GAAG,EAAErC,MAAM,CAACqC,GAAI;MAChBK,SAAS,EAAE1C,MAAM,CAAC0C,SAAU;MAC5BE,YAAY,EAAE5C,MAAM,CAAC4C,YAAa;MAClCC,aAAa,EAAE7C,MAAM,CAAC2C,KAAK,CAACE;IAAc,GACtC7C,MAAM,CAAC2C,KAAK,CACjB,CAAC,gBAEF/D,KAAA,CAAA4D,aAAA,CAACxC,MAAM,CAAC0C,SAAS,EAAAD,QAAA;MACfJ,GAAG,EAAErC,MAAM,CAACqC,GAAI;MAChBrC,MAAM,EAAEA,MAAM,CAACA;IAAO,GAClBA,MAAM,CAAC2C,KAAK,CACjB,CAEL,CAAC;IAED,OAAOZ,GAAG;EACZ,CAAC,EACD;IAAEpC,OAAO,EAAE,CAAC,CAAC;IAAE2C,UAAU,EAAE,EAAE;IAAEN;EAA8B,CAC/D,CAAC;EAED,OAAO;IACLH,cAAc;IACdiB,aAAa,EAAEV,WAAW,CAACzC,OAAO;IAClCoD,eAAe,EACbX,WAAW,CAACE,UAAU,CAACU,MAAM,GAAG,CAAC,gBAC/BpE,KAAA,CAAA4D,aAAA,CAAC3D,wBAAwB,EAAKmD,6BAA6B,EACxDI,WAAW,CAACE,UACW,CAAC,GACzBW;EACR,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","CollectionToolbarFilters","useSchema","useSchemaRegistry","StaticCollectionFilter","DynamicCollectionFilter","createDateTimeFilter","createBooleanFilter","createNumberFilter","createEnumFilter","createReferenceFilter","useFilters","configuration","schema","schemaRegistry","filters","useMemo","currFilters","items","forEach","filter","id","fieldId","fieldDefinition","fields","label","displayName","openByDefault","tagLabel","sectionTitle","baseParams","commonFilterProps","initiallyOpen","accordionItemProps","toolbarItemProps","toolbarTagProps","type","push","config","dateConfig","booleanConfig","numberConfig","referencedCollectionId","referenceMetadata","referencedSchema","getSchema","dynamicOptionsConfig","additionalParams","enumConfig","filterFieldMapping","reduce","acc","collectionToolbarFiltersProps","inline","maxInlineFilters","panelTitle","filtersData","key","components","collectionData","createElement","_extends","component","props","collectionId","componentName","filtersObject","filterComponent","length","undefined"],"sources":["../../../src/hooks/useFilters.tsx"],"sourcesContent":["import React from 'react';\nimport {\n CollectionToolbarFilters,\n CollectionToolbarFiltersProps,\n Filter,\n} from '@wix/patterns';\nimport { Filter as SchemaFilterType, FiltersConfig } from '../types';\nimport { useSchema } from '../providers/SchemaContext';\nimport { useSchemaRegistry } from '../providers';\nimport {\n StaticCollectionFilter,\n DynamicCollectionFilter,\n} from '../components/filters';\nimport {\n createDateTimeFilter,\n createBooleanFilter,\n createNumberFilter,\n createEnumFilter,\n createReferenceFilter,\n} from '../utils/filterCreators';\n\nexport interface FilterOptions {\n key: string;\n fieldId: string;\n filter: Filter<any>;\n component: React.ElementType;\n collectionData?: { id: string; name: string }[];\n collectionId?: string;\n componentName?: string;\n props: Record<string, any>;\n}\n\nexport interface ReturnValue {\n filters: { [key: string]: Filter<any> };\n components: React.JSX.Element[];\n collectionToolbarFiltersProps: Pick<\n CollectionToolbarFiltersProps,\n 'inline' | 'panelTitle' | 'useNewFilters'\n >;\n}\n\nexport const useFilters = (configuration?: FiltersConfig) => {\n const schema = useSchema();\n const schemaRegistry = useSchemaRegistry();\n const filters = React.useMemo(() => {\n const currFilters: FilterOptions[] = [];\n configuration?.items.forEach((filter) => {\n const { id, fieldId } = filter;\n const fieldDefinition = schema.fields[fieldId];\n if (!fieldDefinition) {\n return;\n }\n\n const label = filter.displayName || fieldDefinition.displayName;\n const { openByDefault, tagLabel, sectionTitle } = filter;\n\n const baseParams = {\n id,\n fieldId,\n commonFilterProps: {\n sectionTitle,\n initiallyOpen: openByDefault,\n accordionItemProps: { label },\n toolbarItemProps: { label },\n toolbarTagProps: { label: tagLabel },\n },\n };\n\n switch (fieldDefinition.type) {\n case 'DATE':\n case 'DATETIME':\n currFilters.push(\n createDateTimeFilter({\n ...baseParams,\n config: filter.dateConfig,\n }),\n );\n break;\n\n case 'BOOLEAN':\n currFilters.push(\n createBooleanFilter({\n ...baseParams,\n config: filter.booleanConfig,\n }),\n );\n break;\n\n case 'NUMBER':\n currFilters.push(\n createNumberFilter({\n ...baseParams,\n config: filter.numberConfig,\n }),\n );\n break;\n\n case 'REFERENCE': {\n const { referencedCollectionId } = fieldDefinition.referenceMetadata;\n const referencedSchema = schemaRegistry.getSchema(\n referencedCollectionId,\n );\n\n if (referencedSchema) {\n currFilters.push(\n createReferenceFilter({\n ...baseParams,\n config: filter.dynamicOptionsConfig,\n additionalParams: {\n referencedSchema,\n },\n }),\n );\n }\n break;\n }\n\n default:\n if (filter?.enumConfig) {\n currFilters.push(\n createEnumFilter({\n ...baseParams,\n config: filter.enumConfig,\n }),\n );\n }\n break;\n }\n });\n return currFilters;\n }, [configuration?.items, schema.fields, schemaRegistry]);\n\n const filterFieldMapping = React.useMemo(() => {\n return configuration?.items.reduce((acc, filter) => {\n acc[filter.id] = filter;\n return acc;\n }, {} as Record<string, SchemaFilterType>);\n }, [configuration?.items]);\n\n const collectionToolbarFiltersProps = React.useMemo<\n Pick<CollectionToolbarFiltersProps, 'inline' | 'panelTitle'>\n >(\n () => ({\n inline: configuration?.maxInlineFilters || 0,\n panelTitle: configuration?.panelTitle,\n }),\n [configuration],\n );\n\n const filtersData = filters.reduce<ReturnValue>(\n (acc, filter) => {\n acc.filters[filter.key] = filter.filter;\n acc.components.push(\n filter.collectionData ? (\n <StaticCollectionFilter\n filter={filter.filter}\n key={filter.key}\n component={filter.component}\n collectionData={filter.collectionData}\n {...filter.props}\n />\n ) : filter.collectionId ? (\n <DynamicCollectionFilter\n filter={filter.filter}\n key={filter.key}\n component={filter.component}\n collectionId={filter.collectionId}\n componentName={filter.props.componentName}\n {...filter.props}\n />\n ) : (\n <filter.component\n key={filter.key}\n filter={filter.filter}\n {...filter.props}\n />\n ),\n );\n\n return acc;\n },\n { filters: {}, components: [], collectionToolbarFiltersProps },\n );\n\n return {\n filterFieldMapping,\n filtersObject: filtersData.filters,\n filterComponent:\n filtersData.components.length > 0 ? (\n <CollectionToolbarFilters {...collectionToolbarFiltersProps}>\n {filtersData.components}\n </CollectionToolbarFilters>\n ) : undefined,\n };\n};\n"],"mappings":"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","ignoreList":[]}