@valtimo/plugin 13.6.0 → 13.8.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.
Files changed (34) hide show
  1. package/fesm2022/valtimo-plugin.mjs +703 -199
  2. package/fesm2022/valtimo-plugin.mjs.map +1 -1
  3. package/lib/plugins/besluiten-api/besluiten-api-plugin.module.d.ts +6 -5
  4. package/lib/plugins/besluiten-api/besluiten-api-plugin.module.d.ts.map +1 -1
  5. package/lib/plugins/besluiten-api/besluiten-api-plugin.specification.d.ts.map +1 -1
  6. package/lib/plugins/besluiten-api/components/get-besluit/get-besluit-configuration.component.d.ts +24 -0
  7. package/lib/plugins/besluiten-api/components/get-besluit/get-besluit-configuration.component.d.ts.map +1 -0
  8. package/lib/plugins/besluiten-api/models/config.d.ts +5 -1
  9. package/lib/plugins/besluiten-api/models/config.d.ts.map +1 -1
  10. package/lib/plugins/zaken-api/components/create-zaaknotitie/create-zaaknotitie-configuration.component.d.ts +26 -0
  11. package/lib/plugins/zaken-api/components/create-zaaknotitie/create-zaaknotitie-configuration.component.d.ts.map +1 -0
  12. package/lib/plugins/zaken-api/components/patch-zaak/patch-zaak-configuration.component.d.ts +9 -5
  13. package/lib/plugins/zaken-api/components/patch-zaak/patch-zaak-configuration.component.d.ts.map +1 -1
  14. package/lib/plugins/zaken-api/components/patch-zaaknotitie/patch-zaaknotitie-configuration.component.d.ts +45 -0
  15. package/lib/plugins/zaken-api/components/patch-zaaknotitie/patch-zaaknotitie-configuration.component.d.ts.map +1 -0
  16. package/lib/plugins/zaken-api/components/set-zaak-status/set-zaak-status-configuration.component.d.ts +3 -1
  17. package/lib/plugins/zaken-api/components/set-zaak-status/set-zaak-status-configuration.component.d.ts.map +1 -1
  18. package/lib/plugins/zaken-api/components/zaken-api-configuration/zaken-api-configuration.component.d.ts +9 -4
  19. package/lib/plugins/zaken-api/components/zaken-api-configuration/zaken-api-configuration.component.d.ts.map +1 -1
  20. package/lib/plugins/zaken-api/models/config.d.ts +26 -2
  21. package/lib/plugins/zaken-api/models/config.d.ts.map +1 -1
  22. package/lib/plugins/zaken-api/models/patch-zaak-properties.d.ts.map +1 -1
  23. package/lib/plugins/zaken-api/models/patch-zaaknotitie-properties.d.ts +3 -0
  24. package/lib/plugins/zaken-api/models/patch-zaaknotitie-properties.d.ts.map +1 -0
  25. package/lib/plugins/zaken-api/models/zaaknotificatie-statuses.d.ts +2 -0
  26. package/lib/plugins/zaken-api/models/zaaknotificatie-statuses.d.ts.map +1 -0
  27. package/lib/plugins/zaken-api/models/zaaknotificatie-types.d.ts +2 -0
  28. package/lib/plugins/zaken-api/models/zaaknotificatie-types.d.ts.map +1 -0
  29. package/lib/plugins/zaken-api/zaken-api-plugin.module.d.ts +24 -22
  30. package/lib/plugins/zaken-api/zaken-api-plugin.module.d.ts.map +1 -1
  31. package/lib/plugins/zaken-api/zaken-api-plugin.specification.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/public-api.d.ts +4 -0
  34. package/public-api.d.ts.map +1 -1
@@ -14,7 +14,7 @@ import { RouterModule } from '@angular/router';
14
14
  import * as i1$1 from '@angular/common';
15
15
  import { CommonModule } from '@angular/common';
16
16
  import * as i2$2 from '@valtimo/components';
17
- import { ParagraphModule, FormModule, InputModule, ValuePathSelectorPrefix, SelectModule, CarbonMultiInputModule, CARBON_THEME, CurrentCarbonTheme, InputLabelModule, RadioModule, VModalComponent, MultiInputFormModule, TooltipIconModule, ValtimoCdsModalDirective, VModalModule, DatePickerModule as DatePickerModule$1 } from '@valtimo/components';
17
+ import { ParagraphModule, FormModule, InputModule, ValuePathSelectorPrefix, SelectModule, CarbonMultiInputModule, CARBON_THEME, CurrentCarbonTheme, InputLabelModule, RadioModule, ReadOnlyDirective, VModalComponent, MultiInputFormModule, TooltipIconModule, ValtimoCdsModalDirective, VModalModule, DatePickerModule as DatePickerModule$1 } from '@valtimo/components';
18
18
  import { validate } from 'uuid';
19
19
  import * as i1$3 from 'carbon-components-angular';
20
20
  import { ToggleModule, LoadingModule, ButtonModule, DialogModule, IconModule, DatePickerInputModule, DatePickerModule, NotificationModule, TimePickerModule, ModalModule, InputModule as InputModule$1 } from 'carbon-components-angular';
@@ -2892,8 +2892,6 @@ class ZakenApiConfigurationComponent {
2892
2892
  this.pluginTranslationService = pluginTranslationService;
2893
2893
  this.valid = new EventEmitter();
2894
2894
  this.configuration = new EventEmitter();
2895
- this.formValue$ = new BehaviorSubject(null);
2896
- this.valid$ = new BehaviorSubject(false);
2897
2895
  this.authenticationPluginSelectItems$ = combineLatest([
2898
2896
  this.pluginManagementService.getPluginConfigurationsByCategory('zaken-api-authentication'),
2899
2897
  this.translateService.stream('key'),
@@ -2901,26 +2899,54 @@ class ZakenApiConfigurationComponent {
2901
2899
  id: configuration.id,
2902
2900
  text: `${configuration.title} - ${this.pluginTranslationService.instant('title', configuration.pluginDefinition.key)}`,
2903
2901
  }))));
2902
+ this.noteEventListenerEnabled$ = new BehaviorSubject(false);
2903
+ this.formValue$ = new BehaviorSubject(null);
2904
+ this.valid$ = new BehaviorSubject(false);
2904
2905
  }
2905
2906
  ngOnInit() {
2907
+ this.initNoteEventListenerEnabled();
2908
+ this.openEventListenerEnabledSubscription();
2906
2909
  this.openSaveSubscription();
2907
2910
  }
2908
2911
  ngOnDestroy() {
2909
- this.saveSubscription?.unsubscribe();
2912
+ this._saveSubscription?.unsubscribe();
2913
+ this._eventListenerEnabledSubscription?.unsubscribe();
2910
2914
  }
2911
2915
  formValueChange(formValue) {
2912
- this.formValue$.next(formValue);
2913
- this.handleValid(formValue);
2916
+ const formValueIncludingToggle = {
2917
+ ...formValue,
2918
+ noteEventListenerEnabled: this.noteEventListenerEnabled$.getValue()
2919
+ };
2920
+ this.formValue$.next(formValueIncludingToggle);
2921
+ this.handleValid(formValueIncludingToggle);
2922
+ }
2923
+ onNoteEventListenerEnabledChange(event) {
2924
+ this.noteEventListenerEnabled$.next(event);
2925
+ }
2926
+ initNoteEventListenerEnabled() {
2927
+ this.prefillConfiguration$.pipe(take(1)).subscribe(configuration => {
2928
+ this.noteEventListenerEnabled$.next(configuration.noteEventListenerEnabled);
2929
+ });
2930
+ }
2931
+ openEventListenerEnabledSubscription() {
2932
+ this._eventListenerEnabledSubscription = this.noteEventListenerEnabled$.subscribe(value => {
2933
+ this.formValueChange(this.formValue$.getValue());
2934
+ });
2914
2935
  }
2915
2936
  handleValid(formValue) {
2916
2937
  const valid = !!(formValue.configurationTitle &&
2917
2938
  formValue.url &&
2918
- formValue.authenticationPluginConfiguration);
2939
+ formValue.authenticationPluginConfiguration &&
2940
+ formValue.noteEventListenerEnabled !== null &&
2941
+ (formValue.noteEventListenerEnabled === false
2942
+ ||
2943
+ formValue.noteEventListenerEnabled === true &&
2944
+ formValue.noteSubject));
2919
2945
  this.valid$.next(valid);
2920
2946
  this.valid.emit(valid);
2921
2947
  }
