@acorex/modules 19.4.12 → 19.4.14
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/content-management/index.d.ts +2 -0
- package/content-management/lib/entities/index.d.ts +1 -0
- package/content-management/lib/entities/promotion/index.d.ts +5 -0
- package/content-management/lib/features/index.d.ts +1 -0
- package/content-management/lib/features/promotion/components/index.d.ts +1 -0
- package/content-management/lib/features/promotion/index.d.ts +1 -0
- package/fesm2022/acorex-modules-content-management.mjs +1288 -1
- package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-B8aACrqL.mjs → acorex-modules-platform-management-acorex-modules-platform-management-CzMi7CBH.mjs} +17 -31
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-CzMi7CBH.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DhSicYd3.mjs → acorex-modules-platform-management-list-version.component-DfbMc2hn.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DhSicYd3.mjs.map → acorex-modules-platform-management-list-version.component-DfbMc2hn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-settings.provider-CnGAUpof.mjs → acorex-modules-platform-management-settings.provider-B-19OJn0.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-settings.provider-CnGAUpof.mjs.map → acorex-modules-platform-management-settings.provider-B-19OJn0.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/package.json +1 -1
- package/platform-management/lib/entities/data-source/datasource-provider.dynamic.d.ts +2 -0
- package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-C23PlUCn.mjs +0 -392
- package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-C23PlUCn.mjs.map +0 -1
- package/fesm2022/acorex-modules-content-management-promotion.entity-D3qRwZhQ.mjs +0 -892
- package/fesm2022/acorex-modules-content-management-promotion.entity-D3qRwZhQ.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-B8aACrqL.mjs.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-modules-content-management.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
1
|
+
{"version":3,"file":"acorex-modules-content-management.mjs","sources":["../../../../libs/modules/content-management/src/lib/const.ts","../../../../libs/modules/content-management/src/lib/menu.provider.ts","../../../../libs/modules/content-management/src/lib/entity.provider.ts","../../../../libs/modules/content-management/src/lib/permission-definition.provider.ts","../../../../libs/modules/content-management/src/lib/setting.provider.ts","../../../../libs/modules/content-management/src/lib/search-command.provider.ts","../../../../libs/modules/content-management/src/lib/entities/promotion/promotion.service.ts","../../../../libs/modules/content-management/src/lib/entities/promotion/promotion.datasource.ts","../../../../libs/modules/content-management/src/lib/features/promotion/components/promotion-slot/promotion-slot.component.ts","../../../../libs/modules/content-management/src/lib/features/promotion/components/promotion-slot/promotion-slot.component.html","../../../../libs/modules/content-management/src/lib/content-management.module.ts","../../../../libs/modules/content-management/src/lib/entities/promotion/promotion.entity.ts","../../../../libs/modules/content-management/src/acorex-modules-content-management.ts"],"sourcesContent":["const config = {\n i18n: 'content-management',\n};\nexport const RootConfig = {\n config,\n module: {\n module: 'ContentManagement',\n name: 'ContentManagement',\n title: `t('module-name', {scope:\"${config.i18n}\"})`,\n icon: 'fa-light fa-file-invoice',\n },\n entities: {\n promotion: {\n name: 'Promotion',\n title: `t(\"promotion\", { scope: \"${config.i18n}\" })`,\n titlePlural: `t(\"promotions\", { scope: \"${config.i18n}\" })`,\n icon: 'fa-light fa-megaphone',\n },\n },\n};\n","import { AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\nimport { RootConfig } from './const';\n\nexport class AXMMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const scope = RootConfig.config.i18n;\n const module = RootConfig.module;\n\n context.addItems([\n {\n priority: 100,\n text: `t('module-name', {scope:\"${scope}\"})`,\n icon: module.icon,\n name: 'content-management-menu',\n children: [\n {\n text: RootConfig.entities.promotion.title,\n path: this.entityService.createPath(module.name, RootConfig.entities.promotion.name),\n icon: RootConfig.entities.promotion.icon,\n priority: 1,\n name: 'content-management-promotion-menu-item'\n }\n ],\n },\n ]);\n }\n}\n","import { AXPEntity } from '@acorex/platform/common';\nimport {\n AXPEntityDefinitionLoader,\n AXPEntityDefinitionPreloader,\n AXPEntityPreloadEntity,\n} from '@acorex/platform/layout/entity';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { RootConfig } from './const';\n\n@Injectable()\nexport class AXMEntityProvider implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {\n private injector = inject(Injector);\n\n public preload(): AXPEntityPreloadEntity[] {\n const module = RootConfig.module.name;\n return Array.from(Object.values(RootConfig.entities)).map((entity: any) => ({\n module: module,\n entity: entity.name,\n }));\n }\n\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n if (moduleName == RootConfig.module.name) {\n switch (entityName) {\n // case RootConfig.entities.sample.name:\n // return (await import('./entities/sample/sample.entity')).factory(this.injector);\n case RootConfig.entities.promotion.name: {\n const entity = (await import('./entities/promotion/promotion.entity')).promotionEntityFactory;\n return entity(this.injector);\n }\n }\n }\n return null;\n }\n}\n","import { AXPPermissionDefinitionProvider, AXPPermissionDefinitionProviderContext } from '@acorex/platform/auth';\n\nexport class AXMPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n // context.addPermissions([\n // {\n // name: 'view_templates',\n // title: 'Permission to view templates',\n // isArchived: false,\n // },\n // ]);\n }\n}\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex/platform/common';\n\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n // context\n // // Add Form Template Group\n // .addGroup('form-template', 'Form Template', 'Settings related to form templates.', RootConfig.module.icon)\n // // Start Interface Section\n // .addSection('interface', 'UI Interface', 'Customize the user interface for forms.')\n // .addSetting({\n // key: 'history-panel',\n // title: 'Show History Panel',\n // scope: 'U',\n // isInherited: true,\n // defaultValue: false,\n // widget: {\n // type: AXPWidgetsCatalog.toggle,\n // },\n // description: 'Enable or disable the history panel for forms.',\n // validationRules: [\n // {\n // rule: 'required',\n // },\n // ],\n // })\n // .endSection()\n // .endGroup();\n }\n}\n","import { AXPSearchCommandProvider, AXPSearchResult } from '@acorex/platform/common';\n\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n // {\n // group: 'command',\n // title: 'New Form Template',\n // icon: RootConfig.entities.template.icon,\n // description: 'Create a new form template for designing reusable forms.', // Added description\n // commands: {\n // 'create-entity': {\n // entity: `${RootConfig.module.name}.${RootConfig.entities.template.name}`,\n // },\n // },\n // }\n ];\n}\n","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMPromotionEntityModel } from './promotion.types';\n\nexport abstract class AXMAppPromotionService extends AXMEntityCrudServiceImpl<string, AXMPromotionEntityModel> {}\n\n@Injectable()\nexport class AXMPromotionServiceImpl extends AXMEntityCrudServiceImpl<string, AXMPromotionEntityModel> {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.promotion.name}`);\n }\n}\n","import { AXDataSource } from '@acorex/cdk/common';\nimport { AXPDataSourceDefinition, AXPDataSourceDefinitionProvider } from '@acorex/platform/core';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { inject } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMAppPromotionService } from './promotion.service';\n\nexport class AXMPromotionDataSourceDefinition implements AXPDataSourceDefinitionProvider {\n protected promotionService = inject(AXMAppPromotionService);\n protected i18n = RootConfig.config.i18n;\n\n items(): Promise<AXPDataSourceDefinition[]> {\n return Promise.resolve([\n {\n name: 'promotion',\n title: 'Promotion',\n source: () => {\n return new AXDataSource({ \n load: async (_) => {\n try {\n const res = await this.promotionService.query();\n return {\n items: res.items,\n total: res.total,\n };\n } catch (e) {\n console.log(e);\n throw e;\n }\n },\n pageSize: 100,\n });\n },\n columns: [\n {\n name: 'id',\n title: 'ID',\n datatype: 'uuid',\n type: AXPWidgetsCatalog.text,\n },\n {\n name: 'title',\n //TODO translate\n title: `Title`,\n datatype: 'string',\n type: AXPWidgetsCatalog.text,\n },\n {\n name: 'body',\n title: `Body`,\n datatype: 'string',\n type: AXPWidgetsCatalog.richText,\n },\n ],\n textField: {\n name: 'title',\n title: 'Title',\n },\n valueField: {\n name: 'id',\n title: 'ID',\n },\n },\n ]);\n }\n} ","import { AXSafePipe } from '@acorex/core/pipes';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, OnInit, signal, WritableSignal } from '@angular/core';\nimport { AXMAppPromotionService } from '../../../../entities/promotion/promotion.service';\nimport { AXMPromotionEntityModel } from '../../../../entities/promotion/promotion.types';\n\n@Component({\n selector: 'acorex-platform-promotion-slot',\n imports: [CommonModule, AXSafePipe],\n templateUrl: './promotion-slot.component.html',\n})\nexport class AXMPromotionSlotComponent implements OnInit {\n location: string;\n\n notificationChannelService = inject(AXMAppPromotionService);\n\n listData: WritableSignal<AXMPromotionEntityModel[]> = signal([]);\n\n private fileStorage = inject(AXPFileStorageService);\n\n async ngOnInit(): Promise<void> {\n const channels = await this.notificationChannelService.query({\n skip: 0,\n take: 10000,\n // filter: {\n // field: 'type',\n // operator: { type: 'equal' },\n // value: 'promotion',\n // },\n });\n\n const filteredItems = channels.items.filter((x) => x.placement?.name == this.location);\n\n const mappedItems = await Promise.all(\n filteredItems.map(async (item) => {\n if (item.imageId != null) {\n const image = await this.fileStorage.getInfo(item.imageId);\n\n return {\n ...item,\n image: image,\n };\n } else {\n return item;\n }\n })\n );\n\n this.listData.set(mappedItems);\n }\n} ","@for (item of listData(); track item.id) { @if (item.contentType?.name == 'media') {\n<img [src]=\"item.image?.url ?? ''\" class=\"ax-w-full ax-p-3 ax-border {{\n item.shape?.name == 'circle' ? 'ax-rounded-full' : 'ax-rounded-none'\n }}\" />\n} @if(item.contentType?.name == 'text'){\n<div class=\"ax-m-1 ax-px-6 ax-p-4 ax-border ax-bg-primary ax-rounded-lg\">\n <h1 class=\"ax-text-base/6\" [innerHTML]=\"item.body | safe : 'html'\"></h1>\n</div>\n\n} } ","import { NgModule } from \"@angular/core\";\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';\nimport { AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';\nimport { AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport { AXMMenuProvider } from './menu.provider';\nimport { AXMEntityProvider } from './entity.provider';\nimport { AXMPermissionDefinitionProvider } from './permission-definition.provider'; \nimport { AXMSettingProvider } from './setting.provider';\nimport { AXMSearchCommandProvider } from './search-command.provider';\nimport { AXPComponentSlotModule } from '@acorex/platform/layout/components';\nimport { AXP_DATASOURCE_DEFINITION_PROVIDER } from '@acorex/platform/core';\n\n// Import promotion-related services and components\nimport {\n AXMAppPromotionService,\n AXMPromotionServiceImpl,\n} from './entities/promotion/promotion.service';\nimport { AXMPromotionDataSourceDefinition } from './entities/promotion/promotion.datasource';\nimport { AXMPromotionSlotComponent } from './features/promotion/components/promotion-slot/promotion-slot.component';\n\n@NgModule({\n imports: [\n AXPComponentSlotModule.forChild({\n 'side-menu-footer': [\n {\n name: 'side-menu-footer-promotion',\n component: AXMPromotionSlotComponent,\n options: {\n location: 'side-menu-footer',\n },\n },\n ],\n 'side-menu-header': [\n {\n name: 'side-menu-header-promotion',\n component: AXMPromotionSlotComponent,\n priority: 2,\n options: {\n location: 'side-menu-header',\n },\n },\n ],\n }),\n ],\n exports: [],\n declarations: [],\n providers : [\n \n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXMSearchCommandProvider,\n multi: true,\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXMAppPromotionService,\n useClass: AXMPromotionServiceImpl,\n },\n {\n provide: AXP_DATASOURCE_DEFINITION_PROVIDER,\n useClass: AXMPromotionDataSourceDefinition,\n multi: true,\n },\n ]\n})\nexport class AXMContentManagementModule {}\n","import {\n AXPEntity,\n AXPEntityCommandScope,\n AXPEntityQueryType,\n createAllQueryView,\n createQueryView,\n } from '@acorex/platform/common';\n import { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\n import { Injector } from '@angular/core';\n import { RootConfig } from '../../const';\n import { AXPFileListItem } from '@acorex/platform/core';\n import { AXPFileStorageService, AXPFileStorageInfo } from '@acorex/platform/common';\nimport { AXMAppPromotionService } from './promotion.service';\n \n /**\n * Deeply sanitizes an object for storage in IndexedDB by removing non-serializable content\n */\n function sanitizeForStorage(obj: any): any {\n if (!obj) {\n return obj;\n }\n \n // Handle primitive values\n if (typeof obj !== 'object') {\n return obj;\n }\n \n // Handle arrays\n if (Array.isArray(obj)) {\n return obj.map(item => sanitizeForStorage(item));\n }\n \n // Handle Date objects\n if (obj instanceof Date) {\n return obj;\n }\n \n // Handle File objects specially\n if (obj instanceof File) {\n // File objects are handled separately, return as is\n return obj;\n }\n \n // Handle Blob objects\n if (obj instanceof Blob) {\n // Blob objects are handled separately\n return obj;\n }\n \n // Handle regular objects\n const cleanedObj: any = {};\n \n for (const [key, value] of Object.entries(obj)) {\n // Skip functions, symbols and other non-serializable types\n if (typeof value === 'function' || typeof value === 'symbol') {\n continue;\n }\n \n // Handle null values\n if (value === null) {\n cleanedObj[key] = null;\n continue;\n }\n \n // Recursively sanitize objects\n if (typeof value === 'object') {\n cleanedObj[key] = sanitizeForStorage(value);\n } else {\n cleanedObj[key] = value;\n }\n }\n \n return cleanedObj;\n }\n \n export async function promotionEntityFactory(injector: Injector): Promise<AXPEntity | null> {\n const dataService = injector.get(AXMAppPromotionService);\n const fileStorageService = injector.get(AXPFileStorageService);\n const i18n = RootConfig.config.i18n;\n \n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.promotion.name,\n source: '',\n title: RootConfig.entities.promotion.title,\n formats: {\n individual: RootConfig.entities.promotion.title,\n plural: RootConfig.entities.promotion.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: RootConfig.module.title,\n },\n },\n relatedEntities: [],\n groups: [\n {\n id: 'promotion',\n title: 'Promotion',\n },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n schema: {\n dataType: 'uuid',\n hidden: true,\n nullable: false,\n readonly: true,\n unique: {\n enabled: true,\n },\n },\n options: {\n sort: {\n enabled: true,\n },\n },\n },\n {\n name: 'title',\n title: `t(\"title\", { scope: \"common\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n options: {\n sort: {\n enabled: true,\n },\n filter: {\n advance: {\n enabled: true,\n },\n inline: {\n enabled: true,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'body',\n title: `t(\"body\", { scope: \"${i18n}\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.richText,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'imageId',\n title: `t(\"Gallery\", { scope: \"${i18n}\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.fileUploader,\n options: {\n multiple: true,\n \n },\n },\n },\n },\n {\n name: 'contentType',\n title: `t(\"contentType\", { scope: \"${i18n}\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Media', name: 'media' },\n { title: 'Text', name: 'text' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n options: {\n sort: {\n enabled: true,\n },\n filter: {\n advance: {\n enabled: true,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n // {\n // name: 'shape',\n // title: `t(\"shape\", { scope: \"${i18n}\" })`,\n // groupId: 'promotion',\n // schema: {\n // dataType: 'string',\n // interface: {\n // type: AXPWidgetsCatalog.select,\n // options: {\n // valueField: 'name',\n // textField: 'title',\n // dataSource: [\n // { title: 'Circle', name: 'circle' },\n // { title: 'Square', name: 'square' },\n // ],\n // direction: 'horizontal',\n // multiple: false,\n // accept: '',\n // },\n // },\n // },\n // validations: [\n // {\n // rule: 'required',\n // },\n // ],\n // },\n {\n name: 'placement',\n title: `t(\"placement\", { scope: \"${i18n}\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n {\n title: 'Side Menu Footer',\n name: 'side-menu-footer',\n options: [\n {\n type: 'text-editor',\n mode: 'edit',\n path: 'name',\n options: {\n placeholder: 'Name',\n defaultValue: 'test',\n },\n },\n ],\n },\n {\n title: 'Side Menu Header',\n name: 'side-menu-header',\n options: [\n {\n type: 'text-editor',\n mode: 'edit',\n path: 'name',\n options: {\n placeholder: 'Name',\n defaultValue: 'test',\n },\n },\n ],\n },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n // {\n // name: \"metadaata\",\n // title: \"Meta Data\",\n // groupId: 'promotion',\n // schema: {\n // dataType: 'object',\n // interface: {\n // type: AXPWidgetsCatalog.text,\n // // children: \"{{ context.eval('placement').options }}\" as any,\n // },\n // }\n //},\n // {\n // name: 'metadata',\n // title: `Meta Data`,\n // groupId: 'promotion',\n // schema: {\n // dataType: 'object',\n // interface: {\n // type: AXPWidgetsCatalog.blockLayout,\n // children: \"{{ context.eval('placement')?.options ?? [] }}\" as any,\n // },\n // },\n // },\n ],\n columns: [{ name: 'title' }, { name: 'placement' }, { name: 'imageId' }],\n commands: {\n create: {\n execute: async (data: any) => {\n data = sanitizeForStorage(data);\n \n const entityPayload = { ...data };\n const filesToUploadAfterSave: Array<{ fileItem: AXPFileListItem, blob: File }> = [];\n // const originalImageIdArray = Array.isArray(entityPayload.imageId) ? [...entityPayload.imageId] : [];\n \n if (entityPayload.imageId && Array.isArray(entityPayload.imageId)) {\n const processedImageIdForEntitySave: any[] = [];\n for (const fileItem of entityPayload.imageId as AXPFileListItem[]) {\n if (fileItem.source?.kind === 'blob' && fileItem.source.value instanceof Blob) {\n filesToUploadAfterSave.push({ fileItem, blob: fileItem.source.value as File });\n processedImageIdForEntitySave.push({\n tempId: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n type: (fileItem.source.value as File).type, // Type from blob is reliable\n status: 'pending_upload'\n });\n } else if (fileItem.source?.kind === 'fileId' && fileItem.id && typeof fileItem.source.value === 'string') {\n // If it's a fileId, we assume it's already processed. We don't have type directly on AXPFileListItem.\n // We'll reconstruct it from fileStorageService or it should be part of what's saved if needed.\n processedImageIdForEntitySave.push({\n id: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n // type: fileItem.type, // Removed: AXPFileListItem does not have .type\n status: 'uploaded',\n source: { kind: 'fileId', value: fileItem.source.value }\n });\n } else if (fileItem.id && fileItem.name) { // Fallback for items that might be from a previous save\n processedImageIdForEntitySave.push({\n id: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n // type: fileItem.type, // Removed: AXPFileListItem does not have .type\n status: fileItem.status, // Preserve existing status\n source: fileItem.source ? { kind: fileItem.source.kind, value: fileItem.source.value } : undefined\n });\n }\n }\n entityPayload.imageId = processedImageIdForEntitySave;\n }\n \n const savedEntityId = await dataService.insertOne(entityPayload);\n // const entityId = savedEntity.id; // Corrected based on typical service return\n \n const finalImageIdReferences: any[] = (entityPayload.imageId || [])\n .filter((f: any) => f.status !== 'pending_upload');\n \n for (const { fileItem, blob } of filesToUploadAfterSave) {\n try {\n if (!fileStorageService) {\n throw new Error('fileStorageService is not available.');\n }\n const fileStorageInfo: AXPFileStorageInfo = await fileStorageService.save({\n file: blob,\n refId: savedEntityId,\n refType: `${RootConfig.module.name}.${RootConfig.entities.promotion.name}` ,\n category: '',\n name: blob.name,\n });\n \n finalImageIdReferences.push({\n id: fileStorageInfo.fileId,\n name: fileStorageInfo.name || blob.name,\n size: fileStorageInfo.size || blob.size,\n type: fileStorageInfo.mimeType || blob.type,\n status: 'uploaded',\n source: { kind: 'fileId', value: fileStorageInfo.fileId }\n });\n } catch (err: any) { // Typed error\n console.error('Error uploading file to FileStorage for entityId:', savedEntityId, 'file:', fileItem.name, err);\n finalImageIdReferences.push({\n tempId: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n type: (blob as File).type, // Correctly access type from Blob/File\n status: 'upload_failed',\n error: err.message\n });\n }\n }\n \n if (filesToUploadAfterSave.length > 0) {\n let needsUpdate = true;\n if (entityPayload.imageId && entityPayload.imageId.length === finalImageIdReferences.length) {\n const oldIds = entityPayload.imageId.map((f: any) => f.id || f.tempId).sort().join(',');\n const newIds = finalImageIdReferences.map((f: any) => f.id || f.tempId).sort().join(',');\n if (oldIds === newIds && !finalImageIdReferences.some((f: any) => f.status === 'upload_failed')) {\n needsUpdate = false;\n }\n }\n \n if (needsUpdate) {\n // Assuming updateOne takes the ID and an object of fields to update\n await dataService.updateOne(savedEntityId, { imageId: finalImageIdReferences as any });\n }\n }\n \n return { id: savedEntityId };\n },\n },\n delete: {\n execute: async (id: any) => {\n return await dataService.deleteOne(id);\n },\n },\n update: {\n execute: async (data: any) => {\n const entityId = data.id;\n const filesToUpload: Array<{ fileItem: AXPFileListItem, blob: File }> = [];\n const processedImageReferences: any[] = []; // Will hold final file objects for DB\n \n // Ensure fileStorageService is available (it's injected at the factory level)\n // const fileStorageService = injector.get(AXPFileStorageService); // Already available in this scope from factory\n \n if (data.imageId && Array.isArray(data.imageId)) {\n for (const fileItem of data.imageId as AXPFileListItem[]) {\n if (fileItem.status === 'deleted') {\n // File marked for deletion. Skip.\n // Optionally, you might want to call fileStorageService.delete(fileId) here\n // if fileItem.id points to an existing stored file and actual deletion is needed.\n // For now, we just disassociate it from the entity.\n continue;\n }\n \n if (fileItem.source?.kind === 'blob' && fileItem.source.value instanceof Blob) {\n filesToUpload.push({ fileItem, blob: fileItem.source.value as File });\n // Actual reference will be added to processedImageReferences after successful upload.\n } else if (fileItem.source?.kind === 'fileId' && fileItem.id && typeof fileItem.source.value === 'string') {\n // This is an existing file, keep its reference.\n processedImageReferences.push({\n id: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n status: fileItem.status || 'uploaded', // Default to 'uploaded' if status is missing\n source: { kind: 'fileId', value: fileItem.source.value }\n // 'type' is not typically part of AXPFileListItem for existing fileIds in 'create'\n });\n } else if (fileItem.id && fileItem.name) { \n // Fallback for items that might be from a previous save state (already processed)\n // These are likely already processed files that are being kept.\n processedImageReferences.push({\n id: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n status: fileItem.status || 'uploaded',\n source: fileItem.source ? { kind: fileItem.source.kind, value: fileItem.source.value } : undefined\n });\n }\n // Else: unknown fileItem structure, it will be ignored or you can log an error.\n }\n }\n \n // Upload new files and add their successful/failed info to processedImageReferences\n for (const { fileItem, blob } of filesToUpload) {\n try {\n if (!fileStorageService) {\n throw new Error('fileStorageService is not available.');\n }\n const fileStorageInfo: AXPFileStorageInfo = await fileStorageService.save({\n file: blob,\n refId: entityId, // ID of the entity being updated\n refType: `${RootConfig.module.name}.${RootConfig.entities.promotion.name}`,\n category: '', // Add category if applicable\n name: blob.name,\n });\n \n processedImageReferences.push({\n id: fileStorageInfo.fileId,\n name: fileStorageInfo.name || blob.name,\n size: fileStorageInfo.size || blob.size,\n type: fileStorageInfo.mimeType || blob.type, // Store MIME type\n status: 'uploaded',\n source: { kind: 'fileId', value: fileStorageInfo.fileId }\n });\n } catch (err: any) {\n console.error('Error uploading file to FileStorage during update for entityId:', entityId, 'file:', fileItem.name, err);\n processedImageReferences.push({\n tempId: fileItem.id, // Use fileItem.id if it's a unique temp client-side ID, or generate one\n name: fileItem.name,\n size: fileItem.size,\n type: (blob as File).type,\n status: 'upload_failed',\n error: err.message\n });\n }\n }\n \n // Construct the final data payload for the update.\n // Create a mutable copy of the input data.\n const finalUpdatePayload = { ...data };\n // Replace the original imageId array with the newly processed one.\n finalUpdatePayload.imageId = processedImageReferences;\n \n // Sanitize the entire payload before sending it to dataService.updateOne.\n // This ensures that the processedImageReferences (which are plain objects)\n // and all other fields in the payload are clean and serializable.\n const fullySanitizedPayload = sanitizeForStorage(finalUpdatePayload);\n \n return await dataService.updateOne(entityId, fullySanitizedPayload);\n },\n },\n },\n queries: {\n byKey: {\n execute: async (id: string) => {\n try {\n // Debug the incoming ID parameter\n console.log('byKey original id parameter:', id, typeof id);\n \n // Ensure id is a valid key for IndexedDB - needs to be string or number\n let validId: string;\n \n // If id is an object (e.g., from router params or complex structure)\n if (typeof id === 'object' && id !== null) {\n if ('id' in id) {\n validId = String((id as any).id);\n } else {\n validId = String(id);\n }\n console.warn('Converted object id to string:', validId);\n } else if (id === undefined || id === null) {\n console.error('Invalid id parameter: null or undefined');\n return null;\n } else {\n // Convert to string to ensure consistency\n validId = String(id);\n }\n \n // Log the ID being used for the query\n console.log('Fetching record with id:', validId, typeof validId);\n \n try {\n const data = await dataService.getOne(validId);\n console.log('getOne result:', data ? 'Data found' : 'No data found');\n \n // If no data was found\n if (!data) {\n console.warn(`No record found with id: ${validId}`);\n return null;\n }\n \n return data;\n } catch (error) {\n console.error(`Error fetching data with ID ${validId}:`, error);\n // Return null instead of throwing to avoid cascading errors\n return null;\n }\n } catch (error) {\n console.error('Critical error in byKey query:', error);\n return null; // Return null instead of throwing to avoid UI errors\n }\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e: any) => {\n return await dataService.query({ skip: e.skip, take: e.take, filter: e.filter });\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'promotion',\n },\n ],\n properties: [\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 1,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 5,\n },\n },\n },\n },\n {\n name: 'imageId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 6,\n },\n },\n },\n },\n {\n name: 'contentType',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 2,\n },\n },\n },\n },\n {\n name: 'shape',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 3,\n },\n },\n },\n },\n {\n name: 'placement',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 4,\n },\n },\n },\n },\n {\n name: 'metadata',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 10,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'promotion',\n },\n ],\n properties: [\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 1,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 5,\n },\n },\n },\n },\n {\n name: 'imageId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 6,\n },\n },\n },\n },\n {\n name: 'contentType',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 2,\n },\n },\n },\n },\n {\n name: 'shape',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 3,\n },\n },\n },\n },\n {\n name: 'placement',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 4,\n },\n },\n },\n },\n // {\n // name: 'metadata',\n // layout: {\n // positions: {\n // lg: {\n // colSpan: 12,\n // order: 10,\n // },\n // },\n // },\n // },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'promotion',\n },\n ],\n properties: [\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'imageId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 2,\n },\n },\n },\n },\n {\n name: 'contentType',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 4,\n },\n },\n },\n },\n {\n name: 'shape',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 5,\n },\n },\n },\n },\n {\n name: 'placement',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 6,\n },\n },\n },\n },\n ],\n actions: [],\n },\n list: {\n actions: [\n {\n title: `t(\"create\", { scope: \"common\" })`,\n command: 'create-entity',\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n },\n {\n title: 't(\"deleteItems\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Selected,\n },\n {\n title: 't(\"detail\", { scope: \"common\" })',\n command: 'open-entity',\n priority: 'primary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: 't(\"delete\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: 't(\"entity.modify\", { scope: \"common\" })',\n command: 'quick-modify-entity',\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n },\n //TODO: add this to the entity\n {\n title: 't(\"upload.title\", { scope: \"common\" })',\n command: {\n name:'show-file-uploader-popup',\n options:{\n id: '{{ context.eval(\"id\") }}',\n files: '{{ context.eval(\"imageId\") }}',\n multiple: true,\n accept: '.jpg,.jpeg,.png,.gif,.webp',\n key: 'imageId',\n }\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n },\n ],\n views: [\n createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] }),\n createQueryView('media', `t(\"media\", { scope: \"${i18n}\" })`, true, {\n conditions: [\n {\n name: 'contentType.name',\n operator: {\n type: 'equal',\n },\n value: 'media',\n },\n ],\n }),\n createQueryView('text', `t(\"text\", { scope: \"${i18n}\" })`, true, {\n conditions: [\n {\n name: 'contentType.name',\n operator: {\n type: 'equal',\n },\n value: 'text',\n },\n ],\n }),\n ],\n },\n },\n },\n };\n \n return entityDef;\n }\n ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { createAllQueryView, AXPEntityCommandScope, AXPEntityQueryType, AXPSettingService, AXP_APP_VERSION_PROVIDER, createQueryView, AXPRegionalService, AXP_SETTING_DEFINITION_PROVIDER, AXP_MENU_PROVIDER } from '@acorex/platform/common';
|
2
2
|
import * as i2$2 from '@acorex/platform/layout/components';
|
3
3
|
import { AXPThemeLayoutBlockComponent, AXPComponentSlotModule } from '@acorex/platform/layout/components';
|
4
|
-
import { AXMEntityCrudServiceImpl,
|
4
|
+
import { AXMEntityCrudServiceImpl, AXPEntityResolver, AXPEntityService, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';
|
5
5
|
import * as i3$2 from '@acorex/platform/workflow';
|
6
6
|
import { AXPWorkflowAction, AXPWorkflowService, AXPWorkflowTaskProvider, AXPWorkflowModule, AXP_WORKFLOW_TASK_PROVIDER } from '@acorex/platform/workflow';
|
7
7
|
import * as i0 from '@angular/core';
|
@@ -1431,7 +1431,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
1431
1431
|
async function dataSourceEntityFactory(injector) {
|
1432
1432
|
const dataService = injector.get(AXMDataSourceService);
|
1433
1433
|
const i18n = RootConfig.config.i18n;
|
1434
|
-
const entitiesService = injector.get(AXPEntityDefinitionRegistryService);
|
1435
1434
|
const translationService = injector.get(AXTranslationService);
|
1436
1435
|
const dataSourceDefinitionService = injector.get(AXPDataSourceDefinitionProviderService);
|
1437
1436
|
const entityDef = {
|
@@ -1572,7 +1571,7 @@ async function dataSourceEntityFactory(injector) {
|
|
1572
1571
|
title: 'External Api',
|
1573
1572
|
},
|
1574
1573
|
{
|
1575
|
-
name: '
|
1574
|
+
name: 'query',
|
1576
1575
|
title: 'Query',
|
1577
1576
|
},
|
1578
1577
|
{
|
@@ -1638,7 +1637,7 @@ async function dataSourceEntityFactory(injector) {
|
|
1638
1637
|
type: AXPWidgetsCatalog.select,
|
1639
1638
|
options: {
|
1640
1639
|
//TODO problem selectBox!
|
1641
|
-
visibility: '{{context.eval("sourceType")?.name == "
|
1640
|
+
visibility: '{{context.eval("sourceType")?.name == "query" }}',
|
1642
1641
|
valueField: 'name',
|
1643
1642
|
textField: 'title',
|
1644
1643
|
dataSource: new AXDataSource({
|
@@ -1727,7 +1726,7 @@ async function dataSourceEntityFactory(injector) {
|
|
1727
1726
|
commands: {
|
1728
1727
|
create: {
|
1729
1728
|
execute: async (data) => {
|
1730
|
-
if (data.sourceType.name == '
|
1729
|
+
if (data.sourceType.name == 'query') {
|
1731
1730
|
data.sourceEntity = data.sourceEntity?.name;
|
1732
1731
|
}
|
1733
1732
|
const res = await dataService.insertOne(data);
|
@@ -2102,14 +2101,14 @@ async function dataSourceEntityFactory(injector) {
|
|
2102
2101
|
{
|
2103
2102
|
title: 't("detail", { scope: "common" })',
|
2104
2103
|
command: 'open-entity',
|
2105
|
-
priority: '
|
2104
|
+
priority: 'secondary',
|
2106
2105
|
type: 'view',
|
2107
2106
|
scope: AXPEntityCommandScope.Individual,
|
2108
2107
|
},
|
2109
2108
|
{
|
2110
2109
|
title: 't("delete", { scope: "common" })',
|
2111
2110
|
command: 'delete-entity',
|
2112
|
-
priority: '
|
2111
|
+
priority: 'secondary',
|
2113
2112
|
type: 'delete',
|
2114
2113
|
scope: AXPEntityCommandScope.Individual,
|
2115
2114
|
},
|
@@ -2134,14 +2133,14 @@ async function dataSourceEntityFactory(injector) {
|
|
2134
2133
|
},
|
2135
2134
|
],
|
2136
2135
|
}),
|
2137
|
-
createQueryView('
|
2136
|
+
createQueryView('query', `t("query", { scope: "${i18n}" })`, true, {
|
2138
2137
|
conditions: [
|
2139
2138
|
{
|
2140
2139
|
name: 'sourceType.name',
|
2141
2140
|
operator: {
|
2142
2141
|
type: 'equal',
|
2143
2142
|
},
|
2144
|
-
value: '
|
2143
|
+
value: 'query',
|
2145
2144
|
},
|
2146
2145
|
],
|
2147
2146
|
}),
|
@@ -3896,7 +3895,7 @@ class AXMPlatformManagementCommonModule {
|
|
3896
3895
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
3897
3896
|
useFactory: async () => {
|
3898
3897
|
const injector = inject(Injector);
|
3899
|
-
const provider = (await import('./acorex-modules-platform-management-settings.provider-
|
3898
|
+
const provider = (await import('./acorex-modules-platform-management-settings.provider-B-19OJn0.mjs')).AXMRegionalSettingProvider;
|
3900
3899
|
return new provider(injector);
|
3901
3900
|
},
|
3902
3901
|
multi: true
|
@@ -3935,7 +3934,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
3935
3934
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
3936
3935
|
useFactory: async () => {
|
3937
3936
|
const injector = inject(Injector);
|
3938
|
-
const provider = (await import('./acorex-modules-platform-management-settings.provider-
|
3937
|
+
const provider = (await import('./acorex-modules-platform-management-settings.provider-B-19OJn0.mjs')).AXMRegionalSettingProvider;
|
3939
3938
|
return new provider(injector);
|
3940
3939
|
},
|
3941
3940
|
multi: true
|
@@ -3953,6 +3952,7 @@ class AXMDynamicDataSourceProvider {
|
|
3953
3952
|
constructor() {
|
3954
3953
|
this.dataSourceService = inject(AXMDataSourceService);
|
3955
3954
|
this.entityResolverService = inject(AXPEntityResolver);
|
3955
|
+
this.dataSourceDefinitionProviderService = inject(AXPDataSourceDefinitionProviderService);
|
3956
3956
|
}
|
3957
3957
|
async items() {
|
3958
3958
|
const dataSources = await this.dataSourceService.query({
|
@@ -3969,24 +3969,10 @@ class AXMDynamicDataSourceProvider {
|
|
3969
3969
|
return convertArrayToDataSource(item.sourceStatic);
|
3970
3970
|
}
|
3971
3971
|
// Entity
|
3972
|
-
else if (item.sourceType.name == '
|
3973
|
-
const
|
3974
|
-
|
3975
|
-
|
3976
|
-
if (exFn && typeof exFn == 'function') {
|
3977
|
-
return new AXDataSource({
|
3978
|
-
key: 'id',
|
3979
|
-
pageSize: 10,
|
3980
|
-
load: async (e) => {
|
3981
|
-
try {
|
3982
|
-
const result = await exFn(e);
|
3983
|
-
return result;
|
3984
|
-
}
|
3985
|
-
catch (error) {
|
3986
|
-
throw error;
|
3987
|
-
}
|
3988
|
-
},
|
3989
|
-
});
|
3972
|
+
else if (item.sourceType.name == 'query') {
|
3973
|
+
const definition = await this.dataSourceDefinitionProviderService.get(item.sourceEntity);
|
3974
|
+
if (definition) {
|
3975
|
+
return definition.source();
|
3990
3976
|
}
|
3991
3977
|
}
|
3992
3978
|
//
|
@@ -4119,7 +4105,7 @@ class AXMShowReleaseNotesPopupAction extends AXPWorkflowAction {
|
|
4119
4105
|
}
|
4120
4106
|
async execute(context) {
|
4121
4107
|
const scope = RootConfig.config.i18n;
|
4122
|
-
const comp = await (await import('./acorex-modules-platform-management-list-version.component-
|
4108
|
+
const comp = await (await import('./acorex-modules-platform-management-list-version.component-DfbMc2hn.mjs')).AXMListVersionComponent;
|
4123
4109
|
this.popupService.open(comp, {
|
4124
4110
|
title: `t('release-notes',{scope: "${scope}"})`,
|
4125
4111
|
});
|
@@ -4751,4 +4737,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
4751
4737
|
*/
|
4752
4738
|
|
4753
4739
|
export { AXPRegionalSetting as A, AXMGlossaryServiceImpl as B, metaDataDefinitionFactory as C, AXMMetaDataDefinitionService as D, AXMPMetaDataDefinitionServiceImpl as E, metaDataDefinitionCategoryEntityFactory as F, AXMMetaDataDefinitionCategoryService as G, AXMMetaDataDefinitionCategoryServiceImpl as H, AXPRegionalStoreService as I, AXMUpdaterModule as J, AXPUpdaterService as K, RootConfig as R, AXMAppVersionService as a, AXMPlatformManagementModule as b, appTermEntityEntityFactory as c, AXMAppTermService as d, AXMAppTermServiceImpl as e, AXMListTermsComponent as f, AXMNotifyNewTermPopupAction as g, AXMTermUpdateSettingAction as h, AXMNewTermWorkflow as i, appVersionEntityEntityFactory as j, AXMAppVersionServiceImpl as k, AXMNotifyAppComponent as l, AXMAppVersionSlotComponent as m, AXMChangeLogPopupAction as n, AXMChangeLogUpdateSettingAction as o, AXMWhatsNewWorkflow as p, AXMCheckNewVersionAction as q, AXMCheckNewVersionWorkflow as r, dataSourceEntityFactory as s, AXMDataSourceService as t, AXMDataSourceServiceImpl as u, globalVariableEntityFactory as v, AXMGlobalVariablesService as w, AXMGlobalVariablesServiceImpl as x, glossaryEntityFactory as y, AXMGlossaryService as z };
|
4754
|
-
//# sourceMappingURL=acorex-modules-platform-management-acorex-modules-platform-management-
|
4740
|
+
//# sourceMappingURL=acorex-modules-platform-management-acorex-modules-platform-management-CzMi7CBH.mjs.map
|