@yuuvis/client-framework 3.15.0 → 3.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.
Files changed (44) hide show
  1. package/fesm2022/yuuvis-client-framework-actions.mjs +21 -25
  2. package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
  3. package/fesm2022/yuuvis-client-framework-app-bar.mjs +3 -3
  4. package/fesm2022/yuuvis-client-framework-badges.mjs +20 -13
  5. package/fesm2022/yuuvis-client-framework-badges.mjs.map +1 -1
  6. package/fesm2022/yuuvis-client-framework-breadcrumb.mjs +3 -3
  7. package/fesm2022/yuuvis-client-framework-clipboard.mjs +3 -3
  8. package/fesm2022/yuuvis-client-framework-datepicker.mjs +31 -31
  9. package/fesm2022/yuuvis-client-framework-forms.mjs +286 -178
  10. package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
  11. package/fesm2022/yuuvis-client-framework-icons.mjs +9 -9
  12. package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs +7 -7
  13. package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs.map +1 -1
  14. package/fesm2022/yuuvis-client-framework-metadata-form.mjs +18 -18
  15. package/fesm2022/yuuvis-client-framework-object-details.mjs +28 -28
  16. package/fesm2022/yuuvis-client-framework-object-flavor.mjs +18 -18
  17. package/fesm2022/yuuvis-client-framework-object-form.mjs +34 -34
  18. package/fesm2022/yuuvis-client-framework-object-preview.mjs +9 -9
  19. package/fesm2022/yuuvis-client-framework-object-relationship.mjs +73 -45
  20. package/fesm2022/yuuvis-client-framework-object-relationship.mjs.map +1 -1
  21. package/fesm2022/yuuvis-client-framework-object-summary.mjs +13 -13
  22. package/fesm2022/yuuvis-client-framework-object-versions.mjs +7 -7
  23. package/fesm2022/yuuvis-client-framework-pagination.mjs +3 -3
  24. package/fesm2022/yuuvis-client-framework-query-list.mjs +7 -7
  25. package/fesm2022/yuuvis-client-framework-renderer.mjs +101 -74
  26. package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -1
  27. package/fesm2022/yuuvis-client-framework-sequence-list.mjs +4 -4
  28. package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
  29. package/fesm2022/yuuvis-client-framework-simple-search.mjs +3 -3
  30. package/fesm2022/yuuvis-client-framework-smart-search.mjs +13 -13
  31. package/fesm2022/yuuvis-client-framework-sort.mjs +3 -3
  32. package/fesm2022/yuuvis-client-framework-tile-list.mjs +97 -61
  33. package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
  34. package/fesm2022/yuuvis-client-framework-token-search.mjs +7 -7
  35. package/fesm2022/yuuvis-client-framework-tree.mjs +9 -9
  36. package/fesm2022/yuuvis-client-framework-upload-progress.mjs +10 -10
  37. package/fesm2022/yuuvis-client-framework.mjs +25 -25
  38. package/lib/assets/i18n/de.json +10 -8
  39. package/lib/assets/i18n/en.json +10 -8
  40. package/package.json +10 -10
  41. package/types/yuuvis-client-framework-badges.d.ts +7 -0
  42. package/types/yuuvis-client-framework-forms.d.ts +28 -8
  43. package/types/yuuvis-client-framework-object-relationship.d.ts +6 -1
  44. package/types/yuuvis-client-framework-tile-list.d.ts +13 -1
