@yuuvis/client-framework 2.1.34 → 2.3.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 (24) hide show
  1. package/common/lib/services/layout-settings/layout-settings.service.d.ts +3 -2
  2. package/fesm2022/yuuvis-client-framework-common.mjs +9 -6
  3. package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
  4. package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
  5. package/fesm2022/yuuvis-client-framework-object-details.mjs +93 -22
  6. package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
  7. package/fesm2022/yuuvis-client-framework-object-form.mjs +14 -8
  8. package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
  9. package/fesm2022/yuuvis-client-framework.mjs +88 -2
  10. package/fesm2022/yuuvis-client-framework.mjs.map +1 -1
  11. package/index.d.ts +2 -0
  12. package/lib/services/snack-bar/snack-bar.interface.d.ts +14 -0
  13. package/lib/services/snack-bar/snack-bar.service.d.ts +22 -0
  14. package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +2 -2
  15. package/metadata-form/lib/metadata-form-field/metadata-form-field.interface.d.ts +7 -1
  16. package/object-details/lib/object-details-shell/object-details-shell.component.d.ts +5 -1
  17. package/object-details/lib/object-details.component.d.ts +5 -1
  18. package/object-details/lib/object-metadata/object-metadata-section/object-metadata-section.component.d.ts +15 -0
  19. package/object-details/lib/object-metadata/object-metadata-section/object-metadata-section.interface.d.ts +9 -0
  20. package/object-details/lib/object-metadata/object-metadata.component.d.ts +5 -9
  21. package/object-form/index.d.ts +1 -0
  22. package/object-form/lib/object-form-element/object-form-element.component.d.ts +1 -1
  23. package/object-form/lib/object-form.service.d.ts +2 -1
  24. package/package.json +8 -8
@@ -1,6 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { NgModule } from '@angular/core';
2
+ import { NgModule, inject, Injectable, signal, Component } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
+ import { MatSnackBar, MatSnackBarRef, MAT_SNACK_BAR_DATA, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction } from '@angular/material/snack-bar';
5
+ import * as i1 from '@angular/material/button';
6
+ import { MatButtonModule } from '@angular/material/button';
4
7
 
5
8
  class YuuvisClientFrameworkModule {
6
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: YuuvisClientFrameworkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -14,9 +17,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
14
17
  }]
15
18
  }] });
16
19
 
