@yuuvis/client-framework 3.19.0 → 3.20.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.
- package/fesm2022/yuuvis-client-framework-object-details.mjs +2 -1
- package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs +2 -1
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-form.mjs +3 -1
- package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-relationship.mjs +9 -3
- package/fesm2022/yuuvis-client-framework-object-relationship.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-summary.mjs +4 -1
- package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-renderer.mjs +22 -11
- package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-smart-search.mjs +54 -14
- package/fesm2022/yuuvis-client-framework-smart-search.mjs.map +1 -1
- package/package.json +5 -5
- package/types/yuuvis-client-framework-object-form.d.ts +6 -0
- package/types/yuuvis-client-framework-renderer.d.ts +17 -4
- package/types/yuuvis-client-framework-smart-search.d.ts +29 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuuvis/client-framework",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.20.0",
|
|
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.19",
|
|
9
9
|
"@angular/core": "^21.2.19",
|
|
10
10
|
"angular-gridster2": "^21.0.1",
|
|
11
|
-
"@yuuvis/client-core": "^3.
|
|
12
|
-
"@yuuvis/client-shell-core": "^3.
|
|
13
|
-
"@yuuvis/client-components": "^3.
|
|
11
|
+
"@yuuvis/client-core": "^3.20.0",
|
|
12
|
+
"@yuuvis/client-shell-core": "^3.20.0",
|
|
13
|
+
"@yuuvis/client-components": "^3.20.0",
|
|
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.14",
|
|
19
19
|
"@ngrx/signals": "^21.1.0",
|
|
20
|
-
"@yuuvis/material": "^3.
|
|
20
|
+
"@yuuvis/material": "^3.20.0",
|
|
21
21
|
"@yuuvis/media-viewer": "^4.0.0",
|
|
22
22
|
"angular-split": "^20.0.0",
|
|
23
23
|
"vis-network": "^10.0.2",
|
|
@@ -25,6 +25,12 @@ interface ObjectFormOptions {
|
|
|
25
25
|
*/
|
|
26
26
|
data: Record<string, unknown>;
|
|
27
27
|
objectId?: string;
|
|
28
|
+
/**
|
|
29
|
+
* ID of the object type (or secondary object type) the form model belongs to. Used to
|
|
30
|
+
* enrich form elements from the schema in the context of that type — a type may bind a
|
|
31
|
+
* shared property to its own dynamic catalog. Falls back to the form model's own id.
|
|
32
|
+
*/
|
|
33
|
+
objectTypeId?: string;
|
|
28
34
|
/**
|
|
29
35
|
* whether or not to disable the complete form
|
|
30
36
|
*/
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { ComponentRef, Type } from '@angular/core';
|
|
3
3
|
import { AuditEntry, SchemaResponseFieldDefinition, TranslateService, ResolvedObjectConfigItem, RendererType } from '@yuuvis/client-core';
|
|
4
|
-
import * as dist_libs_yuuvis_client_core_types_yuuvis_client_core from 'dist/libs/yuuvis/client-core/types/yuuvis-client-core';
|
|
5
4
|
|
|
6
5
|
/**
|
|
7
6
|
* Abstract class to be extended by audit-entry renderers. The renderer controls the
|
|
@@ -71,9 +70,15 @@ declare abstract class AbstractRendererComponent<T = string, U = null> {
|
|
|
71
70
|
propertyName: i0.InputSignal<string>;
|
|
72
71
|
value: i0.InputSignal<T | null>;
|
|
73
72
|
meta: i0.InputSignal<U | Record<string, unknown> | undefined>;
|
|
73
|
+
/**
|
|
74
|
+
* ID of the object type (or secondary object type) the property is rendered for, when known.
|
|
75
|
+
* Some schema attributes — most notably the dynamic `catalog` a property is bound to — may be
|
|
76
|
+
* overridden per type, and can only be resolved with that context.
|
|
77
|
+
*/
|
|
78
|
+
objectTypeId: i0.InputSignal<string | undefined>;
|
|
74
79
|
protected getProperty(): SchemaResponseFieldDefinition | undefined;
|
|
75
80
|
static ɵfac: i0.ɵɵFactoryDeclaration<AbstractRendererComponent<any, any>, never>;
|
|
76
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AbstractRendererComponent<any, any>, "yuv-abstract-renderer", never, { "propertyName": { "alias": "propertyName"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "meta": { "alias": "meta"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
81
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AbstractRendererComponent<any, any>, "yuv-abstract-renderer", never, { "propertyName": { "alias": "propertyName"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "meta": { "alias": "meta"; "required": false; "isSignal": true; }; "objectTypeId": { "alias": "objectTypeId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
77
82
|
}
|
|
78
83
|
|
|
79
84
|
declare class BooleanRendererComponent extends AbstractRendererComponent {
|
|
@@ -184,7 +189,15 @@ declare class UnknownRendererComponent extends AbstractRendererComponent<any> {
|
|
|
184
189
|
}
|
|
185
190
|
|
|
186
191
|
type RendererComponent = IntegerRendererComponent | DecimalRendererComponent | DateTimeRendererComponent | IconRendererComponent | StringRendererComponent | BooleanRendererComponent | TableRendererComponent | I18nCatalogRendererComponent | DynamicCatalogRendererComponent;
|
|
187
|
-
|
|
192
|
+
/**
|
|
193
|
+
* Input of the `yuvRenderer` directive. `objectTypeId` is optional type context: a type may bind
|
|
194
|
+
* a shared property to its own dynamic catalog, and that override can only be resolved when the
|
|
195
|
+
* type (or secondary object type) the property is rendered for is known. Without it the renderer
|
|
196
|
+
* falls back to the global property definition.
|
|
197
|
+
*/
|
|
198
|
+
type RendererDirectiveInput = ResolvedObjectConfigItem & {
|
|
199
|
+
objectTypeId?: string;
|
|
200
|
+
};
|
|
188
201
|
|
|
189
202
|
/**
|
|
190
203
|
* Service for managing property type renderers. Renderers are components that will render certain
|
|
@@ -223,7 +236,7 @@ declare class RendererService {
|
|
|
223
236
|
declare class RendererDirective {
|
|
224
237
|
#private;
|
|
225
238
|
component: ComponentRef<RendererComponent>;
|
|
226
|
-
yuvRenderer: i0.InputSignal<
|
|
239
|
+
yuvRenderer: i0.InputSignal<RendererDirectiveInput | undefined>;
|
|
227
240
|
static ɵfac: i0.ɵɵFactoryDeclaration<RendererDirective, never>;
|
|
228
241
|
static ɵdir: i0.ɵɵDirectiveDeclaration<RendererDirective, "[yuvRenderer]", never, { "yuvRenderer": { "alias": "yuvRenderer"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
229
242
|
}
|
|
@@ -247,7 +247,13 @@ declare class SmartSearchEditController {
|
|
|
247
247
|
*/
|
|
248
248
|
activeFields: _angular_core.Signal<SuggestionItem[]>;
|
|
249
249
|
suggestions: _angular_core.Signal<SuggestionItem[]>;
|
|
250
|
-
/**
|
|
250
|
+
/**
|
|
251
|
+
* Whether the full-text unit contributes to the query — a term, a type restriction, or both.
|
|
252
|
+
* Drives its own muted styling and the joiner below it, so what reads as active matches what
|
|
253
|
+
* is actually queried (see {@link isFulltextActive}).
|
|
254
|
+
*/
|
|
255
|
+
fulltextActive: _angular_core.Signal<boolean>;
|
|
256
|
+
/** Number of top-level query units: the full-text unit (when it contributes one) plus each block. */
|
|
251
257
|
unitCount: _angular_core.Signal<number>;
|
|
252
258
|
showCombinator: _angular_core.Signal<boolean>;
|
|
253
259
|
cmisQuery: _angular_core.Signal<string>;
|
|
@@ -397,14 +403,30 @@ declare function isConditionUnset(cond: FieldCondition): boolean;
|
|
|
397
403
|
declare function buildNodeClause(node: ConditionNode): string;
|
|
398
404
|
/**
|
|
399
405
|
* Build the whole-object full-text clause: a single `CONTAINS('term')` predicate, optionally scoped
|
|
400
|
-
* to a column and AND-ed with a type restriction.
|
|
406
|
+
* to a column and AND-ed with a type restriction.
|
|
407
|
+
*
|
|
408
|
+
* A type restriction on its own — types picked in the full-text bar's type filter with nothing
|
|
409
|
+
* typed — is a query in its own right ("show me everything of this type"), exactly like a type
|
|
410
|
+
* block carrying no conditions. So the picked types are returned alone in that case; only a unit
|
|
411
|
+
* with neither a term nor a picked type contributes nothing and yields `''`.
|
|
401
412
|
*
|
|
402
413
|
* @param fulltext The full-text unit. An empty `types` list means "all types".
|
|
403
|
-
* @param scopeTypes The types the search is scoped to (the host's `types` allow-list). When
|
|
404
|
-
*
|
|
405
|
-
*
|
|
414
|
+
* @param scopeTypes The types the search is scoped to (the host's `types` allow-list). When the
|
|
415
|
+
* unit picks no concrete type, "all types" means *any of these* — so the restriction is still
|
|
416
|
+
* emitted. Pass an empty list for an unscoped search: then "all types" restricts nothing.
|
|
417
|
+
*
|
|
418
|
+
* The scope deliberately only narrows a *term* search. With nothing typed and no type picked the
|
|
419
|
+
* panel is simply untouched, and falling back to the scope there would turn it into a standing
|
|
420
|
+
* "everything in scope" query the moment it opens.
|
|
406
421
|
*/
|
|
407
422
|
declare function buildFulltextClause(fulltext: FulltextSearch, scopeTypes?: SearchBlockType[]): string;
|
|
423
|
+
/**
|
|
424
|
+
* Whether the full-text unit contributes a clause to the query — a term, a type restriction, or
|
|
425
|
+
* both. Lives next to {@link buildFulltextClause} so the UI's notion of "this unit is active"
|
|
426
|
+
* (its muted styling, the joiner to the blocks below it, the unit count behind the AND/OR toggle)
|
|
427
|
+
* cannot drift from what actually ends up in the query.
|
|
428
|
+
*/
|
|
429
|
+
declare function isFulltextActive(fulltext: FulltextSearch): boolean;
|
|
408
430
|
/**
|
|
409
431
|
* Assemble the full CMIS statement from the search state. Each unit — the
|
|
410
432
|
* full-text clause plus every type block (type restriction `AND`-ed with its
|
|
@@ -581,6 +603,7 @@ declare class SmartSearchComponent {
|
|
|
581
603
|
readonly showCombinator: _angular_core.Signal<boolean>;
|
|
582
604
|
readonly suggestions: _angular_core.Signal<SuggestionItem[]>;
|
|
583
605
|
readonly fulltext: _angular_core.WritableSignal<_yuuvis_client_framework_smart_search.FulltextSearch>;
|
|
606
|
+
readonly fulltextActive: _angular_core.Signal<boolean>;
|
|
584
607
|
readonly objectTypes: _angular_core.Signal<_yuuvis_client_core.GenericObjectType[]>;
|
|
585
608
|
readonly activeBlockFields: _angular_core.Signal<SuggestionItem[]>;
|
|
586
609
|
readonly formMode: _angular_core.WritableSignal<boolean>;
|
|
@@ -774,5 +797,5 @@ declare class YuvSmartSearchModule {
|
|
|
774
797
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<YuvSmartSearchModule>;
|
|
775
798
|
}
|
|
776
799
|
|
|
777
|
-
export { SmartSearchComponent, YuvSmartSearchModule, buildCmisQuery, buildFulltextClause, buildNodeClause, isConditionGroup, isFieldCondition, isTableCondition };
|
|
800
|
+
export { SmartSearchComponent, YuvSmartSearchModule, buildCmisQuery, buildFulltextClause, buildNodeClause, isConditionGroup, isFieldCondition, isFulltextActive, isTableCondition };
|
|
778
801
|
export type { BuildStep, Combinator, ConditionContainer, ConditionGroup, ConditionNode, FieldCondition, FulltextScope, FulltextSearch, SearchBlock, SearchBlockType, SmartSearchState, SuggestionItem, TableCondition };
|