2922
2948
  openSaveSubscription() {
2923
- this.saveSubscription = this.save$?.subscribe(save => {
2949
+ this._saveSubscription = this.save$.subscribe(() => {
2924
2950
  combineLatest([this.formValue$, this.valid$])
2925
2951
  .pipe(take(1))
2926
2952
  .subscribe(([formValue, valid]) => {
@@ -2931,11 +2957,11 @@ class ZakenApiConfigurationComponent {
2931
2957
  });
2932
2958
  }
2933
2959
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ZakenApiConfigurationComponent, deps: [{ token: PluginManagementService }, { token: i2.TranslateService }, { token: PluginTranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
2934
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: ZakenApiConfigurationComponent, isStandalone: false, selector: "valtimo-zaken-api-configuration", inputs: { save$: "save$", disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"Zaken API Plugin\"\n >\n </v-input>\n <v-input\n name=\"url\"\n [title]=\"'url' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.url\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'urlTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"https://openzaak.example.com/zaken/api/v1/ \"\n >\n </v-input>\n <ng-container\n *ngIf=\"{authenticationPluginSelectItems: authenticationPluginSelectItems$ | async} as authObs\"\n >\n <v-select\n [loading]=\"!authObs.authenticationPluginSelectItems\"\n [items]=\"authObs.authenticationPluginSelectItems\"\n [margin]=\"true\"\n name=\"authenticationPluginConfiguration\"\n [title]=\"'authenticationPluginConfiguration' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.authenticationPluginConfiguration\"\n [required]=\"true\"\n [tooltip]=\"'authenticationPluginConfigurationTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n</v-form>\n", styles: ["/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "invalid", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "clearable", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: PluginTranslatePipe, name: "pluginTranslate" }] }); }
2960
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: ZakenApiConfigurationComponent, isStandalone: false, selector: "valtimo-zaken-api-configuration", inputs: { save$: "save$", disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n noteEventListenerEnabled: noteEventListenerEnabled$ | async\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n placeholder=\"Zaken API Plugin\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [margin]=\"true\"\n [trim]=\"true\"\n >\n </v-input>\n\n <v-input\n name=\"url\"\n placeholder=\"https://openzaak.example.com/zaken/api/v1/ \"\n [title]=\"'url' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'urlTooltip' | pluginTranslate: pluginId | async\"\n [defaultValue]=\"obs.prefill?.url\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [margin]=\"true\"\n >\n </v-input>\n\n <ng-container\n *ngIf=\"{authenticationPluginSelectItems: authenticationPluginSelectItems$ | async} as authObs\"\n >\n <v-select\n name=\"authenticationPluginConfiguration\"\n [title]=\"'authenticationPluginConfiguration' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'authenticationPluginConfigurationTooltip' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [margin]=\"true\"\n [items]=\"authObs.authenticationPluginSelectItems\"\n [loading]=\"!authObs.authenticationPluginSelectItems\"\n [defaultSelectionId]=\"obs.prefill?.authenticationPluginConfiguration\"\n ></v-select>\n </ng-container>\n\n <div class=\"input-toggle--small-margin\">\n <v-input-label\n [title]=\"'noteEventListenerEnabled' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'noteEventListenerEnabledTooltip' | pluginTranslate: pluginId | async\"\n >\n </v-input-label>\n\n <cds-toggle\n [checked]=\"obs.noteEventListenerEnabled\"\n [disabled]=\"obs.disabled\"\n [onText]=\"'noteEventListenerEnabled.toggleOn' | pluginTranslate: pluginId | async\"\n [offText]=\"'noteEventListenerEnabled.toggleOff' | pluginTranslate: pluginId | async\"\n (checkedChange)=\"onNoteEventListenerEnabledChange($event)\"\n ></cds-toggle>\n </div>\n\n <v-input\n *ngIf=\"obs.noteEventListenerEnabled\"\n name=\"noteSubject\"\n [title]=\"'noteSubject' | pluginTranslate: pluginId | async\"\n [defaultValue]=\"obs.prefill?.noteSubject\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [margin]=\"true\"\n [trim]=\"true\"\n >\n </v-input>\n</v-form>\n", styles: [".input-toggle--small-margin{margin-block-end:var(--v-input-small-margin)}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "invalid", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "clearable", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "component", type: i1$3.Toggle, selector: "cds-toggle, ibm-toggle", inputs: ["offText", "onText", "label", "size", "hideLabel", "ariaLabel", "skeleton"] }, { kind: "component", type: i2$2.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "tooltipTranslationKey", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: PluginTranslatePipe, name: "pluginTranslate" }] }); }
2935
2961
  }
2936
2962
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ZakenApiConfigurationComponent, decorators: [{
2937
2963
  type: Component,
2938
- args: [{ standalone: false, selector: 'valtimo-zaken-api-configuration', template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"Zaken API Plugin\"\n >\n </v-input>\n <v-input\n name=\"url\"\n [title]=\"'url' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.url\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'urlTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"https://openzaak.example.com/zaken/api/v1/ \"\n >\n </v-input>\n <ng-container\n *ngIf=\"{authenticationPluginSelectItems: authenticationPluginSelectItems$ | async} as authObs\"\n >\n <v-select\n [loading]=\"!authObs.authenticationPluginSelectItems\"\n [items]=\"authObs.authenticationPluginSelectItems\"\n [margin]=\"true\"\n name=\"authenticationPluginConfiguration\"\n [title]=\"'authenticationPluginConfiguration' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.authenticationPluginConfiguration\"\n [required]=\"true\"\n [tooltip]=\"'authenticationPluginConfigurationTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n</v-form>\n", styles: ["/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
2964
+ args: [{ standalone: false, selector: 'valtimo-zaken-api-configuration', template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n noteEventListenerEnabled: noteEventListenerEnabled$ | async\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n placeholder=\"Zaken API Plugin\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [margin]=\"true\"\n [trim]=\"true\"\n >\n </v-input>\n\n <v-input\n name=\"url\"\n placeholder=\"https://openzaak.example.com/zaken/api/v1/ \"\n [title]=\"'url' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'urlTooltip' | pluginTranslate: pluginId | async\"\n [defaultValue]=\"obs.prefill?.url\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [margin]=\"true\"\n >\n </v-input>\n\n <ng-container\n *ngIf=\"{authenticationPluginSelectItems: authenticationPluginSelectItems$ | async} as authObs\"\n >\n <v-select\n name=\"authenticationPluginConfiguration\"\n [title]=\"'authenticationPluginConfiguration' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'authenticationPluginConfigurationTooltip' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [margin]=\"true\"\n [items]=\"authObs.authenticationPluginSelectItems\"\n [loading]=\"!authObs.authenticationPluginSelectItems\"\n [defaultSelectionId]=\"obs.prefill?.authenticationPluginConfiguration\"\n ></v-select>\n </ng-container>\n\n <div class=\"input-toggle--small-margin\">\n <v-input-label\n [title]=\"'noteEventListenerEnabled' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'noteEventListenerEnabledTooltip' | pluginTranslate: pluginId | async\"\n >\n </v-input-label>\n\n <cds-toggle\n [checked]=\"obs.noteEventListenerEnabled\"\n [disabled]=\"obs.disabled\"\n [onText]=\"'noteEventListenerEnabled.toggleOn' | pluginTranslate: pluginId | async\"\n [offText]=\"'noteEventListenerEnabled.toggleOff' | pluginTranslate: pluginId | async\"\n (checkedChange)=\"onNoteEventListenerEnabledChange($event)\"\n ></cds-toggle>\n </div>\n\n <v-input\n *ngIf=\"obs.noteEventListenerEnabled\"\n name=\"noteSubject\"\n [title]=\"'noteSubject' | pluginTranslate: pluginId | async\"\n [defaultValue]=\"obs.prefill?.noteSubject\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [margin]=\"true\"\n [trim]=\"true\"\n >\n </v-input>\n</v-form>\n", styles: [".input-toggle--small-margin{margin-block-end:var(--v-input-small-margin)}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
2939
2965
  }], ctorParameters: () => [{ type: PluginManagementService }, { type: i2.TranslateService }, { type: PluginTranslationService }], propDecorators: { save$: [{
2940
2966
  type: Input
2941
2967
  }], disabled$: [{
@@ -3166,7 +3192,7 @@ class SetZaakStatusConfigurationComponent {
3166
3192
  this.clearStatusSelection$ = new Subject();
3167
3193
  this.loading$ = new BehaviorSubject(true);
3168
3194
  this.selectedInputOption$ = new BehaviorSubject('selection');
3169
- this.datumStatusGezetSelectedInputOption$ = new BehaviorSubject('selection');
3195
+ this.datumStatusGezetSelectedInputOption$ = new BehaviorSubject('now');
3170
3196
  this.pluginId$ = new BehaviorSubject('');
3171
3197
  this.formValue$ = new BehaviorSubject(null);
3172
3198
  this.valid$ = new BehaviorSubject(false);
@@ -3179,6 +3205,15 @@ class SetZaakStatusConfigurationComponent {
3179
3205
  { value: 'selection', title: selectionTranslation },
3180
3206
  { value: 'text', title: textTranslation },
3181
3207
  ]));
3208
+ this.datePickerInputTypeOptions$ = this.pluginId$.pipe(filter(pluginId => !!pluginId), switchMap(pluginId => combineLatest([
3209
+ this.pluginTranslatePipe.transform('now', pluginId),
3210
+ this.pluginTranslatePipe.transform('selection', pluginId),
3211
+ this.pluginTranslatePipe.transform('text', pluginId),
3212
+ ])), map(([nowTranslation, selectionTranslation, textTranslation]) => [
3213
+ { value: 'now', title: nowTranslation },
3214
+ { value: 'selection', title: selectionTranslation },
3215
+ { value: 'text', title: textTranslation },
3216
+ ]));
3182
3217
  this.theme$ = this.cdsThemeService.currentTheme$.pipe(map((theme) => theme === CurrentCarbonTheme.G10 ? CARBON_THEME.WHITE : CARBON_THEME.G100));
3183
3218
  this._subscriptions = new Subscription();
3184
3219
  this.selectedDate = null;
@@ -3206,6 +3241,10 @@ class SetZaakStatusConfigurationComponent {
3206
3241
  if (updatedFormValue.inputDatumStatusGezetToggle) {
3207
3242
  this.datumStatusGezetSelectedInputOption$.next(updatedFormValue.inputDatumStatusGezetToggle);
3208
3243
  }
3244
+ if (updatedFormValue.inputDatumStatusGezetToggle === 'now') {
3245
+ this.selectedDate = null;
3246
+ this.selectedTime = null;
3247
+ }
3209
3248
  }
3210
3249
  onDateSelected(event) {
3211
3250
  const date = Array.isArray(event) && event[0];
@@ -3219,10 +3258,18 @@ class SetZaakStatusConfigurationComponent {
3219
3258
  this.updateDatumStatusGezet();
3220
3259
  }
3221
3260
  updateDatumStatusGezet() {
3222
- if (!this.selectedDate || !this.selectedTime) {
3261
+ if (!this.selectedDate && !this.selectedTime) {
3223
3262
  return;
3224
3263
  }
3225
- const [hoursStr, minutesStr = '00', secondsStr = '00'] = this.selectedTime.split(':');
3264
+ let hoursStr;
3265
+ let minutesStr;
3266
+ let secondsStr;
3267
+ try {
3268
+ [hoursStr, minutesStr = '00', secondsStr = '00'] = this.selectedTime.split(':');
3269
+ }
3270
+ catch (error) {
3271
+ [hoursStr, minutesStr = '00', secondsStr = '00'] = ['00', '00'];
3272
+ }
3226
3273
  const date = new Date(this.selectedDate);
3227
3274
  const year = date.getFullYear();
3228
3275
  const month = String(date.getMonth() + 1).padStart(2, '0');
@@ -3241,12 +3288,19 @@ class SetZaakStatusConfigurationComponent {
3241
3288
  prefillToday() {
3242
3289
  this._subscriptions.add(this.prefillConfiguration$.subscribe(config => {
3243
3290
  let baseDate;
3244
- try {
3245
- baseDate = flatpickr.formatDate(!!config?.datumStatusGezet ? new Date(config.datumStatusGezet) : new Date(), 'Z');
3291
+ if (config?.datumStatusGezet !== null) {
3292
+ try {
3293
+ baseDate = flatpickr.formatDate(!!config?.datumStatusGezet ? new Date(config.datumStatusGezet) : new Date(), 'Z');
3294
+ this.datumStatusGezetSelectedInputOption$.next('selection');
3295
+ }
3296
+ catch (error) {
3297
+ baseDate = config.datumStatusGezet;
3298
+ this.datumStatusGezetSelectedInputOption$.next('text');
3299
+ }
3246
3300
  }
3247
- catch (error) {
3248
- baseDate = config.datumStatusGezet;
3249
- this.datumStatusGezetSelectedInputOption$.next('text');
3301
+ else {
3302
+ baseDate = null;
3303
+ this.datumStatusGezetSelectedInputOption$.next('now');
3250
3304
  }
3251
3305
  this.selectedDate = baseDate;
3252
3306
  this.selectedTime = this.formatTime(baseDate);
@@ -3291,6 +3345,9 @@ class SetZaakStatusConfigurationComponent {
3291
3345
  .pipe(take(1))
3292
3346
  .subscribe(([formValue, valid]) => {
3293
3347
  if (valid) {
3348
+ if (formValue.inputDatumStatusGezetToggle == 'now') {
3349
+ formValue.datumStatusGezet = null;
3350
+ }
3294
3351
  this.configuration.emit({
3295
3352
  statustoelichting: formValue.statustoelichting,
3296
3353
  statustypeUrl: formValue.statustypeUrl,
@@ -3302,12 +3359,12 @@ class SetZaakStatusConfigurationComponent {
3302
3359
  this._subscriptions.add(saveSub);
3303
3360
  }
3304
3361
  isValidDatumStatusGezet(value) {
3362
+ if (['text', 'now'].includes(this.datumStatusGezetSelectedInputOption$.getValue())) {
3363
+ return true;
3364
+ }
3305
3365
  if (!value) {
3306
3366
  return false;
3307
3367
  }
3308
- if (this.datumStatusGezetSelectedInputOption$.getValue() === 'text') {
3309
- return true;
3310
- }
3311
3368
  const trimmed = value.trim();
3312
3369
  // Required format: YYYY-MM-DDTHH:mm:ssZ
3313
3370
  const regex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/;
@@ -3318,32 +3375,39 @@ class SetZaakStatusConfigurationComponent {
3318
3375
  return !isNaN(date.getTime());
3319
3376
  }
3320
3377
  isDateNotInFuture(value) {
3378
+ if (['text', 'now'].includes(this.datumStatusGezetSelectedInputOption$.getValue())) {
3379
+ return true;
3380
+ }
3321
3381
  if (!value) {
3322
3382
  return false;
3323
3383
  }
3324
- if (this.datumStatusGezetSelectedInputOption$.getValue() === 'text') {
3325
- return true;
3326
- }
3327
3384
  const date = new Date(value);
3328
3385
  const now = new Date();
3329
3386
  const isDateNotInFuture = date.getTime() <= now.getTime();
3330
3387
  this.datePickerInvalid$.next(!isDateNotInFuture);
3331
3388
  return isDateNotInFuture;
3332
3389
  }
3390
+ hasEnteredDateText(value) {
3391
+ if (this.datumStatusGezetSelectedInputOption$.getValue() !== 'text') {
3392
+ return true;
3393
+ }
3394
+ return !value === false;
3395
+ }
3333
3396
  handleValid(formValue) {
3334
3397
  const hasStatusType = !!formValue.statustypeUrl;
3335
3398
  const hasValidDatumStatusGezet = this.isValidDatumStatusGezet(formValue.datumStatusGezet);
3336
3399
  const dateIsNotInFuture = this.isDateNotInFuture(formValue.datumStatusGezet);
3337
- const valid = hasStatusType && hasValidDatumStatusGezet && dateIsNotInFuture;
3400
+ const hasEnteredDateText = this.hasEnteredDateText(formValue.datumStatusGezet);
3401
+ const valid = hasStatusType && hasValidDatumStatusGezet && dateIsNotInFuture && hasEnteredDateText;
3338
3402
  this.valid$.next(valid);
3339
3403
  this.valid.emit(valid);
3340
3404
  }
3341
3405
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SetZaakStatusConfigurationComponent, deps: [{ token: ZakenApiService }, { token: PluginTranslatePipe }, { token: i2$2.CdsThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
3342
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: SetZaakStatusConfigurationComponent, isStandalone: false, selector: "valtimo-set-zaak-status-configuration", inputs: { save$: "save$", disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$", context$: "context$" }, outputs: { valid: "valid", configuration: "configuration" }, providers: [PluginTranslatePipe], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n pluginId: pluginId$ | async,\n selectedInputOption: selectedInputOption$ | async,\n datumStatusGezetSelectedInputOption: datumStatusGezetSelectedInputOption$ | async,\n loading: loading$ | async,\n statusTypeItems: statusTypeSelectItems$ | async,\n context: context$ | async,\n datePickerInvalid: datePickerInvalid$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <v-input\n name=\"statustoelichting\"\n [title]=\"'statustoelichting' | pluginTranslate: obs.pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.statustoelichting\"\n [disabled]=\"obs.disabled\"\n [required]=\"false\"\n [tooltip]=\"'statustoelichtingTooltip' | pluginTranslate: obs.pluginId | async\"\n [fullWidth]=\"true\"\n [placeholder]=\"'statustoelichting' | pluginTranslate: obs.pluginId | async\"\n >\n </v-input>\n\n <v-radio\n name=\"inputDatumStatusGezetToggle\"\n [disabled]=\"obs.disabled\"\n [title]=\"'inputDatumStatusGezetToggle' | pluginTranslate: obs.pluginId | async\"\n [radioValues]=\"inputTypeOptions$ | async\"\n [defaultValue]=\"obs.datumStatusGezetSelectedInputOption\"\n [margin]=\"true\"\n ></v-radio>\n\n <div class=\"date-time-row\" *ngIf=\"obs.datumStatusGezetSelectedInputOption === 'selection'\">\n <cds-date-picker\n [attr.data-carbon-theme]=\"theme$ | async\"\n [label]=\"'logging.search.afterTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n [value]=\"[selectedDate]\"\n [invalid]=\"obs.datePickerInvalid\"\n [invalidText]=\"'datumStatusGezetInvalidText' | pluginTranslate: obs.pluginId | async\"\n (valueChange)=\"onDateSelected($event)\"\n ></cds-date-picker>\n\n <cds-timepicker\n class=\"timepicker\"\n [attr.data-carbon-theme]=\"theme$ | async\"\n [value]=\"selectedTime\"\n [invalid]=\"obs.datePickerInvalid\"\n (valueChange)=\"onTimeSelected($event)\"\n ></cds-timepicker>\n </div>\n\n <v-input\n *ngIf=\"obs.datumStatusGezetSelectedInputOption === 'text'\"\n name=\"datumStatusGezet\"\n [title]=\"'datumStatusGezet' | pluginTranslate: obs.pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.datumStatusGezet\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'datumStatusGezetTooltip' | pluginTranslate: obs.pluginId | async\"\n [fullWidth]=\"true\"\n ></v-input>\n\n <v-radio\n *ngIf=\"obs?.context?.[0] === 'case'\"\n name=\"inputTypeZaakStatusToggle\"\n [disabled]=\"obs.disabled\"\n [title]=\"'inputTypeZaakStatusToggle' | pluginTranslate: obs.pluginId | async\"\n [radioValues]=\"inputTypeOptions$ | async\"\n [defaultValue]=\"selectedInputOption$ | async\"\n [margin]=\"true\"\n >\n </v-radio>\n\n <v-input\n *ngIf=\"obs.selectedInputOption === 'text'\"\n name=\"statustypeUrl\"\n [title]=\"'statustypeUrl' | pluginTranslate: obs.pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.statustypeUrl\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'statustypeUrlTooltip' | pluginTranslate: obs.pluginId | async\"\n [fullWidth]=\"true\"\n >\n </v-input>\n\n <ng-container *ngIf=\"obs.selectedInputOption === 'selection'\">\n <v-select\n [items]=\"obs.statusTypeItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"statustypeUrl\"\n [title]=\"'statustypeUrlSelect' | pluginTranslate: obs.pluginId | async\"\n [disabled]=\"obs.disabled || obs.selectedInputOption === 'text' || !obs.statusTypeItems\"\n [defaultSelectionId]=\"obs.prefill?.statustypeUrl\"\n [required]=\"true\"\n [loading]=\"!obs.statusTypeItems\"\n [tooltip]=\"'statustypeUrlSelectTooltip' | pluginTranslate: obs.pluginId | async\"\n [clearSelectionSubject$]=\"clearStatusSelection$\"\n ></v-select>\n </ng-container>\n </ng-container>\n</v-form>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n", styles: [".loading-container{display:flex;flex-direction:row;justify-content:center;height:100%;width:100%;align-items:center}.date-time-row{display:flex;align-items:flex-start;gap:16px;margin-bottom:34px}.timepicker{margin-top:24px!important;height:48px!important}.date-time-row cds-date-picker,.date-time-row cds-timepicker{display:block}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "invalid", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "clearable", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "component", type: i2$2.RadioComponent, selector: "v-radio", inputs: ["name", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "tooltip", "required", "smallLabel", "rows", "clear$", "radioValues"], outputs: ["valueChange"] }, { kind: "component", type: i1$3.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i1$3.DatePicker, selector: "cds-date-picker, ibm-date-picker", inputs: ["range", "dateFormat", "language", "label", "helperText", "rangeHelperText", "rangeLabel", "placeholder", "ariaLabel", "inputPattern", "id", "value", "theme", "disabled", "readonly", "invalid", "invalidText", "warn", "warnText", "size", "rangeInvalid", "rangeInvalidText", "rangeWarn", "rangeWarnText", "skeleton", "plugins", "flatpickrOptions"], outputs: ["valueChange", "onClose"] }, { kind: "component", type: i1$3.TimePicker, selector: "cds-timepicker, ibm-timepicker", inputs: ["invalid", "invalidText", "label", "hideLabel", "placeholder", "pattern", "id", "disabled", "value", "maxLength", "skeleton", "theme", "size"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: PluginTranslatePipe, name: "pluginTranslate" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
3406
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: SetZaakStatusConfigurationComponent, isStandalone: false, selector: "valtimo-set-zaak-status-configuration", inputs: { save$: "save$", disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$", context$: "context$" }, outputs: { valid: "valid", configuration: "configuration" }, providers: [PluginTranslatePipe], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n pluginId: pluginId$ | async,\n selectedInputOption: selectedInputOption$ | async,\n datumStatusGezetSelectedInputOption: datumStatusGezetSelectedInputOption$ | async,\n loading: loading$ | async,\n statusTypeItems: statusTypeSelectItems$ | async,\n context: context$ | async,\n datePickerInvalid: datePickerInvalid$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <v-input\n name=\"statustoelichting\"\n [title]=\"'statustoelichting' | pluginTranslate: obs.pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.statustoelichting\"\n [disabled]=\"obs.disabled\"\n [required]=\"false\"\n [tooltip]=\"'statustoelichtingTooltip' | pluginTranslate: obs.pluginId | async\"\n [fullWidth]=\"true\"\n [placeholder]=\"'statustoelichting' | pluginTranslate: obs.pluginId | async\"\n >\n </v-input>\n\n <v-radio\n name=\"inputDatumStatusGezetToggle\"\n [disabled]=\"obs.disabled\"\n [title]=\"'inputDatumStatusGezetToggle' | pluginTranslate: obs.pluginId | async\"\n [radioValues]=\"datePickerInputTypeOptions$ | async\"\n [defaultValue]=\"obs.datumStatusGezetSelectedInputOption\"\n [margin]=\"true\"\n ></v-radio>\n\n <div class=\"date-time-row\" *ngIf=\"obs.datumStatusGezetSelectedInputOption === 'selection'\">\n <cds-date-picker\n [attr.data-carbon-theme]=\"theme$ | async\"\n [label]=\"'logging.search.afterTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n [value]=\"[selectedDate]\"\n [invalid]=\"obs.datePickerInvalid\"\n [invalidText]=\"'datumStatusGezetInvalidText' | pluginTranslate: obs.pluginId | async\"\n (valueChange)=\"onDateSelected($event)\"\n ></cds-date-picker>\n\n <cds-timepicker\n class=\"timepicker\"\n [attr.data-carbon-theme]=\"theme$ | async\"\n [value]=\"selectedTime\"\n [invalid]=\"obs.datePickerInvalid\"\n (valueChange)=\"onTimeSelected($event)\"\n ></cds-timepicker>\n </div>\n\n <v-input\n *ngIf=\"obs.datumStatusGezetSelectedInputOption === 'text'\"\n name=\"datumStatusGezet\"\n [title]=\"'datumStatusGezet' | pluginTranslate: obs.pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.datumStatusGezet\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'datumStatusGezetTooltip' | pluginTranslate: obs.pluginId | async\"\n [fullWidth]=\"true\"\n ></v-input>\n\n <v-radio\n *ngIf=\"obs?.context?.[0] === 'case'\"\n name=\"inputTypeZaakStatusToggle\"\n [disabled]=\"obs.disabled\"\n [title]=\"'inputTypeZaakStatusToggle' | pluginTranslate: obs.pluginId | async\"\n [radioValues]=\"inputTypeOptions$ | async\"\n [defaultValue]=\"selectedInputOption$ | async\"\n [margin]=\"true\"\n >\n </v-radio>\n\n <v-input\n *ngIf=\"obs.selectedInputOption === 'text'\"\n name=\"statustypeUrl\"\n [title]=\"'statustypeUrl' | pluginTranslate: obs.pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.statustypeUrl\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'statustypeUrlTooltip' | pluginTranslate: obs.pluginId | async\"\n [fullWidth]=\"true\"\n >\n </v-input>\n\n <ng-container *ngIf=\"obs.selectedInputOption === 'selection'\">\n <v-select\n [items]=\"obs.statusTypeItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"statustypeUrl\"\n [title]=\"'statustypeUrlSelect' | pluginTranslate: obs.pluginId | async\"\n [disabled]=\"obs.disabled || obs.selectedInputOption === 'text' || !obs.statusTypeItems\"\n [defaultSelectionId]=\"obs.prefill?.statustypeUrl\"\n [required]=\"true\"\n [loading]=\"!obs.statusTypeItems\"\n [tooltip]=\"'statustypeUrlSelectTooltip' | pluginTranslate: obs.pluginId | async\"\n [clearSelectionSubject$]=\"clearStatusSelection$\"\n ></v-select>\n </ng-container>\n </ng-container>\n</v-form>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n", styles: [".loading-container{display:flex;flex-direction:row;justify-content:center;height:100%;width:100%;align-items:center}.date-time-row{display:flex;align-items:flex-start;gap:16px;margin-bottom:34px}.timepicker{margin-top:24px!important;height:48px!important}.date-time-row cds-date-picker,.date-time-row cds-timepicker{display:block}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "invalid", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "clearable", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "component", type: i2$2.RadioComponent, selector: "v-radio", inputs: ["name", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "tooltip", "required", "smallLabel", "rows", "clear$", "radioValues"], outputs: ["valueChange"] }, { kind: "component", type: i1$3.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i1$3.DatePicker, selector: "cds-date-picker, ibm-date-picker", inputs: ["range", "dateFormat", "language", "label", "helperText", "rangeHelperText", "rangeLabel", "placeholder", "ariaLabel", "inputPattern", "id", "value", "theme", "disabled", "readonly", "invalid", "invalidText", "warn", "warnText", "size", "rangeInvalid", "rangeInvalidText", "rangeWarn", "rangeWarnText", "skeleton", "plugins", "flatpickrOptions"], outputs: ["valueChange", "onClose"] }, { kind: "component", type: i1$3.TimePicker, selector: "cds-timepicker, ibm-timepicker", inputs: ["invalid", "invalidText", "label", "hideLabel", "placeholder", "pattern", "id", "disabled", "value", "maxLength", "skeleton", "theme", "size"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: PluginTranslatePipe, name: "pluginTranslate" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
3343
3407
  }
3344
3408
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SetZaakStatusConfigurationComponent, decorators: [{
3345
3409
  type: Component,
3346
- args: [{ standalone: false, selector: 'valtimo-set-zaak-status-configuration', providers: [PluginTranslatePipe], template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n pluginId: pluginId$ | async,\n selectedInputOption: selectedInputOption$ | async,\n datumStatusGezetSelectedInputOption: datumStatusGezetSelectedInputOption$ | async,\n loading: loading$ | async,\n statusTypeItems: statusTypeSelectItems$ | async,\n context: context$ | async,\n datePickerInvalid: datePickerInvalid$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <v-input\n name=\"statustoelichting\"\n [title]=\"'statustoelichting' | pluginTranslate: obs.pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.statustoelichting\"\n [disabled]=\"obs.disabled\"\n [required]=\"false\"\n [tooltip]=\"'statustoelichtingTooltip' | pluginTranslate: obs.pluginId | async\"\n [fullWidth]=\"true\"\n [placeholder]=\"'statustoelichting' | pluginTranslate: obs.pluginId | async\"\n >\n </v-input>\n\n <v-radio\n name=\"inputDatumStatusGezetToggle\"\n [disabled]=\"obs.disabled\"\n [title]=\"'inputDatumStatusGezetToggle' | pluginTranslate: obs.pluginId | async\"\n [radioValues]=\"inputTypeOptions$ | async\"\n [defaultValue]=\"obs.datumStatusGezetSelectedInputOption\"\n [margin]=\"true\"\n ></v-radio>\n\n <div class=\"date-time-row\" *ngIf=\"obs.datumStatusGezetSelectedInputOption === 'selection'\">\n <cds-date-picker\n [attr.data-carbon-theme]=\"theme$ | async\"\n [label]=\"'logging.search.afterTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n [value]=\"[selectedDate]\"\n [invalid]=\"obs.datePickerInvalid\"\n [invalidText]=\"'datumStatusGezetInvalidText' | pluginTranslate: obs.pluginId | async\"\n (valueChange)=\"onDateSelected($event)\"\n ></cds-date-picker>\n\n <cds-timepicker\n class=\"timepicker\"\n [attr.data-carbon-theme]=\"theme$ | async\"\n [value]=\"selectedTime\"\n [invalid]=\"obs.datePickerInvalid\"\n (valueChange)=\"onTimeSelected($event)\"\n ></cds-timepicker>\n </div>\n\n <v-input\n *ngIf=\"obs.datumStatusGezetSelectedInputOption === 'text'\"\n name=\"datumStatusGezet\"\n [title]=\"'datumStatusGezet' | pluginTranslate: obs.pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.datumStatusGezet\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'datumStatusGezetTooltip' | pluginTranslate: obs.pluginId | async\"\n [fullWidth]=\"true\"\n ></v-input>\n\n <v-radio\n *ngIf=\"obs?.context?.[0] === 'case'\"\n name=\"inputTypeZaakStatusToggle\"\n [disabled]=\"obs.disabled\"\n [title]=\"'inputTypeZaakStatusToggle' | pluginTranslate: obs.pluginId | async\"\n [radioValues]=\"inputTypeOptions$ | async\"\n [defaultValue]=\"selectedInputOption$ | async\"\n [margin]=\"true\"\n >\n </v-radio>\n\n <v-input\n *ngIf=\"obs.selectedInputOption === 'text'\"\n name=\"statustypeUrl\"\n [title]=\"'statustypeUrl' | pluginTranslate: obs.pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.statustypeUrl\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'statustypeUrlTooltip' | pluginTranslate: obs.pluginId | async\"\n [fullWidth]=\"true\"\n >\n </v-input>\n\n <ng-container *ngIf=\"obs.selectedInputOption === 'selection'\">\n <v-select\n [items]=\"obs.statusTypeItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"statustypeUrl\"\n [title]=\"'statustypeUrlSelect' | pluginTranslate: obs.pluginId | async\"\n [disabled]=\"obs.disabled || obs.selectedInputOption === 'text' || !obs.statusTypeItems\"\n [defaultSelectionId]=\"obs.prefill?.statustypeUrl\"\n [required]=\"true\"\n [loading]=\"!obs.statusTypeItems\"\n [tooltip]=\"'statustypeUrlSelectTooltip' | pluginTranslate: obs.pluginId | async\"\n [clearSelectionSubject$]=\"clearStatusSelection$\"\n ></v-select>\n </ng-container>\n </ng-container>\n</v-form>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n", styles: [".loading-container{display:flex;flex-direction:row;justify-content:center;height:100%;width:100%;align-items:center}.date-time-row{display:flex;align-items:flex-start;gap:16px;margin-bottom:34px}.timepicker{margin-top:24px!important;height:48px!important}.date-time-row cds-date-picker,.date-time-row cds-timepicker{display:block}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
3410
+ args: [{ standalone: false, selector: 'valtimo-set-zaak-status-configuration', providers: [PluginTranslatePipe], template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n pluginId: pluginId$ | async,\n selectedInputOption: selectedInputOption$ | async,\n datumStatusGezetSelectedInputOption: datumStatusGezetSelectedInputOption$ | async,\n loading: loading$ | async,\n statusTypeItems: statusTypeSelectItems$ | async,\n context: context$ | async,\n datePickerInvalid: datePickerInvalid$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <v-input\n name=\"statustoelichting\"\n [title]=\"'statustoelichting' | pluginTranslate: obs.pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.statustoelichting\"\n [disabled]=\"obs.disabled\"\n [required]=\"false\"\n [tooltip]=\"'statustoelichtingTooltip' | pluginTranslate: obs.pluginId | async\"\n [fullWidth]=\"true\"\n [placeholder]=\"'statustoelichting' | pluginTranslate: obs.pluginId | async\"\n >\n </v-input>\n\n <v-radio\n name=\"inputDatumStatusGezetToggle\"\n [disabled]=\"obs.disabled\"\n [title]=\"'inputDatumStatusGezetToggle' | pluginTranslate: obs.pluginId | async\"\n [radioValues]=\"datePickerInputTypeOptions$ | async\"\n [defaultValue]=\"obs.datumStatusGezetSelectedInputOption\"\n [margin]=\"true\"\n ></v-radio>\n\n <div class=\"date-time-row\" *ngIf=\"obs.datumStatusGezetSelectedInputOption === 'selection'\">\n <cds-date-picker\n [attr.data-carbon-theme]=\"theme$ | async\"\n [label]=\"'logging.search.afterTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n [value]=\"[selectedDate]\"\n [invalid]=\"obs.datePickerInvalid\"\n [invalidText]=\"'datumStatusGezetInvalidText' | pluginTranslate: obs.pluginId | async\"\n (valueChange)=\"onDateSelected($event)\"\n ></cds-date-picker>\n\n <cds-timepicker\n class=\"timepicker\"\n [attr.data-carbon-theme]=\"theme$ | async\"\n [value]=\"selectedTime\"\n [invalid]=\"obs.datePickerInvalid\"\n (valueChange)=\"onTimeSelected($event)\"\n ></cds-timepicker>\n </div>\n\n <v-input\n *ngIf=\"obs.datumStatusGezetSelectedInputOption === 'text'\"\n name=\"datumStatusGezet\"\n [title]=\"'datumStatusGezet' | pluginTranslate: obs.pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.datumStatusGezet\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'datumStatusGezetTooltip' | pluginTranslate: obs.pluginId | async\"\n [fullWidth]=\"true\"\n ></v-input>\n\n <v-radio\n *ngIf=\"obs?.context?.[0] === 'case'\"\n name=\"inputTypeZaakStatusToggle\"\n [disabled]=\"obs.disabled\"\n [title]=\"'inputTypeZaakStatusToggle' | pluginTranslate: obs.pluginId | async\"\n [radioValues]=\"inputTypeOptions$ | async\"\n [defaultValue]=\"selectedInputOption$ | async\"\n [margin]=\"true\"\n >\n </v-radio>\n\n <v-input\n *ngIf=\"obs.selectedInputOption === 'text'\"\n name=\"statustypeUrl\"\n [title]=\"'statustypeUrl' | pluginTranslate: obs.pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.statustypeUrl\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'statustypeUrlTooltip' | pluginTranslate: obs.pluginId | async\"\n [fullWidth]=\"true\"\n >\n </v-input>\n\n <ng-container *ngIf=\"obs.selectedInputOption === 'selection'\">\n <v-select\n [items]=\"obs.statusTypeItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"statustypeUrl\"\n [title]=\"'statustypeUrlSelect' | pluginTranslate: obs.pluginId | async\"\n [disabled]=\"obs.disabled || obs.selectedInputOption === 'text' || !obs.statusTypeItems\"\n [defaultSelectionId]=\"obs.prefill?.statustypeUrl\"\n [required]=\"true\"\n [loading]=\"!obs.statusTypeItems\"\n [tooltip]=\"'statustypeUrlSelectTooltip' | pluginTranslate: obs.pluginId | async\"\n [clearSelectionSubject$]=\"clearStatusSelection$\"\n ></v-select>\n </ng-container>\n </ng-container>\n</v-form>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n", styles: [".loading-container{display:flex;flex-direction:row;justify-content:center;height:100%;width:100%;align-items:center}.date-time-row{display:flex;align-items:flex-start;gap:16px;margin-bottom:34px}.timepicker{margin-top:24px!important;height:48px!important}.date-time-row cds-date-picker,.date-time-row cds-timepicker{display:block}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
3347
3411
  }], ctorParameters: () => [{ type: ZakenApiService }, { type: PluginTranslatePipe }, { type: i2$2.CdsThemeService }], propDecorators: { save$: [{
3348
3412
  type: Input
3349
3413
  }], disabled$: [{
@@ -4157,6 +4221,195 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
4157
4221
  type: Output
4158
4222
  }] } });
4159
4223
 
4224
+ /*
4225
+ * Copyright 2015-2025 Ritense BV, the Netherlands.
4226
+ *
4227
+ * Licensed under EUPL, Version 1.2 (the "License");
4228
+ * you may not use this file except in compliance with the License.
4229
+ * You may obtain a copy of the License at
4230
+ *
4231
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
4232
+ *
4233
+ * Unless required by applicable law or agreed to in writing, software
4234
+ * distributed under the License is distributed on an "AS IS" basis,
4235
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4236
+ * See the License for the specific language governing permissions and
4237
+ * limitations under the License.
4238
+ */
4239
+ const PatchZaakPropertyOptions = [
4240
+ 'description',
4241
+ 'explanation',
4242
+ 'plannedEndDate',
4243
+ 'finalDeliveryDate',
4244
+ 'publicationDate',
4245
+ 'communicationChannel',
4246
+ 'communicationChannelName',
4247
+ 'paymentIndication',
4248
+ 'lastPaymentDate',
4249
+ 'caseGeometryType',
4250
+ 'caseGeometryCoordinates',
4251
+ 'mainCase',
4252
+ 'archiveActionDate',
4253
+ 'startDateRetentionPeriod',
4254
+ ];
4255
+
4256
+ /*
4257
+ * Copyright 2015-2025 Ritense BV, the Netherlands.
4258
+ *
4259
+ * Licensed under EUPL, Version 1.2 (the "License");
4260
+ * you may not use this file except in compliance with the License.
4261
+ * You may obtain a copy of the License at
4262
+ *
4263
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
4264
+ *
4265
+ * Unless required by applicable law or agreed to in writing, software
4266
+ * distributed under the License is distributed on an "AS IS" basis,
4267
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4268
+ * See the License for the specific language governing permissions and
4269
+ * limitations under the License.
4270
+ */
4271
+ class PatchZaakConfigurationComponent {
4272
+ constructor(iconService) {
4273
+ this.iconService = iconService;
4274
+ this.valid = new EventEmitter();
4275
+ this.configuration = new EventEmitter();
4276
+ this.propertyOptions = Object.values(PatchZaakPropertyOptions);
4277
+ this.propertyList = [];
4278
+ this.geometryTypes = GEOMETRY_TYPES;
4279
+ this.paymentIndicationTypes = PAYMENT_INDICATION_TYPES;
4280
+ this.CASE_GEOMETRY_TYPE = 'caseGeometryType';
4281
+ this.CASE_GEOMETRY_COORDINATES = 'caseGeometryCoordinates';
4282
+ this.PAYMENT_INDICATION_TYPE = 'paymentIndication';
4283
+ this._formValue$ = new BehaviorSubject({});
4284
+ this._properties = new Map();
4285
+ this._valid$ = new BehaviorSubject(false);
4286
+ this.iconService.registerAll([Add16, TrashCan16]);
4287
+ }
4288
+ ngOnInit() {
4289
+ this.initPropertyList();
4290
+ this.openSaveSubscription();
4291
+ }
4292
+ ngOnDestroy() {
4293
+ this._saveSubscription?.unsubscribe();
4294
+ }
4295
+ onFormValueChanged(formValue) {
4296
+ this._formValue$.next(formValue);
4297
+ this.handleValid(formValue);
4298
+ }
4299
+ onPropertyChanged(property, value) {
4300
+ this._properties.set(property, value);
4301
+ const formValue = this._formValue$.value;
4302
+ this._properties.forEach((value, key) => {
4303
+ formValue[key] = value;
4304
+ });
4305
+ this.onFormValueChanged(formValue);
4306
+ }
4307
+ addProperty(property) {
4308
+ if (!this.hasPropertyBeenAdded(property)) {
4309
+ this.propertyList.push(this.propertyFormFieldFor(property));
4310
+ this.onPropertyChanged(property, undefined);
4311
+ }
4312
+ // add linked field coordinates
4313
+ if (property === this.CASE_GEOMETRY_TYPE) {
4314
+ this.addProperty(this.CASE_GEOMETRY_COORDINATES);
4315
+ }
4316
+ }
4317
+ removeProperty(property) {
4318
+ if (this.hasPropertyBeenAdded(property)) {
4319
+ this.propertyList.splice(this.propertyList.findIndex(item => item.name === property), 1);
4320
+ this.onPropertyChanged(property, undefined);
4321
+ }
4322
+ // remove linked field coordinates
4323
+ if (property === this.CASE_GEOMETRY_TYPE) {
4324
+ this.removeProperty(this.CASE_GEOMETRY_COORDINATES);
4325
+ }
4326
+ }
4327
+ hasPropertyBeenAdded(property) {
4328
+ return this.propertyList.findIndex(item => item.name === property) !== -1;
4329
+ }
4330
+ prefillValueFor(property, prefill) {
4331
+ return prefill != null ? prefill[property] : null;
4332
+ }
4333
+ translationKeyForPropertyList(property) {
4334
+ return property === this.CASE_GEOMETRY_TYPE ? 'caseGeometry' : this.translationKeyFor(property);
4335
+ }
4336
+ initPropertyList() {
4337
+ this.prefillConfiguration$.pipe(take(1)).subscribe(prefill => {
4338
+ if (prefill) {
4339
+ PatchZaakPropertyOptions.forEach(property => {
4340
+ if (!!prefill[property])
4341
+ this.addProperty(property);
4342
+ });
4343
+ }
4344
+ });
4345
+ }
4346
+ propertyFormFieldFor(property) {
4347
+ return {
4348
+ name: property,
4349
+ translationKey: this.translationKeyFor(property),
4350
+ tooltipTranslationKey: this.tooltipTranslationKeyFor(property),
4351
+ presetOptions: this.presetOptionsForProperty(property),
4352
+ };
4353
+ }
4354
+ translationKeyFor(property) {
4355
+ return property === 'description' ? 'omschrijving' : property;
4356
+ }
4357
+ tooltipTranslationKeyFor(property) {
4358
+ if (property.includes('Date')) {
4359
+ return 'dateformatTooltip';
4360
+ }
4361
+ else if (property === this.CASE_GEOMETRY_COORDINATES) {
4362
+ return `${property}Tooltip`;
4363
+ }
4364
+ return null;
4365
+ }
4366
+ presetOptionsForProperty(property) {
4367
+ switch (property) {
4368
+ case this.CASE_GEOMETRY_TYPE:
4369
+ return this.geometryTypes;
4370
+ case this.PAYMENT_INDICATION_TYPE:
4371
+ return this.paymentIndicationTypes;
4372
+ default:
4373
+ return [];
4374
+ }
4375
+ }
4376
+ handleValid(formValue) {
4377
+ const isPropertyInvalid = this.propertyList.some(property => !!!formValue[property.name]);
4378
+ const valid = !isPropertyInvalid;
4379
+ this._valid$.next(valid);
4380
+ this.valid.emit(valid);
4381
+ }
4382
+ openSaveSubscription() {
4383
+ this._saveSubscription = this.save$?.subscribe(save => {
4384
+ combineLatest([this._formValue$, this._valid$])
4385
+ .pipe(take(1))
4386
+ .subscribe(([formValue, valid]) => {
4387
+ if (valid) {
4388
+ this.configuration.emit(formValue);
4389
+ }
4390
+ });
4391
+ });
4392
+ }
4393
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PatchZaakConfigurationComponent, deps: [{ token: i1$3.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
4394
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: PatchZaakConfigurationComponent, isStandalone: false, selector: "valtimo-patch-zaak-configuration", inputs: { disabled$: "disabled$", pluginId: "pluginId", save$: "save$", prefillConfiguration$: "prefillConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'patchZaakInformation' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n\n <div class=\"row\">\n <div class=\"col-12\">\n <button\n cdsButton=\"primary\"\n [size]=\"'md'\"\n [cdsOverflowMenu]=\"addPropertyList\"\n [customPane]=\"true\"\n placement=\"bottom\"\n class=\"add-button\"\n >\n {{ 'addPatchZaakProperty' | pluginTranslate: pluginId | async }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n\n <v-form (valueChange)=\"onFormValueChanged($event)\">\n @for (property of propertyList; track property) {\n <div class=\"row\">\n <div class=\"col-11\">\n <v-input\n [name]=\"property.name\"\n [title]=\"property.translationKey | pluginTranslate: pluginId | async\"\n [tooltip]=\"property.tooltipTranslationKey !== null ? (property.tooltipTranslationKey| pluginTranslate: pluginId | async) : null\"\n [required]=\"true\"\n [defaultValue]=\"prefillValueFor(property.name, obs.prefill)\"\n [margin]=\"true\"\n [presetOptions]=\"property.presetOptions\"\n (valueChange)=\"onPropertyChanged(CASE_GEOMETRY_TYPE, $event)\"\n />\n </div>\n <div class=\"col-1\">\n @if (property.name !== CASE_GEOMETRY_COORDINATES) {\n <button class=\"btn btn-space delete-button\" (click)=\"removeProperty(property.name)\">\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n }\n </div>\n </div>\n }\n </v-form>\n</ng-container>\n\n<ng-template #addPropertyList>\n @for (propertyOption of propertyOptions; track propertyOption) {\n @if (propertyOption !== CASE_GEOMETRY_COORDINATES) {\n <cds-overflow-menu-option\n *ngIf=\"!hasPropertyBeenAdded(propertyOption)\"\n (click)=\"addProperty(propertyOption)\"\n >\n {{ translationKeyForPropertyList(propertyOption) | pluginTranslate: pluginId | async }}\n </cds-overflow-menu-option>\n }\n }\n</ng-template>\n", styles: ["button.delete-button{height:46px;width:46px;margin-top:20px}button.delete-button:hover{background-color:#e12717}button.add-button{margin-block-end:var(--v-input-margin)}::ng-deep .cds--overflow-menu-options{z-index:10000!important;width:230px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading", "dataTestId"] }, { kind: "directive", type: i1$3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i1$3.OverflowMenuDirective, selector: "[cdsOverflowMenu], [ibmOverflowMenu]", inputs: ["ibmOverflowMenu", "cdsOverflowMenu", "flip", "offset", "wrapperClass", "customPane"], exportAs: ["overflowMenu"] }, { kind: "component", type: i1$3.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "directive", type: i1$3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: PluginTranslatePipe, name: "pluginTranslate" }] }); }
4395
+ }
4396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PatchZaakConfigurationComponent, decorators: [{
4397
+ type: Component,
4398
+ args: [{ standalone: false, selector: 'valtimo-patch-zaak-configuration', template: "<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'patchZaakInformation' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n\n <div class=\"row\">\n <div class=\"col-12\">\n <button\n cdsButton=\"primary\"\n [size]=\"'md'\"\n [cdsOverflowMenu]=\"addPropertyList\"\n [customPane]=\"true\"\n placement=\"bottom\"\n class=\"add-button\"\n >\n {{ 'addPatchZaakProperty' | pluginTranslate: pluginId | async }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n\n <v-form (valueChange)=\"onFormValueChanged($event)\">\n @for (property of propertyList; track property) {\n <div class=\"row\">\n <div class=\"col-11\">\n <v-input\n [name]=\"property.name\"\n [title]=\"property.translationKey | pluginTranslate: pluginId | async\"\n [tooltip]=\"property.tooltipTranslationKey !== null ? (property.tooltipTranslationKey| pluginTranslate: pluginId | async) : null\"\n [required]=\"true\"\n [defaultValue]=\"prefillValueFor(property.name, obs.prefill)\"\n [margin]=\"true\"\n [presetOptions]=\"property.presetOptions\"\n (valueChange)=\"onPropertyChanged(CASE_GEOMETRY_TYPE, $event)\"\n />\n </div>\n <div class=\"col-1\">\n @if (property.name !== CASE_GEOMETRY_COORDINATES) {\n <button class=\"btn btn-space delete-button\" (click)=\"removeProperty(property.name)\">\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n }\n </div>\n </div>\n }\n </v-form>\n</ng-container>\n\n<ng-template #addPropertyList>\n @for (propertyOption of propertyOptions; track propertyOption) {\n @if (propertyOption !== CASE_GEOMETRY_COORDINATES) {\n <cds-overflow-menu-option\n *ngIf=\"!hasPropertyBeenAdded(propertyOption)\"\n (click)=\"addProperty(propertyOption)\"\n >\n {{ translationKeyForPropertyList(propertyOption) | pluginTranslate: pluginId | async }}\n </cds-overflow-menu-option>\n }\n }\n</ng-template>\n", styles: ["button.delete-button{height:46px;width:46px;margin-top:20px}button.delete-button:hover{background-color:#e12717}button.add-button{margin-block-end:var(--v-input-margin)}::ng-deep .cds--overflow-menu-options{z-index:10000!important;width:230px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
4399
+ }], ctorParameters: () => [{ type: i1$3.IconService }], propDecorators: { disabled$: [{
4400
+ type: Input
4401
+ }], pluginId: [{
4402
+ type: Input
4403
+ }], save$: [{
4404
+ type: Input
4405
+ }], prefillConfiguration$: [{
4406
+ type: Input
4407
+ }], valid: [{
4408
+ type: Output
4409
+ }], configuration: [{
4410
+ type: Output
4411
+ }] } });
4412
+
4160
4413
  /*
4161
4414
  * Copyright 2015-2025 Ritense BV, the Netherlands.
4162
4415
  *
@@ -4960,22 +5213,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
4960
5213
  * See the License for the specific language governing permissions and
4961
5214
  * limitations under the License.
4962
5215
  */
4963
- const PatchZaakPropertyOptions = [
4964
- 'description',
4965
- 'explanation',
4966
- 'plannedEndDate',
4967
- 'finalDeliveryDate',
4968
- 'publicationDate',
4969
- 'communicationChannel',
4970
- 'communicationChannelName',
4971
- 'paymentIndication',
4972
- 'lastPaymentDate',
4973
- 'caseGeometryType',
4974
- 'caseGeometryCoordinates',
4975
- 'mainCase',
4976
- 'archiveActionDate',
4977
- 'startDateRetentionPeriod',
4978
- ];
5216
+ class GetZaakInformatieobjectenComponent {
5217
+ constructor(pluginManagementService, translateService, pluginTranslationService) {
5218
+ this.pluginManagementService = pluginManagementService;
5219
+ this.translateService = translateService;
5220
+ this.pluginTranslationService = pluginTranslationService;
5221
+ this.valid = new EventEmitter();
5222
+ this.configuration = new EventEmitter();
5223
+ this.formValue$ = new BehaviorSubject(null);
5224
+ this.valid$ = new BehaviorSubject(false);
5225
+ this.authenticationPluginSelectItems$ = combineLatest([
5226
+ this.pluginManagementService.getPluginConfigurationsByCategory('get-zaak-informatieobjecten'),
5227
+ this.translateService.stream('key'),
5228
+ ]).pipe(map$1(([configurations]) => configurations.map(configuration => ({
5229
+ id: configuration.id,
5230
+ text: `${configuration.title} - ${this.pluginTranslationService.instant('title', configuration.pluginDefinition.key)}`,
5231
+ }))));
5232
+ }
5233
+ ngOnInit() {
5234
+ this.openSaveSubscription();
5235
+ }
5236
+ ngOnDestroy() {
5237
+ this.saveSubscription?.unsubscribe();
5238
+ }
5239
+ formValueChange(formValue) {
5240
+ this.formValue$.next(formValue);
5241
+ this.handleValid(formValue);
5242
+ }
5243
+ handleValid(formValue) {
5244
+ const valid = !!formValue.resultProcessVariable;
5245
+ this.valid$.next(valid);
5246
+ this.valid.emit(valid);
5247
+ }
5248
+ openSaveSubscription() {
5249
+ this.saveSubscription = this.save$
5250
+ .pipe(withLatestFrom(this.formValue$, this.valid$), map$1(([_, formValue, valid]) => valid ? formValue : null), tap$1(formValue => {
5251
+ if (formValue)
5252
+ this.configuration.emit(formValue);
5253
+ }))
5254
+ .subscribe();
5255
+ }
5256
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GetZaakInformatieobjectenComponent, deps: [{ token: PluginManagementService }, { token: i2.TranslateService }, { token: PluginTranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
5257
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: GetZaakInformatieobjectenComponent, isStandalone: false, selector: "valtimo-get-zaak-informatieobjecten-configuration", inputs: { save$: "save$", disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"resultProcessVariable\"\n [title]=\"'resultProcessVariable' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.resultProcessVariable\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'resultProcessVariableTooltip' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n >\n </v-input>\n</v-form>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: PluginTranslatePipe, name: "pluginTranslate" }] }); }
5258
+ }
5259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GetZaakInformatieobjectenComponent, decorators: [{
5260
+ type: Component,
5261
+ args: [{ standalone: false, selector: 'valtimo-get-zaak-informatieobjecten-configuration', template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"resultProcessVariable\"\n [title]=\"'resultProcessVariable' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.resultProcessVariable\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'resultProcessVariableTooltip' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n >\n </v-input>\n</v-form>\n" }]
5262
+ }], ctorParameters: () => [{ type: PluginManagementService }, { type: i2.TranslateService }, { type: PluginTranslationService }], propDecorators: { save$: [{
5263
+ type: Input
5264
+ }], disabled$: [{
5265
+ type: Input
5266
+ }], pluginId: [{
5267
+ type: Input
5268
+ }], prefillConfiguration$: [{
5269
+ type: Input
5270
+ }], valid: [{
5271
+ type: Output
5272
+ }], configuration: [{
5273
+ type: Output
5274
+ }] } });
4979
5275
 
4980
5276
  /*
4981
5277
  * Copyright 2015-2025 Ritense BV, the Netherlands.
@@ -4992,110 +5288,51 @@ const PatchZaakPropertyOptions = [
4992
5288
  * See the License for the specific language governing permissions and
4993
5289
  * limitations under the License.
4994
5290
  */
4995
- class PatchZaakConfigurationComponent {
4996
- constructor(iconService) {
4997
- this.iconService = iconService;
5291
+ class GetZaakbesluitenConfigurationComponent {
5292
+ constructor() {
4998
5293
  this.valid = new EventEmitter();
4999
5294
  this.configuration = new EventEmitter();
5000
- this.propertyOptions = Object.values(PatchZaakPropertyOptions);
5001
- this.propertyList = [];
5002
- this.geometryTypes = GEOMETRY_TYPES;
5003
- this.paymentIndicationTypes = PAYMENT_INDICATION_TYPES;
5004
- this.CASE_GEOMETRY_TYPE = 'caseGeometryType';
5005
- this.CASE_GEOMETRY_COORDINATES = 'caseGeometryCoordinates';
5006
- this.PAYMENT_INDICATION_TYPE = 'paymentIndication';
5007
- this._formValue$ = new BehaviorSubject({});
5008
- this._properties = new Map();
5009
- this._valid$ = new BehaviorSubject(false);
5010
- this.iconService.registerAll([Add16, TrashCan16]);
5295
+ this.formValue$ = new BehaviorSubject(null);
5296
+ this.valid$ = new BehaviorSubject(false);
5011
5297
  }
5012
5298
  ngOnInit() {
5013
5299
  this.openSaveSubscription();
5014
- this.prefillConfiguration$.pipe(take(1)).subscribe(prefill => {
5015
- if (prefill) {
5016
- PatchZaakPropertyOptions.filter(property => !!prefill[property]).forEach(property => this.addProperty(property));
5017
- }
5018
- });
5300
+ this.valid.emit(true);
5019
5301
  }
5020
5302
  ngOnDestroy() {
5021
- this._saveSubscription?.unsubscribe();
5022
- }
5023
- onFormValueChanged(formValue) {
5024
- this._formValue$.next(formValue);
5025
- this.handleValid(formValue);
5026
- }
5027
- onPropertyChanged(property, value) {
5028
- this._properties.set(property, value);
5029
- const formValue = this._formValue$.value;
5030
- this._properties.forEach((value, key) => {
5031
- formValue[key] = value;
5032
- });
5033
- this.onFormValueChanged(formValue);
5034
- }
5035
- prefillValueFor(property, prefill) {
5036
- return prefill != null ? prefill[property] : null;
5037
- }
5038
- translationKeyFor(property) {
5039
- return property === 'description' ? 'omschrijving' : property;
5040
- }
5041
- translationKeyForPropertyList(property) {
5042
- return property === this.CASE_GEOMETRY_TYPE ? 'caseGeometry' : this.translationKeyFor(property);
5043
- }
5044
- addProperty(property) {
5045
- // only add the property to the list if it is not in the list
5046
- if (this.propertyList.indexOf(property) == -1) {
5047
- this.propertyList.push(property);
5048
- this.onPropertyChanged(property, undefined);
5049
- }
5050
- // add linked field coordinates
5051
- if (property === this.CASE_GEOMETRY_TYPE) {
5052
- this.addProperty(this.CASE_GEOMETRY_COORDINATES);
5053
- }
5054
- }
5055
- removeProperty(property) {
5056
- // only remove the property from the list if it is in the list
5057
- if (this.propertyList.indexOf(property) != -1) {
5058
- this.propertyList.splice(this.propertyList.indexOf(property), 1);
5059
- this.onPropertyChanged(property, undefined);
5060
- }
5061
- // remove linked field coordinates
5062
- if (property === this.CASE_GEOMETRY_TYPE) {
5063
- this.removeProperty(this.CASE_GEOMETRY_COORDINATES);
5064
- }
5065
- }
5066
- hasPropertyBeenAdded(property) {
5067
- return this.propertyList.indexOf(property) !== -1;
5068
- }
5069
- handleValid(formValue) {
5070
- const isPropertyInvalid = this.propertyList.some(property => !!!formValue[property]);
5071
- const valid = !isPropertyInvalid;
5072
- this._valid$.next(valid);
5073
- this.valid.emit(valid);
5303
+ this.saveSubscription?.unsubscribe();
5074
5304
  }
5075
5305
  openSaveSubscription() {
5076
- this._saveSubscription = this.save$?.subscribe(save => {
5077
- combineLatest([this._formValue$, this._valid$])
5306
+ this.saveSubscription = this.save$?.subscribe(save => {
5307
+ combineLatest([this.formValue$, this.valid$])
5078
5308
  .pipe(take(1))
5079
5309
  .subscribe(([formValue, valid]) => {
5080
5310
  if (valid) {
5081
- const payload = {};
5082
- this.propertyList.forEach(property => (payload[property] = formValue[property]));
5083
5311
  this.configuration.emit(formValue);
5084
5312
  }
5085
5313
  });
5086
5314
  });
5087
5315
  }
5088
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PatchZaakConfigurationComponent, deps: [{ token: i1$3.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
5089
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: PatchZaakConfigurationComponent, isStandalone: false, selector: "valtimo-patch-zaak-configuration", inputs: { disabled$: "disabled$", pluginId: "pluginId", save$: "save$", prefillConfiguration$: "prefillConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'patchZaakInformation' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n\n <div class=\"row\">\n <div class=\"col-12\">\n <button\n cdsButton=\"primary\"\n [size]=\"'md'\"\n [cdsOverflowMenu]=\"addPropertyList\"\n [customPane]=\"true\"\n placement=\"bottom\"\n class=\"add-button\"\n >\n {{ 'addPatchZaakProperty' | pluginTranslate: pluginId | async }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n\n <v-form (valueChange)=\"onFormValueChanged($event)\">\n @for (property of propertyList; track property) {\n <div class=\"row\">\n <div class=\"col-11\">\n @if (property === CASE_GEOMETRY_TYPE) {\n <v-input\n [name]=\"CASE_GEOMETRY_TYPE\"\n [title]=\"translationKeyFor(CASE_GEOMETRY_TYPE) | pluginTranslate: pluginId | async\"\n [required]=\"true\"\n [defaultValue]=\"prefillValueFor(CASE_GEOMETRY_TYPE, obs.prefill)\"\n [margin]=\"true\"\n [presetOptions]=\"geometryTypes\"\n (valueChange)=\"onPropertyChanged(CASE_GEOMETRY_TYPE, $event)\"\n />\n } @else if (property === CASE_GEOMETRY_COORDINATES) {\n <v-input\n [name]=\"CASE_GEOMETRY_COORDINATES\"\n [title]=\"\n translationKeyFor(CASE_GEOMETRY_COORDINATES) | pluginTranslate: pluginId | async\n \"\n [tooltip]=\"translationKeyFor(`${CASE_GEOMETRY_COORDINATES}Tooltip`) | pluginTranslate: pluginId | async\"\n [required]=\"true\"\n [defaultValue]=\"prefillValueFor(CASE_GEOMETRY_COORDINATES, obs.prefill)\"\n [margin]=\"true\"\n (valueChange)=\"onPropertyChanged(CASE_GEOMETRY_COORDINATES, $event)\"\n />\n } @else if (property.includes('Date')) {\n <v-input\n [name]=\"property\"\n [title]=\"translationKeyFor(property) | pluginTranslate: pluginId | async\"\n [tooltip]=\"'dateformatTooltip' | pluginTranslate: pluginId | async\"\n [required]=\"true\"\n [defaultValue]=\"prefillValueFor(property, obs.prefill)\"\n [margin]=\"true\"\n [trim]=\"true\"\n (valueChange)=\"onPropertyChanged(property, $event)\"\n ></v-input>\n } @else {\n <v-input\n [name]=\"property\"\n [title]=\"translationKeyFor(property) | pluginTranslate: pluginId | async\"\n [required]=\"true\"\n [defaultValue]=\"prefillValueFor(property, obs.prefill)\"\n [margin]=\"true\"\n [trim]=\"true\"\n [presetOptions]=\"property === PAYMENT_INDICATION_TYPE ? paymentIndicationTypes : []\"\n (valueChange)=\"onPropertyChanged(property, $event)\"\n />\n }\n </div>\n <div class=\"col-1\">\n @if (property !== CASE_GEOMETRY_COORDINATES) {\n <button class=\"btn btn-space delete-button\" (click)=\"removeProperty(property)\">\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n }\n </div>\n </div>\n }\n </v-form>\n</ng-container>\n\n<ng-template #addPropertyList>\n @for (propertyOption of propertyOptions; track propertyOption) {\n @if (propertyOption !== CASE_GEOMETRY_COORDINATES) {\n <cds-overflow-menu-option\n *ngIf=\"!hasPropertyBeenAdded(propertyOption)\"\n (click)=\"addProperty(propertyOption)\"\n >\n {{ translationKeyForPropertyList(propertyOption) | pluginTranslate: pluginId | async }}\n </cds-overflow-menu-option>\n }\n }\n</ng-template>\n", styles: ["button.delete-button{height:46px;width:46px;margin-top:20px}button.delete-button:hover{background-color:#e12717}button.add-button{margin-block-end:var(--v-input-margin)}::ng-deep .cds--overflow-menu-options{z-index:10000!important;width:230px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading", "dataTestId"] }, { kind: "directive", type: i1$3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i1$3.OverflowMenuDirective, selector: "[cdsOverflowMenu], [ibmOverflowMenu]", inputs: ["ibmOverflowMenu", "cdsOverflowMenu", "flip", "offset", "wrapperClass", "customPane"], exportAs: ["overflowMenu"] }, { kind: "component", type: i1$3.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "directive", type: i1$3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: PluginTranslatePipe, name: "pluginTranslate" }] }); }
5316
+ formValueChange(formValue) {
5317
+ this.formValue$.next(formValue);
5318
+ this.handleValid(formValue);
5319
+ }
5320
+ handleValid(formValue) {
5321
+ const valid = !!formValue.resultProcessVariable;
5322
+ this.valid$.next(valid);
5323
+ this.valid.emit(valid);
5324
+ }
5325
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GetZaakbesluitenConfigurationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5326
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: GetZaakbesluitenConfigurationComponent, isStandalone: false, selector: "valtimo-get-zaakbesluiten-configuration", inputs: { save$: "save$", disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"resultProcessVariable\"\n [title]=\"'resultProcessVariable' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.resultProcessVariable\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'resultProcessVariableTooltip' | pluginTranslate: pluginId | async\"\n ></v-input>\n</v-form>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: PluginTranslatePipe, name: "pluginTranslate" }] }); }
5090
5327
  }
5091
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PatchZaakConfigurationComponent, decorators: [{
5328
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GetZaakbesluitenConfigurationComponent, decorators: [{
5092
5329
  type: Component,
5093
- args: [{ standalone: false, selector: 'valtimo-patch-zaak-configuration', template: "<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'patchZaakInformation' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n\n <div class=\"row\">\n <div class=\"col-12\">\n <button\n cdsButton=\"primary\"\n [size]=\"'md'\"\n [cdsOverflowMenu]=\"addPropertyList\"\n [customPane]=\"true\"\n placement=\"bottom\"\n class=\"add-button\"\n >\n {{ 'addPatchZaakProperty' | pluginTranslate: pluginId | async }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n\n <v-form (valueChange)=\"onFormValueChanged($event)\">\n @for (property of propertyList; track property) {\n <div class=\"row\">\n <div class=\"col-11\">\n @if (property === CASE_GEOMETRY_TYPE) {\n <v-input\n [name]=\"CASE_GEOMETRY_TYPE\"\n [title]=\"translationKeyFor(CASE_GEOMETRY_TYPE) | pluginTranslate: pluginId | async\"\n [required]=\"true\"\n [defaultValue]=\"prefillValueFor(CASE_GEOMETRY_TYPE, obs.prefill)\"\n [margin]=\"true\"\n [presetOptions]=\"geometryTypes\"\n (valueChange)=\"onPropertyChanged(CASE_GEOMETRY_TYPE, $event)\"\n />\n } @else if (property === CASE_GEOMETRY_COORDINATES) {\n <v-input\n [name]=\"CASE_GEOMETRY_COORDINATES\"\n [title]=\"\n translationKeyFor(CASE_GEOMETRY_COORDINATES) | pluginTranslate: pluginId | async\n \"\n [tooltip]=\"translationKeyFor(`${CASE_GEOMETRY_COORDINATES}Tooltip`) | pluginTranslate: pluginId | async\"\n [required]=\"true\"\n [defaultValue]=\"prefillValueFor(CASE_GEOMETRY_COORDINATES, obs.prefill)\"\n [margin]=\"true\"\n (valueChange)=\"onPropertyChanged(CASE_GEOMETRY_COORDINATES, $event)\"\n />\n } @else if (property.includes('Date')) {\n <v-input\n [name]=\"property\"\n [title]=\"translationKeyFor(property) | pluginTranslate: pluginId | async\"\n [tooltip]=\"'dateformatTooltip' | pluginTranslate: pluginId | async\"\n [required]=\"true\"\n [defaultValue]=\"prefillValueFor(property, obs.prefill)\"\n [margin]=\"true\"\n [trim]=\"true\"\n (valueChange)=\"onPropertyChanged(property, $event)\"\n ></v-input>\n } @else {\n <v-input\n [name]=\"property\"\n [title]=\"translationKeyFor(property) | pluginTranslate: pluginId | async\"\n [required]=\"true\"\n [defaultValue]=\"prefillValueFor(property, obs.prefill)\"\n [margin]=\"true\"\n [trim]=\"true\"\n [presetOptions]=\"property === PAYMENT_INDICATION_TYPE ? paymentIndicationTypes : []\"\n (valueChange)=\"onPropertyChanged(property, $event)\"\n />\n }\n </div>\n <div class=\"col-1\">\n @if (property !== CASE_GEOMETRY_COORDINATES) {\n <button class=\"btn btn-space delete-button\" (click)=\"removeProperty(property)\">\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n }\n </div>\n </div>\n }\n </v-form>\n</ng-container>\n\n<ng-template #addPropertyList>\n @for (propertyOption of propertyOptions; track propertyOption) {\n @if (propertyOption !== CASE_GEOMETRY_COORDINATES) {\n <cds-overflow-menu-option\n *ngIf=\"!hasPropertyBeenAdded(propertyOption)\"\n (click)=\"addProperty(propertyOption)\"\n >\n {{ translationKeyForPropertyList(propertyOption) | pluginTranslate: pluginId | async }}\n </cds-overflow-menu-option>\n }\n }\n</ng-template>\n", styles: ["button.delete-button{height:46px;width:46px;margin-top:20px}button.delete-button:hover{background-color:#e12717}button.add-button{margin-block-end:var(--v-input-margin)}::ng-deep .cds--overflow-menu-options{z-index:10000!important;width:230px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
5094
- }], ctorParameters: () => [{ type: i1$3.IconService }], propDecorators: { disabled$: [{
5330
+ args: [{ selector: 'valtimo-get-zaakbesluiten-configuration', standalone: false, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"resultProcessVariable\"\n [title]=\"'resultProcessVariable' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.resultProcessVariable\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'resultProcessVariableTooltip' | pluginTranslate: pluginId | async\"\n ></v-input>\n</v-form>\n" }]
5331
+ }], propDecorators: { save$: [{
5095
5332
  type: Input
5096
- }], pluginId: [{
5333
+ }], disabled$: [{
5097
5334
  type: Input
5098
- }], save$: [{
5335
+ }], pluginId: [{
5099
5336
  type: Input
5100
5337
  }], prefillConfiguration$: [{
5101
5338
  type: Input
@@ -5105,6 +5342,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
5105
5342
  type: Output
5106
5343
  }] } });
5107
5344
 
5345
+ const ZAAKNOTIFICATIE_STATUSES = ['concept', 'definitief'];
5346
+
5347
+ const ZAAKNOTIFICATIE_TYPES = ['intern', 'extern'];
5348
+
5108
5349
  /*
5109
5350
  * Copyright 2015-2025 Ritense BV, the Netherlands.
5110
5351
  *
@@ -5120,60 +5361,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
5120
5361
  * See the License for the specific language governing permissions and
5121
5362
  * limitations under the License.
5122
5363
  */
5123
- class GetZaakInformatieobjectenComponent {
5124
- constructor(pluginManagementService, translateService, pluginTranslationService) {
5125
- this.pluginManagementService = pluginManagementService;
5126
- this.translateService = translateService;
5127
- this.pluginTranslationService = pluginTranslationService;
5364
+ class CreateZaakNotitieConfigurationComponent {
5365
+ constructor() {
5128
5366
  this.valid = new EventEmitter();
5129
5367
  this.configuration = new EventEmitter();
5130
- this.formValue$ = new BehaviorSubject(null);
5131
- this.valid$ = new BehaviorSubject(false);
5132
- this.authenticationPluginSelectItems$ = combineLatest([
5133
- this.pluginManagementService.getPluginConfigurationsByCategory('get-zaak-informatieobjecten'),
5134
- this.translateService.stream('key'),
5135
- ]).pipe(map$1(([configurations]) => configurations.map(configuration => ({
5136
- id: configuration.id,
5137
- text: `${configuration.title} - ${this.pluginTranslationService.instant('title', configuration.pluginDefinition.key)}`,
5138
- }))));
5368
+ this.statusOptions = ZAAKNOTIFICATIE_STATUSES;
5369
+ this.notitieTypeOptions = ZAAKNOTIFICATIE_TYPES;
5370
+ this._formValue$ = new BehaviorSubject(null);
5371
+ this._valid$ = new BehaviorSubject(false);
5139
5372
  }
5140
5373
  ngOnInit() {
5141
5374
  this.openSaveSubscription();
5142
5375
  }
5143
5376
  ngOnDestroy() {
5144
- this.saveSubscription?.unsubscribe();
5377
+ this._saveSubscription?.unsubscribe();
5145
5378
  }
5146
- formValueChange(formValue) {
5147
- this.formValue$.next(formValue);
5148
- this.handleValid(formValue);
5379
+ onFormValueChanged(value) {
5380
+ this._formValue$.next(value);
5381
+ this.handleValid(value);
5149
5382
  }
5150
5383
  handleValid(formValue) {
5151
- const valid = !!formValue.resultProcessVariable;
5152
- this.valid$.next(valid);
5384
+ const valid = !!formValue?.onderwerp && !!formValue?.tekst;
5385
+ this._valid$.next(valid);
5153
5386
  this.valid.emit(valid);
5154
5387
  }
5155
5388
  openSaveSubscription() {
5156
- this.saveSubscription = this.save$
5157
- .pipe(withLatestFrom(this.formValue$, this.valid$), map$1(([_, formValue, valid]) => valid ? formValue : null), tap$1(formValue => {
5158
- if (formValue)
5159
- this.configuration.emit(formValue);
5160
- }))
5161
- .subscribe();
5389
+ this._saveSubscription = this.save$.subscribe(() => {
5390
+ combineLatest([this._formValue$, this._valid$])
5391
+ .pipe(take(1))
5392
+ .subscribe(([formValue, valid]) => {
5393
+ if (valid && formValue) {
5394
+ this.configuration.emit({
5395
+ onderwerp: formValue.onderwerp,
5396
+ tekst: formValue.tekst,
5397
+ aangemaaktDoor: formValue.aangemaaktDoor,
5398
+ notitieType: formValue.notitieType,
5399
+ status: formValue.status,
5400
+ });
5401
+ }
5402
+ });
5403
+ });
5162
5404
  }
5163
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GetZaakInformatieobjectenComponent, deps: [{ token: PluginManagementService }, { token: i2.TranslateService }, { token: PluginTranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
5164
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: GetZaakInformatieobjectenComponent, isStandalone: false, selector: "valtimo-get-zaak-informatieobjecten-configuration", inputs: { save$: "save$", disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"resultProcessVariable\"\n [title]=\"'resultProcessVariable' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.resultProcessVariable\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'resultProcessVariableTooltip' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n >\n </v-input>\n</v-form>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: PluginTranslatePipe, name: "pluginTranslate" }] }); }
5405
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CreateZaakNotitieConfigurationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5406
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: CreateZaakNotitieConfigurationComponent, isStandalone: false, selector: "valtimo-create-zaaknotitie-configuration", inputs: { save$: "save$", disabled$: "disabled$", prefillConfiguration$: "prefillConfiguration$", pluginId: "pluginId" }, outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'createZaakNotitieInformation' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n\n <v-form (valueChange)=\"onFormValueChanged($event)\">\n <v-input\n name=\"onderwerp\"\n [title]=\"'onderwerp' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.onderwerp\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [fullWidth]=\"true\"\n ></v-input>\n\n <v-input\n type=\"textarea\"\n name=\"tekst\"\n [title]=\"'tekst' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.tekst\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [fullWidth]=\"true\"\n ></v-input>\n\n <v-input\n name=\"aangemaaktDoor\"\n [title]=\"'aangemaaktDoor' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.aangemaaktDoor\"\n [disabled]=\"obs.disabled\"\n [required]=\"false\"\n [trim]=\"true\"\n [fullWidth]=\"true\"\n ></v-input>\n\n <v-input\n name=\"notitieType\"\n [title]=\"'notitieType' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.notitieType\"\n [disabled]=\"obs.disabled\"\n [required]=\"false\"\n [trim]=\"true\"\n [fullWidth]=\"true\"\n [presetOptions]=\"notitieTypeOptions\"\n ></v-input>\n\n <v-input\n name=\"status\"\n [title]=\"'status' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.status\"\n [disabled]=\"obs.disabled\"\n [required]=\"false\"\n [trim]=\"true\"\n [fullWidth]=\"true\"\n [presetOptions]=\"statusOptions\"\n ></v-input>\n </v-form>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading", "dataTestId"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: PluginTranslatePipe, name: "pluginTranslate" }] }); }
5165
5407
  }
5166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GetZaakInformatieobjectenComponent, decorators: [{
5408
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CreateZaakNotitieConfigurationComponent, decorators: [{
5167
5409
  type: Component,
5168
- args: [{ standalone: false, selector: 'valtimo-get-zaak-informatieobjecten-configuration', template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"resultProcessVariable\"\n [title]=\"'resultProcessVariable' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.resultProcessVariable\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'resultProcessVariableTooltip' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n >\n </v-input>\n</v-form>\n" }]
5169
- }], ctorParameters: () => [{ type: PluginManagementService }, { type: i2.TranslateService }, { type: PluginTranslationService }], propDecorators: { save$: [{
5410
+ args: [{ standalone: false, selector: 'valtimo-create-zaaknotitie-configuration', template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'createZaakNotitieInformation' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n\n <v-form (valueChange)=\"onFormValueChanged($event)\">\n <v-input\n name=\"onderwerp\"\n [title]=\"'onderwerp' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.onderwerp\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [fullWidth]=\"true\"\n ></v-input>\n\n <v-input\n type=\"textarea\"\n name=\"tekst\"\n [title]=\"'tekst' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.tekst\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [fullWidth]=\"true\"\n ></v-input>\n\n <v-input\n name=\"aangemaaktDoor\"\n [title]=\"'aangemaaktDoor' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.aangemaaktDoor\"\n [disabled]=\"obs.disabled\"\n [required]=\"false\"\n [trim]=\"true\"\n [fullWidth]=\"true\"\n ></v-input>\n\n <v-input\n name=\"notitieType\"\n [title]=\"'notitieType' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.notitieType\"\n [disabled]=\"obs.disabled\"\n [required]=\"false\"\n [trim]=\"true\"\n [fullWidth]=\"true\"\n [presetOptions]=\"notitieTypeOptions\"\n ></v-input>\n\n <v-input\n name=\"status\"\n [title]=\"'status' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.status\"\n [disabled]=\"obs.disabled\"\n [required]=\"false\"\n [trim]=\"true\"\n [fullWidth]=\"true\"\n [presetOptions]=\"statusOptions\"\n ></v-input>\n </v-form>\n</ng-container>\n" }]
5411
+ }], propDecorators: { save$: [{
5170
5412
  type: Input
5171
5413
  }], disabled$: [{
5172
5414
  type: Input
5173
- }], pluginId: [{
5174
- type: Input
5175
5415
  }], prefillConfiguration$: [{
5176
5416
  type: Input
5417
+ }], pluginId: [{
5418
+ type: Input
5177
5419
  }], valid: [{
5178
5420
  type: Output
5179
5421
  }], configuration: [{
@@ -5195,23 +5437,135 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
5195
5437
  * See the License for the specific language governing permissions and
5196
5438
  * limitations under the License.
5197
5439
  */
5198
- class GetZaakbesluitenConfigurationComponent {
5199
- constructor() {
5440
+ const PatchZaakNotitiePropertyOptions = [
5441
+ 'onderwerp',
5442
+ 'tekst',
5443
+ 'aangemaaktDoor',
5444
+ 'notitieType',
5445
+ 'status'
5446
+ ];
5447
+
5448
+ /*
5449
+ * Copyright 2015-2025 Ritense BV, the Netherlands.
5450
+ *
5451
+ * Licensed under EUPL, Version 1.2 (the "License");
5452
+ * you may not use this file except in compliance with the License.
5453
+ * You may obtain a copy of the License at
5454
+ *
5455
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
5456
+ *
5457
+ * Unless required by applicable law or agreed to in writing, software
5458
+ * distributed under the License is distributed on an "AS IS" basis,
5459
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5460
+ * See the License for the specific language governing permissions and
5461
+ * limitations under the License.
5462
+ */
5463
+ class PatchZaakNotitieConfigurationComponent {
5464
+ constructor(iconService) {
5465
+ this.iconService = iconService;
5200
5466
  this.valid = new EventEmitter();
5201
5467
  this.configuration = new EventEmitter();
5202
- this.formValue$ = new BehaviorSubject(null);
5203
- this.valid$ = new BehaviorSubject(false);
5468
+ this.propertyOptions = Object.values(PatchZaakNotitiePropertyOptions);
5469
+ this.propertyList = [];
5470
+ this.statusOptions = ZAAKNOTIFICATIE_STATUSES;
5471
+ this.notitieTypeOptions = ZAAKNOTIFICATIE_TYPES;
5472
+ this._formValue$ = new BehaviorSubject({ zaakNotitieUrl: undefined });
5473
+ this._properties = new Map();
5474
+ this._valid$ = new BehaviorSubject(false);
5475
+ this.iconService.registerAll([Add16, TrashCan16]);
5204
5476
  }
5205
5477
  ngOnInit() {
5478
+ this.initPropertyList();
5206
5479
  this.openSaveSubscription();
5207
- this.valid.emit(true);
5208
5480
  }
5209
5481
  ngOnDestroy() {
5210
- this.saveSubscription?.unsubscribe();
5482
+ this._saveSubscription?.unsubscribe();
5483
+ }
5484
+ onFormValueChanged(formValue) {
5485
+ const _formValue = this.formValueIncludingProperties(formValue);
5486
+ this._formValue$.next(_formValue);
5487
+ this.handleValid(_formValue);
5488
+ }
5489
+ onPropertyChanged(property, value) {
5490
+ this._properties.set(property, value);
5491
+ this.onFormValueChanged(this._formValue$.getValue());
5492
+ }
5493
+ addProperty(property) {
5494
+ if (!this.hasPropertyBeenAdded(property)) {
5495
+ this.propertyList.push(this.propertyFormFieldFor(property));
5496
+ this.onPropertyChanged(property, undefined);
5497
+ }
5498
+ }
5499
+ removeProperty(property) {
5500
+ if (this.hasPropertyBeenAdded(property)) {
5501
+ this.propertyList.splice(this.propertyList.findIndex(item => item.name === property), 1);
5502
+ this.onPropertyChanged(property, undefined);
5503
+ }
5504
+ }
5505
+ hasPropertyBeenAdded(property) {
5506
+ return this.propertyList.findIndex(item => item.name === property) !== -1;
5507
+ }
5508
+ prefillValueFor(property, prefill) {
5509
+ return prefill !== null ? prefill[property] : null;
5510
+ }
5511
+ initPropertyList() {
5512
+ this.prefillConfiguration$.pipe(take(1)).subscribe(prefill => {
5513
+ if (prefill) {
5514
+ PatchZaakNotitiePropertyOptions
5515
+ .forEach(property => {
5516
+ if (!!prefill[property])
5517
+ this.addProperty(property);
5518
+ });
5519
+ }
5520
+ });
5521
+ }
5522
+ formValueIncludingProperties(formValue) {
5523
+ this._properties.forEach((value, key) => {
5524
+ formValue[key] = value;
5525
+ });
5526
+ return formValue;
5527
+ }
5528
+ propertyFormFieldFor(property) {
5529
+ return {
5530
+ type: this.inputTypeForProperty(property),
5531
+ name: property,
5532
+ translationKey: this.translationKeyFor(property),
5533
+ presetOptions: this.presetOptionsForProperty(property)
5534
+ };
5535
+ }
5536
+ inputTypeForProperty(property) {
5537
+ switch (property) {
5538
+ case 'tekst':
5539
+ return 'textarea';
5540
+ default:
5541
+ return 'text';
5542
+ }
5543
+ }
5544
+ translationKeyFor(property) {
5545
+ return property;
5546
+ }
5547
+ translationKeyForPropertyList(property) {
5548
+ return this.translationKeyFor(property);
5549
+ }
5550
+ presetOptionsForProperty(property) {
5551
+ switch (property) {
5552
+ case 'notitieType':
5553
+ return this.notitieTypeOptions;
5554
+ case 'status':
5555
+ return this.statusOptions;
5556
+ default:
5557
+ return [];
5558
+ }
5559
+ }
5560
+ handleValid(formValue) {
5561
+ const isPropertyInvalid = this.propertyList.some(property => !!!formValue[property.name]);
5562
+ const valid = !isPropertyInvalid;
5563
+ this._valid$.next(valid);
5564
+ this.valid.emit(valid);
5211
5565
  }
5212
5566
  openSaveSubscription() {
5213
- this.saveSubscription = this.save$?.subscribe(save => {
5214
- combineLatest([this.formValue$, this.valid$])
5567
+ this._saveSubscription = this.save$.subscribe(save => {
5568
+ combineLatest([this._formValue$, this._valid$])
5215
5569
  .pipe(take(1))
5216
5570
  .subscribe(([formValue, valid]) => {
5217
5571
  if (valid) {
@@ -5220,27 +5574,18 @@ class GetZaakbesluitenConfigurationComponent {
5220
5574
  });
5221
5575
  });
5222
5576
  }
5223
- formValueChange(formValue) {
5224
- this.formValue$.next(formValue);
5225
- this.handleValid(formValue);
5226
- }
5227
- handleValid(formValue) {
5228
- const valid = !!formValue.resultProcessVariable;
5229
- this.valid$.next(valid);
5230
- this.valid.emit(valid);
5231
- }
5232
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GetZaakbesluitenConfigurationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5233
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: GetZaakbesluitenConfigurationComponent, isStandalone: false, selector: "valtimo-get-zaakbesluiten-configuration", inputs: { save$: "save$", disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"resultProcessVariable\"\n [title]=\"'resultProcessVariable' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.resultProcessVariable\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'resultProcessVariableTooltip' | pluginTranslate: pluginId | async\"\n ></v-input>\n</v-form>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: PluginTranslatePipe, name: "pluginTranslate" }] }); }
5577
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PatchZaakNotitieConfigurationComponent, deps: [{ token: i1$3.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
5578
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: PatchZaakNotitieConfigurationComponent, isStandalone: false, selector: "valtimo-patch-zaaknotitie-configuration", inputs: { disabled$: "disabled$", pluginId: "pluginId", save$: "save$", prefillConfiguration$: "prefillConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null\n } as obs\"\n>\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'patchZaakNotitieInformation' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n\n <v-form (valueChange)=\"onFormValueChanged($event)\">\n <v-input\n name=\"zaakNotitieUrl\"\n [title]=\"'zaakNotitieUrl' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'zaakNotitieUrlTooltip' | pluginTranslate: pluginId | async\"\n [required]=\"true\"\n [defaultValue]=\"obs.prefill?.zaakNotitieUrl\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [trim]=\"true\"\n ></v-input>\n\n <div class=\"row\">\n <div class=\"col-12\">\n <button\n cdsButton=\"primary\"\n class=\"add-button\"\n [size]=\"'md'\"\n [cdsOverflowMenu]=\"addPropertyList\"\n [customPane]=\"true\"\n placement=\"bottom\"\n >\n {{ 'addPatchZaakNotitieProperty' | pluginTranslate: pluginId | async }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n\n @for (property of propertyList; track property) {\n <div class=\"row\">\n <div class=\"col-11\">\n <v-input\n [type]=\"property.type\"\n [name]=\"property.name\"\n [title]=\"property.translationKey | pluginTranslate: pluginId | async\"\n [required]=\"true\"\n [defaultValue]=\"prefillValueFor(property.name, obs.prefill)\"\n [margin]=\"true\"\n [trim]=\"true\"\n [presetOptions]=\"property.presetOptions\"\n (valueChange)=\"onPropertyChanged(property.name, $event)\"\n />\n </div>\n <div class=\"col-1\">\n <button class=\"btn btn-space delete-button\" (click)=\"removeProperty(property.name)\">\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n }\n </v-form>\n</ng-container>\n\n<ng-template #addPropertyList>\n @for (propertyOption of propertyOptions; track propertyOption) {\n <cds-overflow-menu-option\n *ngIf=\"!hasPropertyBeenAdded(propertyOption)\"\n (click)=\"addProperty(propertyOption)\"\n >\n {{ translationKeyForPropertyList(propertyOption) | pluginTranslate: pluginId | async }}\n </cds-overflow-menu-option>\n }\n</ng-template>\n", styles: ["button.delete-button{height:46px;width:46px;margin-top:20px}button.delete-button:hover{background-color:#e12717}button.add-button{margin-block-end:var(--v-input-margin)}::ng-deep .cds--overflow-menu-options{z-index:10000!important;width:230px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading", "dataTestId"] }, { kind: "directive", type: i1$3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i1$3.OverflowMenuDirective, selector: "[cdsOverflowMenu], [ibmOverflowMenu]", inputs: ["ibmOverflowMenu", "cdsOverflowMenu", "flip", "offset", "wrapperClass", "customPane"], exportAs: ["overflowMenu"] }, { kind: "component", type: i1$3.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "directive", type: i1$3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: PluginTranslatePipe, name: "pluginTranslate" }] }); }
5234
5579
  }
5235
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GetZaakbesluitenConfigurationComponent, decorators: [{
5580
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PatchZaakNotitieConfigurationComponent, decorators: [{
5236
5581
  type: Component,
5237
- args: [{ selector: 'valtimo-get-zaakbesluiten-configuration', standalone: false, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"resultProcessVariable\"\n [title]=\"'resultProcessVariable' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.resultProcessVariable\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'resultProcessVariableTooltip' | pluginTranslate: pluginId | async\"\n ></v-input>\n</v-form>\n" }]
5238
- }], propDecorators: { save$: [{
5239
- type: Input
5240
- }], disabled$: [{
5582
+ args: [{ standalone: false, selector: 'valtimo-patch-zaaknotitie-configuration', template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null\n } as obs\"\n>\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'patchZaakNotitieInformation' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n\n <v-form (valueChange)=\"onFormValueChanged($event)\">\n <v-input\n name=\"zaakNotitieUrl\"\n [title]=\"'zaakNotitieUrl' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'zaakNotitieUrlTooltip' | pluginTranslate: pluginId | async\"\n [required]=\"true\"\n [defaultValue]=\"obs.prefill?.zaakNotitieUrl\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [trim]=\"true\"\n ></v-input>\n\n <div class=\"row\">\n <div class=\"col-12\">\n <button\n cdsButton=\"primary\"\n class=\"add-button\"\n [size]=\"'md'\"\n [cdsOverflowMenu]=\"addPropertyList\"\n [customPane]=\"true\"\n placement=\"bottom\"\n >\n {{ 'addPatchZaakNotitieProperty' | pluginTranslate: pluginId | async }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n\n @for (property of propertyList; track property) {\n <div class=\"row\">\n <div class=\"col-11\">\n <v-input\n [type]=\"property.type\"\n [name]=\"property.name\"\n [title]=\"property.translationKey | pluginTranslate: pluginId | async\"\n [required]=\"true\"\n [defaultValue]=\"prefillValueFor(property.name, obs.prefill)\"\n [margin]=\"true\"\n [trim]=\"true\"\n [presetOptions]=\"property.presetOptions\"\n (valueChange)=\"onPropertyChanged(property.name, $event)\"\n />\n </div>\n <div class=\"col-1\">\n <button class=\"btn btn-space delete-button\" (click)=\"removeProperty(property.name)\">\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n }\n </v-form>\n</ng-container>\n\n<ng-template #addPropertyList>\n @for (propertyOption of propertyOptions; track propertyOption) {\n <cds-overflow-menu-option\n *ngIf=\"!hasPropertyBeenAdded(propertyOption)\"\n (click)=\"addProperty(propertyOption)\"\n >\n {{ translationKeyForPropertyList(propertyOption) | pluginTranslate: pluginId | async }}\n </cds-overflow-menu-option>\n }\n</ng-template>\n", styles: ["button.delete-button{height:46px;width:46px;margin-top:20px}button.delete-button:hover{background-color:#e12717}button.add-button{margin-block-end:var(--v-input-margin)}::ng-deep .cds--overflow-menu-options{z-index:10000!important;width:230px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
5583
+ }], ctorParameters: () => [{ type: i1$3.IconService }], propDecorators: { disabled$: [{
5241
5584
  type: Input
5242
5585
  }], pluginId: [{
5243
5586
  type: Input
5587
+ }], save$: [{
5588
+ type: Input
5244
5589
  }], prefillConfiguration$: [{
5245
5590
  type: Input
5246
5591
  }], valid: [{
@@ -5272,13 +5617,14 @@ class ZakenApiPluginModule {
5272
5617
  GetZaakInformatieobjectenComponent,
5273
5618
  SetZaakStatusConfigurationComponent,
5274
5619
  CreateZaakResultaatConfigurationComponent,
5275
- DeleteZaakRolComponent,
5276
5620
  CreateMedewerkerZaakRolComponent,
5277
5621
  CreateNatuurlijkPersoonZaakRolComponent,
5278
5622
  CreateNietNatuurlijkPersoonZaakRolComponent,
5279
5623
  CreateOrganisatorischeEenheidZaakRolComponent,
5280
5624
  CreateVestigingZaakRolComponent,
5625
+ DeleteZaakRolComponent,
5281
5626
  CreateZaakConfigurationComponent,
5627
+ PatchZaakConfigurationComponent,
5282
5628
  SetZaakopschortingComponent,
5283
5629
  StartHersteltermijnConfigurationComponent,
5284
5630
  EndHersteltermijnComponent,
@@ -5288,7 +5634,9 @@ class ZakenApiPluginModule {
5288
5634
  CreateZaakObjectConfigurationComponent,
5289
5635
  RelateerZakenComponent,
5290
5636
  PatchZaakConfigurationComponent,
5291
- GetZaakbesluitenConfigurationComponent], imports: [CommonModule,
5637
+ GetZaakbesluitenConfigurationComponent,
5638
+ CreateZaakNotitieConfigurationComponent,
5639
+ PatchZaakNotitieConfigurationComponent], imports: [CommonModule,
5292
5640
  PluginTranslatePipeModule,
5293
5641
  FormModule,
5294
5642
  InputModule,
@@ -5307,19 +5655,24 @@ class ZakenApiPluginModule {
5307
5655
  FormsModule,
5308
5656
  NotificationModule,
5309
5657
  ReactiveFormsModule,
5310
- TimePickerModule], exports: [ZakenApiConfigurationComponent,
5658
+ TimePickerModule,
5659
+ InputModule,
5660
+ ReactiveFormsModule,
5661
+ ReadOnlyDirective,
5662
+ InputLabelModule], exports: [ZakenApiConfigurationComponent,
5311
5663
  LinkDocumentToZaakConfigurationComponent,
5312
5664
  LinkUploadedDocumentToZaakConfigurationComponent,
5313
5665
  GetZaakInformatieobjectenComponent,
5314
5666
  SetZaakStatusConfigurationComponent,
5315
5667
  CreateZaakResultaatConfigurationComponent,
5316
5668
  CreateZaakConfigurationComponent,
5317
- DeleteZaakRolComponent,
5669
+ PatchZaakConfigurationComponent,
5318
5670
  CreateMedewerkerZaakRolComponent,
5319
5671
  CreateNatuurlijkPersoonZaakRolComponent,
5320
5672
  CreateNietNatuurlijkPersoonZaakRolComponent,
5321
5673
  CreateOrganisatorischeEenheidZaakRolComponent,
5322
5674
  CreateVestigingZaakRolComponent,
5675
+ DeleteZaakRolComponent,
5323
5676
  SetZaakopschortingComponent,
5324
5677
  StartHersteltermijnConfigurationComponent,
5325
5678
  EndHersteltermijnComponent,
@@ -5328,7 +5681,9 @@ class ZakenApiPluginModule {
5328
5681
  DeleteZaakeigenschapComponent,
5329
5682
  CreateZaakObjectConfigurationComponent,
5330
5683
  RelateerZakenComponent,
5331
- GetZaakbesluitenConfigurationComponent] }); }
5684
+ GetZaakbesluitenConfigurationComponent,
5685
+ CreateZaakNotitieConfigurationComponent,
5686
+ PatchZaakNotitieConfigurationComponent] }); }
5332
5687
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ZakenApiPluginModule, imports: [CommonModule,
5333
5688
  PluginTranslatePipeModule,
5334
5689
  FormModule,
@@ -5348,7 +5703,10 @@ class ZakenApiPluginModule {
5348
5703
  FormsModule,
5349
5704
  NotificationModule,
5350
5705
  ReactiveFormsModule,
5351
- TimePickerModule] }); }
5706
+ TimePickerModule,
5707
+ InputModule,
5708
+ ReactiveFormsModule,
5709
+ InputLabelModule] }); }
5352
5710
  }
5353
5711
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ZakenApiPluginModule, decorators: [{
5354
5712
  type: NgModule,
@@ -5360,13 +5718,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
5360
5718
  GetZaakInformatieobjectenComponent,
5361
5719
  SetZaakStatusConfigurationComponent,
5362
5720
  CreateZaakResultaatConfigurationComponent,
5363
- DeleteZaakRolComponent,
5364
5721
  CreateMedewerkerZaakRolComponent,
5365
5722
  CreateNatuurlijkPersoonZaakRolComponent,
5366
5723
  CreateNietNatuurlijkPersoonZaakRolComponent,
5367
5724
  CreateOrganisatorischeEenheidZaakRolComponent,
5368
5725
  CreateVestigingZaakRolComponent,
5726
+ DeleteZaakRolComponent,
5369
5727
  CreateZaakConfigurationComponent,
5728
+ PatchZaakConfigurationComponent,
5370
5729
  SetZaakopschortingComponent,
5371
5730
  StartHersteltermijnConfigurationComponent,
5372
5731
  EndHersteltermijnComponent,
@@ -5377,6 +5736,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
5377
5736
  RelateerZakenComponent,
5378
5737
  PatchZaakConfigurationComponent,
5379
5738
  GetZaakbesluitenConfigurationComponent,
5739
+ CreateZaakNotitieConfigurationComponent,
5740
+ PatchZaakNotitieConfigurationComponent,
5380
5741
  ],
5381
5742
  imports: [
5382
5743
  CommonModule,
@@ -5399,6 +5760,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
5399
5760
  NotificationModule,
5400
5761
  ReactiveFormsModule,
5401
5762
  TimePickerModule,
5763
+ InputModule,
5764
+ ReactiveFormsModule,
5765
+ ReadOnlyDirective,
5766
+ InputLabelModule,
5402
5767
  ],
5403
5768
  exports: [
5404
5769
  ZakenApiConfigurationComponent,
@@ -5408,12 +5773,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
5408
5773
  SetZaakStatusConfigurationComponent,
5409
5774
  CreateZaakResultaatConfigurationComponent,
5410
5775
  CreateZaakConfigurationComponent,
5411
- DeleteZaakRolComponent,
5776
+ PatchZaakConfigurationComponent,
5412
5777
  CreateMedewerkerZaakRolComponent,
5413
5778
  CreateNatuurlijkPersoonZaakRolComponent,
5414
5779
  CreateNietNatuurlijkPersoonZaakRolComponent,
5415
5780
  CreateOrganisatorischeEenheidZaakRolComponent,
5416
5781
  CreateVestigingZaakRolComponent,
5782
+ DeleteZaakRolComponent,
5417
5783
  SetZaakopschortingComponent,
5418
5784
  StartHersteltermijnConfigurationComponent,
5419
5785
  EndHersteltermijnComponent,
@@ -5423,6 +5789,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
5423
5789
  CreateZaakObjectConfigurationComponent,
5424
5790
  RelateerZakenComponent,
5425
5791
  GetZaakbesluitenConfigurationComponent,
5792
+ CreateZaakNotitieConfigurationComponent,
5793
+ PatchZaakNotitieConfigurationComponent,
5426
5794
  ],
5427
5795
  }]
5428
5796
  }] });
@@ -5485,13 +5853,14 @@ const zakenApiPluginSpecification = {
5485
5853
  'get-zaak-informatieobjecten': GetZaakInformatieobjectenComponent,
5486
5854
  'set-zaakstatus': SetZaakStatusConfigurationComponent,
5487
5855
  'create-zaakresultaat': CreateZaakResultaatConfigurationComponent,
5488
- 'delete-zaak-rol': DeleteZaakRolComponent,
5489
5856
  'create-zaak': CreateZaakConfigurationComponent,
5857
+ 'patch-zaak': PatchZaakConfigurationComponent,
5490
5858
  'create-natuurlijk-persoon-zaak-rol': CreateNatuurlijkPersoonZaakRolComponent,
5491
5859
  'create-niet-natuurlijk-persoon-zaak-rol': CreateNietNatuurlijkPersoonZaakRolComponent,
5492
5860
  'create-medewerker-zaak-rol': CreateMedewerkerZaakRolComponent,
5493
5861
  'create-organisatorische-eenheid-zaak-rol': CreateOrganisatorischeEenheidZaakRolComponent,
5494
5862
  'create-vestiging-zaak-rol': CreateVestigingZaakRolComponent,
5863
+ 'delete-zaak-rol': DeleteZaakRolComponent,
5495
5864
  'set-zaakopschorting': SetZaakopschortingComponent,
5496
5865
  'start-hersteltermijn': StartHersteltermijnConfigurationComponent,
5497
5866
  'end-hersteltermijn': EndHersteltermijnComponent,
@@ -5500,8 +5869,9 @@ const zakenApiPluginSpecification = {
5500
5869
  'delete-zaakeigenschap': DeleteZaakeigenschapComponent,
5501
5870
  'create-zaak-object': CreateZaakObjectConfigurationComponent,
5502
5871
  'relateer-zaken': RelateerZakenComponent,
5503
- 'patch-zaak': PatchZaakConfigurationComponent,
5504
5872
  'get-zaakbesluiten': GetZaakbesluitenConfigurationComponent,
5873
+ 'create-zaaknotitie': CreateZaakNotitieConfigurationComponent,
5874
+ 'patch-zaaknotitie': PatchZaakNotitieConfigurationComponent,
5505
5875
  },
5506
5876
  pluginTranslations: {
5507
5877
  nl: {
@@ -5514,6 +5884,11 @@ const zakenApiPluginSpecification = {
5514
5884
  linkUploadedDocumentToZaakMessage: 'Het koppelen van een geupload document aan een zaak heeft geen configuratie nodig.',
5515
5885
  configurationTitle: 'Configuratienaam',
5516
5886
  configurationTitleTooltip: 'Onder deze naam zal de plugin te herkennen zijn in de rest van de applicatie',
5887
+ noteEventListenerEnabled: 'Synchroniseer Dossier notitie als Zaak-notitie naar de Zaak',
5888
+ noteEventListenerEnabledTooltip: 'Wanneer geactiveerd zal bij het aanmaken, updaten of verwijderen van een Dossier notitie deze ook als Zaak-notitie worden gesynchroniseerd naar de Zaak (aangemaakt, bijgewerkt of verwijderd).',
5889
+ 'noteEventListenerEnabled.toggleOn': 'Geactiveerd',
5890
+ 'noteEventListenerEnabled.toggleOff': 'Gedeactiveerd',
5891
+ noteSubject: 'De vaste onderwerp tekst van de Zaak-notitie',
5517
5892
  documentUrl: 'URL naar het document',
5518
5893
  documentUrlTooltip: 'Dit veld ondersteunt URLs en proces variabelen. Gebruik pv:variable om een proces variabele uit te lezen',
5519
5894
  titel: 'Documenttitel',
@@ -5536,6 +5911,7 @@ const zakenApiPluginSpecification = {
5536
5911
  zaakTypeTooltip: 'In dit veld moet de verwijzing komen naar de type zaak.',
5537
5912
  zaakTypeSelectTooltip: 'In dit veld moet de verwijzing komen naar de type zaak. Als er slechts één zaaktype beschikbaar is, wordt deze standaard geselecteerd.',
5538
5913
  inputTypeZaakTypeToggle: 'Invoertype Zaaktype-URL',
5914
+ now: 'Gebruik huidige datum/tijd',
5539
5915
  text: 'Tekst',
5540
5916
  selection: 'Selectie',
5541
5917
  'create-natuurlijk-persoon-zaak-rol': 'Zaakrol aanmaken - Natuurlijk persoon',
@@ -5679,6 +6055,18 @@ const zakenApiPluginSpecification = {
5679
6055
  rolUuid: 'Rol UUID',
5680
6056
  rolUuidTooltip: 'De UUID van de rol',
5681
6057
  createZaakrolNietNatuurlijkPersoonIdentifierFieldsInformation: 'Minimaal &eacute;&eacute;n van de volgende velden moet worden ingevuld als identificatie voor de niet natuurlijke persoon:<br/>- Niet natuurlijk persoonsnummer<br/>- Ander niet natuurlijk persoon identificatie<br/>- KVK-nummer<br/>- Vestigingsnummer',
6058
+ 'create-zaaknotitie': 'Zaak-notitie aanmaken',
6059
+ createZaakNotitieInformation: 'Deze actie maakt het mogelijk een Zaak-notitie aan de Zaak in de Zaken API toe te voegen.',
6060
+ 'patch-zaaknotitie': 'Zaak-notitie bijwerken',
6061
+ patchZaakNotitieInformation: 'Deze actie maakt het mogelijk eigenschappen van de Zaak-notitie gekoppeld aan de Zaak in de Zaken API bij te werken.',
6062
+ addPatchZaakNotitieProperty: 'Voeg parameter toe',
6063
+ zaakNotitieUrl: 'Zaak-notitie URL',
6064
+ zaakNotitieUrlTooltip: 'De URL referentie naar de Zaak-notitie in de Zaken API.',
6065
+ onderwerp: 'Onderwerp',
6066
+ tekst: 'Tekst',
6067
+ aangemaaktDoor: 'Aangemaakt door',
6068
+ notitieType: 'Notitietype',
6069
+ status: 'Status',
5682
6070
  },
5683
6071
  en: {
5684
6072
  title: 'Zaken API',
@@ -5690,6 +6078,11 @@ const zakenApiPluginSpecification = {
5690
6078
  linkUploadedDocumentToZaakMessage: 'Linking an uploaded document to a zaak requires no configuration.',
5691
6079
  configurationTitle: 'Configuration name',
5692
6080
  configurationTitleTooltip: 'With this name the plugin will be recognizable in the rest of the application',
6081
+ noteEventListenerEnabled: 'Synchronise Case note as Zaak-notitie to the Zaak',
6082
+ noteEventListenerEnabledTooltip: 'When enabled, when creating, updating or deleting a Case note it will also be synchronized as a Zaak-notitie to the Zaak (created, updated or deleted)',
6083
+ 'noteEventListenerEnabled.toggleOn': 'Enabled',
6084
+ 'noteEventListenerEnabled.toggleOff': 'Disabled',
6085
+ noteSubject: 'The fixed subject text of the Zaak-notitie',
5693
6086
  documentUrl: 'URL to the document',
5694
6087
  documentUrlTooltip: 'This field supports URLs and process variables. Use pv:variable to read a process variable',
5695
6088
  titel: 'Document title',
@@ -5712,6 +6105,7 @@ const zakenApiPluginSpecification = {
5712
6105
  zaakTypeTooltip: 'In this field the reference must be made to the type of the zaak.',
5713
6106
  zaakTypeSelectTooltip: 'In this field the reference must be made to the type of the zaak. If only one zaaktype is available, it will be selected by default.',
5714
6107
  inputTypeZaakTypeToggle: 'Input type Zaaktype-URL',
6108
+ now: 'Use current date/time',
5715
6109
  text: 'Text',
5716
6110
  selection: 'Selection',
5717
6111
  'create-natuurlijk-persoon-zaak-rol': 'Create Zaakrol - natural person',
@@ -5853,7 +6247,19 @@ const zakenApiPluginSpecification = {
5853
6247
  rolUuid: 'Rol UUID',
5854
6248
  rolUuidTooltip: 'The UUID of the rol',
5855
6249
  'get-zaak-informatieobjecten': 'Get zaak informatieobjecten',
5856
- resultProcessVariableTooltip: 'The name of the process variable in which the result is stored.'
6250
+ resultProcessVariableTooltip: 'The name of the process variable in which the result is stored.',
6251
+ 'create-zaaknotitie': 'Create Zaak-notitie',
6252
+ createZaakNotitieInformation: 'This action allows you to add a Zaak-notitie to the Zaak in the Zaken API.',
6253
+ 'patch-zaaknotitie': 'Update Zaak-notitie',
6254
+ patchZaakNotitieInformation: 'This action allows you to update properties of the Zaak-notitie linked to the Zaak in the Zaken API.',
6255
+ addPatchZaakNotitieProperty: 'Add property',
6256
+ zaakNotitieUrl: 'Zaak-notitie URL',
6257
+ zaakNotitieUrlTooltip: 'The reference URL to the Zaak-notitie in the Zaken API',
6258
+ onderwerp: 'Subject',
6259
+ tekst: 'Text',
6260
+ aangemaaktDoor: 'Created by',
6261
+ notitieType: 'Note type',
6262
+ status: 'Status',
5857
6263
  },
5858
6264
  de: {
5859
6265
  title: 'Zaken API',
@@ -5865,6 +6271,11 @@ const zakenApiPluginSpecification = {
5865
6271
  linkUploadedDocumentToZaakMessage: 'Das Verknüpfen eines hochgeladenen Dokuments mit einem Zaak erfordert keine Konfiguration.',
5866
6272
  configurationTitle: 'Konfigurationsname',
5867
6273
  configurationTitleTooltip: 'An diesem Namen wird das Plugin im Rest der Anwendung erkennbar sein',
6274
+ noteEventListenerEnabled: 'Fallnotiz als Zaak-notitie mit Zaak synchronisieren',
6275
+ noteEventListenerEnabledTooltip: 'Wenn aktiviert, wird beim Erstellen, Aktualisieren oder Löschen einer Fallnotiz diese auch als Zaak-notitie mit dem entsprechenden Zaak (erstellt, aktualisiert oder gelöscht) synchronisiert.',
6276
+ 'noteEventListenerEnabled.toggleOn': 'Aktiviert',
6277
+ 'noteEventListenerEnabled.toggleOff': 'Deaktiviert',
6278
+ noteSubject: 'Der festgelegte Betrefftext der Zaak-notitie',
5868
6279
  documentUrl: 'URL zum Dokument',
5869
6280
  documentUrlTooltip: 'Dieses Feld unterstützt URLs und Prozessvariablen. Verwenden Sie pv:Variablen, um eine Prozessvariable zu lesen',
5870
6281
  titel: 'Dokumenttitel',
@@ -5887,6 +6298,7 @@ const zakenApiPluginSpecification = {
5887
6298
  zaakTypeTooltip: 'In diesem Feld muss auf die zaaktype verwiesen werden.',
5888
6299
  zaakTypeSelectTooltip: 'In diesem Feld muss auf die zaaktype verwiesen werden. Wenn nur ein Zaaktyp verfügbar ist, wird dieser standardmäßig ausgewählt.',
5889
6300
  inputTypeZaakTypeToggle: 'Eingabetyp Zaaktype-URL',
6301
+ now: 'Aktuelles Datum/Uhrzeit verwenden',
5890
6302
  text: 'Text',
5891
6303
  selection: 'Auswahl',
5892
6304
  'create-natuurlijk-persoon-zaak-rol': 'Zaakrol erstellen – natürliche Person',
@@ -6029,6 +6441,18 @@ const zakenApiPluginSpecification = {
6029
6441
  rolUuid: 'Rolle UUID',
6030
6442
  rolUuidTooltip: 'Die UUID der Rolle',
6031
6443
  createZaakrolNietNatuurlijkPersoonIdentifierFieldsInformation: 'At least one of the following fields must be completed to identify the non-natural person:<br/>- Not a natural person identification<br/>- Other not natural person number<br/>- Chamber of Commerce number<br/>- Branch number',
6444
+ 'create-zaaknotitie': 'Zaak-notitie erstellen',
6445
+ createZaakNotitieInformation: 'Mit dieser Aktion können Sie dem Zaak in der Zaken-API eine Zaak-notitie hinzufügen.',
6446
+ 'patch-zaaknotitie': 'Zaak-notitie aktualisieren',
6447
+ patchZaakNotitieInformation: 'Mit dieser Aktion können Sie die Eigenschaften der mit dem Zaak verknüpften Zaak-notitie in der Zaken-API aktualisieren.',
6448
+ addPatchZaakNotitieProperty: 'Parameter hinzufügen',
6449
+ zaakNotitieUrl: 'Zaak-notitie-URL',
6450
+ zaakNotitieUrlTooltip: 'URL-Referenz zur der Zaak-notitie in der Zaken-API',
6451
+ onderwerp: 'Betreff',
6452
+ tekst: 'Text',
6453
+ aangemaaktDoor: 'Erstellt von',
6454
+ notitieType: 'Notiztyp',
6455
+ status: 'Status',
6032
6456
  },
6033
6457
  },
6034
6458
  };
@@ -6645,11 +7069,11 @@ class GetResultaattypenConfigurationComponent {
6645
7069
  });
6646
7070
  }
6647
7071
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GetResultaattypenConfigurationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6648
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: GetResultaattypenConfigurationComponent, isStandalone: false, selector: "valtimo-get-resultaattypen-configuration", inputs: { disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$", save$: "save$" }, outputs: { configuration: "configuration", valid: "valid" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'getResultaattypenInformation' | pluginTranslate: pluginId }}\n </v-paragraph>\n\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-input\n name=\"processVariable\"\n [title]=\"'processVariable' | pluginTranslate: pluginId\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.processVariable\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'processVariableTooltip' | pluginTranslate: pluginId\"\n [fullWidth]=\"true\"\n >\n </v-input>\n\n <v-input\n name=\"zaakTypeUrl\"\n [title]=\"'zaakTypeUrl' | pluginTranslate: pluginId\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.zaakTypeUrl\"\n [disabled]=\"obs.disabled\"\n [required]=\"false\"\n [trim]=\"true\"\n [tooltip]=\"'zaakTypeUrlTooltip' | pluginTranslate: pluginId\"\n [fullWidth]=\"true\"\n >\n </v-input>\n </v-form>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading", "dataTestId"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: PluginTranslatePipe, name: "pluginTranslate" }] }); }
7072
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: GetResultaattypenConfigurationComponent, isStandalone: false, selector: "valtimo-get-resultaattypen-configuration", inputs: { disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$", save$: "save$" }, outputs: { configuration: "configuration", valid: "valid" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'getResultaattypenInformation' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-input\n name=\"processVariable\"\n [title]=\"'processVariable' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.processVariable\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'processVariableTooltip' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n >\n </v-input>\n\n <v-input\n name=\"zaakTypeUrl\"\n [title]=\"'zaakTypeUrl' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.zaakTypeUrl\"\n [disabled]=\"obs.disabled\"\n [required]=\"false\"\n [trim]=\"true\"\n [tooltip]=\"'zaakTypeUrlTooltip' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n >\n </v-input>\n </v-form>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading", "dataTestId"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: PluginTranslatePipe, name: "pluginTranslate" }] }); }
6649
7073
  }
6650
7074
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GetResultaattypenConfigurationComponent, decorators: [{
6651
7075
  type: Component,
6652
- args: [{ standalone: false, selector: 'valtimo-get-resultaattypen-configuration', template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'getResultaattypenInformation' | pluginTranslate: pluginId }}\n </v-paragraph>\n\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-input\n name=\"processVariable\"\n [title]=\"'processVariable' | pluginTranslate: pluginId\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.processVariable\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'processVariableTooltip' | pluginTranslate: pluginId\"\n [fullWidth]=\"true\"\n >\n </v-input>\n\n <v-input\n name=\"zaakTypeUrl\"\n [title]=\"'zaakTypeUrl' | pluginTranslate: pluginId\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.zaakTypeUrl\"\n [disabled]=\"obs.disabled\"\n [required]=\"false\"\n [trim]=\"true\"\n [tooltip]=\"'zaakTypeUrlTooltip' | pluginTranslate: pluginId\"\n [fullWidth]=\"true\"\n >\n </v-input>\n </v-form>\n</ng-container>\n" }]
7076
+ args: [{ standalone: false, selector: 'valtimo-get-resultaattypen-configuration', template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'getResultaattypenInformation' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-input\n name=\"processVariable\"\n [title]=\"'processVariable' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.processVariable\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'processVariableTooltip' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n >\n </v-input>\n\n <v-input\n name=\"zaakTypeUrl\"\n [title]=\"'zaakTypeUrl' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.zaakTypeUrl\"\n [disabled]=\"obs.disabled\"\n [required]=\"false\"\n [trim]=\"true\"\n [tooltip]=\"'zaakTypeUrlTooltip' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n >\n </v-input>\n </v-form>\n</ng-container>\n" }]
6653
7077
  }], propDecorators: { disabled$: [{
6654
7078
  type: Input
6655
7079
  }], pluginId: [{
@@ -8845,6 +9269,75 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
8845
9269
  type: Output
8846
9270
  }] } });
8847
9271
 
9272
+ /*
9273
+ * Copyright 2015-2025 Ritense BV, the Netherlands.
9274
+ *
9275
+ * Licensed under EUPL, Version 1.2 (the "License");
9276
+ * you may not use this file except in compliance with the License.
9277
+ * You may obtain a copy of the License at
9278
+ *
9279
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9280
+ *
9281
+ * Unless required by applicable law or agreed to in writing, software
9282
+ * distributed under the License is distributed on an "AS IS" basis,
9283
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9284
+ * See the License for the specific language governing permissions and
9285
+ * limitations under the License.
9286
+ */
9287
+ class GetBesluitConfigurationComponent {
9288
+ constructor() {
9289
+ this.valid = new EventEmitter();
9290
+ this.configuration = new EventEmitter();
9291
+ this.formValue$ = new BehaviorSubject(null);
9292
+ this.valid$ = new BehaviorSubject(false);
9293
+ }
9294
+ ngOnInit() {
9295
+ this.openSaveSubscription();
9296
+ this.valid.emit(false);
9297
+ }
9298
+ ngOnDestroy() {
9299
+ this.saveSubscription?.unsubscribe();
9300
+ }
9301
+ openSaveSubscription() {
9302
+ this.saveSubscription = this.save$?.subscribe(() => {
9303
+ combineLatest([this.formValue$, this.valid$])
9304
+ .pipe(take(1))
9305
+ .subscribe(([formValue, valid]) => {
9306
+ if (valid) {
9307
+ this.configuration.emit(formValue);
9308
+ }
9309
+ });
9310
+ });
9311
+ }
9312
+ formValueChange(formValue) {
9313
+ this.formValue$.next(formValue);
9314
+ this.handleValid(formValue);
9315
+ }
9316
+ handleValid(formValue) {
9317
+ const valid = !!formValue?.besluitUrl && !!formValue?.resultProcessVariable;
9318
+ this.valid$.next(valid);
9319
+ this.valid.emit(valid);
9320
+ }
9321
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GetBesluitConfigurationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9322
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: GetBesluitConfigurationComponent, isStandalone: false, selector: "valtimo-get-besluit-configuration", inputs: { save$: "save$", disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"besluitUrl\"\n [title]=\"'besluitUrl' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.besluitUrl\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'besluitUrlTooltip' | pluginTranslate: pluginId | async\"\n ></v-input>\n <v-input\n name=\"resultProcessVariable\"\n [title]=\"'resultProcessVariable' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.resultProcessVariable\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'resultProcessVariableTooltip' | pluginTranslate: pluginId | async\"\n ></v-input>\n</v-form>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: PluginTranslatePipe, name: "pluginTranslate" }] }); }
9323
+ }
9324
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GetBesluitConfigurationComponent, decorators: [{
9325
+ type: Component,
9326
+ args: [{ selector: 'valtimo-get-besluit-configuration', standalone: false, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"besluitUrl\"\n [title]=\"'besluitUrl' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.besluitUrl\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'besluitUrlTooltip' | pluginTranslate: pluginId | async\"\n ></v-input>\n <v-input\n name=\"resultProcessVariable\"\n [title]=\"'resultProcessVariable' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.resultProcessVariable\"\n [disabled]=\"obs.disabled\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'resultProcessVariableTooltip' | pluginTranslate: pluginId | async\"\n ></v-input>\n</v-form>\n" }]
9327
+ }], propDecorators: { save$: [{
9328
+ type: Input
9329
+ }], disabled$: [{
9330
+ type: Input
9331
+ }], pluginId: [{
9332
+ type: Input
9333
+ }], prefillConfiguration$: [{
9334
+ type: Input
9335
+ }], valid: [{
9336
+ type: Output
9337
+ }], configuration: [{
9338
+ type: Output
9339
+ }] } });
9340
+
8848
9341
  /*
8849
9342
  * Copyright 2015-2025 Ritense BV, the Netherlands.
8850
9343
  *
@@ -8865,7 +9358,8 @@ class BesluitenApiPluginModule {
8865
9358
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: BesluitenApiPluginModule, declarations: [BesluitenApiConfigurationComponent,
8866
9359
  CreateZaakBesluitConfigurationComponent,
8867
9360
  PatchZaakBesluitConfigurationComponent,
8868
- LinkDocumentToBesluitConfigurationComponent], imports: [CommonModule,
9361
+ LinkDocumentToBesluitConfigurationComponent,
9362
+ GetBesluitConfigurationComponent], imports: [CommonModule,
8869
9363
  PluginTranslatePipeModule,
8870
9364
  FormModule,
8871
9365
  InputModule,
@@ -8879,7 +9373,8 @@ class BesluitenApiPluginModule {
8879
9373
  IconModule], exports: [BesluitenApiConfigurationComponent,
8880
9374
  CreateZaakBesluitConfigurationComponent,
8881
9375
  PatchZaakBesluitConfigurationComponent,
8882
- LinkDocumentToBesluitConfigurationComponent] }); }
9376
+ LinkDocumentToBesluitConfigurationComponent,
9377
+ GetBesluitConfigurationComponent] }); }
8883
9378
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BesluitenApiPluginModule, imports: [CommonModule,
8884
9379
  PluginTranslatePipeModule,
8885
9380
  FormModule,
@@ -8901,6 +9396,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
8901
9396
  CreateZaakBesluitConfigurationComponent,
8902
9397
  PatchZaakBesluitConfigurationComponent,
8903
9398
  LinkDocumentToBesluitConfigurationComponent,
9399
+ GetBesluitConfigurationComponent,
8904
9400
  ],
8905
9401
  imports: [
8906
9402
  CommonModule,
@@ -8921,6 +9417,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
8921
9417
  CreateZaakBesluitConfigurationComponent,
8922
9418
  PatchZaakBesluitConfigurationComponent,
8923
9419
  LinkDocumentToBesluitConfigurationComponent,
9420
+ GetBesluitConfigurationComponent,
8924
9421
  ],
8925
9422
  }]
8926
9423
  }] });
@@ -8981,6 +9478,7 @@ const besluitenApiPluginSpecification = {
8981
9478
  'create-besluit': CreateZaakBesluitConfigurationComponent,
8982
9479
  'patch-besluit': PatchZaakBesluitConfigurationComponent,
8983
9480
  'link-document-to-besluit': LinkDocumentToBesluitConfigurationComponent,
9481
+ 'get-besluit': GetBesluitConfigurationComponent,
8984
9482
  },
8985
9483
  pluginTranslations: {
8986
9484
  nl: {
@@ -9038,6 +9536,9 @@ const besluitenApiPluginSpecification = {
9038
9536
  beslisdatum: 'Beslisdatum',
9039
9537
  beslisdatumTooltip: 'De beslisdatum (AWB) van het besluit. Ondersteunt value resolver. Ondersteunende datum voorbeelden: 2024-04-01, 2024-04-01T12:10:00, 2024-04-01T12:10:06.069Z',
9040
9538
  addPatchBesluitProperty: 'Voeg nieuwe parameter toe',
9539
+ 'get-besluit': 'Besluit ophalen',
9540
+ resultProcessVariable: 'Resultaat process variable',
9541
+ resultProcessVariableTooltip: 'De naam van de procesvariabele waarin het resultaat moet worden opgeslagen.',
9041
9542
  },
9042
9543
  en: {
9043
9544
  title: 'Besluiten API',
@@ -9094,6 +9595,9 @@ const besluitenApiPluginSpecification = {
9094
9595
  beslisdatum: 'Decision date',
9095
9596
  beslisdatumTooltip: 'The decision date (AWB) of the decision. Supports value resolver. Supported date examples: 2024-04-01, 2024-04-01T12:10:00, 2024-04-01T12:10:06.069Z',
9096
9597
  addPatchBesluitProperty: 'Add besluit property',
9598
+ 'get-besluit': 'Retrieve besluit',
9599
+ resultProcessVariable: 'Result process variable',
9600
+ resultProcessVariableTooltip: 'The name of the process variable in which the result must be stored.',
9097
9601
  },
9098
9602
  },
9099
9603
  };
@@ -9683,5 +10187,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
9683
10187
  * Generated bundle index. Do not edit.
9684
10188
  */
9685
10189
 
9686
- export { BesluitenApiConfigurationComponent, BesluitenApiPluginModule, CatalogiApiConfigurationComponent, CatalogiApiPluginModule, CompletePortalTaskComponent, CreateMedewerkerZaakRolComponent, CreateNatuurlijkPersoonZaakRolComponent, CreateNietNatuurlijkPersoonZaakRolComponent, CreateOrganisatorischeEenheidZaakRolComponent, CreatePersoonComponent, CreatePortalTaskComponent, CreateVestigingZaakRolComponent, CreateZaakBesluitConfigurationComponent, CreateZaakConfigurationComponent, CreateZaakObjectConfigurationComponent, CreateZaakResultaatConfigurationComponent, CreateZaakeigenschapComponent, DeleteObjectComponent, DeleteZaakRolComponent, DeleteZaakeigenschapComponent, DocumentenApiConfigurationComponent, DocumentenApiPluginModule, DownloadDocumentConfigurationComponent, EndHersteltermijnComponent, ExactPluginModule, GenerateDocumentConfigurationComponent, GetBesluittypeConfigurationComponent, GetEigenschapConfigurationComponent, GetResultaattypeConfigurationComponent, GetResultaattypenConfigurationComponent, GetStatustypeConfigurationComponent, GetStatustypenConfigurationComponent, GetTemplateNamesComponent, GetZaakInformatieobjectenComponent, GetZaakbesluitenConfigurationComponent, IkoConfigurationComponent, IkoPluginModule, KlantinteractiesApiConfigurationComponent, KlantinteractiesApiPluginModule, LinkDocumentToBesluitConfigurationComponent, LinkDocumentToZaakConfigurationComponent, LinkUploadedDocumentToZaakConfigurationComponent, NotificatiesApiConfigurationComponent, NotificatiesApiPluginModule, ObjectTokenAuthencationConfigurationComponent, ObjectTokenAuthenticationPluginModule, ObjectenApiConfigurationComponent, ObjectenApiPluginModule, ObjecttypenApiConfigurationComponent, ObjecttypenApiPluginModule, OpenKlantTokenAuthenticationConfigurationComponent, OpenKlantTokenAuthenticationPluginModule, OpenNotificatiesConfigurationComponent, OpenNotificatiesPluginModule, OpenZaakConfigurationComponent, OpenZaakPluginModule, PLUGINS_TOKEN, PatchZaakBesluitConfigurationComponent, PluginConfigurationContainerComponent, PluginConfigurationContainerModule, PluginManagementService, PluginService, PluginTranslatePipe, PluginTranslatePipeModule, PluginTranslationService, PortaaltaakConfigurationComponent, PortaaltaakPluginModule, RelateerZakenComponent, SetZaakStatusConfigurationComponent, SetZaakopschortingComponent, SmartDocumentsConfigurationComponent, SmartDocumentsPluginModule, StartHersteltermijnConfigurationComponent, StoreTempDocumentConfigurationComponent, StoreUploadedDocumentConfigurationComponent, StoreUploadedDocumentInPartsConfigurationComponent, UpdateZaakeigenschapComponent, VerzoekConfigurationComponent, VerzoekPluginModule, ZakenApiConfigurationComponent, ZakenApiPluginModule, besluitenApiPluginSpecification, catalogiApiPluginSpecification, documentenApiPluginSpecification, exactPluginSpecification, ikoPluginSpecification, klantinteractiesApiPluginSpecification, notificatiesApiPluginSpecification, objectTokenAuthenticationPluginSpecification, objectenApiPluginSpecification, objecttypenApiPluginSpecification, openKlantTokenAuthenticationPluginSpecification, openNotificatiesPluginSpecification, openZaakPluginSpecification, portaaltaakPluginSpecification, smartDocumentsPluginSpecification, verzoekPluginSpecification, zakenApiPluginSpecification };
10190
+ export { BesluitenApiConfigurationComponent, BesluitenApiPluginModule, CatalogiApiConfigurationComponent, CatalogiApiPluginModule, CompletePortalTaskComponent, CreateMedewerkerZaakRolComponent, CreateNatuurlijkPersoonZaakRolComponent, CreateNietNatuurlijkPersoonZaakRolComponent, CreateOrganisatorischeEenheidZaakRolComponent, CreatePersoonComponent, CreatePortalTaskComponent, CreateVestigingZaakRolComponent, CreateZaakBesluitConfigurationComponent, CreateZaakConfigurationComponent, CreateZaakNotitieConfigurationComponent, CreateZaakObjectConfigurationComponent, CreateZaakResultaatConfigurationComponent, CreateZaakeigenschapComponent, DeleteObjectComponent, DeleteZaakRolComponent, DeleteZaakeigenschapComponent, DocumentenApiConfigurationComponent, DocumentenApiPluginModule, DownloadDocumentConfigurationComponent, EndHersteltermijnComponent, ExactPluginModule, GenerateDocumentConfigurationComponent, GetBesluitConfigurationComponent, GetBesluittypeConfigurationComponent, GetEigenschapConfigurationComponent, GetResultaattypeConfigurationComponent, GetResultaattypenConfigurationComponent, GetStatustypeConfigurationComponent, GetStatustypenConfigurationComponent, GetTemplateNamesComponent, GetZaakInformatieobjectenComponent, GetZaakbesluitenConfigurationComponent, IkoConfigurationComponent, IkoPluginModule, KlantinteractiesApiConfigurationComponent, KlantinteractiesApiPluginModule, LinkDocumentToBesluitConfigurationComponent, LinkDocumentToZaakConfigurationComponent, LinkUploadedDocumentToZaakConfigurationComponent, NotificatiesApiConfigurationComponent, NotificatiesApiPluginModule, ObjectTokenAuthencationConfigurationComponent, ObjectTokenAuthenticationPluginModule, ObjectenApiConfigurationComponent, ObjectenApiPluginModule, ObjecttypenApiConfigurationComponent, ObjecttypenApiPluginModule, OpenKlantTokenAuthenticationConfigurationComponent, OpenKlantTokenAuthenticationPluginModule, OpenNotificatiesConfigurationComponent, OpenNotificatiesPluginModule, OpenZaakConfigurationComponent, OpenZaakPluginModule, PLUGINS_TOKEN, PatchZaakBesluitConfigurationComponent, PatchZaakConfigurationComponent, PatchZaakNotitieConfigurationComponent, PluginConfigurationContainerComponent, PluginConfigurationContainerModule, PluginManagementService, PluginService, PluginTranslatePipe, PluginTranslatePipeModule, PluginTranslationService, PortaaltaakConfigurationComponent, PortaaltaakPluginModule, RelateerZakenComponent, SetZaakStatusConfigurationComponent, SetZaakopschortingComponent, SmartDocumentsConfigurationComponent, SmartDocumentsPluginModule, StartHersteltermijnConfigurationComponent, StoreTempDocumentConfigurationComponent, StoreUploadedDocumentConfigurationComponent, StoreUploadedDocumentInPartsConfigurationComponent, UpdateZaakeigenschapComponent, VerzoekConfigurationComponent, VerzoekPluginModule, ZakenApiConfigurationComponent, ZakenApiPluginModule, besluitenApiPluginSpecification, catalogiApiPluginSpecification, documentenApiPluginSpecification, exactPluginSpecification, ikoPluginSpecification, klantinteractiesApiPluginSpecification, notificatiesApiPluginSpecification, objectTokenAuthenticationPluginSpecification, objectenApiPluginSpecification, objecttypenApiPluginSpecification, openKlantTokenAuthenticationPluginSpecification, openNotificatiesPluginSpecification, openZaakPluginSpecification, portaaltaakPluginSpecification, smartDocumentsPluginSpecification, verzoekPluginSpecification, zakenApiPluginSpecification };
9687
10191
  //# sourceMappingURL=valtimo-plugin.mjs.map