@valtimo/building-block-management 13.13.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/README.md +31 -0
- package/fesm2022/valtimo-building-block-management.mjs +1746 -0
- package/fesm2022/valtimo-building-block-management.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/building-block-management-routing.d.ts +9 -0
- package/lib/building-block-management-routing.d.ts.map +1 -0
- package/lib/building-block-management.module.d.ts +9 -0
- package/lib/building-block-management.module.d.ts.map +1 -0
- package/lib/components/building-block-management-artwork/building-block-management-artwork.component.d.ts +32 -0
- package/lib/components/building-block-management-artwork/building-block-management-artwork.component.d.ts.map +1 -0
- package/lib/components/building-block-management-create-modal/building-block-management-create-modal.component.d.ts +24 -0
- package/lib/components/building-block-management-create-modal/building-block-management-create-modal.component.d.ts.map +1 -0
- package/lib/components/building-block-management-detail/building-block-management-detail.component.d.ts +24 -0
- package/lib/components/building-block-management-detail/building-block-management-detail.component.d.ts.map +1 -0
- package/lib/components/building-block-management-detail-actions/building-block-management-detail-actions.component.d.ts +38 -0
- package/lib/components/building-block-management-detail-actions/building-block-management-detail-actions.component.d.ts.map +1 -0
- package/lib/components/building-block-management-document/building-block-management-document.component.d.ts +27 -0
- package/lib/components/building-block-management-document/building-block-management-document.component.d.ts.map +1 -0
- package/lib/components/building-block-management-general/building-block-management-general.component.d.ts +9 -0
- package/lib/components/building-block-management-general/building-block-management-general.component.d.ts.map +1 -0
- package/lib/components/building-block-management-list/building-block-management-list.component.d.ts +22 -0
- package/lib/components/building-block-management-list/building-block-management-list.component.d.ts.map +1 -0
- package/lib/components/building-block-management-metadata/building-block-management-metadata.component.d.ts +23 -0
- package/lib/components/building-block-management-metadata/building-block-management-metadata.component.d.ts.map +1 -0
- package/lib/components/building-block-management-plugins/building-block-management-plugins.component.d.ts +15 -0
- package/lib/components/building-block-management-plugins/building-block-management-plugins.component.d.ts.map +1 -0
- package/lib/components/building-block-management-process-upload/building-block-management-process-upload.component.d.ts +25 -0
- package/lib/components/building-block-management-process-upload/building-block-management-process-upload.component.d.ts.map +1 -0
- package/lib/components/building-block-management-processes/building-block-management-processes.component.d.ts +40 -0
- package/lib/components/building-block-management-processes/building-block-management-processes.component.d.ts.map +1 -0
- package/lib/components/building-block-management-upload-modal/building-block-management-upload-modal.component.d.ts +45 -0
- package/lib/components/building-block-management-upload-modal/building-block-management-upload-modal.component.d.ts.map +1 -0
- package/lib/components/building-block-management-upload-modal/step/building-block-management-upload-step.component.d.ts +9 -0
- package/lib/components/building-block-management-upload-modal/step/building-block-management-upload-step.component.d.ts.map +1 -0
- package/lib/components/building-block-management-version-selector/building-block-management-version-selector.component.d.ts +19 -0
- package/lib/components/building-block-management-version-selector/building-block-management-version-selector.component.d.ts.map +1 -0
- package/lib/constants/building-block-management-upload.constants.d.ts +13 -0
- package/lib/constants/building-block-management-upload.constants.d.ts.map +1 -0
- package/lib/constants/building-block-management.constants.d.ts +7 -0
- package/lib/constants/building-block-management.constants.d.ts.map +1 -0
- package/lib/constants/index.d.ts +3 -0
- package/lib/constants/index.d.ts.map +1 -0
- package/lib/models/building-block-management.model.d.ts +8 -0
- package/lib/models/building-block-management.model.d.ts.map +1 -0
- package/lib/models/index.d.ts +2 -0
- package/lib/models/index.d.ts.map +1 -0
- package/lib/services/building-block-management-api.service.d.ts +33 -0
- package/lib/services/building-block-management-api.service.d.ts.map +1 -0
- package/lib/services/building-block-management-detail.service.d.ts +48 -0
- package/lib/services/building-block-management-detail.service.d.ts.map +1 -0
- package/lib/services/building-block-management.service.d.ts +20 -0
- package/lib/services/building-block-management.service.d.ts.map +1 -0
- package/lib/services/index.d.ts +4 -0
- package/lib/services/index.d.ts.map +1 -0
- package/package.json +26 -0
- package/public-api.d.ts +3 -0
- package/public-api.d.ts.map +1 -0
- package/valtimo-building-block-management.d.ts.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valtimo-building-block-management.mjs","sources":["../../../../projects/valtimo/building-block-management/src/lib/services/building-block-management-api.service.ts","../../../../projects/valtimo/building-block-management/src/lib/services/building-block-management-detail.service.ts","../../../../projects/valtimo/building-block-management/src/lib/services/building-block-management.service.ts","../../../../projects/valtimo/building-block-management/src/lib/services/index.ts","../../../../projects/valtimo/building-block-management/src/lib/constants/building-block-management.constants.ts","../../../../projects/valtimo/building-block-management/src/lib/constants/building-block-management-upload.constants.ts","../../../../projects/valtimo/building-block-management/src/lib/constants/index.ts","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-create-modal/building-block-management-create-modal.component.ts","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-create-modal/building-block-management-create-modal.component.html","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-upload-modal/step/building-block-management-upload-step.component.ts","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-upload-modal/step/building-block-management-upload-step.component.html","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-upload-modal/building-block-management-upload-modal.component.ts","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-upload-modal/building-block-management-upload-modal.component.html","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-list/building-block-management-list.component.ts","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-list/building-block-management-list.component.html","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-metadata/building-block-management-metadata.component.ts","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-metadata/building-block-management-metadata.component.html","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-artwork/building-block-management-artwork.component.ts","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-artwork/building-block-management-artwork.component.html","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-plugins/building-block-management-plugins.component.ts","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-plugins/building-block-management-plugins.component.html","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-general/building-block-management-general.component.ts","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-general/building-block-management-general.component.html","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-document/building-block-management-document.component.ts","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-document/building-block-management-document.component.html","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-process-upload/building-block-management-process-upload.component.ts","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-process-upload/building-block-management-process-upload.component.html","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-processes/building-block-management-processes.component.ts","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-processes/building-block-management-processes.component.html","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-version-selector/building-block-management-version-selector.component.ts","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-version-selector/building-block-management-version-selector.component.html","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-detail-actions/building-block-management-detail-actions.component.ts","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-detail-actions/building-block-management-detail-actions.component.html","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-detail/building-block-management-detail.component.ts","../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-detail/building-block-management-detail.component.html","../../../../projects/valtimo/building-block-management/src/lib/building-block-management-routing.ts","../../../../projects/valtimo/building-block-management/src/lib/building-block-management.module.ts","../../../../projects/valtimo/building-block-management/src/public-api.ts","../../../../projects/valtimo/building-block-management/src/valtimo-building-block-management.ts"],"sourcesContent":["/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpClient, HttpErrorResponse, HttpHeaders, HttpResponse} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {\n BaseApiService,\n BuildingBlockDefinitionArtworkDto,\n BuildingBlockDefinitionDto,\n BuildingBlockProcessDefinitionDto,\n BuildingBlockVersionDto,\n ConfigService,\n CreateBuildingBlockDefinitionArtworkDto,\n CreateBuildingBlockDefinitionDto,\n InterceptorSkip,\n Page,\n UpdateBuildingBlockDefinitionDto,\n} from '@valtimo/shared';\nimport {catchError, Observable, of} from 'rxjs';\nimport {PluginsWithDependencies} from '@valtimo/process-link';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BuildingBlockManagementApiService extends BaseApiService {\n constructor(\n protected readonly configService: ConfigService,\n protected readonly httpClient: HttpClient\n ) {\n super(httpClient, configService);\n }\n\n public getBuildingBlockDefinitions(options?: {\n includeArtwork: boolean;\n }): Observable<BuildingBlockDefinitionDto[]> {\n return this.httpClient\n .get<BuildingBlockDefinitionDto[]>(this.getApiUrl('management/v1/building-block'), {\n params: options,\n headers: new HttpHeaders().set(InterceptorSkip, '404'),\n })\n .pipe(\n catchError((error: HttpErrorResponse) => {\n if (error.status === 404) return of([]);\n throw error;\n })\n );\n }\n\n public createBuildingBlockDefinition(\n dto: CreateBuildingBlockDefinitionDto\n ): Observable<BuildingBlockDefinitionDto> {\n return this.httpClient.post<BuildingBlockDefinitionDto>(\n this.getApiUrl('management/v1/building-block'),\n dto\n );\n }\n\n public getBuildingBlockDefinition(\n key: string,\n versionTag: string\n ): Observable<BuildingBlockDefinitionDto> {\n return this.httpClient.get<BuildingBlockDefinitionDto>(\n this.getApiUrl(`management/v1/building-block/${key}/version/${versionTag}`)\n );\n }\n\n public updateBuildingBlockDefinition(\n key: string,\n versionTag: string,\n dto: UpdateBuildingBlockDefinitionDto\n ): Observable<BuildingBlockDefinitionDto> {\n return this.httpClient.put<BuildingBlockDefinitionDto>(\n this.getApiUrl(`management/v1/building-block/${key}/version/${versionTag}`),\n dto\n );\n }\n\n public getBuildingBlockDocumentDefinition(key: string, versionTag: string): Observable<object> {\n return this.httpClient.get<object>(\n this.getApiUrl(`management/v1/building-block/${key}/version/${versionTag}/document`)\n );\n }\n\n public updateBuildingBlockDocumentDefinition(\n key: string,\n versionTag: string,\n schema: any\n ): Observable<object> {\n return this.httpClient.put<object>(\n this.getApiUrl(`management/v1/building-block/${key}/version/${versionTag}/document`),\n schema\n );\n }\n\n public getBuildingBlockProcessDefinitions(\n key: string,\n versionTag: string\n ): Observable<BuildingBlockProcessDefinitionDto[]> {\n return this.httpClient.get<BuildingBlockProcessDefinitionDto[]>(\n this.getApiUrl(`management/v1/building-block/${key}/version/${versionTag}/process-definition`)\n );\n }\n\n public importBuildingBlockDefinition(file: FormData): Observable<HttpResponse<Blob>> {\n return this.httpClient.post<HttpResponse<Blob>>(\n this.getApiUrl(`management/v1/building-block/import`),\n file\n );\n }\n\n public getBuildingBlockArtwork(\n key: string,\n versionTag: string\n ): Observable<BuildingBlockDefinitionArtworkDto | null> {\n return this.httpClient\n .get<BuildingBlockDefinitionArtworkDto>(\n this.getApiUrl(`management/v1/building-block/${key}/version/${versionTag}/artwork`),\n {\n headers: new HttpHeaders().set(InterceptorSkip, '404'),\n }\n )\n .pipe(\n catchError((error: HttpErrorResponse) => {\n if (error.status === 404) return of(null);\n throw error;\n })\n );\n }\n\n public createBuildingBlockArtwork(\n key: string,\n versionTag: string,\n dto: CreateBuildingBlockDefinitionArtworkDto\n ): Observable<BuildingBlockDefinitionArtworkDto> {\n return this.httpClient.post<BuildingBlockDefinitionArtworkDto>(\n this.getApiUrl(`management/v1/building-block/${key}/version/${versionTag}/artwork`),\n dto\n );\n }\n\n public deleteBuildingBlockArtwork(key: string, versionTag: string): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(`management/v1/building-block/${key}/version/${versionTag}/artwork`)\n );\n }\n\n public getPluginDefinitionsForBuildingBlock(\n key: string,\n versionTag: string\n ): Observable<PluginsWithDependencies> {\n return this.httpClient.get<PluginsWithDependencies>(\n this.getApiUrl(`management/v1/building-block/${key}/version/${versionTag}/plugin`)\n );\n }\n\n public getVersionsForBuildingBlock(\n key: string,\n page: number = 0,\n size: number = 5,\n all: boolean = false\n ): Observable<Page<BuildingBlockVersionDto>> {\n return this.httpClient.get<Page<BuildingBlockVersionDto>>(\n this.getApiUrl(`management/v1/building-block/${key}/version`),\n {\n params: {\n page,\n size,\n all,\n } as any,\n }\n );\n }\n\n public finalizeBuildingBlockDefinition(\n key: string,\n versionTag: string\n ): Observable<BuildingBlockDefinitionDto> {\n return this.httpClient.post<BuildingBlockDefinitionDto>(\n this.getApiUrl(`management/v1/building-block/${key}/version/${versionTag}/finalize`),\n {}\n );\n }\n\n public createDraftBuildingBlockDefinition(\n key: string,\n basedOnVersionTag: string,\n versionTag: string\n ): Observable<BuildingBlockDefinitionDto> {\n return this.httpClient.post<BuildingBlockDefinitionDto>(\n this.getApiUrl(`management/v1/building-block/${key}/version/${basedOnVersionTag}/draft`),\n {versionTag}\n );\n }\n\n public setMainBuildingBlockProcessDefinition(\n key: string,\n versionTag: string,\n processDefinitionId: string\n ): Observable<void> {\n return this.httpClient.post<void>(\n this.getApiUrl(\n `management/v1/building-block/${key}/version/${versionTag}/process-definition/${processDefinitionId}/main`\n ),\n {}\n );\n }\n\n public deleteBuildingBlockProcessDefinition(\n key: string,\n versionTag: string,\n processDefinitionId: string\n ): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `management/v1/building-block/${key}/version/${versionTag}/process-definition/${processDefinitionId}`\n )\n );\n }\n\n public exportBuildingBlock(key: string, versionTag: string): Observable<HttpResponse<Blob>> {\n return this.httpClient.get(\n this.getApiUrl(`management/v1/building-block/${key}/version/${versionTag}/export`),\n {\n responseType: 'blob',\n observe: 'response',\n }\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, OnDestroy} from '@angular/core';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n filter,\n map,\n Observable,\n Subscription,\n switchMap,\n tap,\n} from 'rxjs';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {BuildingBlockManagementApiService} from './building-block-management-api.service';\nimport {BuildingBlockDefinitionDto} from '@valtimo/shared';\nimport {PageTitleService} from '@valtimo/components';\nimport {BuildingBlockManagementTabKey} from '../models';\nimport {isEqual} from 'lodash';\n\n@Injectable()\nexport class BuildingBlockManagementDetailService implements OnDestroy {\n private readonly _loadingDefinition$ = new BehaviorSubject<boolean>(true);\n public get loadingDefinition$(): Observable<boolean> {\n return this._loadingDefinition$.asObservable();\n }\n private readonly _routeSubject$ = new BehaviorSubject<ActivatedRoute | null>(null);\n private get _route$() {\n return this._routeSubject$.pipe(filter(route => route !== null));\n }\n\n private _buildingBlockDefinitionKey!: string;\n public get buildingBlockDefinitionKey(): string {\n return this._buildingBlockDefinitionKey;\n }\n public get buildingBlockDefinitionKey$(): Observable<string> {\n return this._route$.pipe(\n switchMap(route =>\n route.paramMap.pipe(\n map(params => params.get('buildingBlockDefinitionKey')!),\n filter(key => !!key),\n tap(key => (this._buildingBlockDefinitionKey = key))\n )\n )\n );\n }\n\n private _buildingBlockDefinitionVersionTag!: string;\n public get buildingBlockDefinitionVersionTag(): string {\n return this._buildingBlockDefinitionVersionTag;\n }\n public get buildingBlockDefinitionVersionTag$(): Observable<string> {\n return this._route$.pipe(\n switchMap(route =>\n route.paramMap.pipe(\n map(params => params.get('buildingBlockDefinitionVersionTag')!),\n filter(version => !!version),\n tap(version => (this._buildingBlockDefinitionVersionTag = version))\n )\n )\n );\n }\n public get activeTabKey$(): Observable<BuildingBlockManagementTabKey> {\n return this._route$.pipe(\n switchMap(route =>\n route.paramMap.pipe(\n map(params => params.get('tabKey') as BuildingBlockManagementTabKey),\n filter(key => !!key)\n )\n )\n );\n }\n\n private readonly _buildingBlockDefinition$ =\n new BehaviorSubject<BuildingBlockDefinitionDto | null>(null);\n public get buildingBlockDefinition$(): Observable<BuildingBlockDefinitionDto> {\n return this._buildingBlockDefinition$.pipe(\n filter(definition => definition !== null),\n distinctUntilChanged((a, b) => isEqual(a, b))\n );\n }\n public get isFinal$(): Observable<boolean> {\n return this.buildingBlockDefinition$.pipe(map(definition => definition.final));\n }\n\n private readonly _showProcessDefinitionUploadModal$ = new BehaviorSubject<boolean>(false);\n public readonly showProcessDefinitionUploadModal$ =\n this._showProcessDefinitionUploadModal$.asObservable();\n\n private readonly _reload$ = new BehaviorSubject<null>(null);\n\n private readonly _reloadVersions$ = new BehaviorSubject<null>(null);\n\n public get reloadVersions$(): Observable<null> {\n return this._reloadVersions$.asObservable();\n }\n\n private readonly _reloadProcessDefinitions$ = new BehaviorSubject<null>(null);\n public get reloadProcessDefinitions$(): Observable<null> {\n return this._reloadProcessDefinitions$.asObservable();\n }\n\n constructor(\n private readonly buildingBlockManagementApiService: BuildingBlockManagementApiService,\n private readonly pageTitleService: PageTitleService,\n private readonly router: Router\n ) {\n this._subscriptions.add(\n combineLatest([\n this.buildingBlockDefinitionKey$,\n this.buildingBlockDefinitionVersionTag$,\n this._reload$,\n ])\n .pipe(\n tap(() => this._loadingDefinition$.next(true)),\n switchMap(([key, version]) =>\n this.buildingBlockManagementApiService.getBuildingBlockDefinition(key, version)\n ),\n tap(res => {\n this._buildingBlockDefinition$.next(res);\n this.pageTitleService.setCustomPageTitle(res.name);\n this._loadingDefinition$.next(false);\n })\n )\n .subscribe()\n );\n }\n\n public setRoute(route: ActivatedRoute): void {\n this._routeSubject$.next(route);\n }\n\n private readonly _subscriptions = new Subscription();\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public navigateToTab(tabKey: BuildingBlockManagementTabKey): void {\n this.buildingBlockDefinition$.subscribe(definition => {\n this.router.navigate([\n '/building-block-management',\n 'building-block',\n definition.key,\n 'version',\n definition.versionTag,\n tabKey,\n ]);\n });\n }\n\n public navigateToVersionTag(versionTag: string): void {\n const currentUrl = this.router.url.split('?')[0];\n const parts = currentUrl.split('/');\n\n const versionIndex = parts.findIndex(segment => segment === 'version');\n if (versionIndex === -1 || versionIndex + 1 >= parts.length) {\n return;\n }\n\n parts[versionIndex + 1] = versionTag;\n\n const newUrl = parts.join('/');\n this.router.navigateByUrl(newUrl);\n }\n\n public reload(): void {\n this._reload$.next(null);\n }\n\n public reloadVersions(): void {\n this._reloadVersions$.next(null);\n }\n\n public showProcessDefinitionUploadModal(): void {\n this._showProcessDefinitionUploadModal$.next(true);\n }\n\n public hideProcessDefinitionUploadModal(): void {\n this._showProcessDefinitionUploadModal$.next(false);\n }\n\n public reloadProcessDefinitions(): void {\n this._reloadProcessDefinitions$.next(null);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\n\n@Injectable()\nexport class BuildingBlockManagementService {\n private readonly _showCreateModal$ = new BehaviorSubject<boolean>(false);\n public readonly showCreateModal$ = this._showCreateModal$.asObservable();\n private readonly _showUploadModal$ = new BehaviorSubject<boolean>(false);\n public readonly showUploadModal$ = this._showUploadModal$.asObservable();\n private readonly _usedKeys$ = new BehaviorSubject<string[]>([]);\n public readonly usedKeys$ = this._usedKeys$.asObservable();\n private readonly _reload$ = new BehaviorSubject<null>(null);\n public readonly reload$ = this._reload$.asObservable();\n\n public showCreateModal(): void {\n this._showCreateModal$.next(true);\n }\n public hideCreateModal(): void {\n this._showCreateModal$.next(false);\n }\n\n public showUploadModal(): void {\n this._showUploadModal$.next(true);\n }\n public hideUploadModal(): void {\n this._showUploadModal$.next(false);\n }\n\n public setUsedKeys(keys: string[]): void {\n this._usedKeys$.next(keys);\n }\n\n public reload(): void {\n this._reload$.next(null);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './building-block-management-api.service';\nexport * from './building-block-management-detail.service';\nexport * from './building-block-management.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst BUILDING_BLOCK_MANAGEMENT_TABS = {\n GENERAL: 'general',\n PROCESSES: 'process-definition',\n DOCUMENT: 'document',\n} as const;\n\nexport {BUILDING_BLOCK_MANAGEMENT_TABS};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nenum UPLOAD_STATUS {\n ACTIVE = 'active',\n ERROR = 'error',\n FINISHED = 'finished',\n}\n\nenum UPLOAD_STEP {\n FILE_SELECT = 'fileSelect',\n FILE_UPLOAD = 'fileUpload',\n PLUGINS = 'plugins',\n}\n\nconst STEPS = [UPLOAD_STEP.PLUGINS, UPLOAD_STEP.FILE_SELECT, UPLOAD_STEP.FILE_UPLOAD];\n\nexport {STEPS, UPLOAD_STATUS, UPLOAD_STEP};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './building-block-management.constants';\nexport * from './building-block-management-upload.constants';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {\n ButtonModule,\n IconModule,\n InputModule,\n LayerModule,\n ModalModule,\n TooltipModule,\n} from 'carbon-components-angular';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {\n AutoKeyInputComponent,\n runAfterCarbonModalClosed,\n TooltipIconModule,\n ValtimoCdsModalDirective,\n} from '@valtimo/components';\nimport {BuildingBlockManagementApiService, BuildingBlockManagementService} from '../../services';\nimport {catchError, of} from 'rxjs';\nimport {Router} from '@angular/router';\nimport {BUILDING_BLOCK_MANAGEMENT_TABS} from '../../constants';\n\n@Component({\n standalone: true,\n selector: 'valtimo-building-block-management-create-modal',\n templateUrl: './building-block-management-create-modal.component.html',\n styleUrls: ['./building-block-management-create-modal.component.scss'],\n imports: [\n CommonModule,\n ModalModule,\n ButtonModule,\n IconModule,\n FormsModule,\n InputModule,\n ReactiveFormsModule,\n TooltipModule,\n TranslatePipe,\n ValtimoCdsModalDirective,\n AutoKeyInputComponent,\n LayerModule,\n TooltipIconModule,\n ],\n})\nexport class BuildingBlockManagementCreateModalComponent {\n public readonly showModal$ = this.buildingBlockManagementService.showCreateModal$;\n public readonly usedKeys$ = this.buildingBlockManagementService.usedKeys$;\n\n public formGroup: FormGroup = this.fb.group({\n name: this.fb.control('', Validators.required),\n key: this.fb.control('', [Validators.required, Validators.pattern('[A-Za-z0-9-]*')]),\n versionTag: this.fb.control('', Validators.required),\n description: this.fb.control(''),\n });\n public get name(): FormControl<string> {\n return this.formGroup.get('name') as FormControl<string>;\n }\n public get key(): FormControl<string> {\n return this.formGroup.get('key') as FormControl<string>;\n }\n public get versionTag(): FormControl<string> {\n return this.formGroup.get('versionTag') as FormControl<string>;\n }\n public get description(): FormControl<string> {\n return this.formGroup.get('description') as FormControl<string>;\n }\n\n constructor(\n private readonly buildingBlockManagementApiService: BuildingBlockManagementApiService,\n private readonly buildingBlockManagementService: BuildingBlockManagementService,\n private readonly fb: FormBuilder,\n private readonly router: Router\n ) {}\n\n public onCloseModal(): void {\n this.buildingBlockManagementService.hideCreateModal();\n this.resetForm();\n }\n\n public onSave(): void {\n this.formGroup.disable();\n\n this.buildingBlockManagementApiService\n .createBuildingBlockDefinition(this.formGroup.value)\n .pipe(\n catchError(() => {\n this.formGroup.enable();\n return of(null);\n })\n )\n .subscribe(createdBuildingBlock => {\n this.router.navigate([\n '/building-block-management',\n 'building-block',\n createdBuildingBlock.key,\n 'version',\n createdBuildingBlock.versionTag,\n BUILDING_BLOCK_MANAGEMENT_TABS.GENERAL,\n ]);\n });\n }\n\n private resetForm(): void {\n runAfterCarbonModalClosed(() => {\n this.formGroup.reset();\n this.formGroup.enable();\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{\n showModal: showModal$ | async,\n } as obs\"\n [open]=\"obs.showModal\"\n showFooter=\"true\"\n valtimoCdsModal\n (close)=\"onCloseModal()\"\n>\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onCloseModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'buildingBlockManagement.createDefinition.modalTitle' | translate }}\n </h3>\n </cds-modal-header>\n\n <form\n [formGroup]=\"formGroup\"\n cdsModalContent\n class=\"valtimo-definition-create__content\"\n [cdsLayer]=\"1\"\n >\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"formGroup.disabled\" [invalid]=\"name.touched && name.invalid\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'buildingBlockManagement.createDefinition.name' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'buildingBlockManagement.createDefinition.nameTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input\n formControlName=\"name\"\n cdsText\n placeholder=\"{{ 'buildingBlockManagement.createDefinition.namePlaceholder' | translate }}\"\n />\n </cds-label>\n </div>\n\n <valtimo-auto-key-input\n [cdsLayer]=\"1\"\n formControlName=\"key\"\n labelTranslationKey=\"buildingBlockManagement.createDefinition.keyTitle\"\n placeholderTranslationKey=\"buildingBlockManagement.createDefinition.keyPlaceHolder\"\n mode=\"add\"\n [usedKeys]=\"usedKeys$ | async\"\n [sourceText]=\"name.value\"\n >\n </valtimo-auto-key-input>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label\n [disabled]=\"formGroup.disabled\"\n [invalid]=\"versionTag.touched && versionTag.invalid\"\n >\n <span class=\"label-with-tooltip select-label\">\n {{ 'buildingBlockManagement.createDefinition.version' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'buildingBlockManagement.createDefinition.versionTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input\n formControlName=\"versionTag\"\n cdsText\n placeholder=\"{{\n 'buildingBlockManagement.createDefinition.versionPlaceholder' | translate\n }}\"\n />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label\n [disabled]=\"formGroup.disabled\"\n [invalid]=\"description.touched && description.invalid\"\n >\n <span class=\"label-with-tooltip select-label\">\n {{ 'buildingBlockManagement.createDefinition.description' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'buildingBlockManagement.createDefinition.descriptionTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <textarea\n cdsTextArea\n formControlName=\"description\"\n placeholder=\"{{\n 'buildingBlockManagement.createDefinition.descriptionPlaceholder' | translate\n }}\"\n [rows]=\"3\"\n [cols]=\"150\"\n ></textarea>\n </cds-label>\n </div>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCloseModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"onSave()\">\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, Input} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\n@Component({\n standalone: true,\n selector: 'valtimo-building-block-management-upload-step',\n templateUrl: './building-block-management-upload-step.component.html',\n styleUrls: ['./building-block-management-upload-step.component.scss'],\n imports: [CommonModule],\n})\nexport class BuildingBlockManagementUploadStepComponent {\n @Input() illustration!: string;\n @Input() message!: string;\n @Input() title!: string;\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"valtimo-upload-step__content\">\n <div class=\"valtimo-upload-step__title\">{{ title }}</div>\n\n <div class=\"valtimo-upload-step__message\">{{ message }}</div>\n</div>\n\n<img [src]=\"illustration\" alt=\"{{ illustration }}\" class=\"valtimo-upload-step__illustration\" />\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {ChangeDetectionStrategy, Component, OnDestroy, OnInit, signal} from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport {WarningFilled16} from '@carbon/icons';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {CARBON_CONSTANTS, runAfterCarbonModalClosed} from '@valtimo/components';\nimport {\n ButtonModule,\n CheckboxModule,\n FileItem,\n FileUploaderModule,\n IconService,\n ModalModule,\n NotificationContent,\n NotificationModule,\n ProgressBarModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, map, Observable, Subscription, switchMap, take} from 'rxjs';\nimport {STEPS, UPLOAD_STATUS, UPLOAD_STEP} from '../../constants';\nimport {BuildingBlockManagementApiService, BuildingBlockManagementService} from '../../services';\nimport {CommonModule} from '@angular/common';\nimport {BuildingBlockManagementUploadStepComponent} from './step/building-block-management-upload-step.component';\nimport {toObservable} from '@angular/core/rxjs-interop';\n\n@Component({\n standalone: true,\n selector: 'valtimo-building-block-management-upload-modal',\n templateUrl: './building-block-management-upload-modal.component.html',\n styleUrls: ['./building-block-management-upload-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FileUploaderModule,\n ModalModule,\n TranslateModule,\n ButtonModule,\n ProgressBarModule,\n NotificationModule,\n CheckboxModule,\n BuildingBlockManagementUploadStepComponent,\n ReactiveFormsModule,\n ],\n})\nexport class BuildingBlockManagementUploadModalComponent implements OnInit, OnDestroy {\n public readonly acceptedFiles: string[] = ['.zip'];\n public readonly showUploadModal$ = this.buildingBlockManagementService.showUploadModal$;\n\n private readonly _disabled$ = new BehaviorSubject<boolean>(true);\n\n public readonly UPLOAD_STEP = UPLOAD_STEP;\n public readonly UPLOAD_STATUS = UPLOAD_STATUS;\n public readonly activeStep$ = new BehaviorSubject<UPLOAD_STEP>(UPLOAD_STEP.PLUGINS);\n public readonly backButtonEnabled$: Observable<boolean> = this.activeStep$.pipe(\n map((activeStep: UPLOAD_STEP) => [UPLOAD_STEP.FILE_SELECT].includes(activeStep))\n );\n public readonly isStepAfterUpload$: Observable<boolean> = this.activeStep$.pipe(\n map(\n (activeStep: UPLOAD_STEP) =>\n ![UPLOAD_STEP.PLUGINS, UPLOAD_STEP.FILE_SELECT].includes(activeStep)\n )\n );\n public readonly showCloseButton$: Observable<boolean> = this.activeStep$.pipe(\n map((activeStep: UPLOAD_STEP) =>\n [UPLOAD_STEP.PLUGINS, UPLOAD_STEP.FILE_SELECT, UPLOAD_STEP.FILE_UPLOAD].includes(activeStep)\n )\n );\n public readonly $warningChecked = signal(false);\n\n public readonly nextButtonDisabled$: Observable<boolean> = combineLatest([\n this.activeStep$,\n this._disabled$,\n toObservable(this.$warningChecked),\n ]).pipe(\n map(([activeStep, disabled, warningChecked]) => {\n const warningNotChecked = activeStep === UPLOAD_STEP.FILE_SELECT && !warningChecked;\n return warningNotChecked || (activeStep !== UPLOAD_STEP.PLUGINS && disabled);\n })\n );\n\n public readonly notificationObj$: Observable<NotificationContent> = combineLatest([\n this.translateService.stream('interface.warning'),\n this.translateService.stream('buildingBlockManagement.importDefinition.overwriteWarning'),\n ]).pipe(\n map(([title, message]) => ({\n type: 'warning',\n title,\n message,\n showClose: false,\n lowContrast: true,\n }))\n );\n public readonly showCheckboxError$ = new BehaviorSubject<boolean>(false);\n public readonly uploadStatus$ = new BehaviorSubject<UPLOAD_STATUS>(UPLOAD_STATUS.ACTIVE);\n\n public form: FormGroup = this.fb.group({\n file: this.fb.control(new Set<any>(), [Validators.required]),\n });\n\n private readonly _importFile$ = new BehaviorSubject<string | FormData>('');\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly buildingBlockManagementApiService: BuildingBlockManagementApiService,\n private readonly buildingBlockManagementService: BuildingBlockManagementService,\n private readonly fb: FormBuilder,\n private readonly iconService: IconService,\n private readonly translateService: TranslateService\n ) {\n this.iconService.register(WarningFilled16);\n }\n\n public ngOnInit(): void {\n const control: AbstractControl | null = this.form.get('file');\n if (!control) {\n return;\n }\n\n this._subscriptions.add(\n this.form.get('file').valueChanges.subscribe((fileSet: Set<FileItem>) => {\n // @ts-ignore\n const [fileItem] = fileSet;\n if (!fileItem) {\n this._disabled$.next(true);\n this.showCheckboxError$.next(false);\n this.$warningChecked.set(false);\n return;\n }\n\n this.setZipFile(fileItem);\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this.resetModal();\n }\n\n public onCloseModal(definitionUploaded?: boolean): void {\n if (definitionUploaded) {\n this.buildingBlockManagementService.reload();\n }\n\n this.buildingBlockManagementService.hideUploadModal();\n\n runAfterCarbonModalClosed(() => {\n this.resetModal();\n });\n }\n\n public onBackClick(activeStep: UPLOAD_STEP): void {\n const prevIndex: number = STEPS.findIndex((step: UPLOAD_STEP) => step === activeStep) - 1;\n if (prevIndex === -1) {\n return;\n }\n\n this.activeStep$.next(STEPS[prevIndex]);\n }\n\n public onNextClick(activeStep: UPLOAD_STEP): void {\n const nextIndex: number = STEPS.findIndex((step: UPLOAD_STEP) => step === activeStep) + 1;\n if (nextIndex === STEPS.length) {\n return;\n }\n\n if (activeStep === UPLOAD_STEP.FILE_SELECT && !this.$warningChecked()) {\n this.showCheckboxError$.next(true);\n return;\n }\n\n this.activeStep$.next(STEPS[nextIndex]);\n if (STEPS[nextIndex] !== UPLOAD_STEP.FILE_UPLOAD) {\n return;\n }\n\n this.uploadDefinition();\n }\n\n public onCheckedChange(checked: boolean): void {\n this.$warningChecked.set(checked);\n\n if (!checked) {\n return;\n }\n\n this.showCheckboxError$.next(false);\n }\n\n private setZipFile(fileItem: FileItem): void {\n const file = fileItem?.file;\n\n if (!file) {\n this._importFile$.next('');\n return;\n }\n\n const blob = new Blob([fileItem.file], {type: fileItem.file.type});\n const fd = new FormData();\n fd.append('file', blob, fileItem.file.name);\n this._importFile$.next(fd);\n this._disabled$.next(false);\n }\n\n private uploadDefinition(): void {\n this._disabled$.next(true);\n this._importFile$\n .pipe(\n switchMap((file: FormData) =>\n this.buildingBlockManagementApiService.importBuildingBlockDefinition(file)\n ),\n take(1)\n )\n .subscribe({\n next: () => {\n this._disabled$.next(false);\n this.uploadStatus$.next(UPLOAD_STATUS.FINISHED);\n },\n error: () => {\n this.uploadStatus$.next(UPLOAD_STATUS.ERROR);\n this._disabled$.next(false);\n },\n });\n }\n\n private resetModal(): void {\n setTimeout(() => {\n this.activeStep$.next(UPLOAD_STEP.PLUGINS);\n this.uploadStatus$.next(UPLOAD_STATUS.ACTIVE);\n this.showCheckboxError$.next(false);\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{\n activeStep: activeStep$ | async,\n backButtonEnabled: backButtonEnabled$ | async,\n isStepAfterUpload: isStepAfterUpload$ | async,\n nextButtonDisabled: nextButtonDisabled$ | async,\n notificationObj: notificationObj$ | async,\n showCheckboxError: showCheckboxError$ | async,\n showCloseButton: showCloseButton$ | async,\n uploadStatus: uploadStatus$ | async,\n showUploadModal: showUploadModal$ | async,\n } as obs\"\n valtimoCdsModal\n [open]=\"obs.showUploadModal\"\n showFooter=\"true\"\n class=\"valtimo-definition-uploader\"\n (close)=\"onCloseModal()\"\n>\n <cds-modal-header\n [showCloseButton]=\"obs.showCloseButton\"\n (closeSelect)=\"onCloseModal(obs.isStepAfterUpload && obs.uploadStatus !== UPLOAD_STATUS.ERROR)\"\n >\n <h3 cdsModalHeaderHeading>\n {{ 'buildingBlockManagement.importDefinition.title' | translate }}\n </h3>\n </cds-modal-header>\n\n <section [ngSwitch]=\"obs.activeStep\" cdsModalContent class=\"valtimo-definition-uploader__content\">\n <ng-template ngSwitchDefault>\n <valtimo-building-block-management-upload-step\n [message]=\"\n 'buildingBlockManagement.importDefinition.steps.' + obs.activeStep + '.message'\n | translate\n \"\n [title]=\"\n 'buildingBlockManagement.importDefinition.steps.' + obs.activeStep + '.title' | translate\n \"\n [illustration]=\"'valtimo-layout/img/' + obs.activeStep + '.svg'\"\n >\n </valtimo-building-block-management-upload-step>\n </ng-template>\n\n <form *ngSwitchCase=\"UPLOAD_STEP.FILE_SELECT\" [formGroup]=\"form\">\n <cds-file-uploader\n [accept]=\"acceptedFiles\"\n [buttonText]=\"'buildingBlockManagement.importDefinition.upload.buttonText' | translate\"\n [description]=\"'buildingBlockManagement.importDefinition.upload.description' | translate\"\n [multiple]=\"false\"\n [title]=\"'buildingBlockManagement.importDefinition.upload.title' | translate\"\n buttonType=\"primary\"\n formControlName=\"file\"\n class=\"valtimo-definition-uploader__file-uploader\"\n >\n </cds-file-uploader>\n\n <ng-container *ngIf=\"obs.activeStep === UPLOAD_STEP.FILE_SELECT\">\n <cds-inline-notification [notificationObj]=\"obs.notificationObj\"></cds-inline-notification>\n\n <div class=\"valtimo-uploader__checkbox\">\n <cds-checkbox\n [class.valtimo-definition-uploader__checkbox--invalid]=\"obs.showCheckboxError\"\n (checkedChange)=\"onCheckedChange($event)\"\n >\n {{ 'buildingBlockManagement.importDefinition.checkbox.message' | translate }}\n </cds-checkbox>\n\n <div *ngIf=\"obs.showCheckboxError\" class=\"valtimo-definition-uploader__error\">\n <svg cdsIcon=\"warning--filled\" size=\"16\"></svg>\n {{ 'buildingBlockManagement.importDefinition.checkbox.error' | translate }}\n </div>\n </div>\n </ng-container>\n </form>\n\n <cds-progress-bar\n *ngSwitchCase=\"UPLOAD_STEP.FILE_UPLOAD\"\n class=\"valtimo-definition-uploader__progress-bar\"\n [label]=\"'buildingBlockManagement.importDefinition.progressBar.label' | translate\"\n [status]=\"obs.uploadStatus\"\n [helperText]=\"\n 'buildingBlockManagement.importDefinition.progressBar.' + obs.uploadStatus | translate\n \"\n ></cds-progress-bar>\n </section>\n\n <cds-modal-footer\n class=\"valtimo-definition-uploader__footer\"\n [class.valtimo-definition-uploader__footer--double]=\"obs.activeStep === UPLOAD_STEP.PLUGINS\"\n >\n <button\n *ngIf=\"obs.uploadStatus !== UPLOAD_STATUS.ERROR && obs.activeStep !== UPLOAD_STEP.FILE_UPLOAD\"\n class=\"valtimo-definition-uploader__cancel\"\n cdsButton=\"ghost\"\n (click)=\"onCloseModal(obs.isStepAfterUpload)\"\n >\n {{ (obs.isStepAfterUpload ? 'interface.skip' : 'interface.cancel') | translate }}\n </button>\n\n <div class=\"valtimo-definition-uploader__actions\">\n <button\n *ngIf=\"obs.backButtonEnabled\"\n cdsButton=\"secondary\"\n (click)=\"onBackClick(obs.activeStep)\"\n >\n {{ 'interface.back' | translate }}\n </button>\n\n <button\n *ngIf=\"\n obs.uploadStatus !== UPLOAD_STATUS.ERROR && obs.activeStep !== UPLOAD_STEP.FILE_UPLOAD\n \"\n cdsButton=\"primary\"\n [disabled]=\"obs.nextButtonDisabled\"\n (click)=\"onNextClick(obs.activeStep)\"\n >\n {{\n (obs.activeStep === UPLOAD_STEP.FILE_SELECT\n ? 'buildingBlockManagement.importDefinition.startUpload'\n : 'interface.next'\n ) | translate\n }}\n </button>\n\n <button\n *ngIf=\"\n obs.uploadStatus === UPLOAD_STATUS.ERROR || obs.activeStep === UPLOAD_STEP.FILE_UPLOAD\n \"\n class=\"valtimo-definition-uploader__cancel\"\n cdsButton=\"primary\"\n (click)=\"onCloseModal(true)\"\n >\n {{ 'interface.finish' | translate }}\n </button>\n </div>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, signal} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CarbonListModule, ColumnConfig, ViewType} from '@valtimo/components';\nimport {BuildingBlockManagementApiService, BuildingBlockManagementService} from '../../services';\nimport {switchMap, tap} from 'rxjs';\nimport {ButtonModule, IconModule, IconService} from 'carbon-components-angular';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {\n BuildingBlockManagementCreateModalComponent,\n} from '../building-block-management-create-modal/building-block-management-create-modal.component';\nimport {BuildingBlockDefinitionDto} from '@valtimo/shared';\nimport {Upload16} from '@carbon/icons';\nimport {Router} from '@angular/router';\nimport {BUILDING_BLOCK_MANAGEMENT_TABS} from '../../constants';\nimport {\n BuildingBlockManagementUploadModalComponent,\n} from '../building-block-management-upload-modal/building-block-management-upload-modal.component';\n\n@Component({\n standalone: true,\n selector: 'valtimo-building-block-management-list',\n templateUrl: './building-block-management-list.component.html',\n styleUrls: ['./building-block-management-list.component.scss'],\n imports: [\n CommonModule,\n CarbonListModule,\n ButtonModule,\n IconModule,\n TranslatePipe,\n BuildingBlockManagementCreateModalComponent,\n BuildingBlockManagementUploadModalComponent,\n ],\n providers: [BuildingBlockManagementService],\n})\nexport class BuildingBlockManagementListComponent {\n public readonly $loading = signal<boolean>(true);\n\n public readonly buildingBlockDefinitions$ = this.buildingBlockManagementService.reload$.pipe(\n switchMap(() =>\n this.buildingBlockManagementApiService.getBuildingBlockDefinitions()\n ),\n tap(res => {\n this.buildingBlockManagementService.setUsedKeys(res.map(item => item.key));\n this.$loading.set(false);\n })\n );\n\n public readonly FIELDS: ColumnConfig[] = [\n {key: 'name', label: 'buildingBlockManagement.listColumns.name'},\n {key: 'key', label: 'buildingBlockManagement.listColumns.key'},\n {\n key: 'versionTag',\n label: 'buildingBlockManagement.listColumns.versionTag',\n viewType: ViewType.TAGS,\n },\n ];\n\n constructor(\n private readonly buildingBlockManagementApiService: BuildingBlockManagementApiService,\n private readonly buildingBlockManagementService: BuildingBlockManagementService,\n private readonly iconService: IconService,\n private readonly router: Router\n ) {\n this.iconService.registerAll([Upload16]);\n }\n\n public showCreateModal(): void {\n this.buildingBlockManagementService.showCreateModal();\n }\n\n public showUploadModal(): void {\n this.buildingBlockManagementService.showUploadModal();\n }\n\n public onRowClick(buildingBlockDefinition: BuildingBlockDefinitionDto): void {\n this.router.navigate([\n '/building-block-management',\n 'building-block',\n buildingBlockDefinition.key,\n 'version',\n buildingBlockDefinition.versionTag,\n BUILDING_BLOCK_MANAGEMENT_TABS.GENERAL,\n ]);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{buildingBlockDefinitions: buildingBlockDefinitions$ | async} as obs\">\n <valtimo-carbon-list\n [fields]=\"FIELDS\"\n [items]=\"obs.buildingBlockDefinitions\"\n [loading]=\"$loading()\"\n (rowClicked)=\"onRowClick($event)\"\n >\n <ng-container\n carbonToolbarContent\n [ngTemplateOutlet]=\"buildingBlockDefinitionActions\"\n ></ng-container>\n\n <valtimo-no-results\n [action]=\"buildingBlockDefinitionActions\"\n [description]=\"'buildingBlockManagement.noResults.description' | translate\"\n [title]=\"'buildingBlockManagement.noResults.title' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n</ng-container>\n\n<ng-template #buildingBlockDefinitionActions>\n <div class=\"valtimo-building-block-management-list__actions\">\n <button cdsButton=\"ghost\" (click)=\"showUploadModal()\">\n {{ 'Upload' | translate }}\n\n <svg cdsIcon=\"upload\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button cdsButton=\"primary\" (click)=\"showCreateModal()\">\n {{ 'interface.create' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n</ng-template>\n\n<valtimo-building-block-management-create-modal></valtimo-building-block-management-create-modal>\n\n<valtimo-building-block-management-upload-modal></valtimo-building-block-management-upload-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {\n BuildingBlockManagementApiService,\n BuildingBlockManagementDetailService,\n} from '../../services';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {ReadOnlyDirective, TooltipIconModule} from '@valtimo/components';\nimport {ButtonModule, InputModule, LayerModule} from 'carbon-components-angular';\nimport {combineLatest, Subscription} from 'rxjs';\n\n@Component({\n standalone: true,\n selector: 'valtimo-building-block-management-metadata',\n templateUrl: './building-block-management-metadata.component.html',\n styleUrls: ['./building-block-management-metadata.component.scss'],\n imports: [\n CommonModule,\n TranslatePipe,\n ReactiveFormsModule,\n InputModule,\n TooltipIconModule,\n LayerModule,\n ReadOnlyDirective,\n ButtonModule,\n ],\n})\nexport class BuildingBlockManagementMetadataComponent implements OnInit, OnDestroy {\n public formGroup: FormGroup = this.fb.group({\n name: this.fb.control('', Validators.required),\n key: this.fb.control('', Validators.required),\n description: this.fb.control(''),\n });\n public get name(): FormControl<string> {\n return this.formGroup.get('name') as FormControl<string>;\n }\n public get key(): FormControl<string> {\n return this.formGroup.get('key') as FormControl<string>;\n }\n public get description(): FormControl<string> {\n return this.formGroup.get('description') as FormControl<string>;\n }\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly buildingBlockManagementDetailService: BuildingBlockManagementDetailService,\n private readonly buildingBlockManagementApiService: BuildingBlockManagementApiService,\n private readonly fb: FormBuilder\n ) {}\n\n public ngOnInit(): void {\n this.openBuildingBlockDefinitionSubscription();\n this.openLoadingAndFinalSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onSave(): void {\n this.formGroup.disable();\n\n this.buildingBlockManagementApiService\n .updateBuildingBlockDefinition(\n this.buildingBlockManagementDetailService.buildingBlockDefinitionKey,\n this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag,\n this.formGroup.value\n )\n .subscribe(() => {\n this.buildingBlockManagementDetailService.reload();\n });\n }\n\n private openBuildingBlockDefinitionSubscription(): void {\n this._subscriptions.add(\n this.buildingBlockManagementDetailService.buildingBlockDefinition$.subscribe(\n buildingBlockDefinition => {\n this.formGroup.setValue({\n name: buildingBlockDefinition.name,\n key: buildingBlockDefinition.key,\n description: buildingBlockDefinition.description,\n });\n }\n )\n );\n }\n\n private openLoadingAndFinalSubscription(): void {\n this._subscriptions.add(\n combineLatest([\n this.buildingBlockManagementDetailService.loadingDefinition$,\n this.buildingBlockManagementDetailService.isFinal$,\n ]).subscribe(([loadingDefinition, isFinal]) => {\n if (loadingDefinition) {\n this.formGroup.disable();\n } else if (!isFinal) {\n this.name.enable();\n this.description.enable();\n this.formGroup.markAsPristine();\n }\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form class=\"building-block-management-metadata\" [formGroup]=\"formGroup\" [cdsLayer]=\"1\">\n <h4 class=\"building-block-management-metadata__title\">\n {{ 'buildingBlockManagement.metadata.title' | translate }}\n </h4>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"formGroup.disabled\" [invalid]=\"name.touched && name.invalid\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'buildingBlockManagement.createDefinition.name' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'buildingBlockManagement.createDefinition.nameTooltip' | translate\"\n [disabled]=\"formGroup.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input\n formControlName=\"name\"\n cdsText\n placeholder=\"{{ 'buildingBlockManagement.createDefinition.namePlaceholder' | translate }}\"\n />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"formGroup.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'buildingBlockManagement.createDefinition.keyTitle' | translate }}\n </span>\n\n <input formControlName=\"key\" cdsText valtimoReadOnly [isReadOnly]=\"true\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label\n [disabled]=\"formGroup.disabled\"\n [invalid]=\"description.touched && description.invalid\"\n >\n <span class=\"label-with-tooltip select-label\">\n {{ 'buildingBlockManagement.createDefinition.description' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'buildingBlockManagement.createDefinition.descriptionTooltip' | translate\"\n [disabled]=\"formGroup.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <textarea\n cdsTextArea\n formControlName=\"description\"\n placeholder=\"{{\n 'buildingBlockManagement.createDefinition.descriptionPlaceholder' | translate\n }}\"\n [rows]=\"3\"\n [cols]=\"150\"\n ></textarea>\n </cds-label>\n </div>\n\n <div class=\"building-block-management-metadata__buttons\">\n <button\n cdsButton=\"primary\"\n [disabled]=\"formGroup.disabled || formGroup.invalid || formGroup.pristine\"\n (click)=\"onSave()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </div>\n</form>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {\n BuildingBlockManagementApiService,\n BuildingBlockManagementDetailService,\n} from '../../services';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {FormBuilder, FormControl, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {\n ConfirmationModalModule,\n RenderInBodyComponent,\n TooltipIconModule,\n} from '@valtimo/components';\nimport {\n ButtonModule,\n FileUploaderModule,\n IconModule,\n IconService,\n InputModule,\n LayerModule,\n LoadingModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, Subscription, switchMap, tap} from 'rxjs';\nimport {TrashCan16, Upload16} from '@carbon/icons';\n\n@Component({\n standalone: true,\n selector: 'valtimo-building-block-management-artwork',\n templateUrl: './building-block-management-artwork.component.html',\n styleUrls: ['./building-block-management-artwork.component.scss'],\n imports: [\n CommonModule,\n TranslatePipe,\n ReactiveFormsModule,\n InputModule,\n TooltipIconModule,\n LayerModule,\n ButtonModule,\n FileUploaderModule,\n LoadingModule,\n IconModule,\n ConfirmationModalModule,\n RenderInBodyComponent,\n ],\n})\nexport class BuildingBlockManagementArtworkComponent implements OnInit, OnDestroy {\n public readonly ACCEPTED_FILES: string[] = ['png'];\n\n public readonly formGroup = this.formBuilder.group({\n file: this.formBuilder.control(new Set<any>(), [Validators.required]),\n });\n\n public get file(): FormControl<Set<any>> {\n return this.formGroup.get('file') as FormControl<Set<File>>;\n }\n\n public readonly loadingArtwork$ = new BehaviorSubject<boolean>(true);\n\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n\n public readonly artwork$ = this._refresh$.pipe(\n switchMap(() =>\n this.buildingBlockManagementApiService.getBuildingBlockArtwork(\n this.buildingBlockManagementDetailService.buildingBlockDefinitionKey,\n this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag\n )\n ),\n tap(() => this.loadingArtwork$.next(false))\n );\n\n public readonly showDeleteConfirmationModal$ = new BehaviorSubject<boolean>(false);\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly buildingBlockManagementDetailService: BuildingBlockManagementDetailService,\n private readonly buildingBlockManagementApiService: BuildingBlockManagementApiService,\n private readonly formBuilder: FormBuilder,\n private readonly iconService: IconService\n ) {\n this.iconService.registerAll([Upload16, TrashCan16]);\n }\n\n public ngOnInit(): void {\n this._subscriptions.add(\n this.buildingBlockManagementDetailService.isFinal$.subscribe(isFinal => {\n if (isFinal) {\n this.formGroup.disable();\n } else {\n this.formGroup.enable();\n }\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public async onSave(): Promise<void> {\n const file = Array.from(this.file.value)[0]?.file;\n const imageBase64 = await this.fileToBase64(file);\n\n this.formGroup.disable();\n\n this.buildingBlockManagementApiService\n .createBuildingBlockArtwork(\n this.buildingBlockManagementDetailService.buildingBlockDefinitionKey,\n this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag,\n {\n imageBase64,\n }\n )\n .subscribe({\n next: () => {\n this._refresh$.next(null);\n this.formGroup.enable();\n },\n error: () => {\n this.formGroup.enable();\n },\n });\n }\n\n public onDeleteButtonClick(): void {\n this.showDeleteConfirmationModal$.next(true);\n }\n\n public onDelete(): void {\n this.buildingBlockManagementApiService\n .deleteBuildingBlockArtwork(\n this.buildingBlockManagementDetailService.buildingBlockDefinitionKey,\n this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag\n )\n .subscribe(() => {\n this._refresh$.next(null);\n });\n }\n\n private async fileToBase64(file: File): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n const result = reader.result as string;\n const pureBase64 = result.split(',')[1];\n resolve(pureBase64);\n };\n reader.onerror = error => reject(error);\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n *ngIf=\"{\n artwork: artwork$ | async,\n loadingArtwork: loadingArtwork$ | async,\n } as obs\"\n class=\"building-block-management-artwork\"\n [formGroup]=\"formGroup\"\n [cdsLayer]=\"1\"\n>\n <h4 class=\"building-block-management-artwork__title\">\n {{ 'buildingBlockManagement.artwork.title' | translate }}\n </h4>\n\n @if (obs.loadingArtwork) {\n <div class=\"loading-container\"><cds-loading></cds-loading></div>\n }\n\n @if (!obs.loadingArtwork && obs.artwork) {\n <div class=\"building-block-management-artwork__preview\">\n <img\n class=\"building-block-management-artwork__image\"\n [src]=\"'data:image/png;base64,' + obs.artwork.imageBase64\"\n />\n </div>\n\n <div class=\"building-block-management-artwork__buttons\">\n <button cdsButton=\"danger\" (click)=\"onDeleteButtonClick()\" [disabled]=\"formGroup.disabled\">\n {{ 'interface.delete' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n }\n\n @if (!obs.loadingArtwork && !obs.artwork) {\n <cds-file-uploader\n *ngIf=\"!obs.loadingArtwork && !obs.artwork\"\n [accept]=\"ACCEPTED_FILES\"\n [multiple]=\"false\"\n buttonType=\"primary\"\n [title]=\"'buildingBlockManagement.artwork.fileUploaderTitle' | translate\"\n [description]=\"'buildingBlockManagement.artwork.fileUploaderDescription' | translate\"\n [buttonText]=\"'buildingBlockManagement.artwork.fileUploaderButton' | translate\"\n formControlName=\"file\"\n >\n </cds-file-uploader>\n\n <div class=\"building-block-management-artwork__buttons\">\n <button\n cdsButton=\"primary\"\n [disabled]=\"formGroup.disabled || formGroup.invalid || formGroup.pristine\"\n (click)=\"onSave()\"\n >\n {{ 'interface.upload' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n </div>\n }\n</form>\n\n<valtimo-render-in-body>\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"buildingBlockManagement.artwork.deleteConfirmationModalText\"\n [showModalSubject$]=\"showDeleteConfirmationModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete()\"\n ></valtimo-confirmation-modal>\n</valtimo-render-in-body>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {\n BuildingBlockManagementApiService,\n BuildingBlockManagementDetailService,\n} from '../../services';\nimport {BehaviorSubject, combineLatest, map, Observable, tap} from 'rxjs';\nimport {PluginManagementService} from '@valtimo/plugin';\nimport {LoadingModule, TagModule} from 'carbon-components-angular';\nimport {TranslatePipe} from '@ngx-translate/core';\n\n@Component({\n standalone: true,\n selector: 'valtimo-building-block-management-plugins',\n templateUrl: './building-block-management-plugins.component.html',\n styleUrls: ['./building-block-management-plugins.component.scss'],\n imports: [CommonModule, LoadingModule, TranslatePipe, TagModule],\n})\nexport class BuildingBlockManagementPluginsComponent {\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n public readonly usedPluginTitles$: Observable<string[]> = combineLatest([\n this.pluginManagementService.getPluginDefinitions(),\n this.buildingBlockManagementApiService.getPluginDefinitionsForBuildingBlock(\n this.buildingBlockManagementDetailService.buildingBlockDefinitionKey,\n this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag\n ),\n ]).pipe(\n map(([pluginDefinitions, pluginsForBuildingBlock]) => {\n const plugins = pluginsForBuildingBlock?.plugins ?? [];\n const pluginKeys = plugins.map(plugin => plugin.pluginDefinitionKey).filter(Boolean);\n\n return pluginKeys.map(\n pluginDefinitionForBuildingBlock =>\n pluginDefinitions.find(\n pluginDefinition => pluginDefinition.key === pluginDefinitionForBuildingBlock\n )?.title ?? pluginDefinitionForBuildingBlock\n );\n }),\n tap(() => this.loading$.next(false))\n );\n\n constructor(\n private readonly buildingBlockManagementApiService: BuildingBlockManagementApiService,\n private readonly pluginManagementService: PluginManagementService,\n private readonly buildingBlockManagementDetailService: BuildingBlockManagementDetailService\n ) {}\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"building-block-management-plugins\"\n *ngIf=\"{usedPluginTitles: usedPluginTitles$ | async, loading: loading$ | async} as obs\"\n>\n <h4 class=\"building-block-management-plugins__title\">\n {{ 'buildingBlockManagement.plugins.title' | translate }}\n </h4>\n\n @if (obs.loading) {\n <div class=\"loading-container\"><cds-loading size=\"sm\"></cds-loading></div>\n }\n\n @if (!obs.loading && obs.usedPluginTitles.length > 0) {\n <div class=\"building-block-management-plugins__tags\">\n @for (pluginTitle of obs.usedPluginTitles; track pluginTitle) {\n <cds-tag type=\"blue\">{{ pluginTitle }}</cds-tag>\n }\n </div>\n }\n\n @if (!obs.loading && obs.usedPluginTitles.length === 0) {\n <p class=\"building-block-management-plugins__description cds--label-description\">\n {{ 'buildingBlockManagement.plugins.noPluginsUsed' | translate }}\n </p>\n }\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BuildingBlockManagementDetailService} from '../../services';\nimport {MuuriDirectiveModule} from '@valtimo/components';\nimport {BuildingBlockManagementMetadataComponent} from '../building-block-management-metadata/building-block-management-metadata.component';\nimport {BuildingBlockManagementArtworkComponent} from '../building-block-management-artwork/building-block-management-artwork.component';\nimport {BuildingBlockManagementPluginsComponent} from '../building-block-management-plugins/building-block-management-plugins.component';\n\n@Component({\n standalone: true,\n selector: 'valtimo-building-block-management-general',\n templateUrl: './building-block-management-general.component.html',\n styleUrls: ['./building-block-management-general.component.scss'],\n imports: [\n CommonModule,\n MuuriDirectiveModule,\n BuildingBlockManagementMetadataComponent,\n BuildingBlockManagementArtworkComponent,\n BuildingBlockManagementPluginsComponent,\n ],\n})\nexport class BuildingBlockManagementGeneralComponent {\n constructor(\n private readonly buildingBlockManagementDetailService: BuildingBlockManagementDetailService\n ) {}\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"building-block-management-general\">\n <valtimo-building-block-management-plugins></valtimo-building-block-management-plugins>\n\n <div class=\"muuri-container\">\n <div muuri [columnMinWidth]=\"450\">\n <valtimo-muuri-item>\n <valtimo-building-block-management-metadata></valtimo-building-block-management-metadata>\n </valtimo-muuri-item>\n\n <valtimo-muuri-item>\n <valtimo-building-block-management-artwork></valtimo-building-block-management-artwork>\n </valtimo-muuri-item>\n </div>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {\n BuildingBlockManagementApiService,\n BuildingBlockManagementDetailService,\n} from '../../services';\nimport {BehaviorSubject, combineLatest, filter, map, Subscription, switchMap, tap} from 'rxjs';\nimport {FitPageDirective, SchemaEditorComponent} from '@valtimo/components';\nimport {ButtonModule, IconModule, IconService, LoadingModule} from 'carbon-components-angular';\nimport {take} from 'rxjs/operators';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {Download16} from '@carbon/icons';\n\n@Component({\n standalone: true,\n selector: 'valtimo-building-block-management-document',\n templateUrl: './building-block-management-document.component.html',\n styleUrls: ['./building-block-management-document.component.scss'],\n imports: [\n CommonModule,\n ButtonModule,\n IconModule,\n LoadingModule,\n SchemaEditorComponent,\n FitPageDirective,\n TranslatePipe,\n ],\n})\nexport class BuildingBlockManagementDocumentComponent implements OnInit, OnDestroy {\n private readonly _subscriptions = new Subscription();\n\n private readonly _loadingDocumentDefinition$ = new BehaviorSubject<boolean>(true);\n\n public readonly loading$ = combineLatest([\n this.buildingBlockManagementDetailService.loadingDefinition$,\n this._loadingDocumentDefinition$,\n ]).pipe(\n map(\n ([loadingDefinition, loadingDocumentDefinition]) =>\n loadingDefinition || loadingDocumentDefinition\n )\n );\n\n private readonly _documentDefinition$ = new BehaviorSubject<string>('');\n public readonly documentDefinition$ = this._documentDefinition$.pipe(\n filter(model => model !== null)\n );\n\n public readonly isFinal$ = this.buildingBlockManagementDetailService.isFinal$;\n\n private _modifiedDefinition: string | null = null;\n\n constructor(\n private readonly buildingBlockManagementDetailService: BuildingBlockManagementDetailService,\n private readonly buildingBlockManagementApiService: BuildingBlockManagementApiService,\n private readonly iconService: IconService\n ) {\n this.iconService.registerAll([Download16]);\n }\n\n public ngOnInit(): void {\n this.openBuildingBlockDefinitionSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public downloadDefinition(): void {\n this.documentDefinition$.pipe(take(1)).subscribe(definition => {\n const dataString = 'data:text/json;charset=utf-8,' + encodeURIComponent(definition);\n const downloadAnchorElement = document.getElementById('downloadAnchorElement');\n\n if (!downloadAnchorElement) return;\n\n downloadAnchorElement.setAttribute('href', dataString);\n downloadAnchorElement.setAttribute(\n 'download',\n `${this.buildingBlockManagementDetailService.buildingBlockDefinitionKey}-v${this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag}.json`\n );\n downloadAnchorElement.click();\n });\n }\n\n public onSaveEvent(): void {\n if (!this._modifiedDefinition) return;\n\n this._loadingDocumentDefinition$.next(true);\n\n this.buildingBlockManagementApiService\n .updateBuildingBlockDocumentDefinition(\n this.buildingBlockManagementDetailService.buildingBlockDefinitionKey,\n this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag,\n JSON.parse(this._modifiedDefinition)\n )\n .subscribe(res => {\n this.setDocumentDefinitionModel(res);\n this._modifiedDefinition = null;\n this._loadingDocumentDefinition$.next(false);\n });\n }\n\n public onChangeEvent(event: string): void {\n this._modifiedDefinition = event;\n }\n\n private openBuildingBlockDefinitionSubscription(): void {\n this._subscriptions.add(\n this.buildingBlockManagementDetailService.buildingBlockDefinition$\n .pipe(\n tap(() => this._loadingDocumentDefinition$.next(true)),\n switchMap(definition =>\n this.buildingBlockManagementApiService.getBuildingBlockDocumentDefinition(\n definition.key,\n definition.versionTag\n )\n ),\n tap(() => this._loadingDocumentDefinition$.next(false))\n )\n .subscribe(buildingBlockDocumentDefinition =>\n this.setDocumentDefinitionModel(buildingBlockDocumentDefinition)\n )\n );\n }\n\n private setDocumentDefinitionModel(definition: object): void {\n this._documentDefinition$.next(JSON.stringify(definition, null, 2));\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentDefinition: documentDefinition$ | async,\n isFinal: isFinal$ | async,\n } as obs\"\n>\n @if (!obs.loading) {\n <valtimo-schema-editor\n [fitPage]=\"true\"\n [spaceAdjustment]=\"64\"\n [disableOverflow]=\"true\"\n [schemaJson]=\"obs.documentDefinition\"\n [disabled]=\"obs.isFinal\"\n (changeEvent)=\"onChangeEvent($event)\"\n (saveEvent)=\"onSaveEvent()\"\n >\n <button\n cdsButton=\"ghost\"\n [disabled]=\"obs.loading || !obs.documentDefinition\"\n (click)=\"downloadDefinition()\"\n >\n {{ 'interface.download' | translate }}\n\n <svg cdsIcon=\"download\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </valtimo-schema-editor>\n } @else {\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n }\n</ng-container>\n\n<a id=\"downloadAnchorElement\" style=\"display: none\"></a>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {FormBuilder, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {CARBON_CONSTANTS} from '@valtimo/components';\nimport {GlobalNotificationService} from '@valtimo/shared';\nimport {\n ButtonModule,\n FileUploaderModule,\n LayerModule,\n ModalModule,\n} from 'carbon-components-angular';\nimport {from, map, startWith, switchMap} from 'rxjs';\nimport {BuildingBlockManagementDetailService} from '../../services';\nimport {ProcessLinkService} from '@valtimo/process-link';\n\n@Component({\n selector: 'valtimo-building-block-management-process-upload',\n templateUrl: './building-block-management-process-upload.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n FileUploaderModule,\n ModalModule,\n LayerModule,\n ReactiveFormsModule,\n ButtonModule,\n ],\n})\nexport class BuildingBlockManagementProcessUploadComponent {\n public readonly modalOpen$ =\n this.buildingBlockManagementDetailService.showProcessDefinitionUploadModal$;\n\n public readonly ACCEPTED_FILES: string[] = ['bpmn'];\n\n public readonly form = this.formBuilder.group({\n file: this.formBuilder.control(new Set<any>(), [Validators.required]),\n });\n\n public readonly fileSelected$ = this.form.get('file')?.valueChanges.pipe(\n startWith(null),\n map(value => !!(value instanceof Set && value.size > 0))\n );\n\n constructor(\n private readonly formBuilder: FormBuilder,\n private readonly notificationService: GlobalNotificationService,\n private readonly processLinkService: ProcessLinkService,\n private readonly buildingBlockManagementDetailService: BuildingBlockManagementDetailService,\n private readonly translateService: TranslateService\n ) {}\n\n public closeModal(): void {\n this.buildingBlockManagementDetailService.hideProcessDefinitionUploadModal();\n\n setTimeout(() => {\n this.form.reset();\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n public uploadProcessBpmn(): void {\n const bpmnFile = this.form.value?.file?.values()?.next()?.value?.file;\n\n if (!bpmnFile) return;\n\n from(bpmnFile.text())\n .pipe(\n switchMap(bpmnXml =>\n this.processLinkService.deployProcessWithProcessLinksForBuildingBlock(\n [],\n null,\n `${bpmnXml}`,\n this.buildingBlockManagementDetailService.buildingBlockDefinitionKey,\n this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag\n )\n )\n )\n .subscribe({\n next: () => {\n this.notificationService.showNotification({\n type: 'success',\n title: this.translateService.instant('processManagement.upload.success'),\n });\n this.closeModal();\n this.buildingBlockManagementDetailService.reloadProcessDefinitions();\n },\n error: () => {\n this.notificationService.showNotification({\n type: 'error',\n title: this.translateService.instant('processManagement.upload.failure'),\n });\n },\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal valtimoCdsModal [open]=\"modalOpen$ | async\" size=\"sm\" (close)=\"closeModal()\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'processManagement.upload.modalTitle' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"form\">\n <cds-file-uploader\n [accept]=\"ACCEPTED_FILES\"\n [buttonText]=\"'processManagement.upload.buttonText' | translate\"\n [description]=\"'processManagement.upload.description' | translate\"\n [multiple]=\"false\"\n [title]=\"'processManagement.upload.title' | translate\"\n buttonType=\"primary\"\n formControlName=\"file\"\n >\n </cds-file-uploader>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"(fileSelected$ | async) === false\"\n (click)=\"uploadProcessBpmn()\"\n >\n {{ 'interface.upload' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnDestroy, OnInit, signal} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {\n BuildingBlockManagementApiService,\n BuildingBlockManagementDetailService,\n} from '../../services';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n map,\n Observable,\n Subscription,\n switchMap,\n tap,\n} from 'rxjs';\nimport {isEqual} from 'lodash';\nimport {\n ActionItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n ViewType,\n} from '@valtimo/components';\nimport {BuildingBlockProcessDefinitionDto} from '@valtimo/shared';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {BuildingBlockProcessDefinitionItem} from '../../models';\nimport {ButtonModule, IconModule, IconService} from 'carbon-components-angular';\nimport {Upload16} from '@carbon/icons';\nimport {BUILDING_BLOCK_MANAGEMENT_TABS} from '../../constants';\nimport {Router} from '@angular/router';\nimport {BuildingBlockManagementProcessUploadComponent} from '../building-block-management-process-upload/building-block-management-process-upload.component';\n\n@Component({\n standalone: true,\n selector: 'valtimo-building-block-management-processes',\n templateUrl: './building-block-management-processes.component.html',\n styleUrls: ['./building-block-management-processes.component.scss'],\n imports: [\n CommonModule,\n CarbonListModule,\n TranslateModule,\n ButtonModule,\n IconModule,\n BuildingBlockManagementProcessUploadComponent,\n ConfirmationModalModule,\n ],\n})\nexport class BuildingBlockManagementProcessesComponent implements OnInit, OnDestroy {\n public readonly $loading = signal<boolean>(true);\n\n private readonly _buildingBlockProcessDefinitions$ = new BehaviorSubject<\n BuildingBlockProcessDefinitionDto[]\n >([]);\n\n private _buildingBlockProcessDefinitionItems: BuildingBlockProcessDefinitionItem[] = [];\n public readonly buildingBlockProcessDefinitionItems$: Observable<\n BuildingBlockProcessDefinitionItem[]\n > = combineLatest([\n this._buildingBlockProcessDefinitions$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([processDefinitions]) =>\n processDefinitions.map(definition => ({\n ...definition,\n mainText:\n definition.main &&\n this.translateService.instant('buildingBlockManagement.processDefinition.mainText'),\n }))\n ),\n tap(\n buildingBlockProcessDefinitionItems =>\n (this._buildingBlockProcessDefinitionItems = buildingBlockProcessDefinitionItems)\n )\n );\n\n public readonly FIELDS: ColumnConfig[] = [\n {key: 'name', label: 'buildingBlockManagement.processDefinition.name'},\n {key: 'key', label: 'buildingBlockManagement.processDefinition.key'},\n {\n key: 'mainText',\n label: '',\n viewType: ViewType.TAGS,\n },\n ];\n\n public onDeleteClick = (process: BuildingBlockProcessDefinitionItem): void => {\n this._processToDelete = process;\n this.showDeleteModal$.next(true);\n };\n\n public readonly ACTION_ITEMS: ActionItem[] = [\n {\n label: 'buildingBlockManagement.processDefinition.markAsMain',\n callback: this.onMarkAsMain.bind(this),\n type: 'normal',\n disabledCallback: this.markAsMainDisabled.bind(this),\n },\n {\n label: 'interface.delete',\n callback: this.onDeleteClick,\n type: 'danger',\n disabledCallback: this.deleteDisabled.bind(this),\n },\n ];\n\n public readonly isFinal$ = this.buildingBlockManagementDetailService.isFinal$;\n\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n\n private readonly _subscriptions = new Subscription();\n\n private _processToDelete!: BuildingBlockProcessDefinitionItem;\n\n constructor(\n private readonly buildingBlockManagementDetailService: BuildingBlockManagementDetailService,\n private readonly buildingBlockManagementApiService: BuildingBlockManagementApiService,\n private readonly translateService: TranslateService,\n private readonly iconService: IconService,\n private readonly router: Router\n ) {\n this.iconService.registerAll([Upload16]);\n }\n\n public ngOnInit(): void {\n this._subscriptions.add(\n combineLatest([\n this.buildingBlockManagementDetailService.buildingBlockDefinitionKey$,\n this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag$,\n ])\n .pipe(\n distinctUntilChanged((a, b) => isEqual(a, b)),\n tap(() => this.$loading.set(true)),\n switchMap(([key, versionTag]) =>\n this.buildingBlockManagementDetailService.reloadProcessDefinitions$.pipe(\n tap(() => this.$loading.set(true)),\n switchMap(() =>\n this.buildingBlockManagementApiService.getBuildingBlockProcessDefinitions(\n key,\n versionTag\n )\n )\n )\n ),\n tap(processDefinitions => {\n this._buildingBlockProcessDefinitions$.next(processDefinitions);\n this.$loading.set(false);\n })\n )\n .subscribe()\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onRowClick(processDefinition: BuildingBlockProcessDefinitionItem): void {\n this.router.navigate([\n '/building-block-management',\n 'building-block',\n this.buildingBlockManagementDetailService.buildingBlockDefinitionKey,\n 'version',\n this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag,\n BUILDING_BLOCK_MANAGEMENT_TABS.PROCESSES,\n processDefinition.id,\n ]);\n }\n\n public showUploadModal(): void {\n this.buildingBlockManagementDetailService.showProcessDefinitionUploadModal();\n }\n\n public onCreateClick(): void {\n this.router.navigate([\n '/building-block-management',\n 'building-block',\n this.buildingBlockManagementDetailService.buildingBlockDefinitionKey,\n 'version',\n this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag,\n BUILDING_BLOCK_MANAGEMENT_TABS.PROCESSES,\n 'create',\n ]);\n }\n\n public onDeleteConfirm(): void {\n if (!this._processToDelete) return;\n\n this.$loading.set(true);\n\n this.buildingBlockManagementApiService\n .deleteBuildingBlockProcessDefinition(\n this.buildingBlockManagementDetailService.buildingBlockDefinitionKey,\n this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag,\n this._processToDelete.id\n )\n .subscribe({\n next: () => {\n this.buildingBlockManagementDetailService.reloadProcessDefinitions();\n },\n error: () => {\n this.$loading.set(false);\n },\n });\n }\n\n public onMarkAsMain(process: BuildingBlockProcessDefinitionItem): void {\n this.$loading.set(true);\n\n this.buildingBlockManagementApiService\n .setMainBuildingBlockProcessDefinition(\n this.buildingBlockManagementDetailService.buildingBlockDefinitionKey,\n this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag,\n process.id\n )\n .subscribe({\n next: () => {\n this.buildingBlockManagementDetailService.reloadProcessDefinitions();\n },\n error: () => {\n this.$loading.set(false);\n },\n });\n }\n\n private markAsMainDisabled(process: BuildingBlockProcessDefinitionItem): boolean {\n return process.main || this._buildingBlockProcessDefinitionItems.length === 1;\n }\n\n private deleteDisabled(process: BuildingBlockProcessDefinitionItem): boolean {\n return process.main || this._buildingBlockProcessDefinitionItems.length === 1;\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n [fields]=\"FIELDS\"\n [actionItems]=\"ACTION_ITEMS\"\n [items]=\"buildingBlockProcessDefinitionItems$ | async\"\n [loading]=\"$loading()\"\n (rowClicked)=\"onRowClick($event)\"\n>\n <div carbonToolbarContent>\n <div class=\"valtimo-building-block-management-list__actions\">\n <button\n cdsButton=\"ghost\"\n (click)=\"showUploadModal()\"\n [disabled]=\"(isFinal$ | async) || $loading()\"\n >\n {{ 'Upload' | translate }}\n\n <svg cdsIcon=\"upload\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button\n cdsButton=\"primary\"\n (click)=\"onCreateClick()\"\n [disabled]=\"(isFinal$ | async) || $loading()\"\n >\n {{ 'interface.create' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n </div>\n</valtimo-carbon-list>\n\n<valtimo-building-block-management-process-upload></valtimo-building-block-management-process-upload>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"processManagement.deleteModal.content\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"processManagement.deleteModal.title\"\n (confirmEvent)=\"onDeleteConfirm()\"\n></valtimo-confirmation-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {\n BuildingBlockManagementApiService,\n BuildingBlockManagementDetailService,\n} from '../../services';\nimport {combineLatest, map, Observable, switchMap} from 'rxjs';\nimport {DropdownModule, ListItem, TagModule} from 'carbon-components-angular';\n\n@Component({\n standalone: true,\n selector: 'valtimo-building-block-management-version-selector',\n templateUrl: './building-block-management-version-selector.component.html',\n styleUrls: ['./building-block-management-version-selector.component.scss'],\n imports: [CommonModule, DropdownModule, TagModule],\n})\nexport class BuildingBlockManagementVersionSelectorComponent {\n private readonly _versions$ = combineLatest([\n this.buildingBlockManagementDetailService.buildingBlockDefinitionKey$,\n this.buildingBlockManagementDetailService.reloadVersions$,\n ]).pipe(\n switchMap(([key]) =>\n this.buildingBlockManagementApiService.getVersionsForBuildingBlock(key, 0, 10, true)\n )\n );\n\n public readonly versionListItems$: Observable<ListItem[]> = combineLatest([\n this._versions$,\n this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag$,\n ]).pipe(\n map(([versions, versionTag]) =>\n versions.content.map(version => ({\n id: version.versionTag,\n content: version.versionTag,\n selected: versionTag === version.versionTag,\n final: version.final,\n }))\n )\n );\n\n public onVersionSelected(event: {item?: {id?: string}}): void {\n const versionTag = event?.item?.id;\n if (!versionTag) return;\n this.buildingBlockManagementDetailService.navigateToVersionTag(versionTag);\n }\n\n constructor(\n private readonly buildingBlockManagementDetailService: BuildingBlockManagementDetailService,\n private readonly buildingBlockManagementApiService: BuildingBlockManagementApiService\n ) {}\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{versionListItems: (versionListItems$ | async) || []} as obs\">\n <cds-dropdown\n class=\"version-selector\"\n [disabled]=\"obs.versionListItems.length === 1\"\n [displayValue]=\"versionTemplate\"\n (selected)=\"onVersionSelected($event)\"\n >\n <cds-dropdown-list\n [items]=\"obs.versionListItems\"\n [listTpl]=\"versionTemplate\"\n ></cds-dropdown-list>\n </cds-dropdown>\n</ng-container>\n\n<ng-template #versionTemplate let-item=\"item\">\n <div class=\"version-selector-dropdown-template\">\n <cds-tag\n class=\"cds-tag--no-margin\"\n [type]=\"!item?.final ? 'red' : 'green'\"\n [title]=\"item?.content\"\n >\n {{ !item?.final ? 'DRAFT: ' + item?.content : item?.content }}\n </cds-tag>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {CommonModule, DOCUMENT} from '@angular/common';\nimport {HttpResponse} from '@angular/common/http';\nimport {Component, Inject, TemplateRef, ViewChild} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {TranslatePipe, TranslateService} from '@ngx-translate/core';\nimport {ValtimoCdsModalDirective, ValtimoCdsOverflowButtonDirective} from '@valtimo/components';\nimport {GlobalNotificationService} from '@valtimo/shared';\nimport {\n ButtonModule,\n DialogModule,\n IconModule,\n InputModule,\n LayerModule,\n LoadingModule,\n ModalModule,\n Notification,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, finalize, map, switchMap, take} from 'rxjs';\nimport {\n BuildingBlockManagementApiService,\n BuildingBlockManagementDetailService,\n} from '../../services';\nimport {BuildingBlockManagementVersionSelectorComponent} from '../building-block-management-version-selector/building-block-management-version-selector.component';\n\n@Component({\n standalone: true,\n selector: 'valtimo-building-block-management-detail-actions',\n templateUrl: './building-block-management-detail-actions.component.html',\n styleUrls: ['./building-block-management-detail-actions.component.scss'],\n imports: [\n CommonModule,\n ButtonModule,\n ModalModule,\n InputModule,\n LayerModule,\n ReactiveFormsModule,\n IconModule,\n TranslatePipe,\n ValtimoCdsModalDirective,\n DialogModule,\n BuildingBlockManagementVersionSelectorComponent,\n ValtimoCdsOverflowButtonDirective,\n LoadingModule,\n ],\n})\nexport class BuildingBlockManagementDetailActionsComponent {\n @ViewChild('exportingMessage')\n private readonly _exportMessageTemplateRef: TemplateRef<HTMLDivElement>;\n\n public readonly actionInProgress$ = new BehaviorSubject<boolean>(false);\n public readonly showDraftModal$ = new BehaviorSubject<boolean>(false);\n public readonly definition$ = this.buildingBlockManagementDetailService.buildingBlockDefinition$;\n public readonly isFinal$ = this.buildingBlockManagementDetailService.isFinal$;\n\n public readonly buildingBlockName$ =\n this.buildingBlockManagementDetailService.buildingBlockDefinition$.pipe(\n map(definition => definition.name ?? definition.key)\n );\n\n private readonly _exporting$ = new BehaviorSubject<boolean>(false);\n public get exporting$() {\n return this._exporting$.asObservable();\n }\n\n public readonly draftForm: FormGroup = this.fb.group({\n versionTag: this.fb.control('', Validators.required),\n });\n\n public get versionTag(): FormControl<string> {\n return this.draftForm.get('versionTag') as FormControl<string>;\n }\n\n private _currentNotification!: Notification;\n\n constructor(\n private readonly buildingBlockManagementApiService: BuildingBlockManagementApiService,\n private readonly buildingBlockManagementDetailService: BuildingBlockManagementDetailService,\n private readonly fb: FormBuilder,\n private readonly notificationService: GlobalNotificationService,\n private readonly translateService: TranslateService,\n @Inject(DOCUMENT) private document: Document\n ) {}\n\n public finalizeDraft(): void {\n if (this.actionInProgress$.value) return;\n\n this.actionInProgress$.next(true);\n this.definition$\n .pipe(\n take(1),\n switchMap(definition =>\n this.buildingBlockManagementApiService.finalizeBuildingBlockDefinition(\n definition.key,\n definition.versionTag\n )\n ),\n finalize(() => this.actionInProgress$.next(false))\n )\n .subscribe({\n next: () => {\n this.notifySuccess('buildingBlockManagement.actions.finalize.success');\n this.buildingBlockManagementDetailService.reload();\n this.buildingBlockManagementDetailService.reloadVersions();\n },\n error: () => {\n this.notifyError('buildingBlockManagement.actions.finalize.error');\n },\n });\n }\n\n public openDraftModal(): void {\n this.showDraftModal$.next(true);\n }\n\n public closeDraftModal(): void {\n this.showDraftModal$.next(false);\n this.draftForm.reset();\n }\n\n public createDraft(): void {\n if (this.draftForm.invalid || this.actionInProgress$.value) return;\n\n this.actionInProgress$.next(true);\n const newVersionTag = this.versionTag.value;\n\n this.definition$\n .pipe(\n take(1),\n switchMap(definition =>\n this.buildingBlockManagementApiService.createDraftBuildingBlockDefinition(\n definition.key,\n definition.versionTag,\n newVersionTag\n )\n ),\n finalize(() => this.actionInProgress$.next(false))\n )\n .subscribe({\n next: draft => {\n this.notifySuccess('buildingBlockManagement.actions.draft.success');\n this.closeDraftModal();\n this.buildingBlockManagementDetailService.reloadVersions();\n this.buildingBlockManagementDetailService.navigateToVersionTag(draft.versionTag);\n },\n error: () => {\n this.notifyError('buildingBlockManagement.actions.draft.error');\n },\n });\n }\n\n public export(): void {\n if (this.actionInProgress$.value || this._exporting$.value) return;\n\n this._currentNotification = this.notificationService.showNotification({\n type: 'info',\n title: '',\n showClose: false,\n template: this._exportMessageTemplateRef,\n });\n\n this._exporting$.next(true);\n\n this.buildingBlockManagementApiService\n .exportBuildingBlock(\n this.buildingBlockManagementDetailService.buildingBlockDefinitionKey,\n this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag\n )\n .pipe(finalize(() => this._exporting$.next(false)))\n .subscribe({\n next: response => {\n this.closeCurrentNotification();\n\n this._currentNotification = this.notificationService.showNotification({\n type: 'success',\n title: this.translateService.instant(\n 'buildingBlockManagement.overflowMenu.exportSuccessTitle'\n ),\n duration: 5000,\n });\n\n this.downloadZip(response);\n },\n error: () => {\n this.closeCurrentNotification();\n this.notifyError('buildingBlockManagement.overflowMenu.exportErrorTitle');\n },\n });\n }\n\n private downloadZip(response: HttpResponse<Blob>): void {\n const link = this.document.createElement('a');\n const contentDisposition = response.headers.get('content-disposition');\n const splitContentDisposition = contentDisposition?.split('filename=') ?? [];\n const fileName = splitContentDisposition.length > 1 && splitContentDisposition[1];\n\n link.href = this.document.defaultView?.URL.createObjectURL(response.body) ?? '';\n link.download =\n fileName ||\n `${this.buildingBlockManagementDetailService.buildingBlockDefinitionKey}_${this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag}.valtimo.zip`;\n link.target = '_blank';\n link.click();\n link.remove();\n }\n\n private closeCurrentNotification(): void {\n if (this._currentNotification) {\n this.notificationService.close(this._currentNotification);\n }\n }\n\n private notifySuccess(translationKey: string): void {\n this.notificationService.showNotification({\n type: 'success',\n title: this.translateService.instant(translationKey),\n duration: 5000,\n });\n }\n\n private notifyError(translationKey: string): void {\n this.notificationService.showNotification({\n type: 'error',\n title: this.translateService.instant(translationKey),\n duration: 5000,\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" BASIS,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"building-block-actions\"\n *ngIf=\"{\n isFinal: isFinal$ | async,\n } as obs\"\n>\n <div class=\"building-block-metadata\">\n <valtimo-building-block-management-version-selector></valtimo-building-block-management-version-selector>\n </div>\n\n <div class=\"building-block-buttons\">\n <ng-template #trigger>\n <button cdsButton=\"tertiary\">\n {{ 'buildingBlockManagement.actions.more' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"overflow-menu--vertical\" size=\"16\"></svg>\n </button>\n </ng-template>\n\n <cds-overflow-menu\n [customTrigger]=\"trigger\"\n class=\"overflow-button\"\n valtimoCdsOverflowButton\n [width]=\"250\"\n [offset]=\"{y: 48, x: 37}\"\n >\n <cds-overflow-menu-option\n [id]=\"'exportBuildingBlock'\"\n (selected)=\"export()\"\n [disabled]=\"(actionInProgress$ | async) || (exporting$ | async)\"\n >\n {{\n 'buildingBlockManagement.overflowMenu.export'\n | translate: {value: buildingBlockName$ | async}\n }}\n </cds-overflow-menu-option>\n\n <cds-overflow-menu-option\n *ngIf=\"!obs.isFinal\"\n [disabled]=\"actionInProgress$ | async\"\n (selected)=\"finalizeDraft()\"\n >\n {{ 'buildingBlockManagement.actions.makeFinal' | translate }}\n </cds-overflow-menu-option>\n\n <cds-overflow-menu-option\n *ngIf=\"obs.isFinal\"\n [disabled]=\"actionInProgress$ | async\"\n (selected)=\"openDraftModal()\"\n >\n {{ 'buildingBlockManagement.actions.createDraft' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n </div>\n</div>\n\n<ng-template #exportingMessage>\n <div class=\"exporting-message\">\n <span class=\"cds--inline-notification__title\">{{\n 'buildingBlockManagement.overflowMenu.preparingDownload' | translate\n }}</span>\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n\n<cds-modal\n *ngIf=\"{open: showDraftModal$ | async} as obs\"\n [open]=\"obs.open\"\n showFooter=\"true\"\n valtimoCdsModal\n (close)=\"closeDraftModal()\"\n>\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeDraftModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'buildingBlockManagement.actions.draft.title' | translate }}\n </h3>\n </cds-modal-header>\n\n <form [formGroup]=\"draftForm\" cdsModalContent class=\"bb-management-actions__modal\" [cdsLayer]=\"1\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label\n [disabled]=\"draftForm.disabled\"\n [invalid]=\"versionTag.touched && versionTag.invalid\"\n >\n <span class=\"label-with-tooltip select-label\">\n {{ 'buildingBlockManagement.actions.draft.version' | translate }}\n </span>\n\n <input\n formControlName=\"versionTag\"\n cdsText\n placeholder=\"{{ 'buildingBlockManagement.actions.draft.placeholder' | translate }}\"\n />\n </cds-label>\n </div>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeDraftModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"draftForm.invalid || (actionInProgress$ | async)\"\n (click)=\"createDraft()\"\n >\n {{ 'buildingBlockManagement.actions.draft.confirm' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CarbonListModule, PageTitleService, RenderInPageHeaderDirective} from '@valtimo/components';\nimport {ButtonModule, DialogModule, IconModule, TabsModule} from 'carbon-components-angular';\nimport {ActivatedRoute} from '@angular/router';\nimport {BuildingBlockManagementDetailService} from '../../services';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {BUILDING_BLOCK_MANAGEMENT_TABS} from '../../constants';\nimport {BuildingBlockManagementGeneralComponent} from '../building-block-management-general/building-block-management-general.component';\nimport {BuildingBlockManagementDocumentComponent} from '../building-block-management-document/building-block-management-document.component';\nimport {BuildingBlockManagementTabKey} from '../../models';\nimport {take} from 'rxjs';\nimport {BuildingBlockManagementProcessesComponent} from '../building-block-management-processes/building-block-management-processes.component';\nimport {BuildingBlockManagementDetailActionsComponent} from '../building-block-management-detail-actions/building-block-management-detail-actions.component';\n\n@Component({\n standalone: true,\n selector: 'valtimo-building-block-management-detail',\n templateUrl: './building-block-management-detail.component.html',\n styleUrls: ['./building-block-management-detail.component.scss'],\n imports: [\n CommonModule,\n CarbonListModule,\n ButtonModule,\n IconModule,\n TabsModule,\n TranslatePipe,\n BuildingBlockManagementGeneralComponent,\n BuildingBlockManagementDocumentComponent,\n BuildingBlockManagementProcessesComponent,\n RenderInPageHeaderDirective,\n BuildingBlockManagementDetailActionsComponent,\n DialogModule,\n ],\n providers: [BuildingBlockManagementDetailService],\n})\nexport class BuildingBlockManagementDetailComponent implements OnInit, OnDestroy {\n public readonly BUILDING_BLOCK_MANAGEMENT_TABS = BUILDING_BLOCK_MANAGEMENT_TABS;\n public readonly activeTabKey$ = this.buildingBlockManagementDetailService.activeTabKey$;\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly buildingBlockManagementDetailService: BuildingBlockManagementDetailService,\n private readonly pageTitleService: PageTitleService\n ) {\n this.buildingBlockManagementDetailService.setRoute(this.route);\n }\n\n public ngOnInit() {\n this.pageTitleService.disableReset();\n }\n\n public ngOnDestroy() {\n this.pageTitleService.enableReset();\n }\n\n public switchTab(tabKey: BuildingBlockManagementTabKey): void {\n this.activeTabKey$.pipe(take(1)).subscribe(activeTabKey => {\n if (activeTabKey === tabKey) return;\n this.buildingBlockManagementDetailService.navigateToTab(tabKey);\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-tabs *ngIf=\"activeTabKey$ | async as activeTabKey\" type=\"line\">\n <cds-tab\n *ngIf=\"{active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.GENERAL} as obs\"\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.general' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.GENERAL)\"\n >\n <valtimo-building-block-management-general\n *ngIf=\"obs.active\"\n ></valtimo-building-block-management-general>\n </cds-tab>\n\n <cds-tab\n *ngIf=\"{active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.DOCUMENT} as obs\"\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.document' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.DOCUMENT)\"\n >\n <valtimo-building-block-management-document\n *ngIf=\"obs.active\"\n ></valtimo-building-block-management-document>\n </cds-tab>\n\n <cds-tab\n *ngIf=\"{active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.PROCESSES} as obs\"\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.processes' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.PROCESSES)\"\n >\n <valtimo-building-block-management-processes\n *ngIf=\"obs.active\"\n ></valtimo-building-block-management-processes>\n </cds-tab>\n</cds-tabs>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div class=\"building-block-management-detail__header\">\n <valtimo-building-block-management-detail-actions></valtimo-building-block-management-detail-actions>\n </div>\n </ng-template>\n</ng-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_ADMIN} from '@valtimo/shared';\nimport {BuildingBlockManagementListComponent} from './components/building-block-management-list/building-block-management-list.component';\nimport {BuildingBlockManagementDetailComponent} from './components/building-block-management-detail/building-block-management-detail.component';\nimport {BUILDING_BLOCK_MANAGEMENT_TABS} from './constants';\nimport {\n ProcessManagementBuilderComponent,\n ProcessManagementRouteData,\n} from '@valtimo/process-management';\n\nconst routes: Routes = [\n {\n path: 'building-block-management',\n component: BuildingBlockManagementListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'buildingBlockManagement.title', roles: [ROLE_ADMIN]},\n },\n {\n path: 'building-block-management/building-block/:buildingBlockDefinitionKey/version/:buildingBlockDefinitionVersionTag/:tabKey',\n component: BuildingBlockManagementDetailComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'buildingBlockManagement.detail.title',\n roles: [ROLE_ADMIN],\n customPageTitle: true,\n },\n },\n {\n path: `building-block-management/building-block/:buildingBlockDefinitionKey/version/:buildingBlockDefinitionVersionTag/${BUILDING_BLOCK_MANAGEMENT_TABS.PROCESSES}/create`,\n component: ProcessManagementBuilderComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Create new Process',\n roles: [ROLE_ADMIN],\n context: 'buildingBlock',\n } as ProcessManagementRouteData,\n },\n {\n path: `building-block-management/building-block/:buildingBlockDefinitionKey/version/:buildingBlockDefinitionVersionTag/${BUILDING_BLOCK_MANAGEMENT_TABS.PROCESSES}/:processDefinitionKey`,\n component: ProcessManagementBuilderComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Process details',\n roles: [ROLE_ADMIN],\n customPageTitle: true,\n context: 'buildingBlock',\n },\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class BuildingBlockManagementRouting {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {BuildingBlockManagementListComponent} from './components/building-block-management-list/building-block-management-list.component';\nimport {BuildingBlockManagementRouting} from './building-block-management-routing';\n\n@NgModule({\n declarations: [],\n imports: [BuildingBlockManagementRouting, BuildingBlockManagementListComponent],\n providers: [],\n})\nexport class BuildingBlockManagementModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of building-block-management\n */\n\nexport * from './lib/building-block-management.module'\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.BuildingBlockManagementApiService","i2","i1.BuildingBlockManagementService","i5","i6","i3","i4","i1.BuildingBlockManagementDetailService","take","i1","i4.BuildingBlockManagementDetailService","i7","i2.BuildingBlockManagementDetailService"],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "@angular/common";
|
|
3
|
+
import * as i2 from "@angular/router";
|
|
4
|
+
export declare class BuildingBlockManagementRouting {
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BuildingBlockManagementRouting, never>;
|
|
6
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<BuildingBlockManagementRouting, never, [typeof i1.CommonModule, typeof i2.RouterModule], [typeof i2.RouterModule]>;
|
|
7
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<BuildingBlockManagementRouting>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=building-block-management-routing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"building-block-management-routing.d.ts","sourceRoot":"","sources":["../../../../projects/valtimo/building-block-management/src/lib/building-block-management-routing.ts"],"names":[],"mappings":";;;AAqEA,qBAKa,8BAA8B;yCAA9B,8BAA8B;0CAA9B,8BAA8B;0CAA9B,8BAA8B;CAAG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./building-block-management-routing";
|
|
3
|
+
import * as i2 from "./components/building-block-management-list/building-block-management-list.component";
|
|
4
|
+
export declare class BuildingBlockManagementModule {
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BuildingBlockManagementModule, never>;
|
|
6
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<BuildingBlockManagementModule, never, [typeof i1.BuildingBlockManagementRouting, typeof i2.BuildingBlockManagementListComponent], never>;
|
|
7
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<BuildingBlockManagementModule>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=building-block-management.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"building-block-management.module.d.ts","sourceRoot":"","sources":["../../../../projects/valtimo/building-block-management/src/lib/building-block-management.module.ts"],"names":[],"mappings":";;;AAoBA,qBAKa,6BAA6B;yCAA7B,6BAA6B;0CAA7B,6BAA6B;0CAA7B,6BAA6B;CAAG"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { BuildingBlockManagementApiService, BuildingBlockManagementDetailService } from '../../services';
|
|
3
|
+
import { FormBuilder, FormControl } from '@angular/forms';
|
|
4
|
+
import { IconService } from 'carbon-components-angular';
|
|
5
|
+
import { BehaviorSubject } from 'rxjs';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class BuildingBlockManagementArtworkComponent implements OnInit, OnDestroy {
|
|
8
|
+
private readonly buildingBlockManagementDetailService;
|
|
9
|
+
private readonly buildingBlockManagementApiService;
|
|
10
|
+
private readonly formBuilder;
|
|
11
|
+
private readonly iconService;
|
|
12
|
+
readonly ACCEPTED_FILES: string[];
|
|
13
|
+
readonly formGroup: import("@angular/forms").FormGroup<{
|
|
14
|
+
file: FormControl<Set<any>>;
|
|
15
|
+
}>;
|
|
16
|
+
get file(): FormControl<Set<any>>;
|
|
17
|
+
readonly loadingArtwork$: BehaviorSubject<boolean>;
|
|
18
|
+
private readonly _refresh$;
|
|
19
|
+
readonly artwork$: import("rxjs").Observable<import("@valtimo/shared").BuildingBlockDefinitionArtworkDto>;
|
|
20
|
+
readonly showDeleteConfirmationModal$: BehaviorSubject<boolean>;
|
|
21
|
+
private readonly _subscriptions;
|
|
22
|
+
constructor(buildingBlockManagementDetailService: BuildingBlockManagementDetailService, buildingBlockManagementApiService: BuildingBlockManagementApiService, formBuilder: FormBuilder, iconService: IconService);
|
|
23
|
+
ngOnInit(): void;
|
|
24
|
+
ngOnDestroy(): void;
|
|
25
|
+
onSave(): Promise<void>;
|
|
26
|
+
onDeleteButtonClick(): void;
|
|
27
|
+
onDelete(): void;
|
|
28
|
+
private fileToBase64;
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BuildingBlockManagementArtworkComponent, never>;
|
|
30
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BuildingBlockManagementArtworkComponent, "valtimo-building-block-management-artwork", never, {}, {}, never, never, true, never>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=building-block-management-artwork.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"building-block-management-artwork.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/building-block-management/src/lib/components/building-block-management-artwork/building-block-management-artwork.component.ts"],"names":[],"mappings":"AAeA,OAAO,EAAY,SAAS,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAE3D,OAAO,EACL,iCAAiC,EACjC,oCAAoC,EACrC,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAC,WAAW,EAAE,WAAW,EAAkC,MAAM,gBAAgB,CAAC;AAMzF,OAAO,EAIL,WAAW,EAIZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAC,eAAe,EAA+B,MAAM,MAAM,CAAC;;AAGnE,qBAoBa,uCAAwC,YAAW,MAAM,EAAE,SAAS;IA8B7E,OAAO,CAAC,QAAQ,CAAC,oCAAoC;IACrD,OAAO,CAAC,QAAQ,CAAC,iCAAiC;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAhC9B,SAAgB,cAAc,EAAE,MAAM,EAAE,CAAW;IAEnD,SAAgB,SAAS;;OAEtB;IAEH,IAAW,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAEvC;IAED,SAAgB,eAAe,2BAAsC;IAErE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmC;IAE7D,SAAgB,QAAQ,yFAQtB;IAEF,SAAgB,4BAA4B,2BAAuC;IAEnF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;gBAGlC,oCAAoC,EAAE,oCAAoC,EAC1E,iCAAiC,EAAE,iCAAiC,EACpE,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW;IAKpC,QAAQ,IAAI,IAAI;IAYhB,WAAW,IAAI,IAAI;IAIb,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB7B,mBAAmB,IAAI,IAAI;IAI3B,QAAQ,IAAI,IAAI;YAWT,YAAY;yCA9Ff,uCAAuC;2CAAvC,uCAAuC;CA0GnD"}
|