@valtimo/admin-settings 13.42.0 → 13.43.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.
@@ -840,21 +840,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
840
840
  }], ctorParameters: () => [{ type: AdminSettingsManagementApiService }, { type: i2$2.DocumentService }, { type: i3$1.TranslateService }, { type: i1$1.Router }, { type: i4.IconService }] });
841
841
 
842
842
  /*
843
+ * Copyright 2015-2026 Ritense BV, the Netherlands.
844
+ *
845
+ * Licensed under EUPL, Version 1.2 (the "License");
846
+ * you may not use this file except in compliance with the License.
847
+ * You may obtain a copy of the License at
843
848
  *
844
- * * Copyright 2015-2026 Ritense BV, the Netherlands.
845
- * *
846
- * * Licensed under EUPL, Version 1.2 (the "License");
847
- * * you may not use this file except in compliance with the License.
848
- * * You may obtain a copy of the License at
849
- * *
850
- * * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
851
- * *
852
- * * Unless required by applicable law or agreed to in writing, software
853
- * * distributed under the License is distributed on an "AS IS" basis,
854
- * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
855
- * * See the License for the specific language governing permissions and
856
- * * limitations under the License.
849
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
857
850
  *
851
+ * Unless required by applicable law or agreed to in writing, software
852
+ * distributed under the License is distributed on an "AS IS" basis,
853
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
854
+ * See the License for the specific language governing permissions and
855
+ * limitations under the License.
858
856
  */
