@yuuvis/client-framework 3.10.0 → 3.11.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuuvis/client-framework",
3
- "version": "3.10.0",
3
+ "version": "3.11.1",
4
4
  "author": "OPTIMAL SYSTEMS GmbH <npm@optimal-systems.de>",
5
5
  "license": "MIT",
6
6
  "peerDependencies": {
@@ -8,16 +8,16 @@
8
8
  "@angular/common": "^21.2.9",
9
9
  "@angular/core": "^21.2.9",
10
10
  "angular-gridster2": "^21.0.1",
11
- "@yuuvis/client-core": "^3.10.0",
12
- "@yuuvis/client-shell-core": "^3.10.0",
13
- "@yuuvis/client-components": "^3.10.0",
11
+ "@yuuvis/client-core": "^3.11.1",
12
+ "@yuuvis/client-shell-core": "^3.11.1",
13
+ "@yuuvis/client-components": "^3.11.1",
14
14
  "ng-dynamic-component": "^10.8.2",
15
15
  "modern-normalize": "^3.0.1"
16
16
  },
17
17
  "dependencies": {
18
18
  "@angular/material": "^21.2.7",
19
19
  "@ngrx/signals": "^21.1.0",
20
- "@yuuvis/material": "^3.10.0",
20
+ "@yuuvis/material": "^3.11.1",
21
21
  "@yuuvis/media-viewer": "^3.0.6",
22
22
  "angular-split": "^20.0.0",
23
23
  "vis-network": "^10.0.2",
@@ -183,8 +183,31 @@ declare class ObjectMetadataSectionComponent {
183
183
  expandedInput: _angular_core.InputSignal<boolean>;
184
184
  elementExtensions: _angular_core.InputSignal<IObjectFormElementExtension[]>;
185
185
  readonly: _angular_core.InputSignal<boolean | undefined>;
186
+ /**
187
+ * When `true`, the section's expand/collapse feature is removed: the content is
188
+ * always visible, cannot be collapsed, and the accordion toggle (arrow) is hidden.
189
+ */
190
+ skipExpand: _angular_core.InputSignal<boolean | undefined>;
191
+ /**
192
+ * When `true`, the section header (title, icon and toggle) is not rendered while the
193
+ * content region is still shown. Typically combined with {@link skipExpand} to display
194
+ * a title-less, always-open section.
195
+ */
196
+ skipTitle: _angular_core.InputSignal<boolean | undefined>;
186
197
  expanded: _angular_core.WritableSignal<boolean>;
198
+ /**
199
+ * Effective expanded state. When `skipExpand` is set the section is always visible
200
+ * and cannot be collapsed, so it is treated as permanently expanded.
201
+ */
202
+ isExpanded: _angular_core.Signal<boolean>;
187
203
  busy: _angular_core.WritableSignal<boolean>;
204
+ /**
205
+ * Gate for the reveal/collapse transition. Stays `false` for the first render so a
206
+ * section that mounts already expanded (auto-expanded first section or {@link skipExpand})
207
+ * appears instantly without a slide. Enabled after the initial render so that only
208
+ * subsequent user-driven toggles animate.
209
+ */
210
+ animate: _angular_core.WritableSignal<boolean>;
188
211
  formOptions: _angular_core.WritableSignal<ObjectFormOptions | undefined>;
189
212
  statusChanged: _angular_core.OutputEmitterRef<FormStatusChangedEvent>;
190
213
  /**
@@ -197,12 +220,35 @@ declare class ObjectMetadataSectionComponent {
197
220
  * classes when the default `yuv-object-form` (and thus `objectForm()`) is absent.
198
221
  */
199
222
  customStatus: _angular_core.WritableSignal<FormStatusChangedEvent | undefined>;
223
+ /**
224
+ * Settled status of the default `yuv-object-form`, captured from its `statusChanged`
225
+ * output. The host classes read this signal instead of the live `form.invalid`/
226
+ * `form.dirty` for two reasons:
227
+ * - it is only updated once the form has emitted a settled status (after the model
228
+ * is built and its values are patched), so the transient window where required
229
+ * controls are momentarily invalid never reaches the DOM (no red flash);
230
+ * - a signal value is stable within a change-detection cycle, so expanding a section
231
+ * mid-cycle no longer throws NG0100 (removing the consumer-side "defer expand by a
232
+ * tick" workaround).
233
+ */
234
+ formStatus: _angular_core.WritableSignal<FormStatusChangedEvent | undefined>;
235
+ /**
236
+ * Reflect the invalid styling only once the form has been edited (dirty). This
237
+ * suppresses the load transient and follows the convention of not surfacing errors
238
+ * before the user interacts. A form that is genuinely invalid after user interaction
239
+ * still shows the red border/outline.
240
+ */
241
+ showInvalid: _angular_core.Signal<boolean>;
242
+ showDirty: _angular_core.Signal<boolean>;
200
243
  renderCustom: _angular_core.Signal<boolean>;
201
244
  sotContext: _angular_core.Signal<SotRendererContext>;
245
+ toggle(): void;
246
+ /** Capture the default form's settled status, then re-emit it to consumers. */
247
+ onFormStatusChanged(evt: FormStatusChangedEvent): void;
202
248
  resetForm(): void;
203
249
  setFormPristine(): void;
204
250
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ObjectMetadataSectionComponent, never>;
205
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ObjectMetadataSectionComponent, "yuv-object-metadata-section", never, { "section": { "alias": "section"; "required": true; "isSignal": true; }; "expandedInput": { "alias": "expanded"; "required": false; "isSignal": true; }; "elementExtensions": { "alias": "elementExtensions"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, { "statusChanged": "statusChanged"; }, never, never, true, never>;
251
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ObjectMetadataSectionComponent, "yuv-object-metadata-section", never, { "section": { "alias": "section"; "required": true; "isSignal": true; }; "expandedInput": { "alias": "expanded"; "required": false; "isSignal": true; }; "elementExtensions": { "alias": "elementExtensions"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "skipExpand": { "alias": "skipExpand"; "required": false; "isSignal": true; }; "skipTitle": { "alias": "skipTitle"; "required": false; "isSignal": true; }; }, { "statusChanged": "statusChanged"; }, never, never, true, never>;
206
252
  }
207
253
 
208
254
  declare class ObjectMetadataComponent implements OnDestroy {