@wix/auto-patterns 1.22.0 → 1.23.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.
- package/dist/cjs/hooks/useActionCell.js.map +1 -1
- package/dist/cjs/providers/PatternsWizardOverridesContext.js +1 -1
- package/dist/cjs/providers/PatternsWizardOverridesContext.js.map +1 -1
- package/dist/cjs/types/actions/base.js.map +1 -1
- package/dist/docs/app_config_structure.md +0 -3
- package/dist/docs/auto-patterns-guide.md +87 -22
- package/dist/docs/bulk_actions.md +1 -4
- package/dist/docs/custom_overrides.md +86 -15
- package/dist/esm/components/AutoPatternsCollectionComponent/AutoPatternsCollectionComponent.js +3 -4
- package/dist/esm/components/AutoPatternsCollectionComponent/AutoPatternsCollectionComponent.js.map +1 -1
- package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +1 -2
- package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js +8 -13
- package/dist/esm/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/DateInput.js +6 -10
- package/dist/esm/components/AutoPatternsEntityPage/Fields/DateInput.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/DateTime.js +16 -23
- package/dist/esm/components/AutoPatternsEntityPage/Fields/DateTime.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/FormFieldInput.js +2 -3
- package/dist/esm/components/AutoPatternsEntityPage/Fields/FormFieldInput.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/ImageInput.js +6 -9
- package/dist/esm/components/AutoPatternsEntityPage/Fields/ImageInput.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/LongText.js +6 -8
- package/dist/esm/components/AutoPatternsEntityPage/Fields/LongText.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/Number.js +8 -10
- package/dist/esm/components/AutoPatternsEntityPage/Fields/Number.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/ShortText.js +10 -12
- package/dist/esm/components/AutoPatternsEntityPage/Fields/ShortText.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/Url.js +6 -8
- package/dist/esm/components/AutoPatternsEntityPage/Fields/Url.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/SkeletonEntity.js +4 -7
- package/dist/esm/components/AutoPatternsEntityPage/SkeletonEntity.js.map +1 -1
- package/dist/esm/components/ModalRenderer.js +1 -2
- package/dist/esm/components/ModalRenderer.js.map +1 -1
- package/dist/esm/components/modals/actions/BulkDeleteModal.js +7 -12
- package/dist/esm/components/modals/actions/BulkDeleteModal.js.map +1 -1
- package/dist/esm/components/modals/actions/CreateModal.js +6 -11
- package/dist/esm/components/modals/actions/CreateModal.js.map +1 -1
- package/dist/esm/components/modals/actions/EditModal.js +6 -11
- package/dist/esm/components/modals/actions/EditModal.js.map +1 -1
- package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js +3 -4
- package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
- package/dist/esm/dataSourceAdapters/cms/filterUtils.js +1 -2
- package/dist/esm/dataSourceAdapters/cms/filterUtils.js.map +1 -1
- package/dist/esm/dataSourceAdapters/cms/sortUtils.js +2 -2
- package/dist/esm/dataSourceAdapters/cms/sortUtils.js.map +1 -1
- package/dist/esm/hooks/useActionCell.js +8 -12
- package/dist/esm/hooks/useActionCell.js.map +1 -1
- package/dist/esm/hooks/useBaseTableFeatures.js +1 -2
- package/dist/esm/hooks/useBaseTableFeatures.js.map +1 -1
- package/dist/esm/hooks/useBulkActionToolbar.js +2 -2
- package/dist/esm/hooks/useBulkActionToolbar.js.map +1 -1
- package/dist/esm/hooks/useCollectionPageActions.js +3 -3
- package/dist/esm/hooks/useCollectionPageActions.js.map +1 -1
- package/dist/esm/hooks/useCollectionPageOnRowClickActions.js +1 -1
- package/dist/esm/hooks/useCollectionPageOnRowClickActions.js.map +1 -1
- package/dist/esm/hooks/useColumns.js +7 -12
- package/dist/esm/hooks/useColumns.js.map +1 -1
- package/dist/esm/hooks/useCommonCollectionFeatures.js +7 -8
- package/dist/esm/hooks/useCommonCollectionFeatures.js.map +1 -1
- package/dist/esm/hooks/useEmptyStates.js +5 -6
- package/dist/esm/hooks/useEmptyStates.js.map +1 -1
- package/dist/esm/hooks/useFilters.js +7 -7
- package/dist/esm/hooks/useFilters.js.map +1 -1
- package/dist/esm/hooks/useNavigationUtils.js +2 -3
- package/dist/esm/hooks/useNavigationUtils.js.map +1 -1
- package/dist/esm/hooks/usePagePath.js +3 -4
- package/dist/esm/hooks/usePagePath.js.map +1 -1
- package/dist/esm/hooks/useTableFeatures.js +1 -2
- package/dist/esm/hooks/useTableFeatures.js.map +1 -1
- package/dist/esm/providers/PatternsWizardOverridesContext.js.map +1 -1
- package/dist/esm/providers/SchemaContext.js +2 -3
- package/dist/esm/providers/SchemaContext.js.map +1 -1
- package/dist/esm/providers/SchemaRegistryContext.js +1 -1
- package/dist/esm/providers/SchemaRegistryContext.js.map +1 -1
- package/dist/esm/types/actions/base.js.map +1 -1
- package/dist/esm/utils/actions/customAction.js +1 -2
- package/dist/esm/utils/actions/customAction.js.map +1 -1
- package/dist/esm/utils/actions/deleteAction.js +5 -10
- package/dist/esm/utils/actions/deleteAction.js.map +1 -1
- package/dist/esm/utils/filterCreators.js +11 -11
- package/dist/esm/utils/filterCreators.js.map +1 -1
- package/dist/types/providers/PatternsWizardOverridesContext.d.ts +2 -5
- package/dist/types/providers/PatternsWizardOverridesContext.d.ts.map +1 -1
- package/dist/types/types/actions/base.d.ts +0 -4
- package/dist/types/types/actions/base.d.ts.map +1 -1
- package/package.json +10 -10
|
@@ -19,7 +19,6 @@ export const CmsFieldTypeToPatternsFieldType = {
|
|
|
19
19
|
export async function fetchCmsSchema(collectionId) {
|
|
20
20
|
const schema = await collections.getDataCollection(collectionId);
|
|
21
21
|
const transformedFields = schema.fields.reduce((acc, field) => {
|
|
22
|
-
var _field$capabilities, _field$capabilities2, _field$typeMetadata;
|
|
23
22
|
if (!field.key) {
|
|
24
23
|
return acc;
|
|
25
24
|
}
|
|
@@ -39,11 +38,11 @@ export async function fetchCmsSchema(collectionId) {
|
|
|
39
38
|
required: field.required ?? false
|
|
40
39
|
},
|
|
41
40
|
capabilities: {
|
|
42
|
-
supportedQueryOperators:
|
|
43
|
-
sortable:
|
|
41
|
+
supportedQueryOperators: field.capabilities?.queryOperators || [],
|
|
42
|
+
sortable: field.capabilities?.sortable || false
|
|
44
43
|
}
|
|
45
44
|
};
|
|
46
|
-
if (fieldType === 'REFERENCE' &&
|
|
45
|
+
if (fieldType === 'REFERENCE' && field.typeMetadata?.reference?.referencedCollectionId) {
|
|
47
46
|
const referenceField = {
|
|
48
47
|
...baseField,
|
|
49
48
|
type: 'REFERENCE',
|
|
@@ -1 +1 @@
|
|
|
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","getDataCollection","transformedFields","fields","reduce","acc","field","
|
|
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","getDataCollection","transformedFields","fields","reduce","acc","field","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","actions","get","entityId","create","entity","insert","update","delete","remove","bulkDelete","entityIds","bulkRemove","find","query","options"],"sources":["../../../../src/dataSourceAdapters/cms/cmsAdapter.ts"],"sourcesContent":["import { Field, SchemaConfig, PatternsFieldType } from '../../types';\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 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,\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":"AACA,SAASA,WAAW,EAAEC,KAAK,QAAQ,WAAW;AAC9C,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,OAAO,MAAMC,+BAEZ,GAAG;EACF,CAACH,WAAW,CAACI,IAAI,CAACC,IAAI,GAAG,YAAY;EACrC,CAACL,WAAW,CAACI,IAAI,CAACE,IAAI,GAAG,MAAM;EAC/B,CAACN,WAAW,CAACI,IAAI,CAACG,QAAQ,GAAG,UAAU;EACvC,CAACP,WAAW,CAACI,IAAI,CAACI,MAAM,GAAG,QAAQ;EACnC,CAACR,WAAW,CAACI,IAAI,CAACK,OAAO,GAAG,SAAS;EACrC,CAACT,WAAW,CAACI,IAAI,CAACM,GAAG,GAAG,KAAK;EAC7B,CAACV,WAAW,CAACI,IAAI,CAACO,OAAO,GAAG,YAAY;EACxC,CAACX,WAAW,CAACI,IAAI,CAACQ,MAAM,GAAG,WAAW;EACtC,CAACZ,WAAW,CAACI,IAAI,CAACS,SAAS,GAAG,WAAW;EACzC,CAACb,WAAW,CAACI,IAAI,CAACU,YAAY,GAAG,YAAY;EAC7C,CAACd,WAAW,CAACI,IAAI,CAACW,KAAK,GAAG,OAAO;EACjC,CAACf,WAAW,CAACI,IAAI,CAACY,YAAY,GAAG,OAAO;EACxC,CAAChB,WAAW,CAACI,IAAI,CAACa,SAAS,GAAG,WAAW;EACzC,CAACjB,WAAW,CAACI,IAAI,CAACc,KAAK,GAAG;AAC5B,CAAC;AAED,OAAO,eAAeC,cAAcA,CAClCC,YAAoB,EACG;EACvB,MAAMC,MAAM,GAAG,MAAMrB,WAAW,CAACsB,iBAAiB,CAACF,YAAY,CAAC;EAEhE,MAAMG,iBAAiB,GAAGF,MAAM,CAACG,MAAM,CAACC,MAAM,CAC5C,CAACC,GAAG,EAAEC,KAAK,KAAK;IACd,IAAI,CAACA,KAAK,CAACC,GAAG,EAAE;MACd,OAAOF,GAAG;IACZ;IAEA,MAAMG,SAAS,GAAGF,KAAK,CAACG,IAAI,GACxB3B,+BAA+B,CAACwB,KAAK,CAACG,IAAI,CAAC,IAAI,YAAY,GAC3D,YAAY;IAChB,MAAMC,SAAS,GAAG;MAChBC,EAAE,EAAEL,KAAK,CAACC,GAAG;MACbK,WAAW,EAAEN,KAAK,CAACM,WAAW,IAAI,EAAE;MACpCC,UAAU,EAAE;QACVC,WAAW,EAAER,KAAK,CAACQ,WAAW,GAC1B;UACEC,GAAG,EAAET,KAAK,CAACQ,WAAW,CAACC,GAAG,IAAIC,SAAS;UACvCC,GAAG,EAAEX,KAAK,CAACQ,WAAW,CAACG,GAAG,IAAID;QAChC,CAAC,GACDA,SAAS;QACbE,iBAAiB,EAAEZ,KAAK,CAACY,iBAAiB,GACtC;UACEC,SAAS,EAAEb,KAAK,CAACY,iBAAiB,CAACC,SAAS,IAAIH,SAAS;UACzDI,SAAS,EAAEd,KAAK,CAACY,iBAAiB,CAACE,SAAS,IAAIJ;QAClD,CAAC,GACDA,SAAS;QACbK,QAAQ,EAAEf,KAAK,CAACe,QAAQ,IAAI;MAC9B,CAAC;MACDC,YAAY,EAAE;QACZC,uBAAuB,EAAEjB,KAAK,CAACgB,YAAY,EAAEE,cAAc,IAAI,EAAE;QACjEC,QAAQ,EAAEnB,KAAK,CAACgB,YAAY,EAAEG,QAAQ,IAAI;MAC5C;IACF,CAAC;IAED,IACEjB,SAAS,KAAK,WAAW,IACzBF,KAAK,CAACoB,YAAY,EAAEC,SAAS,EAAEC,sBAAsB,EACrD;MACA,MAAMC,cAAqB,GAAG;QAC5B,GAAGnB,SAAS;QACZD,IAAI,EAAE,WAAW;QACjBqB,iBAAiB,EAAE;UACjBF,sBAAsB,EACpBtB,KAAK,CAACoB,YAAY,CAACC,SAAS,CAACC;QACjC;MACF,CAAC;MACDvB,GAAG,CAACC,KAAK,CAACC,GAAG,CAAC,GAAGsB,cAAc;IACjC,CAAC,MAAM;MACL,MAAME,gBAAgB,GACpBvB,SAAS,KAAK,WAAW,GAAG,YAAY,GAAGA,SAAS;MACtD,MAAMwB,iBAAwB,GAAG;QAC/B,GAAGtB,SAAS;QACZD,IAAI,EAAEsB;MACR,CAAC;MACD1B,GAAG,CAACC,KAAK,CAACC,GAAG,CAAC,GAAGyB,iBAAiB;IACpC;IAEA,OAAO3B,GAAG;EACZ,CAAC,EACD,CAAC,CACH,CAAC;EAED,MAAM4B,YAA0B,GAAG;IACjCtB,EAAE,EAAEZ,YAAY;IAChBmC,YAAY,EAAElC,MAAM,CAACkC,YAAY,IAAI,KAAK;IAC1CC,OAAO,EAAE,KAAK;IACdhC,MAAM,EAAED,iBAAiB;IACzBkC,OAAO,EAAE;MACPC,GAAG,EAAGC,QAAgB,IAAK;QACzB,OAAO1D,KAAK,CAACyD,GAAG,CAACtC,YAAY,EAAEuC,QAAQ,CAAC;MAC1C,CAAC;MACDC,MAAM,EAAGC,MAAM,IAAK;QAClB,OAAO5D,KAAK,CAAC6D,MAAM,CAAC1C,YAAY,EAAEyC,MAAM,CAAC;MAC3C,CAAC;MACDE,MAAM,EAAGF,MAAM,IAAK;QAClB,OAAO5D,KAAK,CAAC8D,MAAM,CAAC3C,YAAY,EAAEyC,MAAM,CAAC;MAC3C,CAAC;MACDG,MAAM,EAAGL,QAAQ,IAAK;QACpB,OAAO1D,KAAK,CAACgE,MAAM,CAAC7C,YAAY,EAAEuC,QAAQ,CAAC;MAC7C,CAAC;MACDO,UAAU,EAAGC,SAAS,IAAK;QACzB,OAAOlE,KAAK,CAACmE,UAAU,CAAChD,YAAY,EAAE+C,SAAS,CAAC;MAClD,CAAC;MACDE,IAAI,EAAE,eAAAA,CACJC,KAAK,EACLC,OAGC,EACE;QAAA,IAJHA,OAGC;UAHDA,OAGC,GAAG,CAAC,CAAC;QAAA;QAEN,OAAOrE,YAAY,CAACkB,YAAY,EAAEkD,KAAK,EAAE/C,iBAAiB,EAAEgD,OAAO,CAAC;MACtE;IACF;EACF,CAAC;EAED,OAAOjB,YAAY;AACrB","ignoreList":[]}
|
|
@@ -44,9 +44,8 @@ export function addFiltersToDataQuery(_ref) {
|
|
|
44
44
|
const filter = filters[fieldKey];
|
|
45
45
|
if (filter) {
|
|
46
46
|
if (Array.isArray(filter)) {
|
|
47
|
-
var _fields$fieldId;
|
|
48
47
|
const filterArray = filter;
|
|
49
|
-
if (
|
|
48
|
+
if (fields[fieldId]?.type === 'BOOLEAN') {
|
|
50
49
|
if (filterArray.some(item => item.id === BooleanFilters.checked)) {
|
|
51
50
|
dataQueryWithFilters = dataQueryWithFilters.eq(fieldId, true);
|
|
52
51
|
} else {
|
|
@@ -1 +1 @@
|
|
|
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","
|
|
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","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 { items } from '@wix/data';\nimport { BooleanFilters, FilterProp, FilterPropToOperator } from '../constants';\nimport { Query, 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: Query;\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: Query;\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":[]}
|
|
@@ -8,14 +8,14 @@ export function addSortToDataQuery(_ref) {
|
|
|
8
8
|
const {
|
|
9
9
|
sort
|
|
10
10
|
} = query;
|
|
11
|
-
sort
|
|
11
|
+
sort?.forEach(sortField => {
|
|
12
12
|
const {
|
|
13
13
|
fieldName,
|
|
14
14
|
order
|
|
15
15
|
} = sortField;
|
|
16
16
|
if (fieldName && order) {
|
|
17
17
|
const fieldDefinition = fields[fieldName];
|
|
18
|
-
if (fieldDefinition
|
|
18
|
+
if (fieldDefinition?.capabilities.sortable) {
|
|
19
19
|
if (order === 'asc') {
|
|
20
20
|
dataQueryWithSort = dataQueryWithSort.ascending(fieldName);
|
|
21
21
|
} else if (order === 'desc') {
|
|
@@ -1 +1 @@
|
|
|
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 { Query, SchemaConfig } from '../../types';\n\nexport function addSortToDataQuery({\n dataQuery,\n query,\n fields,\n}: {\n dataQuery: items.WixDataQuery;\n query: Query;\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":"AAGA,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,
|
|
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 { Query, SchemaConfig } from '../../types';\n\nexport function addSortToDataQuery({\n dataQuery,\n query,\n fields,\n}: {\n dataQuery: items.WixDataQuery;\n query: Query;\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":"AAGA,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,EAAEC,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,EAAEC,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":[]}
|
|
@@ -2,11 +2,8 @@ import { useCallback } from 'react';
|
|
|
2
2
|
import { useActionsSDK } from './useActionsSDK';
|
|
3
3
|
import { updateAction, customAction, resolveAction, deleteAction } from '../utils/actions';
|
|
4
4
|
const cleanupActionsWithDividers = (actions, inlineCount) => {
|
|
5
|
-
const clean = a => a.filter((x, i, ar) =>
|
|
6
|
-
|
|
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))];
|
|
5
|
+
const clean = a => a.filter((x, i, ar) => x?.divider !== true || i > 0 && i < ar.length - 1 && ar[i - 1]?.divider !== true);
|
|
6
|
+
return !actions?.length || !inlineCount || inlineCount >= actions.length ? clean(actions || []) : [...clean(actions.slice(0, inlineCount)), ...clean(actions.slice(inlineCount))];
|
|
10
7
|
};
|
|
11
8
|
export const useActionCell = _ref => {
|
|
12
9
|
let {
|
|
@@ -17,7 +14,6 @@ export const useActionCell = _ref => {
|
|
|
17
14
|
collectionId
|
|
18
15
|
});
|
|
19
16
|
const buildCellActions = useCallback((item, index, api) => {
|
|
20
|
-
var _config$primaryAction, _config$primaryAction2, _config$secondaryActi, _config$secondaryActi2, _config$secondaryActi3, _config$secondaryActi4;
|
|
21
17
|
const buildAction = actionConfig => {
|
|
22
18
|
if (actionConfig.type === 'divider') {
|
|
23
19
|
return {
|
|
@@ -70,18 +66,18 @@ export const useActionCell = _ref => {
|
|
|
70
66
|
disabledDescription: resolvedAction.tooltip
|
|
71
67
|
};
|
|
72
68
|
};
|
|
73
|
-
const primaryAction = config
|
|
69
|
+
const primaryAction = config?.primaryAction?.item ? buildAction(config.primaryAction.item) : undefined;
|
|
74
70
|
const primaryActionProps = {
|
|
75
|
-
...(config
|
|
71
|
+
...(config?.primaryAction?.alwaysVisible ? {
|
|
76
72
|
visibility: 'always'
|
|
77
73
|
} : {})
|
|
78
74
|
};
|
|
79
|
-
const rawSecondaryActions = config
|
|
75
|
+
const rawSecondaryActions = config?.secondaryActions?.items.length ? config.secondaryActions.items.map(buildAction).filter(Boolean) : [];
|
|
80
76
|
|
|
81
77
|
// Process secondary actions with inline count consideration
|
|
82
|
-
const secondaryActions = cleanupActionsWithDividers(rawSecondaryActions, config
|
|
83
|
-
const numOfVisibleSecondaryActions = config
|
|
84
|
-
const alwaysShowSecondaryActions = config
|
|
78
|
+
const secondaryActions = cleanupActionsWithDividers(rawSecondaryActions, config?.secondaryActions?.inlineCount);
|
|
79
|
+
const numOfVisibleSecondaryActions = config?.secondaryActions?.inlineCount;
|
|
80
|
+
const alwaysShowSecondaryActions = config?.secondaryActions?.inlineAlwaysVisible;
|
|
85
81
|
if (!primaryAction && !secondaryActions.length) {
|
|
86
82
|
return {};
|
|
87
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useActionsSDK","updateAction","customAction","resolveAction","deleteAction","cleanupActionsWithDividers","actions","inlineCount","clean","a","filter","x","i","ar","
|
|
1
|
+
{"version":3,"names":["useCallback","useActionsSDK","updateAction","customAction","resolveAction","deleteAction","cleanupActionsWithDividers","actions","inlineCount","clean","a","filter","x","i","ar","divider","length","slice","useActionCell","_ref","config","collectionId","sdk","buildCellActions","item","index","api","buildAction","actionConfig","type","actionToResolve","baseParams","actionParams","action","resolvedAction","label","tooltip","resolvedActionProps","text","disabledDescription","primaryAction","undefined","primaryActionProps","alwaysVisible","visibility","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 primaryActionProps = {\n ...(config?.primaryAction?.alwaysVisible\n ? { visibility: 'always' }\n : {}),\n };\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\n ? {\n primaryAction: {\n ...primaryAction,\n ...primaryActionProps,\n },\n }\n : { 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":[]}
|
|
@@ -4,7 +4,6 @@ import { CustomColumns } from '@wix/patterns';
|
|
|
4
4
|
import { useCollectionPageOnRowClickActions } from './useCollectionPageOnRowClickActions';
|
|
5
5
|
import { useNavigation } from './useNavigationUtils';
|
|
6
6
|
export const useBaseTableFeatures = configuration => {
|
|
7
|
-
var _configuration$custom;
|
|
8
7
|
const {
|
|
9
8
|
navigateToEntityPage
|
|
10
9
|
} = useNavigation();
|
|
@@ -26,7 +25,7 @@ export const useBaseTableFeatures = configuration => {
|
|
|
26
25
|
columns,
|
|
27
26
|
visibleFieldIds,
|
|
28
27
|
onRowClick,
|
|
29
|
-
customColumns:
|
|
28
|
+
customColumns: configuration.customColumns?.enabled ? /*#__PURE__*/React.createElement(CustomColumns, null) : undefined,
|
|
30
29
|
stickyColumns,
|
|
31
30
|
stickySelectionColumn,
|
|
32
31
|
showTitleBar
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","useColumns","CustomColumns","useCollectionPageOnRowClickActions","useNavigation","useBaseTableFeatures","configuration","
|
|
1
|
+
{"version":3,"names":["React","useMemo","useColumns","CustomColumns","useCollectionPageOnRowClickActions","useNavigation","useBaseTableFeatures","configuration","navigateToEntityPage","columns","visibleFieldIds","map","column","id","entityPageId","onRowClickOverride","collectionPageOnRowClickActions","onRowClick","collectionId","collection","item","stickyColumns","stickySelectionColumn","showTitleBar","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 const showTitleBar = configuration.showTitleBar ?? true;\n\n return {\n columns,\n visibleFieldIds,\n onRowClick,\n customColumns: configuration.customColumns?.enabled ? (\n <CustomColumns />\n ) : undefined,\n stickyColumns,\n stickySelectionColumn,\n showTitleBar,\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;EAClE,MAAM;IAAEC;EAAqB,CAAC,GAAGH,aAAa,CAAC,CAAC;EAChD,MAAMI,OAAO,GAAGP,UAAU,CAACK,aAAa,CAACE,OAAO,CAAC;EACjD,MAAMC,eAAe,GAAGT,OAAO,CAC7B,MAAMM,aAAa,CAACE,OAAO,CAACE,GAAG,CAAEC,MAAM,IAAKA,MAAM,CAACC,EAAE,CAAC,EACtD,CAACN,aAAa,CAChB,CAAC;EAED,MAAMO,YAAY,GAAGP,aAAa,CAACO,YAAY;EAE/C,MAAMC,kBAAkB,GAAGX,kCAAkC,CAAC;IAC5DY,+BAA+B,EAAET,aAAa,CAACU,UAAU;IACzDC,YAAY,EAAEX,aAAa,CAACY,UAAU,CAACD;EACzC,CAAC,CAAC;EAEF,MAAMD,UAAU,GAAGV,aAAa,CAACU,UAAU,GACvCF,kBAAkB,GACjBK,IAAS,IACRZ,oBAAoB,CAAC;IACnBY,IAAI;IACJN;EACF,CAAC,CAAC;EAER,MAAMO,aAAa,GAAGd,aAAa,CAACc,aAAa;EACjD,MAAMC,qBAAqB,GAAG,CAAC,CAACD,aAAa,CAAC,CAAC;EAC/C,MAAME,YAAY,GAAGhB,aAAa,CAACgB,YAAY,IAAI,IAAI;EAEvD,OAAO;IACLd,OAAO;IACPC,eAAe;IACfO,UAAU;IACVO,aAAa,EAAEjB,aAAa,CAACiB,aAAa,EAAEC,OAAO,gBACjDzB,KAAA,CAAA0B,aAAA,CAACvB,aAAa,MAAE,CAAC,GACfwB,SAAS;IACbN,aAAa;IACbC,qBAAqB;IACrBC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -48,7 +48,7 @@ export const useBulkActionToolbar = _ref => {
|
|
|
48
48
|
};
|
|
49
49
|
};
|
|
50
50
|
const buildPrimaryActions = () => {
|
|
51
|
-
if (!
|
|
51
|
+
if (!config?.primaryActions) {
|
|
52
52
|
return [];
|
|
53
53
|
}
|
|
54
54
|
return config.primaryActions.map((primaryItem, index) => {
|
|
@@ -71,7 +71,7 @@ export const useBulkActionToolbar = _ref => {
|
|
|
71
71
|
}).filter(action => Boolean(action));
|
|
72
72
|
};
|
|
73
73
|
const primaryActionItems = buildPrimaryActions();
|
|
74
|
-
const secondaryActionItems = config
|
|
74
|
+
const secondaryActionItems = config?.secondaryActions ? groupActions(config.secondaryActions).map(group => group.map(buildAction).filter(action => Boolean(action))).filter(group => group.length > 0) : [];
|
|
75
75
|
return /*#__PURE__*/React.createElement(MultiBulkActionToolbar, {
|
|
76
76
|
primaryActionItems: primaryActionItems,
|
|
77
77
|
secondaryActionItems: secondaryActionItems
|
|
@@ -1 +1 @@
|
|
|
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":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAM1C,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAEEC,sBAAsB,QAEjB,eAAe;AACtB,SACEC,gBAAgB,EAChBC,YAAY,EACZC,aAAa,EACbC,YAAY,QACP,kBAAkB;AAWzB,OAAO,MAAMC,oBAAoB,GAAGC,IAAA,IAGF;EAAA,IAHG;IACnCC,MAAM;IACNC;EAC0B,CAAC,GAAAF,IAAA;EAC3B,MAAMG,GAAG,GAAGV,aAAa,CAAC;IACxBS;EACF,CAAC,CAAC;EAEF,MAAME,iBAAiB,GAAGZ,WAAW,CAClCa,KAAkC,IAAK;IACtC,MAAMC,WAAW,GACfC,YAAkC,IACT;MACzB,IAAIC,eAA+C,GAAG,IAAI;MAE1D,MAAMC,UAAU,GAAG;QACjBC,YAAY,EAAEL,KAAK;QACnBF;MACF,CAAC;MAED,QAAQI,YAAY,CAACI,IAAI;QACvB,KAAK,YAAY;UACfH,eAAe,GAAGb,gBAAgB,CAAC;YACjCiB,MAAM,EAAEL,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QAEF,KAAK,QAAQ;UACXD,eAAe,GAAGZ,YAAY,CAAC;YAC7BgB,MAAM,EAAEL,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QAEF;UACE,OAAO,IAAI;MACf;MAEA,IAAI,CAACD,eAAe,EAAE;QACpB,OAAO,IAAI;MACb;MAEA,MAAMK,cAAc,GAAGhB,aAAa,CAACU,YAAY,EAAEC,eAAe,CAAC;MACnE,MAAM;QAAEM,IAAI;QAAE,GAAGC;MAAqB,CAAC,GAAGF,cAAc;MAExD,OAAO;QACLG,UAAU,EAAE,aAAAzB,KAAK,CAAC0B,cAAc,CAACH,IAAI,CAAC,GAAGA,IAAI,GAAGI,SAAS;QACzDC,QAAQ,EAAEZ,YAAY,CAACa,EAAE;QACzB,GAAGL;MACL,CAAC;IACH,CAAC;IAED,MAAMM,mBAAmB,GAAGA,CAAA,KAAuB;MACjD,IAAI,
|
|
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":[]}
|
|
@@ -69,8 +69,8 @@ export const useCollectionPageActions = _ref => {
|
|
|
69
69
|
}
|
|
70
70
|
return null;
|
|
71
71
|
};
|
|
72
|
-
const primaryActions =
|
|
73
|
-
const secondaryActions =
|
|
72
|
+
const primaryActions = collectionPageActions?.primaryActions && handleActionsType(collectionPageActions.primaryActions);
|
|
73
|
+
const secondaryActions = collectionPageActions?.secondaryActions && handleActionsType(collectionPageActions.secondaryActions);
|
|
74
74
|
if (!primaryActions && !secondaryActions) {
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
@@ -85,7 +85,7 @@ export const useCollectionPageActions = _ref => {
|
|
|
85
85
|
secondaryActions: undefined
|
|
86
86
|
};
|
|
87
87
|
}, []);
|
|
88
|
-
if (!
|
|
88
|
+
if (!collectionPageActions?.primaryActions && !collectionPageActions?.secondaryActions) {
|
|
89
89
|
return {
|
|
90
90
|
...actions
|
|
91
91
|
};
|
|
@@ -1 +1 @@
|
|
|
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":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAQnD,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SACEC,YAAY,EACZC,YAAY,EACZC,aAAa,EACbC,YAAY,QACP,kBAAkB;AAEzB,SAASC,cAAc,EAAEC,gBAAgB,QAAQ,eAAe;AAMhE,OAAO,MAAMC,wBAAwB,GAAGC,IAAA,IAEF;EAAA,IAFG;IACvCC;EAC8B,CAAC,GAAAD,IAAA;EAC/B,MAAME,GAAG,GAAGV,aAAa,CAAC;IACxBW,YAAY,EAAE;EAChB,CAAC,CAAC;EAEF,MAAMC,0BAA0B,GAAGd,WAAW,CAAC,MAAM;IACnD,IAAI,CAACW,qBAAqB,EAAE;MAC1B;IACF;IAEA,MAAMI,WAAW,GAAIC,YAAwC,IAAK;MAChE,IAAIC,eAA+C,GAAG,IAAI;MAE1D,MAAMC,UAAU,GAAG;QACjBC,YAAY,EAAE;UACZN,YAAY,EAAEG,YAAY,CAACI,UAAU,CAACP;QACxC,CAAC;QACDD;MACF,CAAC;MAED,QAAQI,YAAY,CAACK,IAAI;QACvB,KAAK,QAAQ;UACXJ,eAAe,GAAGd,YAAY,CAAC;YAC7BmB,MAAM,EAAEN,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QAEF,KAAK,QAAQ;UACXD,eAAe,GAAGb,YAAY,CAAC;YAC7BkB,MAAM,EAAEN,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QAEF;UACE,OAAO,IAAI;MACf;MAEA,IAAI,CAACD,eAAe,EAAE;QACpB,OAAO,IAAI;MACb;MAEA,MAAMM,cAAc,GAAGlB,aAAa,CAACW,YAAY,EAAEC,eAAe,CAAC;MACnE,MAAM;QAAEO,OAAO;QAAEC,IAAI;QAAE,GAAGC;MAAoB,CAAC,GAAGH,cAAc;MAEhE,OAAO;QACL,GAAGG,mBAAmB;QACtBC,UAAU,EAAEF,IAAmB;QAC/BG,mBAAmB,EAAEL,cAAc,CAACC;MACtC,CAAC;IACH,CAAC;IAED,MAAMK,iBAAiB,GACrBC,OAAsE,IACnE;MACH,IAAIA,OAAO,CAACT,IAAI,KAAK,QAAQ,EAAE;QAC7B,OAAON,WAAW,CAACe,OAAO,CAACR,MAAM,CAACS,IAAI,CAAC;MACzC;MAEA,IAAID,OAAO,CAACT,IAAI,KAAK,MAAM,EAAE;QAC3B,MAAMW,YAAY,GAAG1B,YAAY,CAACwB,OAAO,CAACG,IAAI,CAACC,KAAK,CAAC;QACrD,MAAMC,QAAQ,GAAGH,YAAY,CAC1BI,GAAG,CAAEC,KAAK,IACTA,KAAK,CAACD,GAAG,CAACrB,WAAW,CAAC,CAACuB,MAAM,CAAEhB,MAAM,IAAKA,MAAM,KAAK,IAAI,CAC3D,CAAC,CACAgB,MAAM,CAAED,KAAK,IAAKA,KAAK,CAACE,MAAM,GAAG,CAAC,CAAC;QAEtC,IAAI,CAACJ,QAAQ,CAACI,MAAM,EAAE;UACpB,OAAO,IAAI;QACb;QAEA,OAAO;UACLC,KAAK,EAAEV,OAAO,CAACG,IAAI,CAACO,KAAK;UACzBL;QACF,CAAC;MACH;MAEA,OAAO,IAAI;IACb,CAAC;IAED,MAAMM,cAAc,
|
|
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":[]}
|
|
@@ -36,7 +36,7 @@ export const useCollectionPageOnRowClickActions = _ref => {
|
|
|
36
36
|
return null;
|
|
37
37
|
}
|
|
38
38
|
const resolvedAction = resolveAction(actionConfig, actionToResolve);
|
|
39
|
-
return resolvedAction.onClick
|
|
39
|
+
return resolvedAction.onClick?.();
|
|
40
40
|
};
|
|
41
41
|
return buildAction(collectionPageOnRowClickActions);
|
|
42
42
|
}, [collectionPageOnRowClickActions, sdk]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","customAction","resolveAction","useActionsSDK","useCollectionPageOnRowClickActions","_ref","collectionPageOnRowClickActions","collectionId","sdk","buildCollectionPageActions","item","index","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","resolvedAction","onClick"],"sources":["../../../src/hooks/useCollectionPageOnRowClickActions.tsx"],"sourcesContent":["import { useCallback } from 'react';\nimport { CollectionPageOnRowClickActionConfig, ResolvedAction } from '../types';\nimport { customAction, resolveAction } from '../utils/actions';\nimport { useActionsSDK } from './useActionsSDK';\n\nexport interface UseCollectionPageOnRowClickActionsParams {\n collectionPageOnRowClickActions?: CollectionPageOnRowClickActionConfig;\n collectionId: string;\n}\n\nexport const useCollectionPageOnRowClickActions = ({\n collectionPageOnRowClickActions,\n collectionId,\n}: UseCollectionPageOnRowClickActionsParams) => {\n const sdk = useActionsSDK({\n collectionId,\n });\n const buildCollectionPageActions = useCallback(\n (item, index) => {\n if (!collectionPageOnRowClickActions) {\n return;\n }\n\n const buildAction = (\n actionConfig: CollectionPageOnRowClickActionConfig,\n ) => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n const baseParams = {\n actionParams: { item, index },\n sdk,\n };\n switch (actionConfig.type) {\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\n return resolvedAction.onClick?.();\n };\n\n return buildAction(collectionPageOnRowClickActions);\n },\n [collectionPageOnRowClickActions, sdk],\n );\n\n return buildCollectionPageActions;\n};\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAASC,YAAY,EAAEC,aAAa,QAAQ,kBAAkB;AAC9D,SAASC,aAAa,QAAQ,iBAAiB;AAO/C,OAAO,MAAMC,kCAAkC,GAAGC,IAAA,IAGF;EAAA,IAHG;IACjDC,+BAA+B;IAC/BC;EACwC,CAAC,GAAAF,IAAA;EACzC,MAAMG,GAAG,GAAGL,aAAa,CAAC;IACxBI;EACF,CAAC,CAAC;EACF,MAAME,0BAA0B,GAAGT,WAAW,CAC5C,CAACU,IAAI,EAAEC,KAAK,KAAK;IACf,IAAI,CAACL,+BAA+B,EAAE;MACpC;IACF;IAEA,MAAMM,WAAW,GACfC,YAAkD,IAC/C;MACH,IAAIC,eAA+C,GAAG,IAAI;MAC1D,MAAMC,UAAU,GAAG;QACjBC,YAAY,EAAE;UAAEN,IAAI;UAAEC;QAAM,CAAC;QAC7BH;MACF,CAAC;MACD,QAAQK,YAAY,CAACI,IAAI;QACvB,KAAK,QAAQ;UACXH,eAAe,GAAGb,YAAY,CAAC;YAC7BiB,MAAM,EAAEL,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QAEF;UACE,OAAO,IAAI;MACf;MAEA,IAAI,CAACD,eAAe,EAAE;QACpB,OAAO,IAAI;MACb;MAEA,MAAMK,cAAc,GAAGjB,aAAa,CAACW,YAAY,EAAEC,eAAe,CAAC;MAEnE,OAAOK,cAAc,CAACC,OAAO,
|
|
1
|
+
{"version":3,"names":["useCallback","customAction","resolveAction","useActionsSDK","useCollectionPageOnRowClickActions","_ref","collectionPageOnRowClickActions","collectionId","sdk","buildCollectionPageActions","item","index","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","resolvedAction","onClick"],"sources":["../../../src/hooks/useCollectionPageOnRowClickActions.tsx"],"sourcesContent":["import { useCallback } from 'react';\nimport { CollectionPageOnRowClickActionConfig, ResolvedAction } from '../types';\nimport { customAction, resolveAction } from '../utils/actions';\nimport { useActionsSDK } from './useActionsSDK';\n\nexport interface UseCollectionPageOnRowClickActionsParams {\n collectionPageOnRowClickActions?: CollectionPageOnRowClickActionConfig;\n collectionId: string;\n}\n\nexport const useCollectionPageOnRowClickActions = ({\n collectionPageOnRowClickActions,\n collectionId,\n}: UseCollectionPageOnRowClickActionsParams) => {\n const sdk = useActionsSDK({\n collectionId,\n });\n const buildCollectionPageActions = useCallback(\n (item, index) => {\n if (!collectionPageOnRowClickActions) {\n return;\n }\n\n const buildAction = (\n actionConfig: CollectionPageOnRowClickActionConfig,\n ) => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n const baseParams = {\n actionParams: { item, index },\n sdk,\n };\n switch (actionConfig.type) {\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\n return resolvedAction.onClick?.();\n };\n\n return buildAction(collectionPageOnRowClickActions);\n },\n [collectionPageOnRowClickActions, sdk],\n );\n\n return buildCollectionPageActions;\n};\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAASC,YAAY,EAAEC,aAAa,QAAQ,kBAAkB;AAC9D,SAASC,aAAa,QAAQ,iBAAiB;AAO/C,OAAO,MAAMC,kCAAkC,GAAGC,IAAA,IAGF;EAAA,IAHG;IACjDC,+BAA+B;IAC/BC;EACwC,CAAC,GAAAF,IAAA;EACzC,MAAMG,GAAG,GAAGL,aAAa,CAAC;IACxBI;EACF,CAAC,CAAC;EACF,MAAME,0BAA0B,GAAGT,WAAW,CAC5C,CAACU,IAAI,EAAEC,KAAK,KAAK;IACf,IAAI,CAACL,+BAA+B,EAAE;MACpC;IACF;IAEA,MAAMM,WAAW,GACfC,YAAkD,IAC/C;MACH,IAAIC,eAA+C,GAAG,IAAI;MAC1D,MAAMC,UAAU,GAAG;QACjBC,YAAY,EAAE;UAAEN,IAAI;UAAEC;QAAM,CAAC;QAC7BH;MACF,CAAC;MACD,QAAQK,YAAY,CAACI,IAAI;QACvB,KAAK,QAAQ;UACXH,eAAe,GAAGb,YAAY,CAAC;YAC7BiB,MAAM,EAAEL,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QAEF;UACE,OAAO,IAAI;MACf;MAEA,IAAI,CAACD,eAAe,EAAE;QACpB,OAAO,IAAI;MACb;MAEA,MAAMK,cAAc,GAAGjB,aAAa,CAACW,YAAY,EAAEC,eAAe,CAAC;MAEnE,OAAOK,cAAc,CAACC,OAAO,GAAG,CAAC;IACnC,CAAC;IAED,OAAOR,WAAW,CAACN,+BAA+B,CAAC;EACrD,CAAC,EACD,CAACA,+BAA+B,EAAEE,GAAG,CACvC,CAAC;EAED,OAAOC,0BAA0B;AACnC,CAAC","ignoreList":[]}
|
|
@@ -12,8 +12,7 @@ export const useColumns = columns => {
|
|
|
12
12
|
} = useSchemaRegistry();
|
|
13
13
|
const overrides = usePatternsWizardOverridesContext();
|
|
14
14
|
const existingColumns = columns.filter(column => {
|
|
15
|
-
|
|
16
|
-
return !!fields[column.id] || (overrides == null || (_overrides$columns = overrides.columns) == null ? void 0 : _overrides$columns[column.id]);
|
|
15
|
+
return !!fields[column.id] || overrides?.columns?.[column.id];
|
|
17
16
|
});
|
|
18
17
|
const createRenderer = (fieldDefinition, itemValue) => {
|
|
19
18
|
if (itemValue == null) {
|
|
@@ -55,9 +54,8 @@ export const useColumns = columns => {
|
|
|
55
54
|
let imageValue;
|
|
56
55
|
const displayField = refSchema.displayField;
|
|
57
56
|
if (typeof itemValue === 'object' && itemValue !== null) {
|
|
58
|
-
var _Object$values$find;
|
|
59
57
|
nameValue = itemValue[displayField] || '';
|
|
60
|
-
const imageFieldId =
|
|
58
|
+
const imageFieldId = Object.values(fields).find(field => field?.type === 'IMAGE')?.id;
|
|
61
59
|
imageValue = imageFieldId && itemValue[imageFieldId];
|
|
62
60
|
}
|
|
63
61
|
const imageUrl = imageValue && getImageUrl(imageValue);
|
|
@@ -86,24 +84,21 @@ export const useColumns = columns => {
|
|
|
86
84
|
}
|
|
87
85
|
};
|
|
88
86
|
return existingColumns.map(column => {
|
|
89
|
-
var _overrides$columns2, _fieldDefinition$capa;
|
|
90
87
|
const fieldDefinition = fields[column.id];
|
|
91
|
-
if (!fieldDefinition && !
|
|
88
|
+
if (!fieldDefinition && !overrides?.columns?.[column.id]) {
|
|
92
89
|
return null;
|
|
93
90
|
}
|
|
94
|
-
const sortable = column.sortable &&
|
|
91
|
+
const sortable = column.sortable && fieldDefinition?.capabilities?.sortable;
|
|
95
92
|
const baseColumnConfig = {
|
|
96
93
|
id: column.id,
|
|
97
|
-
title: column.name ||
|
|
94
|
+
title: column.name || fieldDefinition?.displayName,
|
|
98
95
|
width: column.width,
|
|
99
96
|
...createSortConfiguration(column, sortable),
|
|
100
97
|
...createCustomColumnConfiguration(column),
|
|
101
98
|
render: row => {
|
|
102
|
-
var _overrides$columns3;
|
|
103
99
|
const itemValue = get(row, column.id);
|
|
104
|
-
if (overrides
|
|
105
|
-
|
|
106
|
-
return overrides == null || (_overrides$columns4 = overrides.columns) == null || (_overrides$columns4$c = _overrides$columns4[camelCase(column.id)]) == null ? void 0 : _overrides$columns4$c.call(_overrides$columns4, {
|
|
100
|
+
if (overrides?.columns?.[camelCase(column.id)]) {
|
|
101
|
+
return overrides?.columns?.[camelCase(column.id)]?.({
|
|
107
102
|
value: itemValue,
|
|
108
103
|
row
|
|
109
104
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","usePatternsWizardOverridesContext","useSchema","useSchemaRegistry","camelCase","get","Avatar","Box","Image","getImageUrl","useColumns","columns","fields","getSchema","overrides","existingColumns","filter","column","_overrides$columns","id","createRenderer","fieldDefinition","itemValue","type","Date","toLocaleDateString","date","toLocaleString","join","referenceMetadata","referencedCollectionId","refSchema","nameValue","imageValue","displayField","_Object$values$find","imageFieldId","Object","values","find","field","imageUrl","createElement","gap","verticalAlign","size","name","imgProps","src","width","dataHook","map","_overrides$columns2","_fieldDefinition$capa","sortable","capabilities","baseColumnConfig","title","displayName","createSortConfiguration","createCustomColumnConfiguration","render","row","_overrides$columns3","_overrides$columns4","_overrides$columns4$c","call","value","Boolean","sortableColumnConfig","defaultSortOrder","sortMode","undefined","reorderDisabled","hiddenFromCustomColumnsSelection","hideable","defaultHidden"],"sources":["../../../src/hooks/useColumns.tsx"],"sourcesContent":["import React from 'react';\nimport { TableColumn } from '@wix/patterns';\nimport {\n usePatternsWizardOverridesContext,\n useSchema,\n useSchemaRegistry,\n} from '../providers';\nimport { Column, Field } from '../types';\nimport { camelCase, get } from 'lodash';\nimport { Avatar, Box, Image } from '@wix/design-system';\nimport { getImageUrl } from '../utils/media/getImageUrl';\n\nexport const useColumns = (columns: Column[]) => {\n const { fields } = useSchema();\n const { getSchema } = useSchemaRegistry();\n const overrides = usePatternsWizardOverridesContext();\n\n const existingColumns = columns.filter((column) => {\n return !!fields[column.id] || overrides?.columns?.[column.id];\n });\n\n const createRenderer = (fieldDefinition: Field, itemValue: any) => {\n if (itemValue == null) {\n return '';\n }\n\n switch (fieldDefinition.type) {\n case 'BOOLEAN':\n return itemValue ? '✔' : '✖';\n case 'DATE':\n if (itemValue instanceof Date) {\n return itemValue.toLocaleDateString();\n }\n if (typeof itemValue === 'string') {\n const date = new Date(itemValue);\n return date.toLocaleDateString();\n }\n return itemValue;\n case 'DATETIME':\n if (itemValue instanceof Date) {\n return itemValue.toLocaleString();\n }\n if (typeof itemValue === 'string') {\n const date = new Date(itemValue);\n return date.toLocaleString();\n }\n return itemValue;\n case 'ARRAY':\n // We assume that the array contains strings\n // If the array contains objects, we need to handle it differently\n return itemValue.join(', ');\n case 'REFERENCE':\n if (fieldDefinition.referenceMetadata && getSchema) {\n const { referencedCollectionId } = fieldDefinition.referenceMetadata;\n const refSchema = getSchema(referencedCollectionId);\n\n if (refSchema) {\n let nameValue: string | undefined;\n let imageValue: string | undefined;\n const displayField = refSchema.displayField;\n if (typeof itemValue === 'object' && itemValue !== null) {\n nameValue = itemValue[displayField] || '';\n const imageFieldId = Object.values(fields).find(\n (field) => field?.type === 'IMAGE',\n )?.id;\n imageValue = imageFieldId && itemValue[imageFieldId];\n }\n\n const imageUrl = imageValue && getImageUrl(imageValue);\n return (\n <Box gap=\"SP2\" verticalAlign=\"middle\">\n {imageUrl && (\n <Avatar\n size=\"size24\"\n name={nameValue}\n imgProps={{ src: imageUrl }}\n />\n )}\n <div>{nameValue}</div>\n </Box>\n );\n }\n }\n\n return itemValue;\n case 'IMAGE':\n const imageUrl = getImageUrl(itemValue);\n\n return (\n <Image src={imageUrl} width=\"48px\" dataHook=\"auto-patterns-image\" />\n );\n default:\n return itemValue;\n }\n };\n\n return existingColumns\n .map((column) => {\n const fieldDefinition = fields[column.id];\n if (!fieldDefinition && !overrides?.columns?.[column.id]) {\n return null;\n }\n\n const sortable =\n column.sortable && fieldDefinition?.capabilities?.sortable;\n\n const baseColumnConfig = {\n id: column.id,\n title: column.name || fieldDefinition?.displayName,\n width: column.width,\n ...createSortConfiguration(column, sortable),\n ...createCustomColumnConfiguration(column),\n render: (row: any) => {\n const itemValue = get(row, column.id);\n\n if (overrides?.columns?.[camelCase(column.id)]) {\n return overrides?.columns?.[camelCase(column.id)]?.({\n value: itemValue,\n row,\n });\n }\n\n if (fieldDefinition) {\n return createRenderer(fieldDefinition, itemValue);\n }\n\n return null; // Shouldn't really happen\n },\n };\n\n return baseColumnConfig;\n })\n .filter(Boolean) as TableColumn<any>[];\n};\n\nconst createSortConfiguration = (\n column: Column,\n sortable?: boolean,\n): Partial<TableColumn<any>> => {\n if (!sortable) {\n return {};\n }\n const sortableColumnConfig = {\n sortable,\n defaultSortOrder: column.defaultSortOrder,\n };\n\n // default sort mode is ['asc', 'desc', undefined]\n // so if sort mode is 'desc' -> we want to override the default\n // and set it to ['desc', 'asc', undefined]\n if (column.sortMode && column.sortMode === 'desc') {\n return {\n ...sortableColumnConfig,\n sortMode: ['desc', 'asc', undefined],\n };\n }\n return {\n ...sortableColumnConfig,\n };\n};\n\nconst createCustomColumnConfiguration = (\n column: Column,\n): Partial<TableColumn<any>> => {\n const reorderDisabled = !!column.reorderDisabled;\n\n if (column.hiddenFromCustomColumnsSelection) {\n return { hiddenFromCustomColumnsSelection: true };\n }\n if (column.hideable === false) {\n return {\n hideable: false,\n reorderDisabled,\n };\n }\n return {\n defaultHidden: !!column.defaultHidden,\n reorderDisabled,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","usePatternsWizardOverridesContext","useSchema","useSchemaRegistry","camelCase","get","Avatar","Box","Image","getImageUrl","useColumns","columns","fields","getSchema","overrides","existingColumns","filter","column","id","createRenderer","fieldDefinition","itemValue","type","Date","toLocaleDateString","date","toLocaleString","join","referenceMetadata","referencedCollectionId","refSchema","nameValue","imageValue","displayField","imageFieldId","Object","values","find","field","imageUrl","createElement","gap","verticalAlign","size","name","imgProps","src","width","dataHook","map","sortable","capabilities","baseColumnConfig","title","displayName","createSortConfiguration","createCustomColumnConfiguration","render","row","value","Boolean","sortableColumnConfig","defaultSortOrder","sortMode","undefined","reorderDisabled","hiddenFromCustomColumnsSelection","hideable","defaultHidden"],"sources":["../../../src/hooks/useColumns.tsx"],"sourcesContent":["import React from 'react';\nimport { TableColumn } from '@wix/patterns';\nimport {\n usePatternsWizardOverridesContext,\n useSchema,\n useSchemaRegistry,\n} from '../providers';\nimport { Column, Field } from '../types';\nimport { camelCase, get } from 'lodash';\nimport { Avatar, Box, Image } from '@wix/design-system';\nimport { getImageUrl } from '../utils/media/getImageUrl';\n\nexport const useColumns = (columns: Column[]) => {\n const { fields } = useSchema();\n const { getSchema } = useSchemaRegistry();\n const overrides = usePatternsWizardOverridesContext();\n\n const existingColumns = columns.filter((column) => {\n return !!fields[column.id] || overrides?.columns?.[column.id];\n });\n\n const createRenderer = (fieldDefinition: Field, itemValue: any) => {\n if (itemValue == null) {\n return '';\n }\n\n switch (fieldDefinition.type) {\n case 'BOOLEAN':\n return itemValue ? '✔' : '✖';\n case 'DATE':\n if (itemValue instanceof Date) {\n return itemValue.toLocaleDateString();\n }\n if (typeof itemValue === 'string') {\n const date = new Date(itemValue);\n return date.toLocaleDateString();\n }\n return itemValue;\n case 'DATETIME':\n if (itemValue instanceof Date) {\n return itemValue.toLocaleString();\n }\n if (typeof itemValue === 'string') {\n const date = new Date(itemValue);\n return date.toLocaleString();\n }\n return itemValue;\n case 'ARRAY':\n // We assume that the array contains strings\n // If the array contains objects, we need to handle it differently\n return itemValue.join(', ');\n case 'REFERENCE':\n if (fieldDefinition.referenceMetadata && getSchema) {\n const { referencedCollectionId } = fieldDefinition.referenceMetadata;\n const refSchema = getSchema(referencedCollectionId);\n\n if (refSchema) {\n let nameValue: string | undefined;\n let imageValue: string | undefined;\n const displayField = refSchema.displayField;\n if (typeof itemValue === 'object' && itemValue !== null) {\n nameValue = itemValue[displayField] || '';\n const imageFieldId = Object.values(fields).find(\n (field) => field?.type === 'IMAGE',\n )?.id;\n imageValue = imageFieldId && itemValue[imageFieldId];\n }\n\n const imageUrl = imageValue && getImageUrl(imageValue);\n return (\n <Box gap=\"SP2\" verticalAlign=\"middle\">\n {imageUrl && (\n <Avatar\n size=\"size24\"\n name={nameValue}\n imgProps={{ src: imageUrl }}\n />\n )}\n <div>{nameValue}</div>\n </Box>\n );\n }\n }\n\n return itemValue;\n case 'IMAGE':\n const imageUrl = getImageUrl(itemValue);\n\n return (\n <Image src={imageUrl} width=\"48px\" dataHook=\"auto-patterns-image\" />\n );\n default:\n return itemValue;\n }\n };\n\n return existingColumns\n .map((column) => {\n const fieldDefinition = fields[column.id];\n if (!fieldDefinition && !overrides?.columns?.[column.id]) {\n return null;\n }\n\n const sortable =\n column.sortable && fieldDefinition?.capabilities?.sortable;\n\n const baseColumnConfig = {\n id: column.id,\n title: column.name || fieldDefinition?.displayName,\n width: column.width,\n ...createSortConfiguration(column, sortable),\n ...createCustomColumnConfiguration(column),\n render: (row: any) => {\n const itemValue = get(row, column.id);\n\n if (overrides?.columns?.[camelCase(column.id)]) {\n return overrides?.columns?.[camelCase(column.id)]?.({\n value: itemValue,\n row,\n });\n }\n\n if (fieldDefinition) {\n return createRenderer(fieldDefinition, itemValue);\n }\n\n return null; // Shouldn't really happen\n },\n };\n\n return baseColumnConfig;\n })\n .filter(Boolean) as TableColumn<any>[];\n};\n\nconst createSortConfiguration = (\n column: Column,\n sortable?: boolean,\n): Partial<TableColumn<any>> => {\n if (!sortable) {\n return {};\n }\n const sortableColumnConfig = {\n sortable,\n defaultSortOrder: column.defaultSortOrder,\n };\n\n // default sort mode is ['asc', 'desc', undefined]\n // so if sort mode is 'desc' -> we want to override the default\n // and set it to ['desc', 'asc', undefined]\n if (column.sortMode && column.sortMode === 'desc') {\n return {\n ...sortableColumnConfig,\n sortMode: ['desc', 'asc', undefined],\n };\n }\n return {\n ...sortableColumnConfig,\n };\n};\n\nconst createCustomColumnConfiguration = (\n column: Column,\n): Partial<TableColumn<any>> => {\n const reorderDisabled = !!column.reorderDisabled;\n\n if (column.hiddenFromCustomColumnsSelection) {\n return { hiddenFromCustomColumnsSelection: true };\n }\n if (column.hideable === false) {\n return {\n hideable: false,\n reorderDisabled,\n };\n }\n return {\n defaultHidden: !!column.defaultHidden,\n reorderDisabled,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|