859
857
  const routes = [
860
858
  {
@@ -983,21 +981,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
983
981
  */
984
982
 
985
983
  /*
984
+ * Copyright 2015-2026 Ritense BV, the Netherlands.
985
+ *
986
+ * Licensed under EUPL, Version 1.2 (the "License");
987
+ * you may not use this file except in compliance with the License.
988
+ * You may obtain a copy of the License at
986
989
  *
987
- * * Copyright 2015-2026 Ritense BV, the Netherlands.
988
- * *
989
- * * Licensed under EUPL, Version 1.2 (the "License");
990
- * * you may not use this file except in compliance with the License.
991
- * * You may obtain a copy of the License at
992
- * *
993
- * * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
994
- * *
995
- * * Unless required by applicable law or agreed to in writing, software
996
- * * distributed under the License is distributed on an "AS IS" basis,
997
- * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
998
- * * See the License for the specific language governing permissions and
999
- * * limitations under the License.
990
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1000
991
  *
992
+ * Unless required by applicable law or agreed to in writing, software
993
+ * distributed under the License is distributed on an "AS IS" basis,
994
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
995
+ * See the License for the specific language governing permissions and
996
+ * limitations under the License.
1001
997
  */
1002
998
 
1003
999
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"valtimo-admin-settings.mjs","sources":["../../../../projects/valtimo/admin-settings/src/lib/constants/accent-colors.constants.ts","../../../../projects/valtimo/admin-settings/src/lib/constants/admin-settings.constants.ts","../../../../projects/valtimo/admin-settings/src/lib/constants/feature-toggle.constants.ts","../../../../projects/valtimo/admin-settings/src/lib/services/admin-settings-management-api.service.ts","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-logo/admin-settings-logo.component.ts","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-logo/admin-settings-logo.component.html","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-color/admin-settings-color.component.ts","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-color/admin-settings-color.component.html","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-appearance/admin-settings-appearance.component.ts","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-appearance/admin-settings-appearance.component.html","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-feature-toggles/admin-settings-feature-toggles.component.ts","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-feature-toggles/admin-settings-feature-toggles.component.html","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings/admin-settings.component.ts","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings/admin-settings.component.html","../../../../projects/valtimo/admin-settings/src/lib/components/start-reindex-modal/start-reindex-modal.component.ts","../../../../projects/valtimo/admin-settings/src/lib/components/start-reindex-modal/start-reindex-modal.component.html","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-opensearch/admin-settings-opensearch.component.ts","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-opensearch/admin-settings-opensearch.component.html","../../../../projects/valtimo/admin-settings/src/lib/admin-settings-routing.ts","../../../../projects/valtimo/admin-settings/src/lib/admin-settings.module.ts","../../../../projects/valtimo/admin-settings/src/lib/models/accent-colors.model.ts","../../../../projects/valtimo/admin-settings/src/lib/models/feature-toggle.model.ts","../../../../projects/valtimo/admin-settings/src/lib/models/reindex.model.ts","../../../../projects/valtimo/admin-settings/src/lib/models/search-engine.model.ts","../../../../projects/valtimo/admin-settings/src/lib/models/index.ts","../../../../projects/valtimo/admin-settings/src/public-api.ts","../../../../projects/valtimo/admin-settings/src/valtimo-admin-settings.ts"],"sourcesContent":["/*\n * Copyright 2015-2026 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 {AccentColorDefinition} from '../models';\n\nconst ACCENT_COLOR_DEFINITIONS: AccentColorDefinition[] = [\n {\n cssVar: '--vcds-color-100',\n labelTranslationKey: 'adminSettings.appearance.colors.color100',\n },\n {\n cssVar: '--vcds-color-90',\n labelTranslationKey: 'adminSettings.appearance.colors.color90',\n },\n {\n cssVar: '--vcds-color-80',\n labelTranslationKey: 'adminSettings.appearance.colors.color80',\n },\n {\n cssVar: '--vcds-color-70',\n labelTranslationKey: 'adminSettings.appearance.colors.color70',\n },\n {\n cssVar: '--vcds-color-60',\n labelTranslationKey: 'adminSettings.appearance.colors.color60',\n },\n {\n cssVar: '--vcds-color-50',\n labelTranslationKey: 'adminSettings.appearance.colors.color50',\n },\n {\n cssVar: '--vcds-color-40',\n labelTranslationKey: 'adminSettings.appearance.colors.color40',\n },\n {\n cssVar: '--vcds-color-30',\n labelTranslationKey: 'adminSettings.appearance.colors.color30',\n },\n {\n cssVar: '--vcds-color-20',\n labelTranslationKey: 'adminSettings.appearance.colors.color20',\n },\n {\n cssVar: '--vcds-color-10',\n labelTranslationKey: 'adminSettings.appearance.colors.color10',\n },\n];\n\nexport {ACCENT_COLOR_DEFINITIONS};\n","/*\n * Copyright 2015-2026 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 ADMIN_SETTINGS_TABS = {\n APPEARANCE: 'appearance',\n FEATURE_TOGGLES: 'feature-toggles',\n} as const;\n\nexport {ADMIN_SETTINGS_TABS};\n","/*\n * Copyright 2015-2026 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 {FeatureToggleDefinition} from '../models';\n\nconst FEATURE_TOGGLE_DEFINITIONS: FeatureToggleDefinition[] = [\n {key: 'allowUserThemeSwitching'},\n {key: 'enableCompactModeToggle'},\n {key: 'compactModeOnByDefault'},\n {key: 'enableUserNameInTopBarToggle'},\n {key: 'showUserNameInTopBar'},\n {key: 'showPlantATreeButton'},\n {key: 'largeLogoMargin'},\n {key: 'applicationTitleAsSuffix'},\n {key: 'disableCaseCount'},\n {key: 'enableObjectManagement'},\n {key: 'sortFilesByDate'},\n {key: 'returnToLastUrlAfterTokenExpiration'},\n {key: 'enableTabManagement'},\n {key: 'hideValtimoVersionsForNonAdmins'},\n {key: 'useStartEventNameAsStartFormTitle'},\n {key: 'enableFormViewModel'},\n {key: 'enableIntermediateSave'},\n {key: 'enableFormFlowBreadcrumbs'},\n {key: 'enablePbacDocumentenApiDocuments'},\n {key: 'enableSuppressDocumentError'},\n {key: 'enableIkoType'},\n {key: 'menuCollapsedByDefault'},\n {key: 'enableGenericCaseList'},\n {key: 'disableFormioTokenInLocalStorage'},\n];\n\nexport {FEATURE_TOGGLE_DEFINITIONS};\n","/*\n * Copyright 2015-2026 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 {HttpClient, HttpParams} from '@angular/common/http';\nimport {catchError, Observable, of} from 'rxjs';\nimport {\n AdminSettingsLogoDto,\n AdminSettingsLogosDto,\n BaseApiService,\n ConfigService,\n CreateAdminSettingsLogoDto,\n Page,\n} from '@valtimo/shared';\nimport {\n AccentColorsDto,\n FeatureToggleOverridesDto,\n ReindexStatusDto,\n SearchEngineDto,\n StartReindexRequestDto,\n StartReindexResponseDto,\n UpdateFeatureToggleDto,\n} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AdminSettingsManagementApiService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getLogos(): Observable<AdminSettingsLogosDto> {\n return this.httpClient.get<AdminSettingsLogosDto>(\n this.getApiUrl('/v1/admin-settings/logos')\n );\n }\n\n public uploadLogo(\n logoType: string,\n dto: CreateAdminSettingsLogoDto\n ): Observable<AdminSettingsLogoDto> {\n return this.httpClient.post<AdminSettingsLogoDto>(\n this.getApiUrl(`/management/v1/admin-settings/logo/${logoType}`),\n dto\n );\n }\n\n public deleteLogo(logoType: string): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(`/management/v1/admin-settings/logo/${logoType}`)\n );\n }\n\n public getFeatureToggleOverrides(): Observable<FeatureToggleOverridesDto> {\n return this.httpClient.get<FeatureToggleOverridesDto>(\n this.getApiUrl('/v1/admin-settings/feature-toggles')\n );\n }\n\n public updateFeatureToggle(dto: UpdateFeatureToggleDto): Observable<FeatureToggleOverridesDto> {\n return this.httpClient.put<FeatureToggleOverridesDto>(\n this.getApiUrl('/management/v1/admin-settings/feature-toggles'),\n dto\n );\n }\n\n public removeFeatureToggle(key: string): Observable<FeatureToggleOverridesDto> {\n return this.httpClient.delete<FeatureToggleOverridesDto>(\n this.getApiUrl(`/management/v1/admin-settings/feature-toggles/${key}`)\n );\n }\n\n public getAccentColors(): Observable<AccentColorsDto> {\n return this.httpClient.get<AccentColorsDto>(\n this.getApiUrl('/v1/admin-settings/accent-colors')\n );\n }\n\n public updateAccentColors(dto: AccentColorsDto): Observable<AccentColorsDto> {\n return this.httpClient.put<AccentColorsDto>(\n this.getApiUrl('/management/v1/admin-settings/accent-colors'),\n dto\n );\n }\n\n public getSearchEngine(): Observable<SearchEngineDto | null> {\n return this.httpClient\n .get<SearchEngineDto>(this.getApiUrl('/management/v1/search-engine'))\n .pipe(catchError(() => of(null)));\n }\n\n public updateSearchEngine(useOpenSearch: boolean): Observable<SearchEngineDto> {\n return this.httpClient.put<SearchEngineDto>(\n this.getApiUrl('/management/v1/search-engine'),\n {active: useOpenSearch ? 'OPENSEARCH' : 'POSTGRES'}\n );\n }\n\n public startReindex(request: StartReindexRequestDto = {}): Observable<StartReindexResponseDto> {\n return this.httpClient.post<StartReindexResponseDto>(\n this.getApiUrl('/management/v1/document-opensearch/reindex'),\n request\n );\n }\n\n public getReindexStatus(): Observable<ReindexStatusDto | null> {\n return this.httpClient\n .get<ReindexStatusDto>(this.getApiUrl('/management/v1/document-opensearch/reindex/status'))\n .pipe(catchError(() => of(null)));\n }\n\n public getReindexRuns(page: number, size: number): Observable<Page<ReindexStatusDto>> {\n const params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n return this.httpClient.get<Page<ReindexStatusDto>>(\n this.getApiUrl('/management/v1/document-opensearch/reindex/runs'),\n {params}\n );\n }\n\n public getReindexRun(runId: string): Observable<ReindexStatusDto> {\n return this.httpClient.get<ReindexStatusDto>(\n this.getApiUrl(`/management/v1/document-opensearch/reindex/${runId}`)\n );\n }\n}\n","/*\n * Copyright 2015-2026 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 {ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {FormBuilder, FormControl, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {\n AdminSettingsService,\n ConfirmationModalModule,\n RenderInBodyComponent,\n} from '@valtimo/components';\nimport {\n ButtonModule,\n FileUploaderModule,\n IconModule,\n IconService,\n LayerModule,\n LoadingModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, map, Subscription, switchMap, tap} from 'rxjs';\nimport {TrashCan16, Upload16} from '@carbon/icons';\nimport {AdminSettingsManagementApiService} from '../../services';\n\n@Component({\n standalone: true,\n selector: 'valtimo-admin-settings-logo',\n templateUrl: './admin-settings-logo.component.html',\n styleUrls: ['./admin-settings-logo.component.scss'],\n imports: [\n CommonModule,\n TranslatePipe,\n ReactiveFormsModule,\n LayerModule,\n ButtonModule,\n FileUploaderModule,\n LoadingModule,\n IconModule,\n ConfirmationModalModule,\n RenderInBodyComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdminSettingsLogoComponent implements OnInit, OnDestroy {\n @Input() public logoType!: string;\n @Input() public titleTranslationKey!: string;\n\n public get previewTheme(): string {\n return this.logoType === 'LOGO_DARK_MODE' ? 'g90' : 'g10';\n }\n\n public readonly ACCEPTED_FILES: string[] = ['png', 'svg'];\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 loading$ = new BehaviorSubject<boolean>(true);\n\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n\n public readonly logo$ = this._refresh$.pipe(\n switchMap(() => this._adminSettingsManagementApiService.getLogos()),\n map(logos => (this.logoType === 'LOGO' ? logos.logo : logos.logoDarkMode) ?? null),\n tap(() => this.loading$.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 _adminSettingsManagementApiService: AdminSettingsManagementApiService,\n private readonly _adminSettingsService: AdminSettingsService,\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(this.logo$.subscribe());\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._adminSettingsManagementApiService.uploadLogo(this.logoType, {imageBase64}).subscribe({\n next: () => {\n this.loading$.next(true);\n this._refresh$.next(null);\n this._adminSettingsService.refreshLogos();\n this.formGroup.enable();\n },\n error: () => {\n this.formGroup.enable();\n },\n });\n }\n\n public getImageSrc(imageBase64: string): string {\n const mimeType = this._isSvg(imageBase64) ? 'image/svg+xml' : 'image/png';\n return `data:${mimeType};base64,${imageBase64}`;\n }\n\n public onDeleteButtonClick(): void {\n this.showDeleteConfirmationModal$.next(true);\n }\n\n public onDelete(): void {\n this._adminSettingsManagementApiService.deleteLogo(this.logoType).subscribe(() => {\n this.loading$.next(true);\n this._refresh$.next(null);\n this._adminSettingsService.refreshLogos();\n });\n }\n\n private _isSvg(base64: string): boolean {\n try {\n const decoded = atob(base64.substring(0, 64));\n const trimmed = decoded.trimStart();\n return trimmed.startsWith('<?xml') || trimmed.startsWith('<svg');\n } catch {\n return false;\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-2026 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 logo: logo$ | async,\n loading: loading$ | async,\n } as obs\"\n class=\"admin-settings-logo\"\n [formGroup]=\"formGroup\"\n [cdsLayer]=\"1\"\n>\n <h4 class=\"admin-settings-logo__title\">\n {{ titleTranslationKey | translate }}\n </h4>\n\n @if (obs.loading) {\n <div class=\"loading-container\"><cds-loading></cds-loading></div>\n } @else if (obs.logo) {\n <div class=\"admin-settings-logo__preview\" [attr.data-carbon-theme]=\"previewTheme\">\n <img\n class=\"admin-settings-logo__image\"\n [src]=\"getImageSrc(obs.logo.imageBase64)\"\n />\n </div>\n\n <div class=\"admin-settings-logo__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 } @else {\n <cds-file-uploader\n [accept]=\"ACCEPTED_FILES\"\n [multiple]=\"false\"\n buttonType=\"primary\"\n [title]=\"'adminSettings.appearance.logo.fileUploaderTitle' | translate\"\n [description]=\"'adminSettings.appearance.logo.fileUploaderDescription' | translate\"\n [buttonText]=\"'adminSettings.appearance.logo.fileUploaderButton' | translate\"\n formControlName=\"file\"\n >\n </cds-file-uploader>\n\n <div class=\"admin-settings-logo__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=\"adminSettings.appearance.logo.deleteConfirmationModalText\"\n [showModalSubject$]=\"showDeleteConfirmationModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete()\"\n ></valtimo-confirmation-modal>\n</valtimo-render-in-body>\n","/*\n * Copyright 2015-2026 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 {ChangeDetectionStrategy, Component, OnDestroy, OnInit} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormBuilder, FormGroup, ReactiveFormsModule} from '@angular/forms';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ButtonModule,\n IconModule,\n IconService,\n LayerModule,\n LinkModule,\n LoadingModule,\n NotificationModule,\n} from 'carbon-components-angular';\nimport {Reset16} from '@carbon/icons';\nimport {AdminSettingsService, ColorPickerComponent, ColorPickerI18n} from '@valtimo/components';\nimport {BehaviorSubject, map, Observable, Subscription, switchMap, tap} from 'rxjs';\nimport {AdminSettingsManagementApiService} from '../../services';\nimport {ACCENT_COLOR_DEFINITIONS} from '../../constants';\nimport {AccentColorDefinition} from '../../models';\n\n@Component({\n standalone: true,\n selector: 'valtimo-admin-settings-color',\n templateUrl: './admin-settings-color.component.html',\n styleUrls: ['./admin-settings-color.component.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n LayerModule,\n ButtonModule,\n IconModule,\n LoadingModule,\n LinkModule,\n NotificationModule,\n ColorPickerComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdminSettingsColorComponent implements OnInit, OnDestroy {\n public readonly ACCENT_COLOR_DEFINITIONS: AccentColorDefinition[] = ACCENT_COLOR_DEFINITIONS;\n public readonly DOCS_URL =\n 'https://docs.valtimo.nl/customizing-valtimo/front-end-customization/customizing-carbon-theme';\n public readonly formGroup: FormGroup;\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly saving$ = new BehaviorSubject<boolean>(false);\n\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n private readonly _cssDefaults: {[cssVar: string]: string} = {};\n\n public readonly colors$ = this._refresh$.pipe(\n switchMap(() => this._adminSettingsManagementApiService.getAccentColors()),\n tap(dto => {\n this._patchForm(dto.colors);\n this.loading$.next(false);\n })\n );\n\n public readonly pickrI18n$: Observable<ColorPickerI18n> =\n this._translateService.stream('adminSettings.appearance.colors.pickr').pipe(\n map(pickr => ({\n save: pickr?.save || 'OK',\n cancel: pickr?.cancel || 'Cancel',\n clear: pickr?.clear || 'Clear',\n }))\n );\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly _adminSettingsManagementApiService: AdminSettingsManagementApiService,\n private readonly _adminSettingsService: AdminSettingsService,\n private readonly _formBuilder: FormBuilder,\n private readonly _iconService: IconService,\n private readonly _translateService: TranslateService\n ) {\n this._iconService.register(Reset16);\n this._snapshotCssDefaults();\n this.formGroup = this._buildForm();\n }\n\n public ngOnInit(): void {\n this._subscriptions.add(this.colors$.subscribe());\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onSave(): void {\n const colors: {[key: string]: string} = {};\n\n for (const def of ACCENT_COLOR_DEFINITIONS) {\n const raw = this.formGroup.get(def.cssVar)?.value || this._getCssDefault(def.cssVar);\n colors[def.cssVar] = this._normalizeHex(raw);\n }\n\n this.saving$.next(true);\n this.formGroup.disable();\n\n this._adminSettingsManagementApiService.updateAccentColors({colors}).subscribe({\n next: () => {\n this._adminSettingsService.applyAccentColors(colors);\n this.saving$.next(false);\n this.formGroup.enable();\n this.formGroup.markAsPristine();\n this._adminSettingsService.refreshAccentColors();\n },\n error: () => {\n this.saving$.next(false);\n this.formGroup.enable();\n },\n });\n }\n\n public isDefaultColor(def: AccentColorDefinition): boolean {\n const value = this.formGroup.get(def.cssVar)?.value || '';\n return value.toLowerCase() === this._getCssDefault(def.cssVar).toLowerCase();\n }\n\n public onReset(def: AccentColorDefinition): void {\n this.formGroup.get(def.cssVar)?.setValue(this._getCssDefault(def.cssVar));\n this.formGroup.markAsDirty();\n }\n\n private _buildForm(): FormGroup {\n const controls: {[key: string]: any} = {};\n for (const def of ACCENT_COLOR_DEFINITIONS) {\n controls[def.cssVar] = this._formBuilder.control(this._getCssDefault(def.cssVar));\n }\n return this._formBuilder.group(controls);\n }\n\n private _patchForm(colors: {[key: string]: string}): void {\n const patch: {[key: string]: string} = {};\n for (const def of ACCENT_COLOR_DEFINITIONS) {\n patch[def.cssVar] = colors[def.cssVar] || this._getCssDefault(def.cssVar);\n }\n this.formGroup.patchValue(patch, {emitEvent: false});\n this.formGroup.markAsPristine();\n }\n\n private _snapshotCssDefaults(): void {\n for (const def of ACCENT_COLOR_DEFINITIONS) {\n this._cssDefaults[def.cssVar] =\n this._adminSettingsService.getDefaultAccentColor(def.cssVar);\n }\n }\n\n private _getCssDefault(cssVar: string): string {\n return this._cssDefaults[cssVar] || '';\n }\n\n private _normalizeHex(value: string): string {\n if (!value) return value;\n\n const upper = value.toUpperCase();\n if (upper.length === 9 && upper.endsWith('FF')) {\n return value.substring(0, 7);\n }\n return value;\n }\n}\n","<!--\n ~ Copyright 2015-2026 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 colors: colors$ | async,\n loading: loading$ | async,\n saving: saving$ | async,\n pickrI18n: pickrI18n$ | async,\n } as obs\"\n class=\"admin-settings-color\"\n [formGroup]=\"formGroup\"\n [cdsLayer]=\"1\"\n>\n <h4 class=\"admin-settings-color__title\">\n {{ 'adminSettings.appearance.colors.title' | translate }}\n </h4>\n\n <ng-template #infoNotification>\n <p>\n {{ 'adminSettings.appearance.colors.infoMessage' | translate }}\n\n <a [href]=\"DOCS_URL\" target=\"_blank\" rel=\"noopener noreferrer\" cdsLink>\n {{ 'adminSettings.appearance.colors.infoLinkText' | translate }}\n </a>\n </p>\n </ng-template>\n\n <cds-inline-notification\n [notificationObj]=\"{\n type: 'info',\n title: '',\n template: infoNotification,\n showClose: false,\n lowContrast: true,\n }\"\n ></cds-inline-notification>\n\n @if (obs.loading) {\n <div class=\"loading-container\"><cds-loading></cds-loading></div>\n } @else {\n <div class=\"admin-settings-color__grid\">\n @for (def of ACCENT_COLOR_DEFINITIONS; track def.cssVar) {\n <div class=\"admin-settings-color__field\">\n <valtimo-color-picker\n [formControlName]=\"def.cssVar\"\n [labelTranslationKey]=\"def.labelTranslationKey\"\n [config]=\"{opacity: false, lockOpacity: true}\"\n [i18n]=\"obs.pickrI18n\"\n (clearEvent)=\"onReset(def)\"\n ></valtimo-color-picker>\n\n <button\n cdsButton=\"ghost\"\n [disabled]=\"isDefaultColor(def)\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onReset(def)\"\n class=\"admin-settings-color__reset\"\n >\n <svg cdsIcon=\"reset\" size=\"16\"></svg>\n </button>\n </div>\n }\n </div>\n\n <div class=\"admin-settings-color__buttons\">\n <button\n cdsButton=\"primary\"\n [disabled]=\"formGroup.disabled || formGroup.pristine || obs.saving\"\n (click)=\"onSave()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </div>\n }\n</form>\n","/*\n * Copyright 2015-2026 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 {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MuuriDirectiveModule} from '@valtimo/components';\nimport {AdminSettingsLogoComponent} from '../admin-settings-logo/admin-settings-logo.component';\nimport {AdminSettingsColorComponent} from '../admin-settings-color/admin-settings-color.component';\n\n@Component({\n standalone: true,\n selector: 'valtimo-admin-settings-appearance',\n templateUrl: './admin-settings-appearance.component.html',\n imports: [CommonModule, MuuriDirectiveModule, AdminSettingsLogoComponent, AdminSettingsColorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdminSettingsAppearanceComponent {}\n","<!--\n ~ Copyright 2015-2026 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=\"admin-settings-appearance\">\n <div muuri [columnMinWidth]=\"450\">\n <valtimo-muuri-item>\n <valtimo-admin-settings-logo\n logoType=\"LOGO\"\n titleTranslationKey=\"adminSettings.appearance.logo.title\"\n ></valtimo-admin-settings-logo>\n </valtimo-muuri-item>\n\n <valtimo-muuri-item>\n <valtimo-admin-settings-logo\n logoType=\"LOGO_DARK_MODE\"\n titleTranslationKey=\"adminSettings.appearance.logoDarkMode.title\"\n ></valtimo-admin-settings-logo>\n </valtimo-muuri-item>\n\n <valtimo-muuri-item>\n <valtimo-admin-settings-color></valtimo-admin-settings-color>\n </valtimo-muuri-item>\n </div>\n</div>\n","/*\n * Copyright 2015-2026 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 {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {ToggleModule} from 'carbon-components-angular';\nimport {AdminSettingsService} from '@valtimo/components';\nimport {ConfigService, ValtimoConfigFeatureToggles} from '@valtimo/shared';\nimport {AdminSettingsManagementApiService} from '../../services';\nimport {FEATURE_TOGGLE_DEFINITIONS} from '../../constants';\nimport {FeatureToggleDefinition} from '../../models';\n\n@Component({\n standalone: true,\n selector: 'valtimo-admin-settings-feature-toggles',\n templateUrl: './admin-settings-feature-toggles.component.html',\n styleUrls: ['./admin-settings-feature-toggles.component.scss'],\n imports: [\n CommonModule,\n TranslatePipe,\n ToggleModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdminSettingsFeatureTogglesComponent {\n public readonly TOGGLE_DEFINITIONS = FEATURE_TOGGLE_DEFINITIONS;\n\n public readonly featureToggles$ = this._configService.featureToggles$;\n\n public readonly searchEngine$ = this._adminSettingsManagementApiService.getSearchEngine();\n\n constructor(\n private readonly _adminSettingsManagementApiService: AdminSettingsManagementApiService,\n private readonly _adminSettingsService: AdminSettingsService,\n private readonly _configService: ConfigService\n ) {}\n\n public getEffectiveValue(\n definition: FeatureToggleDefinition,\n toggles: ValtimoConfigFeatureToggles\n ): boolean {\n return !!(toggles as Record<string, boolean | undefined>)[definition.key];\n }\n\n public onToggleChange(definition: FeatureToggleDefinition, newValue: boolean): void {\n this._adminSettingsManagementApiService\n .updateFeatureToggle({key: definition.key, enabled: newValue})\n .subscribe(() => {\n this._adminSettingsService.refreshFeatureToggles();\n });\n }\n\n public onSearchEngineChange(useOpenSearch: boolean): void {\n this._adminSettingsManagementApiService.updateSearchEngine(useOpenSearch).subscribe();\n }\n}\n","<!--\n ~ Copyright 2015-2026 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@if (featureToggles$ | async; as toggles) {\n <div class=\"feature-toggles\">\n <div class=\"feature-toggles__list\">\n @if (searchEngine$ | async; as searchEngine) {\n <div class=\"feature-toggles__item\" [class.feature-toggles__item--disabled]=\"!searchEngine.available\">\n <div class=\"feature-toggles__info\">\n <span class=\"feature-toggles__title\">\n {{ 'adminSettings.featureToggles.searchEngine.useOpenSearch.title' | translate }}\n </span>\n <span class=\"feature-toggles__description\">\n @if (searchEngine.available) {\n {{ 'adminSettings.featureToggles.searchEngine.useOpenSearch.description' | translate }}\n } @else {\n {{ 'adminSettings.featureToggles.searchEngine.useOpenSearch.unavailable' | translate }}\n }\n </span>\n </div>\n <div class=\"feature-toggles__control\">\n <cds-toggle\n [checked]=\"searchEngine.active === 'OPENSEARCH'\"\n [onText]=\"'interface.on' | translate\"\n [offText]=\"'interface.off' | translate\"\n [size]=\"'sm'\"\n [disabled]=\"!searchEngine.available\"\n (checkedChange)=\"onSearchEngineChange($event)\"\n ></cds-toggle>\n </div>\n </div>\n }\n @for (definition of TOGGLE_DEFINITIONS; track definition.key) {\n <div class=\"feature-toggles__item\">\n <div class=\"feature-toggles__info\">\n <span class=\"feature-toggles__title\">\n {{ 'adminSettings.featureToggles.toggles.' + definition.key + '.title' | translate }}\n </span>\n\n <span class=\"feature-toggles__description\">\n {{ 'adminSettings.featureToggles.toggles.' + definition.key + '.description' | translate }}\n </span>\n </div>\n\n <div class=\"feature-toggles__control\">\n <cds-toggle\n [checked]=\"getEffectiveValue(definition, toggles)\"\n [onText]=\"'interface.on' | translate\"\n [offText]=\"'interface.off' | translate\"\n [size]=\"'sm'\"\n (checkedChange)=\"onToggleChange(definition, $event)\"\n ></cds-toggle>\n </div>\n </div>\n }\n </div>\n </div>\n}\n","/*\n * Copyright 2015-2026 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 {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {TabsModule} from 'carbon-components-angular';\nimport {map} from 'rxjs';\nimport {ADMIN_SETTINGS_TABS} from '../../constants';\nimport {AdminSettingsAppearanceComponent} from '../admin-settings-appearance/admin-settings-appearance.component';\nimport {AdminSettingsFeatureTogglesComponent} from '../admin-settings-feature-toggles/admin-settings-feature-toggles.component';\n\n@Component({\n standalone: true,\n selector: 'valtimo-admin-settings',\n templateUrl: './admin-settings.component.html',\n styleUrls: ['./admin-settings.component.scss'],\n imports: [\n CommonModule,\n TranslatePipe,\n TabsModule,\n AdminSettingsAppearanceComponent,\n AdminSettingsFeatureTogglesComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdminSettingsComponent {\n public readonly ADMIN_SETTINGS_TABS = ADMIN_SETTINGS_TABS;\n\n public readonly activeTabKey$ = this._route.params.pipe(\n map(params => params['tabKey'] || ADMIN_SETTINGS_TABS.APPEARANCE)\n );\n\n constructor(\n private readonly _route: ActivatedRoute,\n private readonly _router: Router\n ) {}\n\n public switchTab(tabKey: string): void {\n this._router.navigate(['..', tabKey], {relativeTo: this._route});\n }\n}\n","<!--\n ~ /*\n ~ * Copyright 2015-2026 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@if (activeTabKey$ | async; as activeTabKey) {\n <cds-tabs type=\"line\">\n @if ({active: activeTabKey === ADMIN_SETTINGS_TABS.APPEARANCE}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'adminSettings.tabs.appearance' | translate\"\n (selected)=\"switchTab(ADMIN_SETTINGS_TABS.APPEARANCE)\"\n >\n @if (obs.active) {\n <valtimo-admin-settings-appearance></valtimo-admin-settings-appearance>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === ADMIN_SETTINGS_TABS.FEATURE_TOGGLES}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'adminSettings.tabs.featureToggles' | translate\"\n (selected)=\"switchTab(ADMIN_SETTINGS_TABS.FEATURE_TOGGLES)\"\n >\n @if (obs.active) {\n <valtimo-admin-settings-feature-toggles></valtimo-admin-settings-feature-toggles>\n }\n </cds-tab>\n }\n\n </cds-tabs>\n}\n","/*\n * Copyright 2015-2026 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 {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormBuilder, FormGroup, ReactiveFormsModule} from '@angular/forms';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ButtonModule,\n CheckboxModule,\n DatePickerInputModule,\n DatePickerModule,\n DropdownModule,\n LayerModule,\n ListItem,\n ModalModule,\n} from 'carbon-components-angular';\nimport {TooltipIconModule, ValtimoCdsModalDirective} from '@valtimo/components';\nimport {StartReindexRequestDto} from '../../models';\n\n@Component({\n standalone: true,\n selector: 'valtimo-start-reindex-modal',\n templateUrl: './start-reindex-modal.component.html',\n styleUrls: ['./start-reindex-modal.component.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n ModalModule,\n ValtimoCdsModalDirective,\n ButtonModule,\n CheckboxModule,\n DatePickerInputModule,\n DatePickerModule,\n DropdownModule,\n LayerModule,\n TooltipIconModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StartReindexModalComponent {\n @Input() public open = false;\n @Input() public documentDefinitions: ListItem[] = [];\n\n @Output() public readonly closeEvent = new EventEmitter<StartReindexRequestDto | null>();\n\n public readonly formGroup: FormGroup = this._fb.group({\n pruneOrphans: [false],\n documentDefinitionName: [null],\n modifiedAfter: [null],\n });\n\n constructor(private readonly _fb: FormBuilder) {}\n\n public onDateSelected(event: string[]): void {\n const dateValue = event?.[0] || null;\n this.formGroup.patchValue({modifiedAfter: dateValue});\n }\n\n public onCancel(): void {\n this._resetForm();\n this.closeEvent.emit(null);\n }\n\n public onSubmit(): void {\n const request = this._buildRequest();\n this._resetForm();\n this.closeEvent.emit(request);\n }\n\n private _buildRequest(): StartReindexRequestDto {\n const formValue = this.formGroup.value;\n const request: StartReindexRequestDto = {};\n\n if (formValue.pruneOrphans) {\n request.pruneOrphans = true;\n }\n\n if (formValue.documentDefinitionName?.value) {\n request.documentDefinitionName = formValue.documentDefinitionName.value;\n }\n\n if (formValue.modifiedAfter) {\n request.modifiedAfter = this._formatDateToIso(formValue.modifiedAfter);\n }\n\n return request;\n }\n\n private _formatDateToIso(date: string | Date): string {\n if (date instanceof Date) {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}T00:00:00`;\n }\n const parts = date.split('-');\n if (parts.length === 3) {\n const [day, month, year] = parts;\n return `${year}-${month}-${day}T00:00:00`;\n }\n return date;\n }\n\n private _resetForm(): void {\n this.formGroup.reset({\n pruneOrphans: false,\n documentDefinitionName: null,\n modifiedAfter: null,\n });\n }\n}\n","<!--\n ~ Copyright 2015-2026 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 *ngIf=\"open\" [open]=\"open\" size=\"sm\" (close)=\"onCancel()\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>{{ 'adminSettings.opensearch.reindex.startModalTitle' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"formGroup\" class=\"start-reindex-form\">\n <cds-checkbox formControlName=\"pruneOrphans\">\n <span class=\"label-with-tooltip\">\n {{ 'adminSettings.opensearch.reindex.pruneOrphans' | translate }}\n <v-tooltip-icon [tooltip]=\"'adminSettings.opensearch.reindex.tooltips.pruneOrphans' | translate\"></v-tooltip-icon>\n </span>\n </cds-checkbox>\n\n <cds-dropdown\n [label]=\"'adminSettings.opensearch.reindex.documentDefinitionName' | translate\"\n [placeholder]=\"'adminSettings.opensearch.reindex.documentDefinitionPlaceholder' | translate\"\n formControlName=\"documentDefinitionName\"\n >\n <cds-dropdown-list [items]=\"documentDefinitions\"></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-date-picker\n [label]=\"'adminSettings.opensearch.reindex.modifiedAfter' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected($event)\"\n ></cds-date-picker>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" (click)=\"onSubmit()\">\n {{ 'adminSettings.opensearch.reindex.startButton' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2026 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 {ChangeDetectionStrategy, Component, OnDestroy, OnInit} from '@angular/core';\nimport {CommonModule, DatePipe} from '@angular/common';\nimport {Router} from '@angular/router';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n BehaviorSubject,\n finalize,\n interval,\n map,\n merge,\n Observable,\n of,\n shareReplay,\n startWith,\n Subject,\n switchMap,\n take,\n takeUntil,\n takeWhile,\n} from 'rxjs';\nimport {\n ButtonModule,\n IconModule,\n IconService,\n ListItem,\n LoadingModule,\n ProgressBarModule,\n TagModule,\n} from 'carbon-components-angular';\nimport {Launch16} from '@carbon/icons';\nimport {CarbonListModule, ColumnConfig, Pagination, TooltipIconModule, ViewType} from '@valtimo/components';\nimport {Page} from '@valtimo/shared';\nimport {AdminSettingsManagementApiService} from '../../services';\nimport {ReindexStatusDto, StartReindexRequestDto} from '../../models';\nimport {DocumentService} from '@valtimo/document';\nimport {StartReindexModalComponent} from '../start-reindex-modal/start-reindex-modal.component';\n\n@Component({\n standalone: true,\n selector: 'valtimo-admin-settings-opensearch',\n templateUrl: './admin-settings-opensearch.component.html',\n styleUrls: ['./admin-settings-opensearch.component.scss'],\n imports: [\n CommonModule,\n DatePipe,\n TranslateModule,\n ButtonModule,\n IconModule,\n LoadingModule,\n ProgressBarModule,\n TagModule,\n CarbonListModule,\n StartReindexModalComponent,\n TooltipIconModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdminSettingsOpensearchComponent implements OnInit, OnDestroy {\n private readonly _destroy$ = new Subject<void>();\n private readonly _manualRefresh$ = new BehaviorSubject<void>(undefined);\n private readonly _silentRefresh$ = new Subject<void>();\n\n public readonly fields: ColumnConfig[] = [\n {key: 'statusTag', label: 'adminSettings.opensearch.reindex.columns.status', viewType: ViewType.TAGS},\n {key: 'startedOn', label: 'adminSettings.opensearch.reindex.columns.startedOn', viewType: ViewType.DATE},\n {key: 'finishedOn', label: 'adminSettings.opensearch.reindex.columns.finishedOn', viewType: ViewType.DATE},\n {key: 'progress', label: 'adminSettings.opensearch.reindex.columns.progress', viewType: ViewType.TEXT},\n ];\n\n public pagination: Pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n };\n\n public readonly showModal$ = new BehaviorSubject<boolean>(false);\n public readonly startingReindex$ = new BehaviorSubject<boolean>(false);\n public readonly loading$ = new BehaviorSubject<boolean>(false);\n\n public documentDefinitions$: Observable<ListItem[]>;\n\n public readonly runs$: Observable<Page<ReindexStatusDto>> = merge(\n this._manualRefresh$.pipe(\n switchMap(() => {\n this.loading$.next(true);\n return this._apiService.getReindexRuns(this.pagination.page - 1, this.pagination.size).pipe(\n finalize(() => this.loading$.next(false))\n );\n })\n ),\n this._silentRefresh$.pipe(\n switchMap(() => this._apiService.getReindexRuns(this.pagination.page - 1, this.pagination.size))\n )\n ).pipe(shareReplay(1));\n\n public readonly tableItems$: Observable<any[]> = this.runs$.pipe(\n switchMap(page => {\n this.pagination = {...this.pagination, collectionSize: page.totalElements};\n if (page.content.length === 0) {\n return of([]);\n }\n const statusKeys = page.content.map(run => `adminSettings.opensearch.reindex.statuses.${run.status}`);\n return this._translateService.get(statusKeys).pipe(\n map(translations => page.content.map(run => ({\n ...run,\n progress: `${run.processedCount} / ${run.totalCount}`,\n statusTag: {\n content: translations[`adminSettings.opensearch.reindex.statuses.${run.status}`],\n type: this._getStatusTagType(run.status),\n },\n })))\n );\n })\n );\n\n public readonly hasRunningRun$: Observable<boolean> = this.runs$.pipe(\n map(page => page.content.some(run => run.status === 'RUNNING'))\n );\n\n constructor(\n private readonly _apiService: AdminSettingsManagementApiService,\n private readonly _documentService: DocumentService,\n private readonly _translateService: TranslateService,\n private readonly _router: Router,\n private readonly _iconService: IconService\n ) {\n this._iconService.register(Launch16);\n }\n\n public ngOnInit(): void {\n this.documentDefinitions$ = this._documentService.queryDefinitionsForManagement().pipe(\n switchMap(page =>\n this._translateService.get('adminSettings.opensearch.reindex.allDocumentDefinitions').pipe(\n map(allLabel => [\n {content: allLabel, value: null, selected: false},\n ...page.content.map(def => ({\n content: def.id.name,\n value: def.id.name,\n selected: false,\n })),\n ])\n )\n ),\n startWith([])\n );\n\n this.hasRunningRun$\n .pipe(\n switchMap(hasRunning => {\n if (!hasRunning) return [];\n return interval(3000).pipe(\n takeWhile(() => true),\n takeUntil(this._destroy$)\n );\n }),\n takeUntil(this._destroy$)\n )\n .subscribe(() => this._silentRefresh$.next());\n }\n\n public onPageChange(page: number): void {\n this.pagination = {...this.pagination, page};\n this._manualRefresh$.next();\n }\n\n public onPageSizeChange(size: number): void {\n this.pagination = {...this.pagination, size, page: 1};\n this._manualRefresh$.next();\n }\n\n public openModal(): void {\n this.showModal$.next(true);\n }\n\n public onModalClose(request: StartReindexRequestDto | null): void {\n this.showModal$.next(false);\n if (!request) return;\n\n this.startingReindex$.next(true);\n this._apiService\n .startReindex(request)\n .pipe(\n take(1),\n finalize(() => this.startingReindex$.next(false))\n )\n .subscribe({\n next: () => this._manualRefresh$.next(),\n error: err => {\n if (err.status === 409) {\n this._manualRefresh$.next();\n }\n },\n });\n }\n\n private _getStatusTagType(status: string): string {\n switch (status) {\n case 'RUNNING':\n return 'blue';\n case 'COMPLETED':\n return 'green';\n case 'FAILED':\n return 'red';\n case 'STOPPED':\n return 'gray';\n default:\n return 'gray';\n }\n }\n\n public navigateToLogs(run: ReindexStatusDto): void {\n const afterTimestamp = new Date(new Date(run.startedOn).getTime() - 5000).toISOString();\n const beforeTimestamp = run.finishedOn\n ? new Date(new Date(run.finishedOn).getTime() + 5000).toISOString()\n : new Date().toISOString();\n\n this._router.navigate(['/logging'], {\n queryParams: {\n level: 'ERROR',\n afterTimestamp,\n beforeTimestamp,\n },\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","<!--\n ~ Copyright 2015-2026 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=\"opensearch-reindex\"\n *ngIf=\"{\n items: tableItems$ | async,\n loading: loading$ | async,\n starting: startingReindex$ | async,\n documentDefinitions: documentDefinitions$ | async,\n showModal: showModal$ | async,\n hasRunning: hasRunningRun$ | async\n } as obs\"\n>\n <valtimo-carbon-list\n [header]=\"false\"\n [items]=\"obs.items || []\"\n [fields]=\"fields\"\n [loading]=\"obs.loading\"\n [pagination]=\"pagination\"\n [expandedRowTemplate]=\"expandedRowTemplate\"\n [expandedRowKey]=\"'runId'\"\n (paginationClicked)=\"onPageChange($event)\"\n (paginationSet)=\"onPageSizeChange($event)\"\n >\n <ng-container header>\n {{ 'adminSettings.opensearch.reindex.title' | translate }}\n </ng-container>\n\n <div carbonToolbarContent>\n <button\n cdsButton=\"primary\"\n [disabled]=\"obs.hasRunning || obs.starting\"\n (click)=\"openModal()\"\n >\n @if (obs.starting) {\n <cds-loading size=\"sm\"></cds-loading>\n }\n {{ 'adminSettings.opensearch.reindex.startButton' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n\n <valtimo-no-results\n title=\"{{ 'adminSettings.opensearch.reindex.noResults.title' | translate }}\"\n description=\"{{ 'adminSettings.opensearch.reindex.noResults.description' | translate }}\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-start-reindex-modal\n [open]=\"obs.showModal\"\n [documentDefinitions]=\"obs.documentDefinitions\"\n (closeEvent)=\"onModalClose($event)\"\n ></valtimo-start-reindex-modal>\n</div>\n\n<ng-template #expandedRowTemplate let-data=\"data\">\n <div class=\"opensearch-reindex__expanded\">\n <span class=\"opensearch-reindex__label\">{{ 'adminSettings.opensearch.reindex.started' | translate }}</span>\n <span class=\"opensearch-reindex__value\">{{ data.startedOn | date:'medium' }}</span>\n\n <span class=\"opensearch-reindex__label\">{{ 'adminSettings.opensearch.reindex.finished' | translate }}</span>\n <span class=\"opensearch-reindex__value\">{{ data.finishedOn ? (data.finishedOn | date:'medium') : '-' }}</span>\n\n <span class=\"opensearch-reindex__label\">{{ 'adminSettings.opensearch.reindex.documentDefinitionName' | translate }}</span>\n <span class=\"opensearch-reindex__value\">{{ data.scope?.documentDefinitionName || '-' }}</span>\n\n <span class=\"opensearch-reindex__label\">{{ 'adminSettings.opensearch.reindex.pruneOrphans' | translate }}</span>\n <span class=\"opensearch-reindex__value opensearch-reindex__value-with-tooltip\">\n {{ data.scope?.pruneOrphans ? ('interface.yes' | translate) : ('interface.no' | translate) }}\n <v-tooltip-icon [tooltip]=\"'adminSettings.opensearch.reindex.tooltips.pruneOrphans' | translate\"></v-tooltip-icon>\n </span>\n\n <span class=\"opensearch-reindex__label\">{{ 'adminSettings.opensearch.reindex.modifiedAfter' | translate }}</span>\n <span class=\"opensearch-reindex__value\">{{ data.scope?.modifiedAfter ? (data.scope.modifiedAfter | date:'medium') : '-' }}</span>\n\n <div class=\"opensearch-reindex__results-column\">\n <div class=\"opensearch-reindex__progress\">\n <span class=\"opensearch-reindex__progress-label\">\n {{ 'adminSettings.opensearch.reindex.reindexing' | translate }}\n </span>\n <cds-progress-bar\n [value]=\"data.totalCount > 0 ? (data.processedCount / data.totalCount) * 100 : 0\"\n [status]=\"data.status === 'RUNNING' && !data.pruningPhase ? 'active' : (data.status === 'COMPLETED' ? 'finished' : (data.status === 'RUNNING' ? 'finished' : 'error'))\"\n ></cds-progress-bar>\n <div class=\"opensearch-reindex__progress-footer\">\n <span>{{ 'adminSettings.opensearch.reindex.processed' | translate:{current: data.processedCount, total: data.totalCount} }}</span>\n <span>{{ 'adminSettings.opensearch.reindex.skipped' | translate }}: {{ data.skippedCount || 0 }}</span>\n </div>\n </div>\n\n @if (data.pruningPhase || data.pruneTotalCount) {\n <div class=\"opensearch-reindex__progress\">\n <span class=\"opensearch-reindex__progress-label\">\n {{ 'adminSettings.opensearch.reindex.pruning' | translate }}\n <v-tooltip-icon [tooltip]=\"'adminSettings.opensearch.reindex.tooltips.pruned' | translate\"></v-tooltip-icon>\n </span>\n <cds-progress-bar\n [value]=\"data.pruneTotalCount > 0 ? (data.pruneCheckedCount / data.pruneTotalCount) * 100 : 0\"\n [status]=\"data.pruningPhase ? 'active' : (data.status === 'COMPLETED' ? 'finished' : 'error')\"\n ></cds-progress-bar>\n <div class=\"opensearch-reindex__progress-footer\">\n <span>{{ 'adminSettings.opensearch.reindex.processed' | translate:{current: data.pruneCheckedCount, total: data.pruneTotalCount || 0} }}</span>\n <span>{{ 'adminSettings.opensearch.reindex.pruningProgress' | translate:{removed: data.prunedCount || 0} }}</span>\n </div>\n </div>\n }\n\n @if (data.status === 'FAILED') {\n <a class=\"opensearch-reindex__error-link\" (click)=\"navigateToLogs(data)\">\n {{ 'adminSettings.opensearch.reindex.viewErrorLogs' | translate }}\n <svg cdsIcon=\"launch\" size=\"16\"></svg>\n </a>\n }\n </div>\n </div>\n</ng-template>\n","/*\n *\n * * Copyright 2015-2026 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\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 {AdminSettingsComponent} from './components/admin-settings/admin-settings.component';\nimport {AdminSettingsOpensearchComponent} from './components/admin-settings-opensearch/admin-settings-opensearch.component';\nimport {ADMIN_SETTINGS_TABS} from './constants';\n\nconst routes: Routes = [\n {\n path: 'admin-settings',\n redirectTo: `admin-settings/${ADMIN_SETTINGS_TABS.APPEARANCE}`,\n pathMatch: 'full',\n },\n {\n path: 'admin-settings/:tabKey',\n component: AdminSettingsComponent,\n canActivate: [AuthGuardService],\n data: {title: 'adminSettings.title', roles: [ROLE_ADMIN]},\n },\n {\n path: 'opensearch',\n component: AdminSettingsOpensearchComponent,\n canActivate: [AuthGuardService],\n data: {title: 'adminSettings.opensearch.title', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AdminSettingsRouting {}\n","/*\n * Copyright 2015-2026 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 {AdminSettingsRouting} from './admin-settings-routing';\nimport {AdminSettingsComponent} from './components/admin-settings/admin-settings.component';\n\n@NgModule({\n declarations: [],\n imports: [AdminSettingsRouting, AdminSettingsComponent],\n providers: [],\n})\nexport class AdminSettingsModule {}\n","/*\n * Copyright 2015-2026 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\ninterface AccentColorsDto {\n colors: {[key: string]: string};\n}\n\ninterface AccentColorDefinition {\n cssVar: string;\n labelTranslationKey: string;\n}\n\nexport {AccentColorsDto, AccentColorDefinition};\n","/*\n * Copyright 2015-2026 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 {ValtimoConfigFeatureToggles} from '@valtimo/shared';\n\ninterface FeatureToggleOverridesDto {\n overrides: {[key: string]: boolean};\n}\n\ninterface UpdateFeatureToggleDto {\n key: string;\n enabled: boolean;\n}\n\ninterface FeatureToggleDefinition {\n key: keyof ValtimoConfigFeatureToggles;\n}\n\nexport {FeatureToggleOverridesDto, UpdateFeatureToggleDto, FeatureToggleDefinition};\n","/*\n * Copyright 2015-2026 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\ntype ReindexStatus = 'RUNNING' | 'COMPLETED' | 'FAILED' | 'STOPPED';\n\ninterface ReindexScope {\n pruneOrphans?: boolean;\n documentDefinitionName?: string;\n modifiedBefore?: string;\n modifiedAfter?: string;\n pageSize?: number;\n resumeRunId?: string;\n documentIds?: string[];\n}\n\ninterface ReindexStatusDto {\n runId: string;\n status: ReindexStatus;\n running: boolean;\n scope: ReindexScope | null;\n totalCount: number;\n processedCount: number;\n skippedCount: number;\n prunedCount: number;\n pruneCheckedCount: number;\n pruneTotalCount: number | null;\n pruningPhase: boolean;\n startedOn: string;\n finishedOn: string | null;\n elapsedSeconds: number;\n error: string | null;\n}\n\ninterface StartReindexRequestDto {\n pruneOrphans?: boolean;\n documentDefinitionName?: string;\n modifiedAfter?: string;\n}\n\ninterface StartReindexResponseDto {\n status: string;\n runId: string;\n}\n\nexport {\n ReindexStatus,\n ReindexScope,\n ReindexStatusDto,\n StartReindexRequestDto,\n StartReindexResponseDto,\n};\n","/*\n * Copyright 2015-2026 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 interface SearchEngineDto {\n available: boolean;\n active: 'OPENSEARCH' | 'POSTGRES';\n}\n\nexport interface UpdateSearchEngineDto {\n active: 'OPENSEARCH' | 'POSTGRES';\n}\n","/*\n *\n * * Copyright 2015-2026 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\nexport * from './accent-colors.model';\nexport * from './feature-toggle.model';\nexport * from './reindex.model';\nexport * from './search-engine.model';\n","/*\n * Copyright 2015-2026 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 './lib/admin-settings.module';\nexport * from './lib/services';\nexport * from './lib/constants';\nexport * from './lib/models';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AdminSettingsManagementApiService","i2","i5","i1","i3","i4","i7"],"mappings":"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"}
1
+ {"version":3,"file":"valtimo-admin-settings.mjs","sources":["../../../../projects/valtimo/admin-settings/src/lib/constants/accent-colors.constants.ts","../../../../projects/valtimo/admin-settings/src/lib/constants/admin-settings.constants.ts","../../../../projects/valtimo/admin-settings/src/lib/constants/feature-toggle.constants.ts","../../../../projects/valtimo/admin-settings/src/lib/services/admin-settings-management-api.service.ts","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-logo/admin-settings-logo.component.ts","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-logo/admin-settings-logo.component.html","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-color/admin-settings-color.component.ts","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-color/admin-settings-color.component.html","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-appearance/admin-settings-appearance.component.ts","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-appearance/admin-settings-appearance.component.html","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-feature-toggles/admin-settings-feature-toggles.component.ts","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-feature-toggles/admin-settings-feature-toggles.component.html","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings/admin-settings.component.ts","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings/admin-settings.component.html","../../../../projects/valtimo/admin-settings/src/lib/components/start-reindex-modal/start-reindex-modal.component.ts","../../../../projects/valtimo/admin-settings/src/lib/components/start-reindex-modal/start-reindex-modal.component.html","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-opensearch/admin-settings-opensearch.component.ts","../../../../projects/valtimo/admin-settings/src/lib/components/admin-settings-opensearch/admin-settings-opensearch.component.html","../../../../projects/valtimo/admin-settings/src/lib/admin-settings-routing.ts","../../../../projects/valtimo/admin-settings/src/lib/admin-settings.module.ts","../../../../projects/valtimo/admin-settings/src/lib/models/accent-colors.model.ts","../../../../projects/valtimo/admin-settings/src/lib/models/feature-toggle.model.ts","../../../../projects/valtimo/admin-settings/src/lib/models/reindex.model.ts","../../../../projects/valtimo/admin-settings/src/lib/models/search-engine.model.ts","../../../../projects/valtimo/admin-settings/src/lib/models/index.ts","../../../../projects/valtimo/admin-settings/src/public-api.ts","../../../../projects/valtimo/admin-settings/src/valtimo-admin-settings.ts"],"sourcesContent":["/*\n * Copyright 2015-2026 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 {AccentColorDefinition} from '../models';\n\nconst ACCENT_COLOR_DEFINITIONS: AccentColorDefinition[] = [\n {\n cssVar: '--vcds-color-100',\n labelTranslationKey: 'adminSettings.appearance.colors.color100',\n },\n {\n cssVar: '--vcds-color-90',\n labelTranslationKey: 'adminSettings.appearance.colors.color90',\n },\n {\n cssVar: '--vcds-color-80',\n labelTranslationKey: 'adminSettings.appearance.colors.color80',\n },\n {\n cssVar: '--vcds-color-70',\n labelTranslationKey: 'adminSettings.appearance.colors.color70',\n },\n {\n cssVar: '--vcds-color-60',\n labelTranslationKey: 'adminSettings.appearance.colors.color60',\n },\n {\n cssVar: '--vcds-color-50',\n labelTranslationKey: 'adminSettings.appearance.colors.color50',\n },\n {\n cssVar: '--vcds-color-40',\n labelTranslationKey: 'adminSettings.appearance.colors.color40',\n },\n {\n cssVar: '--vcds-color-30',\n labelTranslationKey: 'adminSettings.appearance.colors.color30',\n },\n {\n cssVar: '--vcds-color-20',\n labelTranslationKey: 'adminSettings.appearance.colors.color20',\n },\n {\n cssVar: '--vcds-color-10',\n labelTranslationKey: 'adminSettings.appearance.colors.color10',\n },\n];\n\nexport {ACCENT_COLOR_DEFINITIONS};\n","/*\n * Copyright 2015-2026 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 ADMIN_SETTINGS_TABS = {\n APPEARANCE: 'appearance',\n FEATURE_TOGGLES: 'feature-toggles',\n} as const;\n\nexport {ADMIN_SETTINGS_TABS};\n","/*\n * Copyright 2015-2026 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 {FeatureToggleDefinition} from '../models';\n\nconst FEATURE_TOGGLE_DEFINITIONS: FeatureToggleDefinition[] = [\n {key: 'allowUserThemeSwitching'},\n {key: 'enableCompactModeToggle'},\n {key: 'compactModeOnByDefault'},\n {key: 'enableUserNameInTopBarToggle'},\n {key: 'showUserNameInTopBar'},\n {key: 'showPlantATreeButton'},\n {key: 'largeLogoMargin'},\n {key: 'applicationTitleAsSuffix'},\n {key: 'disableCaseCount'},\n {key: 'enableObjectManagement'},\n {key: 'sortFilesByDate'},\n {key: 'returnToLastUrlAfterTokenExpiration'},\n {key: 'enableTabManagement'},\n {key: 'hideValtimoVersionsForNonAdmins'},\n {key: 'useStartEventNameAsStartFormTitle'},\n {key: 'enableFormViewModel'},\n {key: 'enableIntermediateSave'},\n {key: 'enableFormFlowBreadcrumbs'},\n {key: 'enablePbacDocumentenApiDocuments'},\n {key: 'enableSuppressDocumentError'},\n {key: 'enableIkoType'},\n {key: 'menuCollapsedByDefault'},\n {key: 'enableGenericCaseList'},\n {key: 'disableFormioTokenInLocalStorage'},\n];\n\nexport {FEATURE_TOGGLE_DEFINITIONS};\n","/*\n * Copyright 2015-2026 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 {HttpClient, HttpParams} from '@angular/common/http';\nimport {catchError, Observable, of} from 'rxjs';\nimport {\n AdminSettingsLogoDto,\n AdminSettingsLogosDto,\n BaseApiService,\n ConfigService,\n CreateAdminSettingsLogoDto,\n Page,\n} from '@valtimo/shared';\nimport {\n AccentColorsDto,\n FeatureToggleOverridesDto,\n ReindexStatusDto,\n SearchEngineDto,\n StartReindexRequestDto,\n StartReindexResponseDto,\n UpdateFeatureToggleDto,\n} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AdminSettingsManagementApiService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getLogos(): Observable<AdminSettingsLogosDto> {\n return this.httpClient.get<AdminSettingsLogosDto>(\n this.getApiUrl('/v1/admin-settings/logos')\n );\n }\n\n public uploadLogo(\n logoType: string,\n dto: CreateAdminSettingsLogoDto\n ): Observable<AdminSettingsLogoDto> {\n return this.httpClient.post<AdminSettingsLogoDto>(\n this.getApiUrl(`/management/v1/admin-settings/logo/${logoType}`),\n dto\n );\n }\n\n public deleteLogo(logoType: string): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(`/management/v1/admin-settings/logo/${logoType}`)\n );\n }\n\n public getFeatureToggleOverrides(): Observable<FeatureToggleOverridesDto> {\n return this.httpClient.get<FeatureToggleOverridesDto>(\n this.getApiUrl('/v1/admin-settings/feature-toggles')\n );\n }\n\n public updateFeatureToggle(dto: UpdateFeatureToggleDto): Observable<FeatureToggleOverridesDto> {\n return this.httpClient.put<FeatureToggleOverridesDto>(\n this.getApiUrl('/management/v1/admin-settings/feature-toggles'),\n dto\n );\n }\n\n public removeFeatureToggle(key: string): Observable<FeatureToggleOverridesDto> {\n return this.httpClient.delete<FeatureToggleOverridesDto>(\n this.getApiUrl(`/management/v1/admin-settings/feature-toggles/${key}`)\n );\n }\n\n public getAccentColors(): Observable<AccentColorsDto> {\n return this.httpClient.get<AccentColorsDto>(\n this.getApiUrl('/v1/admin-settings/accent-colors')\n );\n }\n\n public updateAccentColors(dto: AccentColorsDto): Observable<AccentColorsDto> {\n return this.httpClient.put<AccentColorsDto>(\n this.getApiUrl('/management/v1/admin-settings/accent-colors'),\n dto\n );\n }\n\n public getSearchEngine(): Observable<SearchEngineDto | null> {\n return this.httpClient\n .get<SearchEngineDto>(this.getApiUrl('/management/v1/search-engine'))\n .pipe(catchError(() => of(null)));\n }\n\n public updateSearchEngine(useOpenSearch: boolean): Observable<SearchEngineDto> {\n return this.httpClient.put<SearchEngineDto>(\n this.getApiUrl('/management/v1/search-engine'),\n {active: useOpenSearch ? 'OPENSEARCH' : 'POSTGRES'}\n );\n }\n\n public startReindex(request: StartReindexRequestDto = {}): Observable<StartReindexResponseDto> {\n return this.httpClient.post<StartReindexResponseDto>(\n this.getApiUrl('/management/v1/document-opensearch/reindex'),\n request\n );\n }\n\n public getReindexStatus(): Observable<ReindexStatusDto | null> {\n return this.httpClient\n .get<ReindexStatusDto>(this.getApiUrl('/management/v1/document-opensearch/reindex/status'))\n .pipe(catchError(() => of(null)));\n }\n\n public getReindexRuns(page: number, size: number): Observable<Page<ReindexStatusDto>> {\n const params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n return this.httpClient.get<Page<ReindexStatusDto>>(\n this.getApiUrl('/management/v1/document-opensearch/reindex/runs'),\n {params}\n );\n }\n\n public getReindexRun(runId: string): Observable<ReindexStatusDto> {\n return this.httpClient.get<ReindexStatusDto>(\n this.getApiUrl(`/management/v1/document-opensearch/reindex/${runId}`)\n );\n }\n}\n","/*\n * Copyright 2015-2026 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 {ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {FormBuilder, FormControl, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {\n AdminSettingsService,\n ConfirmationModalModule,\n RenderInBodyComponent,\n} from '@valtimo/components';\nimport {\n ButtonModule,\n FileUploaderModule,\n IconModule,\n IconService,\n LayerModule,\n LoadingModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, map, Subscription, switchMap, tap} from 'rxjs';\nimport {TrashCan16, Upload16} from '@carbon/icons';\nimport {AdminSettingsManagementApiService} from '../../services';\n\n@Component({\n standalone: true,\n selector: 'valtimo-admin-settings-logo',\n templateUrl: './admin-settings-logo.component.html',\n styleUrls: ['./admin-settings-logo.component.scss'],\n imports: [\n CommonModule,\n TranslatePipe,\n ReactiveFormsModule,\n LayerModule,\n ButtonModule,\n FileUploaderModule,\n LoadingModule,\n IconModule,\n ConfirmationModalModule,\n RenderInBodyComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdminSettingsLogoComponent implements OnInit, OnDestroy {\n @Input() public logoType!: string;\n @Input() public titleTranslationKey!: string;\n\n public get previewTheme(): string {\n return this.logoType === 'LOGO_DARK_MODE' ? 'g90' : 'g10';\n }\n\n public readonly ACCEPTED_FILES: string[] = ['png', 'svg'];\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 loading$ = new BehaviorSubject<boolean>(true);\n\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n\n public readonly logo$ = this._refresh$.pipe(\n switchMap(() => this._adminSettingsManagementApiService.getLogos()),\n map(logos => (this.logoType === 'LOGO' ? logos.logo : logos.logoDarkMode) ?? null),\n tap(() => this.loading$.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 _adminSettingsManagementApiService: AdminSettingsManagementApiService,\n private readonly _adminSettingsService: AdminSettingsService,\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(this.logo$.subscribe());\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._adminSettingsManagementApiService.uploadLogo(this.logoType, {imageBase64}).subscribe({\n next: () => {\n this.loading$.next(true);\n this._refresh$.next(null);\n this._adminSettingsService.refreshLogos();\n this.formGroup.enable();\n },\n error: () => {\n this.formGroup.enable();\n },\n });\n }\n\n public getImageSrc(imageBase64: string): string {\n const mimeType = this._isSvg(imageBase64) ? 'image/svg+xml' : 'image/png';\n return `data:${mimeType};base64,${imageBase64}`;\n }\n\n public onDeleteButtonClick(): void {\n this.showDeleteConfirmationModal$.next(true);\n }\n\n public onDelete(): void {\n this._adminSettingsManagementApiService.deleteLogo(this.logoType).subscribe(() => {\n this.loading$.next(true);\n this._refresh$.next(null);\n this._adminSettingsService.refreshLogos();\n });\n }\n\n private _isSvg(base64: string): boolean {\n try {\n const decoded = atob(base64.substring(0, 64));\n const trimmed = decoded.trimStart();\n return trimmed.startsWith('<?xml') || trimmed.startsWith('<svg');\n } catch {\n return false;\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-2026 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 logo: logo$ | async,\n loading: loading$ | async,\n } as obs\"\n class=\"admin-settings-logo\"\n [formGroup]=\"formGroup\"\n [cdsLayer]=\"1\"\n>\n <h4 class=\"admin-settings-logo__title\">\n {{ titleTranslationKey | translate }}\n </h4>\n\n @if (obs.loading) {\n <div class=\"loading-container\"><cds-loading></cds-loading></div>\n } @else if (obs.logo) {\n <div class=\"admin-settings-logo__preview\" [attr.data-carbon-theme]=\"previewTheme\">\n <img\n class=\"admin-settings-logo__image\"\n [src]=\"getImageSrc(obs.logo.imageBase64)\"\n />\n </div>\n\n <div class=\"admin-settings-logo__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 } @else {\n <cds-file-uploader\n [accept]=\"ACCEPTED_FILES\"\n [multiple]=\"false\"\n buttonType=\"primary\"\n [title]=\"'adminSettings.appearance.logo.fileUploaderTitle' | translate\"\n [description]=\"'adminSettings.appearance.logo.fileUploaderDescription' | translate\"\n [buttonText]=\"'adminSettings.appearance.logo.fileUploaderButton' | translate\"\n formControlName=\"file\"\n >\n </cds-file-uploader>\n\n <div class=\"admin-settings-logo__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=\"adminSettings.appearance.logo.deleteConfirmationModalText\"\n [showModalSubject$]=\"showDeleteConfirmationModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete()\"\n ></valtimo-confirmation-modal>\n</valtimo-render-in-body>\n","/*\n * Copyright 2015-2026 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 {ChangeDetectionStrategy, Component, OnDestroy, OnInit} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormBuilder, FormGroup, ReactiveFormsModule} from '@angular/forms';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ButtonModule,\n IconModule,\n IconService,\n LayerModule,\n LinkModule,\n LoadingModule,\n NotificationModule,\n} from 'carbon-components-angular';\nimport {Reset16} from '@carbon/icons';\nimport {AdminSettingsService, ColorPickerComponent, ColorPickerI18n} from '@valtimo/components';\nimport {BehaviorSubject, map, Observable, Subscription, switchMap, tap} from 'rxjs';\nimport {AdminSettingsManagementApiService} from '../../services';\nimport {ACCENT_COLOR_DEFINITIONS} from '../../constants';\nimport {AccentColorDefinition} from '../../models';\n\n@Component({\n standalone: true,\n selector: 'valtimo-admin-settings-color',\n templateUrl: './admin-settings-color.component.html',\n styleUrls: ['./admin-settings-color.component.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n LayerModule,\n ButtonModule,\n IconModule,\n LoadingModule,\n LinkModule,\n NotificationModule,\n ColorPickerComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdminSettingsColorComponent implements OnInit, OnDestroy {\n public readonly ACCENT_COLOR_DEFINITIONS: AccentColorDefinition[] = ACCENT_COLOR_DEFINITIONS;\n public readonly DOCS_URL =\n 'https://docs.valtimo.nl/customizing-valtimo/front-end-customization/customizing-carbon-theme';\n public readonly formGroup: FormGroup;\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly saving$ = new BehaviorSubject<boolean>(false);\n\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n private readonly _cssDefaults: {[cssVar: string]: string} = {};\n\n public readonly colors$ = this._refresh$.pipe(\n switchMap(() => this._adminSettingsManagementApiService.getAccentColors()),\n tap(dto => {\n this._patchForm(dto.colors);\n this.loading$.next(false);\n })\n );\n\n public readonly pickrI18n$: Observable<ColorPickerI18n> =\n this._translateService.stream('adminSettings.appearance.colors.pickr').pipe(\n map(pickr => ({\n save: pickr?.save || 'OK',\n cancel: pickr?.cancel || 'Cancel',\n clear: pickr?.clear || 'Clear',\n }))\n );\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly _adminSettingsManagementApiService: AdminSettingsManagementApiService,\n private readonly _adminSettingsService: AdminSettingsService,\n private readonly _formBuilder: FormBuilder,\n private readonly _iconService: IconService,\n private readonly _translateService: TranslateService\n ) {\n this._iconService.register(Reset16);\n this._snapshotCssDefaults();\n this.formGroup = this._buildForm();\n }\n\n public ngOnInit(): void {\n this._subscriptions.add(this.colors$.subscribe());\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onSave(): void {\n const colors: {[key: string]: string} = {};\n\n for (const def of ACCENT_COLOR_DEFINITIONS) {\n const raw = this.formGroup.get(def.cssVar)?.value || this._getCssDefault(def.cssVar);\n colors[def.cssVar] = this._normalizeHex(raw);\n }\n\n this.saving$.next(true);\n this.formGroup.disable();\n\n this._adminSettingsManagementApiService.updateAccentColors({colors}).subscribe({\n next: () => {\n this._adminSettingsService.applyAccentColors(colors);\n this.saving$.next(false);\n this.formGroup.enable();\n this.formGroup.markAsPristine();\n this._adminSettingsService.refreshAccentColors();\n },\n error: () => {\n this.saving$.next(false);\n this.formGroup.enable();\n },\n });\n }\n\n public isDefaultColor(def: AccentColorDefinition): boolean {\n const value = this.formGroup.get(def.cssVar)?.value || '';\n return value.toLowerCase() === this._getCssDefault(def.cssVar).toLowerCase();\n }\n\n public onReset(def: AccentColorDefinition): void {\n this.formGroup.get(def.cssVar)?.setValue(this._getCssDefault(def.cssVar));\n this.formGroup.markAsDirty();\n }\n\n private _buildForm(): FormGroup {\n const controls: {[key: string]: any} = {};\n for (const def of ACCENT_COLOR_DEFINITIONS) {\n controls[def.cssVar] = this._formBuilder.control(this._getCssDefault(def.cssVar));\n }\n return this._formBuilder.group(controls);\n }\n\n private _patchForm(colors: {[key: string]: string}): void {\n const patch: {[key: string]: string} = {};\n for (const def of ACCENT_COLOR_DEFINITIONS) {\n patch[def.cssVar] = colors[def.cssVar] || this._getCssDefault(def.cssVar);\n }\n this.formGroup.patchValue(patch, {emitEvent: false});\n this.formGroup.markAsPristine();\n }\n\n private _snapshotCssDefaults(): void {\n for (const def of ACCENT_COLOR_DEFINITIONS) {\n this._cssDefaults[def.cssVar] =\n this._adminSettingsService.getDefaultAccentColor(def.cssVar);\n }\n }\n\n private _getCssDefault(cssVar: string): string {\n return this._cssDefaults[cssVar] || '';\n }\n\n private _normalizeHex(value: string): string {\n if (!value) return value;\n\n const upper = value.toUpperCase();\n if (upper.length === 9 && upper.endsWith('FF')) {\n return value.substring(0, 7);\n }\n return value;\n }\n}\n","<!--\n ~ Copyright 2015-2026 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 colors: colors$ | async,\n loading: loading$ | async,\n saving: saving$ | async,\n pickrI18n: pickrI18n$ | async,\n } as obs\"\n class=\"admin-settings-color\"\n [formGroup]=\"formGroup\"\n [cdsLayer]=\"1\"\n>\n <h4 class=\"admin-settings-color__title\">\n {{ 'adminSettings.appearance.colors.title' | translate }}\n </h4>\n\n <ng-template #infoNotification>\n <p>\n {{ 'adminSettings.appearance.colors.infoMessage' | translate }}\n\n <a [href]=\"DOCS_URL\" target=\"_blank\" rel=\"noopener noreferrer\" cdsLink>\n {{ 'adminSettings.appearance.colors.infoLinkText' | translate }}\n </a>\n </p>\n </ng-template>\n\n <cds-inline-notification\n [notificationObj]=\"{\n type: 'info',\n title: '',\n template: infoNotification,\n showClose: false,\n lowContrast: true,\n }\"\n ></cds-inline-notification>\n\n @if (obs.loading) {\n <div class=\"loading-container\"><cds-loading></cds-loading></div>\n } @else {\n <div class=\"admin-settings-color__grid\">\n @for (def of ACCENT_COLOR_DEFINITIONS; track def.cssVar) {\n <div class=\"admin-settings-color__field\">\n <valtimo-color-picker\n [formControlName]=\"def.cssVar\"\n [labelTranslationKey]=\"def.labelTranslationKey\"\n [config]=\"{opacity: false, lockOpacity: true}\"\n [i18n]=\"obs.pickrI18n\"\n (clearEvent)=\"onReset(def)\"\n ></valtimo-color-picker>\n\n <button\n cdsButton=\"ghost\"\n [disabled]=\"isDefaultColor(def)\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onReset(def)\"\n class=\"admin-settings-color__reset\"\n >\n <svg cdsIcon=\"reset\" size=\"16\"></svg>\n </button>\n </div>\n }\n </div>\n\n <div class=\"admin-settings-color__buttons\">\n <button\n cdsButton=\"primary\"\n [disabled]=\"formGroup.disabled || formGroup.pristine || obs.saving\"\n (click)=\"onSave()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </div>\n }\n</form>\n","/*\n * Copyright 2015-2026 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 {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MuuriDirectiveModule} from '@valtimo/components';\nimport {AdminSettingsLogoComponent} from '../admin-settings-logo/admin-settings-logo.component';\nimport {AdminSettingsColorComponent} from '../admin-settings-color/admin-settings-color.component';\n\n@Component({\n standalone: true,\n selector: 'valtimo-admin-settings-appearance',\n templateUrl: './admin-settings-appearance.component.html',\n imports: [CommonModule, MuuriDirectiveModule, AdminSettingsLogoComponent, AdminSettingsColorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdminSettingsAppearanceComponent {}\n","<!--\n ~ Copyright 2015-2026 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=\"admin-settings-appearance\">\n <div muuri [columnMinWidth]=\"450\">\n <valtimo-muuri-item>\n <valtimo-admin-settings-logo\n logoType=\"LOGO\"\n titleTranslationKey=\"adminSettings.appearance.logo.title\"\n ></valtimo-admin-settings-logo>\n </valtimo-muuri-item>\n\n <valtimo-muuri-item>\n <valtimo-admin-settings-logo\n logoType=\"LOGO_DARK_MODE\"\n titleTranslationKey=\"adminSettings.appearance.logoDarkMode.title\"\n ></valtimo-admin-settings-logo>\n </valtimo-muuri-item>\n\n <valtimo-muuri-item>\n <valtimo-admin-settings-color></valtimo-admin-settings-color>\n </valtimo-muuri-item>\n </div>\n</div>\n","/*\n * Copyright 2015-2026 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 {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {ToggleModule} from 'carbon-components-angular';\nimport {AdminSettingsService} from '@valtimo/components';\nimport {ConfigService, ValtimoConfigFeatureToggles} from '@valtimo/shared';\nimport {AdminSettingsManagementApiService} from '../../services';\nimport {FEATURE_TOGGLE_DEFINITIONS} from '../../constants';\nimport {FeatureToggleDefinition} from '../../models';\n\n@Component({\n standalone: true,\n selector: 'valtimo-admin-settings-feature-toggles',\n templateUrl: './admin-settings-feature-toggles.component.html',\n styleUrls: ['./admin-settings-feature-toggles.component.scss'],\n imports: [\n CommonModule,\n TranslatePipe,\n ToggleModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdminSettingsFeatureTogglesComponent {\n public readonly TOGGLE_DEFINITIONS = FEATURE_TOGGLE_DEFINITIONS;\n\n public readonly featureToggles$ = this._configService.featureToggles$;\n\n public readonly searchEngine$ = this._adminSettingsManagementApiService.getSearchEngine();\n\n constructor(\n private readonly _adminSettingsManagementApiService: AdminSettingsManagementApiService,\n private readonly _adminSettingsService: AdminSettingsService,\n private readonly _configService: ConfigService\n ) {}\n\n public getEffectiveValue(\n definition: FeatureToggleDefinition,\n toggles: ValtimoConfigFeatureToggles\n ): boolean {\n return !!(toggles as Record<string, boolean | undefined>)[definition.key];\n }\n\n public onToggleChange(definition: FeatureToggleDefinition, newValue: boolean): void {\n this._adminSettingsManagementApiService\n .updateFeatureToggle({key: definition.key, enabled: newValue})\n .subscribe(() => {\n this._adminSettingsService.refreshFeatureToggles();\n });\n }\n\n public onSearchEngineChange(useOpenSearch: boolean): void {\n this._adminSettingsManagementApiService.updateSearchEngine(useOpenSearch).subscribe();\n }\n}\n","<!--\n ~ Copyright 2015-2026 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@if (featureToggles$ | async; as toggles) {\n <div class=\"feature-toggles\">\n <div class=\"feature-toggles__list\">\n @if (searchEngine$ | async; as searchEngine) {\n <div class=\"feature-toggles__item\" [class.feature-toggles__item--disabled]=\"!searchEngine.available\">\n <div class=\"feature-toggles__info\">\n <span class=\"feature-toggles__title\">\n {{ 'adminSettings.featureToggles.searchEngine.useOpenSearch.title' | translate }}\n </span>\n <span class=\"feature-toggles__description\">\n @if (searchEngine.available) {\n {{ 'adminSettings.featureToggles.searchEngine.useOpenSearch.description' | translate }}\n } @else {\n {{ 'adminSettings.featureToggles.searchEngine.useOpenSearch.unavailable' | translate }}\n }\n </span>\n </div>\n <div class=\"feature-toggles__control\">\n <cds-toggle\n [checked]=\"searchEngine.active === 'OPENSEARCH'\"\n [onText]=\"'interface.on' | translate\"\n [offText]=\"'interface.off' | translate\"\n [size]=\"'sm'\"\n [disabled]=\"!searchEngine.available\"\n (checkedChange)=\"onSearchEngineChange($event)\"\n ></cds-toggle>\n </div>\n </div>\n }\n @for (definition of TOGGLE_DEFINITIONS; track definition.key) {\n <div class=\"feature-toggles__item\">\n <div class=\"feature-toggles__info\">\n <span class=\"feature-toggles__title\">\n {{ 'adminSettings.featureToggles.toggles.' + definition.key + '.title' | translate }}\n </span>\n\n <span class=\"feature-toggles__description\">\n {{ 'adminSettings.featureToggles.toggles.' + definition.key + '.description' | translate }}\n </span>\n </div>\n\n <div class=\"feature-toggles__control\">\n <cds-toggle\n [checked]=\"getEffectiveValue(definition, toggles)\"\n [onText]=\"'interface.on' | translate\"\n [offText]=\"'interface.off' | translate\"\n [size]=\"'sm'\"\n (checkedChange)=\"onToggleChange(definition, $event)\"\n ></cds-toggle>\n </div>\n </div>\n }\n </div>\n </div>\n}\n","/*\n * Copyright 2015-2026 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 {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {TabsModule} from 'carbon-components-angular';\nimport {map} from 'rxjs';\nimport {ADMIN_SETTINGS_TABS} from '../../constants';\nimport {AdminSettingsAppearanceComponent} from '../admin-settings-appearance/admin-settings-appearance.component';\nimport {AdminSettingsFeatureTogglesComponent} from '../admin-settings-feature-toggles/admin-settings-feature-toggles.component';\n\n@Component({\n standalone: true,\n selector: 'valtimo-admin-settings',\n templateUrl: './admin-settings.component.html',\n styleUrls: ['./admin-settings.component.scss'],\n imports: [\n CommonModule,\n TranslatePipe,\n TabsModule,\n AdminSettingsAppearanceComponent,\n AdminSettingsFeatureTogglesComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdminSettingsComponent {\n public readonly ADMIN_SETTINGS_TABS = ADMIN_SETTINGS_TABS;\n\n public readonly activeTabKey$ = this._route.params.pipe(\n map(params => params['tabKey'] || ADMIN_SETTINGS_TABS.APPEARANCE)\n );\n\n constructor(\n private readonly _route: ActivatedRoute,\n private readonly _router: Router\n ) {}\n\n public switchTab(tabKey: string): void {\n this._router.navigate(['..', tabKey], {relativeTo: this._route});\n }\n}\n","<!--\n ~ /*\n ~ * Copyright 2015-2026 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@if (activeTabKey$ | async; as activeTabKey) {\n <cds-tabs type=\"line\">\n @if ({active: activeTabKey === ADMIN_SETTINGS_TABS.APPEARANCE}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'adminSettings.tabs.appearance' | translate\"\n (selected)=\"switchTab(ADMIN_SETTINGS_TABS.APPEARANCE)\"\n >\n @if (obs.active) {\n <valtimo-admin-settings-appearance></valtimo-admin-settings-appearance>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === ADMIN_SETTINGS_TABS.FEATURE_TOGGLES}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'adminSettings.tabs.featureToggles' | translate\"\n (selected)=\"switchTab(ADMIN_SETTINGS_TABS.FEATURE_TOGGLES)\"\n >\n @if (obs.active) {\n <valtimo-admin-settings-feature-toggles></valtimo-admin-settings-feature-toggles>\n }\n </cds-tab>\n }\n\n </cds-tabs>\n}\n","/*\n * Copyright 2015-2026 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 {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormBuilder, FormGroup, ReactiveFormsModule} from '@angular/forms';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ButtonModule,\n CheckboxModule,\n DatePickerInputModule,\n DatePickerModule,\n DropdownModule,\n LayerModule,\n ListItem,\n ModalModule,\n} from 'carbon-components-angular';\nimport {TooltipIconModule, ValtimoCdsModalDirective} from '@valtimo/components';\nimport {StartReindexRequestDto} from '../../models';\n\n@Component({\n standalone: true,\n selector: 'valtimo-start-reindex-modal',\n templateUrl: './start-reindex-modal.component.html',\n styleUrls: ['./start-reindex-modal.component.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n ModalModule,\n ValtimoCdsModalDirective,\n ButtonModule,\n CheckboxModule,\n DatePickerInputModule,\n DatePickerModule,\n DropdownModule,\n LayerModule,\n TooltipIconModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StartReindexModalComponent {\n @Input() public open = false;\n @Input() public documentDefinitions: ListItem[] = [];\n\n @Output() public readonly closeEvent = new EventEmitter<StartReindexRequestDto | null>();\n\n public readonly formGroup: FormGroup = this._fb.group({\n pruneOrphans: [false],\n documentDefinitionName: [null],\n modifiedAfter: [null],\n });\n\n constructor(private readonly _fb: FormBuilder) {}\n\n public onDateSelected(event: string[]): void {\n const dateValue = event?.[0] || null;\n this.formGroup.patchValue({modifiedAfter: dateValue});\n }\n\n public onCancel(): void {\n this._resetForm();\n this.closeEvent.emit(null);\n }\n\n public onSubmit(): void {\n const request = this._buildRequest();\n this._resetForm();\n this.closeEvent.emit(request);\n }\n\n private _buildRequest(): StartReindexRequestDto {\n const formValue = this.formGroup.value;\n const request: StartReindexRequestDto = {};\n\n if (formValue.pruneOrphans) {\n request.pruneOrphans = true;\n }\n\n if (formValue.documentDefinitionName?.value) {\n request.documentDefinitionName = formValue.documentDefinitionName.value;\n }\n\n if (formValue.modifiedAfter) {\n request.modifiedAfter = this._formatDateToIso(formValue.modifiedAfter);\n }\n\n return request;\n }\n\n private _formatDateToIso(date: string | Date): string {\n if (date instanceof Date) {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}T00:00:00`;\n }\n const parts = date.split('-');\n if (parts.length === 3) {\n const [day, month, year] = parts;\n return `${year}-${month}-${day}T00:00:00`;\n }\n return date;\n }\n\n private _resetForm(): void {\n this.formGroup.reset({\n pruneOrphans: false,\n documentDefinitionName: null,\n modifiedAfter: null,\n });\n }\n}\n","<!--\n ~ Copyright 2015-2026 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 *ngIf=\"open\" [open]=\"open\" size=\"sm\" (close)=\"onCancel()\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>{{ 'adminSettings.opensearch.reindex.startModalTitle' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"formGroup\" class=\"start-reindex-form\">\n <cds-checkbox formControlName=\"pruneOrphans\">\n <span class=\"label-with-tooltip\">\n {{ 'adminSettings.opensearch.reindex.pruneOrphans' | translate }}\n <v-tooltip-icon [tooltip]=\"'adminSettings.opensearch.reindex.tooltips.pruneOrphans' | translate\"></v-tooltip-icon>\n </span>\n </cds-checkbox>\n\n <cds-dropdown\n [label]=\"'adminSettings.opensearch.reindex.documentDefinitionName' | translate\"\n [placeholder]=\"'adminSettings.opensearch.reindex.documentDefinitionPlaceholder' | translate\"\n formControlName=\"documentDefinitionName\"\n >\n <cds-dropdown-list [items]=\"documentDefinitions\"></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-date-picker\n [label]=\"'adminSettings.opensearch.reindex.modifiedAfter' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected($event)\"\n ></cds-date-picker>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" (click)=\"onSubmit()\">\n {{ 'adminSettings.opensearch.reindex.startButton' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2026 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 {ChangeDetectionStrategy, Component, OnDestroy, OnInit} from '@angular/core';\nimport {CommonModule, DatePipe} from '@angular/common';\nimport {Router} from '@angular/router';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n BehaviorSubject,\n finalize,\n interval,\n map,\n merge,\n Observable,\n of,\n shareReplay,\n startWith,\n Subject,\n switchMap,\n take,\n takeUntil,\n takeWhile,\n} from 'rxjs';\nimport {\n ButtonModule,\n IconModule,\n IconService,\n ListItem,\n LoadingModule,\n ProgressBarModule,\n TagModule,\n} from 'carbon-components-angular';\nimport {Launch16} from '@carbon/icons';\nimport {CarbonListModule, ColumnConfig, Pagination, TooltipIconModule, ViewType} from '@valtimo/components';\nimport {Page} from '@valtimo/shared';\nimport {AdminSettingsManagementApiService} from '../../services';\nimport {ReindexStatusDto, StartReindexRequestDto} from '../../models';\nimport {DocumentService} from '@valtimo/document';\nimport {StartReindexModalComponent} from '../start-reindex-modal/start-reindex-modal.component';\n\n@Component({\n standalone: true,\n selector: 'valtimo-admin-settings-opensearch',\n templateUrl: './admin-settings-opensearch.component.html',\n styleUrls: ['./admin-settings-opensearch.component.scss'],\n imports: [\n CommonModule,\n DatePipe,\n TranslateModule,\n ButtonModule,\n IconModule,\n LoadingModule,\n ProgressBarModule,\n TagModule,\n CarbonListModule,\n StartReindexModalComponent,\n TooltipIconModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdminSettingsOpensearchComponent implements OnInit, OnDestroy {\n private readonly _destroy$ = new Subject<void>();\n private readonly _manualRefresh$ = new BehaviorSubject<void>(undefined);\n private readonly _silentRefresh$ = new Subject<void>();\n\n public readonly fields: ColumnConfig[] = [\n {key: 'statusTag', label: 'adminSettings.opensearch.reindex.columns.status', viewType: ViewType.TAGS},\n {key: 'startedOn', label: 'adminSettings.opensearch.reindex.columns.startedOn', viewType: ViewType.DATE},\n {key: 'finishedOn', label: 'adminSettings.opensearch.reindex.columns.finishedOn', viewType: ViewType.DATE},\n {key: 'progress', label: 'adminSettings.opensearch.reindex.columns.progress', viewType: ViewType.TEXT},\n ];\n\n public pagination: Pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n };\n\n public readonly showModal$ = new BehaviorSubject<boolean>(false);\n public readonly startingReindex$ = new BehaviorSubject<boolean>(false);\n public readonly loading$ = new BehaviorSubject<boolean>(false);\n\n public documentDefinitions$: Observable<ListItem[]>;\n\n public readonly runs$: Observable<Page<ReindexStatusDto>> = merge(\n this._manualRefresh$.pipe(\n switchMap(() => {\n this.loading$.next(true);\n return this._apiService.getReindexRuns(this.pagination.page - 1, this.pagination.size).pipe(\n finalize(() => this.loading$.next(false))\n );\n })\n ),\n this._silentRefresh$.pipe(\n switchMap(() => this._apiService.getReindexRuns(this.pagination.page - 1, this.pagination.size))\n )\n ).pipe(shareReplay(1));\n\n public readonly tableItems$: Observable<any[]> = this.runs$.pipe(\n switchMap(page => {\n this.pagination = {...this.pagination, collectionSize: page.totalElements};\n if (page.content.length === 0) {\n return of([]);\n }\n const statusKeys = page.content.map(run => `adminSettings.opensearch.reindex.statuses.${run.status}`);\n return this._translateService.get(statusKeys).pipe(\n map(translations => page.content.map(run => ({\n ...run,\n progress: `${run.processedCount} / ${run.totalCount}`,\n statusTag: {\n content: translations[`adminSettings.opensearch.reindex.statuses.${run.status}`],\n type: this._getStatusTagType(run.status),\n },\n })))\n );\n })\n );\n\n public readonly hasRunningRun$: Observable<boolean> = this.runs$.pipe(\n map(page => page.content.some(run => run.status === 'RUNNING'))\n );\n\n constructor(\n private readonly _apiService: AdminSettingsManagementApiService,\n private readonly _documentService: DocumentService,\n private readonly _translateService: TranslateService,\n private readonly _router: Router,\n private readonly _iconService: IconService\n ) {\n this._iconService.register(Launch16);\n }\n\n public ngOnInit(): void {\n this.documentDefinitions$ = this._documentService.queryDefinitionsForManagement().pipe(\n switchMap(page =>\n this._translateService.get('adminSettings.opensearch.reindex.allDocumentDefinitions').pipe(\n map(allLabel => [\n {content: allLabel, value: null, selected: false},\n ...page.content.map(def => ({\n content: def.id.name,\n value: def.id.name,\n selected: false,\n })),\n ])\n )\n ),\n startWith([])\n );\n\n this.hasRunningRun$\n .pipe(\n switchMap(hasRunning => {\n if (!hasRunning) return [];\n return interval(3000).pipe(\n takeWhile(() => true),\n takeUntil(this._destroy$)\n );\n }),\n takeUntil(this._destroy$)\n )\n .subscribe(() => this._silentRefresh$.next());\n }\n\n public onPageChange(page: number): void {\n this.pagination = {...this.pagination, page};\n this._manualRefresh$.next();\n }\n\n public onPageSizeChange(size: number): void {\n this.pagination = {...this.pagination, size, page: 1};\n this._manualRefresh$.next();\n }\n\n public openModal(): void {\n this.showModal$.next(true);\n }\n\n public onModalClose(request: StartReindexRequestDto | null): void {\n this.showModal$.next(false);\n if (!request) return;\n\n this.startingReindex$.next(true);\n this._apiService\n .startReindex(request)\n .pipe(\n take(1),\n finalize(() => this.startingReindex$.next(false))\n )\n .subscribe({\n next: () => this._manualRefresh$.next(),\n error: err => {\n if (err.status === 409) {\n this._manualRefresh$.next();\n }\n },\n });\n }\n\n private _getStatusTagType(status: string): string {\n switch (status) {\n case 'RUNNING':\n return 'blue';\n case 'COMPLETED':\n return 'green';\n case 'FAILED':\n return 'red';\n case 'STOPPED':\n return 'gray';\n default:\n return 'gray';\n }\n }\n\n public navigateToLogs(run: ReindexStatusDto): void {\n const afterTimestamp = new Date(new Date(run.startedOn).getTime() - 5000).toISOString();\n const beforeTimestamp = run.finishedOn\n ? new Date(new Date(run.finishedOn).getTime() + 5000).toISOString()\n : new Date().toISOString();\n\n this._router.navigate(['/logging'], {\n queryParams: {\n level: 'ERROR',\n afterTimestamp,\n beforeTimestamp,\n },\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","<!--\n ~ Copyright 2015-2026 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=\"opensearch-reindex\"\n *ngIf=\"{\n items: tableItems$ | async,\n loading: loading$ | async,\n starting: startingReindex$ | async,\n documentDefinitions: documentDefinitions$ | async,\n showModal: showModal$ | async,\n hasRunning: hasRunningRun$ | async\n } as obs\"\n>\n <valtimo-carbon-list\n [header]=\"false\"\n [items]=\"obs.items || []\"\n [fields]=\"fields\"\n [loading]=\"obs.loading\"\n [pagination]=\"pagination\"\n [expandedRowTemplate]=\"expandedRowTemplate\"\n [expandedRowKey]=\"'runId'\"\n (paginationClicked)=\"onPageChange($event)\"\n (paginationSet)=\"onPageSizeChange($event)\"\n >\n <ng-container header>\n {{ 'adminSettings.opensearch.reindex.title' | translate }}\n </ng-container>\n\n <div carbonToolbarContent>\n <button\n cdsButton=\"primary\"\n [disabled]=\"obs.hasRunning || obs.starting\"\n (click)=\"openModal()\"\n >\n @if (obs.starting) {\n <cds-loading size=\"sm\"></cds-loading>\n }\n {{ 'adminSettings.opensearch.reindex.startButton' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n\n <valtimo-no-results\n title=\"{{ 'adminSettings.opensearch.reindex.noResults.title' | translate }}\"\n description=\"{{ 'adminSettings.opensearch.reindex.noResults.description' | translate }}\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-start-reindex-modal\n [open]=\"obs.showModal\"\n [documentDefinitions]=\"obs.documentDefinitions\"\n (closeEvent)=\"onModalClose($event)\"\n ></valtimo-start-reindex-modal>\n</div>\n\n<ng-template #expandedRowTemplate let-data=\"data\">\n <div class=\"opensearch-reindex__expanded\">\n <span class=\"opensearch-reindex__label\">{{ 'adminSettings.opensearch.reindex.started' | translate }}</span>\n <span class=\"opensearch-reindex__value\">{{ data.startedOn | date:'medium' }}</span>\n\n <span class=\"opensearch-reindex__label\">{{ 'adminSettings.opensearch.reindex.finished' | translate }}</span>\n <span class=\"opensearch-reindex__value\">{{ data.finishedOn ? (data.finishedOn | date:'medium') : '-' }}</span>\n\n <span class=\"opensearch-reindex__label\">{{ 'adminSettings.opensearch.reindex.documentDefinitionName' | translate }}</span>\n <span class=\"opensearch-reindex__value\">{{ data.scope?.documentDefinitionName || '-' }}</span>\n\n <span class=\"opensearch-reindex__label\">{{ 'adminSettings.opensearch.reindex.pruneOrphans' | translate }}</span>\n <span class=\"opensearch-reindex__value opensearch-reindex__value-with-tooltip\">\n {{ data.scope?.pruneOrphans ? ('interface.yes' | translate) : ('interface.no' | translate) }}\n <v-tooltip-icon [tooltip]=\"'adminSettings.opensearch.reindex.tooltips.pruneOrphans' | translate\"></v-tooltip-icon>\n </span>\n\n <span class=\"opensearch-reindex__label\">{{ 'adminSettings.opensearch.reindex.modifiedAfter' | translate }}</span>\n <span class=\"opensearch-reindex__value\">{{ data.scope?.modifiedAfter ? (data.scope.modifiedAfter | date:'medium') : '-' }}</span>\n\n <div class=\"opensearch-reindex__results-column\">\n <div class=\"opensearch-reindex__progress\">\n <span class=\"opensearch-reindex__progress-label\">\n {{ 'adminSettings.opensearch.reindex.reindexing' | translate }}\n </span>\n <cds-progress-bar\n [value]=\"data.totalCount > 0 ? (data.processedCount / data.totalCount) * 100 : 0\"\n [status]=\"data.status === 'RUNNING' && !data.pruningPhase ? 'active' : (data.status === 'COMPLETED' ? 'finished' : (data.status === 'RUNNING' ? 'finished' : 'error'))\"\n ></cds-progress-bar>\n <div class=\"opensearch-reindex__progress-footer\">\n <span>{{ 'adminSettings.opensearch.reindex.processed' | translate:{current: data.processedCount, total: data.totalCount} }}</span>\n <span>{{ 'adminSettings.opensearch.reindex.skipped' | translate }}: {{ data.skippedCount || 0 }}</span>\n </div>\n </div>\n\n @if (data.pruningPhase || data.pruneTotalCount) {\n <div class=\"opensearch-reindex__progress\">\n <span class=\"opensearch-reindex__progress-label\">\n {{ 'adminSettings.opensearch.reindex.pruning' | translate }}\n <v-tooltip-icon [tooltip]=\"'adminSettings.opensearch.reindex.tooltips.pruned' | translate\"></v-tooltip-icon>\n </span>\n <cds-progress-bar\n [value]=\"data.pruneTotalCount > 0 ? (data.pruneCheckedCount / data.pruneTotalCount) * 100 : 0\"\n [status]=\"data.pruningPhase ? 'active' : (data.status === 'COMPLETED' ? 'finished' : 'error')\"\n ></cds-progress-bar>\n <div class=\"opensearch-reindex__progress-footer\">\n <span>{{ 'adminSettings.opensearch.reindex.processed' | translate:{current: data.pruneCheckedCount, total: data.pruneTotalCount || 0} }}</span>\n <span>{{ 'adminSettings.opensearch.reindex.pruningProgress' | translate:{removed: data.prunedCount || 0} }}</span>\n </div>\n </div>\n }\n\n @if (data.status === 'FAILED') {\n <a class=\"opensearch-reindex__error-link\" (click)=\"navigateToLogs(data)\">\n {{ 'adminSettings.opensearch.reindex.viewErrorLogs' | translate }}\n <svg cdsIcon=\"launch\" size=\"16\"></svg>\n </a>\n }\n </div>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2026 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 {AdminSettingsComponent} from './components/admin-settings/admin-settings.component';\nimport {AdminSettingsOpensearchComponent} from './components/admin-settings-opensearch/admin-settings-opensearch.component';\nimport {ADMIN_SETTINGS_TABS} from './constants';\n\nconst routes: Routes = [\n {\n path: 'admin-settings',\n redirectTo: `admin-settings/${ADMIN_SETTINGS_TABS.APPEARANCE}`,\n pathMatch: 'full',\n },\n {\n path: 'admin-settings/:tabKey',\n component: AdminSettingsComponent,\n canActivate: [AuthGuardService],\n data: {title: 'adminSettings.title', roles: [ROLE_ADMIN]},\n },\n {\n path: 'opensearch',\n component: AdminSettingsOpensearchComponent,\n canActivate: [AuthGuardService],\n data: {title: 'adminSettings.opensearch.title', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AdminSettingsRouting {}\n","/*\n * Copyright 2015-2026 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 {AdminSettingsRouting} from './admin-settings-routing';\nimport {AdminSettingsComponent} from './components/admin-settings/admin-settings.component';\n\n@NgModule({\n declarations: [],\n imports: [AdminSettingsRouting, AdminSettingsComponent],\n providers: [],\n})\nexport class AdminSettingsModule {}\n","/*\n * Copyright 2015-2026 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\ninterface AccentColorsDto {\n colors: {[key: string]: string};\n}\n\ninterface AccentColorDefinition {\n cssVar: string;\n labelTranslationKey: string;\n}\n\nexport {AccentColorsDto, AccentColorDefinition};\n","/*\n * Copyright 2015-2026 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 {ValtimoConfigFeatureToggles} from '@valtimo/shared';\n\ninterface FeatureToggleOverridesDto {\n overrides: {[key: string]: boolean};\n}\n\ninterface UpdateFeatureToggleDto {\n key: string;\n enabled: boolean;\n}\n\ninterface FeatureToggleDefinition {\n key: keyof ValtimoConfigFeatureToggles;\n}\n\nexport {FeatureToggleOverridesDto, UpdateFeatureToggleDto, FeatureToggleDefinition};\n","/*\n * Copyright 2015-2026 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\ntype ReindexStatus = 'RUNNING' | 'COMPLETED' | 'FAILED' | 'STOPPED';\n\ninterface ReindexScope {\n pruneOrphans?: boolean;\n documentDefinitionName?: string;\n modifiedBefore?: string;\n modifiedAfter?: string;\n pageSize?: number;\n resumeRunId?: string;\n documentIds?: string[];\n}\n\ninterface ReindexStatusDto {\n runId: string;\n status: ReindexStatus;\n running: boolean;\n scope: ReindexScope | null;\n totalCount: number;\n processedCount: number;\n skippedCount: number;\n prunedCount: number;\n pruneCheckedCount: number;\n pruneTotalCount: number | null;\n pruningPhase: boolean;\n startedOn: string;\n finishedOn: string | null;\n elapsedSeconds: number;\n error: string | null;\n}\n\ninterface StartReindexRequestDto {\n pruneOrphans?: boolean;\n documentDefinitionName?: string;\n modifiedAfter?: string;\n}\n\ninterface StartReindexResponseDto {\n status: string;\n runId: string;\n}\n\nexport {\n ReindexStatus,\n ReindexScope,\n ReindexStatusDto,\n StartReindexRequestDto,\n StartReindexResponseDto,\n};\n","/*\n * Copyright 2015-2026 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 interface SearchEngineDto {\n available: boolean;\n active: 'OPENSEARCH' | 'POSTGRES';\n}\n\nexport interface UpdateSearchEngineDto {\n active: 'OPENSEARCH' | 'POSTGRES';\n}\n","/*\n * Copyright 2015-2026 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 './accent-colors.model';\nexport * from './feature-toggle.model';\nexport * from './reindex.model';\nexport * from './search-engine.model';\n","/*\n * Copyright 2015-2026 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 './lib/admin-settings.module';\nexport * from './lib/services';\nexport * from './lib/constants';\nexport * from './lib/models';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AdminSettingsManagementApiService","i2","i5","i1","i3","i4","i7"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@valtimo/admin-settings",
3
3
  "license": "EUPL-1.2",
4
- "version": "13.42.0",
4
+ "version": "13.43.0",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "19.2.25",
7
7
  "@angular/core": "19.2.25"