@yuuvis/client-framework 0.7.4 → 0.9.0
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/actions/lib/actions/delete-action/delete-action.d.ts +1 -0
- package/common/index.d.ts +1 -0
- package/common/lib/services/error-messages/error-messages.service.d.ts +7 -0
- package/common/lib/services/index.d.ts +1 -0
- package/esm2022/actions/lib/actions/delete-action/delete-action.mjs +4 -10
- package/esm2022/actions/lib/components/contextmenu/contextmenu.component.mjs +2 -2
- package/esm2022/common/index.mjs +2 -1
- package/esm2022/common/lib/directives/drag-select.directive.mjs +2 -2
- package/esm2022/common/lib/services/error-messages/error-messages.service.mjs +68 -0
- package/esm2022/common/lib/services/index.mjs +2 -0
- package/esm2022/forms/index.mjs +13 -8
- package/esm2022/forms/lib/elements/data-grid/data-grid/data-grid.component.mjs +172 -0
- package/esm2022/forms/lib/elements/data-grid/edit-table-data/edit-data.component.mjs +95 -0
- package/esm2022/forms/lib/elements/data-grid/model/data-grid.interface.mjs +9 -0
- package/esm2022/forms/lib/elements/datetime-range/datetime-range.component.mjs +32 -32
- package/esm2022/forms/lib/elements/index.mjs +11 -0
- package/esm2022/forms/lib/elements/number/number.component.mjs +3 -3
- package/esm2022/forms/lib/elements/number-range/number-range.component.mjs +3 -3
- package/esm2022/forms/lib/elements/organization/organization.component.mjs +47 -29
- package/esm2022/forms/lib/elements/range-select-date/date-range-picker/date-range-picker.component.mjs +38 -0
- package/esm2022/forms/lib/elements/range-select-date/range-select-date.component.mjs +181 -0
- package/esm2022/forms/lib/elements/range-select-date/range-select-date.interface.mjs +2 -0
- package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.component.mjs +98 -0
- package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.interface.mjs +2 -0
- package/esm2022/forms/lib/elements/string/string.component.mjs +10 -3
- package/esm2022/icons/lib/icons.mjs +3 -2
- package/esm2022/list/lib/list.component.mjs +6 -4
- package/esm2022/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.mjs +5 -4
- package/esm2022/metadata-form/lib/metadata-form-element-registry.service.mjs +1 -1
- package/esm2022/metadata-form/lib/metadata-form-field/metadata-form-field.component.mjs +9 -52
- package/esm2022/object-details/index.mjs +2 -1
- package/esm2022/object-details/lib/object-audit/object-audit.component.mjs +3 -3
- package/esm2022/object-details/lib/object-metadata/object-metadata.component.mjs +5 -4
- package/esm2022/object-details/lib/retention-badge/retention-badge.component.mjs +27 -0
- package/esm2022/object-flavor/lib/object-flavor/object-flavor.component.mjs +2 -2
- package/esm2022/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.mjs +2 -2
- package/esm2022/object-form/index.mjs +1 -1
- package/esm2022/object-form/lib/object-form.component.mjs +2 -1
- package/esm2022/object-form/lib/object-form.service.mjs +5 -2
- package/esm2022/object-summary/lib/object-summary/object-summary.component.mjs +15 -13
- package/esm2022/pagination/lib/pagination.component.mjs +4 -6
- package/esm2022/sequence-list/index.mjs +1 -3
- package/esm2022/sequence-list/lib/sequence-list.component.mjs +11 -16
- package/esm2022/sequence-list/lib/sequence-list.interface.mjs +1 -1
- package/esm2022/tile-list/lib/tile/tile.component.mjs +3 -3
- package/esm2022/tile-list/lib/tile-config/tile-config.component.mjs +2 -2
- package/esm2022/tile-list/lib/tile-extension/extensions/email.extension.mjs +1 -1
- package/fesm2022/yuuvis-client-framework-actions.mjs +4 -10
- package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-common.mjs +69 -4
- package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-forms.mjs +1335 -755
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-icons.mjs +2 -1
- package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-list.mjs +5 -3
- package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs +12 -55
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-details.mjs +28 -7
- package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs +2 -2
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-form.mjs +5 -1
- package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-summary.mjs +14 -12
- package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-pagination.mjs +3 -5
- package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs +17 -296
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +3 -3
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
- package/forms/index.d.ts +5 -7
- package/forms/lib/elements/data-grid/data-grid/data-grid.component.d.ts +38 -0
- package/forms/lib/elements/data-grid/edit-table-data/edit-data.component.d.ts +21 -0
- package/forms/lib/elements/data-grid/model/data-grid.interface.d.ts +14 -0
- package/forms/lib/elements/datetime-range/datetime-range.component.d.ts +2 -1
- package/forms/lib/elements/index.d.ts +10 -0
- package/forms/lib/elements/organization/organization.component.d.ts +13 -4
- package/forms/lib/elements/range-select-date/date-range-picker/date-range-picker.component.d.ts +13 -0
- package/forms/lib/elements/range-select-date/range-select-date.component.d.ts +33 -0
- package/forms/lib/elements/range-select-date/range-select-date.interface.d.ts +5 -0
- package/forms/lib/elements/range-select-filesize/range-select-filesize.component.d.ts +28 -0
- package/forms/lib/elements/range-select-filesize/range-select-filesize.interface.d.ts +5 -0
- package/list/lib/list.component.d.ts +2 -1
- package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +1 -1
- package/object-details/index.d.ts +1 -0
- package/object-details/lib/retention-badge/retention-badge.component.d.ts +12 -0
- package/package.json +10 -10
- package/sequence-list/index.d.ts +0 -2
- package/sequence-list/lib/sequence-list.component.d.ts +2 -2
- package/sequence-list/lib/sequence-list.interface.d.ts +5 -4
- package/styles/client-framework.scss +55 -18
- package/esm2022/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.mjs +0 -183
- package/esm2022/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.mjs +0 -114
- package/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.d.ts +0 -52
- package/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.d.ts +0 -36
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yuuvis-client-framework-object-details.mjs","sources":["../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-audit/object-audit.component.ts","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-audit/object-audit.component.html","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-details-shell/object-details-shell.component.ts","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-details-shell/object-details-shell.component.html","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-metadata/object-metadata.component.ts","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-metadata/object-metadata.component.html","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-details.component.ts","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-details.component.html","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-metadata/form-section-group.pipe.ts","../../../../../libs/yuuvis/client-framework/object-details/src/yuuvis-client-framework-object-details.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, computed, effect, input, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport {\n AppCacheService,\n AuditEntry,\n AuditQueryResult,\n AuditService,\n BackendService,\n DmsObject,\n EventService,\n LocaleDatePipe,\n SystemService,\n TranslateModule,\n TranslateService,\n YuvEvent,\n YuvEventType\n} from '@yuuvis/client-core';\nimport { BusyOverlayDirective } from '@yuuvis/client-framework/common';\nimport { YUV_ICONS } from '@yuuvis/client-framework/icons';\nimport { YvcIconModule } from '@yuuvis/components/icon';\nimport { finalize } from 'rxjs';\n\n@Component({\n selector: 'yuv-object-audit',\n standalone: true,\n imports: [CommonModule, RouterLink, ReactiveFormsModule, BusyOverlayDirective, LocaleDatePipe, TranslateModule, YvcIconModule],\n templateUrl: './object-audit.component.html',\n styleUrl: './object-audit.component.scss'\n})\nexport class ObjectAuditComponent {\n private FILTER_CACHE_KEY = 'yuv.audit.filters';\n\n private _objectID?: string;\n private _objectTypeID?: string;\n\n icons = {\n filter: YUV_ICONS.filter,\n arrowNext: YUV_ICONS.arrowNext\n };\n\n auditsRes?: AuditQueryResult;\n resolvedItems = signal<ReslovedAuditEntry[]>([]);\n searchPanelShow = false;\n error = false;\n busy = false;\n searchActions: { label: string; actions: string[] }[] = [];\n auditLabels: any = {};\n\n dmsObject = input<DmsObject | undefined>(undefined);\n\n #dmsObjectEffect = effect(() => {\n const o = this.dmsObject();\n if (!o) {\n this._objectID = undefined;\n this._objectTypeID = undefined;\n this.auditsRes = undefined;\n } else if (!this._objectID || this._objectID !== o.id) {\n this._objectID = o.id;\n this._objectTypeID = o.objectTypeId;\n this.query();\n } else {\n this.query();\n }\n });\n\n /**\n * A list of audits that should not be shown. Use the audit codes (like 100, 301, etc.).\n * This will also disable the corresponding filters.\n */\n skipActions = input<number[]>([]);\n\n /**\n * Whether or not to ignore admin and user separation of audit entries\n */\n allActions = input(false);\n\n get objectID() {\n return this._objectID;\n }\n\n link = input<string | undefined>(undefined, { alias: 'versionsLink' });\n\n versionsLink = computed(() => {\n const link = this.link();\n\n return link ? `${link}` : undefined;\n });\n\n constructor(\n private auditService: AuditService,\n private backend: BackendService,\n private appCache: AppCacheService,\n private eventService: EventService,\n private system: SystemService,\n private fb: UntypedFormBuilder,\n private translate: TranslateService\n // private iconRegistry: IconRegistryService,\n // @Inject(ROUTES) private routes: YuvRoutes\n ) {\n // this.versionStatePath = this.routes && this.routes.versions ? this.routes.versions.path : null;\n // this.versionStateQueryParam = this.routes && this.routes.versions ? this.routes.versions.queryParams.version : null;\n // this.iconRegistry.registerIcons([filter, arrowNext, arrowNext]);\n this.auditLabels = {\n a100: this.translate.instant('yuv.audit.label.create.metadata'),\n a101: this.translate.instant('yuv.audit.label.create.metadata.withcontent'),\n a110: this.translate.instant('yuv.audit.label.create.tag'),\n\n a200: this.translate.instant('yuv.audit.label.delete'),\n a201: this.translate.instant('yuv.audit.label.delete.content'), // #v\n a202: this.translate.instant('yuv.audit.label.delete.marked'),\n a210: this.translate.instant('yuv.audit.label.delete.tag'), // #v\n a220: this.translate.instant('yuv.audit.label.delete.version'), // #v\n\n a300: this.translate.instant('yuv.audit.label.update.metadata'),\n a301: this.translate.instant('yuv.audit.label.update.content'),\n a302: this.translate.instant('yuv.audit.label.update.metadata.withcontent'),\n a303: this.translate.instant('yuv.audit.label.update.move.content'),\n a310: this.translate.instant('yuv.audit.label.update.tag'),\n a325: this.translate.instant('yuv.audit.label.update.restore'),\n a340: this.translate.instant('yuv.audit.label.update.move'),\n\n a400: this.translate.instant('yuv.audit.label.get.content'),\n a401: this.translate.instant('yuv.audit.label.get.metadata'),\n a402: this.translate.instant('yuv.audit.label.get.rendition.text'),\n a403: this.translate.instant('yuv.audit.label.get.rendition.pdf'),\n a404: this.translate.instant('yuv.audit.label.get.rendition.thumbnail'),\n\n a10000: this.translate.instant('yuv.audit.label.get.custom')\n };\n\n this.eventService\n .on(YuvEventType.DMS_OBJECT_UPDATED)\n .pipe(takeUntilDestroyed())\n .subscribe((e: YuvEvent) => {\n const dmsObject = e.data as DmsObject;\n // reload audit entries when update belongs to the current dms object\n if (dmsObject.id === this.objectID) {\n this.query();\n }\n });\n }\n\n private fetchAuditEntries() {\n if (!this._objectID || !this._objectTypeID) return;\n this.error = false;\n this.busy = true;\n\n this.auditService\n .getAuditEntries(this._objectID, { skipActions: this.skipActions() })\n .pipe(finalize(() => (this.busy = false)))\n .subscribe({\n next: (res: AuditQueryResult) => {\n this.auditsRes = res;\n this.resolvedItems.set(this.mapResult(res));\n },\n error: () => {\n this.onError();\n }\n });\n }\n\n private mapResult(res: AuditQueryResult): ReslovedAuditEntry[] {\n return (\n res.items\n // TODO: Remove this filter once the system:ren:text audit lifecycle planning is complete and the tag's purpose is fully defined.\n // https://help.optimal-systems.com/yuuvis/Momentum/latest/index.html#_content_renditions_asynchronous_full_text_indexing.html\n .filter((i) => !i.detail.includes('[system:ren:text, 1]'))\n .map((i) => {\n const r: ReslovedAuditEntry = { ...i, label: this.auditLabels['a' + i.action] };\n // tag related audits\n if ([110, 210, 310].includes(i.action)) {\n const params = this.getAuditEntryParams(i);\n if (params) {\n r.more = `\n ${this.system.getLocalizedLabel(params[0])}: ${this.system.getLocalizedLabel(`${params[0]}:${params[1]}`)}\n `;\n }\n }\n // restore audit\n else if (i.action === 325) {\n const params = this.getAuditEntryParams(i);\n r.more = this.translate.instant('yuv.audit.label.update.restore.more', { version: params[0] || '[?]' });\n }\n // custom audits\n else if (i.action === 10000) {\n r.label = this.system.getLocalizedLabel(`audit:custom:${i.subaction}`) || `${i.subaction}`;\n }\n return r;\n })\n );\n }\n\n private getAuditEntryParams(auditItem: AuditEntry): string[] {\n const m = auditItem.detail.match(/\\[(.*?)\\]/);\n return m && m[1] ? m[1].split(',').map((i) => i.trim()) : [];\n }\n\n /**\n * Execute a query from the search panel.\n */\n query() {\n this.fetchAuditEntries();\n }\n\n goToPage(page: number) {\n if (this.auditsRes) {\n this.busy = true;\n this.auditService\n .getPage(this.auditsRes, page)\n .pipe(finalize(() => (this.busy = false)))\n .subscribe({\n next: (res: AuditQueryResult) => {\n this.auditsRes = res;\n this.resolvedItems.set(this.mapResult(res));\n },\n error: () => {\n this.onError();\n }\n });\n }\n }\n\n private onError() {\n this.auditsRes = undefined;\n this.error = true;\n }\n}\n\ninterface ReslovedAuditEntry extends AuditEntry {\n label: string;\n}\n","<div class=\"yuv-audit\" [ngClass]=\"{ singleEntry: auditsRes?.items?.length === 1, onPage: auditsRes && auditsRes.page > 1 }\" [yuvBusyOverlay]=\"busy\">\n @if (error) {\n <div class=\"error\">\n <div translate>yuv.audit.fetch.error</div>\n </div>\n }\n\n @if (auditsRes) {\n <!-- list of audits -->\n @let resItems = resolvedItems();\n @if (resItems.length) {\n <div class=\"timeline\">\n @for (item of resItems; track $index) {\n <div class=\"audit\">\n <div class=\"date\">{{ item.creationDate | localeDate }}</div>\n <div class=\"node\">\n <div class=\"label\">\n <span class=\"title\">{{ item.label }}</span>\n @if (item.detail === 'OBJECT_DOCUMENT_CHANGED') {\n @if (link()) {\n <a class=\"version\" [routerLink]=\"link()\" [queryParams]=\"{ version: item.version }\">{{ item.version }}</a>\n } @else {\n <span class=\"version\">{{ item.version }}</span>\n }\n }\n </div>\n <div class=\"more meta\">{{ item.more }}</div>\n <div class=\"creator meta\">{{ item.createdBy.title }}</div>\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"empty\" translate>yuv.audit.result.empty</div>\n }\n\n <!-- controls -->\n @if (auditsRes.hasMoreItems || auditsRes.page > 1) {\n <div class=\"footer\" yuvOfflineDisabled>\n <div class=\"paging\">\n <button [attr.aria-label]=\"'yuv.audit.label.paging.prev' | translate\" [disabled]=\"auditsRes.page === 1\" (click)=\"goToPage(auditsRes.page - 1)\">\n <yvc-icon class=\"prev\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n <div class=\"page\">\n {{ auditsRes.page }}\n </div>\n <button [attr.aria-label]=\"'yuv.audit.label.paging.next' | translate\" [disabled]=\"!auditsRes.hasMoreItems\" (click)=\"goToPage(auditsRes.page + 1)\">\n <yvc-icon class=\"next\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n </div>\n </div>\n }\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n DmsObject,\n DmsService,\n EventService,\n ObjectConfigRecord,\n ObjectConfigService,\n RetentionField,\n SystemService,\n TranslateService,\n UserService,\n YuvEvent,\n YuvEventType\n} from '@yuuvis/client-core';\nimport { BusyOverlayDirective } from '@yuuvis/client-framework/common';\nimport { PanelComponent } from '@yuuvis/client-framework/panel';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'yuv-object-details-shell',\n standalone: true,\n imports: [CommonModule, PanelComponent, BusyOverlayDirective],\n templateUrl: './object-details-shell.component.html',\n styleUrls: ['./object-details-shell.component.scss']\n})\nexport class ObjectDetailsShellComponent implements OnInit, OnDestroy {\n private translate = inject(TranslateService);\n private objectConfigService = inject(ObjectConfigService);\n private eventService = inject(EventService);\n private dmsService = inject(DmsService);\n private systemService = inject(SystemService);\n private userService = inject(UserService);\n\n private _subs: Subscription[] = [];\n _dmsObject?: DmsObject;\n contextError?: string;\n objectTypeId?: string;\n retentionEndDate?: Date;\n retentionEnded?: boolean;\n fileDropLabel?: string;\n busy = false;\n isAdvancedUser = this.userService.isAdvancedUser;\n\n private oc?: ObjectConfigRecord;\n headerData?: {\n icon?: {\n src?: string;\n svg?: string;\n title?: string;\n };\n title?: string;\n description?: string;\n };\n\n /**\n * ID to store the components layout state (splitted tabs, gutter position)\n */\n @Input() layoutSettingsID?: string;\n /**\n * DmsObject to show the details for.\n */\n @Input()\n set dmsObject(o: DmsObject | undefined) {\n this._dmsObject = o;\n // this.objectTypeId = o ? this.systemService.getLeadingObjectTypeID(o.objectTypeId, o.data[BaseObjectTypeField.SECONDARY_OBJECT_TYPE_IDS] as string) : undefined;\n\n if (this._dmsObject) {\n this._getHeaderData();\n this.retentionEndDate = this._dmsObject.data[RetentionField.RETENTION_END]\n ? new Date(this._dmsObject.data[RetentionField.RETENTION_END] as string)\n : undefined;\n const today = new Date();\n this.retentionEnded = this.retentionEndDate && today > this.retentionEndDate;\n }\n }\n\n get dmsObject() {\n return this._dmsObject;\n }\n\n @Output() dmsObjectChange = new EventEmitter<DmsObject>();\n\n /**\n * ID of a DmsObject. The object will be fetched from the backend upfront.\n */\n @Input()\n set objectId(id: string | undefined) {\n if (id) {\n this._getDmsObject(id);\n } else {\n this.dmsObject = undefined;\n }\n }\n\n constructor() {\n this.objectConfigService\n .getObjectConfigs$()\n // this.objectConfigService.getObjectConfigs$(this.bucket || '')\n .pipe(takeUntilDestroyed())\n .subscribe((res: ObjectConfigRecord) => {\n this.oc = res;\n if (this._dmsObject) this._getHeaderData();\n });\n\n this.eventService\n .on(YuvEventType.DMS_OBJECT_UPDATED)\n .pipe(takeUntilDestroyed())\n .subscribe((e: YuvEvent) => {\n const o = e.data as DmsObject;\n if (this._dmsObject && this._dmsObject.id === o.id) this.dmsObject = o;\n });\n }\n\n private _getHeaderData() {\n if (this._dmsObject) {\n const oc = this.oc![this._dmsObject.objectTypeId];\n // const ic = oc.icon ? (this._dmsObject.data[oc.icon.propertyName] as string) : this._dmsObject.objectTypeId;\n\n const icon: { title?: string; svg?: string; src?: string } = {\n title: this.systemService.getLocalizedLabel(this._dmsObject.objectTypeId)\n };\n\n if (oc.icon) icon.svg = oc.icon.svg;\n else icon.src = this.systemService.getObjectTypeIconUri(this._dmsObject.objectTypeId);\n\n this.headerData = {\n icon,\n title: oc.title ? (this.dmsObject?.data[oc.title.propertyName] as string) : undefined,\n description: oc.description ? (this.dmsObject?.data[oc.description.propertyName] as string) : undefined\n };\n } else this.headerData = undefined;\n }\n\n private _getDmsObject(id: string) {\n this.busy = true;\n this.dmsService.getDmsObject(id).subscribe({\n next: (dmsObject) => (this.dmsObject = dmsObject),\n error: () => {\n this.dmsObject = undefined;\n this.contextError = this.translate.instant('yuv.object-metadata.context.load.error');\n },\n complete: () => {\n this.busy = false;\n this.dmsObjectChange.emit(this.dmsObject);\n }\n });\n }\n\n ngOnInit(): void {\n this._subs.push(\n this.eventService.on(YuvEventType.DMS_OBJECT_DELETED).subscribe((event) => {\n if (event.data?.id === this._dmsObject?.id) {\n this._dmsObject = undefined;\n }\n })\n );\n }\n\n ngOnDestroy(): void {\n this._subs.forEach((s) => s.unsubscribe());\n }\n}\n","<yuv-panel\n *ngIf=\"dmsObject; else tplEmpty\"\n [yuvBusyOverlay]=\"busy\"\n [icon]=\"headerData?.icon\"\n [title]=\"headerData?.title\"\n [description]=\"headerData?.description\"\n>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</yuv-panel>\n\n<ng-template #tplEmpty>\n <div class=\"empty\">\n <div class=\"error\" *ngIf=\"contextError; else tplEmptyNoError\">{{ contextError }}</div>\n </div>\n</ng-template>\n\n<ng-template #tplEmptyNoError> EMPTY </ng-template>\n\n\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnDestroy, effect, inject, input, output, signal, untracked, viewChildren } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport {\n DmsObject,\n DmsService,\n FlavoredDmsObject,\n NotificationService,\n ObjectTypeFlavor,\n PendingChangesService,\n Situation,\n SystemService,\n TranslateModule,\n TranslateService\n} from '@yuuvis/client-core';\nimport { FormStatusChangedEvent, ObjectFormComponent, ObjectFormOptions } from '@yuuvis/client-framework/object-form';\nimport { ICONS, YvcIconModule } from '@yuuvis/components/icon';\nimport { Subscription, tap } from 'rxjs';\n\n@Component({\n selector: 'yuv-object-metadata',\n standalone: true,\n imports: [CommonModule, ObjectFormComponent, TranslateModule, ReactiveFormsModule, YvcIconModule],\n templateUrl: './object-metadata.component.html',\n styleUrl: './object-metadata.component.scss',\n host: {\n '[class.empty]': 'empty()'\n }\n})\nexport class ObjectMetadataComponent implements OnDestroy {\n #pendingChanges = inject(PendingChangesService);\n #notificationService = inject(NotificationService);\n translate = inject(TranslateService);\n #system = inject(SystemService);\n #dmsService = inject(DmsService);\n\n objectForms = viewChildren<ObjectFormComponent>(ObjectFormComponent);\n\n #pendingTaskId?: string;\n #dmsObject?: DmsObject;\n #formSubscriptions: Subscription[] = [];\n #initialData: Record<string, unknown> = {};\n\n arrow = ICONS.arrowDown;\n busy = signal<boolean>(false);\n empty = signal<boolean>(false);\n controlsVisible = signal<boolean>(false);\n\n // form of the dms object itself\n mainFormOptions = signal<ObjectFormOptions | undefined>(undefined);\n // forms off allpied flavors\n flavorFormOptions = signal<\n {\n id: string;\n label: string;\n icon?: string;\n formOptions: ObjectFormOptions;\n }[]\n >([]);\n // state of all individual forms\n #formStates: Map<string, FormStatusChangedEvent> = new Map<string, FormStatusChangedEvent>();\n\n /**\n * Form situation, if not set default will be 'EDIT'\n */\n @Input() situation: Situation = Situation.EDIT;\n /**\n * Set to 'true' to prevent all metadata from being edited\n */\n @Input() formDisabled = false;\n\n dmsObject = input<DmsObject | undefined>();\n #dmsObjectEffect = effect(() => {\n this.#init(this.dmsObject());\n });\n\n flavoredDmsObject = input<FlavoredDmsObject | undefined>();\n #flavoredDmsObjectEffect = effect(() => {\n const flavoredDmsObject = this.flavoredDmsObject();\n this.#init(flavoredDmsObject?.object, flavoredDmsObject?.flavors);\n });\n combinedFormState?: FormStatusChangedEvent;\n\n /**\n * Emits the updated `DmsObject` when metadata have been saved.\n */\n indexDataSaved = output<DmsObject>();\n /**\n * Emits the current state of the metadata form.\n */\n statusChanged = output<FormStatusChangedEvent>();\n\n #init(object?: DmsObject, flavors?: ObjectTypeFlavor[]) {\n if (object && (!this.#dmsObject || this.#dmsObject !== object)) {\n this.#initialData = structuredClone(object.data);\n this.#objectToForm(object, flavors);\n }\n this.#dmsObject = object;\n }\n\n #objectToForm(object?: DmsObject, flavors?: ObjectTypeFlavor[]) {\n if (object) {\n const mappedFlavors: Record<string, ObjectTypeFlavor> = (flavors || []).reduce((acc, curr) => ({ ...acc, [curr.sot]: curr }), {});\n this.#system.getObjectTypeForms([object.objectTypeId, ...(flavors || []).map((f) => f.sot)], this.situation).subscribe({\n next: (res) => {\n this.mainFormOptions.set(\n res[object.objectTypeId]\n ? {\n formModel: res[object.objectTypeId],\n data: object.data,\n disabled: this.formDisabled || !object.permissions?.writeIndexData,\n }\n : undefined\n );\n this.flavorFormOptions.set(\n Object.keys(res)\n .filter((id) => id !== object.objectTypeId)\n .map((id) => ({\n id,\n label: res[id].label,\n icon: mappedFlavors[id]?.icon,\n formOptions: {\n formModel: res[id],\n data: object.data\n }\n }))\n );\n\n this.empty.set(!this.mainFormOptions() && !this.flavorFormOptions().length);\n }\n });\n }\n }\n\n onFormStatusChanged(formId: string, evt: FormStatusChangedEvent) {\n this.#formStates.set(formId, evt);\n this.#getCombinedFormState();\n if (this.combinedFormState?.dirty) this.#startPending();\n else this.#finishPending();\n this.controlsVisible.set(!!this.combinedFormState?.dirty);\n if (this.combinedFormState) this.statusChanged.emit(this.combinedFormState);\n }\n\n #getCombinedFormState(): FormStatusChangedEvent {\n const combinedFormState = {\n dirty: false,\n indexdataChanged: false,\n invalid: false,\n data: {}\n };\n this.#formStates.forEach((s) => {\n if (s.dirty) {\n combinedFormState.dirty = s.dirty;\n }\n if (s.indexdataChanged) {\n combinedFormState.indexdataChanged = s.indexdataChanged;\n }\n if (s.invalid) {\n combinedFormState.invalid = s.invalid;\n }\n combinedFormState.data = { ...combinedFormState.data, ...s.data };\n });\n this.combinedFormState = combinedFormState;\n return this.combinedFormState;\n }\n\n #setCombinedFormPristine() {\n this.objectForms().forEach((f) => {\n f.setFormPristine();\n });\n }\n\n save() {\n if (this.#dmsObject && this.combinedFormState) {\n this.busy.set(true);\n this.#dmsService.updateDmsObject(this.#dmsObject.id, this.combinedFormState.data).subscribe({\n next: () => {\n this.#setCombinedFormPristine();\n this.indexDataSaved.emit(this.#dmsObject!);\n this.#finishPending();\n },\n error: (err) => {\n this.#notificationService.error(\n '',\n // this._dmsObject?.title || '',\n err.status === 404 ? this.translate.instant('yuv.object-metadata.context.load.error') : this.translate.instant('yuv.object-metadata.save.error')\n );\n },\n complete: () => {\n this.controlsVisible.set(false);\n this.busy.set(false);\n }\n });\n }\n }\n /**\n * Reset te form to its initial state\n */\n resetForm() {\n if (this.objectForms()?.length) {\n this.objectForms().forEach((f) => {\n f.resetForm();\n });\n this.#formStates.clear();\n }\n }\n\n #startPending() {\n // because this method will be called every time the form status changes,\n // pending task will only be started once until it was finished\n if (!this.#pendingChanges.hasPendingTask(this.#pendingTaskId || ' ')) {\n this.#pendingTaskId = this.#pendingChanges.startTask(this.translate.instant('yuv.object-metadata.pending-changes.alert'));\n }\n }\n\n #finishPending() {\n if (this.#pendingTaskId) this.#pendingChanges.finishTask(this.#pendingTaskId);\n }\n\n ngOnDestroy(): void {\n this.#formSubscriptions.forEach((s) => s.unsubscribe());\n }\n}\n","<main>\n @if (empty()) {\n <div class=\"empty\">\n <p>{{ 'yuv.object-metadata.empty.message' | translate }}</p>\n </div>\n } @else {\n <yuv-object-form [formOptions]=\"mainFormOptions()\" (statusChanged)=\"onFormStatusChanged('main', $event)\"></yuv-object-form>\n\n @for (fo of flavorFormOptions(); track $index) {\n <details [attr.open]=\"$index === 0\">\n <summary><yvc-icon [svg]=\"fo.icon\"></yvc-icon> {{ fo.label }}<yvc-icon class=\"arr\" [svg]=\"arrow\"></yvc-icon></summary>\n <yuv-object-form [formOptions]=\"fo.formOptions\" (statusChanged)=\"onFormStatusChanged(fo.id, $event)\"></yuv-object-form>\n </details>\n }\n }\n</main>\n<footer [ngClass]=\"{ visible: controlsVisible() }\">\n <button class=\"secondary\" (click)=\"resetForm()\" [hidden]=\"!combinedFormState?.dirty\" [disabled]=\"!combinedFormState?.dirty\">\n {{ 'yuv.object-metadata.button.reset' | translate }}\n </button>\n <button class=\"primary\" [ngClass]=\"{ spinning: busy() }\" (click)=\"save()\" [disabled]=\"!combinedFormState?.dirty || combinedFormState?.invalid\">\n {{ 'yuv.object-metadata.button.save' | translate }}\n </button>\n</footer>\n","import { CommonModule, JsonPipe } from '@angular/common';\nimport { Component, Input, inject, signal } from '@angular/core';\nimport { ConfigService, DmsObject, UserService } from '@yuuvis/client-core';\nimport { SplitTabsLayoutSettings, YvcSplitTabsModule } from '@yuuvis/components/split-tabs';\nimport { YuvMediaViewerComponent } from '@yuuvis/media-viewer';\nimport { ObjectAuditComponent } from './object-audit/object-audit.component';\nimport { ObjectDetailsShellComponent } from './object-details-shell/object-details-shell.component';\nimport { ObjectMetadataComponent } from './object-metadata/object-metadata.component';\n\n@Component({\n selector: 'yuv-object-details',\n standalone: true,\n imports: [JsonPipe, CommonModule, YvcSplitTabsModule, ObjectDetailsShellComponent, YuvMediaViewerComponent, ObjectMetadataComponent, ObjectAuditComponent],\n templateUrl: './object-details.component.html',\n styleUrls: ['./object-details.component.scss']\n})\nexport class ObjectDetailsComponent {\n readonly #configService = inject(ConfigService);\n readonly #userService = inject(UserService);\n\n isAdvancedUser = this.#userService.isAdvancedUser;\n _splitTabConfig: SplitTabsLayoutSettings = {};\n\n currentUser = signal(this.#userService.getCurrentUser());\n\n /**\n * If you want to set the order of the tabs within object details, you can use\n * this input property. The tab order will be defined by the index of the\n * input array containing the following values in the desired order:\n *\n * - `summary`: Object summary tab\n * - `indexdata`: Indexdata edit form tab\n * - `preview`: Content preview tab\n * - `history: Object history tab (audits)\n */\n @Input() set panelOrder(po: string[] | undefined) {\n const def = ['summary', 'indexdata', 'preview', 'history'];\n po = po || def;\n this._splitTabConfig = {\n primary: {\n tabs: po,\n active: po[0]\n }\n };\n }\n /**\n * ID to store the components layout state (splitted tabs, gutter position)\n */\n @Input() layoutSettingsID?: string;\n /**\n * DmsObject to show the details for.\n */\n @Input() dmsObject?: DmsObject;\n /**\n * ID of a DmsObject. The object will be fetched from the backend upfront.\n */\n @Input() objectId?: string;\n\n constructor() {\n if (this.#configService.get('client.objectDetailsTabs')) this.panelOrder = this.#configService.get('client.objectDetailsTabs');\n }\n\n onIndexdataSaved(updatedObject: DmsObject) {\n this.dmsObject = updatedObject;\n }\n\n // versionSelected(version: number) {\n // const nav = ['../..', 'version'];\n // this.#router.navigate([...nav, this.dmsObject?.version], { queryParams: { version }, relativeTo: this.#route });\n // }\n}\n","<yuv-object-details-shell [objectId]=\"objectId\" [(dmsObject)]=\"dmsObject\" [layoutSettingsID]=\"layoutSettingsID\">\n <yvc-split-tabs class=\"content\" [config]=\"_splitTabConfig\" [layoutSettingsID]=\"layoutSettingsID\">\n <!-- content -->\n <ng-template [yvcTab]=\"{ id: 'content', label: 'yuv.object-details.tabs.content.title' | translate }\">\n @if (dmsObject && dmsObject.content) {\n <yuv-media-viewer\n [id]=\"dmsObject.id\"\n [metadata]=\"{ data: dmsObject.data, editable: true, user: currentUser() }\"\n [type]=\"dmsObject.content.mimeType\"\n ></yuv-media-viewer>\n }\n\n <span>{{ currentUser() | json }}</span>\n </ng-template>\n <!-- indexdata -->\n <ng-template [yvcTab]=\"{ id: 'indexdata', label: 'yuv.object-metadata.tabs.indexdata.title' | translate }\">\n <yuv-object-metadata [dmsObject]=\"dmsObject\" (indexDataSaved)=\"onIndexdataSaved($event)\"> </yuv-object-metadata>\n </ng-template>\n <!-- history -->\n <ng-template [yvcTab]=\"{ id: 'history', label: 'yuv.object-metadata.tabs.history.title' | translate }\">\n <yuv-object-audit [dmsObject]=\"dmsObject\"></yuv-object-audit>\n </ng-template>\n </yvc-split-tabs>\n</yuv-object-details-shell>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Pipe({\n name: 'formSectionGroup',\n standalone: true \n})\nexport class FormSectionGroupPipe implements PipeTransform {\n transform(form: FormGroup, id: string): FormGroup {\n return form.get(id) as FormGroup;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"yuuvis-client-framework-object-details.mjs","sources":["../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-audit/object-audit.component.ts","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-audit/object-audit.component.html","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-details-shell/object-details-shell.component.ts","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-details-shell/object-details-shell.component.html","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-metadata/object-metadata.component.ts","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-metadata/object-metadata.component.html","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-details.component.ts","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-details.component.html","../../../../../libs/yuuvis/client-framework/object-details/src/lib/object-metadata/form-section-group.pipe.ts","../../../../../libs/yuuvis/client-framework/object-details/src/lib/retention-badge/retention-badge.component.ts","../../../../../libs/yuuvis/client-framework/object-details/src/lib/retention-badge/retention-badge.component.html","../../../../../libs/yuuvis/client-framework/object-details/src/yuuvis-client-framework-object-details.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, computed, effect, input, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport {\n AppCacheService,\n AuditEntry,\n AuditQueryResult,\n AuditService,\n BackendService,\n DmsObject,\n EventService,\n LocaleDatePipe,\n SystemService,\n TranslateModule,\n TranslateService,\n YuvEvent,\n YuvEventType\n} from '@yuuvis/client-core';\nimport { BusyOverlayDirective } from '@yuuvis/client-framework/common';\nimport { YUV_ICONS } from '@yuuvis/client-framework/icons';\nimport { YvcIconModule } from '@yuuvis/components/icon';\nimport { finalize } from 'rxjs';\n\n@Component({\n selector: 'yuv-object-audit',\n standalone: true,\n imports: [CommonModule, RouterLink, ReactiveFormsModule, BusyOverlayDirective, LocaleDatePipe, TranslateModule, YvcIconModule],\n templateUrl: './object-audit.component.html',\n styleUrl: './object-audit.component.scss'\n})\nexport class ObjectAuditComponent {\n private FILTER_CACHE_KEY = 'yuv.audit.filters';\n\n private _objectID?: string;\n private _objectTypeID?: string;\n\n icons = {\n filter: YUV_ICONS.filter,\n arrowNext: YUV_ICONS.arrowNext\n };\n\n auditsRes?: AuditQueryResult;\n resolvedItems = signal<ReslovedAuditEntry[]>([]);\n searchPanelShow = false;\n error = false;\n busy = false;\n searchActions: { label: string; actions: string[] }[] = [];\n auditLabels: any = {};\n\n dmsObject = input<DmsObject | undefined>(undefined);\n\n #dmsObjectEffect = effect(() => {\n const o = this.dmsObject();\n if (!o) {\n this._objectID = undefined;\n this._objectTypeID = undefined;\n this.auditsRes = undefined;\n } else if (!this._objectID || this._objectID !== o.id) {\n this._objectID = o.id;\n this._objectTypeID = o.objectTypeId;\n this.query();\n } else {\n this.query();\n }\n });\n\n /**\n * A list of audits that should not be shown. Use the audit codes (like 100, 301, etc.).\n * This will also disable the corresponding filters.\n */\n skipActions = input<number[]>([]);\n\n /**\n * Whether or not to ignore admin and user separation of audit entries\n */\n allActions = input(false);\n\n get objectID() {\n return this._objectID;\n }\n\n link = input<string | undefined>(undefined, { alias: 'versionsLink' });\n\n versionsLink = computed(() => {\n const link = this.link();\n\n return link ? `${link}` : undefined;\n });\n\n constructor(\n private auditService: AuditService,\n private backend: BackendService,\n private appCache: AppCacheService,\n private eventService: EventService,\n private system: SystemService,\n private fb: UntypedFormBuilder,\n private translate: TranslateService\n // private iconRegistry: IconRegistryService,\n // @Inject(ROUTES) private routes: YuvRoutes\n ) {\n // this.versionStatePath = this.routes && this.routes.versions ? this.routes.versions.path : null;\n // this.versionStateQueryParam = this.routes && this.routes.versions ? this.routes.versions.queryParams.version : null;\n // this.iconRegistry.registerIcons([filter, arrowNext, arrowNext]);\n this.auditLabels = {\n a100: this.translate.instant('yuv.audit.label.create.metadata'),\n a101: this.translate.instant('yuv.audit.label.create.metadata.withcontent'),\n a110: this.translate.instant('yuv.audit.label.create.tag'),\n\n a200: this.translate.instant('yuv.audit.label.delete'),\n a201: this.translate.instant('yuv.audit.label.delete.content'), // #v\n a202: this.translate.instant('yuv.audit.label.delete.marked'),\n a210: this.translate.instant('yuv.audit.label.delete.tag'), // #v\n a220: this.translate.instant('yuv.audit.label.delete.version'), // #v\n\n a300: this.translate.instant('yuv.audit.label.update.metadata'),\n a301: this.translate.instant('yuv.audit.label.update.content'),\n a302: this.translate.instant('yuv.audit.label.update.metadata.withcontent'),\n a303: this.translate.instant('yuv.audit.label.update.move.content'),\n a310: this.translate.instant('yuv.audit.label.update.tag'),\n a325: this.translate.instant('yuv.audit.label.update.restore'),\n a340: this.translate.instant('yuv.audit.label.update.move'),\n\n a400: this.translate.instant('yuv.audit.label.get.content'),\n a401: this.translate.instant('yuv.audit.label.get.metadata'),\n a402: this.translate.instant('yuv.audit.label.get.rendition.text'),\n a403: this.translate.instant('yuv.audit.label.get.rendition.pdf'),\n a404: this.translate.instant('yuv.audit.label.get.rendition.thumbnail'),\n\n a10000: this.translate.instant('yuv.audit.label.get.custom')\n };\n\n this.eventService\n .on(YuvEventType.DMS_OBJECT_UPDATED)\n .pipe(takeUntilDestroyed())\n .subscribe((e: YuvEvent) => {\n const dmsObject = e.data as DmsObject;\n // reload audit entries when update belongs to the current dms object\n if (dmsObject.id === this.objectID) {\n this.query();\n }\n });\n }\n\n private fetchAuditEntries() {\n if (!this._objectID || !this._objectTypeID) return;\n this.error = false;\n this.busy = true;\n\n this.auditService\n .getAuditEntries(this._objectID, { skipActions: this.skipActions() })\n .pipe(finalize(() => (this.busy = false)))\n .subscribe({\n next: (res: AuditQueryResult) => {\n this.auditsRes = res;\n this.resolvedItems.set(this.mapResult(res));\n },\n error: () => {\n this.onError();\n }\n });\n }\n\n private mapResult(res: AuditQueryResult): ReslovedAuditEntry[] {\n return (\n res.items\n // TODO: Remove this filter once the system:ren:text audit lifecycle planning is complete and the tag's purpose is fully defined.\n // https://help.optimal-systems.com/yuuvis/Momentum/latest/index.html#_content_renditions_asynchronous_full_text_indexing.html\n .filter((i) => !i.detail.includes('[system:ren:text, 1]'))\n .map((i) => {\n const r: ReslovedAuditEntry = { ...i, label: this.auditLabels['a' + i.action] };\n // tag related audits\n if ([110, 210, 310].includes(i.action)) {\n const params = this.getAuditEntryParams(i);\n if (params) {\n r.more = `\n ${this.system.getLocalizedLabel(params[0])}: ${this.system.getLocalizedLabel(`${params[0]}:${params[1]}`)}\n `;\n }\n }\n // restore audit\n else if (i.action === 325) {\n const params = this.getAuditEntryParams(i);\n r.more = this.translate.instant('yuv.audit.label.update.restore.more', { version: params[0] || '[?]' });\n }\n // custom audits\n else if (i.action === 10000) {\n r.label = this.system.getLocalizedLabel(`audit:custom:${i.subaction}`) || `${i.subaction}`;\n }\n return r;\n })\n );\n }\n\n private getAuditEntryParams(auditItem: AuditEntry): string[] {\n const m = auditItem.detail.match(/\\[(.*?)\\]/);\n return m && m[1] ? m[1].split(',').map((i) => i.trim()) : [];\n }\n\n /**\n * Execute a query from the search panel.\n */\n query() {\n this.fetchAuditEntries();\n }\n\n goToPage(page: number) {\n if (this.auditsRes) {\n this.busy = true;\n this.auditService\n .getPage(this.auditsRes, page)\n .pipe(finalize(() => (this.busy = false)))\n .subscribe({\n next: (res: AuditQueryResult) => {\n this.auditsRes = res;\n this.resolvedItems.set(this.mapResult(res));\n },\n error: () => {\n this.onError();\n }\n });\n }\n }\n\n private onError() {\n this.auditsRes = undefined;\n this.error = true;\n }\n}\n\ninterface ReslovedAuditEntry extends AuditEntry {\n label: string;\n}\n","<div class=\"yuv-audit\" [ngClass]=\"{ singleEntry: auditsRes?.items?.length === 1, onPage: auditsRes && auditsRes.page > 1 }\" [yuvBusyOverlay]=\"busy\">\n @if (error) {\n <div class=\"error\">\n <div translate>yuv.audit.fetch.error</div>\n </div>\n }\n\n @if (auditsRes) {\n <!-- list of audits -->\n @let resItems = resolvedItems();\n @if (resItems.length) {\n <div class=\"timeline\">\n @for (item of resItems; track $index) {\n <div class=\"audit\">\n <div class=\"date\">{{ item.creationDate | localeDate }}</div>\n <div class=\"node\">\n <div class=\"label\">\n <span class=\"title\">{{ item.label }}</span>\n @if (item.detail === 'OBJECT_DOCUMENT_CHANGED') {\n @if (link()) {\n <a class=\"version\" [routerLink]=\"link()\" [queryParams]=\"{ version: item.version }\">{{ item.version }}</a>\n } @else {\n <span class=\"version\">{{ item.version }}</span>\n }\n }\n </div>\n <div class=\"more meta\">{{ item.more }}</div>\n <div class=\"creator meta\">{{ item.createdBy.title }}</div>\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"empty\" translate>yuv.audit.result.empty</div>\n }\n\n <!-- controls -->\n @if (auditsRes.hasMoreItems || auditsRes.page > 1) {\n <div class=\"footer\" yuvOfflineDisabled>\n <div class=\"paging\">\n <button [attr.aria-label]=\"'yuv.audit.label.paging.prev' | translate\" [disabled]=\"auditsRes.page === 1\" (click)=\"goToPage(auditsRes.page - 1)\">\n <yvc-icon class=\"prev\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n <div class=\"page\">\n {{ auditsRes.page }}\n </div>\n <button [attr.aria-label]=\"'yuv.audit.label.paging.next' | translate\" [disabled]=\"!auditsRes.hasMoreItems\" (click)=\"goToPage(auditsRes.page + 1)\">\n <yvc-icon class=\"next\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n </div>\n </div>\n }\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n DmsObject,\n DmsService,\n EventService,\n ObjectConfigRecord,\n ObjectConfigService,\n RetentionField,\n SystemService,\n TranslateService,\n UserService,\n YuvEvent,\n YuvEventType\n} from '@yuuvis/client-core';\nimport { BusyOverlayDirective } from '@yuuvis/client-framework/common';\nimport { PanelComponent } from '@yuuvis/client-framework/panel';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'yuv-object-details-shell',\n standalone: true,\n imports: [CommonModule, PanelComponent, BusyOverlayDirective],\n templateUrl: './object-details-shell.component.html',\n styleUrls: ['./object-details-shell.component.scss']\n})\nexport class ObjectDetailsShellComponent implements OnInit, OnDestroy {\n private translate = inject(TranslateService);\n private objectConfigService = inject(ObjectConfigService);\n private eventService = inject(EventService);\n private dmsService = inject(DmsService);\n private systemService = inject(SystemService);\n private userService = inject(UserService);\n\n private _subs: Subscription[] = [];\n _dmsObject?: DmsObject;\n contextError?: string;\n objectTypeId?: string;\n retentionEndDate?: Date;\n retentionEnded?: boolean;\n fileDropLabel?: string;\n busy = false;\n isAdvancedUser = this.userService.isAdvancedUser;\n\n private oc?: ObjectConfigRecord;\n headerData?: {\n icon?: {\n src?: string;\n svg?: string;\n title?: string;\n };\n title?: string;\n description?: string;\n };\n\n /**\n * ID to store the components layout state (splitted tabs, gutter position)\n */\n @Input() layoutSettingsID?: string;\n /**\n * DmsObject to show the details for.\n */\n @Input()\n set dmsObject(o: DmsObject | undefined) {\n this._dmsObject = o;\n // this.objectTypeId = o ? this.systemService.getLeadingObjectTypeID(o.objectTypeId, o.data[BaseObjectTypeField.SECONDARY_OBJECT_TYPE_IDS] as string) : undefined;\n\n if (this._dmsObject) {\n this._getHeaderData();\n this.retentionEndDate = this._dmsObject.data[RetentionField.RETENTION_END]\n ? new Date(this._dmsObject.data[RetentionField.RETENTION_END] as string)\n : undefined;\n const today = new Date();\n this.retentionEnded = this.retentionEndDate && today > this.retentionEndDate;\n }\n }\n\n get dmsObject() {\n return this._dmsObject;\n }\n\n @Output() dmsObjectChange = new EventEmitter<DmsObject>();\n\n /**\n * ID of a DmsObject. The object will be fetched from the backend upfront.\n */\n @Input()\n set objectId(id: string | undefined) {\n if (id) {\n this._getDmsObject(id);\n } else {\n this.dmsObject = undefined;\n }\n }\n\n constructor() {\n this.objectConfigService\n .getObjectConfigs$()\n // this.objectConfigService.getObjectConfigs$(this.bucket || '')\n .pipe(takeUntilDestroyed())\n .subscribe((res: ObjectConfigRecord) => {\n this.oc = res;\n if (this._dmsObject) this._getHeaderData();\n });\n\n this.eventService\n .on(YuvEventType.DMS_OBJECT_UPDATED)\n .pipe(takeUntilDestroyed())\n .subscribe((e: YuvEvent) => {\n const o = e.data as DmsObject;\n if (this._dmsObject && this._dmsObject.id === o.id) this.dmsObject = o;\n });\n }\n\n private _getHeaderData() {\n if (this._dmsObject) {\n const oc = this.oc![this._dmsObject.objectTypeId];\n // const ic = oc.icon ? (this._dmsObject.data[oc.icon.propertyName] as string) : this._dmsObject.objectTypeId;\n\n const icon: { title?: string; svg?: string; src?: string } = {\n title: this.systemService.getLocalizedLabel(this._dmsObject.objectTypeId)\n };\n\n if (oc.icon) icon.svg = oc.icon.svg;\n else icon.src = this.systemService.getObjectTypeIconUri(this._dmsObject.objectTypeId);\n\n this.headerData = {\n icon,\n title: oc.title ? (this.dmsObject?.data[oc.title.propertyName] as string) : undefined,\n description: oc.description ? (this.dmsObject?.data[oc.description.propertyName] as string) : undefined\n };\n } else this.headerData = undefined;\n }\n\n private _getDmsObject(id: string) {\n this.busy = true;\n this.dmsService.getDmsObject(id).subscribe({\n next: (dmsObject) => (this.dmsObject = dmsObject),\n error: () => {\n this.dmsObject = undefined;\n this.contextError = this.translate.instant('yuv.object-metadata.context.load.error');\n },\n complete: () => {\n this.busy = false;\n this.dmsObjectChange.emit(this.dmsObject);\n }\n });\n }\n\n ngOnInit(): void {\n this._subs.push(\n this.eventService.on(YuvEventType.DMS_OBJECT_DELETED).subscribe((event) => {\n if (event.data?.id === this._dmsObject?.id) {\n this._dmsObject = undefined;\n }\n })\n );\n }\n\n ngOnDestroy(): void {\n this._subs.forEach((s) => s.unsubscribe());\n }\n}\n","<yuv-panel\n *ngIf=\"dmsObject; else tplEmpty\"\n [yuvBusyOverlay]=\"busy\"\n [icon]=\"headerData?.icon\"\n [title]=\"headerData?.title\"\n [description]=\"headerData?.description\"\n>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</yuv-panel>\n\n<ng-template #tplEmpty>\n <div class=\"empty\">\n <div class=\"error\" *ngIf=\"contextError; else tplEmptyNoError\">{{ contextError }}</div>\n </div>\n</ng-template>\n\n<ng-template #tplEmptyNoError> EMPTY </ng-template>\n\n\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnDestroy, effect, inject, input, output, signal, viewChildren } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport {\n DmsObject,\n DmsService,\n FlavoredDmsObject,\n NotificationService,\n ObjectTypeFlavor,\n PendingChangesService,\n Situation,\n SystemService,\n TranslateModule,\n TranslateService\n} from '@yuuvis/client-core';\nimport { FormStatusChangedEvent, ObjectFormComponent, ObjectFormOptions } from '@yuuvis/client-framework/object-form';\nimport { ICONS, YvcIconModule } from '@yuuvis/components/icon';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'yuv-object-metadata',\n standalone: true,\n imports: [CommonModule, ObjectFormComponent, TranslateModule, ReactiveFormsModule, YvcIconModule],\n templateUrl: './object-metadata.component.html',\n styleUrl: './object-metadata.component.scss',\n host: {\n '[class.empty]': 'empty()'\n }\n})\nexport class ObjectMetadataComponent implements OnDestroy {\n #pendingChanges = inject(PendingChangesService);\n #notificationService = inject(NotificationService);\n translate = inject(TranslateService);\n #system = inject(SystemService);\n #dmsService = inject(DmsService);\n\n objectForms = viewChildren<ObjectFormComponent>(ObjectFormComponent);\n\n #pendingTaskId?: string;\n #dmsObject?: DmsObject;\n #formSubscriptions: Subscription[] = [];\n #initialData: Record<string, unknown> = {};\n\n arrow = ICONS.arrowDown;\n busy = signal<boolean>(false);\n empty = signal<boolean>(false);\n controlsVisible = signal<boolean>(false);\n\n // form of the dms object itself\n mainFormOptions = signal<ObjectFormOptions | undefined>(undefined);\n // forms off allpied flavors\n flavorFormOptions = signal<\n {\n id: string;\n label: string;\n icon?: string;\n formOptions: ObjectFormOptions;\n }[]\n >([]);\n // state of all individual forms\n #formStates: Map<string, FormStatusChangedEvent> = new Map<string, FormStatusChangedEvent>();\n\n /**\n * Form situation, if not set default will be 'EDIT'\n */\n @Input() situation: Situation = Situation.EDIT;\n /**\n * Set to 'true' to prevent all metadata from being edited\n */\n @Input() formDisabled = false;\n\n dmsObject = input<DmsObject | undefined>();\n #dmsObjectEffect = effect(() => {\n this.#init(this.dmsObject());\n });\n\n flavoredDmsObject = input<FlavoredDmsObject | undefined>();\n #flavoredDmsObjectEffect = effect(() => {\n const flavoredDmsObject = this.flavoredDmsObject();\n this.#init(flavoredDmsObject?.object, flavoredDmsObject?.flavors);\n });\n combinedFormState?: FormStatusChangedEvent;\n\n /**\n * Emits the updated `DmsObject` when metadata have been saved.\n */\n indexDataSaved = output<DmsObject>();\n /**\n * Emits the current state of the metadata form.\n */\n statusChanged = output<FormStatusChangedEvent>();\n\n #init(object?: DmsObject, flavors?: ObjectTypeFlavor[]) {\n if (object && (!this.#dmsObject || this.#dmsObject !== object)) {\n this.#initialData = structuredClone(object.data);\n this.#objectToForm(object, flavors);\n }\n this.#dmsObject = object;\n }\n\n #objectToForm(object?: DmsObject, flavors?: ObjectTypeFlavor[]) {\n if (object) {\n const mappedFlavors: Record<string, ObjectTypeFlavor> = (flavors || []).reduce((acc, curr) => ({ ...acc, [curr.sot]: curr }), {});\n this.#system.getObjectTypeForms([object.objectTypeId, ...(flavors || []).map((f) => f.sot)], this.situation).subscribe({\n next: (res) => {\n this.mainFormOptions.set(\n res[object.objectTypeId]\n ? {\n formModel: res[object.objectTypeId],\n data: object.data,\n disabled: this.formDisabled || !object.permissions?.writeIndexData\n }\n : undefined\n );\n\n this.flavorFormOptions.set(\n Object.keys(res)\n .filter((id) => id !== object.objectTypeId)\n .map((id) => ({\n id,\n label: res[id].label,\n icon: mappedFlavors[id]?.icon,\n formOptions: {\n formModel: res[id],\n data: object.data\n }\n }))\n );\n console.log(this.flavorFormOptions());\n this.empty.set(!this.mainFormOptions() && !this.flavorFormOptions().length);\n }\n });\n }\n }\n\n onFormStatusChanged(formId: string, evt: FormStatusChangedEvent) {\n this.#formStates.set(formId, evt);\n this.#getCombinedFormState();\n if (this.combinedFormState?.dirty) this.#startPending();\n else this.#finishPending();\n this.controlsVisible.set(!!this.combinedFormState?.dirty);\n if (this.combinedFormState) this.statusChanged.emit(this.combinedFormState);\n }\n\n #getCombinedFormState(): FormStatusChangedEvent {\n const combinedFormState = {\n dirty: false,\n indexdataChanged: false,\n invalid: false,\n data: {}\n };\n this.#formStates.forEach((s) => {\n if (s.dirty) {\n combinedFormState.dirty = s.dirty;\n }\n if (s.indexdataChanged) {\n combinedFormState.indexdataChanged = s.indexdataChanged;\n }\n if (s.invalid) {\n combinedFormState.invalid = s.invalid;\n }\n combinedFormState.data = { ...combinedFormState.data, ...s.data };\n });\n this.combinedFormState = combinedFormState;\n return this.combinedFormState;\n }\n\n #setCombinedFormPristine() {\n this.objectForms().forEach((f) => {\n f.setFormPristine();\n });\n }\n\n save() {\n if (this.#dmsObject && this.combinedFormState) {\n this.busy.set(true);\n this.#dmsService.updateDmsObject(this.#dmsObject.id, this.combinedFormState.data).subscribe({\n next: () => {\n this.#setCombinedFormPristine();\n this.indexDataSaved.emit(this.#dmsObject!);\n this.#finishPending();\n },\n error: (err) => {\n this.#notificationService.error(\n '',\n // this._dmsObject?.title || '',\n err.status === 404 ? this.translate.instant('yuv.object-metadata.context.load.error') : this.translate.instant('yuv.object-metadata.save.error')\n );\n },\n complete: () => {\n this.controlsVisible.set(false);\n this.busy.set(false);\n }\n });\n }\n }\n /**\n * Reset te form to its initial state\n */\n resetForm() {\n if (this.objectForms()?.length) {\n this.objectForms().forEach((f) => {\n f.resetForm();\n });\n this.#formStates.clear();\n }\n }\n\n #startPending() {\n // because this method will be called every time the form status changes,\n // pending task will only be started once until it was finished\n if (!this.#pendingChanges.hasPendingTask(this.#pendingTaskId || ' ')) {\n this.#pendingTaskId = this.#pendingChanges.startTask(this.translate.instant('yuv.object-metadata.pending-changes.alert'));\n }\n }\n\n #finishPending() {\n if (this.#pendingTaskId) this.#pendingChanges.finishTask(this.#pendingTaskId);\n }\n\n ngOnDestroy(): void {\n this.#formSubscriptions.forEach((s) => s.unsubscribe());\n }\n}\n","<main>\n @if (empty()) {\n <div class=\"empty\">\n <p>{{ 'yuv.object-metadata.empty.message' | translate }}</p>\n </div>\n } @else {\n <yuv-object-form [formOptions]=\"mainFormOptions()\" (statusChanged)=\"onFormStatusChanged('main', $event)\"></yuv-object-form>\n\n @for (fo of flavorFormOptions(); track $index) {\n <details [attr.open]=\"$index === 0\">\n <summary><yvc-icon [svg]=\"fo.icon\"></yvc-icon> {{ fo.label }}<yvc-icon class=\"arr\" [svg]=\"arrow\"></yvc-icon></summary>\n <yuv-object-form [formOptions]=\"fo.formOptions\" (statusChanged)=\"onFormStatusChanged(fo.id, $event)\"></yuv-object-form>\n </details>\n }\n }\n</main>\n<footer [ngClass]=\"{ visible: controlsVisible() }\">\n <button class=\"secondary\" (click)=\"resetForm()\" [hidden]=\"!combinedFormState?.dirty\" [disabled]=\"!combinedFormState?.dirty\">\n {{ 'yuv.object-metadata.button.reset' | translate }}\n </button>\n <button class=\"primary\" [ngClass]=\"{ spinning: busy() }\" (click)=\"save()\" [disabled]=\"!combinedFormState?.dirty || combinedFormState?.invalid\">\n {{ 'yuv.object-metadata.button.save' | translate }}\n </button>\n</footer>\n","import { CommonModule, JsonPipe } from '@angular/common';\nimport { Component, Input, inject, signal } from '@angular/core';\nimport { ConfigService, DmsObject, UserService } from '@yuuvis/client-core';\nimport { SplitTabsLayoutSettings, YvcSplitTabsModule } from '@yuuvis/components/split-tabs';\nimport { YuvMediaViewerComponent } from '@yuuvis/media-viewer';\nimport { ObjectAuditComponent } from './object-audit/object-audit.component';\nimport { ObjectDetailsShellComponent } from './object-details-shell/object-details-shell.component';\nimport { ObjectMetadataComponent } from './object-metadata/object-metadata.component';\n\n@Component({\n selector: 'yuv-object-details',\n standalone: true,\n imports: [JsonPipe, CommonModule, YvcSplitTabsModule, ObjectDetailsShellComponent, YuvMediaViewerComponent, ObjectMetadataComponent, ObjectAuditComponent],\n templateUrl: './object-details.component.html',\n styleUrls: ['./object-details.component.scss']\n})\nexport class ObjectDetailsComponent {\n readonly #configService = inject(ConfigService);\n readonly #userService = inject(UserService);\n\n isAdvancedUser = this.#userService.isAdvancedUser;\n _splitTabConfig: SplitTabsLayoutSettings = {};\n\n currentUser = signal(this.#userService.getCurrentUser());\n\n /**\n * If you want to set the order of the tabs within object details, you can use\n * this input property. The tab order will be defined by the index of the\n * input array containing the following values in the desired order:\n *\n * - `summary`: Object summary tab\n * - `indexdata`: Indexdata edit form tab\n * - `preview`: Content preview tab\n * - `history: Object history tab (audits)\n */\n @Input() set panelOrder(po: string[] | undefined) {\n const def = ['summary', 'indexdata', 'preview', 'history'];\n po = po || def;\n this._splitTabConfig = {\n primary: {\n tabs: po,\n active: po[0]\n }\n };\n }\n /**\n * ID to store the components layout state (splitted tabs, gutter position)\n */\n @Input() layoutSettingsID?: string;\n /**\n * DmsObject to show the details for.\n */\n @Input() dmsObject?: DmsObject;\n /**\n * ID of a DmsObject. The object will be fetched from the backend upfront.\n */\n @Input() objectId?: string;\n\n constructor() {\n if (this.#configService.get('client.objectDetailsTabs')) this.panelOrder = this.#configService.get('client.objectDetailsTabs');\n }\n\n onIndexdataSaved(updatedObject: DmsObject) {\n this.dmsObject = updatedObject;\n }\n\n // versionSelected(version: number) {\n // const nav = ['../..', 'version'];\n // this.#router.navigate([...nav, this.dmsObject?.version], { queryParams: { version }, relativeTo: this.#route });\n // }\n}\n","<yuv-object-details-shell [objectId]=\"objectId\" [(dmsObject)]=\"dmsObject\" [layoutSettingsID]=\"layoutSettingsID\">\n <yvc-split-tabs class=\"content\" [config]=\"_splitTabConfig\" [layoutSettingsID]=\"layoutSettingsID\">\n <!-- content -->\n <ng-template [yvcTab]=\"{ id: 'content', label: 'yuv.object-details.tabs.content.title' | translate }\">\n @if (dmsObject && dmsObject.content) {\n <yuv-media-viewer\n [id]=\"dmsObject.id\"\n [metadata]=\"{ data: dmsObject.data, editable: true, user: currentUser() }\"\n [type]=\"dmsObject.content.mimeType\"\n ></yuv-media-viewer>\n }\n\n <span>{{ currentUser() | json }}</span>\n </ng-template>\n <!-- indexdata -->\n <ng-template [yvcTab]=\"{ id: 'indexdata', label: 'yuv.object-metadata.tabs.indexdata.title' | translate }\">\n <yuv-object-metadata [dmsObject]=\"dmsObject\" (indexDataSaved)=\"onIndexdataSaved($event)\"> </yuv-object-metadata>\n </ng-template>\n <!-- history -->\n <ng-template [yvcTab]=\"{ id: 'history', label: 'yuv.object-metadata.tabs.history.title' | translate }\">\n <yuv-object-audit [dmsObject]=\"dmsObject\"></yuv-object-audit>\n </ng-template>\n </yvc-split-tabs>\n</yuv-object-details-shell>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Pipe({\n name: 'formSectionGroup',\n standalone: true \n})\nexport class FormSectionGroupPipe implements PipeTransform {\n transform(form: FormGroup, id: string): FormGroup {\n return form.get(id) as FormGroup;\n }\n}\n","import { Component, computed, inject, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DmsObject, LocaleDatePipe, RetentionService, RetentionState, TranslateModule } from '@yuuvis/client-core';\nimport { YvcIconModule } from '@yuuvis/components/icon';\n\n@Component({\n selector: 'yuv-retention-badge',\n standalone: true,\n imports: [CommonModule, TranslateModule, LocaleDatePipe, YvcIconModule],\n templateUrl: './retention-badge.component.html',\n styleUrl: './retention-badge.component.scss'\n})\nexport class RetentionBadgeComponent {\n #retention = inject(RetentionService);\n\n icons = {\n lockClosed: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"M240-80q-33 0-56.5-23.5T160-160v-400q0-33 23.5-56.5T240-640h40v-80q0-83 58.5-141.5T480-920q83 0 141.5 58.5T680-720v80h40q33 0 56.5 23.5T800-560v400q0 33-23.5 56.5T720-80H240Zm0-80h480v-400H240v400Zm240-120q33 0 56.5-23.5T560-360q0-33-23.5-56.5T480-440q-33 0-56.5 23.5T400-360q0 33 23.5 56.5T480-280ZM360-640h240v-80q0-50-35-85t-85-35q-50 0-85 35t-35 85v80ZM240-160v-400 400Z\"/></svg>'\n }\n\n dmsObject = input.required<DmsObject>();\n retentionData = computed<RetentionState>(() => {\n return this.#retention.getRetentionState(this.dmsObject());\n });\n}\n","@let rd = retentionData();\n@if (rd.underRetention) {\n <span class=\"badge retention\">\n <yvc-icon [svg]=\"icons.lockClosed\"></yvc-icon>\n {{\n 'yuv.retention-badge.retain'\n | translate\n : {\n from: rd.start | localeDate: 'shortDate',\n until: rd.end | localeDate: 'shortDate'\n }\n }}\n </span>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3"],"mappings":"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"}
|
|
@@ -66,7 +66,7 @@ class ObjectFlavorPickerComponent {
|
|
|
66
66
|
this.#oRef.close();
|
|
67
67
|
}
|
|
68
68
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFlavorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectFlavorPickerComponent, isStandalone: true, selector: "yuv-object-flavor-picker", host: { properties: { "class.cmp": "!!applyComponent" } }, ngImport: i0, template: "\n <header>\n <h2>{{ 'yuv.object-flavor.picker.title' | translate }}</h2>\n <p>{{ 'yuv.object-flavor.picker.text' | translate }}</p>\n </header>\n <main>\n <yuv-list (itemSelect)=\"itemSelected($event)\">\n @for (f of applicableFlavors; track $index) {\n <yuv-flavor-chip [flavor]=\"f\" [enableDescription]=\"true\" yuvListItem></yuv-flavor-chip>\n }\n </yuv-list>\n </main>\n <footer>\n <button class=\"secondary\" (click)=\"cancel()\">{{ 'yuv.object-flavor.picker.button.cancel' | translate }}</button>\n </footer>\n", styles: [":host{display:block;height:100%;box-sizing:border-box}:host:not(.cmp){padding:var(--app-pane-padding)}:host:not(.cmp) header h2{padding:0;font-weight:400;font-size:var(--font-headline);margin:0 0 var(--app-pane-padding) 0}:host:not(.cmp) header p{max-width:42ch;line-height:1.3em}:host:not(.cmp) main{overflow-y:auto}:host:not(.cmp) main yuv-flavor-chip{--_flavor-chip-icon-size: 24px;margin-block-end:2px;gap:var(--app-pane-padding);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding);cursor:pointer}:host:not(.cmp) main yuv-flavor-chip:hover{background-color:var(--item-focus-background-color)}:host:not(.cmp) footer{display:flex;justify-content:start;gap:var(--app-pane-padding);margin-block-start:var(--app-pane-padding)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ListComponent, selector: "yuv-list", inputs: ["multiselect", "disableSelection"], outputs: ["itemSelect", "itemFocus"] }, { kind: "component", type: FlavorChipComponent, selector: "yuv-flavor-chip", inputs: ["flavor", "enableRemove", "enableDescription"], outputs: ["flavorRemove"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }] }); }
|
|
69
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectFlavorPickerComponent, isStandalone: true, selector: "yuv-object-flavor-picker", host: { properties: { "class.cmp": "!!applyComponent" } }, ngImport: i0, template: "\n <header>\n <h2>{{ 'yuv.object-flavor.picker.title' | translate }}</h2>\n <p>{{ 'yuv.object-flavor.picker.text' | translate }}</p>\n </header>\n <main>\n <yuv-list (itemSelect)=\"itemSelected($event)\">\n @for (f of applicableFlavors; track $index) {\n <yuv-flavor-chip [flavor]=\"f\" [enableDescription]=\"true\" yuvListItem></yuv-flavor-chip>\n }\n </yuv-list>\n </main>\n <footer>\n <button class=\"secondary\" (click)=\"cancel()\">{{ 'yuv.object-flavor.picker.button.cancel' | translate }}</button>\n </footer>\n", styles: [":host{display:block;height:100%;box-sizing:border-box}:host:not(.cmp){padding:var(--app-pane-padding)}:host:not(.cmp) header h2{padding:0;font-weight:400;font-size:var(--font-headline);margin:0 0 var(--app-pane-padding) 0}:host:not(.cmp) header p{max-width:42ch;line-height:1.3em}:host:not(.cmp) main{overflow-y:auto}:host:not(.cmp) main yuv-flavor-chip{--_flavor-chip-icon-size: 24px;margin-block-end:2px;gap:var(--app-pane-padding);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding);cursor:pointer}:host:not(.cmp) main yuv-flavor-chip:hover{background-color:var(--item-focus-background-color)}:host:not(.cmp) footer{display:flex;justify-content:start;gap:var(--app-pane-padding);margin-block-start:var(--app-pane-padding)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ListComponent, selector: "yuv-list", inputs: ["multiselect", "selfHandleSelection", "disableSelection"], outputs: ["itemSelect", "itemFocus"] }, { kind: "component", type: FlavorChipComponent, selector: "yuv-flavor-chip", inputs: ["flavor", "enableRemove", "enableDescription"], outputs: ["flavorRemove"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }] }); }
|
|
70
70
|
}
|
|
71
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFlavorPickerComponent, decorators: [{
|
|
72
72
|
type: Component,
|
|
@@ -141,7 +141,7 @@ class ObjectFlavorComponent {
|
|
|
141
141
|
this.hidden.set(this.applicableFlavors.length === 0 && this.appliedFlavors.length === 0);
|
|
142
142
|
}
|
|
143
143
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFlavorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
144
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectFlavorComponent, isStandalone: true, selector: "yuv-object-flavor", inputs: { dmsObject: { classPropertyName: "dmsObject", publicName: "dmsObject", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { flavorClick: "flavorClick" }, host: { properties: { "attr.aria-hidden": "hidden()", "class.busy": "busy()", "class.selection": "selectedIndex() > -1", "class.selectionDisabled": "disableSelection" } }, viewQueries: [{ propertyName: "list", first: true, predicate: ListComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<span class=\"label\">{{ 'yuv.object-flavor.label' | translate }}</span>\n\n@if (applicableFlavors.length) {\n <button class=\"add secondary\" title=\"{{ 'yuv.object-flavor.button.add' | translate }}\" (click)=\"startApplyFlavor()\">\n <yvc-icon [svg]=\"icons.add\"></yvc-icon>\n </button>\n}\n@if (appliedFlavors.length) {\n <yuv-list horizontal=\"true\" [disableSelection]=\"disableSelection\" (itemSelect)=\"onItemsSelect($event)\" yvcDragScroll>\n @for (f of appliedFlavors; track $index) {\n <yuv-flavor-chip yuvListItem [flavor]=\"f\" [enableRemove]=\"true\" (flavorRemove)=\"removeFlavor(f, $index)\"></yuv-flavor-chip>\n }\n </yuv-list>\n}\n<button class=\"clear\" title=\"{{ 'yuv.object-flavor.button.clear-selection' | translate }}\" (click)=\"clearSelection()\">\n <yvc-icon [svg]=\"icons.clear\"></yvc-icon>\n</button>\n\n@if (busy()) {\n <div class=\"yuv-loader-linear\"></div>\n}\n", styles: [":host{position:relative;display:flex;transition:opacity .1s ease-in-out}:host.selection yuv-list{border-inline-end:1px solid var(--panel-divider-color)}:host.selection button.clear{display:flex}:host .yuv-loader-linear{position:absolute;height:1px;inset-block-start:0}:host.busy{pointer-events:none;opacity:.5}:host[aria-hidden=true]{display:none}:host span.label{margin-inline:.5em;line-height:1em;color:var(--text-color-caption);align-self:center}:host button{flex:0 0 auto;padding:0 .15em;--icon-size: 18px}:host button.add{margin:2px}:host button.clear{--icon-size: var(--font-body);border-radius:0;color:var(--text-color-caption);padding-inline:.5em;display:none}:host:not(.selectionDisabled) yuv-list yuv-flavor-chip{cursor:pointer}:host:not(.selectionDisabled) yuv-list yuv-flavor-chip:hover{background-color:var(--item-focus-background-color)}:host yuv-list{display:flex;flex:1;overflow-x:auto;--_list-item-border-color: transparent;--_list-item-selected-border-color: transparent;--scrollbar-outer-size: 0px;--scrollbar-inner-size: 0px;border-inline-start:1px solid var(--panel-divider-color)}:host yuv-list yuv-flavor-chip{cursor:default;border-inline-end:1px solid var(--panel-divider-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: FlavorChipComponent, selector: "yuv-flavor-chip", inputs: ["flavor", "enableRemove", "enableDescription"], outputs: ["flavorRemove"] }, { kind: "ngmodule", type: YvcDragScrollModule }, { kind: "directive", type: i1$2.DragScrollDirective, selector: "[yvcDragScroll]" }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "directive", type: ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }, { kind: "component", type: ListComponent, selector: "yuv-list", inputs: ["multiselect", "disableSelection"], outputs: ["itemSelect", "itemFocus"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
144
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectFlavorComponent, isStandalone: true, selector: "yuv-object-flavor", inputs: { dmsObject: { classPropertyName: "dmsObject", publicName: "dmsObject", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { flavorClick: "flavorClick" }, host: { properties: { "attr.aria-hidden": "hidden()", "class.busy": "busy()", "class.selection": "selectedIndex() > -1", "class.selectionDisabled": "disableSelection" } }, viewQueries: [{ propertyName: "list", first: true, predicate: ListComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<span class=\"label\">{{ 'yuv.object-flavor.label' | translate }}</span>\n\n@if (applicableFlavors.length) {\n <button class=\"add secondary\" title=\"{{ 'yuv.object-flavor.button.add' | translate }}\" (click)=\"startApplyFlavor()\">\n <yvc-icon [svg]=\"icons.add\"></yvc-icon>\n </button>\n}\n@if (appliedFlavors.length) {\n <yuv-list horizontal=\"true\" [disableSelection]=\"disableSelection\" (itemSelect)=\"onItemsSelect($event)\" yvcDragScroll>\n @for (f of appliedFlavors; track $index) {\n <yuv-flavor-chip yuvListItem [flavor]=\"f\" [enableRemove]=\"true\" (flavorRemove)=\"removeFlavor(f, $index)\"></yuv-flavor-chip>\n }\n </yuv-list>\n}\n<button class=\"clear\" title=\"{{ 'yuv.object-flavor.button.clear-selection' | translate }}\" (click)=\"clearSelection()\">\n <yvc-icon [svg]=\"icons.clear\"></yvc-icon>\n</button>\n\n@if (busy()) {\n <div class=\"yuv-loader-linear\"></div>\n}\n", styles: [":host{position:relative;display:flex;transition:opacity .1s ease-in-out}:host.selection yuv-list{border-inline-end:1px solid var(--panel-divider-color)}:host.selection button.clear{display:flex}:host .yuv-loader-linear{position:absolute;height:1px;inset-block-start:0}:host.busy{pointer-events:none;opacity:.5}:host[aria-hidden=true]{display:none}:host span.label{margin-inline:.5em;line-height:1em;color:var(--text-color-caption);align-self:center}:host button{flex:0 0 auto;padding:0 .15em;--icon-size: 18px}:host button.add{margin:2px}:host button.clear{--icon-size: var(--font-body);border-radius:0;color:var(--text-color-caption);padding-inline:.5em;display:none}:host:not(.selectionDisabled) yuv-list yuv-flavor-chip{cursor:pointer}:host:not(.selectionDisabled) yuv-list yuv-flavor-chip:hover{background-color:var(--item-focus-background-color)}:host yuv-list{display:flex;flex:1;overflow-x:auto;--_list-item-border-color: transparent;--_list-item-selected-border-color: transparent;--scrollbar-outer-size: 0px;--scrollbar-inner-size: 0px;border-inline-start:1px solid var(--panel-divider-color)}:host yuv-list yuv-flavor-chip{cursor:default;border-inline-end:1px solid var(--panel-divider-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: FlavorChipComponent, selector: "yuv-flavor-chip", inputs: ["flavor", "enableRemove", "enableDescription"], outputs: ["flavorRemove"] }, { kind: "ngmodule", type: YvcDragScrollModule }, { kind: "directive", type: i1$2.DragScrollDirective, selector: "[yvcDragScroll]" }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "directive", type: ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }, { kind: "component", type: ListComponent, selector: "yuv-list", inputs: ["multiselect", "selfHandleSelection", "disableSelection"], outputs: ["itemSelect", "itemFocus"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
145
145
|
}
|
|
146
146
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFlavorComponent, decorators: [{
|
|
147
147
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yuuvis-client-framework-object-flavor.mjs","sources":["../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/flavor-chip/flavor-chip.component.ts","../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/flavor-chip/flavor-chip.component.html","../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/object-flavor-picker/object-flavor-picker.component.ts","../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/object-flavor-picker/object-flavor-picker.component.html","../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/object-flavor/object-flavor.component.ts","../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/object-flavor/object-flavor.component.html","../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.ts","../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.ts","../../../../../libs/yuuvis/client-framework/object-flavor/src/yuuvis-client-framework-object-flavor.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, computed, inject, input, output } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@yuuvis/client-core';\nimport { ObjectFlavor } from '@yuuvis/client-shell-core';\nimport { ICONS, YvcIconModule } from '@yuuvis/components/icon';\n\n@Component({\n selector: 'yuv-flavor-chip',\n standalone: true,\n imports: [CommonModule, YvcIconModule, TranslateModule],\n templateUrl: './flavor-chip.component.html',\n styleUrl: './flavor-chip.component.scss'\n})\nexport class FlavorChipComponent {\n private translate = inject(TranslateService);\n\n flavor = input.required<ObjectFlavor>();\n labels = computed(() => {\n const flavor = this.flavor();\n return {\n name: this.translate.instant(flavor.id),\n description: flavor.descriptionKey ? this.translate.instant(flavor.descriptionKey) : undefined\n };\n });\n enableRemove = input<boolean>();\n enableDescription = input<boolean>();\n\n flavorRemove = output();\n\n clearIcon = ICONS.clear;\n\n remove(e: MouseEvent | KeyboardEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.flavorRemove.emit();\n }\n}\n","@if (flavor().icon) {\n <yvc-icon [svg]=\"flavor().icon!\"></yvc-icon>\n}\n@let lb = labels();\n<div>\n {{ lb.name }}\n @if (enableDescription()) {\n <span class=\"description\">{{ lb.description }}</span>\n }\n</div>\n@if (enableRemove()) {\n <button class=\"icon\" (click)=\"remove($event)\">\n <yvc-icon [svg]=\"clearIcon\"></yvc-icon>\n </button>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Type, inject } from '@angular/core';\nimport { DmsObject, TranslateModule } from '@yuuvis/client-core';\nimport { ListComponent, ListItemDirective } from '@yuuvis/client-framework/list';\nimport { ObjectFlavor, ShellService } from '@yuuvis/client-shell-core';\nimport { YvcOverlayRef } from '@yuuvis/components/overlay';\nimport { FlavorChipComponent } from '../flavor-chip/flavor-chip.component';\n\n@Component({\n selector: 'yuv-object-flavor-picker',\n standalone: true,\n imports: [CommonModule, ListComponent, FlavorChipComponent, TranslateModule, ListItemDirective],\n templateUrl: './object-flavor-picker.component.html',\n styleUrl: './object-flavor-picker.component.scss',\n host: {\n '[class.cmp]': '!!applyComponent'\n }\n})\nexport class ObjectFlavorPickerComponent {\n #oRef = inject(YvcOverlayRef);\n #shell = inject(ShellService);\n\n applicableFlavors: ObjectFlavor[] = this.#oRef.data.applicableFlavors;\n #dmsObject: DmsObject = this.#oRef.data.dmsObject;\n\n itemSelected(idx: number[]) {\n const flavor = this.applicableFlavors[idx[0]];\n if (this.#dmsObject && flavor) this.#shell.triggerApplyObjectFlavor(this.#dmsObject, flavor).subscribe({\n next: () => {\n if (this.#oRef) this.#oRef.close();\n }\n });\n }\n\n cancel() {\n if (this.#oRef) this.#oRef.close();\n }\n}\n","\n <header>\n <h2>{{ 'yuv.object-flavor.picker.title' | translate }}</h2>\n <p>{{ 'yuv.object-flavor.picker.text' | translate }}</p>\n </header>\n <main>\n <yuv-list (itemSelect)=\"itemSelected($event)\">\n @for (f of applicableFlavors; track $index) {\n <yuv-flavor-chip [flavor]=\"f\" [enableDescription]=\"true\" yuvListItem></yuv-flavor-chip>\n }\n </yuv-list>\n </main>\n <footer>\n <button class=\"secondary\" (click)=\"cancel()\">{{ 'yuv.object-flavor.picker.button.cancel' | translate }}</button>\n </footer>\n","import { CommonModule } from '@angular/common';\nimport { Component, effect, HostAttributeToken, inject, input, output, signal, untracked, viewChild } from '@angular/core';\nimport { DmsObject, TranslateModule } from '@yuuvis/client-core';\nimport { YUV_ICONS } from '@yuuvis/client-framework/icons';\nimport { ListComponent, ListItemDirective } from '@yuuvis/client-framework/list';\nimport { ObjectFlavor, ShellService } from '@yuuvis/client-shell-core';\nimport { YvcDragScrollModule } from '@yuuvis/components/drag-scroll';\nimport { ICONS, YvcIconModule } from '@yuuvis/components/icon';\nimport { YvcOverlayService } from '@yuuvis/components/overlay';\nimport { FlavorChipComponent } from '../flavor-chip/flavor-chip.component';\nimport { ObjectFlavorPickerComponent } from '../object-flavor-picker/object-flavor-picker.component';\n\n@Component({\n selector: 'yuv-object-flavor',\n standalone: true,\n imports: [CommonModule, FlavorChipComponent, YvcDragScrollModule, YvcIconModule, ListItemDirective, ListComponent, TranslateModule],\n templateUrl: './object-flavor.component.html',\n styleUrl: './object-flavor.component.scss',\n host: {\n '[attr.aria-hidden]': 'hidden()',\n '[class.busy]': 'busy()',\n '[class.selection]': 'selectedIndex() > -1',\n '[class.selectionDisabled]': 'disableSelection'\n }\n})\nexport class ObjectFlavorComponent {\n #overlay = inject(YvcOverlayService);\n #shell = inject(ShellService);\n\n list = viewChild(ListComponent);\n\n icons = {\n add: YUV_ICONS.add,\n clear: ICONS.clear\n };\n\n dmsObject = input.required<DmsObject>();\n #dmsObjectEffect = effect(() => {\n const o = this.dmsObject();\n if (o) untracked(() => this.#getAppliedFlavors(o));\n });\n\n flavorClick = output<ObjectFlavor>();\n\n appliedFlavors: ObjectFlavor[] = [];\n applicableFlavors: ObjectFlavor[] = [];\n\n hidden = signal<boolean>(false);\n busy = signal<boolean>(false);\n\n selectedIndex = signal<number>(-1);\n\n disableSelection: boolean = (inject(new HostAttributeToken('disableSelection'), { optional: true }) || 'false') === 'true';\n\n clearSelection() {\n const listCmp = this.list();\n if (listCmp) listCmp.clear();\n this.selectedIndex.set(-1);\n }\n\n onItemsSelect(idx: number[]) {\n this.selectedIndex.set(idx[0]);\n this.flavorClick.emit(this.appliedFlavors[idx[0]]);\n }\n\n startApplyFlavor() {\n this.#overlay.open(ObjectFlavorPickerComponent, {\n applicableFlavors: this.applicableFlavors,\n dmsObject: structuredClone(this.dmsObject())\n });\n }\n\n removeFlavor(flavor: ObjectFlavor, index: number) {\n const o = this.dmsObject();\n if (o) {\n this.busy.set(true);\n this.#shell.removeObjectFlavor(o, flavor).subscribe({\n next: () => {\n if (index === this.selectedIndex() || !this.appliedFlavors.length) this.clearSelection();\n this.busy.set(false);\n },\n error: () => {\n // TODO: error handling\n this.busy.set(false);\n }\n });\n }\n }\n\n #getAppliedFlavors(dmsObject: DmsObject) {\n const res = this.#shell.getAppliedObjectFlavors(dmsObject);\n this.appliedFlavors = res.applied;\n this.applicableFlavors = res.applicable;\n this.hidden.set(this.applicableFlavors.length === 0 && this.appliedFlavors.length === 0);\n }\n}\n","<span class=\"label\">{{ 'yuv.object-flavor.label' | translate }}</span>\n\n@if (applicableFlavors.length) {\n <button class=\"add secondary\" title=\"{{ 'yuv.object-flavor.button.add' | translate }}\" (click)=\"startApplyFlavor()\">\n <yvc-icon [svg]=\"icons.add\"></yvc-icon>\n </button>\n}\n@if (appliedFlavors.length) {\n <yuv-list horizontal=\"true\" [disableSelection]=\"disableSelection\" (itemSelect)=\"onItemsSelect($event)\" yvcDragScroll>\n @for (f of appliedFlavors; track $index) {\n <yuv-flavor-chip yuvListItem [flavor]=\"f\" [enableRemove]=\"true\" (flavorRemove)=\"removeFlavor(f, $index)\"></yuv-flavor-chip>\n }\n </yuv-list>\n}\n<button class=\"clear\" title=\"{{ 'yuv.object-flavor.button.clear-selection' | translate }}\" (click)=\"clearSelection()\">\n <yvc-icon [svg]=\"icons.clear\"></yvc-icon>\n</button>\n\n@if (busy()) {\n <div class=\"yuv-loader-linear\"></div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, output, signal } from '@angular/core';\nimport { ObjectCreateFlavor } from '@yuuvis/client-core';\nimport { YvcOverlayRef } from '@yuuvis/components/overlay';\n\n@Component({\n selector: 'yuv-abstract-apply-create-flavor',\n standalone: true,\n imports: [CommonModule],\n template: ''\n})\nexport abstract class AbstractApplyCreateFlavorComponent {\n protected oRef = inject(YvcOverlayRef);\n createdObjectIDs = signal<string[]>(this.oRef.data.createdObjectIDs);\n flavor = signal<ObjectCreateFlavor>(this.oRef.data.flavor);\n data = signal<any>(this.oRef.data.data);\n cancel = output();\n}\n","import { Component, inject, input } from '@angular/core';\nimport { DmsObject } from '@yuuvis/client-core';\nimport { ObjectFlavor } from '@yuuvis/client-shell-core';\nimport { YvcOverlayRef } from '@yuuvis/components/overlay';\n\n@Component({\n selector: 'yuv-apply-object-flavor',\n standalone: true,\n imports: [],\n template: '',\n styles: ''\n})\nexport abstract class AbstractApplyObjectFlavorComponent {\n protected oRef = inject(YvcOverlayRef);\n // the dmsObject the flavor should be applied to\n dmsObject = input<DmsObject>(this.oRef.data.dmsObject);\n // the flavor that should be applied\n flavor = input<ObjectFlavor>(this.oRef.data.flavor);\n // Optional data \n data = input<any>(this.oRef.data.data);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"yuuvis-client-framework-object-flavor.mjs","sources":["../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/flavor-chip/flavor-chip.component.ts","../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/flavor-chip/flavor-chip.component.html","../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/object-flavor-picker/object-flavor-picker.component.ts","../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/object-flavor-picker/object-flavor-picker.component.html","../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/object-flavor/object-flavor.component.ts","../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/object-flavor/object-flavor.component.html","../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.ts","../../../../../libs/yuuvis/client-framework/object-flavor/src/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.ts","../../../../../libs/yuuvis/client-framework/object-flavor/src/yuuvis-client-framework-object-flavor.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, computed, inject, input, output } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@yuuvis/client-core';\nimport { ObjectFlavor } from '@yuuvis/client-shell-core';\nimport { ICONS, YvcIconModule } from '@yuuvis/components/icon';\n\n@Component({\n selector: 'yuv-flavor-chip',\n standalone: true,\n imports: [CommonModule, YvcIconModule, TranslateModule],\n templateUrl: './flavor-chip.component.html',\n styleUrl: './flavor-chip.component.scss'\n})\nexport class FlavorChipComponent {\n private translate = inject(TranslateService);\n\n flavor = input.required<ObjectFlavor>();\n labels = computed(() => {\n const flavor = this.flavor();\n return {\n name: this.translate.instant(flavor.id),\n description: flavor.descriptionKey ? this.translate.instant(flavor.descriptionKey) : undefined\n };\n });\n enableRemove = input<boolean>();\n enableDescription = input<boolean>();\n\n flavorRemove = output();\n\n clearIcon = ICONS.clear;\n\n remove(e: MouseEvent | KeyboardEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.flavorRemove.emit();\n }\n}\n","@if (flavor().icon) {\n <yvc-icon [svg]=\"flavor().icon!\"></yvc-icon>\n}\n@let lb = labels();\n<div>\n {{ lb.name }}\n @if (enableDescription()) {\n <span class=\"description\">{{ lb.description }}</span>\n }\n</div>\n@if (enableRemove()) {\n <button class=\"icon\" (click)=\"remove($event)\">\n <yvc-icon [svg]=\"clearIcon\"></yvc-icon>\n </button>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Type, inject } from '@angular/core';\nimport { DmsObject, TranslateModule } from '@yuuvis/client-core';\nimport { ListComponent, ListItemDirective } from '@yuuvis/client-framework/list';\nimport { ObjectFlavor, ShellService } from '@yuuvis/client-shell-core';\nimport { YvcOverlayRef } from '@yuuvis/components/overlay';\nimport { FlavorChipComponent } from '../flavor-chip/flavor-chip.component';\n\n@Component({\n selector: 'yuv-object-flavor-picker',\n standalone: true,\n imports: [CommonModule, ListComponent, FlavorChipComponent, TranslateModule, ListItemDirective],\n templateUrl: './object-flavor-picker.component.html',\n styleUrl: './object-flavor-picker.component.scss',\n host: {\n '[class.cmp]': '!!applyComponent'\n }\n})\nexport class ObjectFlavorPickerComponent {\n #oRef = inject(YvcOverlayRef);\n #shell = inject(ShellService);\n\n applicableFlavors: ObjectFlavor[] = this.#oRef.data.applicableFlavors;\n #dmsObject: DmsObject = this.#oRef.data.dmsObject;\n\n itemSelected(idx: number[]) {\n const flavor = this.applicableFlavors[idx[0]];\n if (this.#dmsObject && flavor) this.#shell.triggerApplyObjectFlavor(this.#dmsObject, flavor).subscribe({\n next: () => {\n if (this.#oRef) this.#oRef.close();\n }\n });\n }\n\n cancel() {\n if (this.#oRef) this.#oRef.close();\n }\n}\n","\n <header>\n <h2>{{ 'yuv.object-flavor.picker.title' | translate }}</h2>\n <p>{{ 'yuv.object-flavor.picker.text' | translate }}</p>\n </header>\n <main>\n <yuv-list (itemSelect)=\"itemSelected($event)\">\n @for (f of applicableFlavors; track $index) {\n <yuv-flavor-chip [flavor]=\"f\" [enableDescription]=\"true\" yuvListItem></yuv-flavor-chip>\n }\n </yuv-list>\n </main>\n <footer>\n <button class=\"secondary\" (click)=\"cancel()\">{{ 'yuv.object-flavor.picker.button.cancel' | translate }}</button>\n </footer>\n","import { CommonModule } from '@angular/common';\nimport { Component, effect, HostAttributeToken, inject, input, output, signal, untracked, viewChild } from '@angular/core';\nimport { DmsObject, TranslateModule } from '@yuuvis/client-core';\nimport { YUV_ICONS } from '@yuuvis/client-framework/icons';\nimport { ListComponent, ListItemDirective } from '@yuuvis/client-framework/list';\nimport { ObjectFlavor, ShellService } from '@yuuvis/client-shell-core';\nimport { YvcDragScrollModule } from '@yuuvis/components/drag-scroll';\nimport { ICONS, YvcIconModule } from '@yuuvis/components/icon';\nimport { YvcOverlayService } from '@yuuvis/components/overlay';\nimport { FlavorChipComponent } from '../flavor-chip/flavor-chip.component';\nimport { ObjectFlavorPickerComponent } from '../object-flavor-picker/object-flavor-picker.component';\n\n@Component({\n selector: 'yuv-object-flavor',\n standalone: true,\n imports: [CommonModule, FlavorChipComponent, YvcDragScrollModule, YvcIconModule, ListItemDirective, ListComponent, TranslateModule],\n templateUrl: './object-flavor.component.html',\n styleUrl: './object-flavor.component.scss',\n host: {\n '[attr.aria-hidden]': 'hidden()',\n '[class.busy]': 'busy()',\n '[class.selection]': 'selectedIndex() > -1',\n '[class.selectionDisabled]': 'disableSelection'\n }\n})\nexport class ObjectFlavorComponent {\n #overlay = inject(YvcOverlayService);\n #shell = inject(ShellService);\n\n list = viewChild(ListComponent);\n\n icons = {\n add: YUV_ICONS.add,\n clear: ICONS.clear\n };\n\n dmsObject = input.required<DmsObject>();\n #dmsObjectEffect = effect(() => {\n const o = this.dmsObject();\n if (o) untracked(() => this.#getAppliedFlavors(o));\n });\n\n flavorClick = output<ObjectFlavor>();\n\n appliedFlavors: ObjectFlavor[] = [];\n applicableFlavors: ObjectFlavor[] = [];\n\n hidden = signal<boolean>(false);\n busy = signal<boolean>(false);\n\n selectedIndex = signal<number>(-1);\n\n disableSelection: boolean = (inject(new HostAttributeToken('disableSelection'), { optional: true }) || 'false') === 'true';\n\n clearSelection() {\n const listCmp = this.list();\n if (listCmp) listCmp.clear();\n this.selectedIndex.set(-1);\n }\n\n onItemsSelect(idx: number[]) {\n this.selectedIndex.set(idx[0]);\n this.flavorClick.emit(this.appliedFlavors[idx[0]]);\n }\n\n startApplyFlavor() {\n this.#overlay.open(ObjectFlavorPickerComponent, {\n applicableFlavors: this.applicableFlavors,\n dmsObject: structuredClone(this.dmsObject())\n });\n }\n\n removeFlavor(flavor: ObjectFlavor, index: number) {\n const o = this.dmsObject();\n if (o) {\n this.busy.set(true);\n this.#shell.removeObjectFlavor(o, flavor).subscribe({\n next: () => {\n if (index === this.selectedIndex() || !this.appliedFlavors.length) this.clearSelection();\n this.busy.set(false);\n },\n error: () => {\n // TODO: error handling\n this.busy.set(false);\n }\n });\n }\n }\n\n #getAppliedFlavors(dmsObject: DmsObject) {\n const res = this.#shell.getAppliedObjectFlavors(dmsObject);\n this.appliedFlavors = res.applied;\n this.applicableFlavors = res.applicable;\n this.hidden.set(this.applicableFlavors.length === 0 && this.appliedFlavors.length === 0);\n }\n}\n","<span class=\"label\">{{ 'yuv.object-flavor.label' | translate }}</span>\n\n@if (applicableFlavors.length) {\n <button class=\"add secondary\" title=\"{{ 'yuv.object-flavor.button.add' | translate }}\" (click)=\"startApplyFlavor()\">\n <yvc-icon [svg]=\"icons.add\"></yvc-icon>\n </button>\n}\n@if (appliedFlavors.length) {\n <yuv-list horizontal=\"true\" [disableSelection]=\"disableSelection\" (itemSelect)=\"onItemsSelect($event)\" yvcDragScroll>\n @for (f of appliedFlavors; track $index) {\n <yuv-flavor-chip yuvListItem [flavor]=\"f\" [enableRemove]=\"true\" (flavorRemove)=\"removeFlavor(f, $index)\"></yuv-flavor-chip>\n }\n </yuv-list>\n}\n<button class=\"clear\" title=\"{{ 'yuv.object-flavor.button.clear-selection' | translate }}\" (click)=\"clearSelection()\">\n <yvc-icon [svg]=\"icons.clear\"></yvc-icon>\n</button>\n\n@if (busy()) {\n <div class=\"yuv-loader-linear\"></div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, output, signal } from '@angular/core';\nimport { ObjectCreateFlavor } from '@yuuvis/client-core';\nimport { YvcOverlayRef } from '@yuuvis/components/overlay';\n\n@Component({\n selector: 'yuv-abstract-apply-create-flavor',\n standalone: true,\n imports: [CommonModule],\n template: ''\n})\nexport abstract class AbstractApplyCreateFlavorComponent {\n protected oRef = inject(YvcOverlayRef);\n createdObjectIDs = signal<string[]>(this.oRef.data.createdObjectIDs);\n flavor = signal<ObjectCreateFlavor>(this.oRef.data.flavor);\n data = signal<any>(this.oRef.data.data);\n cancel = output();\n}\n","import { Component, inject, input } from '@angular/core';\nimport { DmsObject } from '@yuuvis/client-core';\nimport { ObjectFlavor } from '@yuuvis/client-shell-core';\nimport { YvcOverlayRef } from '@yuuvis/components/overlay';\n\n@Component({\n selector: 'yuv-apply-object-flavor',\n standalone: true,\n imports: [],\n template: '',\n styles: ''\n})\nexport abstract class AbstractApplyObjectFlavorComponent {\n protected oRef = inject(YvcOverlayRef);\n // the dmsObject the flavor should be applied to\n dmsObject = input<DmsObject>(this.oRef.data.dmsObject);\n // the flavor that should be applied\n flavor = input<ObjectFlavor>(this.oRef.data.flavor);\n // Optional data \n data = input<any>(this.oRef.data.data);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3"],"mappings":"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"}
|
|
@@ -425,7 +425,10 @@ class ObjectFormService {
|
|
|
425
425
|
return;
|
|
426
426
|
}
|
|
427
427
|
if (formControl instanceof ObjectFormControlWrapper) {
|
|
428
|
-
const fc = formControl.controls[formControl._eoFormControlWrapper.controlName];
|
|
428
|
+
const fc = formControl._eoFormControlWrapper ? formControl.controls[formControl._eoFormControlWrapper.controlName] : null;
|
|
429
|
+
if (!fc) {
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
429
432
|
if (fc._eoFormElement.isNotSetValue === true) {
|
|
430
433
|
// form elements may explicitly set to have NULL value (e.g. from Search form if values are requested that have no values)
|
|
431
434
|
this.#setDataValue(fc._eoFormElement.name, null, data, fc._eoFormElement, !isTableRowEditForm);
|
|
@@ -1308,6 +1311,7 @@ class ObjectFormComponent {
|
|
|
1308
1311
|
}
|
|
1309
1312
|
this.form = form;
|
|
1310
1313
|
this.#formScriptingApiService.registerActiveForm(this);
|
|
1314
|
+
console.log('form', form);
|
|
1311
1315
|
setTimeout(() => {
|
|
1312
1316
|
if (!this.form)
|
|
1313
1317
|
return;
|