@eo-sdk/client 11.14.27 → 11.14.29

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.
@@ -5644,12 +5644,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
5644
5644
  }] } });
5645
5645
 
5646
5646
  class DateComponent {
5647
- constructor(translate) {
5647
+ constructor(translate, elRef) {
5648
5648
  this.translate = translate;
5649
+ this.elRef = elRef;
5649
5650
  this.withTime = false;
5650
5651
  this.readonly = false;
5651
5652
  this.onlyFutureDates = false;
5652
5653
  this._subs = [];
5654
+ this._pasteListener = (event) => this._handlePaste(event);
5653
5655
  this.value = null;
5654
5656
  this.locale = this.translate.currentLang;
5655
5657
  this.propagateChange = (_) => { };
@@ -5694,11 +5696,85 @@ class DateComponent {
5694
5696
  }
5695
5697
  ngAfterViewInit() {
5696
5698
  this._subs.push(this.picker.statusChanges.subscribe(() => this.validationChange()));
5699
+ // Capture paste events before they reach the yvc-datepicker's internal handler,
5700
+ // which uses new Date(string) and fails for non-US date formats (e.g. DD.MM.YYYY).
5701
+ this.elRef.nativeElement.addEventListener('paste', this._pasteListener, true);
5697
5702
  }
5698
5703
  ngOnDestroy() {
5699
5704
  this._subs.forEach((s) => s.unsubscribe());
5705
+ this.elRef.nativeElement.removeEventListener('paste', this._pasteListener, true);
5706
+ }
5707
+ /**
5708
+ * Intercepts paste events and parses the pasted text using the current locale's
5709
+ * date format, so that e.g. "28.06.2025" is correctly interpreted as June 28, 2025
5710
+ * in German locale instead of being mangled by new Date().
5711
+ */
5712
+ _handlePaste(event) {
5713
+ const paste = (event.clipboardData || window.clipboardData)?.getData('text')?.trim();
5714
+ if (!paste)
5715
+ return;
5716
+ const parsed = this._parseLocaleDate(paste);
5717
+ if (parsed) {
5718
+ event.preventDefault();
5719
+ event.stopImmediatePropagation();
5720
+ this.value = parsed;
5721
+ this.propagateChange(parsed);
5722
+ }
5723
+ }
5724
+ /**
5725
+ * Parses a date string according to the current locale's date format.
5726
+ * Uses Intl.DateTimeFormat to detect the locale's day/month/year order and separator.
5727
+ */
5728
+ _parseLocaleDate(text) {
5729
+ const parts = new Intl.DateTimeFormat(this.locale, {
5730
+ day: '2-digit',
5731
+ month: '2-digit',
5732
+ year: 'numeric'
5733
+ }).formatToParts(new Date(2025, 11, 28));
5734
+ const order = [];
5735
+ let separator = '';
5736
+ for (const part of parts) {
5737
+ if (part.type === 'day' || part.type === 'month' || part.type === 'year') {
5738
+ order.push(part.type);
5739
+ }
5740
+ else if (part.type === 'literal' && !separator) {
5741
+ separator = part.value;
5742
+ }
5743
+ }
5744
+ if (!separator || order.length !== 3)
5745
+ return null;
5746
+ const textParts = text.split(separator);
5747
+ if (textParts.length !== 3)
5748
+ return null;
5749
+ // Each part must be purely numeric
5750
+ if (!textParts.every(p => /^\d+$/.test(p)))
5751
+ return null;
5752
+ let day, month, year;
5753
+ for (let i = 0; i < order.length; i++) {
5754
+ const num = parseInt(textParts[i], 10);
5755
+ switch (order[i]) {
5756
+ case 'day':
5757
+ day = num;
5758
+ break;
5759
+ case 'month':
5760
+ month = num;
5761
+ break;
5762
+ case 'year':
5763
+ year = num;
5764
+ break;
5765
+ }
5766
+ }
5767
+ if (month < 1 || month > 12 || day < 1 || day > 31)
5768
+ return null;
5769
+ const date = new Date(year, month - 1, day);
5770
+ // Set year explicitly so years < 100 aren't treated as 1900s
5771
+ date.setFullYear(year);
5772
+ // Verify the components match (catches invalid dates like Feb 30)
5773
+ if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day)
5774
+ return null;
5775
+ return date;
5700
5776
  }
5701
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DateComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
5777
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DateComponent, deps: [{ token: i1.TranslateService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
5702
5778
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: DateComponent, selector: "eo-date", inputs: { withTime: "withTime", readonly: "readonly", onlyFutureDates: "onlyFutureDates" }, providers: [
5703
5779
  {
5704
5780
  provide: NG_VALUE_ACCESSOR,
@@ -5726,7 +5802,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
5726
5802
  multi: true,
5727
5803
  }
5728
5804
  ], template: "<yvc-datepicker #picker [calendar]=\"true\" [disabled]=\"readonly\" [locale]=\"locale\" [withTime]=\"withTime\" [labels]=\"labels\"\n [hour12]=\"locale === 'en'\" \n [onlyFutureDates]=\"onlyFutureDates\"\n [ngModelOptions]=\"{standalone: true}\" [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"></yvc-datepicker>", styles: [":host yvc-datepicker{border:0;outline:0;box-sizing:border-box;overflow-x:auto}\n"] }]
5729
- }], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { picker: [{
5805
+ }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i0.ElementRef }], propDecorators: { picker: [{
5730
5806
  type: ViewChild,
5731
5807
  args: ['picker', { read: NgModel }]
5732
5808
  }], withTime: [{
@@ -12504,8 +12580,8 @@ PopupService.prototype['isEventFromCurrentPopup'] = function (params, target) {
12504
12580
  return document.querySelector('yvc-overlay yvc-datepicker-calendar, yvc-overlay eo-tree') ? true : isEventFromCurrentPopup.call(this, params, target);
12505
12581
  };
12506
12582
  class DatetimeFilterComponent extends DateComponent {
12507
- constructor(translate, eventService) {
12508
- super(translate);
12583
+ constructor(translate, elRef, eventService) {
12584
+ super(translate, elRef);
12509
12585
  this.eventService = eventService;
12510
12586
  this.params = {};
12511
12587
  }
@@ -12527,13 +12603,13 @@ class DatetimeFilterComponent extends DateComponent {
12527
12603
  afterGuiAttached(params) {
12528
12604
  // this.inputMask.el.nativeElement.focus();
12529
12605
  }
12530
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatetimeFilterComponent, deps: [{ token: i1.TranslateService }, { token: i1.EventService }], target: i0.ɵɵFactoryTarget.Component }); }
12606
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatetimeFilterComponent, deps: [{ token: i1.TranslateService }, { token: i0.ElementRef }, { token: i1.EventService }], target: i0.ɵɵFactoryTarget.Component }); }
12531
12607
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: DatetimeFilterComponent, selector: "eo-datetime-custom", viewQueries: [{ propertyName: "eoDialog", first: true, predicate: EoDialogComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<yvc-datepicker #picker [calendar]=\"true\" [disabled]=\"readonly\" [locale]=\"locale\" [withTime]=\"withTime\" [labels]=\"labels\"\n [hour12]=\"locale === 'en'\" \n [onlyFutureDates]=\"onlyFutureDates\"\n [ngModelOptions]=\"{standalone: true}\" [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"></yvc-datepicker>", styles: [":host yvc-datepicker{border:0;outline:0;box-sizing:border-box;overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.Datepicker, selector: "yvc-datepicker", inputs: ["calendar", "readonly", "hour12", "locale", "labels", "withTime", "onlyFutureDates", "minDate", "maxDate", "disabled"] }] }); }
12532
12608
  }
12533
12609
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatetimeFilterComponent, decorators: [{
12534
12610
  type: Component,
12535
12611
  args: [{ selector: 'eo-datetime-custom', template: "<yvc-datepicker #picker [calendar]=\"true\" [disabled]=\"readonly\" [locale]=\"locale\" [withTime]=\"withTime\" [labels]=\"labels\"\n [hour12]=\"locale === 'en'\" \n [onlyFutureDates]=\"onlyFutureDates\"\n [ngModelOptions]=\"{standalone: true}\" [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"></yvc-datepicker>", styles: [":host yvc-datepicker{border:0;outline:0;box-sizing:border-box;overflow-x:auto}\n"] }]
12536
- }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i1.EventService }], propDecorators: { eoDialog: [{
12612
+ }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i0.ElementRef }, { type: i1.EventService }], propDecorators: { eoDialog: [{
12537
12613
  type: ViewChild,
12538
12614
  args: [EoDialogComponent]
12539
12615
  }] } });
@@ -23974,22 +24050,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
23974
24050
 
23975
24051
  class GridFilter {
23976
24052
  static operator(property, filter) {
23977
- let firstValue = Array.isArray(filter) ? filter : (filter.filter || filter.dateFrom);
24053
+ const codesystemValue = filter.filter && filter.filter.value && Array.isArray(filter.filter.value) ? filter.filter : null;
24054
+ let firstValue = Array.isArray(filter) ? filter : codesystemValue ? codesystemValue.value : (filter.filter || filter.dateFrom);
23978
24055
  const secondValue = filter.filterTo || filter.dateTo;
23979
- const op = Array.isArray(firstValue) ? SearchFilter.OPERATOR.IN :
23980
- filter.type === SimpleFilter.GREATER_THAN ? SearchFilter.OPERATOR.GREATER_THAN :
23981
- filter.type === SimpleFilter.GREATER_THAN_OR_EQUAL ? SearchFilter.OPERATOR.GREATER_OR_EQUAL :
23982
- filter.type === SimpleFilter.LESS_THAN ? SearchFilter.OPERATOR.LESS_THAN :
23983
- filter.type === SimpleFilter.LESS_THAN_OR_EQUAL ? SearchFilter.OPERATOR.LESS_OR_EQUAL :
23984
- filter.type === SimpleFilter.IN_RANGE ? SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH :
23985
- SearchFilter.OPERATOR.EQUAL;
24056
+ const op = codesystemValue ? (codesystemValue.useNot ? codesystemValue.actualOperator : codesystemValue.operator) :
24057
+ Array.isArray(firstValue) ? SearchFilter.OPERATOR.IN :
24058
+ filter.type === SimpleFilter.GREATER_THAN ? SearchFilter.OPERATOR.GREATER_THAN :
24059
+ filter.type === SimpleFilter.GREATER_THAN_OR_EQUAL ? SearchFilter.OPERATOR.GREATER_OR_EQUAL :
24060
+ filter.type === SimpleFilter.LESS_THAN ? SearchFilter.OPERATOR.LESS_THAN :
24061
+ filter.type === SimpleFilter.LESS_THAN_OR_EQUAL ? SearchFilter.OPERATOR.LESS_OR_EQUAL :
24062
+ filter.type === SimpleFilter.IN_RANGE ? SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH :
24063
+ SearchFilter.OPERATOR.EQUAL;
23986
24064
  firstValue = firstValue && typeof firstValue === 'string' ? firstValue.replace(/\*/g, '\\*') : firstValue; // wildcard needs to be escaped
23987
24065
  firstValue = filter.type === SimpleFilter.CONTAINS ? `*${firstValue}*` :
23988
24066
  filter.type === SimpleFilter.STARTS_WITH ? `${firstValue}*` :
23989
24067
  filter.type === SimpleFilter.ENDS_WITH ? `*${firstValue}` :
23990
24068
  op === SearchFilter.OPERATOR.IN ? firstValue.filter(f => f !== '') :
23991
24069
  firstValue;
23992
- return new SearchFilter(property, op, firstValue, secondValue, filter.filterType === 'date' ? { time: true } : undefined);
24070
+ const useNot = codesystemValue ? codesystemValue.useNot : undefined;
24071
+ const actualOperator = codesystemValue ? codesystemValue.actualOperator : undefined;
24072
+ return new SearchFilter(property, op, firstValue, secondValue, filter.filterType === 'date' ? { time: true } : undefined, useNot, actualOperator);
23993
24073
  }
23994
24074
  }
23995
24075
 
@@ -24773,10 +24853,10 @@ class AboutStateComponent {
24773
24853
  this.config = config;
24774
24854
  this.titleService = titleService;
24775
24855
  this.translate = translate;
24776
- this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/styles", "version": "31.3.2", "license": "MIT" }, { "name": "@angular/animations", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/common", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/core", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/forms", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/router", "version": "18.1.0", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.16.3", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "11.14.26", "license": "MIT" }, { "name": "@ngneat/until-destroy", "version": "10.0.0", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "18.0.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "15.0.0", "license": "SEE LICENSE IN LICENSE" }, { "name": "@yuuvis/components", "version": "18.1.23", "license": "MIT" }, { "name": "@yuuvis/widget-grid", "version": "18.0.0", "license": "MIT" }, { "name": "core-js", "version": "2.6.12", "license": "MIT" }, { "name": "fast-xml-parser", "version": "4.5.3", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "karma-coverage-istanbul-reporter", "version": "3.0.3", "license": "MIT" }, { "name": "lodash-es", "version": "4.17.21", "license": "MIT" }, { "name": "moment", "version": "2.30.1", "license": "MIT" }, { "name": "ngx-toastr", "version": "19.0.0", "license": "MIT" }, { "name": "rxjs", "version": "7.8.1", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.6.3", "license": "0BSD" }, { "name": "zone.js", "version": "0.14.7", "license": "MIT" }];
24856
+ this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/styles", "version": "31.3.2", "license": "MIT" }, { "name": "@angular/animations", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/common", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/core", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/forms", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/router", "version": "18.1.0", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.16.3", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "11.14.28", "license": "MIT" }, { "name": "@ngneat/until-destroy", "version": "10.0.0", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "18.0.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "15.0.0", "license": "SEE LICENSE IN LICENSE" }, { "name": "@yuuvis/components", "version": "18.1.23", "license": "MIT" }, { "name": "@yuuvis/widget-grid", "version": "18.0.0", "license": "MIT" }, { "name": "core-js", "version": "2.6.12", "license": "MIT" }, { "name": "fast-xml-parser", "version": "5.4.1", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "karma-coverage-istanbul-reporter", "version": "3.0.3", "license": "MIT" }, { "name": "lodash-es", "version": "4.17.21", "license": "MIT" }, { "name": "moment", "version": "2.30.1", "license": "MIT" }, { "name": "ngx-toastr", "version": "19.0.0", "license": "MIT" }, { "name": "rxjs", "version": "7.8.1", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.6.3", "license": "0BSD" }, { "name": "zone.js", "version": "0.14.7", "license": "MIT" }];
24777
24857
  this.ctrl = {
24778
24858
  componentName: 'yuuvis® RAD client',
24779
- componentVersion: '11.14.27',
24859
+ componentVersion: '11.14.29',
24780
24860
  productName: '',
24781
24861
  productVersion: ''
24782
24862
  };