@webiny/app-headless-cms 6.5.0-beta.4 → 6.5.0-beta.5
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/admin/components/ContentEntries/BulkActions/ActionDelete.d.ts +2 -2
- package/admin/components/ContentEntries/BulkActions/ActionDelete.js.map +1 -1
- package/admin/components/ContentEntries/BulkActions/ActionMove.d.ts +2 -2
- package/admin/components/ContentEntries/BulkActions/ActionMove.js.map +1 -1
- package/admin/components/ContentEntries/BulkActions/ActionPublish.d.ts +2 -2
- package/admin/components/ContentEntries/BulkActions/ActionPublish.js.map +1 -1
- package/admin/components/ContentEntries/BulkActions/ActionUnpublish.d.ts +2 -2
- package/admin/components/ContentEntries/BulkActions/ActionUnpublish.js.map +1 -1
- package/admin/components/ContentModelEditor/ContentModelEditor.js +1 -1
- package/admin/components/ContentModelEditor/ContentModelEditor.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog.d.ts +2 -2
- package/admin/components/FieldEditor/Field.js +4 -4
- package/admin/components/FieldEditor/Field.js.map +1 -1
- package/features/contentEntry/createEntry/CreateEntryGateway.d.ts +0 -1
- package/features/contentEntry/createEntry/CreateEntryGateway.js +1 -9
- package/features/contentEntry/createEntry/CreateEntryGateway.js.map +1 -1
- package/features/contentEntry/createRevisionFrom/CreateRevisionFromGateway.d.ts +3 -1
- package/features/contentEntry/createRevisionFrom/CreateRevisionFromGateway.js +6 -2
- package/features/contentEntry/createRevisionFrom/CreateRevisionFromGateway.js.map +1 -1
- package/features/contentEntry/entryValueGateways.test.d.ts +1 -0
- package/features/contentEntry/entryValueGateways.test.js +106 -0
- package/features/contentEntry/entryValueGateways.test.js.map +1 -0
- package/features/contentEntry/singletonEntry/UpdateSingletonEntryGateway.d.ts +0 -1
- package/features/contentEntry/singletonEntry/UpdateSingletonEntryGateway.js +1 -9
- package/features/contentEntry/singletonEntry/UpdateSingletonEntryGateway.js.map +1 -1
- package/features/contentEntry/updateEntry/UpdateEntryGateway.d.ts +0 -1
- package/features/contentEntry/updateEntry/UpdateEntryGateway.js +1 -9
- package/features/contentEntry/updateEntry/UpdateEntryGateway.js.map +1 -1
- package/features/contentEntry/valueTransformers/EntryDataPreparer.d.ts +9 -0
- package/features/contentEntry/valueTransformers/EntryDataPreparer.js +8 -0
- package/features/contentEntry/valueTransformers/EntryDataPreparer.js.map +1 -1
- package/features/contentEntry/valueTransformers/EntryDataPreparer.test.d.ts +1 -0
- package/features/contentEntry/valueTransformers/EntryDataPreparer.test.js +113 -0
- package/features/contentEntry/valueTransformers/EntryDataPreparer.test.js.map +1 -0
- package/features/contentEntry/valueTransformers/entryValueFixtures.d.ts +146 -0
- package/features/contentEntry/valueTransformers/entryValueFixtures.js +171 -0
- package/features/contentEntry/valueTransformers/entryValueFixtures.js.map +1 -0
- package/features/formModel/mappers/DynamicZoneFieldMapper.js +1 -0
- package/features/formModel/mappers/DynamicZoneFieldMapper.js.map +1 -1
- package/features/model/exportModels/ExportModelsGateway.d.ts +1 -1
- package/features/model/exportModels/ExportModelsGateway.js.map +1 -1
- package/features/model/exportModels/ExportModelsUseCase.js +7 -1
- package/features/model/exportModels/ExportModelsUseCase.js.map +1 -1
- package/features/model/exportModels/abstractions.d.ts +8 -2
- package/features/model/exportModels/abstractions.js.map +1 -1
- package/package.json +26 -26
- package/presentation/contentEntries/trashBin/CmsTrashBin.d.ts +2 -2
- package/presentation/contentEntries/views/CmsAdvancedSearch.d.ts +2 -2
- package/presentation/contentEntries/views/ContentEntriesListLayout.d.ts +2 -2
- package/presentation/contentEntries/views/ContentEntryFormView.d.ts +2 -2
- package/presentation/contentEntries/views/OlderRevisionAlert.d.ts +2 -2
- package/presentation/contentEntries/views/RevisionDrawer.d.ts +2 -2
- package/presentation/contentEntries/views/RevisionsList.d.ts +2 -2
- package/presentation/contentEntries/views/SingleEntryLayout.d.ts +2 -2
- package/presentation/contentEntries/views/Table/Table.d.ts +2 -2
- package/presentation/contentEntries/views/actions/CreateNewRevisionButton.d.ts +2 -2
- package/presentation/contentEntries/views/actions/DeleteEntryMenuItem.d.ts +2 -2
- package/presentation/contentEntries/views/actions/PublishOnlyButton.d.ts +2 -2
- package/presentation/contentEntries/views/actions/RevisionSelector.d.ts +2 -2
- package/presentation/contentEntries/views/actions/SaveAndPublishButton.d.ts +2 -2
- package/presentation/contentEntries/views/actions/SaveContentButton.d.ts +2 -2
- package/presentation/contentEntries/views/actions/ShowRevisionListMenuItem.d.ts +2 -2
- package/presentation/contentEntries/views/layout/ContentEntryForm.d.ts +12 -12
- package/presentation/contentModels/ContentModelsPresenter.d.ts +5 -5
- package/presentation/contentModels/ContentModelsPresenter.js +1 -1
- package/presentation/contentModels/ContentModelsPresenter.js.map +1 -1
- package/presentation/contentModels/abstractions.d.ts +7 -2
- package/presentation/contentModels/abstractions.js.map +1 -1
- package/presentation/contentModels/components/CloneContentModelDialog.d.ts +2 -2
- package/presentation/contentModels/components/ContentModels.d.ts +2 -2
- package/presentation/contentModels/components/ContentModelsDataList.d.ts +2 -2
- package/presentation/contentModels/components/ContentModelsDataList.js +6 -5
- package/presentation/contentModels/components/ContentModelsDataList.js.map +1 -1
- package/presentation/contentModels/components/NewContentModelDialog.d.ts +2 -2
- package/presentation/contentModels/components/fullDelete/dialog/Content.js +2 -2
- package/presentation/contentModels/components/fullDelete/dialog/Content.js.map +1 -1
- package/presentation/contentModels/components/fullDelete/types.js.map +1 -1
- package/presentation/fieldRenderers/ref/components/RefFieldOptions.d.ts +2 -2
- package/presentation/fieldRenderers/ref/components/RefFieldOptions.js +3 -2
- package/presentation/fieldRenderers/ref/components/RefFieldOptions.js.map +1 -1
- package/presentation/importContentModels/ImportContentModelsDialog.d.ts +2 -2
- package/presentation/importContentModels/ImportContentModelsPresenter.js +1 -1
- package/presentation/importContentModels/ImportContentModelsPresenter.js.map +1 -1
- package/presentation/importContentModels/components/DataList.d.ts +2 -2
- package/presentation/importContentModels/components/FileUpload.d.ts +2 -2
- package/presentation/importContentModels/components/FileUpload.js +1 -1
- package/presentation/importContentModels/components/FileUpload.js.map +1 -1
- package/presentation/importContentModels/components/Model/DataListModelItem.js +3 -3
- package/presentation/importContentModels/components/Model/DataListModelItem.js.map +1 -1
- package/presentation/importContentModels/components/Model/DataListModelItemInfo.js +2 -2
- package/presentation/importContentModels/components/Model/DataListModelItemInfo.js.map +1 -1
- package/presentation/importContentModels/components/Model/DataListModels.d.ts +2 -2
- package/presentation/menus/ContentGroupsMenuItems.d.ts +2 -2
- package/presentation/modelGroup/ModelGroupPresenter.js +1 -2
- package/presentation/modelGroup/ModelGroupPresenter.js.map +1 -1
- package/presentation/modelGroup/components/ContentModelGroups.d.ts +2 -2
- package/presentation/modelGroup/components/ContentModelGroupsDataList.d.ts +6 -2
- package/presentation/modelGroup/components/ContentModelGroupsForm.d.ts +8 -2
- package/utils/normalizeIcon.d.ts +4 -0
- package/utils/normalizeIcon.js +9 -6
- package/utils/normalizeIcon.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/formModel/mappers/DynamicZoneFieldMapper.js","sources":["../../../../src/features/formModel/mappers/DynamicZoneFieldMapper.ts"],"sourcesContent":["import type { ICmsFieldTypeMapper, ICmsFieldMapperContext } from \"../abstractions.js\";\nimport type {\n IFieldBuilder,\n IFieldBuilderRegistry,\n IObjectFieldBuilder\n} from \"@webiny/app-admin/features/formModel/abstractions.js\";\nimport type { CmsModelField, CmsDynamicZoneTemplate } from \"~/types.js\";\nimport { applyFieldProps } from \"./applyFieldProps.js\";\nimport type { ITemplateIcon } from \"@webiny/app-admin/features/formModel/index.js\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils/generateId\";\n\nexport class DynamicZoneFieldMapper implements ICmsFieldTypeMapper {\n readonly type = \"dynamicZone\";\n\n map(\n field: CmsModelField,\n registry: IFieldBuilderRegistry,\n context: ICmsFieldMapperContext\n ): IFieldBuilder {\n const builder = registry.object() as IObjectFieldBuilder;\n\n const templates = field.settings?.templates as CmsDynamicZoneTemplate[] | undefined;\n if (templates) {\n for (const template of templates) {\n builder.template(template.id, t => {\n t.label(template.name);\n if (template.icon) {\n const icon = template.icon;\n if (typeof icon === \"object\" && \"name\" in icon) {\n t.icon(icon as ITemplateIcon);\n } else if (typeof icon === \"string\") {\n t.icon({ type: \"icon\", name: icon });\n }\n }\n t.fields(childRegistry => {\n const result: Record<string, IFieldBuilder> = {};\n result[\"_id\"] = childRegistry\n .text()\n .hidden()\n .defaultValue(() => generateAlphaNumericLowerCaseId(12))\n .cloneValue(() => generateAlphaNumericLowerCaseId(12));\n if (template.fields && template.fields.length > 0) {\n for (const child of template.fields) {\n result[child.fieldId] = context.mapField(child, childRegistry);\n }\n }\n return result;\n });\n });\n }\n }\n\n return applyFieldProps(builder, field, context.rendererMap);\n }\n}\n"],"names":["DynamicZoneFieldMapper","field","registry","context","builder","templates","template","t","icon","childRegistry","result","generateAlphaNumericLowerCaseId","child","applyFieldProps"],"mappings":";;AAWO,MAAMA;IAGT,IACIC,KAAoB,EACpBC,QAA+B,EAC/BC,OAA+B,EAClB;QACb,MAAMC,UAAUF,SAAS,MAAM;QAE/B,MAAMG,YAAYJ,MAAM,QAAQ,EAAE;QAClC,IAAII,WACA,KAAK,MAAMC,YAAYD,UACnBD,QAAQ,QAAQ,CAACE,SAAS,EAAE,EAAEC,CAAAA;YAC1BA,EAAE,KAAK,CAACD,SAAS,IAAI;YACrB,IAAIA,SAAS,IAAI,EAAE;gBACf,MAAME,OAAOF,SAAS,IAAI;gBAC1B,IAAI,AAAgB,YAAhB,OAAOE,QAAqB,UAAUA,MACtCD,EAAE,IAAI,CAACC;qBACJ,IAAI,AAAgB,YAAhB,OAAOA,MACdD,EAAE,IAAI,CAAC;oBAAE,MAAM;oBAAQ,MAAMC;gBAAK;YAE1C;YACAD,EAAE,MAAM,CAACE,CAAAA;gBACL,MAAMC,SAAwC,CAAC;gBAC/CA,MAAM,CAAC,MAAM,GAAGD,cACX,IAAI,GACJ,MAAM,GACN,YAAY,CAAC,IAAME,gCAAgC,KACnD,UAAU,CAAC,IAAMA,gCAAgC;gBACtD,IAAIL,SAAS,MAAM,IAAIA,SAAS,MAAM,CAAC,MAAM,GAAG,GAC5C,KAAK,MAAMM,SAASN,SAAS,MAAM,CAC/BI,MAAM,CAACE,MAAM,OAAO,CAAC,GAAGT,QAAQ,QAAQ,CAACS,OAAOH;gBAGxD,OAAOC;YACX;QACJ;QAIR,OAAOG,gBAAgBT,SAASH,OAAOE,QAAQ,WAAW;IAC9D;;
|
|
1
|
+
{"version":3,"file":"features/formModel/mappers/DynamicZoneFieldMapper.js","sources":["../../../../src/features/formModel/mappers/DynamicZoneFieldMapper.ts"],"sourcesContent":["import type { ICmsFieldTypeMapper, ICmsFieldMapperContext } from \"../abstractions.js\";\nimport type {\n IFieldBuilder,\n IFieldBuilderRegistry,\n IObjectFieldBuilder\n} from \"@webiny/app-admin/features/formModel/abstractions.js\";\nimport type { CmsModelField, CmsDynamicZoneTemplate } from \"~/types.js\";\nimport { applyFieldProps } from \"./applyFieldProps.js\";\nimport type { ITemplateIcon } from \"@webiny/app-admin/features/formModel/index.js\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils/generateId\";\n\nexport class DynamicZoneFieldMapper implements ICmsFieldTypeMapper {\n readonly type = \"dynamicZone\";\n\n map(\n field: CmsModelField,\n registry: IFieldBuilderRegistry,\n context: ICmsFieldMapperContext\n ): IFieldBuilder {\n const builder = registry.object() as IObjectFieldBuilder;\n\n const templates = field.settings?.templates as CmsDynamicZoneTemplate[] | undefined;\n if (templates) {\n for (const template of templates) {\n builder.template(template.id, t => {\n t.label(template.name);\n if (template.description) {\n t.description(template.description);\n }\n if (template.icon) {\n const icon = template.icon;\n if (typeof icon === \"object\" && \"name\" in icon) {\n t.icon(icon as ITemplateIcon);\n } else if (typeof icon === \"string\") {\n t.icon({ type: \"icon\", name: icon });\n }\n }\n t.fields(childRegistry => {\n const result: Record<string, IFieldBuilder> = {};\n result[\"_id\"] = childRegistry\n .text()\n .hidden()\n .defaultValue(() => generateAlphaNumericLowerCaseId(12))\n .cloneValue(() => generateAlphaNumericLowerCaseId(12));\n if (template.fields && template.fields.length > 0) {\n for (const child of template.fields) {\n result[child.fieldId] = context.mapField(child, childRegistry);\n }\n }\n return result;\n });\n });\n }\n }\n\n return applyFieldProps(builder, field, context.rendererMap);\n }\n}\n"],"names":["DynamicZoneFieldMapper","field","registry","context","builder","templates","template","t","icon","childRegistry","result","generateAlphaNumericLowerCaseId","child","applyFieldProps"],"mappings":";;AAWO,MAAMA;IAGT,IACIC,KAAoB,EACpBC,QAA+B,EAC/BC,OAA+B,EAClB;QACb,MAAMC,UAAUF,SAAS,MAAM;QAE/B,MAAMG,YAAYJ,MAAM,QAAQ,EAAE;QAClC,IAAII,WACA,KAAK,MAAMC,YAAYD,UACnBD,QAAQ,QAAQ,CAACE,SAAS,EAAE,EAAEC,CAAAA;YAC1BA,EAAE,KAAK,CAACD,SAAS,IAAI;YACrB,IAAIA,SAAS,WAAW,EACpBC,EAAE,WAAW,CAACD,SAAS,WAAW;YAEtC,IAAIA,SAAS,IAAI,EAAE;gBACf,MAAME,OAAOF,SAAS,IAAI;gBAC1B,IAAI,AAAgB,YAAhB,OAAOE,QAAqB,UAAUA,MACtCD,EAAE,IAAI,CAACC;qBACJ,IAAI,AAAgB,YAAhB,OAAOA,MACdD,EAAE,IAAI,CAAC;oBAAE,MAAM;oBAAQ,MAAMC;gBAAK;YAE1C;YACAD,EAAE,MAAM,CAACE,CAAAA;gBACL,MAAMC,SAAwC,CAAC;gBAC/CA,MAAM,CAAC,MAAM,GAAGD,cACX,IAAI,GACJ,MAAM,GACN,YAAY,CAAC,IAAME,gCAAgC,KACnD,UAAU,CAAC,IAAMA,gCAAgC;gBACtD,IAAIL,SAAS,MAAM,IAAIA,SAAS,MAAM,CAAC,MAAM,GAAG,GAC5C,KAAK,MAAMM,SAASN,SAAS,MAAM,CAC/BI,MAAM,CAACE,MAAM,OAAO,CAAC,GAAGT,QAAQ,QAAQ,CAACS,OAAOH;gBAGxD,OAAOC;YACX;QACJ;QAIR,OAAOG,gBAAgBT,SAASH,OAAOE,QAAQ,WAAW;IAC9D;;aA5CS,IAAI,GAAG;;AA6CpB"}
|
|
@@ -3,7 +3,7 @@ import { ExportModelsGateway as GatewayAbstraction } from "./abstractions.js";
|
|
|
3
3
|
declare class ExportModelsGatewayImpl implements GatewayAbstraction.Interface {
|
|
4
4
|
private client;
|
|
5
5
|
constructor(client: CmsGraphQLClient.Interface);
|
|
6
|
-
execute(models?: string[]): Promise<
|
|
6
|
+
execute(models?: string[]): Promise<string>;
|
|
7
7
|
}
|
|
8
8
|
export declare const ExportModelsGateway: typeof ExportModelsGatewayImpl & {
|
|
9
9
|
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IExportModelsGateway>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/model/exportModels/ExportModelsGateway.js","sources":["../../../../src/features/model/exportModels/ExportModelsGateway.ts"],"sourcesContent":["import { CmsGraphQLClient } from \"~/features/graphQLClient/abstractions.js\";\nimport type { CmsErrorResponse } from \"~/types.js\";\nimport { ExportModelsGateway as GatewayAbstraction } from \"./abstractions.js\";\n\ninterface ExportModelsResponse {\n exportStructure: {\n data:
|
|
1
|
+
{"version":3,"file":"features/model/exportModels/ExportModelsGateway.js","sources":["../../../../src/features/model/exportModels/ExportModelsGateway.ts"],"sourcesContent":["import { CmsGraphQLClient } from \"~/features/graphQLClient/abstractions.js\";\nimport type { CmsErrorResponse } from \"~/types.js\";\nimport { ExportModelsGateway as GatewayAbstraction } from \"./abstractions.js\";\n\ninterface ExportModelsResponse {\n exportStructure: {\n data: string;\n error: CmsErrorResponse | null;\n };\n}\n\ninterface ExportModelsVariables {\n models?: string[];\n}\n\nconst CMS_EXPORT_STRUCTURE_QUERY = /* GraphQL */ `\n query CmsExportStructure($models: [String!]) {\n exportStructure(models: $models) {\n data\n error {\n message\n code\n data\n }\n }\n }\n`;\n\nclass ExportModelsGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private client: CmsGraphQLClient.Interface) {}\n\n async execute(models?: string[]) {\n const response = await this.client.execute<ExportModelsResponse, ExportModelsVariables>({\n query: CMS_EXPORT_STRUCTURE_QUERY,\n variables: { models }\n });\n\n const { data, error } = response.exportStructure;\n\n if (error) {\n throw new Error(error.message);\n }\n\n return data;\n }\n}\n\nexport const ExportModelsGateway = GatewayAbstraction.createImplementation({\n implementation: ExportModelsGatewayImpl,\n dependencies: [CmsGraphQLClient]\n});\n"],"names":["CMS_EXPORT_STRUCTURE_QUERY","ExportModelsGatewayImpl","client","models","response","data","error","Error","ExportModelsGateway","GatewayAbstraction","CmsGraphQLClient"],"mappings":";;AAeA,MAAMA,6BAA2C,CAAC;;;;;;;;;;;AAWlD,CAAC;AAED,MAAMC;IACF,YAAoBC,MAAkC,CAAE;aAApCA,MAAM,GAANA;IAAqC;IAEzD,MAAM,QAAQC,MAAiB,EAAE;QAC7B,MAAMC,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA8C;YACpF,OAAOJ;YACP,WAAW;gBAAEG;YAAO;QACxB;QAEA,MAAM,EAAEE,IAAI,EAAEC,KAAK,EAAE,GAAGF,SAAS,eAAe;QAEhD,IAAIE,OACA,MAAM,IAAIC,MAAMD,MAAM,OAAO;QAGjC,OAAOD;IACX;AACJ;AAEO,MAAMG,0CAAsBC,oBAAAA,oBAAuC,CAAC;IACvE,gBAAgBR;IAChB,cAAc;QAACS;KAAiB;AACpC"}
|
|
@@ -4,7 +4,13 @@ class ExportModelsUseCaseImpl {
|
|
|
4
4
|
this.gateway = gateway;
|
|
5
5
|
}
|
|
6
6
|
async execute(models) {
|
|
7
|
-
|
|
7
|
+
const result = await this.gateway.execute(models);
|
|
8
|
+
try {
|
|
9
|
+
return JSON.parse(result);
|
|
10
|
+
} catch (ex) {
|
|
11
|
+
console.error(ex);
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
8
14
|
}
|
|
9
15
|
}
|
|
10
16
|
const ExportModelsUseCase_ExportModelsUseCase = ExportModelsUseCase.createImplementation({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/model/exportModels/ExportModelsUseCase.js","sources":["../../../../src/features/model/exportModels/ExportModelsUseCase.ts"],"sourcesContent":["import { ExportModelsUseCase as UseCaseAbstraction, ExportModelsGateway } from \"./abstractions.js\";\n\nclass ExportModelsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private gateway: ExportModelsGateway.Interface) {}\n\n async execute(models?: string[]) {\n
|
|
1
|
+
{"version":3,"file":"features/model/exportModels/ExportModelsUseCase.js","sources":["../../../../src/features/model/exportModels/ExportModelsUseCase.ts"],"sourcesContent":["import { ExportModelsUseCase as UseCaseAbstraction, ExportModelsGateway } from \"./abstractions.js\";\n\nclass ExportModelsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private gateway: ExportModelsGateway.Interface) {}\n\n async execute(models?: string[]) {\n const result = await this.gateway.execute(models);\n try {\n return JSON.parse(result);\n } catch (ex) {\n console.error(ex);\n return null;\n }\n }\n}\n\nexport const ExportModelsUseCase = UseCaseAbstraction.createImplementation({\n implementation: ExportModelsUseCaseImpl,\n dependencies: [ExportModelsGateway]\n});\n"],"names":["ExportModelsUseCaseImpl","gateway","models","result","JSON","ex","console","ExportModelsUseCase","UseCaseAbstraction","ExportModelsGateway"],"mappings":";AAEA,MAAMA;IACF,YAAoBC,OAAsC,CAAE;aAAxCA,OAAO,GAAPA;IAAyC;IAE7D,MAAM,QAAQC,MAAiB,EAAE;QAC7B,MAAMC,SAAS,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAACD;QAC1C,IAAI;YACA,OAAOE,KAAK,KAAK,CAACD;QACtB,EAAE,OAAOE,IAAI;YACTC,QAAQ,KAAK,CAACD;YACd,OAAO;QACX;IACJ;AACJ;AAEO,MAAME,0CAAsBC,oBAAAA,oBAAuC,CAAC;IACvE,gBAAgBR;IAChB,cAAc;QAACS;KAAoB;AACvC"}
|
|
@@ -1,14 +1,20 @@
|
|
|
1
|
+
import type { CmsModel, CmsGroup } from "../../../types.js";
|
|
1
2
|
export interface IExportModelsGateway {
|
|
2
|
-
execute(models?: string[]): Promise<
|
|
3
|
+
execute(models?: string[]): Promise<string>;
|
|
4
|
+
}
|
|
5
|
+
export interface IExportModelsUseCaseResponse {
|
|
6
|
+
models: CmsModel[];
|
|
7
|
+
groups: CmsGroup[];
|
|
3
8
|
}
|
|
4
9
|
export declare const ExportModelsGateway: import("@webiny/di").Abstraction<IExportModelsGateway>;
|
|
5
10
|
export declare namespace ExportModelsGateway {
|
|
6
11
|
type Interface = IExportModelsGateway;
|
|
7
12
|
}
|
|
8
13
|
export interface IExportModelsUseCase {
|
|
9
|
-
execute(models?: string[]): Promise<
|
|
14
|
+
execute(models?: string[]): Promise<IExportModelsUseCaseResponse | null>;
|
|
10
15
|
}
|
|
11
16
|
export declare const ExportModelsUseCase: import("@webiny/di").Abstraction<IExportModelsUseCase>;
|
|
12
17
|
export declare namespace ExportModelsUseCase {
|
|
13
18
|
type Interface = IExportModelsUseCase;
|
|
19
|
+
type Response = IExportModelsUseCaseResponse;
|
|
14
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/model/exportModels/abstractions.js","sources":["../../../../src/features/model/exportModels/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\n\nexport interface IExportModelsGateway {\n execute(models?: string[]): Promise<
|
|
1
|
+
{"version":3,"file":"features/model/exportModels/abstractions.js","sources":["../../../../src/features/model/exportModels/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { CmsModel, CmsGroup } from \"~/types.js\";\n\nexport interface IExportModelsGateway {\n execute(models?: string[]): Promise<string>;\n}\n\nexport interface IExportModelsUseCaseResponse {\n models: CmsModel[];\n groups: CmsGroup[];\n}\n\nexport const ExportModelsGateway = createAbstraction<IExportModelsGateway>(\"ExportModelsGateway\");\n\nexport namespace ExportModelsGateway {\n export type Interface = IExportModelsGateway;\n}\n\nexport interface IExportModelsUseCase {\n execute(models?: string[]): Promise<IExportModelsUseCaseResponse | null>;\n}\n\nexport const ExportModelsUseCase = createAbstraction<IExportModelsUseCase>(\"ExportModelsUseCase\");\n\nexport namespace ExportModelsUseCase {\n export type Interface = IExportModelsUseCase;\n export type Response = IExportModelsUseCaseResponse;\n}\n"],"names":["ExportModelsGateway","createAbstraction","ExportModelsUseCase"],"mappings":";AAYO,MAAMA,sBAAsBC,kBAAwC;AAUpE,MAAMC,sBAAsBD,kBAAwC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-headless-cms",
|
|
3
|
-
"version": "6.5.0-beta.
|
|
3
|
+
"version": "6.5.0-beta.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./index.js",
|
|
@@ -26,33 +26,33 @@
|
|
|
26
26
|
"@fortawesome/free-regular-svg-icons": "7.3.1",
|
|
27
27
|
"@fortawesome/free-solid-svg-icons": "7.3.1",
|
|
28
28
|
"@fortawesome/react-fontawesome": "3.5.0",
|
|
29
|
-
"@lexical/utils": "0.
|
|
29
|
+
"@lexical/utils": "0.51.0",
|
|
30
30
|
"@types/react": "18.3.31",
|
|
31
|
-
"@webiny/admin-ui": "6.5.0-beta.
|
|
32
|
-
"@webiny/app": "6.5.0-beta.
|
|
33
|
-
"@webiny/app-aco": "6.5.0-beta.
|
|
34
|
-
"@webiny/app-admin": "6.5.0-beta.
|
|
35
|
-
"@webiny/app-graphql-playground": "6.5.0-beta.
|
|
36
|
-
"@webiny/app-headless-cms-common": "6.5.0-beta.
|
|
37
|
-
"@webiny/cms-sdk": "6.5.0-beta.
|
|
38
|
-
"@webiny/di": "1.0
|
|
39
|
-
"@webiny/feature": "6.5.0-beta.
|
|
40
|
-
"@webiny/form": "6.5.0-beta.
|
|
41
|
-
"@webiny/frontend-settings": "6.5.0-beta.
|
|
42
|
-
"@webiny/icons": "6.5.0-beta.
|
|
43
|
-
"@webiny/lexical-editor": "6.5.0-beta.
|
|
44
|
-
"@webiny/lexical-nodes": "6.5.0-beta.
|
|
45
|
-
"@webiny/plugins": "6.5.0-beta.
|
|
46
|
-
"@webiny/react-composition": "6.5.0-beta.
|
|
47
|
-
"@webiny/react-properties": "6.5.0-beta.
|
|
48
|
-
"@webiny/utils": "6.5.0-beta.
|
|
49
|
-
"@webiny/validation": "6.5.0-beta.
|
|
31
|
+
"@webiny/admin-ui": "6.5.0-beta.5",
|
|
32
|
+
"@webiny/app": "6.5.0-beta.5",
|
|
33
|
+
"@webiny/app-aco": "6.5.0-beta.5",
|
|
34
|
+
"@webiny/app-admin": "6.5.0-beta.5",
|
|
35
|
+
"@webiny/app-graphql-playground": "6.5.0-beta.5",
|
|
36
|
+
"@webiny/app-headless-cms-common": "6.5.0-beta.5",
|
|
37
|
+
"@webiny/cms-sdk": "6.5.0-beta.5",
|
|
38
|
+
"@webiny/di": "1.1.0",
|
|
39
|
+
"@webiny/feature": "6.5.0-beta.5",
|
|
40
|
+
"@webiny/form": "6.5.0-beta.5",
|
|
41
|
+
"@webiny/frontend-settings": "6.5.0-beta.5",
|
|
42
|
+
"@webiny/icons": "6.5.0-beta.5",
|
|
43
|
+
"@webiny/lexical-editor": "6.5.0-beta.5",
|
|
44
|
+
"@webiny/lexical-nodes": "6.5.0-beta.5",
|
|
45
|
+
"@webiny/plugins": "6.5.0-beta.5",
|
|
46
|
+
"@webiny/react-composition": "6.5.0-beta.5",
|
|
47
|
+
"@webiny/react-properties": "6.5.0-beta.5",
|
|
48
|
+
"@webiny/utils": "6.5.0-beta.5",
|
|
49
|
+
"@webiny/validation": "6.5.0-beta.5",
|
|
50
50
|
"dot-prop-immutable": "2.1.1",
|
|
51
51
|
"graphql": "16.14.2",
|
|
52
52
|
"graphql-tag": "2.12.7",
|
|
53
53
|
"lodash": "4.18.1",
|
|
54
|
-
"mobx": "
|
|
55
|
-
"mobx-react-lite": "
|
|
54
|
+
"mobx": "7.0.5",
|
|
55
|
+
"mobx-react-lite": "5.1.0",
|
|
56
56
|
"react": "18.3.1",
|
|
57
57
|
"react-dnd": "16.0.1",
|
|
58
58
|
"react-dnd-html5-backend": "16.0.1",
|
|
@@ -60,13 +60,13 @@
|
|
|
60
60
|
"react-helmet": "6.1.0",
|
|
61
61
|
"slugify": "1.6.9",
|
|
62
62
|
"use-deep-compare-effect": "1.8.1",
|
|
63
|
-
"zod": "4.
|
|
63
|
+
"zod": "4.6.5"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@webiny/build-tools": "6.5.0-beta.
|
|
66
|
+
"@webiny/build-tools": "6.5.0-beta.5",
|
|
67
67
|
"rimraf": "6.1.3",
|
|
68
68
|
"typescript": "7.0.2",
|
|
69
|
-
"vitest": "
|
|
69
|
+
"vitest": "5.0.2"
|
|
70
70
|
},
|
|
71
71
|
"publishConfig": {
|
|
72
72
|
"access": "public"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const CmsAdvancedSearch: (() => React.JSX.Element) & {
|
|
3
|
-
|
|
2
|
+
export declare const CmsAdvancedSearch: (() => React.JSX.Element) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element;
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const ContentEntriesListLayout: (() => React.JSX.Element) & {
|
|
3
|
-
|
|
2
|
+
export declare const ContentEntriesListLayout: (() => React.JSX.Element) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element;
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const ContentEntryFormView: (() => React.JSX.Element) & {
|
|
3
|
-
|
|
2
|
+
export declare const ContentEntryFormView: (() => React.JSX.Element) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element;
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const OlderRevisionAlert: (() => React.JSX.Element | null) & {
|
|
3
|
-
|
|
2
|
+
export declare const OlderRevisionAlert: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element | null;
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const RevisionDrawer: (() => React.JSX.Element) & {
|
|
3
|
-
|
|
2
|
+
export declare const RevisionDrawer: (() => React.JSX.Element) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element;
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const RevisionsList: (() => React.JSX.Element) & {
|
|
3
|
-
|
|
2
|
+
export declare const RevisionsList: (() => React.JSX.Element) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element;
|
|
4
4
|
};
|
|
@@ -4,7 +4,7 @@ interface SingleEntryLayoutProps {
|
|
|
4
4
|
presenter: ISingleEntryPresenter;
|
|
5
5
|
modelName: string;
|
|
6
6
|
}
|
|
7
|
-
export declare const SingleEntryLayout: (({ presenter, modelName }: SingleEntryLayoutProps) => React.JSX.Element | null) & {
|
|
8
|
-
|
|
7
|
+
export declare const SingleEntryLayout: (({ presenter, modelName }: SingleEntryLayoutProps) => React.JSX.Element | null) & React.NamedExoticComponent<SingleEntryLayoutProps> & {
|
|
8
|
+
readonly type: ({ presenter, modelName }: SingleEntryLayoutProps) => React.JSX.Element | null;
|
|
9
9
|
};
|
|
10
10
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const CreateNewRevisionButton: (() => React.JSX.Element | null) & {
|
|
3
|
-
|
|
2
|
+
export declare const CreateNewRevisionButton: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element | null;
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const DeleteEntryMenuItem: (() => React.JSX.Element | null) & {
|
|
3
|
-
|
|
2
|
+
export declare const DeleteEntryMenuItem: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element | null;
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const PublishOnlyButton: (() => React.JSX.Element | null) & {
|
|
3
|
-
|
|
2
|
+
export declare const PublishOnlyButton: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element | null;
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const RevisionSelector: (() => React.JSX.Element | null) & {
|
|
3
|
-
|
|
2
|
+
export declare const RevisionSelector: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element | null;
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const SaveAndPublishButton: (() => React.JSX.Element | null) & {
|
|
3
|
-
|
|
2
|
+
export declare const SaveAndPublishButton: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element | null;
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const SaveContentButton: (() => React.JSX.Element | null) & {
|
|
3
|
-
|
|
2
|
+
export declare const SaveContentButton: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element | null;
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const ShowRevisionListMenuItem: (() => React.JSX.Element) & {
|
|
3
|
-
|
|
2
|
+
export declare const ShowRevisionListMenuItem: (() => React.JSX.Element) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element;
|
|
4
4
|
};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const ContentEntryForm: (() => React.JSX.Element | null) & {
|
|
3
|
-
|
|
2
|
+
export declare const ContentEntryForm: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element | null;
|
|
4
4
|
} & {
|
|
5
|
-
original: (() => React.JSX.Element | null) & {
|
|
6
|
-
|
|
5
|
+
original: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
|
|
6
|
+
readonly type: () => React.JSX.Element | null;
|
|
7
7
|
};
|
|
8
8
|
originalName: string;
|
|
9
9
|
displayName: string;
|
|
10
10
|
} & {
|
|
11
|
-
original: (() => React.JSX.Element | null) & {
|
|
12
|
-
|
|
11
|
+
original: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
|
|
12
|
+
readonly type: () => React.JSX.Element | null;
|
|
13
13
|
} & {
|
|
14
|
-
original: (() => React.JSX.Element | null) & {
|
|
15
|
-
|
|
14
|
+
original: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
|
|
15
|
+
readonly type: () => React.JSX.Element | null;
|
|
16
16
|
};
|
|
17
17
|
originalName: string;
|
|
18
18
|
displayName: string;
|
|
@@ -20,11 +20,11 @@ export declare const ContentEntryForm: (() => React.JSX.Element | null) & {
|
|
|
20
20
|
originalName: string;
|
|
21
21
|
displayName: string;
|
|
22
22
|
} & {
|
|
23
|
-
createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(() => React.JSX.Element | null) & {
|
|
24
|
-
|
|
23
|
+
createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
|
|
24
|
+
readonly type: () => React.JSX.Element | null;
|
|
25
25
|
} & {
|
|
26
|
-
original: (() => React.JSX.Element | null) & {
|
|
27
|
-
|
|
26
|
+
original: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
|
|
27
|
+
readonly type: () => React.JSX.Element | null;
|
|
28
28
|
};
|
|
29
29
|
originalName: string;
|
|
30
30
|
displayName: string;
|
|
@@ -5,8 +5,8 @@ import { DeleteModelUseCase } from "../../features/model/deleteModel/abstraction
|
|
|
5
5
|
import { CancelDeleteModelUseCase } from "../../features/model/cancelDeleteModel/abstractions.js";
|
|
6
6
|
import { ExportModelsUseCase } from "../../features/model/exportModels/abstractions.js";
|
|
7
7
|
import { ModelsCache } from "../../features/model/abstractions.js";
|
|
8
|
-
import {
|
|
9
|
-
declare class ContentModelsPresenterImpl implements
|
|
8
|
+
import { ContentModelsPresenter as Abstraction } from "./abstractions.js";
|
|
9
|
+
declare class ContentModelsPresenterImpl implements Abstraction.Interface {
|
|
10
10
|
private listPresenter;
|
|
11
11
|
private listModelsUseCase;
|
|
12
12
|
private deleteModelUseCase;
|
|
@@ -15,14 +15,14 @@ declare class ContentModelsPresenterImpl implements IContentModelsPresenter {
|
|
|
15
15
|
private cache;
|
|
16
16
|
private loading;
|
|
17
17
|
constructor(listPresenter: ListPresenter.Interface<CmsModel>, listModelsUseCase: ListModelsUseCase.Interface, deleteModelUseCase: DeleteModelUseCase.Interface, cancelDeleteModelUseCase: CancelDeleteModelUseCase.Interface, exportModelsUseCase: ExportModelsUseCase.Interface, cache: ModelsCache.Interface);
|
|
18
|
-
get vm():
|
|
18
|
+
get vm(): Abstraction.ViewModel;
|
|
19
19
|
get list(): ListPresenter.Interface<CmsModel>;
|
|
20
20
|
init(): void;
|
|
21
21
|
deleteModel(modelId: string, confirmation: string): Promise<import("~/features/model/deleteModel/abstractions.js").DeleteModelResult>;
|
|
22
22
|
cancelDelete(modelId: string): Promise<void>;
|
|
23
|
-
exportModels(modelIds?: string[]): Promise<
|
|
23
|
+
exportModels(modelIds?: string[]): Promise<Abstraction.ExportModelResponse | null>;
|
|
24
24
|
}
|
|
25
25
|
export declare const ContentModelsPresenter: typeof ContentModelsPresenterImpl & {
|
|
26
|
-
__abstraction: import("@webiny/di").Abstraction<IContentModelsPresenter>;
|
|
26
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IContentModelsPresenter>;
|
|
27
27
|
};
|
|
28
28
|
export {};
|
|
@@ -59,7 +59,7 @@ class ContentModelsPresenterImpl {
|
|
|
59
59
|
return this.cancelDeleteModelUseCase.execute(modelId);
|
|
60
60
|
}
|
|
61
61
|
async exportModels(modelIds) {
|
|
62
|
-
return this.exportModelsUseCase.execute(modelIds);
|
|
62
|
+
return await this.exportModelsUseCase.execute(modelIds);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
const ContentModelsPresenter_ContentModelsPresenter = ContentModelsPresenter.createImplementation({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation/contentModels/ContentModelsPresenter.js","sources":["../../../src/presentation/contentModels/ContentModelsPresenter.ts"],"sourcesContent":["import { makeAutoObservable, runInAction, computed } from \"mobx\";\nimport { ListPresenter } from \"@webiny/app-admin/presentation/listPresenter/abstractions.js\";\nimport type { CmsModel } from \"~/types.js\";\nimport { ListModelsUseCase } from \"~/features/model/listModels/abstractions.js\";\nimport { DeleteModelUseCase } from \"~/features/model/deleteModel/abstractions.js\";\nimport { CancelDeleteModelUseCase } from \"~/features/model/cancelDeleteModel/abstractions.js\";\nimport { ExportModelsUseCase } from \"~/features/model/exportModels/abstractions.js\";\nimport { ModelsCache } from \"~/features/model/abstractions.js\";\nimport {
|
|
1
|
+
{"version":3,"file":"presentation/contentModels/ContentModelsPresenter.js","sources":["../../../src/presentation/contentModels/ContentModelsPresenter.ts"],"sourcesContent":["import { makeAutoObservable, runInAction, computed } from \"mobx\";\nimport { ListPresenter } from \"@webiny/app-admin/presentation/listPresenter/abstractions.js\";\nimport type { CmsModel } from \"~/types.js\";\nimport { ListModelsUseCase } from \"~/features/model/listModels/abstractions.js\";\nimport { DeleteModelUseCase } from \"~/features/model/deleteModel/abstractions.js\";\nimport { CancelDeleteModelUseCase } from \"~/features/model/cancelDeleteModel/abstractions.js\";\nimport { ExportModelsUseCase } from \"~/features/model/exportModels/abstractions.js\";\nimport { ModelsCache } from \"~/features/model/abstractions.js\";\nimport { ContentModelsPresenter as Abstraction } from \"./abstractions.js\";\nimport { ContentModelsDataSource } from \"./ContentModelsDataSource.js\";\n\nclass ContentModelsPresenterImpl implements Abstraction.Interface {\n private loading = true;\n\n constructor(\n private listPresenter: ListPresenter.Interface<CmsModel>,\n private listModelsUseCase: ListModelsUseCase.Interface,\n private deleteModelUseCase: DeleteModelUseCase.Interface,\n private cancelDeleteModelUseCase: CancelDeleteModelUseCase.Interface,\n private exportModelsUseCase: ExportModelsUseCase.Interface,\n private cache: ModelsCache.Interface\n ) {\n makeAutoObservable<\n ContentModelsPresenterImpl,\n | \"listModelsUseCase\"\n | \"deleteModelUseCase\"\n | \"cancelDeleteModelUseCase\"\n | \"exportModelsUseCase\"\n | \"cache\"\n >(this, {\n listModelsUseCase: false,\n deleteModelUseCase: false,\n cancelDeleteModelUseCase: false,\n exportModelsUseCase: false,\n cache: false,\n vm: computed\n });\n }\n\n get vm(): Abstraction.ViewModel {\n const models = this.cache.getItems().filter(model => {\n if (!model.tags || model.tags.length === 0) {\n return true;\n }\n return !model.tags.includes(\"$hidden:true\");\n });\n\n return {\n loading: this.loading,\n models\n };\n }\n\n get list(): ListPresenter.Interface<CmsModel> {\n return this.listPresenter;\n }\n\n init(): void {\n const dataSource = new ContentModelsDataSource(this.listModelsUseCase, this.cache);\n\n this.listPresenter.init({\n dataSource,\n initialSort: { field: \"savedOn\", direction: \"DESC\" },\n limit: 1000\n });\n\n runInAction(() => {\n this.loading = false;\n });\n }\n\n async deleteModel(modelId: string, confirmation: string) {\n return this.deleteModelUseCase.execute(modelId, confirmation);\n }\n\n async cancelDelete(modelId: string) {\n return this.cancelDeleteModelUseCase.execute(modelId);\n }\n\n async exportModels(modelIds?: string[]): Promise<Abstraction.ExportModelResponse | null> {\n return await this.exportModelsUseCase.execute(modelIds);\n }\n}\n\nexport const ContentModelsPresenter = Abstraction.createImplementation({\n implementation: ContentModelsPresenterImpl,\n dependencies: [\n ListPresenter,\n ListModelsUseCase,\n DeleteModelUseCase,\n CancelDeleteModelUseCase,\n ExportModelsUseCase,\n ModelsCache\n ]\n});\n"],"names":["ContentModelsPresenterImpl","listPresenter","listModelsUseCase","deleteModelUseCase","cancelDeleteModelUseCase","exportModelsUseCase","cache","makeAutoObservable","computed","models","model","dataSource","ContentModelsDataSource","runInAction","modelId","confirmation","modelIds","ContentModelsPresenter","Abstraction","ListPresenter","ListModelsUseCase","DeleteModelUseCase","CancelDeleteModelUseCase","ExportModelsUseCase","ModelsCache"],"mappings":";;;;;;;;;AAWA,MAAMA;IAGF,YACYC,aAAgD,EAChDC,iBAA8C,EAC9CC,kBAAgD,EAChDC,wBAA4D,EAC5DC,mBAAkD,EAClDC,KAA4B,CACtC;aANUL,aAAa,GAAbA;aACAC,iBAAiB,GAAjBA;aACAC,kBAAkB,GAAlBA;aACAC,wBAAwB,GAAxBA;aACAC,mBAAmB,GAAnBA;aACAC,KAAK,GAALA;aARJ,OAAO,GAAG;QAUdC,mBAOE,IAAI,EAAE;YACJ,mBAAmB;YACnB,oBAAoB;YACpB,0BAA0B;YAC1B,qBAAqB;YACrB,OAAO;YACP,IAAIC;QACR;IACJ;IAEA,IAAI,KAA4B;QAC5B,MAAMC,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAACC,CAAAA;YACxC,IAAI,CAACA,MAAM,IAAI,IAAIA,AAAsB,MAAtBA,MAAM,IAAI,CAAC,MAAM,EAChC,OAAO;YAEX,OAAO,CAACA,MAAM,IAAI,CAAC,QAAQ,CAAC;QAChC;QAEA,OAAO;YACH,SAAS,IAAI,CAAC,OAAO;YACrBD;QACJ;IACJ;IAEA,IAAI,OAA0C;QAC1C,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,OAAa;QACT,MAAME,aAAa,IAAIC,wBAAwB,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK;QAEjF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACpBD;YACA,aAAa;gBAAE,OAAO;gBAAW,WAAW;YAAO;YACnD,OAAO;QACX;QAEAE,YAAY;YACR,IAAI,CAAC,OAAO,GAAG;QACnB;IACJ;IAEA,MAAM,YAAYC,OAAe,EAAEC,YAAoB,EAAE;QACrD,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAACD,SAASC;IACpD;IAEA,MAAM,aAAaD,OAAe,EAAE;QAChC,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAACA;IACjD;IAEA,MAAM,aAAaE,QAAmB,EAAmD;QACrF,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA;IAClD;AACJ;AAEO,MAAMC,gDAAyBC,uBAAAA,oBAAgC,CAAC;IACnE,gBAAgBlB;IAChB,cAAc;QACVmB;QACAC;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
import type { IListPresenter } from "@webiny/app-admin/presentation/listPresenter/abstractions.js";
|
|
2
|
-
import type { CmsModel } from "../../types.js";
|
|
2
|
+
import type { CmsGroup, CmsModel } from "../../types.js";
|
|
3
3
|
import type { DeleteModelResult } from "../../features/model/deleteModel/abstractions.js";
|
|
4
4
|
export interface IContentModelsPresenterViewModel {
|
|
5
5
|
loading: boolean;
|
|
6
6
|
models: CmsModel[];
|
|
7
7
|
}
|
|
8
|
+
export interface IContentModelsPresenterExportModelsResponse {
|
|
9
|
+
groups: CmsGroup[];
|
|
10
|
+
models: CmsModel[];
|
|
11
|
+
}
|
|
8
12
|
export interface IContentModelsPresenter {
|
|
9
13
|
readonly vm: IContentModelsPresenterViewModel;
|
|
10
14
|
readonly list: IListPresenter<CmsModel>;
|
|
11
15
|
init(): void;
|
|
12
16
|
deleteModel(modelId: string, confirmation: string): Promise<DeleteModelResult>;
|
|
13
17
|
cancelDelete(modelId: string): Promise<void>;
|
|
14
|
-
exportModels(modelIds?: string[]): Promise<
|
|
18
|
+
exportModels(modelIds?: string[]): Promise<IContentModelsPresenterExportModelsResponse | null>;
|
|
15
19
|
}
|
|
16
20
|
export declare const ContentModelsPresenter: import("@webiny/di").Abstraction<IContentModelsPresenter>;
|
|
17
21
|
export declare namespace ContentModelsPresenter {
|
|
18
22
|
type Interface = IContentModelsPresenter;
|
|
19
23
|
type ViewModel = IContentModelsPresenterViewModel;
|
|
24
|
+
type ExportModelResponse = IContentModelsPresenterExportModelsResponse;
|
|
20
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation/contentModels/abstractions.js","sources":["../../../src/presentation/contentModels/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IListPresenter } from \"@webiny/app-admin/presentation/listPresenter/abstractions.js\";\nimport type { CmsModel } from \"~/types.js\";\nimport type { DeleteModelResult } from \"~/features/model/deleteModel/abstractions.js\";\n\nexport interface IContentModelsPresenterViewModel {\n loading: boolean;\n models: CmsModel[];\n}\n\nexport interface IContentModelsPresenter {\n readonly vm: IContentModelsPresenterViewModel;\n readonly list: IListPresenter<CmsModel>;\n init(): void;\n deleteModel(modelId: string, confirmation: string): Promise<DeleteModelResult>;\n cancelDelete(modelId: string): Promise<void>;\n exportModels(modelIds?: string[]): Promise<
|
|
1
|
+
{"version":3,"file":"presentation/contentModels/abstractions.js","sources":["../../../src/presentation/contentModels/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IListPresenter } from \"@webiny/app-admin/presentation/listPresenter/abstractions.js\";\nimport type { CmsGroup, CmsModel } from \"~/types.js\";\nimport type { DeleteModelResult } from \"~/features/model/deleteModel/abstractions.js\";\n\nexport interface IContentModelsPresenterViewModel {\n loading: boolean;\n models: CmsModel[];\n}\n\nexport interface IContentModelsPresenterExportModelsResponse {\n groups: CmsGroup[];\n models: CmsModel[];\n}\n\nexport interface IContentModelsPresenter {\n readonly vm: IContentModelsPresenterViewModel;\n readonly list: IListPresenter<CmsModel>;\n init(): void;\n deleteModel(modelId: string, confirmation: string): Promise<DeleteModelResult>;\n cancelDelete(modelId: string): Promise<void>;\n exportModels(modelIds?: string[]): Promise<IContentModelsPresenterExportModelsResponse | null>;\n}\n\nexport const ContentModelsPresenter = createAbstraction<IContentModelsPresenter>(\n \"CmsContentModels/Presenter\"\n);\n\nexport namespace ContentModelsPresenter {\n export type Interface = IContentModelsPresenter;\n export type ViewModel = IContentModelsPresenterViewModel;\n export type ExportModelResponse = IContentModelsPresenterExportModelsResponse;\n}\n"],"names":["ContentModelsPresenter","createAbstraction"],"mappings":";AAwBO,MAAMA,yBAAyBC,kBAClC"}
|
|
@@ -5,7 +5,7 @@ interface CloneContentModelDialogProps {
|
|
|
5
5
|
contentModel: CmsModel;
|
|
6
6
|
closeModal: () => void;
|
|
7
7
|
}
|
|
8
|
-
export declare const CloneContentModelDialog: (({ onClose, contentModel, closeModal }: CloneContentModelDialogProps) => React.JSX.Element) & {
|
|
9
|
-
|
|
8
|
+
export declare const CloneContentModelDialog: (({ onClose, contentModel, closeModal }: CloneContentModelDialogProps) => React.JSX.Element) & React.NamedExoticComponent<CloneContentModelDialogProps> & {
|
|
9
|
+
readonly type: ({ onClose, contentModel, closeModal }: CloneContentModelDialogProps) => React.JSX.Element;
|
|
10
10
|
};
|
|
11
11
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
declare const ContentModels: (() => React.JSX.Element) & {
|
|
3
|
-
|
|
2
|
+
declare const ContentModels: (() => React.JSX.Element) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element;
|
|
4
4
|
};
|
|
5
5
|
export default ContentModels;
|
|
@@ -6,7 +6,7 @@ interface ContentModelsDataListProps {
|
|
|
6
6
|
onClone: (contentModel: CmsModel) => void;
|
|
7
7
|
showImportModelModal: () => void;
|
|
8
8
|
}
|
|
9
|
-
declare const ContentModelsDataList: (({ canCreate, onCreate, onClone, showImportModelModal }: ContentModelsDataListProps) => React.JSX.Element) & {
|
|
10
|
-
|
|
9
|
+
declare const ContentModelsDataList: (({ canCreate, onCreate, onClone, showImportModelModal }: ContentModelsDataListProps) => React.JSX.Element) & React.NamedExoticComponent<ContentModelsDataListProps> & {
|
|
10
|
+
readonly type: ({ canCreate, onCreate, onClone, showImportModelModal }: ContentModelsDataListProps) => React.JSX.Element;
|
|
11
11
|
};
|
|
12
12
|
export default ContentModelsDataList;
|
|
@@ -48,7 +48,8 @@ const deserializeSorters = (data)=>{
|
|
|
48
48
|
];
|
|
49
49
|
};
|
|
50
50
|
const DisplayIcon = ({ model })=>{
|
|
51
|
-
|
|
51
|
+
const icon = normalizeIcon(model.icon);
|
|
52
|
+
if (!icon) return null;
|
|
52
53
|
return /*#__PURE__*/ react.createElement("div", {
|
|
53
54
|
className: "text-neutral-muted"
|
|
54
55
|
}, /*#__PURE__*/ react.createElement(Icon, {
|
|
@@ -56,7 +57,7 @@ const DisplayIcon = ({ model })=>{
|
|
|
56
57
|
color: "inherit",
|
|
57
58
|
label: "Content model icon",
|
|
58
59
|
icon: /*#__PURE__*/ react.createElement(FontAwesomeIcon, {
|
|
59
|
-
icon:
|
|
60
|
+
icon: icon
|
|
60
61
|
})
|
|
61
62
|
}));
|
|
62
63
|
};
|
|
@@ -104,10 +105,10 @@ const ContentModelsDataList = observer(({ canCreate, onCreate, onClone, showImpo
|
|
|
104
105
|
(async ()=>{
|
|
105
106
|
try {
|
|
106
107
|
const data = await presenter.exportModels(modelIds);
|
|
107
|
-
if (!data
|
|
108
|
+
if (!data?.models?.length) return void showSnackbar("No data returned from the export query.");
|
|
108
109
|
download(data);
|
|
109
|
-
} catch (
|
|
110
|
-
showSnackbar(
|
|
110
|
+
} catch (ex) {
|
|
111
|
+
showSnackbar(ex.message);
|
|
111
112
|
}
|
|
112
113
|
})();
|
|
113
114
|
}, [
|