@@ -66,7 +66,6 @@ declare class DataGridComponent implements ControlValueAccessor, Validator {
66
66
  selectedRow: _angular_core.WritableSignal<unknown>;
67
67
  isRequired: boolean;
68
68
  isInvalid: boolean;
69
- initalTableUpdate: boolean;
70
69
  icons: {
71
70
  add: any;
72
71
  more: any;
@@ -79,11 +78,16 @@ declare class DataGridComponent implements ControlValueAccessor, Validator {
79
78
  removeRow(element: any): void;
80
79
  propagateChange: (value: any) => void;
81
80
  onTouched: () => void;
81
+ /**
82
+ * Model → view only. Renders the incoming value (row objects or 2D arrays,
83
+ * which are converted via the column definitions) into the table. Never
84
+ * propagates back to the model — programmatic writes (setValue/patchValue/
85
+ * reset) and rebinds must not change the control's value or dirty state.
86
+ */
82
87
  writeValue(obj: any): void;
83
88
  registerOnChange(fn: any): void;
84
89
  registerOnTouched(fn: any): void;
85
90
  setDisabledState?(isDisabled: boolean): void;
86
- onValueChange(e: any): void;
87
91
  validate(control: ObjectFormControl): null;
88
92
  onHostFocusOut(ev: FocusEvent): void;
89
93
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataGridComponent, never>;
@@ -430,7 +434,9 @@ declare class OrganizationSetComponent extends AbstractMatFormField<string | str
430
434
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<OrganizationSetComponent, "yuv-organization-set", never, { "situation": { "alias": "situation"; "required": false; "isSignal": true; }; "multiselect": { "alias": "multiselect"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "withMetadata": { "alias": "withMetadata"; "required": false; "isSignal": true; }; "autocompleteMinLength": { "alias": "autocompleteMinLength"; "required": false; "isSignal": true; }; "classifications": { "alias": "classifications"; "required": false; "isSignal": true; }; "types": { "alias": "types"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
431
435
  }
432
436
 
433
- type OrganizationNode = OrganizationSetEntry & {
437
+ type OrganizationNode = Omit<OrganizationSetEntry, 'type'> & {
438
+ /** `text` marks a value typed by the user rather than resolved against IDM. */
439
+ type: 'user' | 'role' | 'text';
434
440
  notFound?: boolean;
435
441
  };
436
442
  type FormControlValue = string | {
@@ -441,21 +447,28 @@ type FormControlValue = string | {
441
447
  * Creates form input for organization values.
442
448
  *
443
449
  * @example
444
- * <yuv-organization [multiselect]="true"></yuv-organization>
450
+ * <yuv-organization [multiselect]="true" />
445
451
  */
446
452
  declare class OrganizationComponent extends AbstractMatFormField<FormControlValue | FormControlValue[] | undefined> implements ControlValueAccessor, OnInit, OnDestroy {
447
453
  #private;
448
454
  readonly translate: TranslateService;
449
455
  minLength: number;
450
456
  busy: _angular_core.WritableSignal<boolean>;
457
+ /**
458
+ * ENTER only — organization titles contain commas (`Lastname, Firstname (username)`),
459
+ * so committing free text on COMMA would split a typed name into two chips.
460
+ */
461
+ readonly separatorKeys: number[];
451
462
  acFormControl: FormControl<AutocompleteItem<unknown> | AutocompleteItem<unknown>[] | null | undefined>;
452
463
  ngControl: _angular_forms.NgControl | null;
453
464
  _innerValue: OrganizationNode[];
454
- set innerValue(iv: OrganizationNode[]);
465
+ set innerValue(iValue: OrganizationNode[]);
455
466
  get innerValue(): OrganizationNode[];
456
467
  autocompleteRes: AutocompleteItem[];
457
468
  /**
458
- * Possibles values are `EDIT` (default),`SEARCH`,`CREATE`. In search situation validation of the form element will be turned off, so you are able to enter search terms that do not meet the elements validators.
469
+ * Possibles values are `EDIT` (default),`SEARCH`,`CREATE`.
470
+ * In search situation validation of the form element will be turned off,
471
+ * so you are able to enter search terms that do not meet the elements validators.
459
472
  */
460
473
  situation: _angular_core.InputSignal<string | undefined>;
461
474
  /**
@@ -476,18 +489,25 @@ declare class OrganizationComponent extends AbstractMatFormField<FormControlValu
476
489
  * or, if set to false only the ID
477
490
  */
478
491
  withMetadata: _angular_core.InputSignal<boolean>;
492
+ /**
493
+ * Whether or not values that the autocomplete cannot resolve may be entered as free
494
+ * text (default: false). Can also be enabled per field through the `freeText` option
495
+ * of the organization classification, e.g. `id:organization[freeText]`.
496
+ */
497
+ allowFreeText: _angular_core.InputSignal<boolean>;
498
+ freeText: _angular_core.Signal<boolean>;
479
499
  propagateChange: (_: any) => void;
480
500
  writeValue(value: string | string[]): void;
481
501
  registerOnChange(fn: any): void;
482
502
  registerOnTouched(fn: any): void;
483
- private propagate;
484
503
  setDisabledState?(isDisabled: boolean): void;
485
504
  resolveFn(value: string[]): void;
486
505
  autocompleteFn(query: string): void;
487
506
  ngOnInit(): void;
488
507
  ngOnDestroy(): void;
508
+ private propagate;
489
509
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<OrganizationComponent, never>;
490
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<OrganizationComponent, "yuv-organization", never, { "situation": { "alias": "situation"; "required": false; "isSignal": true; }; "multiselect": { "alias": "multiselect"; "required": false; "isSignal": true; }; "classifications": { "alias": "classifications"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "excludeMe": { "alias": "excludeMe"; "required": false; "isSignal": true; }; "withMetadata": { "alias": "withMetadata"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
510
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OrganizationComponent, "yuv-organization", never, { "situation": { "alias": "situation"; "required": false; "isSignal": true; }; "multiselect": { "alias": "multiselect"; "required": false; "isSignal": true; }; "classifications": { "alias": "classifications"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "excludeMe": { "alias": "excludeMe"; "required": false; "isSignal": true; }; "withMetadata": { "alias": "withMetadata"; "required": false; "isSignal": true; }; "allowFreeText": { "alias": "allowFreeText"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
491
511
  }
492
512
 
493
513
  interface RangeSelectDateValue {
@@ -61,6 +61,11 @@ declare class ObjectRelationshipComponent {
61
61
  * viewed but not added or removed.
62
62
  */
63
63
  readonly: _angular_core.InputSignal<boolean>;
64
+ /**
65
+ * Number of relations to load per request. Defaults to the search
66
+ * service's default query size when not set.
67
+ */
68
+ pageSize: _angular_core.InputSignal<number | undefined>;
64
69
  originObject: _angular_core.WritableSignal<DmsObject | null>;
65
70
  supportedRelationships: _angular_core.Signal<Relationship[]>;
66
71
  busy: _angular_core.WritableSignal<boolean>;
@@ -68,7 +73,7 @@ declare class ObjectRelationshipComponent {
68
73
  toggleMode(): void;
69
74
  addRelationship(): void;
70
75
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ObjectRelationshipComponent, never>;
71
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ObjectRelationshipComponent, "yuv-object-relationship", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "objectId": { "alias": "objectId"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": true; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "relationActions": { "alias": "relationActions"; "required": false; "isSignal": true; }; }, { "mode": "modeChange"; }, never, never, true, never>;
76
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ObjectRelationshipComponent, "yuv-object-relationship", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "objectId": { "alias": "objectId"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": true; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "relationActions": { "alias": "relationActions"; "required": false; "isSignal": true; }; }, { "mode": "modeChange"; }, never, never, true, never>;
72
77
  }
73
78
 
74
79
  declare class YuvObjectRelationshipModule {
@@ -721,6 +721,11 @@ declare class PropertySelectComponent {
721
721
  filteredObjectTypeFields: _angular_core.Signal<TypeProperty[]>;
722
722
  objectTypesEffect: _angular_core.EffectRef;
723
723
  selectedProperty: _angular_core.InputSignal<ObjectConfigProperty | undefined>;
724
+ /**
725
+ * Whether the selected property may be removed from the slot. Mandatory
726
+ * slots (title) disable this so the slot can never be emptied.
727
+ */
728
+ allowRemove: _angular_core.InputSignal<boolean>;
724
729
  propertySelect: _angular_core.OutputEmitterRef<TypeProperty | undefined>;
725
730
  selectProperty(field: TypeProperty): void;
726
731
  selectPropertyOnKeydown(event: Event, field: TypeProperty): void;
@@ -729,7 +734,7 @@ declare class PropertySelectComponent {
729
734
  private getObjectTypeFields;
730
735
  private _getLabel;
731
736
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PropertySelectComponent, never>;
732
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PropertySelectComponent, "yuv-tile-property-select", never, { "objectType": { "alias": "objectType"; "required": false; "isSignal": true; }; "excludeProperties": { "alias": "excludeProperties"; "required": false; "isSignal": true; }; "selectedProperty": { "alias": "selectedProperty"; "required": false; "isSignal": true; }; }, { "propertySelect": "propertySelect"; }, never, never, true, never>;
737
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PropertySelectComponent, "yuv-tile-property-select", never, { "objectType": { "alias": "objectType"; "required": false; "isSignal": true; }; "excludeProperties": { "alias": "excludeProperties"; "required": false; "isSignal": true; }; "selectedProperty": { "alias": "selectedProperty"; "required": false; "isSignal": true; }; "allowRemove": { "alias": "allowRemove"; "required": false; "isSignal": true; }; }, { "propertySelect": "propertySelect"; }, never, never, true, never>;
733
738
  }
734
739
 
735
740
  declare class TileConfigTriggerComponent {
@@ -771,6 +776,13 @@ declare class TileConfigComponent {
771
776
  */
772
777
  excludeProperties: _angular_core.InputSignal<string[]>;
773
778
  get configChanged(): boolean;
779
+ /**
780
+ * The title slot is mandatory. Edited configs without a title block the
781
+ * save. Entries set to `undefined` mark the stored config for deletion and
782
+ * are always valid.
783
+ */
784
+ get titleMissing(): boolean;
785
+ get titleMissingTypeLabels(): string;
774
786
  types: Signal<InnerType[]>;
775
787
  save: _angular_core.OutputEmitterRef<void>;
776
788
  canceled: _angular_core.OutputEmitterRef<void>;