@c-rex/services 0.3.0-build.39 → 0.3.0-build.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +430 -147
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +411 -143
- package/dist/index.mjs.map +1 -1
- package/dist/metadata-visibility-policy.d.mts +29 -0
- package/dist/metadata-visibility-policy.d.ts +29 -0
- package/dist/metadata-visibility-policy.js +129 -0
- package/dist/metadata-visibility-policy.js.map +1 -0
- package/dist/metadata-visibility-policy.mjs +95 -0
- package/dist/metadata-visibility-policy.mjs.map +1 -0
- package/dist/read-models/index.d.mts +17 -39
- package/dist/read-models/index.d.ts +17 -39
- package/dist/read-models/index.js +430 -149
- package/dist/read-models/index.js.map +1 -1
- package/dist/read-models/index.mjs +410 -144
- package/dist/read-models/index.mjs.map +1 -1
- package/dist/read-models/metadata-display-builder.d.mts +34 -0
- package/dist/read-models/metadata-display-builder.d.ts +34 -0
- package/dist/read-models/metadata-display-builder.js +521 -0
- package/dist/read-models/metadata-display-builder.js.map +1 -0
- package/dist/read-models/metadata-display-builder.mjs +489 -0
- package/dist/read-models/metadata-display-builder.mjs.map +1 -0
- package/dist/read-models/metadata-presentation-config.js +2 -2
- package/dist/read-models/metadata-presentation-config.js.map +1 -1
- package/dist/read-models/metadata-presentation-config.mjs +2 -2
- package/dist/read-models/metadata-presentation-config.mjs.map +1 -1
- package/dist/read-models/metadata-view-profile.js +63 -4
- package/dist/read-models/metadata-view-profile.js.map +1 -1
- package/dist/read-models/metadata-view-profile.mjs +63 -4
- package/dist/read-models/metadata-view-profile.mjs.map +1 -1
- package/package.json +19 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/read-models/metadata-presentation-config.ts","../../src/read-models/metadata-visibility-policy.ts","../../src/read-models/metadata-display-builder.ts"],"sourcesContent":["import type { InformationUnitModel } from \"@c-rex/interfaces\";\r\n\r\nexport type InformationUnitPropertyKey = keyof InformationUnitModel;\r\n\r\n/**\r\n * Describes the raw shape of a metadata property value in InformationUnitModel.\r\n * This drives generic rendering/grouping logic without coupling to one concrete UI control.\r\n */\r\nexport type MetadataValueKind =\r\n /** Primitive scalar (string/number/date-like value). */\r\n | \"scalar\"\r\n /** Array of localized literals ({ language, value }). */\r\n | \"literalArray\"\r\n /** Array of primitive strings. */\r\n | \"stringArray\"\r\n /** Single ObjectRef relation. */\r\n | \"objectRef\"\r\n /** Multiple ObjectRef relations. */\r\n | \"objectRefArray\"\r\n /** Array of API resource links. */\r\n | \"resourceLinkArray\"\r\n /** Array of rendition entries. */\r\n | \"renditionArray\";\r\n\r\n/**\r\n * Defines how facet search sections are derived for one metadata property.\r\n */\r\nexport type FacetSectionStrategy = \"none\" | \"class\" | \"partyRole\";\r\n\r\n/**\r\n * Defines how generic metadata display sections are derived (property grid, card metadata, etc.).\r\n * Name is intentionally control-agnostic and not tied to InformationUnitMetadataGrid.\r\n */\r\nexport type MetadataDisplaySectionStrategy = \"none\" | \"class\" | \"partyRole\";\r\n\r\n/**\r\n * Central presentation contract for one InformationUnit metadata property.\r\n * - facet: behavior for facet search grouping.\r\n * - metadataDisplay: behavior for generic metadata rendering components.\r\n */\r\nexport type MetadataPropertyPresentationConfig = {\r\n /** Raw value shape from API model. */\r\n valueKind: MetadataValueKind;\r\n facet: {\r\n /** If false, property is not used as facet dimension. */\r\n supported: boolean;\r\n /**\r\n * How facet sections are built:\r\n * - \"none\": keep the property as one flat facet group (no additional taxonomy section split).\r\n * - \"class\": split entries by their class label.\r\n * - \"partyRole\": split entries by party role label.\r\n */\r\n sectionStrategy: FacetSectionStrategy;\r\n };\r\n metadataDisplay: {\r\n /** If false, property is not rendered in generic metadata displays. */\r\n supported: boolean;\r\n /**\r\n * How metadata sections are built in generic displays:\r\n * - \"none\": keep one property row/group.\r\n * - \"class\": split/group by class label.\r\n * - \"partyRole\": split/group by party role label.\r\n */\r\n sectionStrategy: MetadataDisplaySectionStrategy;\r\n };\r\n};\r\n\r\n/**\r\n * Central presentation rules for all InformationUnitModel properties.\r\n * This is the single source of truth for facet grouping and generic metadata display behavior.\r\n */\r\nexport const INFORMATION_UNIT_PROPERTY_PRESENTATION: Record<\r\n InformationUnitPropertyKey,\r\n MetadataPropertyPresentationConfig\r\n> = {\r\n id: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n shortId: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n score: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n class: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"class\" },\r\n },\r\n labels: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n comments: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n descriptions: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n synonyms: {\r\n valueKind: \"stringArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n packages: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n hasInformationUnits: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n links: {\r\n valueKind: \"resourceLinkArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n revision: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n created: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n modified: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n abstract: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n replaces: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n versionOf: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n titles: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n languages: {\r\n valueKind: \"stringArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n parties: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"partyRole\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"partyRole\" },\r\n },\r\n renditions: {\r\n valueKind: \"renditionArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n identities: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n components: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n informationSubjects: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n topicTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n documentTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n directoryNodes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n contentLifeCycleStatus: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n applicableForTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n planningTimes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n events: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n functionalMetadata: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n informationUnits: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n productFeatures: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productLifeCyclePhases: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productMetadata: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productVariants: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n qualifications: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n supplies: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n};\r\n\r\n","import { InformationUnitPropertyKey } from \"./metadata-presentation-config\";\r\n\r\nexport type MetadataCacheFamily =\r\n | \"components\"\r\n | \"informationSubjects\"\r\n | \"documentTypes\"\r\n | \"topicTypes\"\r\n | \"contentLifeCycleStatus\"\r\n | \"planningTimes\"\r\n | \"functionalMetadata\"\r\n | \"productFeatures\"\r\n | \"productLifeCyclePhases\"\r\n | \"productMetadata\"\r\n | \"productVariants\"\r\n | \"qualifications\"\r\n | \"supplies\"\r\n | \"parties\";\r\n\r\nexport type MetadataPropertyVisibilityPolicy = {\r\n cacheFamily?: MetadataCacheFamily;\r\n deniedClassIds?: string[];\r\n deniedPartyRoleIds?: string[];\r\n};\r\n\r\nconst CONTENT_LICENSE_CLASS_ID = \"https://ids.c-crex.net/ns/iirds/ext#ContentLicense\";\r\n\r\nexport const METADATA_VISIBILITY_POLICY: Partial<Record<InformationUnitPropertyKey, MetadataPropertyVisibilityPolicy>> = {\r\n parties: {\r\n cacheFamily: \"parties\",\r\n },\r\n components: {\r\n cacheFamily: \"components\",\r\n },\r\n informationSubjects: {\r\n cacheFamily: \"informationSubjects\",\r\n },\r\n topicTypes: {\r\n cacheFamily: \"topicTypes\",\r\n },\r\n documentTypes: {\r\n cacheFamily: \"documentTypes\",\r\n },\r\n contentLifeCycleStatus: {\r\n cacheFamily: \"contentLifeCycleStatus\",\r\n },\r\n applicableForTypes: {\r\n cacheFamily: \"documentTypes\",\r\n },\r\n planningTimes: {\r\n cacheFamily: \"planningTimes\",\r\n },\r\n functionalMetadata: {\r\n cacheFamily: \"functionalMetadata\",\r\n },\r\n productFeatures: {\r\n cacheFamily: \"productFeatures\",\r\n },\r\n productLifeCyclePhases: {\r\n cacheFamily: \"productLifeCyclePhases\",\r\n },\r\n productMetadata: {\r\n cacheFamily: \"productMetadata\",\r\n },\r\n productVariants: {\r\n cacheFamily: \"productVariants\",\r\n },\r\n qualifications: {\r\n cacheFamily: \"qualifications\",\r\n deniedClassIds: [CONTENT_LICENSE_CLASS_ID],\r\n },\r\n supplies: {\r\n cacheFamily: \"supplies\",\r\n },\r\n};\r\n\r\ntype RuntimeSuppressionEntry = {\r\n reason: \"cache-overflow\";\r\n family: MetadataCacheFamily;\r\n bytes: number;\r\n limitBytes: number;\r\n timestamp: string;\r\n};\r\n\r\nconst runtimeSuppressedFamilies = new Map<MetadataCacheFamily, RuntimeSuppressionEntry>();\r\n\r\nexport const getMetadataCacheFamily = (\r\n property: InformationUnitPropertyKey\r\n): MetadataCacheFamily | undefined => METADATA_VISIBILITY_POLICY[property]?.cacheFamily;\r\n\r\nexport const isMetadataGroupDenied = (\r\n property: InformationUnitPropertyKey,\r\n options: { classId?: string | null; partyRoleId?: string | null }\r\n): boolean => {\r\n const policy = METADATA_VISIBILITY_POLICY[property];\r\n const classId = options.classId?.trim();\r\n const partyRoleId = options.partyRoleId?.trim();\r\n\r\n if (classId && policy?.deniedClassIds?.includes(classId)) {\r\n return true;\r\n }\r\n\r\n if (partyRoleId && policy?.deniedPartyRoleIds?.includes(partyRoleId)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const suppressMetadataCacheFamilyRuntime = (\r\n family: MetadataCacheFamily,\r\n entry: Omit<RuntimeSuppressionEntry, \"family\" | \"reason\" | \"timestamp\">\r\n) => {\r\n runtimeSuppressedFamilies.set(family, {\r\n family,\r\n reason: \"cache-overflow\",\r\n bytes: entry.bytes,\r\n limitBytes: entry.limitBytes,\r\n timestamp: new Date().toISOString(),\r\n });\r\n};\r\n\r\nexport const clearMetadataCacheFamilyRuntimeSuppression = (family: MetadataCacheFamily) => {\r\n runtimeSuppressedFamilies.delete(family);\r\n};\r\n\r\nexport const isMetadataPropertyRuntimeSuppressed = (property: InformationUnitPropertyKey): boolean => {\r\n const family = getMetadataCacheFamily(property);\r\n return family ? runtimeSuppressedFamilies.has(family) : false;\r\n};\r\n\r\nexport const getRuntimeSuppressedMetadataFamilies = (): RuntimeSuppressionEntry[] =>\r\n Array.from(runtimeSuppressedFamilies.values());\r\n\r\nexport const resetRuntimeSuppressedMetadataFamiliesForTests = () => {\r\n runtimeSuppressedFamilies.clear();\r\n};\r\n","import { InformationUnitModel, LiteralModel, ObjectRefModel, RenditionModel } from \"@c-rex/interfaces\";\r\nimport {\r\n INFORMATION_UNIT_PROPERTY_PRESENTATION,\r\n InformationUnitPropertyKey,\r\n MetadataDisplaySectionStrategy,\r\n} from \"./metadata-presentation-config\";\r\nimport { isMetadataGroupDenied, isMetadataPropertyRuntimeSuppressed } from \"./metadata-visibility-policy\";\r\n\r\nexport type MetadataFacetPresentationItem = {\r\n label: string;\r\n groupLabel?: string;\r\n sectionLabel?: string;\r\n hidden?: boolean;\r\n};\r\n\r\nexport type MetadataFacetPresentation = Partial<\r\n Record<InformationUnitPropertyKey, Record<string, MetadataFacetPresentationItem>>\r\n>;\r\n\r\nexport type MetadataFacetLabelOverride = MetadataFacetPresentationItem;\r\nexport type MetadataFacetLabelOverrides = MetadataFacetPresentation;\r\n\r\nexport type MetadataDisplayRow = {\r\n key: InformationUnitPropertyKey;\r\n label: string;\r\n labelSource: \"translationKey\" | \"direct\";\r\n values: string[];\r\n valueType?: \"text\" | \"language\" | \"rendition\";\r\n renditions?: RenditionModel[];\r\n};\r\n\r\ntype BuildMetadataDisplayRowsOptions = {\r\n uiLanguage: string;\r\n includeProperties: InformationUnitPropertyKey[];\r\n presentation?: MetadataFacetPresentation;\r\n overrides?: MetadataFacetPresentation;\r\n};\r\n\r\nconst DEFAULT_IGNORED_FORMATS = [\r\n \"application/xhtml+xml\",\r\n \"application/json\",\r\n \"application/llm+xml\",\r\n \"text/html\",\r\n];\r\n\r\nconst normalizeLanguageCode = (value: string): string => {\r\n const trimmed = value.trim();\r\n if (!trimmed) return trimmed;\r\n\r\n const [rawLang, rawCountry, ...rest] = trimmed.split(\"-\");\r\n const lang = (rawLang || \"\").toLowerCase();\r\n\r\n if (!rawCountry) return lang;\r\n\r\n const country = rawCountry.toUpperCase();\r\n const suffix = rest.length > 0 ? `-${rest.join(\"-\")}` : \"\";\r\n return `${lang}-${country}${suffix}`;\r\n};\r\n\r\nconst sortAndDeduplicateLanguages = (languages: Array<string | null | undefined>): string[] => {\r\n const normalized = languages\r\n .map((item) => (item || \"\").trim())\r\n .filter((item): item is string => item.length > 0)\r\n .map((item) => normalizeLanguageCode(item));\r\n\r\n return Array.from(new Set(normalized)).sort((a, b) => a.localeCompare(b));\r\n};\r\n\r\nconst resolvePreferredLanguage = (\r\n languages: string[] | null | undefined,\r\n uiLanguage: string\r\n): string | undefined => {\r\n if (!languages || languages.length === 0) return undefined;\r\n\r\n const normalizedUiLanguage = normalizeLanguageCode(uiLanguage);\r\n const baseLanguage = normalizedUiLanguage.split(\"-\")[0];\r\n const normalized = sortAndDeduplicateLanguages(languages);\r\n\r\n const exact = normalized.find((item) => item === normalizedUiLanguage);\r\n if (exact) return exact;\r\n\r\n const base = normalized.find((item) => item === baseLanguage || item.startsWith(`${baseLanguage}-`));\r\n if (base) return base;\r\n\r\n const english = normalized.find((item) => item === \"en\" || item === \"en-US\" || item.startsWith(\"en-\"));\r\n if (english) return english;\r\n\r\n return normalized[0];\r\n};\r\n\r\nconst getFirstLinkByRel = (item: RenditionModel, rel: string) =>\r\n item.links?.find((link) => link.rel === rel)?.href;\r\n\r\nconst hasRenderableFileRenditions = (renditions?: RenditionModel[] | null): boolean => {\r\n if (!renditions || renditions.length === 0) return false;\r\n\r\n return renditions.some((item) => {\r\n if (!item.format || DEFAULT_IGNORED_FORMATS.includes(item.format)) return false;\r\n return Boolean(getFirstLinkByRel(item, \"download\") || getFirstLinkByRel(item, \"view\"));\r\n });\r\n};\r\n\r\nexport const resolveLiteralLabel = (labels?: LiteralModel[] | null, uiLanguage?: string): string | undefined => {\r\n if (!labels || labels.length === 0) return undefined;\r\n const language = uiLanguage || \"en\";\r\n const preferred = resolvePreferredLanguage(\r\n labels.map((item) => item.language || \"\"),\r\n language\r\n );\r\n if (preferred) {\r\n const exact = labels.find((item) => item.language === preferred)?.value;\r\n if (exact) return exact;\r\n }\r\n return labels.find((item) => item.value)?.value || undefined;\r\n};\r\n\r\nexport const resolveObjectRefLabel = (item: ObjectRefModel, uiLanguage: string): string | undefined => {\r\n return resolveLiteralLabel(item.labels || [], uiLanguage) || item.shortId || item.id || undefined;\r\n};\r\n\r\nexport const resolveObjectRefClassLabel = (item: ObjectRefModel, uiLanguage: string): string | undefined => {\r\n return resolveLiteralLabel(item.class?.labels || [], uiLanguage)\r\n || item.class?.shortId\r\n || item.class?.id\r\n || undefined;\r\n};\r\n\r\nconst asObjectRefArray = (value: unknown): ObjectRefModel[] => {\r\n if (!Array.isArray(value)) return [];\r\n return value.filter((item): item is ObjectRefModel => Boolean(item && typeof item === \"object\"));\r\n};\r\n\r\nconst asLiteralArray = (value: unknown): LiteralModel[] => {\r\n if (!Array.isArray(value)) return [];\r\n return value.filter((item): item is LiteralModel => Boolean(item && typeof item === \"object\"));\r\n};\r\n\r\nconst shouldUseFacetPresentation = (strategy: MetadataDisplaySectionStrategy): boolean => {\r\n return strategy === \"class\" || strategy === \"partyRole\";\r\n};\r\n\r\nexport const resolveFacetPresentationProperties = (\r\n includeProperties: InformationUnitPropertyKey[]\r\n): InformationUnitPropertyKey[] => {\r\n return includeProperties.filter((key) => {\r\n const config = INFORMATION_UNIT_PROPERTY_PRESENTATION[key];\r\n if (!config?.metadataDisplay?.supported) return false;\r\n if (config.valueKind !== \"objectRefArray\" && config.valueKind !== \"objectRef\") return false;\r\n return shouldUseFacetPresentation(config.metadataDisplay.sectionStrategy);\r\n });\r\n};\r\n\r\nexport const resolveOverrideProperties = resolveFacetPresentationProperties;\r\n\r\nexport const buildMetadataDisplayRows = (\r\n data: InformationUnitModel,\r\n options: BuildMetadataDisplayRowsOptions\r\n): MetadataDisplayRow[] => {\r\n const uiLanguage = options.uiLanguage;\r\n const preferredTitle = resolveLiteralLabel(data.titles || [], uiLanguage) || resolveLiteralLabel(data.labels || [], uiLanguage);\r\n const rows: MetadataDisplayRow[] = [];\r\n\r\n for (const key of options.includeProperties) {\r\n const config = INFORMATION_UNIT_PROPERTY_PRESENTATION[key];\r\n if (!config?.metadataDisplay?.supported) continue;\r\n if (isMetadataPropertyRuntimeSuppressed(key)) continue;\r\n\r\n if (key === \"labels\") continue;\r\n\r\n if (key === \"titles\") {\r\n if (preferredTitle) {\r\n rows.push({\r\n key,\r\n label: key,\r\n labelSource: \"translationKey\",\r\n values: [preferredTitle],\r\n valueType: \"text\",\r\n });\r\n }\r\n continue;\r\n }\r\n\r\n const value = data[key];\r\n if (value === null || value === undefined) continue;\r\n\r\n if (key === \"languages\") {\r\n const languages = sortAndDeduplicateLanguages((value as string[]) || []);\r\n if (languages.length > 0) {\r\n rows.push({\r\n key,\r\n label: key,\r\n labelSource: \"translationKey\",\r\n values: languages,\r\n valueType: \"language\",\r\n });\r\n }\r\n continue;\r\n }\r\n\r\n if (config.valueKind === \"scalar\") {\r\n rows.push({\r\n key,\r\n label: key,\r\n labelSource: \"translationKey\",\r\n values: [String(value)],\r\n valueType: \"text\",\r\n });\r\n continue;\r\n }\r\n\r\n if (config.valueKind === \"stringArray\") {\r\n const values = Array.from(new Set((value as string[]).map((item) => String(item)).filter(Boolean)));\r\n if (values.length > 0) {\r\n rows.push({\r\n key,\r\n label: key,\r\n labelSource: \"translationKey\",\r\n values,\r\n valueType: \"text\",\r\n });\r\n }\r\n continue;\r\n }\r\n\r\n if (config.valueKind === \"literalArray\") {\r\n const preferred = resolveLiteralLabel(asLiteralArray(value), uiLanguage);\r\n if (preferred) {\r\n rows.push({\r\n key,\r\n label: key,\r\n labelSource: \"translationKey\",\r\n values: [preferred],\r\n valueType: \"text\",\r\n });\r\n }\r\n continue;\r\n }\r\n\r\n if (config.valueKind === \"objectRef\") {\r\n const label = resolveObjectRefLabel(value as ObjectRefModel, uiLanguage);\r\n if (label) {\r\n rows.push({\r\n key,\r\n label: key,\r\n labelSource: \"translationKey\",\r\n values: [label],\r\n valueType: \"text\",\r\n });\r\n }\r\n continue;\r\n }\r\n\r\n if (config.valueKind === \"objectRefArray\") {\r\n const refs = asObjectRefArray(value);\r\n if (refs.length === 0) continue;\r\n\r\n const groupedValues = new Map<string, Set<string>>();\r\n\r\n refs.forEach((ref) => {\r\n const shortId = ref.shortId || \"\";\r\n const presentationMap = (options.presentation || options.overrides)?.[key];\r\n const presentationItem = (shortId ? presentationMap?.[shortId] : undefined)\r\n || (ref.id ? presentationMap?.[ref.id] : undefined);\r\n if (presentationItem?.hidden) return;\r\n if (isMetadataGroupDenied(key, { classId: ref.class?.id })) return;\r\n const valueLabel = presentationItem?.label || resolveObjectRefLabel(ref, uiLanguage);\r\n if (!valueLabel) return;\r\n\r\n const sectionLabel = config.metadataDisplay.sectionStrategy === \"none\"\r\n ? key\r\n : presentationItem?.sectionLabel || resolveObjectRefClassLabel(ref, uiLanguage) || key;\r\n\r\n const existing = groupedValues.get(sectionLabel) || new Set<string>();\r\n existing.add(valueLabel);\r\n groupedValues.set(sectionLabel, existing);\r\n });\r\n\r\n Array.from(groupedValues.entries())\r\n .sort(([left], [right]) => left.localeCompare(right))\r\n .forEach(([sectionLabel, valueSet]) => {\r\n const values = Array.from(valueSet).sort((a, b) => a.localeCompare(b));\r\n if (values.length === 0) return;\r\n\r\n rows.push({\r\n key,\r\n label: sectionLabel,\r\n labelSource: sectionLabel === key ? \"translationKey\" : \"direct\",\r\n values,\r\n valueType: \"text\",\r\n });\r\n });\r\n continue;\r\n }\r\n\r\n if (config.valueKind === \"renditionArray\") {\r\n const renditions = Array.isArray(value)\r\n ? value.filter((item): item is RenditionModel => Boolean(item && typeof item === \"object\"))\r\n : [];\r\n if (renditions.length === 0) continue;\r\n if (!hasRenderableFileRenditions(renditions)) continue;\r\n\r\n rows.push({\r\n key,\r\n label: \"files\",\r\n labelSource: \"translationKey\",\r\n values: [],\r\n valueType: \"rendition\",\r\n renditions,\r\n });\r\n }\r\n }\r\n\r\n return rows;\r\n};\r\n"],"mappings":"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","names":[]}
|
|
@@ -166,8 +166,8 @@ var INFORMATION_UNIT_PROPERTY_PRESENTATION = {
|
|
|
166
166
|
},
|
|
167
167
|
applicableForTypes: {
|
|
168
168
|
valueKind: "objectRefArray",
|
|
169
|
-
facet: { supported: true, sectionStrategy: "
|
|
170
|
-
metadataDisplay: { supported: true, sectionStrategy: "
|
|
169
|
+
facet: { supported: true, sectionStrategy: "none" },
|
|
170
|
+
metadataDisplay: { supported: true, sectionStrategy: "none" }
|
|
171
171
|
},
|
|
172
172
|
planningTimes: {
|
|
173
173
|
valueKind: "objectRefArray",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/read-models/metadata-presentation-config.ts"],"sourcesContent":["import type { InformationUnitModel } from \"@c-rex/interfaces\";\r\n\r\nexport type InformationUnitPropertyKey = keyof InformationUnitModel;\r\n\r\n/**\r\n * Describes the raw shape of a metadata property value in InformationUnitModel.\r\n * This drives generic rendering/grouping logic without coupling to one concrete UI control.\r\n */\r\nexport type MetadataValueKind =\r\n /** Primitive scalar (string/number/date-like value). */\r\n | \"scalar\"\r\n /** Array of localized literals ({ language, value }). */\r\n | \"literalArray\"\r\n /** Array of primitive strings. */\r\n | \"stringArray\"\r\n /** Single ObjectRef relation. */\r\n | \"objectRef\"\r\n /** Multiple ObjectRef relations. */\r\n | \"objectRefArray\"\r\n /** Array of API resource links. */\r\n | \"resourceLinkArray\"\r\n /** Array of rendition entries. */\r\n | \"renditionArray\";\r\n\r\n/**\r\n * Defines how facet search sections are derived for one metadata property.\r\n */\r\nexport type FacetSectionStrategy = \"none\" | \"class\" | \"partyRole\";\r\n\r\n/**\r\n * Defines how generic metadata display sections are derived (property grid, card metadata, etc.).\r\n * Name is intentionally control-agnostic and not tied to InformationUnitMetadataGrid.\r\n */\r\nexport type MetadataDisplaySectionStrategy = \"none\" | \"class\" | \"partyRole\";\r\n\r\n/**\r\n * Central presentation contract for one InformationUnit metadata property.\r\n * - facet: behavior for facet search grouping.\r\n * - metadataDisplay: behavior for generic metadata rendering components.\r\n */\r\nexport type MetadataPropertyPresentationConfig = {\r\n /** Raw value shape from API model. */\r\n valueKind: MetadataValueKind;\r\n facet: {\r\n /** If false, property is not used as facet dimension. */\r\n supported: boolean;\r\n /**\r\n * How facet sections are built:\r\n * - \"none\": keep the property as one flat facet group (no additional taxonomy section split).\r\n * - \"class\": split entries by their class label.\r\n * - \"partyRole\": split entries by party role label.\r\n */\r\n sectionStrategy: FacetSectionStrategy;\r\n };\r\n metadataDisplay: {\r\n /** If false, property is not rendered in generic metadata displays. */\r\n supported: boolean;\r\n /**\r\n * How metadata sections are built in generic displays:\r\n * - \"none\": keep one property row/group.\r\n * - \"class\": split/group by class label.\r\n * - \"partyRole\": split/group by party role label.\r\n */\r\n sectionStrategy: MetadataDisplaySectionStrategy;\r\n };\r\n};\r\n\r\n/**\r\n * Central presentation rules for all InformationUnitModel properties.\r\n * This is the single source of truth for facet grouping and generic metadata display behavior.\r\n */\r\nexport const INFORMATION_UNIT_PROPERTY_PRESENTATION: Record<\r\n InformationUnitPropertyKey,\r\n MetadataPropertyPresentationConfig\r\n> = {\r\n id: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n shortId: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n score: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n class: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"class\" },\r\n },\r\n labels: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n comments: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n descriptions: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n synonyms: {\r\n valueKind: \"stringArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n packages: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n hasInformationUnits: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n links: {\r\n valueKind: \"resourceLinkArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n revision: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n created: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n modified: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n abstract: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n replaces: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n versionOf: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n titles: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n languages: {\r\n valueKind: \"stringArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n parties: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"partyRole\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"partyRole\" },\r\n },\r\n renditions: {\r\n valueKind: \"renditionArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n identities: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n components: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n informationSubjects: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n topicTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n documentTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n directoryNodes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n contentLifeCycleStatus: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n applicableForTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n planningTimes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n events: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n functionalMetadata: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n informationUnits: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n productFeatures: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productLifeCyclePhases: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productMetadata: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productVariants: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n qualifications: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n supplies: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n};\r\n\r\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/read-models/metadata-presentation-config.ts"],"sourcesContent":["import type { InformationUnitModel } from \"@c-rex/interfaces\";\r\n\r\nexport type InformationUnitPropertyKey = keyof InformationUnitModel;\r\n\r\n/**\r\n * Describes the raw shape of a metadata property value in InformationUnitModel.\r\n * This drives generic rendering/grouping logic without coupling to one concrete UI control.\r\n */\r\nexport type MetadataValueKind =\r\n /** Primitive scalar (string/number/date-like value). */\r\n | \"scalar\"\r\n /** Array of localized literals ({ language, value }). */\r\n | \"literalArray\"\r\n /** Array of primitive strings. */\r\n | \"stringArray\"\r\n /** Single ObjectRef relation. */\r\n | \"objectRef\"\r\n /** Multiple ObjectRef relations. */\r\n | \"objectRefArray\"\r\n /** Array of API resource links. */\r\n | \"resourceLinkArray\"\r\n /** Array of rendition entries. */\r\n | \"renditionArray\";\r\n\r\n/**\r\n * Defines how facet search sections are derived for one metadata property.\r\n */\r\nexport type FacetSectionStrategy = \"none\" | \"class\" | \"partyRole\";\r\n\r\n/**\r\n * Defines how generic metadata display sections are derived (property grid, card metadata, etc.).\r\n * Name is intentionally control-agnostic and not tied to InformationUnitMetadataGrid.\r\n */\r\nexport type MetadataDisplaySectionStrategy = \"none\" | \"class\" | \"partyRole\";\r\n\r\n/**\r\n * Central presentation contract for one InformationUnit metadata property.\r\n * - facet: behavior for facet search grouping.\r\n * - metadataDisplay: behavior for generic metadata rendering components.\r\n */\r\nexport type MetadataPropertyPresentationConfig = {\r\n /** Raw value shape from API model. */\r\n valueKind: MetadataValueKind;\r\n facet: {\r\n /** If false, property is not used as facet dimension. */\r\n supported: boolean;\r\n /**\r\n * How facet sections are built:\r\n * - \"none\": keep the property as one flat facet group (no additional taxonomy section split).\r\n * - \"class\": split entries by their class label.\r\n * - \"partyRole\": split entries by party role label.\r\n */\r\n sectionStrategy: FacetSectionStrategy;\r\n };\r\n metadataDisplay: {\r\n /** If false, property is not rendered in generic metadata displays. */\r\n supported: boolean;\r\n /**\r\n * How metadata sections are built in generic displays:\r\n * - \"none\": keep one property row/group.\r\n * - \"class\": split/group by class label.\r\n * - \"partyRole\": split/group by party role label.\r\n */\r\n sectionStrategy: MetadataDisplaySectionStrategy;\r\n };\r\n};\r\n\r\n/**\r\n * Central presentation rules for all InformationUnitModel properties.\r\n * This is the single source of truth for facet grouping and generic metadata display behavior.\r\n */\r\nexport const INFORMATION_UNIT_PROPERTY_PRESENTATION: Record<\r\n InformationUnitPropertyKey,\r\n MetadataPropertyPresentationConfig\r\n> = {\r\n id: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n shortId: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n score: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n class: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"class\" },\r\n },\r\n labels: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n comments: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n descriptions: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n synonyms: {\r\n valueKind: \"stringArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n packages: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n hasInformationUnits: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n links: {\r\n valueKind: \"resourceLinkArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n revision: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n created: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n modified: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n abstract: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n replaces: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n versionOf: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n titles: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n languages: {\r\n valueKind: \"stringArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n parties: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"partyRole\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"partyRole\" },\r\n },\r\n renditions: {\r\n valueKind: \"renditionArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n identities: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n components: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n informationSubjects: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n topicTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n documentTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n directoryNodes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n contentLifeCycleStatus: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n applicableForTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n planningTimes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n events: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n functionalMetadata: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n informationUnits: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n productFeatures: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productLifeCyclePhases: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productMetadata: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productVariants: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n qualifications: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n supplies: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n};\r\n\r\n"],"mappings":"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","names":[]}
|
|
@@ -142,8 +142,8 @@ var INFORMATION_UNIT_PROPERTY_PRESENTATION = {
|
|
|
142
142
|
},
|
|
143
143
|
applicableForTypes: {
|
|
144
144
|
valueKind: "objectRefArray",
|
|
145
|
-
facet: { supported: true, sectionStrategy: "
|
|
146
|
-
metadataDisplay: { supported: true, sectionStrategy: "
|
|
145
|
+
facet: { supported: true, sectionStrategy: "none" },
|
|
146
|
+
metadataDisplay: { supported: true, sectionStrategy: "none" }
|
|
147
147
|
},
|
|
148
148
|
planningTimes: {
|
|
149
149
|
valueKind: "objectRefArray",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/read-models/metadata-presentation-config.ts"],"sourcesContent":["import type { InformationUnitModel } from \"@c-rex/interfaces\";\r\n\r\nexport type InformationUnitPropertyKey = keyof InformationUnitModel;\r\n\r\n/**\r\n * Describes the raw shape of a metadata property value in InformationUnitModel.\r\n * This drives generic rendering/grouping logic without coupling to one concrete UI control.\r\n */\r\nexport type MetadataValueKind =\r\n /** Primitive scalar (string/number/date-like value). */\r\n | \"scalar\"\r\n /** Array of localized literals ({ language, value }). */\r\n | \"literalArray\"\r\n /** Array of primitive strings. */\r\n | \"stringArray\"\r\n /** Single ObjectRef relation. */\r\n | \"objectRef\"\r\n /** Multiple ObjectRef relations. */\r\n | \"objectRefArray\"\r\n /** Array of API resource links. */\r\n | \"resourceLinkArray\"\r\n /** Array of rendition entries. */\r\n | \"renditionArray\";\r\n\r\n/**\r\n * Defines how facet search sections are derived for one metadata property.\r\n */\r\nexport type FacetSectionStrategy = \"none\" | \"class\" | \"partyRole\";\r\n\r\n/**\r\n * Defines how generic metadata display sections are derived (property grid, card metadata, etc.).\r\n * Name is intentionally control-agnostic and not tied to InformationUnitMetadataGrid.\r\n */\r\nexport type MetadataDisplaySectionStrategy = \"none\" | \"class\" | \"partyRole\";\r\n\r\n/**\r\n * Central presentation contract for one InformationUnit metadata property.\r\n * - facet: behavior for facet search grouping.\r\n * - metadataDisplay: behavior for generic metadata rendering components.\r\n */\r\nexport type MetadataPropertyPresentationConfig = {\r\n /** Raw value shape from API model. */\r\n valueKind: MetadataValueKind;\r\n facet: {\r\n /** If false, property is not used as facet dimension. */\r\n supported: boolean;\r\n /**\r\n * How facet sections are built:\r\n * - \"none\": keep the property as one flat facet group (no additional taxonomy section split).\r\n * - \"class\": split entries by their class label.\r\n * - \"partyRole\": split entries by party role label.\r\n */\r\n sectionStrategy: FacetSectionStrategy;\r\n };\r\n metadataDisplay: {\r\n /** If false, property is not rendered in generic metadata displays. */\r\n supported: boolean;\r\n /**\r\n * How metadata sections are built in generic displays:\r\n * - \"none\": keep one property row/group.\r\n * - \"class\": split/group by class label.\r\n * - \"partyRole\": split/group by party role label.\r\n */\r\n sectionStrategy: MetadataDisplaySectionStrategy;\r\n };\r\n};\r\n\r\n/**\r\n * Central presentation rules for all InformationUnitModel properties.\r\n * This is the single source of truth for facet grouping and generic metadata display behavior.\r\n */\r\nexport const INFORMATION_UNIT_PROPERTY_PRESENTATION: Record<\r\n InformationUnitPropertyKey,\r\n MetadataPropertyPresentationConfig\r\n> = {\r\n id: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n shortId: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n score: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n class: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"class\" },\r\n },\r\n labels: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n comments: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n descriptions: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n synonyms: {\r\n valueKind: \"stringArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n packages: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n hasInformationUnits: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n links: {\r\n valueKind: \"resourceLinkArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n revision: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n created: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n modified: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n abstract: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n replaces: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n versionOf: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n titles: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n languages: {\r\n valueKind: \"stringArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n parties: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"partyRole\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"partyRole\" },\r\n },\r\n renditions: {\r\n valueKind: \"renditionArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n identities: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n components: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n informationSubjects: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n topicTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n documentTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n directoryNodes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n contentLifeCycleStatus: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n applicableForTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n planningTimes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n events: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n functionalMetadata: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n informationUnits: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n productFeatures: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productLifeCyclePhases: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productMetadata: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productVariants: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n qualifications: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n supplies: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n};\r\n\r\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/read-models/metadata-presentation-config.ts"],"sourcesContent":["import type { InformationUnitModel } from \"@c-rex/interfaces\";\r\n\r\nexport type InformationUnitPropertyKey = keyof InformationUnitModel;\r\n\r\n/**\r\n * Describes the raw shape of a metadata property value in InformationUnitModel.\r\n * This drives generic rendering/grouping logic without coupling to one concrete UI control.\r\n */\r\nexport type MetadataValueKind =\r\n /** Primitive scalar (string/number/date-like value). */\r\n | \"scalar\"\r\n /** Array of localized literals ({ language, value }). */\r\n | \"literalArray\"\r\n /** Array of primitive strings. */\r\n | \"stringArray\"\r\n /** Single ObjectRef relation. */\r\n | \"objectRef\"\r\n /** Multiple ObjectRef relations. */\r\n | \"objectRefArray\"\r\n /** Array of API resource links. */\r\n | \"resourceLinkArray\"\r\n /** Array of rendition entries. */\r\n | \"renditionArray\";\r\n\r\n/**\r\n * Defines how facet search sections are derived for one metadata property.\r\n */\r\nexport type FacetSectionStrategy = \"none\" | \"class\" | \"partyRole\";\r\n\r\n/**\r\n * Defines how generic metadata display sections are derived (property grid, card metadata, etc.).\r\n * Name is intentionally control-agnostic and not tied to InformationUnitMetadataGrid.\r\n */\r\nexport type MetadataDisplaySectionStrategy = \"none\" | \"class\" | \"partyRole\";\r\n\r\n/**\r\n * Central presentation contract for one InformationUnit metadata property.\r\n * - facet: behavior for facet search grouping.\r\n * - metadataDisplay: behavior for generic metadata rendering components.\r\n */\r\nexport type MetadataPropertyPresentationConfig = {\r\n /** Raw value shape from API model. */\r\n valueKind: MetadataValueKind;\r\n facet: {\r\n /** If false, property is not used as facet dimension. */\r\n supported: boolean;\r\n /**\r\n * How facet sections are built:\r\n * - \"none\": keep the property as one flat facet group (no additional taxonomy section split).\r\n * - \"class\": split entries by their class label.\r\n * - \"partyRole\": split entries by party role label.\r\n */\r\n sectionStrategy: FacetSectionStrategy;\r\n };\r\n metadataDisplay: {\r\n /** If false, property is not rendered in generic metadata displays. */\r\n supported: boolean;\r\n /**\r\n * How metadata sections are built in generic displays:\r\n * - \"none\": keep one property row/group.\r\n * - \"class\": split/group by class label.\r\n * - \"partyRole\": split/group by party role label.\r\n */\r\n sectionStrategy: MetadataDisplaySectionStrategy;\r\n };\r\n};\r\n\r\n/**\r\n * Central presentation rules for all InformationUnitModel properties.\r\n * This is the single source of truth for facet grouping and generic metadata display behavior.\r\n */\r\nexport const INFORMATION_UNIT_PROPERTY_PRESENTATION: Record<\r\n InformationUnitPropertyKey,\r\n MetadataPropertyPresentationConfig\r\n> = {\r\n id: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n shortId: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n score: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n class: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"class\" },\r\n },\r\n labels: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n comments: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n descriptions: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n synonyms: {\r\n valueKind: \"stringArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n packages: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n hasInformationUnits: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n links: {\r\n valueKind: \"resourceLinkArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n revision: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n created: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n modified: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n abstract: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n replaces: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n versionOf: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n titles: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n languages: {\r\n valueKind: \"stringArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n parties: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"partyRole\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"partyRole\" },\r\n },\r\n renditions: {\r\n valueKind: \"renditionArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n identities: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n components: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n informationSubjects: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n topicTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n documentTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n directoryNodes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n contentLifeCycleStatus: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n applicableForTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n planningTimes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n events: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n functionalMetadata: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n informationUnits: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n productFeatures: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productLifeCyclePhases: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productMetadata: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productVariants: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n qualifications: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n supplies: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n};\r\n\r\n"],"mappings":"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","names":[]}
|
|
@@ -170,8 +170,8 @@ var INFORMATION_UNIT_PROPERTY_PRESENTATION = {
|
|
|
170
170
|
},
|
|
171
171
|
applicableForTypes: {
|
|
172
172
|
valueKind: "objectRefArray",
|
|
173
|
-
facet: { supported: true, sectionStrategy: "
|
|
174
|
-
metadataDisplay: { supported: true, sectionStrategy: "
|
|
173
|
+
facet: { supported: true, sectionStrategy: "none" },
|
|
174
|
+
metadataDisplay: { supported: true, sectionStrategy: "none" }
|
|
175
175
|
},
|
|
176
176
|
planningTimes: {
|
|
177
177
|
valueKind: "objectRefArray",
|
|
@@ -225,6 +225,63 @@ var INFORMATION_UNIT_PROPERTY_PRESENTATION = {
|
|
|
225
225
|
}
|
|
226
226
|
};
|
|
227
227
|
|
|
228
|
+
// src/read-models/metadata-visibility-policy.ts
|
|
229
|
+
var CONTENT_LICENSE_CLASS_ID = "https://ids.c-crex.net/ns/iirds/ext#ContentLicense";
|
|
230
|
+
var METADATA_VISIBILITY_POLICY = {
|
|
231
|
+
parties: {
|
|
232
|
+
cacheFamily: "parties"
|
|
233
|
+
},
|
|
234
|
+
components: {
|
|
235
|
+
cacheFamily: "components"
|
|
236
|
+
},
|
|
237
|
+
informationSubjects: {
|
|
238
|
+
cacheFamily: "informationSubjects"
|
|
239
|
+
},
|
|
240
|
+
topicTypes: {
|
|
241
|
+
cacheFamily: "topicTypes"
|
|
242
|
+
},
|
|
243
|
+
documentTypes: {
|
|
244
|
+
cacheFamily: "documentTypes"
|
|
245
|
+
},
|
|
246
|
+
contentLifeCycleStatus: {
|
|
247
|
+
cacheFamily: "contentLifeCycleStatus"
|
|
248
|
+
},
|
|
249
|
+
applicableForTypes: {
|
|
250
|
+
cacheFamily: "documentTypes"
|
|
251
|
+
},
|
|
252
|
+
planningTimes: {
|
|
253
|
+
cacheFamily: "planningTimes"
|
|
254
|
+
},
|
|
255
|
+
functionalMetadata: {
|
|
256
|
+
cacheFamily: "functionalMetadata"
|
|
257
|
+
},
|
|
258
|
+
productFeatures: {
|
|
259
|
+
cacheFamily: "productFeatures"
|
|
260
|
+
},
|
|
261
|
+
productLifeCyclePhases: {
|
|
262
|
+
cacheFamily: "productLifeCyclePhases"
|
|
263
|
+
},
|
|
264
|
+
productMetadata: {
|
|
265
|
+
cacheFamily: "productMetadata"
|
|
266
|
+
},
|
|
267
|
+
productVariants: {
|
|
268
|
+
cacheFamily: "productVariants"
|
|
269
|
+
},
|
|
270
|
+
qualifications: {
|
|
271
|
+
cacheFamily: "qualifications",
|
|
272
|
+
deniedClassIds: [CONTENT_LICENSE_CLASS_ID]
|
|
273
|
+
},
|
|
274
|
+
supplies: {
|
|
275
|
+
cacheFamily: "supplies"
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
var runtimeSuppressedFamilies = /* @__PURE__ */ new Map();
|
|
279
|
+
var getMetadataCacheFamily = (property) => METADATA_VISIBILITY_POLICY[property]?.cacheFamily;
|
|
280
|
+
var isMetadataPropertyRuntimeSuppressed = (property) => {
|
|
281
|
+
const family = getMetadataCacheFamily(property);
|
|
282
|
+
return family ? runtimeSuppressedFamilies.has(family) : false;
|
|
283
|
+
};
|
|
284
|
+
|
|
228
285
|
// src/read-models/metadata-view-profile.ts
|
|
229
286
|
var ALL_PROPERTIES = Object.keys(INFORMATION_UNIT_PROPERTY_PRESENTATION);
|
|
230
287
|
var DEFAULT_FACET_PROPERTIES = ALL_PROPERTIES.filter((key) => {
|
|
@@ -284,7 +341,9 @@ var resolveFacetTags = (options) => {
|
|
|
284
341
|
toInformationUnitPropertyKeys(options?.includeProperties),
|
|
285
342
|
toInformationUnitPropertyKeys(options?.excludeProperties)
|
|
286
343
|
);
|
|
287
|
-
const tagSet = new Set(
|
|
344
|
+
const tagSet = new Set(
|
|
345
|
+
runtimeScoped.filter((property) => !isMetadataPropertyRuntimeSuppressed(property))
|
|
346
|
+
);
|
|
288
347
|
(facetConfig?.extraTags || []).forEach((tag) => tagSet.add(tag));
|
|
289
348
|
(options?.extraTags || []).forEach((tag) => tagSet.add(tag));
|
|
290
349
|
return Array.from(tagSet);
|
|
@@ -302,7 +361,7 @@ var resolveMetadataDisplayProperties = (options) => {
|
|
|
302
361
|
profileScoped,
|
|
303
362
|
toInformationUnitPropertyKeys(options?.includeProperties),
|
|
304
363
|
toInformationUnitPropertyKeys(options?.excludeProperties)
|
|
305
|
-
);
|
|
364
|
+
).filter((property) => !isMetadataPropertyRuntimeSuppressed(property));
|
|
306
365
|
};
|
|
307
366
|
// Annotate the CommonJS export names for ESM import in node:
|
|
308
367
|
0 && (module.exports = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/read-models/metadata-view-profile.ts","../../src/read-models/metadata-presentation-config.ts"],"sourcesContent":["import { InformationUnitPropertyKey } from \"./metadata-presentation-config\";\r\nimport { INFORMATION_UNIT_PROPERTY_PRESENTATION } from \"./metadata-presentation-config\";\r\n\r\nexport type MetadataViewProfileId =\r\n | \"default-search\"\r\n | \"information-unit-search\"\r\n | \"default-metadata-display\";\r\n\r\nexport type MetadataViewProfile = {\r\n id: MetadataViewProfileId;\r\n facet?: {\r\n includeProperties?: InformationUnitPropertyKey[];\r\n excludeProperties?: InformationUnitPropertyKey[];\r\n includeZeroHits?: boolean;\r\n extraTags?: string[];\r\n };\r\n metadataDisplay?: {\r\n includeProperties?: InformationUnitPropertyKey[];\r\n excludeProperties?: InformationUnitPropertyKey[];\r\n };\r\n};\r\n\r\nconst ALL_PROPERTIES = Object.keys(INFORMATION_UNIT_PROPERTY_PRESENTATION) as InformationUnitPropertyKey[];\r\n\r\nconst DEFAULT_FACET_PROPERTIES = ALL_PROPERTIES.filter((key) => {\r\n const config = INFORMATION_UNIT_PROPERTY_PRESENTATION[key];\r\n return config.facet.supported && config.valueKind === \"objectRefArray\";\r\n});\r\n\r\nconst DEFAULT_METADATA_DISPLAY_PROPERTIES = ALL_PROPERTIES.filter((key) => {\r\n const config = INFORMATION_UNIT_PROPERTY_PRESENTATION[key];\r\n return config.metadataDisplay.supported;\r\n});\r\n\r\nconst toSet = <T extends string>(values?: T[]) => new Set(values || []);\r\n\r\nconst applyIncludeExclude = <T extends string>(base: T[], include?: T[], exclude?: T[]): T[] => {\r\n const includeSet = toSet(include);\r\n const excludeSet = toSet(exclude);\r\n const source = includeSet.size > 0 ? base.filter((item) => includeSet.has(item)) : base;\r\n return source.filter((item) => !excludeSet.has(item));\r\n};\r\n\r\nexport const METADATA_VIEW_PROFILES: Record<MetadataViewProfileId, MetadataViewProfile> = {\r\n \"default-search\": {\r\n id: \"default-search\",\r\n facet: {\r\n includeProperties: DEFAULT_FACET_PROPERTIES,\r\n extraTags: [\"rdfType\"],\r\n includeZeroHits: true,\r\n },\r\n },\r\n \"information-unit-search\": {\r\n id: \"information-unit-search\",\r\n facet: {\r\n includeProperties: DEFAULT_FACET_PROPERTIES.filter((property) => property !== \"informationSubjects\"),\r\n extraTags: [\"rdfType\"],\r\n includeZeroHits: true,\r\n },\r\n },\r\n \"default-metadata-display\": {\r\n id: \"default-metadata-display\",\r\n metadataDisplay: {\r\n includeProperties: DEFAULT_METADATA_DISPLAY_PROPERTIES,\r\n },\r\n },\r\n};\r\n\r\ntype ResolveFacetTagsOptions = {\r\n profileId?: MetadataViewProfileId;\r\n includeProperties?: string[];\r\n excludeProperties?: string[];\r\n extraTags?: string[];\r\n};\r\n\r\nconst toInformationUnitPropertyKeys = (values?: string[]): InformationUnitPropertyKey[] => {\r\n const available = new Set<string>(ALL_PROPERTIES);\r\n return (values || []).filter((value): value is InformationUnitPropertyKey => available.has(value));\r\n};\r\n\r\n/**\r\n * Resolves API tag keys for facet requests from one central profile definition.\r\n * Use this instead of hardcoded page-level tag arrays.\r\n */\r\nexport const resolveFacetTags = (options?: ResolveFacetTagsOptions): string[] => {\r\n const profile = METADATA_VIEW_PROFILES[options?.profileId || \"default-search\"];\r\n const facetConfig = profile.facet;\r\n\r\n const supported = DEFAULT_FACET_PROPERTIES;\r\n const profileScoped = applyIncludeExclude(\r\n supported,\r\n facetConfig?.includeProperties,\r\n facetConfig?.excludeProperties\r\n );\r\n const runtimeScoped = applyIncludeExclude(\r\n profileScoped,\r\n toInformationUnitPropertyKeys(options?.includeProperties),\r\n toInformationUnitPropertyKeys(options?.excludeProperties)\r\n );\r\n\r\n const tagSet = new Set<string>(runtimeScoped);\r\n (facetConfig?.extraTags || []).forEach((tag) => tagSet.add(tag));\r\n (options?.extraTags || []).forEach((tag) => tagSet.add(tag));\r\n\r\n return Array.from(tagSet);\r\n};\r\n\r\ntype ResolveMetadataDisplayPropertiesOptions = {\r\n profileId?: MetadataViewProfileId;\r\n includeProperties?: string[];\r\n excludeProperties?: string[];\r\n};\r\n\r\n/**\r\n * Resolves the effective metadata properties used by generic metadata displays.\r\n * Supports profile-level defaults and usage-specific include/exclude narrowing.\r\n */\r\nexport const resolveMetadataDisplayProperties = (\r\n options?: ResolveMetadataDisplayPropertiesOptions\r\n): InformationUnitPropertyKey[] => {\r\n const profile = METADATA_VIEW_PROFILES[options?.profileId || \"default-metadata-display\"];\r\n const displayConfig = profile.metadataDisplay;\r\n\r\n const supported = DEFAULT_METADATA_DISPLAY_PROPERTIES;\r\n const profileScoped = applyIncludeExclude(\r\n supported,\r\n displayConfig?.includeProperties,\r\n displayConfig?.excludeProperties\r\n );\r\n return applyIncludeExclude(\r\n profileScoped,\r\n toInformationUnitPropertyKeys(options?.includeProperties),\r\n toInformationUnitPropertyKeys(options?.excludeProperties)\r\n );\r\n};\r\n","import type { InformationUnitModel } from \"@c-rex/interfaces\";\r\n\r\nexport type InformationUnitPropertyKey = keyof InformationUnitModel;\r\n\r\n/**\r\n * Describes the raw shape of a metadata property value in InformationUnitModel.\r\n * This drives generic rendering/grouping logic without coupling to one concrete UI control.\r\n */\r\nexport type MetadataValueKind =\r\n /** Primitive scalar (string/number/date-like value). */\r\n | \"scalar\"\r\n /** Array of localized literals ({ language, value }). */\r\n | \"literalArray\"\r\n /** Array of primitive strings. */\r\n | \"stringArray\"\r\n /** Single ObjectRef relation. */\r\n | \"objectRef\"\r\n /** Multiple ObjectRef relations. */\r\n | \"objectRefArray\"\r\n /** Array of API resource links. */\r\n | \"resourceLinkArray\"\r\n /** Array of rendition entries. */\r\n | \"renditionArray\";\r\n\r\n/**\r\n * Defines how facet search sections are derived for one metadata property.\r\n */\r\nexport type FacetSectionStrategy = \"none\" | \"class\" | \"partyRole\";\r\n\r\n/**\r\n * Defines how generic metadata display sections are derived (property grid, card metadata, etc.).\r\n * Name is intentionally control-agnostic and not tied to InformationUnitMetadataGrid.\r\n */\r\nexport type MetadataDisplaySectionStrategy = \"none\" | \"class\" | \"partyRole\";\r\n\r\n/**\r\n * Central presentation contract for one InformationUnit metadata property.\r\n * - facet: behavior for facet search grouping.\r\n * - metadataDisplay: behavior for generic metadata rendering components.\r\n */\r\nexport type MetadataPropertyPresentationConfig = {\r\n /** Raw value shape from API model. */\r\n valueKind: MetadataValueKind;\r\n facet: {\r\n /** If false, property is not used as facet dimension. */\r\n supported: boolean;\r\n /**\r\n * How facet sections are built:\r\n * - \"none\": keep the property as one flat facet group (no additional taxonomy section split).\r\n * - \"class\": split entries by their class label.\r\n * - \"partyRole\": split entries by party role label.\r\n */\r\n sectionStrategy: FacetSectionStrategy;\r\n };\r\n metadataDisplay: {\r\n /** If false, property is not rendered in generic metadata displays. */\r\n supported: boolean;\r\n /**\r\n * How metadata sections are built in generic displays:\r\n * - \"none\": keep one property row/group.\r\n * - \"class\": split/group by class label.\r\n * - \"partyRole\": split/group by party role label.\r\n */\r\n sectionStrategy: MetadataDisplaySectionStrategy;\r\n };\r\n};\r\n\r\n/**\r\n * Central presentation rules for all InformationUnitModel properties.\r\n * This is the single source of truth for facet grouping and generic metadata display behavior.\r\n */\r\nexport const INFORMATION_UNIT_PROPERTY_PRESENTATION: Record<\r\n InformationUnitPropertyKey,\r\n MetadataPropertyPresentationConfig\r\n> = {\r\n id: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n shortId: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n score: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n class: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"class\" },\r\n },\r\n labels: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n comments: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n descriptions: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n synonyms: {\r\n valueKind: \"stringArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n packages: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n hasInformationUnits: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n links: {\r\n valueKind: \"resourceLinkArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n revision: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n created: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n modified: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n abstract: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n replaces: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n versionOf: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n titles: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n languages: {\r\n valueKind: \"stringArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n parties: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"partyRole\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"partyRole\" },\r\n },\r\n renditions: {\r\n valueKind: \"renditionArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n identities: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n components: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n informationSubjects: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n topicTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n documentTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n directoryNodes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n contentLifeCycleStatus: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n applicableForTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n planningTimes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n events: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n functionalMetadata: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n informationUnits: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n productFeatures: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productLifeCyclePhases: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productMetadata: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productVariants: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n qualifications: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n supplies: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n};\r\n\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACuEO,IAAM,yCAGT;AAAA,EACA,IAAI;AAAA,IACA,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,EACjE;AAAA,EACA,SAAS;AAAA,IACL,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,EACjE;AAAA,EACA,OAAO;AAAA,IACH,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,EACjE;AAAA,EACA,OAAO;AAAA,IACH,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,OAAO,iBAAiB,QAAQ;AAAA,EAClE;AAAA,EACA,QAAQ;AAAA,IACJ,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,EACjE;AAAA,EACA,UAAU;AAAA,IACN,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,OAAO;AAAA,EAChE;AAAA,EACA,cAAc;AAAA,IACV,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,OAAO;AAAA,EAChE;AAAA,EACA,UAAU;AAAA,IACN,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,OAAO;AAAA,EAChE;AAAA,EACA,UAAU;AAAA,IACN,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,OAAO;AAAA,IAClD,iBAAiB,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,EACjE;AAAA,EACA,qBAAqB;AAAA,IACjB,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,EACjE;AAAA,EACA,OAAO;AAAA,IACH,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,EACjE;AAAA,EACA,UAAU;AAAA,IACN,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,OAAO;AAAA,EAChE;AAAA,EACA,SAAS;AAAA,IACL,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,OAAO;AAAA,EAChE;AAAA,EACA,UAAU;AAAA,IACN,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,OAAO;AAAA,EAChE;AAAA,EACA,UAAU;AAAA,IACN,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,OAAO;AAAA,EAChE;AAAA,EACA,UAAU;AAAA,IACN,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,OAAO;AAAA,EAChE;AAAA,EACA,WAAW;AAAA,IACP,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,EACjE;AAAA,EACA,QAAQ;AAAA,IACJ,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,OAAO;AAAA,EAChE;AAAA,EACA,WAAW;AAAA,IACP,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,OAAO;AAAA,IAClD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,OAAO;AAAA,EAChE;AAAA,EACA,SAAS;AAAA,IACL,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,YAAY;AAAA,IACvD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,YAAY;AAAA,EACrE;AAAA,EACA,YAAY;AAAA,IACR,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,OAAO;AAAA,EAChE;AAAA,EACA,YAAY;AAAA,IACR,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,EACjE;AAAA,EACA,YAAY;AAAA,IACR,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EACjE;AAAA,EACA,qBAAqB;AAAA,IACjB,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EACjE;AAAA,EACA,YAAY;AAAA,IACR,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EACjE;AAAA,EACA,eAAe;AAAA,IACX,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EACjE;AAAA,EACA,gBAAgB;AAAA,IACZ,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,EACjE;AAAA,EACA,wBAAwB;AAAA,IACpB,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EACjE;AAAA,EACA,oBAAoB;AAAA,IAChB,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EACjE;AAAA,EACA,eAAe;AAAA,IACX,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EACjE;AAAA,EACA,QAAQ;AAAA,IACJ,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EACjE;AAAA,EACA,oBAAoB;AAAA,IAChB,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EACjE;AAAA,EACA,kBAAkB;AAAA,IACd,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,IACnD,iBAAiB,EAAE,WAAW,OAAO,iBAAiB,OAAO;AAAA,EACjE;AAAA,EACA,iBAAiB;AAAA,IACb,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EACjE;AAAA,EACA,wBAAwB;AAAA,IACpB,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EACjE;AAAA,EACA,iBAAiB;AAAA,IACb,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EACjE;AAAA,EACA,iBAAiB;AAAA,IACb,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EACjE;AAAA,EACA,gBAAgB;AAAA,IACZ,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EACjE;AAAA,EACA,UAAU;AAAA,IACN,WAAW;AAAA,IACX,OAAO,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,IACnD,iBAAiB,EAAE,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EACjE;AACJ;;;ADxPA,IAAM,iBAAiB,OAAO,KAAK,sCAAsC;AAEzE,IAAM,2BAA2B,eAAe,OAAO,CAAC,QAAQ;AAC5D,QAAM,SAAS,uCAAuC,GAAG;AACzD,SAAO,OAAO,MAAM,aAAa,OAAO,cAAc;AAC1D,CAAC;AAED,IAAM,sCAAsC,eAAe,OAAO,CAAC,QAAQ;AACvE,QAAM,SAAS,uCAAuC,GAAG;AACzD,SAAO,OAAO,gBAAgB;AAClC,CAAC;AAED,IAAM,QAAQ,CAAmB,WAAiB,IAAI,IAAI,UAAU,CAAC,CAAC;AAEtE,IAAM,sBAAsB,CAAmB,MAAW,SAAe,YAAuB;AAC5F,QAAM,aAAa,MAAM,OAAO;AAChC,QAAM,aAAa,MAAM,OAAO;AAChC,QAAM,SAAS,WAAW,OAAO,IAAI,KAAK,OAAO,CAAC,SAAS,WAAW,IAAI,IAAI,CAAC,IAAI;AACnF,SAAO,OAAO,OAAO,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC;AACxD;AAEO,IAAM,yBAA6E;AAAA,EACtF,kBAAkB;AAAA,IACd,IAAI;AAAA,IACJ,OAAO;AAAA,MACH,mBAAmB;AAAA,MACnB,WAAW,CAAC,SAAS;AAAA,MACrB,iBAAiB;AAAA,IACrB;AAAA,EACJ;AAAA,EACA,2BAA2B;AAAA,IACvB,IAAI;AAAA,IACJ,OAAO;AAAA,MACH,mBAAmB,yBAAyB,OAAO,CAAC,aAAa,aAAa,qBAAqB;AAAA,MACnG,WAAW,CAAC,SAAS;AAAA,MACrB,iBAAiB;AAAA,IACrB;AAAA,EACJ;AAAA,EACA,4BAA4B;AAAA,IACxB,IAAI;AAAA,IACJ,iBAAiB;AAAA,MACb,mBAAmB;AAAA,IACvB;AAAA,EACJ;AACJ;AASA,IAAM,gCAAgC,CAAC,WAAoD;AACvF,QAAM,YAAY,IAAI,IAAY,cAAc;AAChD,UAAQ,UAAU,CAAC,GAAG,OAAO,CAAC,UAA+C,UAAU,IAAI,KAAK,CAAC;AACrG;AAMO,IAAM,mBAAmB,CAAC,YAAgD;AAC7E,QAAM,UAAU,uBAAuB,SAAS,aAAa,gBAAgB;AAC7E,QAAM,cAAc,QAAQ;AAE5B,QAAM,YAAY;AAClB,QAAM,gBAAgB;AAAA,IAClB;AAAA,IACA,aAAa;AAAA,IACb,aAAa;AAAA,EACjB;AACA,QAAM,gBAAgB;AAAA,IAClB;AAAA,IACA,8BAA8B,SAAS,iBAAiB;AAAA,IACxD,8BAA8B,SAAS,iBAAiB;AAAA,EAC5D;AAEA,QAAM,SAAS,IAAI,IAAY,aAAa;AAC5C,GAAC,aAAa,aAAa,CAAC,GAAG,QAAQ,CAAC,QAAQ,OAAO,IAAI,GAAG,CAAC;AAC/D,GAAC,SAAS,aAAa,CAAC,GAAG,QAAQ,CAAC,QAAQ,OAAO,IAAI,GAAG,CAAC;AAE3D,SAAO,MAAM,KAAK,MAAM;AAC5B;AAYO,IAAM,mCAAmC,CAC5C,YAC+B;AAC/B,QAAM,UAAU,uBAAuB,SAAS,aAAa,0BAA0B;AACvF,QAAM,gBAAgB,QAAQ;AAE9B,QAAM,YAAY;AAClB,QAAM,gBAAgB;AAAA,IAClB;AAAA,IACA,eAAe;AAAA,IACf,eAAe;AAAA,EACnB;AACA,SAAO;AAAA,IACH;AAAA,IACA,8BAA8B,SAAS,iBAAiB;AAAA,IACxD,8BAA8B,SAAS,iBAAiB;AAAA,EAC5D;AACJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/read-models/metadata-view-profile.ts","../../src/read-models/metadata-presentation-config.ts","../../src/read-models/metadata-visibility-policy.ts"],"sourcesContent":["import { InformationUnitPropertyKey } from \"./metadata-presentation-config\";\r\nimport { INFORMATION_UNIT_PROPERTY_PRESENTATION } from \"./metadata-presentation-config\";\r\nimport { isMetadataPropertyRuntimeSuppressed } from \"./metadata-visibility-policy\";\r\n\r\nexport type MetadataViewProfileId =\r\n | \"default-search\"\r\n | \"information-unit-search\"\r\n | \"default-metadata-display\";\r\n\r\nexport type MetadataViewProfile = {\r\n id: MetadataViewProfileId;\r\n facet?: {\r\n includeProperties?: InformationUnitPropertyKey[];\r\n excludeProperties?: InformationUnitPropertyKey[];\r\n includeZeroHits?: boolean;\r\n extraTags?: string[];\r\n };\r\n metadataDisplay?: {\r\n includeProperties?: InformationUnitPropertyKey[];\r\n excludeProperties?: InformationUnitPropertyKey[];\r\n };\r\n};\r\n\r\nconst ALL_PROPERTIES = Object.keys(INFORMATION_UNIT_PROPERTY_PRESENTATION) as InformationUnitPropertyKey[];\r\n\r\nconst DEFAULT_FACET_PROPERTIES = ALL_PROPERTIES.filter((key) => {\r\n const config = INFORMATION_UNIT_PROPERTY_PRESENTATION[key];\r\n return config.facet.supported && config.valueKind === \"objectRefArray\";\r\n});\r\n\r\nconst DEFAULT_METADATA_DISPLAY_PROPERTIES = ALL_PROPERTIES.filter((key) => {\r\n const config = INFORMATION_UNIT_PROPERTY_PRESENTATION[key];\r\n return config.metadataDisplay.supported;\r\n});\r\n\r\nconst toSet = <T extends string>(values?: T[]) => new Set(values || []);\r\n\r\nconst applyIncludeExclude = <T extends string>(base: T[], include?: T[], exclude?: T[]): T[] => {\r\n const includeSet = toSet(include);\r\n const excludeSet = toSet(exclude);\r\n const source = includeSet.size > 0 ? base.filter((item) => includeSet.has(item)) : base;\r\n return source.filter((item) => !excludeSet.has(item));\r\n};\r\n\r\nexport const METADATA_VIEW_PROFILES: Record<MetadataViewProfileId, MetadataViewProfile> = {\r\n \"default-search\": {\r\n id: \"default-search\",\r\n facet: {\r\n includeProperties: DEFAULT_FACET_PROPERTIES,\r\n extraTags: [\"rdfType\"],\r\n includeZeroHits: true,\r\n },\r\n },\r\n \"information-unit-search\": {\r\n id: \"information-unit-search\",\r\n facet: {\r\n includeProperties: DEFAULT_FACET_PROPERTIES.filter((property) => property !== \"informationSubjects\"),\r\n extraTags: [\"rdfType\"],\r\n includeZeroHits: true,\r\n },\r\n },\r\n \"default-metadata-display\": {\r\n id: \"default-metadata-display\",\r\n metadataDisplay: {\r\n includeProperties: DEFAULT_METADATA_DISPLAY_PROPERTIES,\r\n },\r\n },\r\n};\r\n\r\ntype ResolveFacetTagsOptions = {\r\n profileId?: MetadataViewProfileId;\r\n includeProperties?: string[];\r\n excludeProperties?: string[];\r\n extraTags?: string[];\r\n};\r\n\r\nconst toInformationUnitPropertyKeys = (values?: string[]): InformationUnitPropertyKey[] => {\r\n const available = new Set<string>(ALL_PROPERTIES);\r\n return (values || []).filter((value): value is InformationUnitPropertyKey => available.has(value));\r\n};\r\n\r\n/**\r\n * Resolves API tag keys for facet requests from one central profile definition.\r\n * Use this instead of hardcoded page-level tag arrays.\r\n */\r\nexport const resolveFacetTags = (options?: ResolveFacetTagsOptions): string[] => {\r\n const profile = METADATA_VIEW_PROFILES[options?.profileId || \"default-search\"];\r\n const facetConfig = profile.facet;\r\n\r\n const supported = DEFAULT_FACET_PROPERTIES;\r\n const profileScoped = applyIncludeExclude(\r\n supported,\r\n facetConfig?.includeProperties,\r\n facetConfig?.excludeProperties\r\n );\r\n const runtimeScoped = applyIncludeExclude(\r\n profileScoped,\r\n toInformationUnitPropertyKeys(options?.includeProperties),\r\n toInformationUnitPropertyKeys(options?.excludeProperties)\r\n );\r\n\r\n const tagSet = new Set<string>(\r\n runtimeScoped.filter((property) => !isMetadataPropertyRuntimeSuppressed(property))\r\n );\r\n (facetConfig?.extraTags || []).forEach((tag) => tagSet.add(tag));\r\n (options?.extraTags || []).forEach((tag) => tagSet.add(tag));\r\n\r\n return Array.from(tagSet);\r\n};\r\n\r\ntype ResolveMetadataDisplayPropertiesOptions = {\r\n profileId?: MetadataViewProfileId;\r\n includeProperties?: string[];\r\n excludeProperties?: string[];\r\n};\r\n\r\n/**\r\n * Resolves the effective metadata properties used by generic metadata displays.\r\n * Supports profile-level defaults and usage-specific include/exclude narrowing.\r\n */\r\nexport const resolveMetadataDisplayProperties = (\r\n options?: ResolveMetadataDisplayPropertiesOptions\r\n): InformationUnitPropertyKey[] => {\r\n const profile = METADATA_VIEW_PROFILES[options?.profileId || \"default-metadata-display\"];\r\n const displayConfig = profile.metadataDisplay;\r\n\r\n const supported = DEFAULT_METADATA_DISPLAY_PROPERTIES;\r\n const profileScoped = applyIncludeExclude(\r\n supported,\r\n displayConfig?.includeProperties,\r\n displayConfig?.excludeProperties\r\n );\r\n return applyIncludeExclude(\r\n profileScoped,\r\n toInformationUnitPropertyKeys(options?.includeProperties),\r\n toInformationUnitPropertyKeys(options?.excludeProperties)\r\n ).filter((property) => !isMetadataPropertyRuntimeSuppressed(property));\r\n};\r\n","import type { InformationUnitModel } from \"@c-rex/interfaces\";\r\n\r\nexport type InformationUnitPropertyKey = keyof InformationUnitModel;\r\n\r\n/**\r\n * Describes the raw shape of a metadata property value in InformationUnitModel.\r\n * This drives generic rendering/grouping logic without coupling to one concrete UI control.\r\n */\r\nexport type MetadataValueKind =\r\n /** Primitive scalar (string/number/date-like value). */\r\n | \"scalar\"\r\n /** Array of localized literals ({ language, value }). */\r\n | \"literalArray\"\r\n /** Array of primitive strings. */\r\n | \"stringArray\"\r\n /** Single ObjectRef relation. */\r\n | \"objectRef\"\r\n /** Multiple ObjectRef relations. */\r\n | \"objectRefArray\"\r\n /** Array of API resource links. */\r\n | \"resourceLinkArray\"\r\n /** Array of rendition entries. */\r\n | \"renditionArray\";\r\n\r\n/**\r\n * Defines how facet search sections are derived for one metadata property.\r\n */\r\nexport type FacetSectionStrategy = \"none\" | \"class\" | \"partyRole\";\r\n\r\n/**\r\n * Defines how generic metadata display sections are derived (property grid, card metadata, etc.).\r\n * Name is intentionally control-agnostic and not tied to InformationUnitMetadataGrid.\r\n */\r\nexport type MetadataDisplaySectionStrategy = \"none\" | \"class\" | \"partyRole\";\r\n\r\n/**\r\n * Central presentation contract for one InformationUnit metadata property.\r\n * - facet: behavior for facet search grouping.\r\n * - metadataDisplay: behavior for generic metadata rendering components.\r\n */\r\nexport type MetadataPropertyPresentationConfig = {\r\n /** Raw value shape from API model. */\r\n valueKind: MetadataValueKind;\r\n facet: {\r\n /** If false, property is not used as facet dimension. */\r\n supported: boolean;\r\n /**\r\n * How facet sections are built:\r\n * - \"none\": keep the property as one flat facet group (no additional taxonomy section split).\r\n * - \"class\": split entries by their class label.\r\n * - \"partyRole\": split entries by party role label.\r\n */\r\n sectionStrategy: FacetSectionStrategy;\r\n };\r\n metadataDisplay: {\r\n /** If false, property is not rendered in generic metadata displays. */\r\n supported: boolean;\r\n /**\r\n * How metadata sections are built in generic displays:\r\n * - \"none\": keep one property row/group.\r\n * - \"class\": split/group by class label.\r\n * - \"partyRole\": split/group by party role label.\r\n */\r\n sectionStrategy: MetadataDisplaySectionStrategy;\r\n };\r\n};\r\n\r\n/**\r\n * Central presentation rules for all InformationUnitModel properties.\r\n * This is the single source of truth for facet grouping and generic metadata display behavior.\r\n */\r\nexport const INFORMATION_UNIT_PROPERTY_PRESENTATION: Record<\r\n InformationUnitPropertyKey,\r\n MetadataPropertyPresentationConfig\r\n> = {\r\n id: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n shortId: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n score: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n class: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"class\" },\r\n },\r\n labels: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n comments: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n descriptions: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n synonyms: {\r\n valueKind: \"stringArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n packages: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n hasInformationUnits: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n links: {\r\n valueKind: \"resourceLinkArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n revision: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n created: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n modified: {\r\n valueKind: \"scalar\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n abstract: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n replaces: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n versionOf: {\r\n valueKind: \"objectRef\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n titles: {\r\n valueKind: \"literalArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n languages: {\r\n valueKind: \"stringArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n parties: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"partyRole\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"partyRole\" },\r\n },\r\n renditions: {\r\n valueKind: \"renditionArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n identities: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n components: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n informationSubjects: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n topicTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n documentTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n directoryNodes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n contentLifeCycleStatus: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n applicableForTypes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"none\" },\r\n },\r\n planningTimes: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n events: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n functionalMetadata: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n informationUnits: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: false, sectionStrategy: \"none\" },\r\n metadataDisplay: { supported: false, sectionStrategy: \"none\" },\r\n },\r\n productFeatures: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productLifeCyclePhases: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productMetadata: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n productVariants: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n qualifications: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n supplies: {\r\n valueKind: \"objectRefArray\",\r\n facet: { supported: true, sectionStrategy: \"class\" },\r\n metadataDisplay: { supported: true, sectionStrategy: \"class\" },\r\n },\r\n};\r\n\r\n","import { InformationUnitPropertyKey } from \"./metadata-presentation-config\";\r\n\r\nexport type MetadataCacheFamily =\r\n | \"components\"\r\n | \"informationSubjects\"\r\n | \"documentTypes\"\r\n | \"topicTypes\"\r\n | \"contentLifeCycleStatus\"\r\n | \"planningTimes\"\r\n | \"functionalMetadata\"\r\n | \"productFeatures\"\r\n | \"productLifeCyclePhases\"\r\n | \"productMetadata\"\r\n | \"productVariants\"\r\n | \"qualifications\"\r\n | \"supplies\"\r\n | \"parties\";\r\n\r\nexport type MetadataPropertyVisibilityPolicy = {\r\n cacheFamily?: MetadataCacheFamily;\r\n deniedClassIds?: string[];\r\n deniedPartyRoleIds?: string[];\r\n};\r\n\r\nconst CONTENT_LICENSE_CLASS_ID = \"https://ids.c-crex.net/ns/iirds/ext#ContentLicense\";\r\n\r\nexport const METADATA_VISIBILITY_POLICY: Partial<Record<InformationUnitPropertyKey, MetadataPropertyVisibilityPolicy>> = {\r\n parties: {\r\n cacheFamily: \"parties\",\r\n },\r\n components: {\r\n cacheFamily: \"components\",\r\n },\r\n informationSubjects: {\r\n cacheFamily: \"informationSubjects\",\r\n },\r\n topicTypes: {\r\n cacheFamily: \"topicTypes\",\r\n },\r\n documentTypes: {\r\n cacheFamily: \"documentTypes\",\r\n },\r\n contentLifeCycleStatus: {\r\n cacheFamily: \"contentLifeCycleStatus\",\r\n },\r\n applicableForTypes: {\r\n cacheFamily: \"documentTypes\",\r\n },\r\n planningTimes: {\r\n cacheFamily: \"planningTimes\",\r\n },\r\n functionalMetadata: {\r\n cacheFamily: \"functionalMetadata\",\r\n },\r\n productFeatures: {\r\n cacheFamily: \"productFeatures\",\r\n },\r\n productLifeCyclePhases: {\r\n cacheFamily: \"productLifeCyclePhases\",\r\n },\r\n productMetadata: {\r\n cacheFamily: \"productMetadata\",\r\n },\r\n productVariants: {\r\n cacheFamily: \"productVariants\",\r\n },\r\n qualifications: {\r\n cacheFamily: \"qualifications\",\r\n deniedClassIds: [CONTENT_LICENSE_CLASS_ID],\r\n },\r\n supplies: {\r\n cacheFamily: \"supplies\",\r\n },\r\n};\r\n\r\ntype RuntimeSuppressionEntry = {\r\n reason: \"cache-overflow\";\r\n family: MetadataCacheFamily;\r\n bytes: number;\r\n limitBytes: number;\r\n timestamp: string;\r\n};\r\n\r\nconst runtimeSuppressedFamilies = new Map<MetadataCacheFamily, RuntimeSuppressionEntry>();\r\n\r\nexport const getMetadataCacheFamily = (\r\n property: InformationUnitPropertyKey\r\n): MetadataCacheFamily | undefined => METADATA_VISIBILITY_POLICY[property]?.cacheFamily;\r\n\r\nexport const isMetadataGroupDenied = (\r\n property: InformationUnitPropertyKey,\r\n options: { classId?: string | null; partyRoleId?: string | null }\r\n): boolean => {\r\n const policy = METADATA_VISIBILITY_POLICY[property];\r\n const classId = options.classId?.trim();\r\n const partyRoleId = options.partyRoleId?.trim();\r\n\r\n if (classId && policy?.deniedClassIds?.includes(classId)) {\r\n return true;\r\n }\r\n\r\n if (partyRoleId && policy?.deniedPartyRoleIds?.includes(partyRoleId)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const suppressMetadataCacheFamilyRuntime = (\r\n family: MetadataCacheFamily,\r\n entry: Omit<RuntimeSuppressionEntry, \"family\" | \"reason\" | \"timestamp\">\r\n) => {\r\n runtimeSuppressedFamilies.set(family, {\r\n family,\r\n reason: \"cache-overflow\",\r\n bytes: entry.bytes,\r\n limitBytes: entry.limitBytes,\r\n timestamp: new Date().toISOString(),\r\n });\r\n};\r\n\r\nexport const clearMetadataCacheFamilyRuntimeSuppression = (family: MetadataCacheFamily) => {\r\n runtimeSuppressedFamilies.delete(family);\r\n};\r\n\r\nexport const isMetadataPropertyRuntimeSuppressed = (property: InformationUnitPropertyKey): boolean => {\r\n const family = getMetadataCacheFamily(property);\r\n return family ? runtimeSuppressedFamilies.has(family) : false;\r\n};\r\n\r\nexport const getRuntimeSuppressedMetadataFamilies = (): RuntimeSuppressionEntry[] =>\r\n Array.from(runtimeSuppressedFamilies.values());\r\n\r\nexport const resetRuntimeSuppressedMetadataFamiliesForTests = () => {\r\n runtimeSuppressedFamilies.clear();\r\n};\r\n"],"mappings":"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","names":[]}
|