tm1npm 1.4.0 → 1.5.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/lib/services/PowerBiService.d.ts +336 -4
- package/lib/services/PowerBiService.d.ts.map +1 -1
- package/lib/services/PowerBiService.js +718 -25
- package/lib/services/TM1Service.d.ts +2 -0
- package/lib/services/TM1Service.d.ts.map +1 -1
- package/lib/services/TM1Service.js +2 -0
- package/lib/tests/powerBiService.test.d.ts +7 -0
- package/lib/tests/powerBiService.test.d.ts.map +1 -0
- package/lib/tests/powerBiService.test.js +703 -0
- package/package.json +1 -1
- package/src/services/PowerBiService.ts +1034 -27
- package/src/services/TM1Service.ts +3 -0
- package/src/tests/powerBiService.test.ts +987 -0
|
@@ -1,13 +1,345 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PowerBiService - Business Intelligence Integration for TM1
|
|
3
|
+
*
|
|
4
|
+
* Provides comprehensive integration between TM1 data and Microsoft Power BI,
|
|
5
|
+
* including dataset generation, schema creation, data export, and formatting.
|
|
6
|
+
*/
|
|
1
7
|
import { RestService } from './RestService';
|
|
2
|
-
|
|
3
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Power BI column data types
|
|
10
|
+
*/
|
|
11
|
+
export type PowerBIDataType = 'string' | 'number' | 'boolean' | 'datetime' | 'decimal';
|
|
12
|
+
/**
|
|
13
|
+
* Power BI column definition
|
|
14
|
+
*/
|
|
15
|
+
export interface PowerBIColumn {
|
|
16
|
+
name: string;
|
|
17
|
+
dataType: PowerBIDataType;
|
|
18
|
+
isNullable?: boolean;
|
|
19
|
+
description?: string;
|
|
20
|
+
formatString?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Power BI table definition
|
|
24
|
+
*/
|
|
25
|
+
export interface PowerBITable {
|
|
26
|
+
name: string;
|
|
27
|
+
columns: PowerBIColumn[];
|
|
28
|
+
rows?: any[];
|
|
29
|
+
description?: string;
|
|
30
|
+
isHidden?: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Power BI relationship definition
|
|
34
|
+
*/
|
|
35
|
+
export interface PowerBIRelationship {
|
|
36
|
+
name: string;
|
|
37
|
+
fromTable: string;
|
|
38
|
+
fromColumn: string;
|
|
39
|
+
toTable: string;
|
|
40
|
+
toColumn: string;
|
|
41
|
+
crossFilteringBehavior?: 'oneDirection' | 'bothDirections' | 'automatic';
|
|
42
|
+
isActive?: boolean;
|
|
43
|
+
securityFilteringBehavior?: 'oneDirection' | 'bothDirections';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Power BI measure definition
|
|
47
|
+
*/
|
|
48
|
+
export interface PowerBIMeasure {
|
|
49
|
+
name: string;
|
|
50
|
+
expression: string;
|
|
51
|
+
formatString?: string;
|
|
52
|
+
description?: string;
|
|
53
|
+
isHidden?: boolean;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Power BI dataset definition
|
|
57
|
+
*/
|
|
58
|
+
export interface PowerBIDataset {
|
|
59
|
+
id?: string;
|
|
60
|
+
name: string;
|
|
61
|
+
tables: PowerBITable[];
|
|
62
|
+
relationships?: PowerBIRelationship[];
|
|
63
|
+
measures?: PowerBIMeasure[];
|
|
64
|
+
description?: string;
|
|
65
|
+
defaultMode?: 'push' | 'streaming' | 'pushStreaming';
|
|
66
|
+
createdAt?: Date;
|
|
67
|
+
updatedAt?: Date;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Power BI connection configuration
|
|
71
|
+
*/
|
|
72
|
+
export interface PowerBIConfig {
|
|
73
|
+
workspaceId?: string;
|
|
74
|
+
datasetName: string;
|
|
75
|
+
refreshSchedule?: PowerBIRefreshSchedule;
|
|
76
|
+
connectionTimeout?: number;
|
|
77
|
+
maxRows?: number;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Power BI refresh schedule
|
|
81
|
+
*/
|
|
82
|
+
export interface PowerBIRefreshSchedule {
|
|
83
|
+
enabled: boolean;
|
|
84
|
+
days?: ('Sunday' | 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday')[];
|
|
85
|
+
times?: string[];
|
|
86
|
+
localTimeZoneId?: string;
|
|
87
|
+
notifyOption?: 'noNotification' | 'mailOnFailure' | 'mailOnCompletion';
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Power BI schema definition
|
|
91
|
+
*/
|
|
92
|
+
export interface PowerBISchema {
|
|
93
|
+
tables: PowerBITableSchema[];
|
|
94
|
+
relationships: PowerBIRelationship[];
|
|
95
|
+
measures?: PowerBIMeasure[];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Power BI table schema
|
|
99
|
+
*/
|
|
100
|
+
export interface PowerBITableSchema {
|
|
101
|
+
name: string;
|
|
102
|
+
columns: PowerBIColumn[];
|
|
103
|
+
sourceQuery?: string;
|
|
104
|
+
sourceCube?: string;
|
|
105
|
+
sourceView?: string;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Power BI export options
|
|
109
|
+
*/
|
|
110
|
+
export interface PowerBIExportOptions {
|
|
111
|
+
includeMetadata?: boolean;
|
|
112
|
+
flattenHierarchies?: boolean;
|
|
113
|
+
skipConsolidations?: boolean;
|
|
114
|
+
skipZeros?: boolean;
|
|
115
|
+
skipRuleDerived?: boolean;
|
|
116
|
+
maxRows?: number;
|
|
117
|
+
dateFormat?: string;
|
|
118
|
+
decimalPlaces?: number;
|
|
119
|
+
includeAttributes?: string[];
|
|
120
|
+
sandbox_name?: string;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Power BI data format options
|
|
124
|
+
*/
|
|
125
|
+
export interface PowerBIFormatOptions {
|
|
126
|
+
dateFormat?: string;
|
|
127
|
+
numberFormat?: string;
|
|
128
|
+
booleanFormat?: {
|
|
129
|
+
true: string;
|
|
130
|
+
false: string;
|
|
131
|
+
};
|
|
132
|
+
nullValue?: any;
|
|
133
|
+
trimStrings?: boolean;
|
|
134
|
+
convertEmptyToNull?: boolean;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Dimension metadata for Power BI
|
|
138
|
+
*/
|
|
139
|
+
export interface DimensionMetadata {
|
|
140
|
+
name: string;
|
|
141
|
+
hierarchyName: string;
|
|
142
|
+
elementCount: number;
|
|
143
|
+
hasAttributes: boolean;
|
|
144
|
+
attributes: string[];
|
|
145
|
+
levels?: number;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Cube metadata for Power BI
|
|
149
|
+
*/
|
|
150
|
+
export interface CubeMetadata {
|
|
151
|
+
name: string;
|
|
152
|
+
dimensions: DimensionMetadata[];
|
|
153
|
+
hasRules: boolean;
|
|
154
|
+
lastDataUpdate?: string;
|
|
155
|
+
measureDimension?: string;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Connection tracking for Power BI datasets
|
|
159
|
+
*/
|
|
160
|
+
interface PowerBIConnectionTracker {
|
|
161
|
+
id: string;
|
|
162
|
+
config: PowerBIConfig;
|
|
163
|
+
dataset?: PowerBIDataset;
|
|
164
|
+
status: 'active' | 'inactive' | 'error';
|
|
165
|
+
lastRefresh?: Date;
|
|
166
|
+
errorMessage?: string;
|
|
167
|
+
}
|
|
4
168
|
export declare class PowerBiService {
|
|
5
169
|
private _tm1Rest;
|
|
6
|
-
cells
|
|
7
|
-
elements
|
|
170
|
+
private cells;
|
|
171
|
+
private elements;
|
|
172
|
+
private cubes;
|
|
173
|
+
private dimensions;
|
|
174
|
+
private views;
|
|
175
|
+
private connections;
|
|
176
|
+
private datasets;
|
|
177
|
+
private static readonly DEFAULT_MAX_ROWS;
|
|
178
|
+
private static readonly MEASURE_DIMENSION_THRESHOLD;
|
|
8
179
|
constructor(tm1Rest: RestService);
|
|
180
|
+
/**
|
|
181
|
+
* Generate a Power BI dataset from TM1 cubes
|
|
182
|
+
* @param cubeNames - Array of cube names to include in the dataset
|
|
183
|
+
* @param datasetName - Name for the Power BI dataset
|
|
184
|
+
* @param options - Export options for data retrieval
|
|
185
|
+
* @returns Power BI dataset definition with tables and relationships
|
|
186
|
+
*/
|
|
187
|
+
generatePowerBIDataset(cubeNames: string[], datasetName?: string, options?: PowerBIExportOptions): Promise<PowerBIDataset>;
|
|
188
|
+
/**
|
|
189
|
+
* Create a Power BI connection configuration
|
|
190
|
+
* @param config - Power BI connection configuration
|
|
191
|
+
* @returns Connection ID for tracking
|
|
192
|
+
*/
|
|
193
|
+
createPowerBIConnection(config: PowerBIConfig): Promise<string>;
|
|
194
|
+
/**
|
|
195
|
+
* Refresh a Power BI dataset with latest TM1 data
|
|
196
|
+
* @param datasetId - Dataset ID to refresh
|
|
197
|
+
* @param options - Export options for data retrieval
|
|
198
|
+
*/
|
|
199
|
+
refreshPowerBIDataset(datasetId: string, options?: PowerBIExportOptions): Promise<PowerBIDataset>;
|
|
200
|
+
/**
|
|
201
|
+
* Delete a Power BI dataset
|
|
202
|
+
* @param datasetId - Dataset ID to delete
|
|
203
|
+
*/
|
|
204
|
+
deletePowerBIDataset(datasetId: string): Promise<void>;
|
|
205
|
+
/**
|
|
206
|
+
* Get a Power BI dataset by ID
|
|
207
|
+
* @param datasetId - Dataset ID
|
|
208
|
+
* @returns Power BI dataset or undefined
|
|
209
|
+
*/
|
|
210
|
+
getDataset(datasetId: string): PowerBIDataset | undefined;
|
|
211
|
+
/**
|
|
212
|
+
* List all Power BI datasets
|
|
213
|
+
* @returns Array of Power BI datasets
|
|
214
|
+
*/
|
|
215
|
+
listDatasets(): PowerBIDataset[];
|
|
216
|
+
/**
|
|
217
|
+
* Export cube data formatted for Power BI consumption
|
|
218
|
+
* @param cubeName - Name of the cube to export
|
|
219
|
+
* @param viewName - Optional view name (uses default view if not specified)
|
|
220
|
+
* @param options - Export options
|
|
221
|
+
* @returns Array of formatted data rows
|
|
222
|
+
*/
|
|
223
|
+
exportCubeForPowerBI(cubeName: string, viewName?: string, options?: PowerBIExportOptions): Promise<any[]>;
|
|
224
|
+
/**
|
|
225
|
+
* Export view data formatted for Power BI
|
|
226
|
+
* @param cubeName - Name of the cube
|
|
227
|
+
* @param viewName - Name of the view
|
|
228
|
+
* @param isPrivate - Whether the view is private
|
|
229
|
+
* @param options - Export options
|
|
230
|
+
* @returns Array of formatted data rows
|
|
231
|
+
*/
|
|
232
|
+
exportViewForPowerBI(cubeName: string, viewName: string, isPrivate?: boolean, options?: PowerBIExportOptions): Promise<any[]>;
|
|
233
|
+
/**
|
|
234
|
+
* Generate Power BI schema from TM1 cubes
|
|
235
|
+
* @param cubeNames - Array of cube names
|
|
236
|
+
* @returns Power BI schema definition
|
|
237
|
+
*/
|
|
238
|
+
generatePowerBISchema(cubeNames: string[]): Promise<PowerBISchema>;
|
|
239
|
+
/**
|
|
240
|
+
* Format raw data for Power BI consumption
|
|
241
|
+
* @param data - Raw data array
|
|
242
|
+
* @param columns - Column names
|
|
243
|
+
* @param options - Format options
|
|
244
|
+
* @returns Formatted data array
|
|
245
|
+
*/
|
|
246
|
+
formatDataForPowerBI(data: any[], columns: string[], options?: PowerBIFormatOptions): any[];
|
|
247
|
+
/**
|
|
248
|
+
* Create Power BI relationships between cubes based on shared dimensions
|
|
249
|
+
* @param cubeNames - Array of cube names
|
|
250
|
+
* @returns Array of Power BI relationships
|
|
251
|
+
*/
|
|
252
|
+
createPowerBIRelationships(cubeNames: string[]): Promise<PowerBIRelationship[]>;
|
|
253
|
+
/**
|
|
254
|
+
* Optimize data structure for Power BI performance
|
|
255
|
+
* @param data - Raw data array
|
|
256
|
+
* @param options - Export options
|
|
257
|
+
* @returns Optimized data array
|
|
258
|
+
*/
|
|
259
|
+
optimizeForPowerBI(data: any[], options?: PowerBIExportOptions): any[];
|
|
260
|
+
/**
|
|
261
|
+
* Execute MDX and return data as array
|
|
262
|
+
* @param mdx - MDX query string
|
|
263
|
+
* @returns Array of data rows
|
|
264
|
+
*/
|
|
9
265
|
executeMdx(mdx: string): Promise<any[]>;
|
|
266
|
+
/**
|
|
267
|
+
* Execute view and return data as array
|
|
268
|
+
* @param cubeName - Cube name
|
|
269
|
+
* @param viewName - View name
|
|
270
|
+
* @param isPrivate - Whether view is private
|
|
271
|
+
* @param useIterativeJson - Use iterative JSON parsing
|
|
272
|
+
* @param useBlob - Use blob for large datasets
|
|
273
|
+
* @returns Array of data rows
|
|
274
|
+
*/
|
|
10
275
|
executeView(cubeName: string, viewName: string, isPrivate: boolean, useIterativeJson?: boolean, useBlob?: boolean): Promise<any[]>;
|
|
276
|
+
/**
|
|
277
|
+
* Get member properties for Power BI dimension table
|
|
278
|
+
* @param dimensionName - Dimension name
|
|
279
|
+
* @param hierarchyName - Hierarchy name
|
|
280
|
+
* @param memberSelection - Member selection (array or MDX)
|
|
281
|
+
* @param skipConsolidations - Skip consolidated elements
|
|
282
|
+
* @param attributes - Attributes to include
|
|
283
|
+
* @param skipParents - Skip parent columns
|
|
284
|
+
* @param levelNames - Custom level names
|
|
285
|
+
* @param parentAttribute - Attribute for parent display
|
|
286
|
+
* @param skipWeights - Skip weight columns
|
|
287
|
+
* @param useBlob - Use blob for large datasets
|
|
288
|
+
* @returns Array of member properties
|
|
289
|
+
*/
|
|
11
290
|
getMemberProperties(dimensionName?: string, hierarchyName?: string, memberSelection?: string[] | string, skipConsolidations?: boolean, attributes?: string[], skipParents?: boolean, levelNames?: string[], parentAttribute?: string, skipWeights?: boolean, useBlob?: boolean): Promise<any[]>;
|
|
291
|
+
/**
|
|
292
|
+
* Get cube metadata for Power BI schema generation
|
|
293
|
+
* @param cubeName - Cube name
|
|
294
|
+
* @returns Cube metadata
|
|
295
|
+
*/
|
|
296
|
+
getCubeMetadata(cubeName: string): Promise<CubeMetadata>;
|
|
297
|
+
/**
|
|
298
|
+
* Get dimension metadata for Power BI
|
|
299
|
+
* @param dimensionName - Dimension name
|
|
300
|
+
* @returns Dimension metadata
|
|
301
|
+
*/
|
|
302
|
+
getDimensionMetadata(dimensionName: string): Promise<DimensionMetadata>;
|
|
303
|
+
private generateDatasetId;
|
|
304
|
+
private generateConnectionId;
|
|
305
|
+
/**
|
|
306
|
+
* Helper method to safely get element attributes
|
|
307
|
+
* @param dimensionName - Dimension name
|
|
308
|
+
* @param hierarchyName - Hierarchy name
|
|
309
|
+
* @returns Array of attribute names or empty array
|
|
310
|
+
*/
|
|
311
|
+
private safeGetAttributes;
|
|
312
|
+
private createDimensionTable;
|
|
313
|
+
private createFactTable;
|
|
314
|
+
private createDimensionSchema;
|
|
315
|
+
private createFactTableSchema;
|
|
316
|
+
private buildCubeMDX;
|
|
317
|
+
private formatValue;
|
|
318
|
+
private convertToCompatibleType;
|
|
319
|
+
private inferAttributeDataType;
|
|
320
|
+
private identifyMeasureDimension;
|
|
321
|
+
/**
|
|
322
|
+
* Get connection status
|
|
323
|
+
* @param connectionId - Connection ID
|
|
324
|
+
* @returns Connection tracker or undefined
|
|
325
|
+
*/
|
|
326
|
+
getConnectionStatus(connectionId: string): PowerBIConnectionTracker | undefined;
|
|
327
|
+
/**
|
|
328
|
+
* List all connections
|
|
329
|
+
* @returns Array of connection trackers
|
|
330
|
+
*/
|
|
331
|
+
listConnections(): PowerBIConnectionTracker[];
|
|
332
|
+
/**
|
|
333
|
+
* Close a connection
|
|
334
|
+
* @param connectionId - Connection ID to close
|
|
335
|
+
*/
|
|
336
|
+
closeConnection(connectionId: string): void;
|
|
337
|
+
/**
|
|
338
|
+
* Update connection configuration
|
|
339
|
+
* @param connectionId - Connection ID
|
|
340
|
+
* @param config - New configuration
|
|
341
|
+
*/
|
|
342
|
+
updateConnectionConfig(connectionId: string, config: Partial<PowerBIConfig>): void;
|
|
12
343
|
}
|
|
344
|
+
export {};
|
|
13
345
|
//# sourceMappingURL=PowerBiService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PowerBiService.d.ts","sourceRoot":"","sources":["../../src/services/PowerBiService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"PowerBiService.d.ts","sourceRoot":"","sources":["../../src/services/PowerBiService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ5C;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,cAAc,GAAG,gBAAgB,GAAG,WAAW,CAAC;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yBAAyB,CAAC,EAAE,cAAc,GAAG,gBAAgB,CAAC;CACjE;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,eAAe,CAAC;IACrD,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC;IAC9F,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,gBAAgB,GAAG,eAAe,GAAG,kBAAkB,CAAC;CAC1E;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,UAAU,wBAAwB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IACxC,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,QAAQ,CAA8B;IAG9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAM;gBAE7C,OAAO,EAAE,WAAW;IAahC;;;;;;OAMG;IACU,sBAAsB,CAC/B,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,oBAAoB,GAC/B,OAAO,CAAC,cAAc,CAAC;IA2D1B;;;;OAIG;IACU,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB5E;;;;OAIG;IACU,qBAAqB,CAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,oBAAoB,GAC/B,OAAO,CAAC,cAAc,CAAC;IA+B1B;;;OAGG;IACU,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAenE;;;;OAIG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIhE;;;OAGG;IACI,YAAY,IAAI,cAAc,EAAE;IAMvC;;;;;;OAMG;IACU,oBAAoB,CAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,oBAAoB,GAC/B,OAAO,CAAC,GAAG,EAAE,CAAC;IA+BjB;;;;;;;OAOG;IACU,oBAAoB,CAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,OAAe,EAC1B,OAAO,CAAC,EAAE,oBAAoB,GAC/B,OAAO,CAAC,GAAG,EAAE,CAAC;IAKjB;;;;OAIG;IACU,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAyC/E;;;;;;OAMG;IACI,oBAAoB,CACvB,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE,oBAAoB,GAC/B,GAAG,EAAE;IAyBR;;;;OAIG;IACU,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAsD5F;;;;;OAKG;IACI,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,GAAG,EAAE;IAuC7E;;;;OAIG;IACU,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAIpD;;;;;;;;OAQG;IACU,WAAW,CACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,gBAAgB,GAAE,OAAe,EACjC,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,GAAG,EAAE,CAAC;IAUjB;;;;;;;;;;;;;OAaG;IACU,mBAAmB,CAC5B,aAAa,CAAC,EAAE,MAAM,EACtB,aAAa,CAAC,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EACnC,kBAAkB,GAAE,OAAc,EAClC,UAAU,CAAC,EAAE,MAAM,EAAE,EACrB,WAAW,GAAE,OAAe,EAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,EACrB,eAAe,CAAC,EAAE,MAAM,EACxB,WAAW,GAAE,OAAc,EAC3B,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,GAAG,EAAE,CAAC;IAwCjB;;;;OAIG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAyBrE;;;;OAIG;IACU,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8BpF,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,oBAAoB;IAI5B;;;;;OAKG;YACW,iBAAiB;YAUjB,oBAAoB;YA2CpB,eAAe;YAuCf,qBAAqB;IAuBnC,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,sBAAsB;IA8B9B,OAAO,CAAC,wBAAwB;IA0BhC;;;;OAIG;IACI,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAItF;;;OAGG;IACI,eAAe,IAAI,wBAAwB,EAAE;IAIpD;;;OAGG;IACI,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAQlD;;;;OAIG;IACI,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;CAM5F"}
|