@acorex-platform/module-platform-management-client 0.0.37 → 0.0.46

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 (87) hide show
  1. package/fesm2022/{acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-BGVhn6wv.mjs → acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-YuJijjKh.mjs} +465 -101
  2. package/fesm2022/acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-YuJijjKh.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-command-definition.mjs +20 -0
  4. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-command-definition.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-entity-access-policy.mjs +20 -0
  6. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-entity-access-policy.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-entity-definition.mjs +1499 -30
  8. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-entity-definition.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-module-definition.mjs +396 -0
  10. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-module-definition.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-plugin-definition.mjs +20 -0
  12. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-plugin-definition.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-query-definition.mjs +49 -1
  14. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-query-definition.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-token.mjs +20 -0
  16. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-token.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-widget.mjs +20 -0
  18. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entities-widget.mjs.map +1 -1
  19. package/fesm2022/{acorex-platform-module-platform-management-client-contracts-entity-catalog-acorex-platform-module-platform-management-client-contracts-entity-catalog-BOwC5Ns9.mjs → acorex-platform-module-platform-management-client-contracts-entity-catalog-acorex-platform-module-platform-management-client-contracts-entity-catalog-HWczTPH2.mjs} +15 -8
  20. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-acorex-platform-module-platform-management-client-contracts-entity-catalog-HWczTPH2.mjs.map +1 -0
  21. package/fesm2022/{acorex-platform-module-platform-management-client-contracts-entity-catalog-command-definition.entity-CdvQlwAk.mjs → acorex-platform-module-platform-management-client-contracts-entity-catalog-command-definition.entity-C3B1_QMs.mjs} +16 -2
  22. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-command-definition.entity-C3B1_QMs.mjs.map +1 -0
  23. package/fesm2022/{acorex-platform-module-platform-management-client-contracts-entity-catalog-entity-access-policy.entity-Dye4aSKE.mjs → acorex-platform-module-platform-management-client-contracts-entity-catalog-entity-access-policy.entity-BPkJloHy.mjs} +16 -2
  24. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-entity-access-policy.entity-BPkJloHy.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-entity-definition.entity-BL1I9pmK.mjs +1621 -0
  26. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-entity-definition.entity-BL1I9pmK.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-module-definition.entity-Cknl0vbc.mjs +299 -0
  28. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-module-definition.entity-Cknl0vbc.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-module-platform-management-client-contracts-entity-catalog-plugin-definition.entity-CwU5hMjI.mjs → acorex-platform-module-platform-management-client-contracts-entity-catalog-plugin-definition.entity-BxABTl8L.mjs} +16 -2
  30. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-plugin-definition.entity-BxABTl8L.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-module-platform-management-client-contracts-entity-catalog-query-definition.entity-DGK684Q1.mjs → acorex-platform-module-platform-management-client-contracts-entity-catalog-query-definition.entity-Cv6HVQOU.mjs} +45 -3
  32. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-query-definition.entity-Cv6HVQOU.mjs.map +1 -0
  33. package/fesm2022/{acorex-platform-module-platform-management-client-contracts-entity-catalog-token.entity-DI_k6-ha.mjs → acorex-platform-module-platform-management-client-contracts-entity-catalog-token.entity-BV8iSuoK.mjs} +16 -2
  34. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-token.entity-BV8iSuoK.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-module-platform-management-client-contracts-entity-catalog-widget.entity-C18msniH.mjs → acorex-platform-module-platform-management-client-contracts-entity-catalog-widget.entity-BYH6SIqU.mjs} +16 -2
  36. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-widget.entity-BYH6SIqU.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog.mjs +1 -1
  38. package/fesm2022/acorex-platform-module-platform-management-client-contracts.mjs +1664 -1
  39. package/fesm2022/acorex-platform-module-platform-management-client-contracts.mjs.map +1 -1
  40. package/fesm2022/acorex-platform-module-platform-management-client-create-user-query-contract.util-D_af2BUi.mjs +586 -0
  41. package/fesm2022/acorex-platform-module-platform-management-client-create-user-query-contract.util-D_af2BUi.mjs.map +1 -0
  42. package/fesm2022/{acorex-platform-module-platform-management-client-create-user-query.command-9Ku7C1BC.mjs → acorex-platform-module-platform-management-client-create-user-query.command-Bh49QHkl.mjs} +374 -324
  43. package/fesm2022/acorex-platform-module-platform-management-client-create-user-query.command-Bh49QHkl.mjs.map +1 -0
  44. package/fesm2022/acorex-platform-module-platform-management-client-entity-definition-form-page.component-BgBWob9p.mjs +329 -0
  45. package/fesm2022/acorex-platform-module-platform-management-client-entity-definition-form-page.component-BgBWob9p.mjs.map +1 -0
  46. package/fesm2022/acorex-platform-module-platform-management-client-entity-definition-form-page.provider-hLzgoJu3.mjs +23 -0
  47. package/fesm2022/acorex-platform-module-platform-management-client-entity-definition-form-page.provider-hLzgoJu3.mjs.map +1 -0
  48. package/fesm2022/acorex-platform-module-platform-management-client-list-registered-entities.query-CZM6JQou.mjs +197 -0
  49. package/fesm2022/acorex-platform-module-platform-management-client-list-registered-entities.query-CZM6JQou.mjs.map +1 -0
  50. package/fesm2022/acorex-platform-module-platform-management-client-local-entities.mjs +1 -0
  51. package/fesm2022/acorex-platform-module-platform-management-client-local-entities.mjs.map +1 -1
  52. package/fesm2022/{acorex-platform-module-platform-management-client-menu-list.component-uF5w1c7t.mjs → acorex-platform-module-platform-management-client-menu-list.component-iMEnFPEY.mjs} +2 -2
  53. package/fesm2022/{acorex-platform-module-platform-management-client-menu-list.component-uF5w1c7t.mjs.map → acorex-platform-module-platform-management-client-menu-list.component-iMEnFPEY.mjs.map} +1 -1
  54. package/fesm2022/acorex-platform-module-platform-management-client-query-contract-widget-column.component-COfOzMGh.mjs +45 -0
  55. package/fesm2022/acorex-platform-module-platform-management-client-query-contract-widget-column.component-COfOzMGh.mjs.map +1 -0
  56. package/fesm2022/acorex-platform-module-platform-management-client-query-contract-widget-edit.component-BW2pBOeg.mjs +166 -0
  57. package/fesm2022/acorex-platform-module-platform-management-client-query-contract-widget-edit.component-BW2pBOeg.mjs.map +1 -0
  58. package/fesm2022/acorex-platform-module-platform-management-client-query-contract-widget-view.component-DD9ETjFD.mjs +45 -0
  59. package/fesm2022/acorex-platform-module-platform-management-client-query-contract-widget-view.component-DD9ETjFD.mjs.map +1 -0
  60. package/fesm2022/{acorex-platform-module-platform-management-client-rest-api-generator-widget-column.component-B0g6dweQ.mjs → acorex-platform-module-platform-management-client-rest-api-generator-widget-column.component-DRkE2a7n.mjs} +2 -2
  61. package/fesm2022/{acorex-platform-module-platform-management-client-rest-api-generator-widget-column.component-B0g6dweQ.mjs.map → acorex-platform-module-platform-management-client-rest-api-generator-widget-column.component-DRkE2a7n.mjs.map} +1 -1
  62. package/fesm2022/{acorex-platform-module-platform-management-client-rest-api-generator-widget-edit.component-A0v5MWRU.mjs → acorex-platform-module-platform-management-client-rest-api-generator-widget-edit.component-CXI6fJi3.mjs} +2 -3
  63. package/fesm2022/{acorex-platform-module-platform-management-client-rest-api-generator-widget-edit.component-A0v5MWRU.mjs.map → acorex-platform-module-platform-management-client-rest-api-generator-widget-edit.component-CXI6fJi3.mjs.map} +1 -1
  64. package/fesm2022/{acorex-platform-module-platform-management-client-rest-api-generator-widget-view.component-RR5zcsnI.mjs → acorex-platform-module-platform-management-client-rest-api-generator-widget-view.component-C3iHgoC2.mjs} +2 -2
  65. package/fesm2022/{acorex-platform-module-platform-management-client-rest-api-generator-widget-view.component-RR5zcsnI.mjs.map → acorex-platform-module-platform-management-client-rest-api-generator-widget-view.component-C3iHgoC2.mjs.map} +1 -1
  66. package/fesm2022/acorex-platform-module-platform-management-client-run-user-query.command-BzNa3B48.mjs +144 -0
  67. package/fesm2022/acorex-platform-module-platform-management-client-run-user-query.command-BzNa3B48.mjs.map +1 -0
  68. package/fesm2022/acorex-platform-module-platform-management-client.mjs +1 -1
  69. package/package.json +7 -3
  70. package/types/acorex-platform-module-platform-management-client-contracts-entities-module-definition.d.ts +5 -0
  71. package/types/acorex-platform-module-platform-management-client-contracts.d.ts +225 -5
  72. package/types/acorex-platform-module-platform-management-client.d.ts +35 -3
  73. package/fesm2022/acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-BGVhn6wv.mjs.map +0 -1
  74. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-acorex-platform-module-platform-management-client-contracts-entity-catalog-BOwC5Ns9.mjs.map +0 -1
  75. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-command-definition.entity-CdvQlwAk.mjs.map +0 -1
  76. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-entity-access-policy.entity-Dye4aSKE.mjs.map +0 -1
  77. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-entity-definition.entity-CcJ58vfr.mjs +0 -158
  78. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-entity-definition.entity-CcJ58vfr.mjs.map +0 -1
  79. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-plugin-definition.entity-CwU5hMjI.mjs.map +0 -1
  80. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-query-definition.entity-DGK684Q1.mjs.map +0 -1
  81. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-token.entity-DI_k6-ha.mjs.map +0 -1
  82. package/fesm2022/acorex-platform-module-platform-management-client-contracts-entity-catalog-widget.entity-C18msniH.mjs.map +0 -1
  83. package/fesm2022/acorex-platform-module-platform-management-client-create-user-query.command-9Ku7C1BC.mjs.map +0 -1
  84. package/fesm2022/acorex-platform-module-platform-management-client-create-user-query.types-DdygAori.mjs +0 -71
  85. package/fesm2022/acorex-platform-module-platform-management-client-create-user-query.types-DdygAori.mjs.map +0 -1
  86. package/fesm2022/acorex-platform-module-platform-management-client-list-registered-entities.query-DjStd3a8.mjs +0 -136
  87. package/fesm2022/acorex-platform-module-platform-management-client-list-registered-entities.query-DjStd3a8.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-platform-management-client-create-user-query-contract.util-D_af2BUi.mjs","sources":["../../../../libs/modules/platform-management/client/src/lib/features/query-definition/create-user-query-entity-fields.util.ts","../../../../libs/modules/platform-management/client/src/lib/features/query-definition/create-user-query-contract.util.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport {\n parsePropertyExposeEntries,\n type AXPEntity,\n type AXPEntityProperty,\n type AXPRelatedEntity,\n} from '@acorex-platform/framework-shared/entity';\n\nimport type { AXPUserQueryEntityFieldGroup, AXPUserQueryEntityFieldItem } from './create-user-query.types';\n\n//#endregion\n\n//#region ----- Constants -----\n\nconst LOOKUP_WIDGET_TYPES = new Set(['lookup-editor', 'select-editor']);\n\nexport const USER_QUERY_RELATED_DEPTH = 3;\n\n//#endregion\n\n//#region ----- Public API -----\n\nexport function isNumericUserQueryField(item: AXPUserQueryEntityFieldItem): boolean {\n return String(item.dataType ?? '').toLowerCase() === 'number';\n}\n\nexport function numericUserQueryFields(fields: readonly AXPUserQueryEntityFieldItem[]): AXPUserQueryEntityFieldItem[] {\n return fields.filter(isNumericUserQueryField);\n}\n\nexport function parseEntityFullName(fullName: string): { module: string; name: string } | null {\n const trimmed = fullName.trim();\n const separator = trimmed.indexOf('.');\n if (separator <= 0 || separator === trimmed.length - 1) {\n return null;\n }\n\n return {\n module: trimmed.slice(0, separator),\n name: trimmed.slice(separator + 1),\n };\n}\n\nexport function resolvePickedEntityFullName(value: unknown): string {\n if (typeof value === 'string') {\n return value.trim();\n }\n\n if (value == null || typeof value !== 'object') {\n return '';\n }\n\n const record = value as Record<string, unknown>;\n const id = typeof record['id'] === 'string' ? record['id'].trim() : '';\n if (id.includes('.')) {\n return id;\n }\n\n const moduleName = typeof record['module_id'] === 'string' ? record['module_id'].trim() : '';\n const name = typeof record['name'] === 'string' ? record['name'].trim() : '';\n if (moduleName && name) {\n return `${moduleName}.${name}`;\n }\n\n return id;\n}\n\nexport function collectUserQueryEntityFieldGroups(\n entity: AXPEntity,\n relatedByName: ReadonlyMap<string, AXPEntity>,\n): AXPUserQueryEntityFieldGroup[] {\n return collectGroups(entity, relatedByName, '', new Set());\n}\n\nexport function flattenEntityFieldGroups(groups: AXPUserQueryEntityFieldGroup[]): AXPUserQueryEntityFieldGroup[] {\n const result: AXPUserQueryEntityFieldGroup[] = [];\n const walk = (group: AXPUserQueryEntityFieldGroup): void => {\n result.push(group);\n for (const child of group.children ?? []) {\n walk(child);\n }\n };\n for (const group of groups) {\n walk(group);\n }\n return result;\n}\n\nexport function defaultSelectedFieldGroups(\n groups: AXPUserQueryEntityFieldGroup[],\n): Record<string, string[]> {\n const selected: Record<string, string[]> = {};\n for (const group of flattenEntityFieldGroups(groups)) {\n selected[group.id] = [];\n }\n for (const group of groups) {\n if (group.kind !== 'relation') {\n selected[group.id] = group.items.map((item) => item.path);\n }\n }\n return selected;\n}\n\nexport function collectSelectedFieldGroupPaths(\n fieldGroups: Record<string, string[]> | undefined,\n groups: Array<{ id: string; children?: Array<{ id: string; children?: unknown[] }> }>,\n): string[] {\n const paths: string[] = [];\n const walk = (group: { id: string; children?: Array<{ id: string; children?: unknown[] }> }): void => {\n paths.push(...normalizeSelectedFieldPaths(fieldGroups?.[group.id]));\n for (const child of group.children ?? []) {\n walk(child as { id: string; children?: Array<{ id: string; children?: unknown[] }> });\n }\n };\n for (const group of groups) {\n walk(group);\n }\n return paths;\n}\n\nexport function withRequiredIdField(paths: string[]): string[] {\n const unique: string[] = [];\n const seen = new Set<string>();\n\n for (const path of paths) {\n const trimmed = path.trim();\n if (!trimmed || seen.has(trimmed)) {\n continue;\n }\n seen.add(trimmed);\n unique.push(trimmed);\n }\n\n if (!seen.has('id')) {\n unique.unshift('id');\n }\n\n return unique;\n}\n\nexport function normalizeSelectedFieldPaths(value: unknown): string[] {\n if (!Array.isArray(value)) {\n return [];\n }\n\n const paths: string[] = [];\n for (const item of value) {\n if (typeof item === 'string') {\n paths.push(item);\n continue;\n }\n if (item != null && typeof item === 'object') {\n const path = (item as { path?: unknown }).path;\n if (typeof path === 'string') {\n paths.push(path);\n }\n }\n }\n\n return paths;\n}\n\n//#endregion\n\n//#region ----- Group collection -----\n\nfunction collectGroups(\n entity: AXPEntity,\n relatedByName: ReadonlyMap<string, AXPEntity>,\n pathPrefix: string,\n ancestry: ReadonlySet<string>,\n): AXPUserQueryEntityFieldGroup[] {\n const groups: AXPUserQueryEntityFieldGroup[] = [];\n const { host, lookups } = collectHostAndLookups(entity, pathPrefix);\n\n if (host.items.length) {\n groups.push(host);\n }\n groups.push(...lookups);\n\n const hostFullName = `${entity.module}.${entity.name}`;\n const nextAncestry = new Set(ancestry);\n nextAncestry.add(hostFullName);\n\n for (const related of entity.relatedEntities ?? []) {\n const group = collectRelatedGroup(related, relatedByName, pathPrefix, nextAncestry);\n if (group) {\n groups.push(group);\n }\n }\n\n return groups;\n}\n\nfunction collectHostAndLookups(\n entity: AXPEntity | undefined,\n pathPrefix: string,\n allowedNames?: Set<string>,\n): { host: AXPUserQueryEntityFieldGroup; lookups: AXPUserQueryEntityFieldGroup[] } {\n const hostItems: AXPUserQueryEntityFieldGroup['items'] = [];\n const lookups: AXPUserQueryEntityFieldGroup[] = [];\n\n for (const property of entity?.properties ?? []) {\n const name = property.name?.trim();\n if (!name || name.toLowerCase() === 'id') {\n continue;\n }\n if (allowedNames && !allowedNames.has(name)) {\n continue;\n }\n\n if (isLookupProperty(property)) {\n const lookupGroup = collectLookupGroup(property, pathPrefix);\n if (lookupGroup) {\n lookups.push(lookupGroup);\n }\n continue;\n }\n\n hostItems.push({\n path: joinPath(pathPrefix, name),\n title: property.title,\n fallback: name,\n filterWidget: resolveFilterWidget(property),\n dataType: String(property.schema?.dataType ?? ''),\n });\n }\n\n return {\n host: {\n id: pathPrefix ? `rel_${sanitizeGroupId(pathPrefix)}_fields` : 'host',\n kind: pathPrefix ? 'relation' : 'host',\n title: '',\n fallback: 'fields',\n items: hostItems,\n },\n lookups,\n };\n}\n\nfunction collectLookupGroup(property: AXPEntityProperty, pathPrefix: string): AXPUserQueryEntityFieldGroup | null {\n const name = property.name?.trim();\n if (!name) {\n return null;\n }\n\n const items: AXPUserQueryEntityFieldGroup['items'] = [\n {\n path: joinPath(pathPrefix, name),\n title: property.title,\n fallback: name,\n filterWidget: 'lookup-filter',\n },\n ];\n\n const opts = property.schema?.interface?.options;\n for (const entry of parsePropertyExposeEntries(opts)) {\n const target = entry.target.trim();\n if (!target || target === name) {\n continue;\n }\n\n items.push({\n path: joinPath(pathPrefix, target),\n title: entry.source,\n fallback: entry.source.trim() || target,\n });\n }\n\n return {\n id: `lookup_${sanitizeGroupId(joinPath(pathPrefix, name))}`,\n kind: 'lookup',\n title: property.title,\n fallback: name,\n items,\n };\n}\n\nfunction collectRelatedGroup(\n related: AXPRelatedEntity,\n relatedByName: ReadonlyMap<string, AXPEntity>,\n pathPrefix: string,\n ancestry: ReadonlySet<string>,\n): AXPUserQueryEntityFieldGroup | null {\n if (related.hidden === true) {\n return null;\n }\n\n const entityName = related.entity?.trim();\n if (!entityName || ancestry.has(entityName)) {\n return null;\n }\n\n const relatedEntity = relatedByName.get(entityName);\n const dataPath = related.persistence?.dataPath?.trim() || entityName.split('.').pop() || entityName;\n const pathRoot = joinPath(pathPrefix, dataPath);\n const allowed = resolveAllowedPropertyNames(related, relatedEntity);\n const { host, lookups } = collectHostAndLookups(relatedEntity, pathRoot, allowed);\n\n const childAncestry = new Set(ancestry);\n childAncestry.add(entityName);\n\n const children: AXPUserQueryEntityFieldGroup[] = [...lookups];\n for (const nested of relatedEntity?.relatedEntities ?? []) {\n const child = collectRelatedGroup(nested, relatedByName, pathRoot, childAncestry);\n if (child) {\n children.push(child);\n }\n }\n\n if (!host.items.length && !children.length) {\n return null;\n }\n\n return {\n id: `rel_${sanitizeGroupId(pathRoot)}`,\n kind: 'relation',\n title: related.title,\n fallback: entityName,\n items: host.items,\n children: children.length ? children : undefined,\n };\n}\n\nfunction resolveAllowedPropertyNames(\n related: AXPRelatedEntity,\n relatedEntity: AXPEntity | undefined,\n): Set<string> | undefined {\n const excluded = new Set(\n (related.excludeProperties ?? [])\n .filter((name): name is string => typeof name === 'string')\n .map((name) => name.trim())\n .filter(Boolean),\n );\n\n const fromConfig = Array.isArray(related.properties)\n ? related.properties.filter((name): name is string => typeof name === 'string' && name.trim().length > 0)\n : [];\n\n if (fromConfig.length) {\n return new Set(fromConfig.map((name) => name.trim()).filter((name) => name.toLowerCase() !== 'id' && !excluded.has(name)));\n }\n\n if (!excluded.size) {\n return undefined;\n }\n\n const names = (relatedEntity?.properties ?? [])\n .map((property) => property.name?.trim() ?? '')\n .filter((name) => name && name.toLowerCase() !== 'id' && !excluded.has(name));\n return new Set(names);\n}\n\nfunction resolveFilterWidget(property: AXPEntityProperty): string {\n const widgetType = typeof property.schema?.interface?.type === 'string' ? property.schema.interface.type : '';\n if (LOOKUP_WIDGET_TYPES.has(widgetType)) {\n return 'lookup-filter';\n }\n\n const dataType = String(property.schema?.dataType ?? '').toLowerCase();\n const widget = widgetType.toLowerCase();\n if (dataType === 'number' || widget.includes('number')) {\n return 'number-filter';\n }\n if (dataType === 'boolean' || widget.includes('check') || widget.includes('toggle')) {\n return 'boolean-filter';\n }\n if (dataType === 'date' || widget.includes('date')) {\n return 'datetime-filter';\n }\n return 'string-filter';\n}\n\nfunction isLookupProperty(property: AXPEntityProperty): boolean {\n const iface = property.schema?.interface;\n const opts = iface?.options;\n const lookupEntity = typeof opts?.['entity'] === 'string' ? String(opts['entity']).trim() : '';\n if (!lookupEntity) {\n return false;\n }\n\n const widgetType = typeof iface?.type === 'string' ? iface.type : '';\n if (LOOKUP_WIDGET_TYPES.has(widgetType)) {\n return true;\n }\n\n return /(Ids|IDs|Id|ID)$/i.test(property.name);\n}\n\nfunction joinPath(prefix: string, segment: string): string {\n return prefix ? `${prefix}.${segment}` : segment;\n}\n\nfunction sanitizeGroupId(value: string): string {\n return value.replace(/[^a-zA-Z0-9]+/g, '_').replace(/^_|_$/g, '');\n}\n\n//#endregion\n\n","//#region ----- Imports -----\n\nimport type { AXPEntityAggregateMeasure, AXPEntityAggregateReducerType } from '@acorex-platform/framework-shared/entity';\nimport {\n AXP_QUERY_DEFAULT_COLLECTION_PAGING,\n type AXPQueryColumnDefinition,\n type AXPQueryCollectionBinding,\n type AXPQueryFilterDefinition,\n type AXPQueryFilterSection,\n type AXPQueryKind,\n type AXPQueryPagingSection,\n type AXPQuerySortDefinition,\n type AXPQuerySortSection,\n type AXPQueryValueType,\n} from '@acorex-platform/framework-shared/runtime';\n\nimport { isNumericUserQueryField, normalizeSelectedFieldPaths, withRequiredIdField } from './create-user-query-entity-fields.util';\nimport type {\n AXPUserQueryContractCapabilities,\n AXPUserQueryContractValidationError,\n AXPUserQueryEntityFieldGroupView,\n AXPUserQueryEntityFieldItem,\n AXPUserQueryWizardContract,\n} from './create-user-query.types';\n\n//#endregion\n\n//#region ----- Constants -----\n\nconst TEXT_FIELD_PREFERENCE = ['title', 'name', 'displayName', 'code'] as const;\n\nconst FIELD_INTERFACE = { name: 'text-editor' } as const;\n\nconst VALUE_REDUCERS: readonly AXPEntityAggregateReducerType[] = ['count', 'sum', 'min', 'max', 'avg'];\n\nexport const DEFAULT_USER_QUERY_MEASURE: AXPEntityAggregateMeasure = {\n reducer: 'count',\n alias: 'value',\n};\n\nexport const DEFAULT_USER_QUERY_PAGING = {\n enabled: true as const,\n definition: { ...AXP_QUERY_DEFAULT_COLLECTION_PAGING },\n} satisfies AXPQueryPagingSection;\n\n//#endregion\n\n//#region ----- Public API -----\n\nexport function suggestedUserQueryName(entityFullName: string): string {\n const trimmed = entityFullName.trim();\n return trimmed ? `UserQuery:${trimmed}` : '';\n}\n\nexport function flattenEntityFieldItems(groups: AXPUserQueryEntityFieldGroupView[]): AXPUserQueryEntityFieldItem[] {\n const items: AXPUserQueryEntityFieldItem[] = [];\n const walk = (group: AXPUserQueryEntityFieldGroupView): void => {\n items.push(...group.items);\n for (const child of group.children ?? []) {\n walk(child);\n }\n };\n for (const group of groups) {\n walk(group);\n }\n return items;\n}\n\nexport function selectedFieldPathsFromGroups(\n fieldGroups: Record<string, string[]> | undefined,\n): string[] {\n if (!fieldGroups) {\n return withRequiredIdField([]);\n }\n\n const paths: string[] = [];\n for (const value of Object.values(fieldGroups)) {\n paths.push(...normalizeSelectedFieldPaths(value));\n }\n return withRequiredIdField(paths);\n}\n\nexport function resolveAvailableContractFields(\n allFields: AXPUserQueryEntityFieldItem[],\n selectedPaths: string[],\n): AXPUserQueryEntityFieldItem[] {\n const ordered = withRequiredIdField(selectedPaths);\n const byPath = new Map(allFields.map((field) => [field.path, field]));\n return ordered.map((path) => byPath.get(path) ?? { path, text: path });\n}\n\nexport function defaultContractBinding(fields: AXPUserQueryEntityFieldItem[]): AXPQueryCollectionBinding {\n const paths = fields.map((field) => field.path);\n const valueField = paths.includes('id') ? 'id' : (paths[0] ?? 'id');\n const preferred = TEXT_FIELD_PREFERENCE.find((name) => paths.includes(name) && name !== valueField);\n const textField = preferred ?? paths.find((path) => path !== valueField) ?? valueField;\n return { valueField, textField };\n}\n\nexport function toFilterDefinitions(fields: AXPUserQueryEntityFieldItem[]): AXPQueryFilterDefinition[] {\n return fields.map((field) => ({\n name: field.path,\n title: field.text || field.path,\n source: 'field',\n field: field.path,\n interface: FIELD_INTERFACE,\n }));\n}\n\nexport function toSortDefinitions(fields: AXPUserQueryEntityFieldItem[]): AXPQuerySortDefinition[] {\n return fields.map((field) => ({\n name: field.path,\n title: field.text || field.path,\n source: 'field',\n field: field.path,\n directions: ['asc', 'desc'],\n }));\n}\n\nexport function toColumnDefinitions(fields: AXPUserQueryEntityFieldItem[]): AXPQueryColumnDefinition[] {\n return fields.map((field) => ({\n name: field.path,\n title: field.text || field.path,\n interface: FIELD_INTERFACE,\n }));\n}\n\nexport function toFilterSection(fields: AXPUserQueryEntityFieldItem[]): AXPQueryFilterSection {\n if (fields.length === 0) {\n return { enabled: false };\n }\n return { enabled: true, definition: toFilterDefinitions(fields) };\n}\n\nexport function toSortSection(fields: AXPUserQueryEntityFieldItem[]): AXPQuerySortSection {\n if (fields.length === 0) {\n return { enabled: false };\n }\n return { enabled: true, definition: toSortDefinitions(fields) };\n}\n\nexport function pathsFromFilterSection(section: AXPQueryFilterSection | undefined): string[] {\n if (!section?.enabled) {\n return [];\n }\n return section.definition.map((item) => item.field ?? item.name).filter((path) => path.trim().length > 0);\n}\n\nexport function pathsFromSortSection(section: AXPQuerySortSection | undefined): string[] {\n if (!section?.enabled) {\n return [];\n }\n return section.definition.map((item) => item.field ?? item.name).filter((path) => path.trim().length > 0);\n}\n\nexport function createDefaultContractCapabilities(\n available: AXPUserQueryEntityFieldItem[],\n): AXPUserQueryContractCapabilities {\n return {\n filter: { enabled: false },\n sort: toSortSection(available),\n paging: { enabled: true, definition: { ...AXP_QUERY_DEFAULT_COLLECTION_PAGING } },\n binding: defaultContractBinding(available),\n };\n}\n\nexport function normalizeUserQueryKind(value: unknown): AXPQueryKind {\n return value === 'value' || value === 'object' || value === 'collection' ? value : 'collection';\n}\n\nexport function normalizeUserQueryValueType(value: unknown): AXPQueryValueType {\n return value === 'string' ||\n value === 'number' ||\n value === 'boolean' ||\n value === 'date' ||\n value === 'datetime' ||\n value === 'json'\n ? value\n : 'string';\n}\n\nexport function isCollectionQueryKind(value: unknown): value is 'collection' {\n return normalizeUserQueryKind(value) === 'collection';\n}\n\nexport function isValueQueryKind(value: unknown): value is 'value' {\n return normalizeUserQueryKind(value) === 'value';\n}\n\nexport function normalizeUserQueryMeasure(\n value: unknown,\n available: AXPUserQueryEntityFieldItem[],\n): AXPEntityAggregateMeasure {\n const record = value != null && typeof value === 'object' ? (value as Record<string, unknown>) : {};\n const reducer = VALUE_REDUCERS.includes(record['reducer'] as AXPEntityAggregateReducerType)\n ? (record['reducer'] as AXPEntityAggregateReducerType)\n : 'count';\n if (reducer === 'count') {\n return { reducer: 'count', alias: 'value' };\n }\n\n const numeric = available.filter(isNumericUserQueryField);\n const field = typeof record['field'] === 'string' ? record['field'].trim() : '';\n const availableSet = new Set(numeric.map((item) => item.path));\n const resolved = availableSet.has(field) ? field : (numeric[0]?.path ?? '');\n return { reducer, field: resolved, alias: 'value' };\n}\n\nexport function createDefaultEntityContract(\n entityName: string,\n available: AXPUserQueryEntityFieldItem[],\n): AXPUserQueryWizardContract {\n return {\n name: suggestedUserQueryName(entityName),\n catalogTitle: entityName,\n description: '',\n kind: 'collection',\n executionMode: 'backend',\n columns: toColumnDefinitions(available),\n capabilities: createDefaultContractCapabilities(available),\n valueType: 'number',\n measure: { ...DEFAULT_USER_QUERY_MEASURE },\n };\n}\n\nexport function reconcileContractCapabilities(\n current: AXPUserQueryContractCapabilities | undefined,\n available: AXPUserQueryEntityFieldItem[],\n previousAvailablePaths: string[] = [],\n): AXPUserQueryContractCapabilities {\n const defaults = createDefaultContractCapabilities(available);\n if (!current) {\n return defaults;\n }\n\n const availableByPath = new Map(available.map((field) => [field.path, field]));\n const availablePaths = available.map((field) => field.path);\n const availableSet = new Set(availablePaths);\n\n const wasFilterAll = samePathSet(pathsFromFilterSection(current.filter), previousAvailablePaths);\n const wasSortAll = samePathSet(pathsFromSortSection(current.sort), previousAvailablePaths);\n\n const filterPaths = wasFilterAll\n ? availablePaths\n : pathsFromFilterSection(current.filter).filter((path) => availableSet.has(path));\n const sortPaths = wasSortAll\n ? availablePaths\n : pathsFromSortSection(current.sort).filter((path) => availableSet.has(path));\n\n const binding = reconcileBinding(current.binding, availableSet, defaults.binding);\n\n return {\n filter: toFilterSection(filterPaths.map((path) => availableByPath.get(path) ?? { path, text: path })),\n sort: toSortSection(sortPaths.map((path) => availableByPath.get(path) ?? { path, text: path })),\n paging: current.paging?.enabled\n ? {\n enabled: true,\n definition: { ...AXP_QUERY_DEFAULT_COLLECTION_PAGING, ...(current.paging.definition ?? {}) },\n }\n : { enabled: false },\n binding,\n };\n}\n\nexport function assembleEntityQueryContract(\n identity: Pick<AXPUserQueryWizardContract, 'name' | 'catalogTitle' | 'description'> & {\n kind?: AXPQueryKind;\n valueType?: AXPQueryValueType;\n measure?: AXPEntityAggregateMeasure;\n },\n capabilities: AXPUserQueryContractCapabilities | undefined,\n selectedFields: AXPUserQueryEntityFieldItem[],\n): AXPUserQueryWizardContract {\n const kind = normalizeUserQueryKind(identity.kind);\n const nextCapabilities = capabilitiesForKind(kind, capabilities, selectedFields);\n const contract: AXPUserQueryWizardContract = {\n name: identity.name?.trim() ?? '',\n catalogTitle: identity.catalogTitle?.trim() ?? '',\n description: identity.description?.trim() || undefined,\n kind,\n executionMode: 'backend',\n capabilities: nextCapabilities,\n };\n\n if (kind === 'value') {\n return {\n ...contract,\n valueType: identity.valueType ? normalizeUserQueryValueType(identity.valueType) : 'number',\n measure: normalizeUserQueryMeasure(identity.measure, selectedFields),\n };\n }\n\n return {\n ...contract,\n columns: toColumnDefinitions(selectedFields),\n };\n}\n\nexport function validateEntityQueryContract(\n contract: AXPUserQueryWizardContract | undefined,\n available: AXPUserQueryEntityFieldItem[],\n): AXPUserQueryContractValidationError | null {\n if (!contract?.name?.trim()) {\n return 'name';\n }\n if (!contract.catalogTitle?.trim()) {\n return 'title';\n }\n\n if (isValueQueryKind(contract.kind)) {\n const measure = normalizeUserQueryMeasure(contract.measure, available);\n if (measure.reducer !== 'count' && !measure.field) {\n return 'measure';\n }\n return null;\n }\n\n if (!isCollectionQueryKind(contract.kind)) {\n return null;\n }\n\n const paths = new Set(available.map((field) => field.path));\n const binding = contract.capabilities?.binding;\n if (!binding?.valueField || !binding.textField) {\n return 'binding';\n }\n if (!paths.has(binding.valueField) || !paths.has(binding.textField)) {\n return 'binding';\n }\n\n return null;\n}\n\nexport function formatContractCapabilitiesSummary(\n capabilities: AXPUserQueryContractCapabilities | null | undefined,\n): string {\n if (!capabilities) {\n return '';\n }\n\n const filterCount = pathsFromFilterSection(capabilities.filter).length;\n const sortCount = pathsFromSortSection(capabilities.sort).length;\n const paging = capabilities.paging?.enabled ? 'on' : 'off';\n const binding = capabilities.binding\n ? `${capabilities.binding.valueField}/${capabilities.binding.textField}`\n : '';\n\n return `filter ${filterCount}, sort ${sortCount}, paging ${paging}${binding ? `, ${binding}` : ''}`;\n}\n\n//#endregion\n\n//#region ----- Helpers -----\n\nfunction samePathSet(left: string[], right: string[]): boolean {\n if (left.length !== right.length) {\n return false;\n }\n const set = new Set(left);\n return right.every((path) => set.has(path));\n}\n\nfunction reconcileBinding(\n current: AXPQueryCollectionBinding | undefined,\n availableSet: Set<string>,\n fallback: AXPQueryCollectionBinding,\n): AXPQueryCollectionBinding {\n if (!current) {\n return fallback;\n }\n\n const valueField = availableSet.has(current.valueField) ? current.valueField : fallback.valueField;\n const textField = availableSet.has(current.textField) ? current.textField : fallback.textField;\n return { valueField, textField };\n}\n\nfunction capabilitiesForKind(\n kind: AXPQueryKind,\n current: AXPUserQueryContractCapabilities | undefined,\n available: AXPUserQueryEntityFieldItem[],\n): AXPUserQueryContractCapabilities {\n const full = current ?? createDefaultContractCapabilities(available);\n if (kind === 'collection') {\n return full;\n }\n\n return {\n filter: full.filter,\n sort: { enabled: false },\n paging: { enabled: false },\n binding: full.binding,\n };\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}