@valtimo/components 13.16.0 → 13.17.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.
@@ -7,7 +7,7 @@ import { filter, map as map$1, take, tap, debounceTime, distinctUntilChanged, ta
7
7
  import * as i1$1 from '@angular/common/http';
8
8
  import { HttpClient } from '@angular/common/http';
9
9
  import * as i1$2 from '@valtimo/shared';
10
- import { BaseApiService, VERSIONS, HttpLoaderFactory, getContextObservable, getCaseManagementRouteParams, getBuildingBlockManagementRouteParams, UrlUtils, ConfigService } from '@valtimo/shared';
10
+ import { BaseApiService, VERSIONS, HttpLoaderFactory, getContextObservable, getCaseManagementRouteParams, getBuildingBlockManagementRouteParams } from '@valtimo/shared';
11
11
  import * as i1$4 from '@angular/common';
12
12
  import { DOCUMENT, CommonModule, registerLocaleData, CurrencyPipe, DecimalPipe, PercentPipe } from '@angular/common';
13
13
  import * as i1$3 from '@angular/router';
@@ -40,11 +40,11 @@ import moment$1 from 'moment/moment';
40
40
  import BpmnViewer from 'bpmn-js';
41
41
  import heatmap from 'heatmap.js-fixed/build/heatmap.js';
42
42
  import * as i1$6 from '@valtimo/resource';
43
- import { S3Resource, ResourceModule } from '@valtimo/resource';
43
+ import { S3Resource, ResourceModule, UploadProviderService } from '@valtimo/resource';
44
44
  import { jwtDecode } from 'jwt-decode';
45
45
  import Dropzone from 'dropzone';
46
46
  import * as i3$1 from '@valtimo/document';
47
- import { DocumentModule, DocumentService, InternalCaseStatusUtils, CaseTagsUtils } from '@valtimo/document';
47
+ import { DocumentModule, InternalCaseStatusUtils, CaseTagsUtils } from '@valtimo/document';
48
48
  import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
49
49
  import { trigger, transition, style, animate } from '@angular/animations';
50
50
  import * as i1$7 from '@angular/cdk/overlay';
@@ -286,7 +286,7 @@ var MonacoTheme;
286
286
  })(MonacoTheme || (MonacoTheme = {}));
287
287
 
288
288
  /*
289
- * Copyright 2015-2025 Ritense BV, the Netherlands.
289
+ * Copyright 2015-2026 Ritense BV, the Netherlands.
290
290
  *
291
291
  * Licensed under EUPL, Version 1.2 (the "License");
292
292
  * you may not use this file except in compliance with the License.
@@ -8188,7 +8188,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
8188
8188
  */
