@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.
Files changed (22) hide show
  1. package/content-management/index.d.ts +2 -0
  2. package/content-management/lib/entities/index.d.ts +1 -0
  3. package/content-management/lib/entities/promotion/index.d.ts +5 -0
  4. package/content-management/lib/features/index.d.ts +1 -0
  5. package/content-management/lib/features/promotion/components/index.d.ts +1 -0
  6. package/content-management/lib/features/promotion/index.d.ts +1 -0
  7. package/fesm2022/acorex-modules-content-management.mjs +1288 -1
  8. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  9. package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-B8aACrqL.mjs → acorex-modules-platform-management-acorex-modules-platform-management-CzMi7CBH.mjs} +17 -31
  10. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-CzMi7CBH.mjs.map +1 -0
  11. package/fesm2022/{acorex-modules-platform-management-list-version.component-DhSicYd3.mjs → acorex-modules-platform-management-list-version.component-DfbMc2hn.mjs} +2 -2
  12. package/fesm2022/{acorex-modules-platform-management-list-version.component-DhSicYd3.mjs.map → acorex-modules-platform-management-list-version.component-DfbMc2hn.mjs.map} +1 -1
  13. package/fesm2022/{acorex-modules-platform-management-settings.provider-CnGAUpof.mjs → acorex-modules-platform-management-settings.provider-B-19OJn0.mjs} +2 -2
  14. package/fesm2022/{acorex-modules-platform-management-settings.provider-CnGAUpof.mjs.map → acorex-modules-platform-management-settings.provider-B-19OJn0.mjs.map} +1 -1
  15. package/fesm2022/acorex-modules-platform-management.mjs +1 -1
  16. package/package.json +1 -1
  17. package/platform-management/lib/entities/data-source/datasource-provider.dynamic.d.ts +2 -0
  18. package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-C23PlUCn.mjs +0 -392
  19. package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-C23PlUCn.mjs.map +0 -1
  20. package/fesm2022/acorex-modules-content-management-promotion.entity-D3qRwZhQ.mjs +0 -892
  21. package/fesm2022/acorex-modules-content-management-promotion.entity-D3qRwZhQ.mjs.map +0 -1
  22. 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, AXPEntityDefinitionRegistryService, AXPEntityResolver, AXPEntityService, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';
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: 'entity',
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 == "entity" }}',
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 == 'entity') {
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: 'primary',
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: 'primary',
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('entity', `t("entity", { scope: "${i18n}" })`, true, {
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: 'entity',
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-CnGAUpof.mjs')).AXMRegionalSettingProvider;
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-CnGAUpof.mjs')).AXMRegionalSettingProvider;
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 == 'entity') {
3973
- const [module, entityName] = item.sourceEntity.split('.');
3974
- const entity = await this.entityResolverService.get(module, entityName);
3975
- const exFn = entity?.queries.list?.execute;
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-DhSicYd3.mjs')).AXMListVersionComponent;
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-B8aACrqL.mjs.map
4740
+ //# sourceMappingURL=acorex-modules-platform-management-acorex-modules-platform-management-CzMi7CBH.mjs.map