@meshmakers/octo-ui 3.3.34 → 3.3.390
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/README.md +161 -13
- package/fesm2022/meshmakers-octo-ui.mjs +4147 -400
- package/fesm2022/meshmakers-octo-ui.mjs.map +1 -1
- package/package.json +19 -5
- package/types/meshmakers-octo-ui.d.ts +806 -0
- package/index.d.ts +0 -136
|
@@ -0,0 +1,806 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { OnInit, OnChanges, EventEmitter, SimpleChanges, OnDestroy, EnvironmentProviders } from '@angular/core';
|
|
3
|
+
import * as _progress_kendo_svg_icons from '@progress/kendo-svg-icons';
|
|
4
|
+
import { DialogContentBase } from '@progress/kendo-angular-dialog';
|
|
5
|
+
import { GridDataResult, CellClickEvent, RowArgs, PageChangeEvent, SelectionEvent } from '@progress/kendo-angular-grid';
|
|
6
|
+
import { FieldFilterDto, SearchFilterDto, SortDto, AttributeItem, CkTypeSelectorItem, FieldFilterOperatorsDto } from '@meshmakers/octo-services';
|
|
7
|
+
import { ControlValueAccessor, Validator, FormControl, AbstractControl, ValidationErrors } from '@angular/forms';
|
|
8
|
+
import { AutoCompleteComponent } from '@progress/kendo-angular-dropdowns';
|
|
9
|
+
import { DataSourceTyped, ListViewComponent, HierarchyDataSourceBase } from '@meshmakers/shared-ui';
|
|
10
|
+
import { State } from '@progress/kendo-data-query/dist/npm/state';
|
|
11
|
+
import { TreeItemDataTyped } from '@meshmakers/shared-services';
|
|
12
|
+
import { Observable } from 'rxjs';
|
|
13
|
+
|
|
14
|
+
declare abstract class OctoGraphQlDataSource<TDto> extends DataSourceTyped<TDto | null> {
|
|
15
|
+
private _searchFilterAttributePaths;
|
|
16
|
+
protected constructor(listViewComponent: ListViewComponent);
|
|
17
|
+
protected get searchFilterAttributePaths(): string[];
|
|
18
|
+
protected set searchFilterAttributePaths(value: string[]);
|
|
19
|
+
protected getFieldFilterDefinitions(state: State): FieldFilterDto[] | null;
|
|
20
|
+
protected getSearchFilterDefinitions(textSearchValue: string | null): SearchFilterDto | null;
|
|
21
|
+
protected getSortDefinitions(state: State): SortDto[] | null;
|
|
22
|
+
private static getOperatorAndValue;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
declare abstract class OctoGraphQlHierarchyDataSource<TQueryDto> extends HierarchyDataSourceBase<TQueryDto> {
|
|
26
|
+
abstract fetchChildren(item: TreeItemDataTyped<TQueryDto>): Promise<TreeItemDataTyped<TQueryDto>[]>;
|
|
27
|
+
abstract fetchRootNodes(): Promise<TreeItemDataTyped<TQueryDto>[]>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
declare enum AttributeValueTypeDto {
|
|
31
|
+
BinaryDto = "BINARY",
|
|
32
|
+
BinaryLinkedDto = "BINARY_LINKED",
|
|
33
|
+
BooleanDto = "BOOLEAN",
|
|
34
|
+
DateTimeDto = "DATE_TIME",
|
|
35
|
+
DateTimeOffsetDto = "DATE_TIME_OFFSET",
|
|
36
|
+
DoubleDto = "DOUBLE",
|
|
37
|
+
EnumDto = "ENUM",
|
|
38
|
+
GeospatialPointDto = "GEOSPATIAL_POINT",
|
|
39
|
+
IntDto = "INT",
|
|
40
|
+
IntegerDto = "INTEGER",
|
|
41
|
+
Integer_64Dto = "INTEGER_64",
|
|
42
|
+
IntegerArrayDto = "INTEGER_ARRAY",
|
|
43
|
+
Int_64Dto = "INT_64",
|
|
44
|
+
IntArrayDto = "INT_ARRAY",
|
|
45
|
+
RecordDto = "RECORD",
|
|
46
|
+
RecordArrayDto = "RECORD_ARRAY",
|
|
47
|
+
StringDto = "STRING",
|
|
48
|
+
StringArrayDto = "STRING_ARRAY",
|
|
49
|
+
TimeSpanDto = "TIME_SPAN"
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Represents a property item in the property grid
|
|
53
|
+
*/
|
|
54
|
+
interface PropertyGridItem {
|
|
55
|
+
/** Unique identifier for the property */
|
|
56
|
+
id: string;
|
|
57
|
+
/** Property name/key */
|
|
58
|
+
name: string;
|
|
59
|
+
/** Display name for the property (optional, falls back to name) */
|
|
60
|
+
displayName?: string;
|
|
61
|
+
/** Current value of the property */
|
|
62
|
+
value: any;
|
|
63
|
+
/** Data type of the property */
|
|
64
|
+
type: AttributeValueTypeDto;
|
|
65
|
+
/** Description/tooltip for the property */
|
|
66
|
+
description?: string;
|
|
67
|
+
/** Whether the property is read-only */
|
|
68
|
+
readOnly?: boolean;
|
|
69
|
+
/** Category for grouping properties */
|
|
70
|
+
category?: string;
|
|
71
|
+
/** Whether the property is required */
|
|
72
|
+
required?: boolean;
|
|
73
|
+
/** Custom validation rules */
|
|
74
|
+
validators?: any[];
|
|
75
|
+
/** Custom editor configuration */
|
|
76
|
+
editorConfig?: any;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Configuration options for the property grid
|
|
80
|
+
*/
|
|
81
|
+
interface PropertyGridConfig {
|
|
82
|
+
/** Whether the grid is in read-only mode */
|
|
83
|
+
readOnlyMode?: boolean;
|
|
84
|
+
/** Custom editors for specific types */
|
|
85
|
+
customEditors?: Record<string, any>;
|
|
86
|
+
/** Whether to show type icons */
|
|
87
|
+
showTypeIcons?: boolean;
|
|
88
|
+
/** Height of the grid */
|
|
89
|
+
height?: string;
|
|
90
|
+
/** Whether to show the search box */
|
|
91
|
+
showSearch?: boolean;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Event data for property changes
|
|
95
|
+
*/
|
|
96
|
+
interface PropertyChangeEvent {
|
|
97
|
+
/** The property that changed */
|
|
98
|
+
property: PropertyGridItem;
|
|
99
|
+
/** The old value */
|
|
100
|
+
oldValue: any;
|
|
101
|
+
/** The new value */
|
|
102
|
+
newValue: any;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Supported display modes for complex values
|
|
106
|
+
*/
|
|
107
|
+
declare enum PropertyDisplayMode {
|
|
108
|
+
/** Simple text representation */
|
|
109
|
+
Text = "text",
|
|
110
|
+
/** JSON formatted display */
|
|
111
|
+
Json = "json",
|
|
112
|
+
/** Custom template display */
|
|
113
|
+
Custom = "custom"
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Categories for default property grouping
|
|
117
|
+
*/
|
|
118
|
+
declare enum DefaultPropertyCategory {
|
|
119
|
+
General = "General",
|
|
120
|
+
System = "System",
|
|
121
|
+
Attributes = "Attributes",
|
|
122
|
+
Associations = "Associations",
|
|
123
|
+
Metadata = "Metadata"
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Event data for binary download requests
|
|
127
|
+
*/
|
|
128
|
+
interface BinaryDownloadEvent {
|
|
129
|
+
/** The binary ID to download */
|
|
130
|
+
binaryId: string;
|
|
131
|
+
/** Optional filename for the download */
|
|
132
|
+
filename?: string;
|
|
133
|
+
/** Optional content type */
|
|
134
|
+
contentType?: string;
|
|
135
|
+
/** Optional download URI if already available */
|
|
136
|
+
downloadUri?: string;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Service for converting various data structures to PropertyGridItem format.
|
|
141
|
+
* Uses Construction Kit (CK) type definitions for accurate attribute type resolution.
|
|
142
|
+
*/
|
|
143
|
+
declare class PropertyConverterService {
|
|
144
|
+
private readonly ckTypeAttributeService;
|
|
145
|
+
/**
|
|
146
|
+
* Convert OctoMesh RtEntity attributes to property grid items using CK type definitions.
|
|
147
|
+
* @param attributes The attributes array from RtEntity
|
|
148
|
+
* @param ckTypeId The fullName of the CK type to look up attribute types
|
|
149
|
+
* @returns Observable of PropertyGridItem array
|
|
150
|
+
*/
|
|
151
|
+
convertRtEntityAttributes(attributes: any[], ckTypeId: string): Observable<PropertyGridItem[]>;
|
|
152
|
+
/**
|
|
153
|
+
* Convert any JavaScript object to property grid items using reflection.
|
|
154
|
+
* This method remains synchronous as there is no CK type for generic JS objects.
|
|
155
|
+
*/
|
|
156
|
+
convertObjectToProperties(obj: any, category?: string): PropertyGridItem[];
|
|
157
|
+
/**
|
|
158
|
+
* Convert RtRecord to property grid items using CK type definitions.
|
|
159
|
+
* @param record The record object containing ckRecordId and attributes
|
|
160
|
+
* @returns Observable of PropertyGridItem array
|
|
161
|
+
*/
|
|
162
|
+
convertRtRecordToProperties(record: any): Observable<PropertyGridItem[]>;
|
|
163
|
+
/**
|
|
164
|
+
* Convert OctoMesh RtEntity to comprehensive property list using CK type definitions.
|
|
165
|
+
* @param entity The RtEntity object
|
|
166
|
+
* @returns Observable of PropertyGridItem array
|
|
167
|
+
*/
|
|
168
|
+
convertRtEntityToProperties(entity: any): Observable<PropertyGridItem[]>;
|
|
169
|
+
/**
|
|
170
|
+
* Build a map from attribute name to attribute value type from CK definitions
|
|
171
|
+
*/
|
|
172
|
+
private buildAttributeTypeMap;
|
|
173
|
+
/**
|
|
174
|
+
* Convert attributes using CK type map for type resolution
|
|
175
|
+
*/
|
|
176
|
+
private convertAttributesWithCkTypes;
|
|
177
|
+
/**
|
|
178
|
+
* Convert a single attribute to PropertyGridItem
|
|
179
|
+
*/
|
|
180
|
+
private convertSingleAttribute;
|
|
181
|
+
/**
|
|
182
|
+
* Get attribute type from CK map
|
|
183
|
+
*/
|
|
184
|
+
private getAttributeType;
|
|
185
|
+
/**
|
|
186
|
+
* Map CK type string to AttributeValueTypeDto enum
|
|
187
|
+
*/
|
|
188
|
+
private mapCkTypeToAttributeValueType;
|
|
189
|
+
/**
|
|
190
|
+
* Convert attribute value synchronously (for non-record values)
|
|
191
|
+
*/
|
|
192
|
+
private convertRtEntityAttributeValueSync;
|
|
193
|
+
/**
|
|
194
|
+
* Infer attribute type from JavaScript value.
|
|
195
|
+
* Used only for convertObjectToProperties where no CK type is available.
|
|
196
|
+
*/
|
|
197
|
+
private inferAttributeType;
|
|
198
|
+
/**
|
|
199
|
+
* Check if string is ISO date format
|
|
200
|
+
*/
|
|
201
|
+
private isIsoDateString;
|
|
202
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PropertyConverterService, never>;
|
|
203
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<PropertyConverterService>;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Generic property grid component for OctoMesh
|
|
208
|
+
*/
|
|
209
|
+
declare class PropertyGridComponent implements OnInit, OnChanges {
|
|
210
|
+
data: PropertyGridItem[];
|
|
211
|
+
config: PropertyGridConfig;
|
|
212
|
+
showTypeColumn: boolean;
|
|
213
|
+
propertyChange: EventEmitter<PropertyChangeEvent>;
|
|
214
|
+
saveRequested: EventEmitter<PropertyGridItem[]>;
|
|
215
|
+
binaryDownload: EventEmitter<BinaryDownloadEvent>;
|
|
216
|
+
filteredData: PropertyGridItem[];
|
|
217
|
+
searchTerm: string;
|
|
218
|
+
hasChanges: boolean;
|
|
219
|
+
pendingChanges: PropertyChangeEvent[];
|
|
220
|
+
readonly fileIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
221
|
+
readonly folderIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
222
|
+
readonly calendarIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
223
|
+
readonly checkboxCheckedIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
224
|
+
readonly listUnorderedIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
225
|
+
readonly AttributeValueTypeDto: typeof AttributeValueTypeDto;
|
|
226
|
+
ngOnInit(): void;
|
|
227
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
228
|
+
get gridHeight(): string;
|
|
229
|
+
/**
|
|
230
|
+
* Update filtered data based on search term
|
|
231
|
+
*/
|
|
232
|
+
updateFilteredData(): void;
|
|
233
|
+
/**
|
|
234
|
+
* Handle search input
|
|
235
|
+
*/
|
|
236
|
+
onSearch(): void;
|
|
237
|
+
/**
|
|
238
|
+
* Get appropriate icon for property type
|
|
239
|
+
*/
|
|
240
|
+
getTypeIcon(type: AttributeValueTypeDto): any;
|
|
241
|
+
/**
|
|
242
|
+
* Format type name for display
|
|
243
|
+
*/
|
|
244
|
+
formatTypeName(type: AttributeValueTypeDto): string;
|
|
245
|
+
/**
|
|
246
|
+
* Save pending changes
|
|
247
|
+
*/
|
|
248
|
+
saveChanges(): void;
|
|
249
|
+
/**
|
|
250
|
+
* Discard pending changes
|
|
251
|
+
*/
|
|
252
|
+
discardChanges(): void;
|
|
253
|
+
/**
|
|
254
|
+
* Handle property value change
|
|
255
|
+
*/
|
|
256
|
+
onPropertyChange(property: PropertyGridItem, oldValue: any, newValue: any): void;
|
|
257
|
+
/**
|
|
258
|
+
* Handle binary download request from property value display
|
|
259
|
+
*/
|
|
260
|
+
onBinaryDownload(event: BinaryDownloadEvent): void;
|
|
261
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PropertyGridComponent, never>;
|
|
262
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PropertyGridComponent, "mm-property-grid", never, { "data": { "alias": "data"; "required": false; }; "config": { "alias": "config"; "required": false; }; "showTypeColumn": { "alias": "showTypeColumn"; "required": false; }; }, { "propertyChange": "propertyChange"; "saveRequested": "saveRequested"; "binaryDownload": "binaryDownload"; }, never, never, true, never>;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* Component for displaying property values with appropriate formatting
|
|
267
|
+
*/
|
|
268
|
+
declare class PropertyValueDisplayComponent implements OnInit {
|
|
269
|
+
value: any;
|
|
270
|
+
type: AttributeValueTypeDto;
|
|
271
|
+
displayMode: PropertyDisplayMode;
|
|
272
|
+
/** Emitted when a binary download is requested */
|
|
273
|
+
binaryDownload: EventEmitter<BinaryDownloadEvent>;
|
|
274
|
+
isExpanded: boolean;
|
|
275
|
+
readonly PropertyDisplayMode: typeof PropertyDisplayMode;
|
|
276
|
+
readonly AttributeValueTypeDto: typeof AttributeValueTypeDto;
|
|
277
|
+
readonly Array: ArrayConstructor;
|
|
278
|
+
readonly chevronRightIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
279
|
+
readonly chevronDownIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
280
|
+
readonly downloadIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
281
|
+
ngOnInit(): void;
|
|
282
|
+
/**
|
|
283
|
+
* Get formatted display value
|
|
284
|
+
*/
|
|
285
|
+
getFormattedValue(): string;
|
|
286
|
+
/**
|
|
287
|
+
* Check if this is an expandable record type
|
|
288
|
+
*/
|
|
289
|
+
isExpandableRecord(): boolean;
|
|
290
|
+
/**
|
|
291
|
+
* Check if the type is complex (object/array)
|
|
292
|
+
*/
|
|
293
|
+
isComplexType(): boolean;
|
|
294
|
+
/**
|
|
295
|
+
* Get type indicator text
|
|
296
|
+
*/
|
|
297
|
+
getTypeIndicator(): string;
|
|
298
|
+
/**
|
|
299
|
+
* Get type description for tooltip
|
|
300
|
+
*/
|
|
301
|
+
getTypeDescription(): string;
|
|
302
|
+
/**
|
|
303
|
+
* Format date/time values
|
|
304
|
+
*/
|
|
305
|
+
private formatDateTime;
|
|
306
|
+
/**
|
|
307
|
+
* Format array values
|
|
308
|
+
*/
|
|
309
|
+
private formatArray;
|
|
310
|
+
/**
|
|
311
|
+
* Format object values
|
|
312
|
+
*/
|
|
313
|
+
private formatObject;
|
|
314
|
+
/**
|
|
315
|
+
* Format binary data
|
|
316
|
+
*/
|
|
317
|
+
private formatBinary;
|
|
318
|
+
/**
|
|
319
|
+
* Format numeric values
|
|
320
|
+
*/
|
|
321
|
+
private formatNumber;
|
|
322
|
+
/**
|
|
323
|
+
* Truncate long values for preview
|
|
324
|
+
*/
|
|
325
|
+
private truncateValue;
|
|
326
|
+
/**
|
|
327
|
+
* Toggle expansion state
|
|
328
|
+
*/
|
|
329
|
+
toggleExpansion(): void;
|
|
330
|
+
/**
|
|
331
|
+
* Get summary text for record header
|
|
332
|
+
*/
|
|
333
|
+
getRecordSummary(): string;
|
|
334
|
+
/**
|
|
335
|
+
* Get properties of an object for display
|
|
336
|
+
*/
|
|
337
|
+
getObjectProperties(obj: any): {
|
|
338
|
+
key: string;
|
|
339
|
+
value: any;
|
|
340
|
+
}[];
|
|
341
|
+
/**
|
|
342
|
+
* Determine the appropriate type for a nested property value
|
|
343
|
+
*/
|
|
344
|
+
getPropertyType(value: any): AttributeValueTypeDto;
|
|
345
|
+
/**
|
|
346
|
+
* Check if this is a BINARY_LINKED type with download capability
|
|
347
|
+
*/
|
|
348
|
+
isBinaryLinkedWithDownload(): boolean;
|
|
349
|
+
/**
|
|
350
|
+
* Get the filename from binary info
|
|
351
|
+
*/
|
|
352
|
+
getBinaryFilename(): string | null;
|
|
353
|
+
/**
|
|
354
|
+
* Get the file size from binary info
|
|
355
|
+
*/
|
|
356
|
+
getBinarySize(): number | null;
|
|
357
|
+
/**
|
|
358
|
+
* Get the content type from binary info
|
|
359
|
+
*/
|
|
360
|
+
getBinaryContentType(): string | null;
|
|
361
|
+
/**
|
|
362
|
+
* Format file size to human readable format
|
|
363
|
+
*/
|
|
364
|
+
formatFileSize(bytes: number | null): string;
|
|
365
|
+
/**
|
|
366
|
+
* Handle download button click
|
|
367
|
+
*/
|
|
368
|
+
onDownload(): void;
|
|
369
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PropertyValueDisplayComponent, never>;
|
|
370
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PropertyValueDisplayComponent, "mm-property-value-display", never, { "value": { "alias": "value"; "required": false; }; "type": { "alias": "type"; "required": false; }; "displayMode": { "alias": "displayMode"; "required": false; }; }, { "binaryDownload": "binaryDownload"; }, never, never, true, never>;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
interface AttributeSelectorDialogData {
|
|
374
|
+
rtCkTypeId: string;
|
|
375
|
+
selectedAttributes?: string[];
|
|
376
|
+
dialogTitle?: string;
|
|
377
|
+
}
|
|
378
|
+
interface AttributeSelectorDialogResult {
|
|
379
|
+
selectedAttributes: AttributeItem[];
|
|
380
|
+
}
|
|
381
|
+
declare class AttributeSelectorDialogComponent extends DialogContentBase implements OnInit {
|
|
382
|
+
private readonly attributeService;
|
|
383
|
+
private searchSubject;
|
|
384
|
+
constructor();
|
|
385
|
+
protected readonly arrowRightIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
386
|
+
protected readonly arrowLeftIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
387
|
+
protected readonly chevronDoubleRightIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
388
|
+
protected readonly chevronDoubleLeftIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
389
|
+
protected readonly searchIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
390
|
+
protected readonly arrowUpIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
391
|
+
protected readonly arrowDownIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
392
|
+
dialogTitle: string;
|
|
393
|
+
rtCkTypeId: string;
|
|
394
|
+
searchText: string;
|
|
395
|
+
availableAttributes: AttributeItem[];
|
|
396
|
+
selectedAttributes: AttributeItem[];
|
|
397
|
+
availableGridData: GridDataResult;
|
|
398
|
+
selectedGridData: GridDataResult;
|
|
399
|
+
selectedAvailableKeys: string[];
|
|
400
|
+
selectedChosenKeys: string[];
|
|
401
|
+
private lastClickTime;
|
|
402
|
+
private lastClickedItem;
|
|
403
|
+
private readonly doubleClickDelay;
|
|
404
|
+
ngOnInit(): void;
|
|
405
|
+
private loadAvailableAttributes;
|
|
406
|
+
private loadInitialSelectedAttributes;
|
|
407
|
+
onSearchChange(value: string): void;
|
|
408
|
+
addSelected(): void;
|
|
409
|
+
removeSelected(): void;
|
|
410
|
+
addAll(): void;
|
|
411
|
+
removeAll(): void;
|
|
412
|
+
private sortAvailableAttributes;
|
|
413
|
+
canMoveUp(): boolean;
|
|
414
|
+
canMoveDown(): boolean;
|
|
415
|
+
moveUp(): void;
|
|
416
|
+
moveDown(): void;
|
|
417
|
+
private updateGrids;
|
|
418
|
+
private updateAvailableGrid;
|
|
419
|
+
private updateSelectedGrid;
|
|
420
|
+
onCancel(): void;
|
|
421
|
+
onConfirm(): void;
|
|
422
|
+
/**
|
|
423
|
+
* Handle cell click on available attributes grid to detect double-click
|
|
424
|
+
*/
|
|
425
|
+
onAvailableCellClick(event: CellClickEvent): void;
|
|
426
|
+
/**
|
|
427
|
+
* Handle cell click on selected attributes grid to detect double-click
|
|
428
|
+
*/
|
|
429
|
+
onSelectedCellClick(event: CellClickEvent): void;
|
|
430
|
+
/**
|
|
431
|
+
* Move a single attribute from available to selected
|
|
432
|
+
*/
|
|
433
|
+
private moveAttributeToSelected;
|
|
434
|
+
/**
|
|
435
|
+
* Move a single attribute from selected to available
|
|
436
|
+
*/
|
|
437
|
+
private moveAttributeToAvailable;
|
|
438
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AttributeSelectorDialogComponent, never>;
|
|
439
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AttributeSelectorDialogComponent, "mm-attribute-selector-dialog", never, {}, {}, never, never, true, never>;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
interface AttributeSelectorResult {
|
|
443
|
+
confirmed: boolean;
|
|
444
|
+
selectedAttributes: AttributeItem[];
|
|
445
|
+
}
|
|
446
|
+
declare class AttributeSelectorDialogService {
|
|
447
|
+
private readonly dialogService;
|
|
448
|
+
/**
|
|
449
|
+
* Opens the attribute selector dialog
|
|
450
|
+
* @param rtCkTypeId The RtCkType ID to fetch attributes for
|
|
451
|
+
* @param selectedAttributes Optional array of pre-selected attribute paths
|
|
452
|
+
* @param dialogTitle Optional custom dialog title
|
|
453
|
+
* @returns Promise that resolves with the result containing selected attributes and confirmation status
|
|
454
|
+
*/
|
|
455
|
+
openAttributeSelector(rtCkTypeId: string, selectedAttributes?: string[], dialogTitle?: string): Promise<AttributeSelectorResult>;
|
|
456
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AttributeSelectorDialogService, never>;
|
|
457
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AttributeSelectorDialogService>;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
interface AttributeSortItem {
|
|
461
|
+
attributePath: string;
|
|
462
|
+
attributeValueType: string;
|
|
463
|
+
sortOrder: 'standard' | 'ascending' | 'descending';
|
|
464
|
+
}
|
|
465
|
+
interface AttributeSortSelectorDialogData {
|
|
466
|
+
ckTypeId: string;
|
|
467
|
+
selectedAttributes?: AttributeSortItem[];
|
|
468
|
+
dialogTitle?: string;
|
|
469
|
+
}
|
|
470
|
+
interface AttributeSortSelectorDialogResult {
|
|
471
|
+
selectedAttributes: AttributeSortItem[];
|
|
472
|
+
}
|
|
473
|
+
interface SortOption {
|
|
474
|
+
text: string;
|
|
475
|
+
value: 'standard' | 'ascending' | 'descending';
|
|
476
|
+
}
|
|
477
|
+
declare class AttributeSortSelectorDialogComponent extends DialogContentBase implements OnInit {
|
|
478
|
+
private readonly attributeService;
|
|
479
|
+
private searchSubject;
|
|
480
|
+
constructor();
|
|
481
|
+
ckTypeId: string;
|
|
482
|
+
searchText: string;
|
|
483
|
+
currentSortOrder: 'standard' | 'ascending' | 'descending';
|
|
484
|
+
availableAttributes: AttributeItem[];
|
|
485
|
+
selectedAttributes: AttributeSortItem[];
|
|
486
|
+
availableGridData: GridDataResult;
|
|
487
|
+
selectedGridData: GridDataResult;
|
|
488
|
+
selectedAvailableKeys: string[];
|
|
489
|
+
selectedChosenKeys: string[];
|
|
490
|
+
private lastClickTime;
|
|
491
|
+
private lastClickedItem;
|
|
492
|
+
private readonly doubleClickDelay;
|
|
493
|
+
dialogTitle: string;
|
|
494
|
+
sortOptions: SortOption[];
|
|
495
|
+
protected readonly searchIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
496
|
+
protected readonly sortAscIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
497
|
+
protected readonly sortDescIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
498
|
+
ngOnInit(): void;
|
|
499
|
+
private loadAvailableAttributes;
|
|
500
|
+
onSearchChange(value: string): void;
|
|
501
|
+
setSortOrder(order: 'standard' | 'ascending' | 'descending'): void;
|
|
502
|
+
addAttributeWithSort(): void;
|
|
503
|
+
onAvailableCellClick(event: CellClickEvent): void;
|
|
504
|
+
onSelectedCellClick(event: CellClickEvent): void;
|
|
505
|
+
private addAttributeToSelected;
|
|
506
|
+
removeAttribute(attribute: AttributeSortItem): void;
|
|
507
|
+
getSortIndicator(sortOrder: string): string;
|
|
508
|
+
getSortText(sortOrder: string): string;
|
|
509
|
+
private updateGrids;
|
|
510
|
+
private updateAvailableGrid;
|
|
511
|
+
private updateSelectedGrid;
|
|
512
|
+
onOk(): void;
|
|
513
|
+
onCancel(): void;
|
|
514
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AttributeSortSelectorDialogComponent, never>;
|
|
515
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AttributeSortSelectorDialogComponent, "mm-attribute-sort-selector-dialog", never, {}, {}, never, never, true, never>;
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
interface AttributeSortSelectorResult {
|
|
519
|
+
confirmed: boolean;
|
|
520
|
+
selectedAttributes: AttributeSortItem[];
|
|
521
|
+
}
|
|
522
|
+
declare class AttributeSortSelectorDialogService {
|
|
523
|
+
private readonly dialogService;
|
|
524
|
+
/**
|
|
525
|
+
* Opens the attribute sort selector dialog
|
|
526
|
+
* @param ckTypeId The CkType ID to fetch attributes for
|
|
527
|
+
* @param selectedAttributes Optional array of pre-selected attributes with sort orders
|
|
528
|
+
* @param dialogTitle Optional custom dialog title
|
|
529
|
+
* @returns Promise that resolves with the result containing selected attributes with sort orders and confirmation status
|
|
530
|
+
*/
|
|
531
|
+
openAttributeSortSelector(ckTypeId: string, selectedAttributes?: AttributeSortItem[], dialogTitle?: string): Promise<AttributeSortSelectorResult>;
|
|
532
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AttributeSortSelectorDialogService, never>;
|
|
533
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AttributeSortSelectorDialogService>;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
interface CkTypeSelectorDialogData {
|
|
537
|
+
selectedCkTypeId?: string;
|
|
538
|
+
ckModelIds?: string[];
|
|
539
|
+
dialogTitle?: string;
|
|
540
|
+
allowAbstract?: boolean;
|
|
541
|
+
}
|
|
542
|
+
interface CkTypeSelectorDialogResult {
|
|
543
|
+
selectedCkType: CkTypeSelectorItem;
|
|
544
|
+
}
|
|
545
|
+
declare class CkTypeSelectorDialogComponent extends DialogContentBase implements OnInit, OnDestroy {
|
|
546
|
+
private readonly ckTypeSelectorService;
|
|
547
|
+
private searchSubject;
|
|
548
|
+
private subscriptions;
|
|
549
|
+
protected readonly searchIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
550
|
+
protected readonly filterClearIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
551
|
+
dialogTitle: string;
|
|
552
|
+
allowAbstract: boolean;
|
|
553
|
+
searchText: string;
|
|
554
|
+
selectedModel: string | null;
|
|
555
|
+
availableModels: string[];
|
|
556
|
+
gridData: GridDataResult;
|
|
557
|
+
isLoading: boolean;
|
|
558
|
+
pageSize: number;
|
|
559
|
+
skip: number;
|
|
560
|
+
selectedKeys: string[];
|
|
561
|
+
selectedType: CkTypeSelectorItem | null;
|
|
562
|
+
selectItemBy: (context: RowArgs) => string;
|
|
563
|
+
private initialCkModelIds?;
|
|
564
|
+
constructor();
|
|
565
|
+
ngOnInit(): void;
|
|
566
|
+
ngOnDestroy(): void;
|
|
567
|
+
private loadTypes;
|
|
568
|
+
private loadAvailableModels;
|
|
569
|
+
onSearchChange(value: string): void;
|
|
570
|
+
onModelFilterChange(_value: string | null): void;
|
|
571
|
+
clearFilters(): void;
|
|
572
|
+
onPageChange(event: PageChangeEvent): void;
|
|
573
|
+
onSelectionChange(event: SelectionEvent): void;
|
|
574
|
+
onCancel(): void;
|
|
575
|
+
onConfirm(): void;
|
|
576
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CkTypeSelectorDialogComponent, never>;
|
|
577
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CkTypeSelectorDialogComponent, "mm-ck-type-selector-dialog", never, {}, {}, never, never, true, never>;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
interface CkTypeSelectorResult {
|
|
581
|
+
confirmed: boolean;
|
|
582
|
+
selectedCkType: CkTypeSelectorItem | null;
|
|
583
|
+
}
|
|
584
|
+
declare class CkTypeSelectorDialogService {
|
|
585
|
+
private readonly dialogService;
|
|
586
|
+
/**
|
|
587
|
+
* Opens the CkType selector dialog
|
|
588
|
+
* @param options Dialog options
|
|
589
|
+
* @returns Promise that resolves with the result containing selected CkType and confirmation status
|
|
590
|
+
*/
|
|
591
|
+
openCkTypeSelector(options?: {
|
|
592
|
+
selectedCkTypeId?: string;
|
|
593
|
+
ckModelIds?: string[];
|
|
594
|
+
dialogTitle?: string;
|
|
595
|
+
allowAbstract?: boolean;
|
|
596
|
+
}): Promise<CkTypeSelectorResult>;
|
|
597
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CkTypeSelectorDialogService, never>;
|
|
598
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CkTypeSelectorDialogService>;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
declare class CkTypeSelectorInputComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {
|
|
602
|
+
autocomplete: AutoCompleteComponent;
|
|
603
|
+
placeholder: string;
|
|
604
|
+
minSearchLength: number;
|
|
605
|
+
maxResults: number;
|
|
606
|
+
debounceMs: number;
|
|
607
|
+
ckModelIds?: string[];
|
|
608
|
+
allowAbstract: boolean;
|
|
609
|
+
dialogTitle: string;
|
|
610
|
+
advancedSearchLabel: string;
|
|
611
|
+
private _disabled;
|
|
612
|
+
get disabled(): boolean;
|
|
613
|
+
set disabled(value: boolean);
|
|
614
|
+
private _required;
|
|
615
|
+
get required(): boolean;
|
|
616
|
+
set required(value: boolean);
|
|
617
|
+
ckTypeSelected: EventEmitter<CkTypeSelectorItem>;
|
|
618
|
+
ckTypeCleared: EventEmitter<void>;
|
|
619
|
+
searchFormControl: FormControl<any>;
|
|
620
|
+
filteredTypes: string[];
|
|
621
|
+
selectedCkType: CkTypeSelectorItem | null;
|
|
622
|
+
isLoading: boolean;
|
|
623
|
+
private typeMap;
|
|
624
|
+
private searchSubject;
|
|
625
|
+
private subscriptions;
|
|
626
|
+
private onChange;
|
|
627
|
+
private onTouched;
|
|
628
|
+
protected readonly searchIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
629
|
+
private readonly ckTypeSelectorService;
|
|
630
|
+
private readonly dialogService;
|
|
631
|
+
ngOnInit(): void;
|
|
632
|
+
ngOnDestroy(): void;
|
|
633
|
+
writeValue(value: CkTypeSelectorItem | null): void;
|
|
634
|
+
registerOnChange(fn: (value: CkTypeSelectorItem | null) => void): void;
|
|
635
|
+
registerOnTouched(fn: () => void): void;
|
|
636
|
+
setDisabledState(isDisabled: boolean): void;
|
|
637
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
638
|
+
onFilterChange(filter: string): void;
|
|
639
|
+
onSelectionChange(value: string): void;
|
|
640
|
+
onFocus(): void;
|
|
641
|
+
onBlur(): void;
|
|
642
|
+
clear(): void;
|
|
643
|
+
focus(): void;
|
|
644
|
+
reset(): void;
|
|
645
|
+
private setupSearch;
|
|
646
|
+
private selectCkType;
|
|
647
|
+
openDialog(event?: Event): Promise<void>;
|
|
648
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CkTypeSelectorInputComponent, never>;
|
|
649
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CkTypeSelectorInputComponent, "mm-ck-type-selector-input", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "minSearchLength": { "alias": "minSearchLength"; "required": false; }; "maxResults": { "alias": "maxResults"; "required": false; }; "debounceMs": { "alias": "debounceMs"; "required": false; }; "ckModelIds": { "alias": "ckModelIds"; "required": false; }; "allowAbstract": { "alias": "allowAbstract"; "required": false; }; "dialogTitle": { "alias": "dialogTitle"; "required": false; }; "advancedSearchLabel": { "alias": "advancedSearchLabel"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; }, { "ckTypeSelected": "ckTypeSelected"; "ckTypeCleared": "ckTypeCleared"; }, never, never, true, never>;
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
/**
|
|
653
|
+
* Variable definition for use in filter values.
|
|
654
|
+
* Generic interface that can be provided by any consumer (e.g., MeshBoard).
|
|
655
|
+
*/
|
|
656
|
+
interface FilterVariable {
|
|
657
|
+
/** Variable name (without $ prefix) */
|
|
658
|
+
name: string;
|
|
659
|
+
/** Display label for UI */
|
|
660
|
+
label?: string;
|
|
661
|
+
/** Variable data type */
|
|
662
|
+
type?: 'string' | 'number' | 'boolean' | 'date' | 'datetime';
|
|
663
|
+
}
|
|
664
|
+
interface FieldFilterItem extends FieldFilterDto {
|
|
665
|
+
id: number;
|
|
666
|
+
/** If true, comparisonValue contains a variable reference (e.g., $myVar) */
|
|
667
|
+
useVariable?: boolean;
|
|
668
|
+
}
|
|
669
|
+
type InputType = 'text' | 'number' | 'boolean' | 'datetime';
|
|
670
|
+
declare class FieldFilterEditorComponent implements OnChanges {
|
|
671
|
+
protected readonly plusIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
672
|
+
protected readonly minusIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
673
|
+
protected readonly trashIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
674
|
+
protected readonly dollarIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
675
|
+
private readonly arrayOperators;
|
|
676
|
+
readonly operators: {
|
|
677
|
+
label: string;
|
|
678
|
+
value: FieldFilterOperatorsDto;
|
|
679
|
+
}[];
|
|
680
|
+
readonly booleanOptions: string[];
|
|
681
|
+
availableAttributes: AttributeItem[];
|
|
682
|
+
/** Enable variable mode - allows using variables instead of literal values */
|
|
683
|
+
enableVariables: boolean;
|
|
684
|
+
/** Available variables for selection when enableVariables is true */
|
|
685
|
+
availableVariables: FilterVariable[];
|
|
686
|
+
private _filters;
|
|
687
|
+
private nextId;
|
|
688
|
+
filteredAttributeList: AttributeItem[];
|
|
689
|
+
private attributeTypeMap;
|
|
690
|
+
get filters(): FieldFilterItem[];
|
|
691
|
+
set filters(value: FieldFilterItem[]);
|
|
692
|
+
filtersChange: EventEmitter<FieldFilterItem[]>;
|
|
693
|
+
selectedKeys: number[];
|
|
694
|
+
ngOnChanges(): void;
|
|
695
|
+
/**
|
|
696
|
+
* Detects filters that contain variable references and sets useVariable flag.
|
|
697
|
+
* This ensures proper display when filters are loaded from saved configuration.
|
|
698
|
+
*/
|
|
699
|
+
private detectVariableFilters;
|
|
700
|
+
private buildAttributeTypeMap;
|
|
701
|
+
addFilter(): void;
|
|
702
|
+
removeFilter(filter: FieldFilterItem): void;
|
|
703
|
+
removeSelected(): void;
|
|
704
|
+
onFilterChange(): void;
|
|
705
|
+
onAttributeChange(filter: FieldFilterItem, attributePath: string): void;
|
|
706
|
+
onOperatorChange(filter: FieldFilterItem): void;
|
|
707
|
+
onComparisonValueChange(filter: FieldFilterItem, inputValue: string | null): void;
|
|
708
|
+
onComparisonValueBlur(filter: FieldFilterItem): void;
|
|
709
|
+
onBooleanValueChange(filter: FieldFilterItem, value: string): void;
|
|
710
|
+
onNumericValueChange(filter: FieldFilterItem, value: number | null): void;
|
|
711
|
+
onDateTimeValueChange(filter: FieldFilterItem, value: Date | null): void;
|
|
712
|
+
getDisplayValue(filter: FieldFilterItem): string;
|
|
713
|
+
getBooleanValue(filter: FieldFilterItem): string;
|
|
714
|
+
getNumericValue(filter: FieldFilterItem): number;
|
|
715
|
+
getDateTimeValue(filter: FieldFilterItem): Date | null;
|
|
716
|
+
getInputType(filter: FieldFilterItem): InputType;
|
|
717
|
+
getDecimals(filter: FieldFilterItem): number;
|
|
718
|
+
getNumberFormat(filter: FieldFilterItem): string;
|
|
719
|
+
getValuePlaceholder(filter: FieldFilterItem): string;
|
|
720
|
+
isArrayOperator(operator: FieldFilterOperatorsDto): boolean;
|
|
721
|
+
isSelected(filter: FieldFilterItem): boolean;
|
|
722
|
+
toggleSelection(filter: FieldFilterItem): void;
|
|
723
|
+
isAllSelected(): boolean;
|
|
724
|
+
isIndeterminate(): boolean;
|
|
725
|
+
toggleSelectAll(event: Event): void;
|
|
726
|
+
onAttributeFilterChange(filter: string): void;
|
|
727
|
+
/**
|
|
728
|
+
* Toggles between literal value and variable mode for a filter.
|
|
729
|
+
*/
|
|
730
|
+
toggleVariableMode(filter: FieldFilterItem): void;
|
|
731
|
+
/**
|
|
732
|
+
* Gets the selected variable object for a filter that uses variable mode.
|
|
733
|
+
*/
|
|
734
|
+
getSelectedVariable(filter: FieldFilterItem): FilterVariable | null;
|
|
735
|
+
/**
|
|
736
|
+
* Handles variable selection from the dropdown.
|
|
737
|
+
*/
|
|
738
|
+
onVariableSelected(filter: FieldFilterItem, variable: FilterVariable | null): void;
|
|
739
|
+
/**
|
|
740
|
+
* Extracts variable name from ${variableName} or $variableName format.
|
|
741
|
+
*/
|
|
742
|
+
private extractVariableName;
|
|
743
|
+
/**
|
|
744
|
+
* Checks if a filter value is a variable reference.
|
|
745
|
+
*/
|
|
746
|
+
isVariableValue(value: unknown): boolean;
|
|
747
|
+
/**
|
|
748
|
+
* Formats a variable name for display (e.g., "myVar" -> "${myVar}").
|
|
749
|
+
*/
|
|
750
|
+
formatVariableDisplay(name: string): string;
|
|
751
|
+
getFieldFilters(): FieldFilterDto[];
|
|
752
|
+
setFieldFilters(filters: FieldFilterDto[]): void;
|
|
753
|
+
clear(): void;
|
|
754
|
+
private isArrayValue;
|
|
755
|
+
private extractArrayContent;
|
|
756
|
+
private parseAndCleanArrayValues;
|
|
757
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FieldFilterEditorComponent, never>;
|
|
758
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FieldFilterEditorComponent, "mm-field-filter-editor", never, { "availableAttributes": { "alias": "availableAttributes"; "required": false; }; "enableVariables": { "alias": "enableVariables"; "required": false; }; "availableVariables": { "alias": "availableVariables"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; }, { "filtersChange": "filtersChange"; }, never, never, true, never>;
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
interface CopyOption {
|
|
762
|
+
label: string;
|
|
763
|
+
value: string;
|
|
764
|
+
displayText: string;
|
|
765
|
+
}
|
|
766
|
+
/**
|
|
767
|
+
* A reusable component for displaying and copying entity identifiers.
|
|
768
|
+
* Provides a dropdown button with options to copy:
|
|
769
|
+
* - RtId: The runtime ObjectId
|
|
770
|
+
* - CkTypeId: The full versioned Construction Kit type ID
|
|
771
|
+
* - RtCkTypeId: The runtime CK type ID (unversioned)
|
|
772
|
+
* - RtEntityId: Combined format {RtCkTypeId}@{RtId}
|
|
773
|
+
*
|
|
774
|
+
* @example
|
|
775
|
+
* ```html
|
|
776
|
+
* <mm-entity-id-info
|
|
777
|
+
* [rtId]="entity.rtId"
|
|
778
|
+
* [rtCkTypeId]="entity.ckTypeId"
|
|
779
|
+
* [ckTypeId]="entity.constructionKitType?.ckTypeId?.fullName">
|
|
780
|
+
* </mm-entity-id-info>
|
|
781
|
+
* ```
|
|
782
|
+
*/
|
|
783
|
+
declare class EntityIdInfoComponent {
|
|
784
|
+
private readonly notificationService;
|
|
785
|
+
protected readonly copyIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
786
|
+
/** The RtId (ObjectId) of the entity */
|
|
787
|
+
rtId: string;
|
|
788
|
+
/** The RtCkTypeId - runtime CK type ID (e.g., System.Communication/MeshAdapter) */
|
|
789
|
+
rtCkTypeId: string;
|
|
790
|
+
/** The CkTypeId - full versioned Construction Kit type ID (e.g., System.Communication-2.0.3/MeshAdapter-1) */
|
|
791
|
+
ckTypeId?: string;
|
|
792
|
+
protected get copyOptions(): CopyOption[];
|
|
793
|
+
private truncateValue;
|
|
794
|
+
protected copyToClipboard(option: CopyOption): Promise<void>;
|
|
795
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EntityIdInfoComponent, never>;
|
|
796
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EntityIdInfoComponent, "mm-entity-id-info", never, { "rtId": { "alias": "rtId"; "required": true; }; "rtCkTypeId": { "alias": "rtCkTypeId"; "required": true; }; "ckTypeId": { "alias": "ckTypeId"; "required": false; }; }, {}, never, never, true, never>;
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
/**
|
|
800
|
+
* Provides OctoUi services using modern Angular provider functions.
|
|
801
|
+
* This is the recommended approach for library providers.
|
|
802
|
+
*/
|
|
803
|
+
declare function provideOctoUi(): EnvironmentProviders;
|
|
804
|
+
|
|
805
|
+
export { AttributeSelectorDialogComponent, AttributeSelectorDialogService, AttributeSortSelectorDialogComponent, AttributeSortSelectorDialogService, AttributeValueTypeDto, CkTypeSelectorDialogComponent, CkTypeSelectorDialogService, CkTypeSelectorInputComponent, DefaultPropertyCategory, EntityIdInfoComponent, FieldFilterEditorComponent, OctoGraphQlDataSource, OctoGraphQlHierarchyDataSource, PropertyConverterService, PropertyDisplayMode, PropertyGridComponent, PropertyValueDisplayComponent, provideOctoUi };
|
|
806
|
+
export type { AttributeSelectorDialogData, AttributeSelectorDialogResult, AttributeSelectorResult, AttributeSortItem, AttributeSortSelectorDialogData, AttributeSortSelectorDialogResult, AttributeSortSelectorResult, BinaryDownloadEvent, CkTypeSelectorDialogData, CkTypeSelectorDialogResult, CkTypeSelectorResult, FieldFilterItem, FilterVariable, PropertyChangeEvent, PropertyGridConfig, PropertyGridItem, SortOption };
|