8189
8189
  class FormIoStateService {
8190
8190
  constructor() {
8191
- this._documentDefinitionName$ = new BehaviorSubject(undefined);
8191
+ this._caseDefinitionKey$ = new BehaviorSubject(undefined);
8192
8192
  this._documentId$ = new BehaviorSubject(undefined);
8193
8193
  this._$processInstanceId = signal('');
8194
8194
  this._currentForm$ = new BehaviorSubject(undefined);
@@ -8196,11 +8196,11 @@ class FormIoStateService {
8196
8196
  get processInstanceId() {
8197
8197
  return this._$processInstanceId();
8198
8198
  }
8199
- get documentDefinitionName$() {
8200
- return this._documentDefinitionName$.asObservable();
8199
+ get caseDefinitionKey$() {
8200
+ return this._caseDefinitionKey$.asObservable();
8201
8201
  }
8202
- setDocumentDefinitionName(documentDefinitionName) {
8203
- this._documentDefinitionName$.next(documentDefinitionName);
8202
+ setCaseDefinitionKey(caseDefinitionKey) {
8203
+ this._caseDefinitionKey$.next(caseDefinitionKey);
8204
8204
  }
8205
8205
  get documentId$() {
8206
8206
  return this._documentId$.asObservable();
@@ -8443,11 +8443,9 @@ class FormioComponent {
8443
8443
  this.tagsService.reregisterTags(this.injector);
8444
8444
  }
8445
8445
  ngOnInit() {
8446
- if (!Formio.projectUrlSet) {
8447
- Formio.setBaseUrl(location.origin);
8448
- Formio.setProjectUrl(location.origin);
8449
- Formio.authUrl = location.origin;
8450
- }
8446
+ Formio.setBaseUrl(location.origin);
8447
+ Formio.setProjectUrl(location.origin);
8448
+ Formio.authUrl = location.origin;
8451
8449
  this.openRouteSubscription();
8452
8450
  this.errors$.next([]);
8453
8451
  this.setInitialToken();
@@ -8544,10 +8542,10 @@ class FormioComponent {
8544
8542
  }
8545
8543
  openRouteSubscription() {
8546
8544
  this._subscriptions.add(this.route.params.subscribe(params => {
8547
- const documentDefinitionName = params.documentDefinitionName;
8545
+ const caseDefinitionKey = params.caseDefinitionKey;
8548
8546
  const documentId = params.documentId;
8549
- if (documentDefinitionName) {
8550
- this.stateService.setDocumentDefinitionName(documentDefinitionName);
8547
+ if (caseDefinitionKey) {
8548
+ this.stateService.setCaseDefinitionKey(caseDefinitionKey);
8551
8549
  }
8552
8550
  if (documentId) {
8553
8551
  this.stateService.setDocumentId(documentId);
@@ -8587,7 +8585,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
8587
8585
  }] } });
8588
8586
 
8589
8587
  /*
8590
- * Copyright 2015-2025 Ritense BV, the Netherlands.
8588
+ * Copyright 2015-2026 Ritense BV, the Netherlands.
8591
8589
  *
8592
8590
  * Licensed under EUPL, Version 1.2 (the "License");
8593
8591
  * you may not use this file except in compliance with the License.
@@ -8601,8 +8599,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
8601
8599
  * See the License for the specific language governing permissions and
8602
8600
  * limitations under the License.
8603
8601
  */
8604
- let formioParams;
8605
- const modiyEditFormApiKeyInput = (editForm) => {
8602
+ const formioParams$ = new BehaviorSubject(null);
8603
+ let formioParamsSubscription = null;
8604
+ const modifyEditFormApiKeyInput = (editForm) => {
8606
8605
  const keyField = editForm?.components
8607
8606
  ?.find(element => element?.key === 'tabs')
8608
8607
  ?.components?.find(element => element?.key === 'api')
@@ -8611,10 +8610,17 @@ const modiyEditFormApiKeyInput = (editForm) => {
8611
8610
  delete keyField.validate;
8612
8611
  return editForm;
8613
8612
  };
8614
- const addValueResolverSelectorToEditform = (editForm, params) => {
8613
+ const addValueResolverSelectorToEditform = (editForm, params$) => {
8615
8614
  const valtimoWindow = window;
8616
8615
  const valueResolverTabKey = 'valueResolver';
8617
- formioParams = params;
8616
+ // Unsubscribe from the previous subscription if it exists
8617
+ if (formioParamsSubscription) {
8618
+ formioParamsSubscription.unsubscribe();
8619
+ }
8620
+ // Subscribe to the params Observable and forward values to the BehaviorSubject
8621
+ formioParamsSubscription = params$.subscribe(params => {
8622
+ formioParams$.next(params);
8623
+ });
8618
8624
  if (valtimoWindow?.flags?.formioValueResolverSelectorComponentRegistered) {
8619
8625
  const tabComponents = editForm?.components?.find(element => element.key === 'tabs')?.components;
8620
8626
  const hasValueResolverTab = tabComponents?.find(component => component.key === valueResolverTabKey);
@@ -8652,7 +8658,7 @@ const addValueResolverSelectorToEditform = (editForm, params) => {
8652
8658
  };
8653
8659
 
8654
8660
  /*
8655
- * Copyright 2015-2025 Ritense BV, the Netherlands.
8661
+ * Copyright 2015-2026 Ritense BV, the Netherlands.
8656
8662
  *
8657
8663
  * Licensed under EUPL, Version 1.2 (the "License");
8658
8664
  * you may not use this file except in compliance with the License.
@@ -8719,7 +8725,7 @@ class FormioBuilderComponent {
8719
8725
  const originalEditForm = Components.baseEditForm;
8720
8726
  Components.baseEditForm = function (...extend) {
8721
8727
  const editForm = originalEditForm(...extend);
8722
- modiyEditFormApiKeyInput(editForm);
8728
+ modifyEditFormApiKeyInput(editForm);
8723
8729
  addValueResolverSelectorToEditform(editForm, params$);
8724
8730
  return editForm;
8725
8731
  };
@@ -8766,11 +8772,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
8766
8772
  * See the License for the specific language governing permissions and
8767
8773
  * limitations under the License.
8768
8774
  */
8769
- const getFormioAppConfig = (config) => {
8770
- const baseUrl = UrlUtils.formatUrlTrailingSlash(`${window.location.origin}${config.valtimoApi.endpointUri}`, false);
8775
+ const getFormioAppConfig = () => {
8771
8776
  return {
8772
- appUrl: baseUrl,
8773
- apiUrl: baseUrl,
8777
+ appUrl: window.location.origin,
8778
+ apiUrl: window.location.origin,
8774
8779
  icons: 'fontawesome',
8775
8780
  formOnly: false,
8776
8781
  };
@@ -8994,6 +8999,12 @@ class DropzoneComponent {
8994
8999
  this.showingCamera$.next(false);
8995
9000
  }
8996
9001
  initDropzone() {
9002
+ if (!this.dropzoneRef || !this.dropzoneRef.nativeElement) {
9003
+ return;
9004
+ }
9005
+ if (this.dropzone) {
9006
+ this.dropzone.destroy();
9007
+ }
8997
9008
  this.dropzone = new Dropzone(this.dropzoneRef.nativeElement, {
8998
9009
  url: '/',
8999
9010
  maxFilesize: this._maxFileSize,
@@ -9120,8 +9131,8 @@ class FormIoUploaderComponent {
9120
9131
  fileSelected(file) {
9121
9132
  this.domService.toggleSubmitButton(true);
9122
9133
  this.uploading$.next(true);
9123
- this.stateService.documentDefinitionName$.pipe(take(1)).subscribe(name => {
9124
- this.uploadProviderService.uploadFile(file, name).subscribe(result => {
9134
+ this.stateService.caseDefinitionKey$.pipe(take(1)).subscribe(caseDefinitionKey => {
9135
+ this.uploadProviderService.uploadFile(file, caseDefinitionKey).subscribe(result => {
9125
9136
  this.domService.toggleSubmitButton(false);
9126
9137
  this.uploading$.next(false);
9127
9138
  this._value.push(result);
@@ -10101,7 +10112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
10101
10112
  }] } });
10102
10113
 
10103
10114
  /*
10104
- * Copyright 2015-2026 Ritense BV, the Netherlands.
10115
+ * Copyright 2015-2025 Ritense BV, the Netherlands.
10105
10116
  *
10106
10117
  * Licensed under EUPL, Version 1.2 (the "License");
10107
10118
  * you may not use this file except in compliance with the License.
@@ -10121,11 +10132,11 @@ class FormioValueResolverSelectorComponent {
10121
10132
  this.resolverType = 'source';
10122
10133
  this.valueChange = new EventEmitter();
10123
10134
  this.defaultValue$ = new BehaviorSubject('');
10124
- this.context$ = formioParams.pipe(map(params => params?.context));
10125
- this.caseDefinitionKey$ = formioParams.pipe(map(params => params?.caseDefinitionKey));
10126
- this.caseDefinitionVersionTag$ = formioParams.pipe(map(params => params?.caseDefinitionVersionTag));
10127
- this.buildingBlockDefinitionKey$ = formioParams.pipe(map(params => params?.buildingBlockDefinitionKey));
10128
- this.buildingBlockDefinitionVersionTag$ = formioParams.pipe(map(params => params?.buildingBlockDefinitionVersionTag));
10135
+ this.context$ = formioParams$.pipe(map(params => params?.context));
10136
+ this.caseDefinitionKey$ = formioParams$.pipe(filter(params => !!params), map(params => params?.caseDefinitionKey));
10137
+ this.caseDefinitionVersionTag$ = formioParams$.pipe(filter(params => !!params), map(params => params?.caseDefinitionVersionTag));
10138
+ this.buildingBlockDefinitionKey$ = formioParams$.pipe(filter(params => !!params), map(params => params?.buildingBlockDefinitionKey));
10139
+ this.buildingBlockDefinitionVersionTag$ = formioParams$.pipe(filter(params => !!params), map(params => params?.buildingBlockDefinitionVersionTag));
10129
10140
  this.isIndependentContext$ = this.context$.pipe(map(context => context !== 'case' && context !== 'buildingBlock'));
10130
10141
  this.ValuePathSelectorPrefix = ValuePathSelectorPrefix;
10131
10142
  }
@@ -10364,8 +10375,7 @@ class FormIoModule {
10364
10375
  FormIoDomService,
10365
10376
  {
10366
10377
  provide: FormioAppConfig,
10367
- deps: [ConfigService],
10368
- useFactory: (configService) => getFormioAppConfig(configService.config),
10378
+ useFactory: () => getFormioAppConfig(),
10369
10379
  },
10370
10380
  ], imports: [CommonModule,
10371
10381
  FormioModule,
@@ -10417,8 +10427,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
10417
10427
  FormIoDomService,
10418
10428
  {
10419
10429
  provide: FormioAppConfig,
10420
- deps: [ConfigService],
10421
- useFactory: (configService) => getFormioAppConfig(configService.config),
10430
+ useFactory: () => getFormioAppConfig(),
10422
10431
  },
10423
10432
  ],
10424
10433
  }]
@@ -11259,7 +11268,7 @@ function registerFormioCurrencyComponent(injector) {
11259
11268
  */
11260
11269
  const SelectComponent$1 = Components.components.select;
11261
11270
  function registerFormioFileSelectorComponent(injector) {
11262
- const documentService = injector.get(DocumentService);
11271
+ const uploadProviderService = injector.get(UploadProviderService);
11263
11272
  const stateService = injector.get(FormIoStateService);
11264
11273
  const unavailableMessage = {
11265
11274
  label: 'could not retrieve documents',
@@ -11271,12 +11280,12 @@ function registerFormioFileSelectorComponent(injector) {
11271
11280
  resolve([unavailableMessage]);
11272
11281
  });
11273
11282
  }
11274
- return documentService
11275
- .getDocument(documentId)
11283
+ return uploadProviderService
11284
+ .getResources(documentId)
11276
11285
  .toPromise()
11277
- .then(document => document.relatedFiles.map(relatedFile => ({
11278
- label: relatedFile.fileName,
11279
- value: relatedFile.fileId,
11286
+ .then(resources => resources.map(resourceReference => ({
11287
+ label: resourceReference.filename,
11288
+ value: resourceReference.id,
11280
11289
  })))
11281
11290
  .catch(() => new Promise(resolve => {
11282
11291
  resolve([unavailableMessage]);
@@ -12033,7 +12042,9 @@ class SelectComponent {
12033
12042
  this.selected$,
12034
12043
  this.translateService.stream('key'),
12035
12044
  ]).pipe(map$1(([listItems, selected]) => listItems.map(listItem => {
12036
- const translation = this.translateService.instant(listItem.content);
12045
+ const translation = listItem.content
12046
+ ? this.translateService.instant(listItem.content)
12047
+ : '-';
12037
12048
  const isSelected = Array.isArray(selected)
12038
12049
  ? selected.includes(listItem.id)
12039
12050
  : selected === listItem.id;
@@ -14119,13 +14130,14 @@ class DateTimePickerComponent {
14119
14130
  this.defaultDateIsToday = false;
14120
14131
  this.valueChange = new EventEmitter();
14121
14132
  this.dateValue$ = new BehaviorSubject('');
14122
- this.timeValueInternal = '';
14133
+ this.timeValue$ = new BehaviorSubject('');
14123
14134
  this.subscriptions = new Subscription();
14124
14135
  }
14125
14136
  set defaultDate(value) {
14126
- if (value) {
14127
- this.dateValue$.next(value);
14128
- }
14137
+ const dateTimeValue = value ?? '';
14138
+ const { date, time } = this.splitDateTime(dateTimeValue);
14139
+ this.dateValue$.next(date);
14140
+ this.timeValue$.next(time);
14129
14141
  }
14130
14142
  ngAfterViewInit() {
14131
14143
  if (this.defaultDateIsToday) {
@@ -14134,30 +14146,49 @@ class DateTimePickerComponent {
14134
14146
  if (this.clear$) {
14135
14147
  this.subscriptions.add(this.clear$.subscribe(() => {
14136
14148
  this.dateValue$.next('');
14137
- this.timeValueInternal = '';
14149
+ this.timeValue$.next('');
14138
14150
  this.valueChange.emit('');
14139
14151
  }));
14140
14152
  }
14141
- this.subscriptions.add(this.dateValue$.subscribe(date => this.emitValue(date, this.timeValueInternal)));
14153
+ this.subscriptions.add(combineLatest([this.dateValue$, this.timeValue$]).subscribe(([date, time]) => {
14154
+ if (!date) {
14155
+ this.valueChange.emit('');
14156
+ return;
14157
+ }
14158
+ const fullValue = this.enableTime && time ? `${date} ${time}` : date;
14159
+ this.valueChange.emit(fullValue);
14160
+ }));
14161
+ }
14162
+ ngOnDestroy() {
14163
+ this.subscriptions.unsubscribe();
14142
14164
  }
14143
14165
  onDateSelected(value) {
14144
14166
  const formatted = Array.isArray(value) ? value[0] : value;
14145
14167
  this.dateValue$.next(this.normalizeDate(formatted));
14146
14168
  }
14147
14169
  onTimeSelected(value) {
14148
- this.timeValueInternal = value;
14149
- this.emitValue(this.dateValue$.getValue(), value);
14150
- }
14151
- get timeValue() {
14152
- return this.timeValueInternal;
14170
+ this.timeValue$.next(this.normalizeTime(value));
14171
+ }
14172
+ normalizeTime(value) {
14173
+ if (typeof value === 'string')
14174
+ return value;
14175
+ if (value && typeof value === 'object') {
14176
+ if (typeof value.value === 'string')
14177
+ return value.value;
14178
+ if (typeof value.target?.value === 'string')
14179
+ return value.target.value;
14180
+ }
14181
+ return '';
14153
14182
  }
14154
- emitValue(date, time) {
14155
- if (!date) {
14156
- this.valueChange.emit('');
14157
- return;
14183
+ splitDateTime(value) {
14184
+ const trimmed = (value ?? '').trim();
14185
+ if (!trimmed)
14186
+ return { date: '', time: '' };
14187
+ const parts = trimmed.split(' ');
14188
+ if (parts.length >= 2) {
14189
+ return { date: parts[0] ?? '', time: parts.slice(1).join(' ') ?? '' };
14158
14190
  }
14159
- const fullValue = this.enableTime && time ? `${date} ${time}` : date;
14160
- this.valueChange.emit(fullValue);
14191
+ return { date: trimmed, time: '' };
14161
14192
  }
14162
14193
  normalizeDate(date) {
14163
14194
  if (typeof date === 'string')
@@ -14170,7 +14201,7 @@ class DateTimePickerComponent {
14170
14201
  return date.toLocaleDateString('nl-NL');
14171
14202
  }
14172
14203
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DateTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14173
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: DateTimePickerComponent, isStandalone: true, selector: "valtimo-date-time-picker", inputs: { fullWidth: "fullWidth", margin: "margin", name: "name", title: "title", placeholder: "placeholder", titleTranslationKey: "titleTranslationKey", disabled: "disabled", tooltip: "tooltip", required: "required", smallLabel: "smallLabel", enableTime: "enableTime", carbonTheme: "carbonTheme", dateFormat: "dateFormat", showFieldLabel: "showFieldLabel", datePlaceholder: "datePlaceholder", timePlaceholder: "timePlaceholder", labelText: "labelText", defaultDate: "defaultDate", defaultDateIsToday: "defaultDateIsToday", clear$: "clear$" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.valtimo-date-time-picker": "this.hostClass", "class.full-width": "this.fullWidth", "class.margin": "this.margin" } }, 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-input-label\n *ngIf=\"showFieldLabel && (title || titleTranslationKey)\"\n [name]=\"name\"\n [required]=\"required\"\n [small]=\"smallLabel\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n>\n</v-input-label>\n\n<div class=\"valtimo-date-time-picker__wrapper\">\n <cds-date-picker\n class=\"date-only\"\n [cdsLayer]=\"1\"\n [attr.data-carbon-theme]=\"carbonTheme\"\n [label]=\"labelText\"\n [placeholder]=\"datePlaceholder || 'dd-mm-yyyy'\"\n [dateFormat]=\"dateFormat\"\n [disabled]=\"disabled\"\n (valueChange)=\"onDateSelected($event)\"\n ></cds-date-picker>\n\n <cds-timepicker\n *ngIf=\"enableTime\"\n [cdsLayer]=\"1\"\n [attr.data-carbon-theme]=\"carbonTheme\"\n [placeholder]=\"timePlaceholder || 'hh:mm'\"\n [value]=\"timeValue\"\n [disabled]=\"disabled\"\n (valueChange)=\"onTimeSelected($event)\"\n >\n </cds-timepicker>\n</div>\n", styles: [".valtimo-date-time-picker{display:flex;flex-direction:column;gap:8px}.valtimo-date-time-picker.full-width{width:100%}.valtimo-date-time-picker.margin{margin-bottom:16px}.valtimo-date-time-picker__wrapper{display:flex;align-items:flex-end;gap:16px}.valtimo-date-time-picker ::ng-deep .cds--date-picker.cds--date-picker--single .cds--date-picker__input{inline-size:unset!important}.valtimo-date-time-picker ::ng-deep .cds--date-picker__input,.valtimo-date-time-picker ::ng-deep .cds--time-picker__input-field{background-color:var(--cds-field-01)!important}\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: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "tooltipTranslationKey", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: InputModule$1 }, { kind: "ngmodule", type: DatePickerModule$1 }, { kind: "component", type: i2$2.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: "ngmodule", type: TimePickerModule }, { kind: "component", type: i2$2.TimePicker, selector: "cds-timepicker, ibm-timepicker", inputs: ["invalid", "invalidText", "label", "hideLabel", "placeholder", "pattern", "id", "disabled", "value", "maxLength", "skeleton", "theme", "size"], outputs: ["valueChange"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2$2.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }] }); }
14204
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: DateTimePickerComponent, isStandalone: true, selector: "valtimo-date-time-picker", inputs: { fullWidth: "fullWidth", margin: "margin", name: "name", title: "title", placeholder: "placeholder", titleTranslationKey: "titleTranslationKey", disabled: "disabled", tooltip: "tooltip", required: "required", smallLabel: "smallLabel", enableTime: "enableTime", carbonTheme: "carbonTheme", dateFormat: "dateFormat", showFieldLabel: "showFieldLabel", datePlaceholder: "datePlaceholder", timePlaceholder: "timePlaceholder", labelText: "labelText", defaultDate: "defaultDate", defaultDateIsToday: "defaultDateIsToday", clear$: "clear$" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.valtimo-date-time-picker": "this.hostClass", "class.full-width": "this.fullWidth", "class.margin": "this.margin" } }, 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-input-label\n *ngIf=\"showFieldLabel && (title || titleTranslationKey)\"\n [name]=\"name\"\n [required]=\"required\"\n [small]=\"smallLabel\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n>\n</v-input-label>\n\n<div class=\"valtimo-date-time-picker__wrapper\">\n <cds-date-picker\n class=\"date-only\"\n [cdsLayer]=\"1\"\n [attr.data-carbon-theme]=\"carbonTheme\"\n [label]=\"labelText\"\n [placeholder]=\"datePlaceholder || 'dd-mm-yyyy'\"\n [dateFormat]=\"dateFormat\"\n [disabled]=\"disabled\"\n [ngModel]=\"dateValue$ | async\"\n (ngModelChange)=\"onDateSelected($event)\"\n ></cds-date-picker>\n\n <cds-timepicker\n *ngIf=\"enableTime\"\n [cdsLayer]=\"1\"\n [attr.data-carbon-theme]=\"carbonTheme\"\n [placeholder]=\"timePlaceholder || 'hh:mm'\"\n [disabled]=\"disabled\"\n [ngModel]=\"timeValue$ | async\"\n (ngModelChange)=\"onTimeSelected($event)\"\n ></cds-timepicker>\n</div>\n", styles: [".valtimo-date-time-picker{display:flex;flex-direction:column;gap:8px}.valtimo-date-time-picker.full-width{width:100%}.valtimo-date-time-picker.margin{margin-bottom:16px}.valtimo-date-time-picker__wrapper{display:flex;align-items:flex-end;gap:16px}.valtimo-date-time-picker ::ng-deep .cds--date-picker.cds--date-picker--single .cds--date-picker__input{inline-size:unset!important}.valtimo-date-time-picker ::ng-deep .cds--date-picker__input,.valtimo-date-time-picker ::ng-deep .cds--time-picker__input-field{background-color:var(--cds-field-01)!important}\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: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "tooltipTranslationKey", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: InputModule$1 }, { kind: "ngmodule", type: DatePickerModule$1 }, { kind: "component", type: i2$2.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: "ngmodule", type: TimePickerModule }, { kind: "component", type: i2$2.TimePicker, selector: "cds-timepicker, ibm-timepicker", inputs: ["invalid", "invalidText", "label", "hideLabel", "placeholder", "pattern", "id", "disabled", "value", "maxLength", "skeleton", "theme", "size"], outputs: ["valueChange"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2$2.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }] }); }
14174
14205
  }
14175
14206
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DateTimePickerComponent, decorators: [{
14176
14207
  type: Component,
@@ -14183,7 +14214,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
14183
14214
  DatePickerModule$1,
14184
14215
  TimePickerModule,
14185
14216
  LayerModule,
14186
- ], 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-input-label\n *ngIf=\"showFieldLabel && (title || titleTranslationKey)\"\n [name]=\"name\"\n [required]=\"required\"\n [small]=\"smallLabel\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n>\n</v-input-label>\n\n<div class=\"valtimo-date-time-picker__wrapper\">\n <cds-date-picker\n class=\"date-only\"\n [cdsLayer]=\"1\"\n [attr.data-carbon-theme]=\"carbonTheme\"\n [label]=\"labelText\"\n [placeholder]=\"datePlaceholder || 'dd-mm-yyyy'\"\n [dateFormat]=\"dateFormat\"\n [disabled]=\"disabled\"\n (valueChange)=\"onDateSelected($event)\"\n ></cds-date-picker>\n\n <cds-timepicker\n *ngIf=\"enableTime\"\n [cdsLayer]=\"1\"\n [attr.data-carbon-theme]=\"carbonTheme\"\n [placeholder]=\"timePlaceholder || 'hh:mm'\"\n [value]=\"timeValue\"\n [disabled]=\"disabled\"\n (valueChange)=\"onTimeSelected($event)\"\n >\n </cds-timepicker>\n</div>\n", styles: [".valtimo-date-time-picker{display:flex;flex-direction:column;gap:8px}.valtimo-date-time-picker.full-width{width:100%}.valtimo-date-time-picker.margin{margin-bottom:16px}.valtimo-date-time-picker__wrapper{display:flex;align-items:flex-end;gap:16px}.valtimo-date-time-picker ::ng-deep .cds--date-picker.cds--date-picker--single .cds--date-picker__input{inline-size:unset!important}.valtimo-date-time-picker ::ng-deep .cds--date-picker__input,.valtimo-date-time-picker ::ng-deep .cds--time-picker__input-field{background-color:var(--cds-field-01)!important}\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"] }]
14217
+ ], 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-input-label\n *ngIf=\"showFieldLabel && (title || titleTranslationKey)\"\n [name]=\"name\"\n [required]=\"required\"\n [small]=\"smallLabel\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n>\n</v-input-label>\n\n<div class=\"valtimo-date-time-picker__wrapper\">\n <cds-date-picker\n class=\"date-only\"\n [cdsLayer]=\"1\"\n [attr.data-carbon-theme]=\"carbonTheme\"\n [label]=\"labelText\"\n [placeholder]=\"datePlaceholder || 'dd-mm-yyyy'\"\n [dateFormat]=\"dateFormat\"\n [disabled]=\"disabled\"\n [ngModel]=\"dateValue$ | async\"\n (ngModelChange)=\"onDateSelected($event)\"\n ></cds-date-picker>\n\n <cds-timepicker\n *ngIf=\"enableTime\"\n [cdsLayer]=\"1\"\n [attr.data-carbon-theme]=\"carbonTheme\"\n [placeholder]=\"timePlaceholder || 'hh:mm'\"\n [disabled]=\"disabled\"\n [ngModel]=\"timeValue$ | async\"\n (ngModelChange)=\"onTimeSelected($event)\"\n ></cds-timepicker>\n</div>\n", styles: [".valtimo-date-time-picker{display:flex;flex-direction:column;gap:8px}.valtimo-date-time-picker.full-width{width:100%}.valtimo-date-time-picker.margin{margin-bottom:16px}.valtimo-date-time-picker__wrapper{display:flex;align-items:flex-end;gap:16px}.valtimo-date-time-picker ::ng-deep .cds--date-picker.cds--date-picker--single .cds--date-picker__input{inline-size:unset!important}.valtimo-date-time-picker ::ng-deep .cds--date-picker__input,.valtimo-date-time-picker ::ng-deep .cds--time-picker__input-field{background-color:var(--cds-field-01)!important}\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"] }]
14187
14218
  }], propDecorators: { hostClass: [{
14188
14219
  type: HostBinding,
14189
14220
  args: ['class.valtimo-date-time-picker']