20
+ class SnackBarService {
21
+ #snackBar = inject(MatSnackBar);
22
+ info(message, action) {
23
+ return this.snack(message, { action, level: 'info' });
24
+ }
25
+ success(message, action) {
26
+ return this.snack(message, { action, level: 'success' });
27
+ }
28
+ warning(message, action) {
29
+ return this.snack(message, { action, level: 'warning' });
30
+ }
31
+ danger(message, action) {
32
+ return this.snack(message, { action, level: 'danger' });
33
+ }
34
+ snack(message, options) {
35
+ return this.#snackBar.openFromComponent(SnackBarComponent, {
36
+ data: {
37
+ level: options.level,
38
+ message,
39
+ action: options.action
40
+ },
41
+ duration: options.duration,
42
+ horizontalPosition: options.horizontalPosition,
43
+ verticalPosition: options.verticalPosition,
44
+ panelClass: ['yuv-snack-bar', 'level-' + options.level]
45
+ });
46
+ }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SnackBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
48
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SnackBarService, providedIn: 'root' }); }
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SnackBarService, decorators: [{
51
+ type: Injectable,
52
+ args: [{
53
+ providedIn: 'root'
54
+ }]
55
+ }] });
56
+ class SnackBarComponent {
57
+ constructor() {
58
+ this.#snackBarRef = inject(MatSnackBarRef);
59
+ this.#snackData = inject(MAT_SNACK_BAR_DATA);
60
+ this.level = signal(this.#snackData.level);
61
+ this.message = signal(this.#snackData.message);
62
+ this.action = signal(this.#snackData.action);
63
+ }
64
+ #snackBarRef;
65
+ #snackData;
66
+ dismiss(withAction = false) {
67
+ if (withAction) {
68
+ this.#snackBarRef.dismissWithAction();
69
+ }
70
+ else if (!this.action()) {
71
+ this.#snackBarRef.dismiss();
72
+ }
73
+ }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SnackBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: SnackBarComponent, isStandalone: true, selector: "yuv-snack-bar-component", host: { properties: { "class.info": "level() === 'info'", "class.success": "level() === 'success'", "class.warning": "level() === 'warning'", "class.danger": "level() === 'danger'" } }, ngImport: i0, template: `
76
+ <span matSnackBarLabel (click)="dismiss()"> {{ message() }} </span>
77
+ @let a = action();
78
+ @if (a) {
79
+ <span matSnackBarActions>
80
+ <button mat-button matSnackBarAction (click)="dismiss(!!a)">{{ action() }}</button>
81
+ </span>
82
+ }
83
+ `, isInline: true, styles: [":host{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatSnackBarLabel, selector: "[matSnackBarLabel]" }, { kind: "directive", type: MatSnackBarActions, selector: "[matSnackBarActions]" }, { kind: "directive", type: MatSnackBarAction, selector: "[matSnackBarAction]" }] }); }
84
+ }
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SnackBarComponent, decorators: [{
86
+ type: Component,
87
+ args: [{ selector: 'yuv-snack-bar-component', template: `
88
+ <span matSnackBarLabel (click)="dismiss()"> {{ message() }} </span>
89
+ @let a = action();
90
+ @if (a) {
91
+ <span matSnackBarActions>
92
+ <button mat-button matSnackBarAction (click)="dismiss(!!a)">{{ action() }}</button>
93
+ </span>
94
+ }
95
+ `, imports: [MatButtonModule, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction], host: {
96
+ '[class.info]': "level() === 'info'",
97
+ '[class.success]': "level() === 'success'",
98
+ '[class.warning]': "level() === 'warning'",
99
+ '[class.danger]': "level() === 'danger'"
100
+ }, styles: [":host{display:flex}\n"] }]
101
+ }] });
102
+
17
103
  /**
18
104
  * Generated bundle index. Do not edit.
19
105
  */
20
106
 
21
- export { YuuvisClientFrameworkModule };
107
+ export { SnackBarComponent, SnackBarService, YuuvisClientFrameworkModule };
22
108
  //# sourceMappingURL=yuuvis-client-framework.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"yuuvis-client-framework.mjs","sources":["../../../../../libs/yuuvis/client-framework/src/lib/yuuvis-client-framework.module.ts","../../../../../libs/yuuvis/client-framework/src/yuuvis-client-framework.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class YuuvisClientFrameworkModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAMa,2BAA2B,CAAA;+GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,YAF5B,YAAY,CAAA,EAAA,CAAA,CAAA;AAEX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,YAF5B,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAEX,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;ACLD;;AAEG;;;;"}
1
+ {"version":3,"file":"yuuvis-client-framework.mjs","sources":["../../../../../libs/yuuvis/client-framework/src/lib/yuuvis-client-framework.module.ts","../../../../../libs/yuuvis/client-framework/src/lib/services/snack-bar/snack-bar.service.ts","../../../../../libs/yuuvis/client-framework/src/yuuvis-client-framework.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class YuuvisClientFrameworkModule {}\n","import { Component, inject, Injectable, signal } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBar, MatSnackBarAction, MatSnackBarActions, MatSnackBarLabel, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { SnackBarData, SnackBarLevel, SnackBarOptions } from './snack-bar.interface';\nimport { MatButtonModule } from '@angular/material/button';\n@Injectable({\n providedIn: 'root'\n})\nexport class SnackBarService {\n #snackBar = inject(MatSnackBar);\n\n info(message: string, action?: string): MatSnackBarRef<SnackBarComponent> {\n return this.snack(message, { action, level: 'info' });\n }\n\n success(message: string, action?: string): MatSnackBarRef<SnackBarComponent> {\n return this.snack(message, { action, level: 'success' });\n }\n\n warning(message: string, action?: string): MatSnackBarRef<SnackBarComponent> {\n return this.snack(message, { action, level: 'warning' });\n }\n\n danger(message: string, action?: string): MatSnackBarRef<SnackBarComponent> {\n return this.snack(message, { action, level: 'danger' });\n }\n\n snack(message: string, options: SnackBarOptions): MatSnackBarRef<SnackBarComponent> {\n return this.#snackBar.openFromComponent(SnackBarComponent, {\n data: {\n level: options.level,\n message,\n action: options.action\n },\n duration: options.duration,\n horizontalPosition: options.horizontalPosition,\n verticalPosition: options.verticalPosition,\n panelClass: ['yuv-snack-bar', 'level-' + options.level]\n });\n }\n}\n\n@Component({\n selector: 'yuv-snack-bar-component',\n template: `\n <span matSnackBarLabel (click)=\"dismiss()\"> {{ message() }} </span>\n @let a = action();\n @if (a) {\n <span matSnackBarActions>\n <button mat-button matSnackBarAction (click)=\"dismiss(!!a)\">{{ action() }}</button>\n </span>\n }\n `,\n styles: `\n :host {\n display: flex;\n }\n `,\n imports: [MatButtonModule, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction],\n host: {\n '[class.info]': \"level() === 'info'\",\n '[class.success]': \"level() === 'success'\",\n '[class.warning]': \"level() === 'warning'\",\n '[class.danger]': \"level() === 'danger'\"\n }\n})\nexport class SnackBarComponent {\n #snackBarRef = inject(MatSnackBarRef);\n #snackData = inject<SnackBarData>(MAT_SNACK_BAR_DATA);\n level = signal<SnackBarLevel>(this.#snackData.level);\n message = signal<string>(this.#snackData.message);\n action = signal<string | undefined>(this.#snackData.action);\n\n dismiss(withAction = false) {\n if (withAction) {\n this.#snackBarRef.dismissWithAction();\n } else if (!this.action()) {\n this.#snackBarRef.dismiss();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1 +1,3 @@
1
1
  export * from './lib/yuuvis-client-framework.module';
2
+ export * from './lib/services/snack-bar/snack-bar.service';
3
+ export * from './lib/services/snack-bar/snack-bar.interface';
@@ -0,0 +1,14 @@
1
+ import { MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from "@angular/material/snack-bar";
2
+ export type SnackBarLevel = 'info' | 'success' | 'warning' | 'danger';
3
+ export interface SnackBarData {
4
+ level: SnackBarLevel;
5
+ message: string;
6
+ action?: string;
7
+ }
8
+ export interface SnackBarOptions {
9
+ duration?: number;
10
+ horizontalPosition?: MatSnackBarHorizontalPosition;
11
+ verticalPosition?: MatSnackBarVerticalPosition;
12
+ action?: string;
13
+ level?: SnackBarLevel;
14
+ }
@@ -0,0 +1,22 @@
1
+ import { MatSnackBarRef } from '@angular/material/snack-bar';
2
+ import { SnackBarLevel, SnackBarOptions } from './snack-bar.interface';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SnackBarService {
5
+ #private;
6
+ info(message: string, action?: string): MatSnackBarRef<SnackBarComponent>;
7
+ success(message: string, action?: string): MatSnackBarRef<SnackBarComponent>;
8
+ warning(message: string, action?: string): MatSnackBarRef<SnackBarComponent>;
9
+ danger(message: string, action?: string): MatSnackBarRef<SnackBarComponent>;
10
+ snack(message: string, options: SnackBarOptions): MatSnackBarRef<SnackBarComponent>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<SnackBarService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<SnackBarService>;
13
+ }
14
+ export declare class SnackBarComponent {
15
+ #private;
16
+ level: import("@angular/core").WritableSignal<SnackBarLevel>;
17
+ message: import("@angular/core").WritableSignal<string>;
18
+ action: import("@angular/core").WritableSignal<string | undefined>;
19
+ dismiss(withAction?: boolean): void;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<SnackBarComponent, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<SnackBarComponent, "yuv-snack-bar-component", never, {}, {}, never, never, true, never>;
22
+ }
@@ -1,7 +1,7 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import { ObjectTypeField } from '@yuuvis/client-core';
3
- import { MetadataFormFieldContext } from './metadata-form-field.interface';
4
3
  import { Subject } from 'rxjs';
4
+ import { MetadataFormFieldContext, ParentFormChangedEvent } from './metadata-form-field.interface';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@yuuvis/client-framework/common";
7
7
  /**
@@ -13,7 +13,7 @@ export declare class MetadataFormFieldComponent {
13
13
  #private;
14
14
  elementTemplate: import("@angular/core").WritableSignal<TemplateRef<any> | undefined>;
15
15
  readonly: boolean;
16
- formChangedSubject: import("@angular/core").InputSignal<Subject<void> | undefined>;
16
+ formChangedSubject: import("@angular/core").InputSignal<Subject<ParentFormChangedEvent> | undefined>;
17
17
  formField: import("@angular/core").InputSignal<ObjectTypeField>;
18
18
  context: import("@angular/core").Signal<MetadataFormFieldContext>;
19
19
  /**
@@ -9,5 +9,11 @@ export interface MetadataFormFieldContext {
9
9
  situation: string;
10
10
  field: ObjectTypeField;
11
11
  ctrl?: AbstractControl<any, any>;
12
- formChangedSubject?: Subject<void>;
12
+ formChangedSubject?: Subject<ParentFormChangedEvent>;
13
+ }
14
+ export interface ParentFormChangedEvent {
15
+ invalid: boolean;
16
+ dirty: boolean;
17
+ indexdataChanged: boolean;
18
+ data?: any;
13
19
  }
@@ -19,7 +19,11 @@ export declare class ObjectDetailsShellComponent {
19
19
  * Bucket of the object config to retrieve header data from
20
20
  */
21
21
  bucket: import("@angular/core").InputSignal<string | undefined>;
22
+ /**
23
+ * Whether to hide the header
24
+ */
25
+ hideHeader: import("@angular/core").InputSignal<boolean>;
22
26
  constructor();
23
27
  static ɵfac: i0.ɵɵFactoryDeclaration<ObjectDetailsShellComponent, never>;
24
- static ɵcmp: i0.ɵɵComponentDeclaration<ObjectDetailsShellComponent, "yuv-object-details-shell", never, { "type": { "alias": "type"; "required": true; "isSignal": true; }; "bucket": { "alias": "bucket"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<ObjectDetailsShellComponent, "yuv-object-details-shell", never, { "type": { "alias": "type"; "required": true; "isSignal": true; }; "bucket": { "alias": "bucket"; "required": false; "isSignal": true; }; "hideHeader": { "alias": "hideHeader"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
25
29
  }
@@ -33,7 +33,11 @@ export declare class ObjectDetailsComponent {
33
33
  * ID of a DmsObject. The object will be fetched from the backend upfront.
34
34
  */
35
35
  objectId: import("@angular/core").InputSignal<string | undefined>;
36
+ /**
37
+ * Whether to hide the header
38
+ */
39
+ hideHeader: import("@angular/core").InputSignal<boolean>;
36
40
  onIndexdataSaved(updatedObject: DmsObject): void;
37
41
  static ɵfac: i0.ɵɵFactoryDeclaration<ObjectDetailsComponent, never>;
38
- static ɵcmp: i0.ɵɵComponentDeclaration<ObjectDetailsComponent, "yuv-object-details", never, { "dmsObject": { "alias": "dmsObject"; "required": false; "isSignal": true; }; "flavors": { "alias": "flavors"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": true; "isSignal": true; }; "objectConfigBucket": { "alias": "objectConfigBucket"; "required": false; "isSignal": true; }; "objectId": { "alias": "objectId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<ObjectDetailsComponent, "yuv-object-details", never, { "dmsObject": { "alias": "dmsObject"; "required": false; "isSignal": true; }; "flavors": { "alias": "flavors"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": true; "isSignal": true; }; "objectConfigBucket": { "alias": "objectConfigBucket"; "required": false; "isSignal": true; }; "objectId": { "alias": "objectId"; "required": false; "isSignal": true; }; "hideHeader": { "alias": "hideHeader"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
39
43
  }
@@ -0,0 +1,15 @@
1
+ import { ObjectMetadataSectionInput } from './object-metadata-section.interface';
2
+ import { FormStatusChangedEvent, IObjectFormElementExtension, ObjectFormOptions } from '@yuuvis/client-framework/object-form';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ObjectMetadataSectionComponent {
5
+ #private;
6
+ _formOptions: import("@angular/core").WritableSignal<ObjectFormOptions | undefined>;
7
+ busy: import("@angular/core").WritableSignal<boolean>;
8
+ section: import("@angular/core").InputSignal<ObjectMetadataSectionInput>;
9
+ expanded: import("@angular/core").InputSignal<boolean>;
10
+ elementExtensions: import("@angular/core").InputSignal<IObjectFormElementExtension[]>;
11
+ _expanded: import("@angular/core").WritableSignal<boolean>;
12
+ statusChanged: import("@angular/core").OutputEmitterRef<FormStatusChangedEvent>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<ObjectMetadataSectionComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<ObjectMetadataSectionComponent, "yuv-object-metadata-section", never, { "section": { "alias": "section"; "required": true; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "elementExtensions": { "alias": "elementExtensions"; "required": false; "isSignal": true; }; }, { "statusChanged": "statusChanged"; }, never, never, true, never>;
15
+ }
@@ -0,0 +1,9 @@
1
+ import { Situation } from "@yuuvis/client-core";
2
+ export interface ObjectMetadataSectionInput {
3
+ id: string;
4
+ label: string;
5
+ situation?: Situation;
6
+ icon?: string;
7
+ svgIcon?: boolean;
8
+ data?: Record<string, unknown>;
9
+ }
@@ -1,7 +1,8 @@
1
1
  import { OnDestroy } from '@angular/core';
2
2
  import { DmsObject, FlavoredDmsObject, Situation, TranslateService } from '@yuuvis/client-core';
3
- import { FormStatusChangedEvent, ObjectFormComponent, ObjectFormOptions } from '@yuuvis/client-framework/object-form';
3
+ import { FormStatusChangedEvent, IObjectFormElementExtension, ObjectFormComponent, ObjectFormOptions } from '@yuuvis/client-framework/object-form';
4
4
  import { RendererDirectiveInput } from '@yuuvis/client-framework/renderer';
5
+ import { ObjectMetadataSectionInput } from './object-metadata-section/object-metadata-section.interface';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class ObjectMetadataComponent implements OnDestroy {
7
8
  #private;
@@ -17,16 +18,11 @@ export declare class ObjectMetadataComponent implements OnDestroy {
17
18
  * creation date, creator, version, etc.
18
19
  */
19
20
  disableBasicMetadata: import("@angular/core").InputSignal<boolean>;
21
+ elementExtensions: import("@angular/core").InputSignal<IObjectFormElementExtension[]>;
20
22
  controlsVisible: import("@angular/core").WritableSignal<boolean>;
21
23
  empty: import("@angular/core").Signal<boolean>;
22
24
  mainFormOptions: import("@angular/core").WritableSignal<ObjectFormOptions | undefined>;
23
- flavorFormOptions: import("@angular/core").WritableSignal<{
24
- id: string;
25
- label: string;
26
- icon?: string;
27
- svgIcon?: boolean;
28
- formOptions: ObjectFormOptions;
29
- }[]>;
25
+ flavorFormOptions: import("@angular/core").WritableSignal<ObjectMetadataSectionInput[]>;
30
26
  baseData: {
31
27
  label: string;
32
28
  value: RendererDirectiveInput;
@@ -58,5 +54,5 @@ export declare class ObjectMetadataComponent implements OnDestroy {
58
54
  resetForm(): void;
59
55
  ngOnDestroy(): void;
60
56
  static ɵfac: i0.ɵɵFactoryDeclaration<ObjectMetadataComponent, never>;
61
- static ɵcmp: i0.ɵɵComponentDeclaration<ObjectMetadataComponent, "yuv-object-metadata", never, { "disableControls": { "alias": "disableControls"; "required": false; "isSignal": true; }; "disableBasicMetadata": { "alias": "disableBasicMetadata"; "required": false; "isSignal": true; }; "situation": { "alias": "situation"; "required": false; }; "formDisabled": { "alias": "formDisabled"; "required": false; }; "dmsObject": { "alias": "dmsObject"; "required": false; "isSignal": true; }; "flavoredDmsObject": { "alias": "flavoredDmsObject"; "required": false; "isSignal": true; }; }, { "indexDataSaved": "indexDataSaved"; "statusChanged": "statusChanged"; }, never, never, true, never>;
57
+ static ɵcmp: i0.ɵɵComponentDeclaration<ObjectMetadataComponent, "yuv-object-metadata", never, { "disableControls": { "alias": "disableControls"; "required": false; "isSignal": true; }; "disableBasicMetadata": { "alias": "disableBasicMetadata"; "required": false; "isSignal": true; }; "elementExtensions": { "alias": "elementExtensions"; "required": false; "isSignal": true; }; "situation": { "alias": "situation"; "required": false; }; "formDisabled": { "alias": "formDisabled"; "required": false; }; "dmsObject": { "alias": "dmsObject"; "required": false; "isSignal": true; }; "flavoredDmsObject": { "alias": "flavoredDmsObject"; "required": false; "isSignal": true; }; }, { "indexDataSaved": "indexDataSaved"; "statusChanged": "statusChanged"; }, never, never, true, never>;
62
58
  }
@@ -2,3 +2,4 @@ export * from './lib/object-form.module';
2
2
  export * from './lib/object-form.component';
3
3
  export * from './lib/object-form-extension.interface';
4
4
  export * from './lib/object-form.interface';
5
+ export * from './lib/object-form.service';
@@ -7,7 +7,7 @@ import * as i0 from "@angular/core";
7
7
  export declare class ObjectFormElementComponent {
8
8
  #private;
9
9
  createForm: import("@angular/core").WritableSignal<boolean>;
10
- formChangedSubject: import("rxjs").Subject<void>;
10
+ formChangedSubject: import("rxjs").Subject<import("@yuuvis/client-framework/object-form").FormStatusChangedEvent>;
11
11
  formControlName?: string;
12
12
  formElementRef: any;
13
13
  errors?: string[];
@@ -2,13 +2,14 @@ import { Type } from '@angular/core';
2
2
  import { ObjectFormControlWrapper, ObjectFormGroup } from '@yuuvis/client-core';
3
3
  import { IObjectFormElementExtension, ObjectFormElementExtension } from './object-form-extension.interface';
4
4
  import { Subject } from 'rxjs';
5
+ import { FormStatusChangedEvent } from './object-form.interface';
5
6
  import * as i0 from "@angular/core";
6
7
  /**
7
8
  * @ignore
8
9
  */
9
10
  export declare class ObjectFormService {
10
11
  #private;
11
- formStatusChanged: Subject<void>;
12
+ formChanged: Subject<FormStatusChangedEvent>;
12
13
  setElementExtensions(formExtensions: IObjectFormElementExtension[]): void;
13
14
  getElementExtensions(propertyName: string): Type<ObjectFormElementExtension>[];
14
15
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuuvis/client-framework",
3
- "version": "2.1.34",
3
+ "version": "2.3.0",
4
4
  "author": "OPTIMAL SYSTEMS GmbH <npm@optimal-systems.de>",
5
5
  "license": "MIT",
6
6
  "peerDependencies": {
@@ -8,15 +8,15 @@
8
8
  "@angular/common": "^19.2.1",
9
9
  "@angular/core": "^19.2.1",
10
10
  "angular-gridster2": "^19.0.0",
11
- "@yuuvis/client-core": "^2.1.34",
12
- "@yuuvis/client-shell-core": "^2.1.34",
11
+ "@yuuvis/client-core": "^2.3.0",
12
+ "@yuuvis/client-shell-core": "^2.3.0",
13
13
  "ng-dynamic-component": "^10.8.2",
14
14
  "modern-normalize": "^3.0.1"
15
15
  },
16
16
  "dependencies": {
17
17
  "@angular/material": "^19.2.15",
18
18
  "@ngrx/signals": "^19.2.0",
19
- "@yuuvis/material": "2.1.34",
19
+ "@yuuvis/material": "2.3.0",
20
20
  "@yuuvis/media-viewer": "^2.0.7",
21
21
  "angular-split": "^19.0.0",
22
22
  "tslib": "^2.3.0"
@@ -35,14 +35,14 @@
35
35
  "types": "./actions/index.d.ts",
36
36
  "default": "./fesm2022/yuuvis-client-framework-actions.mjs"
37
37
  },
38
- "./app-bar": {
39
- "types": "./app-bar/index.d.ts",
40
- "default": "./fesm2022/yuuvis-client-framework-app-bar.mjs"
41
- },
42
38
  "./autocomplete": {
43
39
  "types": "./autocomplete/index.d.ts",
44
40
  "default": "./fesm2022/yuuvis-client-framework-autocomplete.mjs"
45
41
  },
42
+ "./app-bar": {
43
+ "types": "./app-bar/index.d.ts",
44
+ "default": "./fesm2022/yuuvis-client-framework-app-bar.mjs"
45
+ },
46
46
  "./clipboard": {
47
47
  "types": "./clipboard/index.d.ts",
48
48
  "default": "./fesm2022/yuuvis-client-framework-clipboard.mjs"