@memberjunction/ng-data-context 2.43.0 → 2.45.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/README.md +170 -44
- package/dist/lib/module.d.ts +8 -5
- package/dist/lib/module.d.ts.map +1 -1
- package/dist/lib/module.js +15 -3
- package/dist/lib/module.js.map +1 -1
- package/dist/lib/ng-data-context-dialog.component.d.ts +8 -3
- package/dist/lib/ng-data-context-dialog.component.d.ts.map +1 -1
- package/dist/lib/ng-data-context-dialog.component.js +44 -11
- package/dist/lib/ng-data-context-dialog.component.js.map +1 -1
- package/dist/lib/ng-data-context.component.d.ts +27 -2
- package/dist/lib/ng-data-context.component.d.ts.map +1 -1
- package/dist/lib/ng-data-context.component.js +477 -47
- package/dist/lib/ng-data-context.component.js.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @memberjunction/ng-data-context
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Angular component package for displaying and editing MemberJunction Data Contexts - collections of data items from different sources that can be used together for analysis, reporting, or other data operations.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This package provides Angular components to display Data Contexts and their associated items in a clean, user-friendly interface. Data Contexts in MemberJunction are powerful constructs that allow users to group related data from various sources (SQL queries, views, entities, etc.) into a single logical unit.
|
|
4
8
|
|
|
5
9
|
## Features
|
|
6
10
|
|
|
7
|
-
- **Display Data Context Details**: View information about a data context including ID, name, and description
|
|
8
|
-
- **View Data Context Items**:
|
|
9
|
-
- **Dialog Wrapper**:
|
|
10
|
-
- **Metadata Provider Integration**:
|
|
11
|
-
- **Loading State Management**:
|
|
11
|
+
- **Display Data Context Details**: View comprehensive information about a data context including ID, name, and description
|
|
12
|
+
- **View Data Context Items**: Display all items within a data context in a sortable, scrollable grid format
|
|
13
|
+
- **Dialog Wrapper**: Ready-to-use dialog component for popup displays
|
|
14
|
+
- **Metadata Provider Integration**: Seamlessly integrates with MemberJunction's metadata system
|
|
15
|
+
- **Loading State Management**: Built-in loading indicators for better user experience
|
|
16
|
+
- **Virtual Scrolling**: Efficiently handle large datasets with Kendo Grid's virtual scrolling
|
|
17
|
+
- **Responsive Design**: Components adapt to different screen sizes
|
|
12
18
|
|
|
13
19
|
## Installation
|
|
14
20
|
|
|
@@ -50,41 +56,65 @@ export class YourModule { }
|
|
|
50
56
|
<mj-data-context-dialog
|
|
51
57
|
*ngIf="showDataContextDialog"
|
|
52
58
|
[dataContextId]="selectedDataContextId"
|
|
59
|
+
[Provider]="metadataProvider"
|
|
53
60
|
(dialogClosed)="showDataContextDialog = false">
|
|
54
61
|
</mj-data-context-dialog>
|
|
55
62
|
```
|
|
56
63
|
|
|
57
|
-
### TypeScript
|
|
64
|
+
### Complete TypeScript Example
|
|
58
65
|
|
|
59
66
|
```typescript
|
|
60
67
|
import { Component } from '@angular/core';
|
|
61
|
-
import { IMetadataProvider } from '@memberjunction/core';
|
|
68
|
+
import { IMetadataProvider, Metadata } from '@memberjunction/core';
|
|
62
69
|
|
|
63
70
|
@Component({
|
|
64
71
|
selector: 'app-data-context-viewer',
|
|
65
72
|
template: `
|
|
66
|
-
<
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
<div class="data-context-container">
|
|
74
|
+
<h2>Data Context Viewer</h2>
|
|
75
|
+
|
|
76
|
+
<!-- Inline component usage -->
|
|
77
|
+
<mj-data-context
|
|
78
|
+
[dataContextId]="selectedDataContextId"
|
|
79
|
+
[Provider]="metadataProvider">
|
|
80
|
+
</mj-data-context>
|
|
81
|
+
|
|
82
|
+
<!-- Dialog trigger button -->
|
|
83
|
+
<button (click)="showDialog()">View in Dialog</button>
|
|
84
|
+
|
|
85
|
+
<!-- Dialog component -->
|
|
86
|
+
<mj-data-context-dialog
|
|
87
|
+
*ngIf="isDialogVisible"
|
|
88
|
+
[dataContextId]="selectedDataContextId"
|
|
89
|
+
[Provider]="metadataProvider"
|
|
90
|
+
(dialogClosed)="onDialogClose()">
|
|
91
|
+
</mj-data-context-dialog>
|
|
92
|
+
</div>
|
|
93
|
+
`,
|
|
94
|
+
styles: [`
|
|
95
|
+
.data-context-container {
|
|
96
|
+
padding: 20px;
|
|
97
|
+
}
|
|
98
|
+
`]
|
|
75
99
|
})
|
|
76
100
|
export class DataContextViewerComponent {
|
|
77
101
|
isDialogVisible = false;
|
|
78
|
-
|
|
102
|
+
selectedDataContextId = '12345-67890-abcdef';
|
|
79
103
|
metadataProvider: IMetadataProvider;
|
|
80
104
|
|
|
81
|
-
constructor(
|
|
82
|
-
|
|
105
|
+
constructor() {
|
|
106
|
+
// Use the global metadata provider or inject your own
|
|
107
|
+
this.metadataProvider = Metadata.Provider;
|
|
83
108
|
}
|
|
84
109
|
|
|
85
|
-
showDialog() {
|
|
110
|
+
showDialog(): void {
|
|
86
111
|
this.isDialogVisible = true;
|
|
87
112
|
}
|
|
113
|
+
|
|
114
|
+
onDialogClose(): void {
|
|
115
|
+
this.isDialogVisible = false;
|
|
116
|
+
// Additional cleanup or refresh logic here
|
|
117
|
+
}
|
|
88
118
|
}
|
|
89
119
|
```
|
|
90
120
|
|
|
@@ -92,48 +122,144 @@ export class DataContextViewerComponent {
|
|
|
92
122
|
|
|
93
123
|
### DataContextComponent
|
|
94
124
|
|
|
95
|
-
|
|
125
|
+
The main component for displaying a data context and its items.
|
|
126
|
+
|
|
127
|
+
**Selector**: `mj-data-context`
|
|
96
128
|
|
|
97
129
|
#### Inputs
|
|
98
130
|
|
|
99
|
-
|
|
100
|
-
|
|
131
|
+
| Input | Type | Required | Default | Description |
|
|
132
|
+
|-------|------|----------|---------|-------------|
|
|
133
|
+
| `dataContextId` | `string` | Yes | - | The ID of the data context to display |
|
|
134
|
+
| `Provider` | `IMetadataProvider \| null` | No | `Metadata.Provider` | Custom metadata provider. If not provided, uses the global MemberJunction metadata provider |
|
|
135
|
+
|
|
136
|
+
#### Properties
|
|
137
|
+
|
|
138
|
+
| Property | Type | Description |
|
|
139
|
+
|----------|------|-------------|
|
|
140
|
+
| `dataContextRecord` | `DataContextEntity \| undefined` | The loaded data context entity |
|
|
141
|
+
| `dataContextItems` | `any[]` | Array of data context items |
|
|
142
|
+
| `showLoader` | `boolean` | Loading state indicator |
|
|
101
143
|
|
|
102
144
|
### DataContextDialogComponent
|
|
103
145
|
|
|
104
|
-
|
|
146
|
+
Dialog wrapper component that displays the DataContextComponent in a Kendo dialog.
|
|
147
|
+
|
|
148
|
+
**Selector**: `mj-data-context-dialog`
|
|
105
149
|
|
|
106
150
|
#### Inputs
|
|
107
151
|
|
|
108
|
-
|
|
109
|
-
|
|
152
|
+
| Input | Type | Required | Default | Description |
|
|
153
|
+
|-------|------|----------|---------|-------------|
|
|
154
|
+
| `dataContextId` | `string` | Yes | - | The ID of the data context to display |
|
|
155
|
+
| `Provider` | `IMetadataProvider \| null` | No | `null` | Custom metadata provider |
|
|
110
156
|
|
|
111
157
|
#### Outputs
|
|
112
158
|
|
|
113
|
-
|
|
159
|
+
| Output | Type | Description |
|
|
160
|
+
|--------|------|-------------|
|
|
161
|
+
| `dialogClosed` | `EventEmitter<void>` | Emitted when the dialog is closed |
|
|
162
|
+
|
|
163
|
+
### DataContextModule
|
|
164
|
+
|
|
165
|
+
The NgModule that exports both components.
|
|
166
|
+
|
|
167
|
+
**Exports**:
|
|
168
|
+
- `DataContextComponent`
|
|
169
|
+
- `DataContextDialogComponent`
|
|
114
170
|
|
|
115
171
|
## Data Context Structure
|
|
116
172
|
|
|
117
|
-
A data context in MemberJunction
|
|
173
|
+
A data context in MemberJunction consists of:
|
|
174
|
+
|
|
175
|
+
1. **Context Record** (`DataContextEntity`)
|
|
176
|
+
- `ID`: Unique identifier
|
|
177
|
+
- `Name`: Display name
|
|
178
|
+
- `Description`: Detailed description
|
|
179
|
+
- Additional metadata fields
|
|
180
|
+
|
|
181
|
+
2. **Context Items** (`Data Context Items` entity)
|
|
182
|
+
- `Type`: The type of data item (SQL, View, Query, Entity, Record)
|
|
183
|
+
- `SQL`: Direct SQL query (if applicable)
|
|
184
|
+
- `ViewID`: Reference to a view
|
|
185
|
+
- `QueryID`: Reference to a saved query
|
|
186
|
+
- `EntityID`: Reference to an entity
|
|
187
|
+
- `RecordID`: Specific record reference
|
|
118
188
|
|
|
119
|
-
|
|
120
|
-
2. **Context Items** - The actual data items that make up the context, which can be:
|
|
121
|
-
- SQL queries
|
|
122
|
-
- Views
|
|
123
|
-
- Entity records
|
|
124
|
-
- Query results
|
|
125
|
-
- Other data items
|
|
189
|
+
## Grid Features
|
|
126
190
|
|
|
127
|
-
The component
|
|
191
|
+
The component uses Kendo Grid with the following features enabled:
|
|
192
|
+
- **Virtual Scrolling**: Efficiently handles large datasets
|
|
193
|
+
- **Sorting**: Click column headers to sort
|
|
194
|
+
- **Resizable Columns**: Drag column borders to resize
|
|
195
|
+
- **Keyboard Navigation**: Navigate cells with keyboard
|
|
196
|
+
- **Page Size**: Default 100 items per virtual page
|
|
128
197
|
|
|
129
198
|
## Styling
|
|
130
199
|
|
|
131
|
-
The
|
|
200
|
+
The components use Kendo UI for Angular styling. You can override styles by targeting the component selectors:
|
|
201
|
+
|
|
202
|
+
```css
|
|
203
|
+
/* Custom styling example */
|
|
204
|
+
mj-data-context {
|
|
205
|
+
/* Your custom styles */
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.kendo-grid-container {
|
|
209
|
+
height: 500px; /* Adjust grid height */
|
|
210
|
+
}
|
|
211
|
+
```
|
|
132
212
|
|
|
133
213
|
## Dependencies
|
|
134
214
|
|
|
135
|
-
|
|
136
|
-
- `@memberjunction/core
|
|
137
|
-
- `@memberjunction/
|
|
138
|
-
- `@
|
|
139
|
-
-
|
|
215
|
+
### Runtime Dependencies
|
|
216
|
+
- `@memberjunction/core` (v2.43.0): Core MemberJunction functionality
|
|
217
|
+
- `@memberjunction/core-entities` (v2.43.0): Entity type definitions
|
|
218
|
+
- `@memberjunction/global` (v2.43.0): Global utilities
|
|
219
|
+
- `tslib` (^2.3.0): TypeScript runtime helpers
|
|
220
|
+
|
|
221
|
+
### Peer Dependencies
|
|
222
|
+
- `@angular/common` (18.0.2)
|
|
223
|
+
- `@angular/core` (18.0.2)
|
|
224
|
+
- `@progress/kendo-angular-grid` (16.2.0)
|
|
225
|
+
- `@progress/kendo-angular-indicators` (16.2.0)
|
|
226
|
+
- `@progress/kendo-angular-dialog` (imported via module)
|
|
227
|
+
- `@progress/kendo-angular-buttons` (imported via module)
|
|
228
|
+
|
|
229
|
+
## Integration with MemberJunction
|
|
230
|
+
|
|
231
|
+
This package integrates seamlessly with other MemberJunction packages:
|
|
232
|
+
|
|
233
|
+
- Uses the MemberJunction metadata system for entity loading
|
|
234
|
+
- Leverages `RunView` for efficient data retrieval
|
|
235
|
+
- Compatible with MemberJunction's security and permission system
|
|
236
|
+
- Works with custom metadata providers for multi-tenant scenarios
|
|
237
|
+
|
|
238
|
+
## Build and Development
|
|
239
|
+
|
|
240
|
+
To build this package individually:
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
cd packages/Angular/Generic/data-context
|
|
244
|
+
npm run build
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
The package uses Angular CLI's `ngc` compiler for building the library.
|
|
248
|
+
|
|
249
|
+
## Error Handling
|
|
250
|
+
|
|
251
|
+
The component includes built-in error handling:
|
|
252
|
+
- Logs errors using MemberJunction's `LogError` function
|
|
253
|
+
- Hides the loader on error
|
|
254
|
+
- Gracefully handles missing or invalid data context IDs
|
|
255
|
+
|
|
256
|
+
## Best Practices
|
|
257
|
+
|
|
258
|
+
1. **Provider Usage**: Only provide a custom `Provider` if you need to override the global metadata provider
|
|
259
|
+
2. **Dialog Management**: Always handle the `dialogClosed` event to properly manage dialog state
|
|
260
|
+
3. **Performance**: The virtual scrolling is optimized for datasets up to several thousand items
|
|
261
|
+
4. **Error Handling**: Monitor console logs for any data loading errors
|
|
262
|
+
|
|
263
|
+
## License
|
|
264
|
+
|
|
265
|
+
ISC
|
package/dist/lib/module.d.ts
CHANGED
|
@@ -2,13 +2,16 @@ import * as i0 from "@angular/core";
|
|
|
2
2
|
import * as i1 from "./ng-data-context.component";
|
|
3
3
|
import * as i2 from "./ng-data-context-dialog.component";
|
|
4
4
|
import * as i3 from "@angular/common";
|
|
5
|
-
import * as i4 from "@
|
|
6
|
-
import * as i5 from "@progress/kendo-angular-
|
|
7
|
-
import * as i6 from "@progress/kendo-angular-
|
|
8
|
-
import * as i7 from "@progress/kendo-angular-
|
|
5
|
+
import * as i4 from "@angular/forms";
|
|
6
|
+
import * as i5 from "@progress/kendo-angular-grid";
|
|
7
|
+
import * as i6 from "@progress/kendo-angular-dialog";
|
|
8
|
+
import * as i7 from "@progress/kendo-angular-buttons";
|
|
9
|
+
import * as i8 from "@progress/kendo-angular-indicators";
|
|
10
|
+
import * as i9 from "@progress/kendo-angular-inputs";
|
|
11
|
+
import * as i10 from "@memberjunction/ng-container-directives";
|
|
9
12
|
export declare class DataContextModule {
|
|
10
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<DataContextModule, never>;
|
|
11
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<DataContextModule, [typeof i1.DataContextComponent, typeof i2.DataContextDialogComponent], [typeof i3.CommonModule, typeof i4.
|
|
14
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<DataContextModule, [typeof i1.DataContextComponent, typeof i2.DataContextDialogComponent], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i5.GridModule, typeof i6.DialogsModule, typeof i7.ButtonsModule, typeof i8.IndicatorsModule, typeof i9.InputsModule, typeof i10.ContainerDirectivesModule], [typeof i1.DataContextComponent, typeof i2.DataContextDialogComponent]>;
|
|
12
15
|
static ɵinj: i0.ɵɵInjectorDeclaration<DataContextModule>;
|
|
13
16
|
}
|
|
14
17
|
//# sourceMappingURL=module.d.ts.map
|
package/dist/lib/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":";;;;;;;;;;;AAeA,qBAoBa,iBAAiB;yCAAjB,iBAAiB;0CAAjB,iBAAiB;0CAAjB,iBAAiB;CAAI"}
|
package/dist/lib/module.js
CHANGED
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
3
4
|
// Kendo UI Angular imports
|
|
4
5
|
import { GridModule } from '@progress/kendo-angular-grid';
|
|
5
6
|
import { DialogsModule } from "@progress/kendo-angular-dialog";
|
|
6
7
|
import { ButtonsModule } from '@progress/kendo-angular-buttons';
|
|
7
8
|
import { IndicatorsModule } from '@progress/kendo-angular-indicators';
|
|
9
|
+
import { InputsModule } from '@progress/kendo-angular-inputs';
|
|
8
10
|
import { DataContextComponent } from './ng-data-context.component';
|
|
9
11
|
import { DataContextDialogComponent } from './ng-data-context-dialog.component';
|
|
12
|
+
import { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';
|
|
10
13
|
import * as i0 from "@angular/core";
|
|
11
14
|
export class DataContextModule {
|
|
12
15
|
}
|
|
13
16
|
DataContextModule.ɵfac = function DataContextModule_Factory(t) { return new (t || DataContextModule)(); };
|
|
14
17
|
DataContextModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: DataContextModule });
|
|
15
18
|
DataContextModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
|
|
19
|
+
FormsModule,
|
|
16
20
|
GridModule,
|
|
17
21
|
DialogsModule,
|
|
18
22
|
ButtonsModule,
|
|
19
|
-
IndicatorsModule
|
|
23
|
+
IndicatorsModule,
|
|
24
|
+
InputsModule,
|
|
25
|
+
ContainerDirectivesModule] });
|
|
20
26
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DataContextModule, [{
|
|
21
27
|
type: NgModule,
|
|
22
28
|
args: [{
|
|
@@ -26,10 +32,13 @@ DataContextModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Common
|
|
|
26
32
|
],
|
|
27
33
|
imports: [
|
|
28
34
|
CommonModule,
|
|
35
|
+
FormsModule,
|
|
29
36
|
GridModule,
|
|
30
37
|
DialogsModule,
|
|
31
38
|
ButtonsModule,
|
|
32
|
-
IndicatorsModule
|
|
39
|
+
IndicatorsModule,
|
|
40
|
+
InputsModule,
|
|
41
|
+
ContainerDirectivesModule
|
|
33
42
|
],
|
|
34
43
|
exports: [
|
|
35
44
|
DataContextComponent,
|
|
@@ -39,9 +48,12 @@ DataContextModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Common
|
|
|
39
48
|
}], null, null); })();
|
|
40
49
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DataContextModule, { declarations: [DataContextComponent,
|
|
41
50
|
DataContextDialogComponent], imports: [CommonModule,
|
|
51
|
+
FormsModule,
|
|
42
52
|
GridModule,
|
|
43
53
|
DialogsModule,
|
|
44
54
|
ButtonsModule,
|
|
45
|
-
IndicatorsModule
|
|
55
|
+
IndicatorsModule,
|
|
56
|
+
InputsModule,
|
|
57
|
+
ContainerDirectivesModule], exports: [DataContextComponent,
|
|
46
58
|
DataContextDialogComponent] }); })();
|
|
47
59
|
//# sourceMappingURL=module.js.map
|
package/dist/lib/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,2BAA2B;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;;AAsBpF,MAAM,OAAO,iBAAiB;;kFAAjB,iBAAiB;mEAAjB,iBAAiB;uEAd1B,YAAY;QACZ,WAAW;QACX,UAAU;QACV,aAAa;QACb,aAAa;QACb,gBAAgB;QAChB,YAAY;QACZ,yBAAyB;iFAOhB,iBAAiB;cApB7B,QAAQ;eAAC;gBACR,YAAY,EAAE;oBACZ,oBAAoB;oBACpB,0BAA0B;iBAC3B;gBACD,OAAO,EAAE;oBACP,YAAY;oBACZ,WAAW;oBACX,UAAU;oBACV,aAAa;oBACb,aAAa;oBACb,gBAAgB;oBAChB,YAAY;oBACZ,yBAAyB;iBAC1B;gBACD,OAAO,EAAE;oBACP,oBAAoB;oBACpB,0BAA0B;iBAC3B;aACF;;wFACY,iBAAiB,mBAlB1B,oBAAoB;QACpB,0BAA0B,aAG1B,YAAY;QACZ,WAAW;QACX,UAAU;QACV,aAAa;QACb,aAAa;QACb,gBAAgB;QAChB,YAAY;QACZ,yBAAyB,aAGzB,oBAAoB;QACpB,0BAA0B"}
|
|
@@ -2,14 +2,19 @@ import { EventEmitter } from '@angular/core';
|
|
|
2
2
|
import { IMetadataProvider } from '@memberjunction/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Enhanced dialog wrapper component for the data context viewer
|
|
6
6
|
*/
|
|
7
7
|
export declare class DataContextDialogComponent {
|
|
8
8
|
dialogClosed: EventEmitter<any>;
|
|
9
9
|
dataContextId: string;
|
|
10
|
+
dataContextName?: string;
|
|
10
11
|
Provider: IMetadataProvider | null;
|
|
11
|
-
|
|
12
|
+
isMaximized: boolean;
|
|
13
|
+
get dialogWidth(): number;
|
|
14
|
+
get dialogHeight(): number;
|
|
15
|
+
closeDialog(): void;
|
|
16
|
+
toggleMaximize(): void;
|
|
12
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<DataContextDialogComponent, never>;
|
|
13
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DataContextDialogComponent, "mj-data-context-dialog", never, { "dataContextId": { "alias": "dataContextId"; "required": false; }; "Provider": { "alias": "Provider"; "required": false; }; }, { "dialogClosed": "dialogClosed"; }, never, never, false, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DataContextDialogComponent, "mj-data-context-dialog", never, { "dataContextId": { "alias": "dataContextId"; "required": false; }; "dataContextName": { "alias": "dataContextName"; "required": false; }; "Provider": { "alias": "Provider"; "required": false; }; }, { "dialogClosed": "dialogClosed"; }, never, never, false, never>;
|
|
14
19
|
}
|
|
15
20
|
//# sourceMappingURL=ng-data-context-dialog.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-data-context-dialog.component.d.ts","sourceRoot":"","sources":["../../src/lib/ng-data-context-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAiB,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;;AAEzD;;GAEG;AACH,qBAKa,0BAA0B;IAC3B,YAAY,oBAAsB;IACnC,aAAa,EAAG,MAAM,CAAC;IACvB,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAQ;
|
|
1
|
+
{"version":3,"file":"ng-data-context-dialog.component.d.ts","sourceRoot":"","sources":["../../src/lib/ng-data-context-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAiB,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;;AAEzD;;GAEG;AACH,qBAKa,0BAA0B;IAC3B,YAAY,oBAAsB;IACnC,aAAa,EAAG,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAE5C,WAAW,EAAE,OAAO,CAAS;IAEpC,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,WAAW,IAAI,IAAI;IAInB,cAAc,IAAI,IAAI;yCApBX,0BAA0B;2CAA1B,0BAA0B;CAuBtC"}
|
|
@@ -3,38 +3,71 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
import * as i1 from "@progress/kendo-angular-dialog";
|
|
4
4
|
import * as i2 from "./ng-data-context.component";
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Enhanced dialog wrapper component for the data context viewer
|
|
7
7
|
*/
|
|
8
8
|
export class DataContextDialogComponent {
|
|
9
9
|
constructor() {
|
|
10
10
|
this.dialogClosed = new EventEmitter();
|
|
11
11
|
this.Provider = null;
|
|
12
|
+
this.isMaximized = false;
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
+
get dialogWidth() {
|
|
15
|
+
return this.isMaximized ? window.innerWidth * 0.95 : 900;
|
|
16
|
+
}
|
|
17
|
+
get dialogHeight() {
|
|
18
|
+
return this.isMaximized ? window.innerHeight * 0.95 : 700;
|
|
19
|
+
}
|
|
20
|
+
closeDialog() {
|
|
14
21
|
this.dialogClosed.emit();
|
|
15
22
|
}
|
|
23
|
+
toggleMaximize() {
|
|
24
|
+
this.isMaximized = !this.isMaximized;
|
|
25
|
+
}
|
|
16
26
|
}
|
|
17
27
|
DataContextDialogComponent.ɵfac = function DataContextDialogComponent_Factory(t) { return new (t || DataContextDialogComponent)(); };
|
|
18
|
-
DataContextDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DataContextDialogComponent, selectors: [["mj-data-context-dialog"]], inputs: { dataContextId: "dataContextId", Provider: "Provider" }, outputs: { dialogClosed: "dialogClosed" }, decls:
|
|
19
|
-
i0.ɵɵelementStart(0, "div");
|
|
20
|
-
i0.ɵɵelement(1, "div",
|
|
21
|
-
i0.ɵɵelementStart(2, "kendo-window",
|
|
22
|
-
i0.ɵɵlistener("close", function DataContextDialogComponent_Template_kendo_window_close_2_listener() { return ctx.
|
|
23
|
-
i0.ɵɵ
|
|
28
|
+
DataContextDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DataContextDialogComponent, selectors: [["mj-data-context-dialog"]], inputs: { dataContextId: "dataContextId", dataContextName: "dataContextName", Provider: "Provider" }, outputs: { dialogClosed: "dialogClosed" }, decls: 15, vars: 16, consts: [[1, "data-context-dialog-wrapper"], [1, "k-overlay"], [1, "data-context-window", 3, "close", "width", "height", "minHeight", "minWidth", "resizable", "draggable"], [1, "window-title"], [1, "fa-solid", "fa-layer-group", "title-icon"], [1, "window-actions"], [1, "window-action-btn", 3, "click", "title"], [1, "fa-solid"], ["title", "Close", 1, "window-action-btn", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "dialog-content"], [3, "dataContextId", "Provider"]], template: function DataContextDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
30
|
+
i0.ɵɵelement(1, "div", 1);
|
|
31
|
+
i0.ɵɵelementStart(2, "kendo-window", 2);
|
|
32
|
+
i0.ɵɵlistener("close", function DataContextDialogComponent_Template_kendo_window_close_2_listener() { return ctx.closeDialog(); });
|
|
33
|
+
i0.ɵɵelementStart(3, "kendo-window-titlebar")(4, "div", 3);
|
|
34
|
+
i0.ɵɵelement(5, "i", 4);
|
|
35
|
+
i0.ɵɵelementStart(6, "span");
|
|
36
|
+
i0.ɵɵtext(7);
|
|
24
37
|
i0.ɵɵelementEnd()();
|
|
38
|
+
i0.ɵɵelementStart(8, "div", 5)(9, "button", 6);
|
|
39
|
+
i0.ɵɵlistener("click", function DataContextDialogComponent_Template_button_click_9_listener() { return ctx.toggleMaximize(); });
|
|
40
|
+
i0.ɵɵelement(10, "i", 7);
|
|
41
|
+
i0.ɵɵelementEnd();
|
|
42
|
+
i0.ɵɵelementStart(11, "button", 8);
|
|
43
|
+
i0.ɵɵlistener("click", function DataContextDialogComponent_Template_button_click_11_listener() { return ctx.closeDialog(); });
|
|
44
|
+
i0.ɵɵelement(12, "i", 9);
|
|
45
|
+
i0.ɵɵelementEnd()()();
|
|
46
|
+
i0.ɵɵelementStart(13, "div", 10);
|
|
47
|
+
i0.ɵɵelement(14, "mj-data-context", 11);
|
|
48
|
+
i0.ɵɵelementEnd()()();
|
|
25
49
|
} if (rf & 2) {
|
|
26
50
|
i0.ɵɵadvance(2);
|
|
27
|
-
i0.ɵɵ
|
|
51
|
+
i0.ɵɵclassProp("maximized", ctx.isMaximized);
|
|
52
|
+
i0.ɵɵproperty("width", ctx.dialogWidth)("height", ctx.dialogHeight)("minHeight", 400)("minWidth", 600)("resizable", !ctx.isMaximized)("draggable", !ctx.isMaximized);
|
|
53
|
+
i0.ɵɵadvance(5);
|
|
54
|
+
i0.ɵɵtextInterpolate1("Data Context", ctx.dataContextName ? ": " + ctx.dataContextName : "", "");
|
|
55
|
+
i0.ɵɵadvance(2);
|
|
56
|
+
i0.ɵɵpropertyInterpolate("title", ctx.isMaximized ? "Restore" : "Maximize");
|
|
28
57
|
i0.ɵɵadvance();
|
|
58
|
+
i0.ɵɵclassProp("fa-maximize", !ctx.isMaximized)("fa-compress", ctx.isMaximized);
|
|
59
|
+
i0.ɵɵadvance(4);
|
|
29
60
|
i0.ɵɵproperty("dataContextId", ctx.dataContextId)("Provider", ctx.Provider);
|
|
30
|
-
} }, dependencies: [i1.WindowComponent, i2.DataContextComponent] });
|
|
61
|
+
} }, dependencies: [i1.WindowComponent, i1.WindowTitleBarComponent, i2.DataContextComponent], styles: [".data-context-dialog-wrapper[_ngcontent-%COMP%] {\n position: relative;\n}\n\n.data-context-window[_ngcontent-%COMP%] {\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);\n}\n\n\n\n[_nghost-%COMP%] .k-window {\n margin: 0 auto;\n top: 10% !important;\n position: fixed !important;\n}\n\n\n.data-context-window.maximized[_ngcontent-%COMP%] {\n position: fixed !important;\n top: 2.5% !important;\n left: 2.5% !important;\n}\n\n\n\n.window-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 16px;\n font-weight: 500;\n color: #333333;\n}\n\n.title-icon[_ngcontent-%COMP%] {\n color: #2196f3;\n font-size: 18px;\n}\n\n.window-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n margin-left: auto;\n}\n\n.window-action-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n padding: 8px 10px;\n cursor: pointer;\n color: #656565;\n transition: all 0.2s;\n border-radius: 4px;\n font-size: 14px;\n}\n\n.window-action-btn[_ngcontent-%COMP%]:hover {\n background-color: #e3f2fd;\n color: #2196f3;\n}\n\n.window-action-btn[_ngcontent-%COMP%]:last-child:hover {\n background-color: #ffebee;\n color: #f44336;\n}\n\n\n\n.dialog-content[_ngcontent-%COMP%] {\n height: 100%;\n overflow: auto;\n display: flex;\n flex-direction: column;\n}\n\n\n\n[_nghost-%COMP%] .k-window-titlebar {\n background-color: #ffffff;\n border-bottom: 1px solid #e2e8f0;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n[_nghost-%COMP%] .k-window-title {\n display: contents;\n}\n\n[_nghost-%COMP%] .k-window-actions {\n display: none; \n\n}\n\n[_nghost-%COMP%] .k-window-content {\n padding: 0;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n[_nghost-%COMP%] .k-window {\n border: none;\n}\n\n\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n.data-context-window[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease-out;\n}"] });
|
|
31
62
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DataContextDialogComponent, [{
|
|
32
63
|
type: Component,
|
|
33
|
-
args: [{ selector: 'mj-data-context-dialog', template: "<div>\n <div class=\"k-overlay\"></div>\n <kendo-window \n class=\"
|
|
64
|
+
args: [{ selector: 'mj-data-context-dialog', template: "<div class=\"data-context-dialog-wrapper\">\n <div class=\"k-overlay\"></div>\n <kendo-window \n class=\"data-context-window\"\n [class.maximized]=\"isMaximized\"\n [width]=\"dialogWidth\"\n [height]=\"dialogHeight\"\n [minHeight]=\"400\"\n [minWidth]=\"600\"\n [resizable]=\"!isMaximized\"\n [draggable]=\"!isMaximized\"\n (close)=\"closeDialog()\">\n \n <kendo-window-titlebar>\n <div class=\"window-title\">\n <i class=\"fa-solid fa-layer-group title-icon\"></i>\n <span>Data Context{{ dataContextName ? ': ' + dataContextName : '' }}</span>\n </div>\n <div class=\"window-actions\">\n <button \n (click)=\"toggleMaximize()\"\n title=\"{{ isMaximized ? 'Restore' : 'Maximize' }}\"\n class=\"window-action-btn\">\n <i class=\"fa-solid\" [class.fa-maximize]=\"!isMaximized\" [class.fa-compress]=\"isMaximized\"></i>\n </button>\n <button \n (click)=\"closeDialog()\"\n title=\"Close\"\n class=\"window-action-btn\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n </kendo-window-titlebar>\n \n <div class=\"dialog-content\">\n <mj-data-context \n [dataContextId]=\"dataContextId\" \n [Provider]=\"Provider\">\n </mj-data-context>\n </div>\n </kendo-window>\n</div>", styles: [".data-context-dialog-wrapper {\n position: relative;\n}\n\n.data-context-window {\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);\n}\n\n/* Position the window properly */\n:host ::ng-deep .k-window {\n margin: 0 auto;\n top: 10% !important;\n position: fixed !important;\n}\n\n\n.data-context-window.maximized {\n position: fixed !important;\n top: 2.5% !important;\n left: 2.5% !important;\n}\n\n/* Custom Title Bar */\n.window-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 16px;\n font-weight: 500;\n color: #333333;\n}\n\n.title-icon {\n color: #2196f3;\n font-size: 18px;\n}\n\n.window-actions {\n display: flex;\n gap: 4px;\n margin-left: auto;\n}\n\n.window-action-btn {\n background: none;\n border: none;\n padding: 8px 10px;\n cursor: pointer;\n color: #656565;\n transition: all 0.2s;\n border-radius: 4px;\n font-size: 14px;\n}\n\n.window-action-btn:hover {\n background-color: #e3f2fd;\n color: #2196f3;\n}\n\n.window-action-btn:last-child:hover {\n background-color: #ffebee;\n color: #f44336;\n}\n\n/* Dialog Content */\n.dialog-content {\n height: 100%;\n overflow: auto;\n display: flex;\n flex-direction: column;\n}\n\n/* Override Kendo Window Styles */\n:host ::ng-deep .k-window-titlebar {\n background-color: #ffffff;\n border-bottom: 1px solid #e2e8f0;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n:host ::ng-deep .k-window-title {\n display: contents;\n}\n\n:host ::ng-deep .k-window-actions {\n display: none; /* Hide default Kendo window actions since we have custom ones */\n}\n\n:host ::ng-deep .k-window-content {\n padding: 0;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n:host ::ng-deep .k-window {\n border: none;\n}\n\n/* Animations */\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n.data-context-window {\n animation: fadeIn 0.2s ease-out;\n}"] }]
|
|
34
65
|
}], null, { dialogClosed: [{
|
|
35
66
|
type: Output
|
|
36
67
|
}], dataContextId: [{
|
|
37
68
|
type: Input
|
|
69
|
+
}], dataContextName: [{
|
|
70
|
+
type: Input
|
|
38
71
|
}], Provider: [{
|
|
39
72
|
type: Input
|
|
40
73
|
}] }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-data-context-dialog.component.js","sourceRoot":"","sources":["../../src/lib/ng-data-context-dialog.component.ts","../../src/lib/ng-data-context-dialog.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;;;;AAGvE;;GAEG;AAMH,MAAM,OAAO,0BAA0B;IALvC;QAMY,iBAAY,GAAG,IAAI,YAAY,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ng-data-context-dialog.component.js","sourceRoot":"","sources":["../../src/lib/ng-data-context-dialog.component.ts","../../src/lib/ng-data-context-dialog.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;;;;AAGvE;;GAEG;AAMH,MAAM,OAAO,0BAA0B;IALvC;QAMY,iBAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QAGnC,aAAQ,GAA6B,IAAI,CAAC;QAE5C,gBAAW,GAAY,KAAK,CAAC;KAiBrC;IAfC,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3D,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5D,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IACvC,CAAC;;oGAtBU,0BAA0B;6EAA1B,0BAA0B;QCXvC,8BAAyC;QACrC,yBAA6B;QAC7B,uCAS4B;QAAxB,6GAAS,iBAAa,IAAC;QAGnB,AADJ,6CAAuB,aACO;QACtB,uBAAkD;QAClD,4BAAM;QAAA,YAA+D;QACzE,AADyE,iBAAO,EAC1E;QAEF,AADJ,8BAA4B,gBAIM;QAF1B,uGAAS,oBAAgB,IAAC;QAG1B,wBAA6F;QACjG,iBAAS;QACT,kCAG8B;QAF1B,wGAAS,iBAAa,IAAC;QAGvB,wBAAiC;QAG7C,AADI,AADI,iBAAS,EACP,EACc;QAExB,gCAA4B;QACxB,uCAGkB;QAG9B,AADI,AADI,iBAAM,EACK,EACb;;QArCE,eAA+B;QAA/B,4CAA+B;QAM/B,AADA,AADA,AADA,AADA,AADA,uCAAqB,4BACE,kBACN,iBACD,+BACU,+BACA;QAMZ,eAA+D;QAA/D,gGAA+D;QAKjE,eAAkD;QAAlD,2EAAkD;QAE9B,cAAkC;QAAC,AAAnC,+CAAkC,gCAAkC;QAa5F,eAA+B;QAC/B,AADA,iDAA+B,0BACV;;iFD1BxB,0BAA0B;cALtC,SAAS;2BACE,wBAAwB;gBAKxB,YAAY;kBAArB,MAAM;YACE,aAAa;kBAArB,KAAK;YACG,eAAe;kBAAvB,KAAK;YACG,QAAQ;kBAAhB,KAAK;;kFAJK,0BAA0B"}
|
|
@@ -1,16 +1,41 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
2
|
import { IMetadataProvider } from '@memberjunction/core';
|
|
3
|
-
import { DataContextEntity } from '@memberjunction/core-entities';
|
|
3
|
+
import { DataContextEntity, DataContextItemEntity } from '@memberjunction/core-entities';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class DataContextComponent implements OnInit {
|
|
6
6
|
dataContextId: string;
|
|
7
7
|
Provider: IMetadataProvider | null;
|
|
8
8
|
dataContextRecord?: DataContextEntity;
|
|
9
|
-
dataContextItems:
|
|
9
|
+
dataContextItems: DataContextItemEntity[];
|
|
10
10
|
showLoader: boolean;
|
|
11
|
+
errorMessage: string;
|
|
12
|
+
searchTerm: string;
|
|
13
|
+
showSQLPreview: boolean;
|
|
14
|
+
previewSQL: string;
|
|
15
|
+
copiedField: string;
|
|
16
|
+
expandedItems: {
|
|
17
|
+
[key: string]: boolean;
|
|
18
|
+
};
|
|
11
19
|
get ProviderToUse(): IMetadataProvider;
|
|
20
|
+
get filteredItems(): DataContextItemEntity[];
|
|
21
|
+
get itemCount(): number;
|
|
12
22
|
ngOnInit(): void;
|
|
13
23
|
LoadDataContext(dataContextId: string): Promise<void>;
|
|
24
|
+
getTypeIcon(type: string): string;
|
|
25
|
+
getTypeColor(type: string): string;
|
|
26
|
+
getEntityName(entityId: string | null): string | undefined;
|
|
27
|
+
getViewName(viewId: string): Promise<string | undefined>;
|
|
28
|
+
getQueryName(queryId: string): Promise<string | undefined>;
|
|
29
|
+
onSearchChange(): void;
|
|
30
|
+
toggleItemExpansion(itemId: string): void;
|
|
31
|
+
copyToClipboard(text: string, fieldName: string): Promise<void>;
|
|
32
|
+
previewSQLCode(sql: string): void;
|
|
33
|
+
closeSQLPreview(): void;
|
|
34
|
+
navigateToEntity(entityId: string): void;
|
|
35
|
+
navigateToView(viewId: string): void;
|
|
36
|
+
navigateToQuery(queryId: string): void;
|
|
37
|
+
refresh(): Promise<void>;
|
|
38
|
+
exportToCSV(): void;
|
|
14
39
|
static ɵfac: i0.ɵɵFactoryDeclaration<DataContextComponent, never>;
|
|
15
40
|
static ɵcmp: i0.ɵɵComponentDeclaration<DataContextComponent, "mj-data-context", never, { "dataContextId": { "alias": "dataContextId"; "required": false; }; "Provider": { "alias": "Provider"; "required": false; }; }, {}, never, never, false, never>;
|
|
16
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-data-context.component.d.ts","sourceRoot":"","sources":["../../src/lib/ng-data-context.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAiD,MAAM,sBAAsB,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;;
|
|
1
|
+
{"version":3,"file":"ng-data-context.component.d.ts","sourceRoot":"","sources":["../../src/lib/ng-data-context.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAiD,MAAM,sBAAsB,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;;AAEzF,qBAKa,oBAAqB,YAAW,MAAM;IACxC,aAAa,EAAG,MAAM,CAAC;IACvB,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAE5C,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,gBAAgB,EAAE,qBAAqB,EAAE,CAAM;IAC/C,UAAU,EAAE,OAAO,CAAS;IAC5B,YAAY,EAAE,MAAM,CAAM;IAC1B,UAAU,EAAE,MAAM,CAAM;IAGxB,cAAc,EAAE,OAAO,CAAS;IAChC,UAAU,EAAE,MAAM,CAAM;IACxB,WAAW,EAAE,MAAM,CAAM;IACzB,aAAa,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAM;IAEtD,IAAW,aAAa,IAAI,iBAAiB,CAE5C;IAED,IAAW,aAAa,IAAI,qBAAqB,EAAE,CAYlD;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,QAAQ,IAAI,IAAI;IAOV,eAAe,CAAC,aAAa,EAAE,MAAM;IAgCpC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAYjC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAYlC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS;IAMpD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAWxD,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAWhE,cAAc,IAAI,IAAI;IAKtB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAInC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrE,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKjC,eAAe,IAAI,IAAI;IAKvB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKxC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKpC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKhC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B,WAAW,IAAI,IAAI;yCApLf,oBAAoB;2CAApB,oBAAoB;CA0MhC"}
|