@memberjunction/ng-find-record 3.4.0 → 4.1.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 +56 -277
- package/dist/lib/dialog.component.d.ts.map +1 -1
- package/dist/lib/dialog.component.js +5 -5
- package/dist/lib/dialog.component.js.map +1 -1
- package/dist/lib/find-record.component.d.ts.map +1 -1
- package/dist/lib/find-record.component.js +24 -23
- package/dist/lib/find-record.component.js.map +1 -1
- package/package.json +19 -19
package/README.md
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
1
|
# @memberjunction/ng-find-record
|
|
2
2
|
|
|
3
|
-
An Angular component library for searching and selecting records from any MemberJunction entity.
|
|
4
|
-
|
|
5
|
-
## Purpose and Overview
|
|
6
|
-
|
|
7
|
-
The `@memberjunction/ng-find-record` package simplifies the process of implementing entity record search functionality in MemberJunction-based Angular applications. It provides a reusable component that can search any entity using the MemberJunction metadata system and RunView API, displaying results in a Kendo UI grid for easy selection.
|
|
8
|
-
|
|
9
|
-
## Features
|
|
10
|
-
|
|
11
|
-
- **Entity-Agnostic**: Works with any MemberJunction entity without modification
|
|
12
|
-
- **Debounced Search**: Real-time search with configurable debounce time (default: 300ms)
|
|
13
|
-
- **Grid Display**: Results displayed in a searchable, sortable Kendo UI grid
|
|
14
|
-
- **Customizable Fields**: Configure which fields to display in the results grid
|
|
15
|
-
- **Dialog Integration**: Optional dialog wrapper for modal usage scenarios
|
|
16
|
-
- **Event Handling**: Events for record selection and dialog closure
|
|
17
|
-
- **Loading States**: Visual feedback during search operations
|
|
18
|
-
- **TypeScript Support**: Full TypeScript support with proper typing
|
|
19
|
-
- **MemberJunction Integration**: Seamlessly integrates with MemberJunction's metadata and entity systems
|
|
3
|
+
An Angular component library for searching and selecting records from any MemberJunction entity. Provides both a standalone search component and a dialog wrapper for modal usage.
|
|
20
4
|
|
|
21
5
|
## Installation
|
|
22
6
|
|
|
@@ -24,27 +8,45 @@ The `@memberjunction/ng-find-record` package simplifies the process of implement
|
|
|
24
8
|
npm install @memberjunction/ng-find-record
|
|
25
9
|
```
|
|
26
10
|
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
The Find Record package provides a reusable search interface that works with any entity registered in the MemberJunction metadata system. It uses debounced search input with the RunView API and displays results in a Kendo UI grid for easy selection.
|
|
14
|
+
|
|
15
|
+
```mermaid
|
|
16
|
+
flowchart LR
|
|
17
|
+
subgraph Input["User Input"]
|
|
18
|
+
A["Search Text"] --> B["Debounce (300ms)"]
|
|
19
|
+
end
|
|
20
|
+
subgraph API["MJ Data Layer"]
|
|
21
|
+
B --> C["RunView + UserSearchString"]
|
|
22
|
+
C --> D["BaseEntity Results"]
|
|
23
|
+
end
|
|
24
|
+
subgraph Display["UI Components"]
|
|
25
|
+
D --> E["Kendo Grid"]
|
|
26
|
+
E --> F["OnRecordSelected"]
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
style Input fill:#2d6a9f,stroke:#1a4971,color:#fff
|
|
30
|
+
style API fill:#7c5295,stroke:#563a6b,color:#fff
|
|
31
|
+
style Display fill:#2d8659,stroke:#1a5c3a,color:#fff
|
|
32
|
+
```
|
|
33
|
+
|
|
27
34
|
## Usage
|
|
28
35
|
|
|
29
|
-
### Import
|
|
36
|
+
### Module Import
|
|
30
37
|
|
|
31
38
|
```typescript
|
|
32
39
|
import { FindRecordModule } from '@memberjunction/ng-find-record';
|
|
33
40
|
|
|
34
41
|
@NgModule({
|
|
35
|
-
imports: [
|
|
36
|
-
FindRecordModule,
|
|
37
|
-
// other imports
|
|
38
|
-
],
|
|
39
|
-
// ...
|
|
42
|
+
imports: [FindRecordModule]
|
|
40
43
|
})
|
|
41
|
-
export class YourModule {
|
|
44
|
+
export class YourModule {}
|
|
42
45
|
```
|
|
43
46
|
|
|
44
|
-
###
|
|
47
|
+
### Standalone Search Component
|
|
45
48
|
|
|
46
49
|
```html
|
|
47
|
-
<!-- Standalone search component -->
|
|
48
50
|
<mj-find-record
|
|
49
51
|
[EntityName]="'Users'"
|
|
50
52
|
[SearchDebounceTime]="500"
|
|
@@ -52,16 +54,10 @@ export class YourModule { }
|
|
|
52
54
|
</mj-find-record>
|
|
53
55
|
```
|
|
54
56
|
|
|
55
|
-
### Dialog
|
|
57
|
+
### Dialog Wrapper
|
|
56
58
|
|
|
57
59
|
```html
|
|
58
|
-
<!-- Search component in a dialog -->
|
|
59
|
-
<button kendoButton (click)="showFindDialog = true">
|
|
60
|
-
Find User
|
|
61
|
-
</button>
|
|
62
|
-
|
|
63
60
|
<mj-find-record-dialog
|
|
64
|
-
*ngIf="showFindDialog"
|
|
65
61
|
[EntityName]="'Users'"
|
|
66
62
|
[DialogTitle]="'Find User'"
|
|
67
63
|
[DialogVisible]="showFindDialog"
|
|
@@ -70,277 +66,60 @@ export class YourModule { }
|
|
|
70
66
|
</mj-find-record-dialog>
|
|
71
67
|
```
|
|
72
68
|
|
|
73
|
-
|
|
69
|
+
## Components
|
|
74
70
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
@Component({
|
|
80
|
-
selector: 'app-user-finder',
|
|
81
|
-
template: `
|
|
82
|
-
<h3>Find User</h3>
|
|
83
|
-
<button kendoButton (click)="showDialog()">Open User Finder</button>
|
|
84
|
-
|
|
85
|
-
<div *ngIf="selectedUser">
|
|
86
|
-
<h4>Selected User:</h4>
|
|
87
|
-
<p>{{ selectedUser.Get('UserName') }}</p>
|
|
88
|
-
<p>{{ selectedUser.Get('Email') }}</p>
|
|
89
|
-
</div>
|
|
90
|
-
|
|
91
|
-
<mj-find-record-dialog
|
|
92
|
-
*ngIf="dialogVisible"
|
|
93
|
-
[EntityName]="'Users'"
|
|
94
|
-
[DisplayFields]="displayFields"
|
|
95
|
-
[DialogTitle]="'Find User'"
|
|
96
|
-
[DialogVisible]="dialogVisible"
|
|
97
|
-
[DialogWidth]="'800px'"
|
|
98
|
-
[DialogHeight]="'500px'"
|
|
99
|
-
(DialogClosed)="onDialogClosed($event)"
|
|
100
|
-
(OnRecordSelected)="onUserSelected($event)">
|
|
101
|
-
</mj-find-record-dialog>
|
|
102
|
-
`
|
|
103
|
-
})
|
|
104
|
-
export class UserFinderComponent implements OnInit {
|
|
105
|
-
dialogVisible = false;
|
|
106
|
-
selectedUser: BaseEntity | null = null;
|
|
107
|
-
displayFields: EntityFieldInfo[] = [];
|
|
108
|
-
|
|
109
|
-
constructor(private metadata: Metadata) {}
|
|
110
|
-
|
|
111
|
-
ngOnInit() {
|
|
112
|
-
// Get specific fields to display in the grid
|
|
113
|
-
const userEntity = this.metadata.EntityByName('Users');
|
|
114
|
-
if (userEntity) {
|
|
115
|
-
this.displayFields = [
|
|
116
|
-
userEntity.Fields.find(f => f.Name === 'UserName')!,
|
|
117
|
-
userEntity.Fields.find(f => f.Name === 'Email')!,
|
|
118
|
-
userEntity.Fields.find(f => f.Name === 'FirstName')!,
|
|
119
|
-
userEntity.Fields.find(f => f.Name === 'LastName')!
|
|
120
|
-
];
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
showDialog() {
|
|
125
|
-
this.dialogVisible = true;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
onUserSelected(user: BaseEntity) {
|
|
129
|
-
this.selectedUser = user;
|
|
130
|
-
console.log('Selected user:', user);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
onDialogClosed(confirmed: boolean) {
|
|
134
|
-
this.dialogVisible = false;
|
|
135
|
-
|
|
136
|
-
if (confirmed && this.selectedUser) {
|
|
137
|
-
console.log('User selection confirmed:', this.selectedUser);
|
|
138
|
-
// Do something with the selected user
|
|
139
|
-
} else {
|
|
140
|
-
console.log('User selection cancelled');
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
## API Reference
|
|
71
|
+
| Component | Selector | Purpose |
|
|
72
|
+
|-----------|----------|---------|
|
|
73
|
+
| `FindRecordComponent` | `mj-find-record` | Standalone search with results grid |
|
|
74
|
+
| `FindRecordDialogComponent` | `mj-find-record-dialog` | Modal dialog wrapper around the search component |
|
|
147
75
|
|
|
148
76
|
### FindRecordComponent
|
|
149
77
|
|
|
150
|
-
Standalone component for searching and selecting records. This component provides a search input with a grid display of results.
|
|
151
|
-
|
|
152
|
-
#### Selector
|
|
153
|
-
`mj-find-record`
|
|
154
|
-
|
|
155
78
|
#### Inputs
|
|
156
79
|
|
|
157
80
|
| Property | Type | Default | Description |
|
|
158
81
|
|----------|------|---------|-------------|
|
|
159
|
-
| `EntityName` | `string` | `''` |
|
|
160
|
-
| `DisplayFields` | `EntityFieldInfo[]` | `[]` |
|
|
161
|
-
| `SearchDebounceTime` | `number` | `300` |
|
|
82
|
+
| `EntityName` | `string` | `''` | Name of the MemberJunction entity to search |
|
|
83
|
+
| `DisplayFields` | `EntityFieldInfo[]` | `[]` | Fields to display in the results grid. Defaults to fields marked as `DefaultInView`, `IsPrimaryKey`, `IsNameField`, or `IncludeInUserSearchAPI` |
|
|
84
|
+
| `SearchDebounceTime` | `number` | `300` | Debounce time in milliseconds for search input |
|
|
162
85
|
|
|
163
86
|
#### Outputs
|
|
164
87
|
|
|
165
88
|
| Event | Type | Description |
|
|
166
89
|
|-------|------|-------------|
|
|
167
|
-
| `OnRecordSelected` | `EventEmitter<BaseEntity>` | Emitted when a user selects a record from the
|
|
90
|
+
| `OnRecordSelected` | `EventEmitter<BaseEntity>` | Emitted when a user selects a record from the grid |
|
|
168
91
|
|
|
169
92
|
### FindRecordDialogComponent
|
|
170
93
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
#### Selector
|
|
174
|
-
`mj-find-record-dialog`
|
|
175
|
-
|
|
176
|
-
#### Inputs
|
|
94
|
+
Inherits all inputs from `FindRecordComponent`, plus:
|
|
177
95
|
|
|
178
96
|
| Property | Type | Default | Description |
|
|
179
97
|
|----------|------|---------|-------------|
|
|
180
|
-
| `
|
|
181
|
-
| `
|
|
182
|
-
| `
|
|
183
|
-
| `
|
|
184
|
-
| `
|
|
185
|
-
| `DialogVisible` | `boolean` | `false` | **Required.** Controls the visibility of the dialog |
|
|
186
|
-
| `SelectedRecord` | `BaseEntity \| null` | `null` | Optional. Currently selected record. Can be set to pre-select a record |
|
|
187
|
-
|
|
188
|
-
#### Outputs
|
|
98
|
+
| `DialogTitle` | `string` | `'Find Record'` | Title displayed in the dialog header |
|
|
99
|
+
| `DialogWidth` | `string` | `'700px'` | Width of the dialog |
|
|
100
|
+
| `DialogHeight` | `string` | `'450px'` | Height of the dialog |
|
|
101
|
+
| `DialogVisible` | `boolean` | `false` | Controls dialog visibility |
|
|
102
|
+
| `SelectedRecord` | `BaseEntity \| null` | `null` | Pre-selected record |
|
|
189
103
|
|
|
190
104
|
| Event | Type | Description |
|
|
191
105
|
|-------|------|-------------|
|
|
192
|
-
| `DialogClosed` | `EventEmitter<boolean>` |
|
|
193
|
-
| `OnRecordSelected` | `EventEmitter<BaseEntity>` | Emitted when a user selects a record from the search results |
|
|
106
|
+
| `DialogClosed` | `EventEmitter<boolean>` | `true` if OK was clicked, `false` if cancelled |
|
|
194
107
|
|
|
195
108
|
## Search Behavior
|
|
196
109
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
3. The search leverages MemberJunction's entity metadata to search across appropriate fields
|
|
202
|
-
4. Results are displayed in a Kendo UI grid with the specified or default fields
|
|
203
|
-
5. Users can select a record by clicking on a row in the grid
|
|
204
|
-
6. The selected record (as a `BaseEntity` instance) is emitted via the `OnRecordSelected` event
|
|
205
|
-
|
|
206
|
-
### Search Implementation Details
|
|
207
|
-
|
|
208
|
-
The component uses the following RunView configuration:
|
|
209
|
-
```typescript
|
|
210
|
-
{
|
|
211
|
-
EntityName: this.EntityName,
|
|
212
|
-
UserSearchString: searchTerm,
|
|
213
|
-
ResultType: 'entity_object' // Returns BaseEntity instances
|
|
214
|
-
}
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
## Styling
|
|
218
|
-
|
|
219
|
-
The component includes basic CSS styling with the following classes:
|
|
220
|
-
- `.find-textbox` - Styles the search input field
|
|
221
|
-
- `.find-button` - Styles the Find button
|
|
222
|
-
|
|
223
|
-
You can override these styles in your application's global styles or component-specific stylesheets.
|
|
110
|
+
1. User types in the search input; input is debounced (default 300ms)
|
|
111
|
+
2. A search executes via `RunView` with `UserSearchString` and `ResultType: 'entity_object'`
|
|
112
|
+
3. Results display in a Kendo UI grid with the configured display fields
|
|
113
|
+
4. Clicking a row emits the selected `BaseEntity` instance via `OnRecordSelected`
|
|
224
114
|
|
|
225
115
|
## Dependencies
|
|
226
116
|
|
|
227
|
-
|
|
228
|
-
-
|
|
229
|
-
-
|
|
230
|
-
- `@
|
|
231
|
-
- `@memberjunction/ng-container-directives`: ^2.43.0 - Angular container directives
|
|
232
|
-
- `@memberjunction/ng-shared`: ^2.43.0 - Shared Angular utilities
|
|
233
|
-
- `rxjs`: ^7.8.1 - Reactive programming support for debouncing and search handling
|
|
234
|
-
- `tslib`: ^2.3.0 - TypeScript runtime library
|
|
235
|
-
|
|
236
|
-
### Peer Dependencies (must be installed in your application)
|
|
237
|
-
- `@angular/common`: 18.0.2
|
|
238
|
-
- `@angular/core`: 18.0.2
|
|
239
|
-
- `@angular/forms`: 18.0.2
|
|
240
|
-
- `@angular/router`: 18.0.2
|
|
241
|
-
- `@progress/kendo-angular-grid`: 16.2.0
|
|
242
|
-
- `@progress/kendo-angular-buttons`: 16.2.0
|
|
243
|
-
- `@progress/kendo-angular-inputs`: 16.2.0
|
|
244
|
-
- `@progress/kendo-angular-dialog`: 16.2.0
|
|
245
|
-
- `@progress/kendo-angular-listbox`: 16.2.0
|
|
246
|
-
|
|
247
|
-
## Integration with MemberJunction
|
|
248
|
-
|
|
249
|
-
This package is designed to work seamlessly with the MemberJunction ecosystem:
|
|
250
|
-
|
|
251
|
-
1. **Metadata Integration**: Uses MemberJunction's Metadata class to retrieve entity information and field definitions
|
|
252
|
-
2. **Entity System**: Works with any entity registered in the MemberJunction metadata system
|
|
253
|
-
3. **RunView API**: Leverages the powerful RunView API for searching, which respects entity permissions and field-level security
|
|
254
|
-
4. **BaseEntity**: Returns actual BaseEntity instances, allowing full access to entity methods and properties
|
|
255
|
-
|
|
256
|
-
## Build and Development
|
|
257
|
-
|
|
258
|
-
This package is part of the MemberJunction monorepo. To build:
|
|
259
|
-
|
|
260
|
-
```bash
|
|
261
|
-
# From the package directory
|
|
262
|
-
npm run build
|
|
263
|
-
|
|
264
|
-
# Or from the monorepo root
|
|
265
|
-
turbo build --filter="@memberjunction/ng-find-record"
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
The package uses Angular's `ngc` compiler for building Angular libraries.
|
|
269
|
-
|
|
270
|
-
## Module Configuration
|
|
271
|
-
|
|
272
|
-
The package exports a `FindRecordModule` that includes both components. Import this module in your Angular application:
|
|
273
|
-
|
|
274
|
-
```typescript
|
|
275
|
-
import { FindRecordModule } from '@memberjunction/ng-find-record';
|
|
276
|
-
|
|
277
|
-
@NgModule({
|
|
278
|
-
imports: [
|
|
279
|
-
FindRecordModule,
|
|
280
|
-
// ... other imports
|
|
281
|
-
]
|
|
282
|
-
})
|
|
283
|
-
export class YourFeatureModule { }
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
## Advanced Usage
|
|
287
|
-
|
|
288
|
-
### Custom Field Selection
|
|
289
|
-
|
|
290
|
-
You can programmatically select which fields to display based on your requirements:
|
|
291
|
-
|
|
292
|
-
```typescript
|
|
293
|
-
// Display only specific fields
|
|
294
|
-
const entity = this.metadata.EntityByName('Products');
|
|
295
|
-
this.displayFields = entity.Fields.filter(f =>
|
|
296
|
-
['Name', 'SKU', 'Price', 'Category'].includes(f.Name)
|
|
297
|
-
);
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
### Pre-selecting Records
|
|
301
|
-
|
|
302
|
-
You can pre-select a record in the dialog component:
|
|
303
|
-
|
|
304
|
-
```typescript
|
|
305
|
-
// Load a record and pre-select it
|
|
306
|
-
const md = new Metadata();
|
|
307
|
-
const user = await md.GetEntityObject<UserEntity>('Users');
|
|
308
|
-
await user.Load(userId);
|
|
309
|
-
this.selectedRecord = user;
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
### Handling Selection Events
|
|
313
|
-
|
|
314
|
-
Process selected records with full type safety:
|
|
315
|
-
|
|
316
|
-
```typescript
|
|
317
|
-
onRecordSelected(record: BaseEntity) {
|
|
318
|
-
// Cast to specific entity type if needed
|
|
319
|
-
if (record.EntityInfo.Name === 'Users') {
|
|
320
|
-
const user = record as UserEntity;
|
|
321
|
-
console.log('Selected user email:', user.Email);
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
// Or use generic BaseEntity methods
|
|
325
|
-
console.log('Selected record ID:', record.Get('ID'));
|
|
326
|
-
console.log('Selected record name:', record.Get(record.EntityInfo.NameField));
|
|
327
|
-
}
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
## Error Handling
|
|
331
|
-
|
|
332
|
-
The component includes built-in error handling:
|
|
333
|
-
|
|
334
|
-
- Failed searches will log errors using MemberJunction's `LogError` function
|
|
335
|
-
- Loading states provide visual feedback during searches
|
|
336
|
-
- Empty search results display a user-friendly message
|
|
337
|
-
|
|
338
|
-
## Performance Considerations
|
|
339
|
-
|
|
340
|
-
- **Debouncing**: The default 300ms debounce prevents excessive API calls during typing
|
|
341
|
-
- **Entity Objects**: Using `ResultType: 'entity_object'` in RunView ensures efficient object creation
|
|
342
|
-
- **Grid Virtualization**: The Kendo Grid component provides built-in virtualization for large result sets
|
|
117
|
+
- [@memberjunction/core](../../MJCore/README.md) -- Metadata, RunView, BaseEntity
|
|
118
|
+
- [@memberjunction/core-entities](../../MJCoreEntities/README.md) -- Entity type definitions
|
|
119
|
+
- [@memberjunction/ng-shared](../shared/README.md) -- Shared Angular utilities
|
|
120
|
+
- `@progress/kendo-angular-grid` -- Grid display
|
|
343
121
|
|
|
344
|
-
##
|
|
122
|
+
## Related Packages
|
|
345
123
|
|
|
346
|
-
|
|
124
|
+
- [@memberjunction/ng-record-selector](../record-selector/README.md) -- Dual-listbox record selection
|
|
125
|
+
- [@memberjunction/ng-generic-dialog](../generic-dialog/README.md) -- Reusable dialog component
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.component.d.ts","sourceRoot":"","sources":["../../src/lib/dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAU,MAAM,eAAe,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;;AAGnE,
|
|
1
|
+
{"version":3,"file":"dialog.component.d.ts","sourceRoot":"","sources":["../../src/lib/dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAU,MAAM,eAAe,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;;AAGnE,qBAMa,yBAAyB;IAC3B,WAAW,EAAE,MAAM,CAAiB;IACpC,WAAW,EAAE,MAAM,CAAW;IAC9B,YAAY,EAAE,MAAM,CAAW;IAExC;;OAEG;IACM,cAAc,EAAE,UAAU,GAAG,IAAI,CAAQ;IAElD,IAAa,aAAa,IAAI,OAAO,CAEpC;IACD,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAK/B;IACD,OAAO,CAAC,cAAc,CAAkB;IACxC;;OAEG;IACO,YAAY,wBAA+B;IAGrD;;OAEG;IACM,UAAU,EAAE,MAAM,CAAM;IAEjC;;OAEG;IACM,aAAa,EAAE,eAAe,EAAE,CAAM;IAI9C;;OAEG;IACM,gBAAgB,oCAAkC;IAErD,QAAQ;IAKR,sBAAsB,CAAC,MAAM,EAAE,GAAG;IAKlC,IAAI;yCArDA,yBAAyB;2CAAzB,yBAAyB;CAyDrC"}
|
|
@@ -72,15 +72,15 @@ export class FindRecordDialogComponent {
|
|
|
72
72
|
this.DialogClosed.emit(true);
|
|
73
73
|
}
|
|
74
74
|
static ɵfac = function FindRecordDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FindRecordDialogComponent)(); };
|
|
75
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FindRecordDialogComponent, selectors: [["mj-find-record-dialog"]], inputs: { DialogTitle: "DialogTitle", DialogWidth: "DialogWidth", DialogHeight: "DialogHeight", SelectedRecord: "SelectedRecord", DialogVisible: "DialogVisible", EntityName: "EntityName", DisplayFields: "DisplayFields" }, outputs: { DialogClosed: "DialogClosed", OnRecordSelected: "OnRecordSelected" }, decls: 1, vars: 1, consts: [[3, "width", "height", "title"], [3, "close", "width", "height", "title"], [3, "OnRecordSelected", "EntityName", "DisplayFields"], ["kendoButton", "", "themeColor", "primary", 3, "click"], ["kendoButton", "", 3, "click"]], template: function FindRecordDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
76
|
-
i0.ɵɵ
|
|
75
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FindRecordDialogComponent, selectors: [["mj-find-record-dialog"]], inputs: { DialogTitle: "DialogTitle", DialogWidth: "DialogWidth", DialogHeight: "DialogHeight", SelectedRecord: "SelectedRecord", DialogVisible: "DialogVisible", EntityName: "EntityName", DisplayFields: "DisplayFields" }, outputs: { DialogClosed: "DialogClosed", OnRecordSelected: "OnRecordSelected" }, standalone: false, decls: 1, vars: 1, consts: [[3, "width", "height", "title"], [3, "close", "width", "height", "title"], [3, "OnRecordSelected", "EntityName", "DisplayFields"], ["kendoButton", "", "themeColor", "primary", 3, "click"], ["kendoButton", "", 3, "click"]], template: function FindRecordDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
76
|
+
i0.ɵɵconditionalCreate(0, FindRecordDialogComponent_Conditional_0_Template, 7, 5, "kendo-dialog", 0);
|
|
77
77
|
} if (rf & 2) {
|
|
78
78
|
i0.ɵɵconditional(ctx.DialogVisible ? 0 : -1);
|
|
79
|
-
} }, dependencies: [i1.DialogComponent, i1.DialogActionsComponent, i2.ButtonComponent, i3.FindRecordComponent] });
|
|
79
|
+
} }, dependencies: [i1.DialogComponent, i1.DialogActionsComponent, i2.ButtonComponent, i3.FindRecordComponent], encapsulation: 2 });
|
|
80
80
|
}
|
|
81
81
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FindRecordDialogComponent, [{
|
|
82
82
|
type: Component,
|
|
83
|
-
args: [{ selector: 'mj-find-record-dialog', template: "@if (DialogVisible) {\n <kendo-dialog\n [width]=\"DialogWidth\"\n [height]=\"DialogHeight\"\n [title]=\"DialogTitle\" \n (close)=\"OnCancel()\"\n >\n <mj-find-record\n [EntityName]=\"EntityName\"\n [DisplayFields]=\"DisplayFields\"\n (OnRecordSelected)=\"BubbleOnRecordSelected($event)\"\n >\n </mj-find-record>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"OnOK()\" themeColor=\"primary\">OK</button>\n <button kendoButton (click)=\"OnCancel()\">Cancel</button>\n </kendo-dialog-actions> \n </kendo-dialog> \n}" }]
|
|
83
|
+
args: [{ standalone: false, selector: 'mj-find-record-dialog', template: "@if (DialogVisible) {\n <kendo-dialog\n [width]=\"DialogWidth\"\n [height]=\"DialogHeight\"\n [title]=\"DialogTitle\" \n (close)=\"OnCancel()\"\n >\n <mj-find-record\n [EntityName]=\"EntityName\"\n [DisplayFields]=\"DisplayFields\"\n (OnRecordSelected)=\"BubbleOnRecordSelected($event)\"\n >\n </mj-find-record>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"OnOK()\" themeColor=\"primary\">OK</button>\n <button kendoButton (click)=\"OnCancel()\">Cancel</button>\n </kendo-dialog-actions> \n </kendo-dialog> \n}" }]
|
|
84
84
|
}], null, { DialogTitle: [{
|
|
85
85
|
type: Input
|
|
86
86
|
}], DialogWidth: [{
|
|
@@ -100,5 +100,5 @@ export class FindRecordDialogComponent {
|
|
|
100
100
|
}], OnRecordSelected: [{
|
|
101
101
|
type: Output
|
|
102
102
|
}] }); })();
|
|
103
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FindRecordDialogComponent, { className: "FindRecordDialogComponent", filePath: "src/lib/dialog.component.ts", lineNumber:
|
|
103
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FindRecordDialogComponent, { className: "FindRecordDialogComponent", filePath: "src/lib/dialog.component.ts", lineNumber: 12 }); })();
|
|
104
104
|
//# sourceMappingURL=dialog.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.component.js","sourceRoot":"","sources":["../../src/lib/dialog.component.ts","../../src/lib/dialog.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAG,MAAM,eAAe,CAAC;;;;;;;ICCpE,uCAKC;IADG,mMAAS,iBAAU,KAAC;IAEpB,yCAIC;IADG,iOAAoB,qCAA8B,KAAC;IAEvD,iBAAiB;IAEb,AADJ,4CAAsB,gBACwC;IAAtC,6LAAS,aAAM,KAAC;IAAsB,kBAAE;IAAA,iBAAS;IACrE,iCAAyC;IAArB,6LAAS,iBAAU,KAAC;IAAC,sBAAM;IAEvD,AADI,AADmD,iBAAS,EACrC,EACZ;;;IAbX,AADA,AADA,0CAAqB,+BACE,6BACF;IAIjB,cAAyB;IACzB,AADA,8CAAyB,uCACM;;
|
|
1
|
+
{"version":3,"file":"dialog.component.js","sourceRoot":"","sources":["../../src/lib/dialog.component.ts","../../src/lib/dialog.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAG,MAAM,eAAe,CAAC;;;;;;;ICCpE,uCAKC;IADG,mMAAS,iBAAU,KAAC;IAEpB,yCAIC;IADG,iOAAoB,qCAA8B,KAAC;IAEvD,iBAAiB;IAEb,AADJ,4CAAsB,gBACwC;IAAtC,6LAAS,aAAM,KAAC;IAAsB,kBAAE;IAAA,iBAAS;IACrE,iCAAyC;IAArB,6LAAS,iBAAU,KAAC;IAAC,sBAAM;IAEvD,AADI,AADmD,iBAAS,EACrC,EACZ;;;IAbX,AADA,AADA,0CAAqB,+BACE,6BACF;IAIjB,cAAyB;IACzB,AADA,8CAAyB,uCACM;;ADE3C,MAAM,OAAO,yBAAyB;IAC3B,WAAW,GAAW,aAAa,CAAC;IACpC,WAAW,GAAW,OAAO,CAAC;IAC9B,YAAY,GAAW,OAAO,CAAC;IAExC;;OAEG;IACM,cAAc,GAAsB,IAAI,CAAC;IAElD,IAAa,aAAa;QACxB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IACD,IAAI,aAAa,CAAC,KAAc;QAC9B,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc,IAAI,KAAK,EAAE,CAAC;YAC3C,+BAA+B;QACjC,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IACO,cAAc,GAAY,KAAK,CAAC;IACxC;;OAEG;IACO,YAAY,GAAG,IAAI,YAAY,EAAW,CAAC;IAErD,gFAAgF;IAChF;;OAEG;IACM,UAAU,GAAW,EAAE,CAAC;IAEjC;;OAEG;IACM,aAAa,GAAsB,EAAE,CAAC,CAAC,gCAAgC;IAI/E;;OAEG;IACM,gBAAgB,GAAG,IAAI,YAAY,EAAc,CAAC;IAErD,QAAQ;QACb,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAEM,sBAAsB,CAAC,MAAW;QACvC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAEM,IAAI;QACT,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;mHAxDU,yBAAyB;6DAAzB,yBAAyB;YCXtC,oGAAqB;;YAArB,4CAkBC;;;iFDPY,yBAAyB;cANrC,SAAS;6BACI,KAAK,YACP,uBAAuB;;kBAKhC,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBAKL,KAAK;;kBAEL,KAAK;;kBAaL,MAAM;;kBAMN,KAAK;;kBAKL,KAAK;;kBAOL,MAAM;;kFAzCI,yBAAyB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-record.component.d.ts","sourceRoot":"","sources":["../../src/lib/find-record.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAU,SAAS,EAAE,MAAM,EAAU,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,eAAe,EAA2C,MAAM,sBAAsB,CAAC;;AAI5G,
|
|
1
|
+
{"version":3,"file":"find-record.component.d.ts","sourceRoot":"","sources":["../../src/lib/find-record.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAU,SAAS,EAAE,MAAM,EAAU,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,eAAe,EAA2C,MAAM,sBAAsB,CAAC;;AAI5G,qBAMa,mBAAoB,YAAW,MAAM,EAAE,SAAS;IAC3D;;OAEG;IACM,UAAU,EAAE,MAAM,CAAM;IAEjC;;OAEG;IACa,aAAa,EAAE,eAAe,EAAE,CAAM;IAEtD;;OAEG;IACa,kBAAkB,EAAE,MAAM,CAAO;IAGjD;;OAEG;IACO,gBAAgB,oCAAkC;IAErD,UAAU,EAAE,MAAM,CAAM;IACxB,OAAO,EAAE,GAAG,EAAE,CAAM;IAEpB,OAAO,UAAS;IAChB,YAAY,EAAE,OAAO,CAAS;IACrC,OAAO,CAAC,UAAU,CAAyB;IAE3C,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,kBAAkB,CAAM;IAGhC,QAAQ;IAsCR,WAAW;IAQX,MAAM;IAIN,kBAAkB,CAAC,IAAI,EAAE,MAAM;IAKxB,iBAAiB,CAAC,KAAK,EAAE,GAAG;cAMnB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;yCA9FxD,mBAAmB;2CAAnB,mBAAmB;CA+G/B"}
|
|
@@ -3,37 +3,36 @@ import { LogError, Metadata, RunView } from '@memberjunction/core';
|
|
|
3
3
|
import { Subject } from 'rxjs';
|
|
4
4
|
import { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/
|
|
7
|
-
import * as i2 from "@angular
|
|
8
|
-
import * as i3 from "@progress/kendo-angular-
|
|
9
|
-
import * as i4 from "@progress/kendo-angular-
|
|
10
|
-
import * as i5 from "@progress/kendo-angular-inputs";
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
import * as i2 from "@progress/kendo-angular-grid";
|
|
8
|
+
import * as i3 from "@progress/kendo-angular-buttons";
|
|
9
|
+
import * as i4 from "@progress/kendo-angular-inputs";
|
|
11
10
|
const _c0 = () => ({ mode: "single" });
|
|
12
|
-
function
|
|
11
|
+
function FindRecordComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
13
12
|
i0.ɵɵelementStart(0, "div");
|
|
14
13
|
i0.ɵɵtext(1, "Searching...");
|
|
15
14
|
i0.ɵɵelementEnd();
|
|
16
15
|
} }
|
|
17
|
-
function
|
|
18
|
-
i0.ɵɵelement(0, "kendo-grid-column",
|
|
16
|
+
function FindRecordComponent_Conditional_5_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
17
|
+
i0.ɵɵelement(0, "kendo-grid-column", 3);
|
|
19
18
|
} if (rf & 2) {
|
|
20
19
|
const field_r3 = ctx.$implicit;
|
|
21
20
|
i0.ɵɵproperty("field", field_r3.Name)("title", field_r3.DisplayNameOrName);
|
|
22
21
|
} }
|
|
23
|
-
function
|
|
22
|
+
function FindRecordComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
24
23
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
25
|
-
i0.ɵɵelementStart(0, "div")(1, "kendo-grid",
|
|
26
|
-
i0.ɵɵlistener("selectionChange", function
|
|
27
|
-
i0.ɵɵ
|
|
24
|
+
i0.ɵɵelementStart(0, "div")(1, "kendo-grid", 2);
|
|
25
|
+
i0.ɵɵlistener("selectionChange", function FindRecordComponent_Conditional_5_Template_kendo_grid_selectionChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSelectionChange($event)); });
|
|
26
|
+
i0.ɵɵrepeaterCreate(2, FindRecordComponent_Conditional_5_For_3_Template, 1, 2, "kendo-grid-column", 3, i0.ɵɵrepeaterTrackByIdentity);
|
|
28
27
|
i0.ɵɵelementEnd()();
|
|
29
28
|
} if (rf & 2) {
|
|
30
29
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
31
30
|
i0.ɵɵadvance();
|
|
32
|
-
i0.ɵɵproperty("data", ctx_r1.records)("height", 280)("selectable", i0.ɵɵpureFunction0(
|
|
31
|
+
i0.ɵɵproperty("data", ctx_r1.records)("height", 280)("selectable", i0.ɵɵpureFunction0(3, _c0));
|
|
33
32
|
i0.ɵɵadvance();
|
|
34
|
-
i0.ɵɵ
|
|
33
|
+
i0.ɵɵrepeater(ctx_r1.DisplayFields);
|
|
35
34
|
} }
|
|
36
|
-
function
|
|
35
|
+
function FindRecordComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
37
36
|
i0.ɵɵelementStart(0, "div");
|
|
38
37
|
i0.ɵɵtext(1, "No records found.");
|
|
39
38
|
i0.ɵɵelementEnd();
|
|
@@ -129,7 +128,7 @@ export class FindRecordComponent {
|
|
|
129
128
|
}
|
|
130
129
|
}
|
|
131
130
|
static ɵfac = function FindRecordComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FindRecordComponent)(); };
|
|
132
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FindRecordComponent, selectors: [["mj-find-record"]], inputs: { EntityName: "EntityName", DisplayFields: "DisplayFields", SearchDebounceTime: "SearchDebounceTime" }, outputs: { OnRecordSelected: "OnRecordSelected" }, decls: 7, vars: 4, consts: [["type", "text", "placeholder", "Start typing to search...", 1, "find-textbox", 3, "ngModelChange", "ngModel"], ["kendoButton", "", 1, "find-button", 3, "click"], [
|
|
131
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FindRecordComponent, selectors: [["mj-find-record"]], inputs: { EntityName: "EntityName", DisplayFields: "DisplayFields", SearchDebounceTime: "SearchDebounceTime" }, outputs: { OnRecordSelected: "OnRecordSelected" }, standalone: false, decls: 7, vars: 4, consts: [["type", "text", "placeholder", "Start typing to search...", 1, "find-textbox", 3, "ngModelChange", "ngModel"], ["kendoButton", "", 1, "find-button", 3, "click"], [3, "selectionChange", "data", "height", "selectable"], [3, "field", "title"]], template: function FindRecordComponent_Template(rf, ctx) { if (rf & 1) {
|
|
133
132
|
i0.ɵɵelementStart(0, "div")(1, "kendo-textbox", 0);
|
|
134
133
|
i0.ɵɵtwoWayListener("ngModelChange", function FindRecordComponent_Template_kendo_textbox_ngModelChange_1_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.searchTerm, $event) || (ctx.searchTerm = $event); return $event; });
|
|
135
134
|
i0.ɵɵlistener("ngModelChange", function FindRecordComponent_Template_kendo_textbox_ngModelChange_1_listener($event) { return ctx.onSearchTermChange($event); });
|
|
@@ -138,22 +137,24 @@ export class FindRecordComponent {
|
|
|
138
137
|
i0.ɵɵlistener("click", function FindRecordComponent_Template_button_click_2_listener() { return ctx.onFind(); });
|
|
139
138
|
i0.ɵɵtext(3, "Find");
|
|
140
139
|
i0.ɵɵelementEnd();
|
|
141
|
-
i0.ɵɵ
|
|
140
|
+
i0.ɵɵconditionalCreate(4, FindRecordComponent_Conditional_4_Template, 2, 0, "div");
|
|
141
|
+
i0.ɵɵconditionalCreate(5, FindRecordComponent_Conditional_5_Template, 4, 4, "div");
|
|
142
|
+
i0.ɵɵconditionalCreate(6, FindRecordComponent_Conditional_6_Template, 2, 0, "div");
|
|
142
143
|
i0.ɵɵelementEnd();
|
|
143
144
|
} if (rf & 2) {
|
|
144
145
|
i0.ɵɵadvance();
|
|
145
146
|
i0.ɵɵtwoWayProperty("ngModel", ctx.searchTerm);
|
|
146
147
|
i0.ɵɵadvance(3);
|
|
147
|
-
i0.ɵɵ
|
|
148
|
+
i0.ɵɵconditional(ctx.loading ? 4 : -1);
|
|
148
149
|
i0.ɵɵadvance();
|
|
149
|
-
i0.ɵɵ
|
|
150
|
+
i0.ɵɵconditional(!ctx.loading && ctx.records.length > 0 ? 5 : -1);
|
|
150
151
|
i0.ɵɵadvance();
|
|
151
|
-
i0.ɵɵ
|
|
152
|
-
} }, dependencies: [i1.
|
|
152
|
+
i0.ɵɵconditional(!ctx.loading && ctx.records.length === 0 && ctx.searchHasRun ? 6 : -1);
|
|
153
|
+
} }, dependencies: [i1.NgControlStatus, i1.NgModel, i2.GridComponent, i2.ColumnComponent, i3.ButtonComponent, i4.TextBoxComponent], styles: [".list-box[_ngcontent-%COMP%] {\n width: 320px;\n height: 300px;\n}\n\n.k-listbox-actions-right[_ngcontent-%COMP%] {\n margin-left: 10px;\n}\n\n.item-icon[_ngcontent-%COMP%] {\n font-size: 16px;\n width: 25px;\n margin-right: 5px;\n}\n\n.find-textbox[_ngcontent-%COMP%] {\n width: 500px;\n margin-right: 10px;\n margin-bottom: 10px;\n}\n\n.find-button[_ngcontent-%COMP%] {\n width: 75px;\n margin-bottom: 10px;\n}"] });
|
|
153
154
|
}
|
|
154
155
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FindRecordComponent, [{
|
|
155
156
|
type: Component,
|
|
156
|
-
args: [{ selector: 'mj-find-record', template: "<div>\n
|
|
157
|
+
args: [{ standalone: false, selector: 'mj-find-record', template: "<div>\n <kendo-textbox\n class=\"find-textbox\"\n type=\"text\"\n placeholder=\"Start typing to search...\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"onSearchTermChange($event)\"\n >\n </kendo-textbox>\n <button class=\"find-button\" kendoButton (click)=\"onFind()\">Find</button>\n\n @if (loading) {\n <div>Searching...</div>\n }\n @if (!loading && records.length > 0) {\n <div>\n <kendo-grid\n [data]=\"records\"\n [height]=\"280\"\n [selectable]=\"{ mode: 'single' }\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n @for (field of DisplayFields; track field) {\n <kendo-grid-column [field]=\"field.Name\" [title]=\"field.DisplayNameOrName\"></kendo-grid-column>\n }\n </kendo-grid>\n </div>\n }\n @if (!loading && records.length === 0 && searchHasRun) {\n <div>No records found.</div>\n }\n</div>\n", styles: [".list-box {\n width: 320px;\n height: 300px;\n}\n\n.k-listbox-actions-right {\n margin-left: 10px;\n}\n\n.item-icon {\n font-size: 16px;\n width: 25px;\n margin-right: 5px;\n}\n\n.find-textbox {\n width: 500px;\n margin-right: 10px;\n margin-bottom: 10px;\n}\n\n.find-button {\n width: 75px;\n margin-bottom: 10px;\n}"] }]
|
|
157
158
|
}], null, { EntityName: [{
|
|
158
159
|
type: Input
|
|
159
160
|
}], DisplayFields: [{
|
|
@@ -163,5 +164,5 @@ export class FindRecordComponent {
|
|
|
163
164
|
}], OnRecordSelected: [{
|
|
164
165
|
type: Output
|
|
165
166
|
}] }); })();
|
|
166
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FindRecordComponent, { className: "FindRecordComponent", filePath: "src/lib/find-record.component.ts", lineNumber:
|
|
167
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FindRecordComponent, { className: "FindRecordComponent", filePath: "src/lib/find-record.component.ts", lineNumber: 12 }); })();
|
|
167
168
|
//# sourceMappingURL=find-record.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-record.component.js","sourceRoot":"","sources":["../../src/lib/find-record.component.ts","../../src/lib/find-record.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAG,YAAY,EAAG,KAAK,EAAqB,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAA2C,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC
|
|
1
|
+
{"version":3,"file":"find-record.component.js","sourceRoot":"","sources":["../../src/lib/find-record.component.ts","../../src/lib/find-record.component.html"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-find-record",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "MemberJunction: Angular Component to allow a user to find a single record in any entity",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -15,28 +15,28 @@
|
|
|
15
15
|
"author": "",
|
|
16
16
|
"license": "ISC",
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@angular/compiler": "
|
|
19
|
-
"@angular/compiler-cli": "
|
|
18
|
+
"@angular/compiler": "21.1.3",
|
|
19
|
+
"@angular/compiler-cli": "21.1.3"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"@angular/common": "
|
|
23
|
-
"@angular/core": "
|
|
24
|
-
"@angular/forms": "
|
|
25
|
-
"@angular/router": "
|
|
26
|
-
"@progress/kendo-angular-grid": "
|
|
27
|
-
"@progress/kendo-angular-buttons": "
|
|
28
|
-
"@progress/kendo-angular-inputs": "
|
|
29
|
-
"@progress/kendo-angular-dialog": "
|
|
30
|
-
"@progress/kendo-angular-listbox": "
|
|
22
|
+
"@angular/common": "21.1.3",
|
|
23
|
+
"@angular/core": "21.1.3",
|
|
24
|
+
"@angular/forms": "21.1.3",
|
|
25
|
+
"@angular/router": "21.1.3",
|
|
26
|
+
"@progress/kendo-angular-grid": "22.0.1",
|
|
27
|
+
"@progress/kendo-angular-buttons": "22.0.1",
|
|
28
|
+
"@progress/kendo-angular-inputs": "22.0.1",
|
|
29
|
+
"@progress/kendo-angular-dialog": "22.0.1",
|
|
30
|
+
"@progress/kendo-angular-listbox": "22.0.1"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@memberjunction/core-entities": "
|
|
34
|
-
"@memberjunction/global": "
|
|
35
|
-
"@memberjunction/core": "
|
|
36
|
-
"@memberjunction/ng-container-directives": "
|
|
37
|
-
"@memberjunction/ng-shared": "
|
|
38
|
-
"rxjs": "^7.8.
|
|
39
|
-
"tslib": "^2.
|
|
33
|
+
"@memberjunction/core-entities": "4.1.0",
|
|
34
|
+
"@memberjunction/global": "4.1.0",
|
|
35
|
+
"@memberjunction/core": "4.1.0",
|
|
36
|
+
"@memberjunction/ng-container-directives": "4.1.0",
|
|
37
|
+
"@memberjunction/ng-shared": "4.1.0",
|
|
38
|
+
"rxjs": "^7.8.2",
|
|
39
|
+
"tslib": "^2.8.1"
|
|
40
40
|
},
|
|
41
41
|
"sideEffects": false,
|
|
42
42
|
"repository": {
|