@memberjunction/ng-simple-record-list 2.32.2 → 2.33.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 +108 -0
- package/dist/lib/simple-record-list/simple-record-list.component.d.ts +51 -1
- package/dist/lib/simple-record-list/simple-record-list.component.d.ts.map +1 -1
- package/dist/lib/simple-record-list/simple-record-list.component.js +171 -24
- package/dist/lib/simple-record-list/simple-record-list.component.js.map +1 -1
- package/package.json +7 -7
package/README.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# @memberjunction/ng-simple-record-list
|
|
2
|
+
|
|
3
|
+
A lightweight, reusable Angular component for displaying, editing, creating, and deleting records in any MemberJunction entity.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- Simple, streamlined UI for entity data
|
|
8
|
+
- Configurable columns display
|
|
9
|
+
- Automatic column detection from entity metadata
|
|
10
|
+
- Support for creating, editing, and deleting records
|
|
11
|
+
- Custom actions with dynamic icons and tooltips
|
|
12
|
+
- Confirmation dialogs for delete and custom actions
|
|
13
|
+
- Responsive design with loading indicators
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install @memberjunction/ng-simple-record-list
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
Import the module in your application:
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
import { SimpleRecordListModule } from '@memberjunction/ng-simple-record-list';
|
|
27
|
+
|
|
28
|
+
@NgModule({
|
|
29
|
+
imports: [
|
|
30
|
+
// ...
|
|
31
|
+
SimpleRecordListModule
|
|
32
|
+
]
|
|
33
|
+
})
|
|
34
|
+
export class YourModule { }
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Basic implementation example:
|
|
38
|
+
|
|
39
|
+
```html
|
|
40
|
+
<mj-simple-record-list
|
|
41
|
+
EntityName="Users"
|
|
42
|
+
SortBy="Name"
|
|
43
|
+
[Columns]="['Name', 'Email', 'IsActive']"
|
|
44
|
+
(RecordSelected)="handleRecordSelected($event)"
|
|
45
|
+
></mj-simple-record-list>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Input Properties
|
|
49
|
+
|
|
50
|
+
| Property | Type | Default | Description |
|
|
51
|
+
|----------|------|---------|-------------|
|
|
52
|
+
| EntityName | string | '' | Name of the entity to display records for |
|
|
53
|
+
| Columns | string[] | [] | List of columns to display (auto-detected if empty) |
|
|
54
|
+
| SortBy | string | '' | Name of the column to sort by |
|
|
55
|
+
| AllowDelete | boolean | true | Whether to show delete button |
|
|
56
|
+
| AllowNew | boolean | true | Whether to show new button |
|
|
57
|
+
| AllowEdit | boolean | true | Whether to show edit button |
|
|
58
|
+
| AllowCustomAction | boolean | false | Whether to show custom action button |
|
|
59
|
+
| CustomActionIcon | string | '' | Font Awesome class for custom action icon |
|
|
60
|
+
| CustomActionIconFunction | Function | null | Function to determine custom action icon based on record |
|
|
61
|
+
| CustomActionTooltip | string | '' | Tooltip text for custom action |
|
|
62
|
+
| CustomActionTooltipFunction | Function | null | Function to determine tooltip based on record |
|
|
63
|
+
| CustomActionDialogTitle | string | 'Confirm Action' | Title for custom action confirmation dialog |
|
|
64
|
+
| CustomActionDialogMessage | string | 'Are you sure...' | Message for custom action confirmation dialog |
|
|
65
|
+
| CustomActionDialogInfo | string | '' | Additional info for custom action dialog |
|
|
66
|
+
| EditSectionName | string | 'details' | Section name for entity form dialog |
|
|
67
|
+
|
|
68
|
+
## Output Events
|
|
69
|
+
|
|
70
|
+
| Event | Type | Description |
|
|
71
|
+
|-------|------|-------------|
|
|
72
|
+
| RecordSelected | EventEmitter<BaseEntity> | Emitted when a record is selected |
|
|
73
|
+
| RecordEdited | EventEmitter<BaseEntity> | Emitted when a record is edited |
|
|
74
|
+
| RecordCreated | EventEmitter<BaseEntity> | Emitted when a record is created |
|
|
75
|
+
| CustomActionClicked | EventEmitter<BaseEntity> | Emitted when custom action is clicked |
|
|
76
|
+
| CustomActionConfirmed | EventEmitter<BaseEntity> | Emitted when custom action is confirmed |
|
|
77
|
+
|
|
78
|
+
## Custom Actions Example
|
|
79
|
+
|
|
80
|
+
```html
|
|
81
|
+
<mj-simple-record-list
|
|
82
|
+
EntityName="Users"
|
|
83
|
+
[Columns]="['Name', 'Email', 'IsActive']"
|
|
84
|
+
[AllowDelete]="false"
|
|
85
|
+
[AllowCustomAction]="true"
|
|
86
|
+
[CustomActionIconFunction]="getUserToggleIcon"
|
|
87
|
+
[CustomActionTooltipFunction]="getUserToggleTooltip"
|
|
88
|
+
[CustomActionDialogTitle]="'Toggle User Activation'"
|
|
89
|
+
[CustomActionDialogMessage]="'Are you sure you want to toggle activation for this user?'"
|
|
90
|
+
[CustomActionDialogInfo]="'Active users can log in to the system. Inactive users cannot log in.'"
|
|
91
|
+
(RecordSelected)="selectUser($event)"
|
|
92
|
+
(CustomActionConfirmed)="toggleUserActivation($event)"
|
|
93
|
+
></mj-simple-record-list>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Example of icon and tooltip functions:
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
public getUserToggleIcon(record: BaseEntity): string {
|
|
100
|
+
const user = record as UserEntity;
|
|
101
|
+
return user.IsActive ? 'fa-user-lock' : 'fa-user-check';
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
public getUserToggleTooltip(record: BaseEntity): string {
|
|
105
|
+
const user = record as UserEntity;
|
|
106
|
+
return user.IsActive ? 'Deactivate user' : 'Activate user';
|
|
107
|
+
}
|
|
108
|
+
```
|
|
@@ -28,6 +28,42 @@ export declare class SimpleRecordListComponent implements OnInit {
|
|
|
28
28
|
* If true, the edit button will be shown for each record.
|
|
29
29
|
*/
|
|
30
30
|
AllowEdit: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* If true, a custom action button will be shown for each record.
|
|
33
|
+
*/
|
|
34
|
+
AllowCustomAction: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* The CSS class for the custom action button icon (e.g. 'fa-user-lock')
|
|
37
|
+
*/
|
|
38
|
+
CustomActionIcon: string;
|
|
39
|
+
/**
|
|
40
|
+
* A function that returns the appropriate icon based on the record
|
|
41
|
+
* Signature: (record: BaseEntity) => string
|
|
42
|
+
* If provided, overrides CustomActionIcon
|
|
43
|
+
*/
|
|
44
|
+
CustomActionIconFunction: ((record: BaseEntity) => string) | null;
|
|
45
|
+
/**
|
|
46
|
+
* Tooltip text for the custom action button
|
|
47
|
+
*/
|
|
48
|
+
CustomActionTooltip: string;
|
|
49
|
+
/**
|
|
50
|
+
* A function that returns the appropriate tooltip text based on the record
|
|
51
|
+
* Signature: (record: BaseEntity) => string
|
|
52
|
+
* If provided, overrides CustomActionTooltip
|
|
53
|
+
*/
|
|
54
|
+
CustomActionTooltipFunction: ((record: BaseEntity) => string) | null;
|
|
55
|
+
/**
|
|
56
|
+
* Title for the custom action confirmation dialog
|
|
57
|
+
*/
|
|
58
|
+
CustomActionDialogTitle: string;
|
|
59
|
+
/**
|
|
60
|
+
* Message for the custom action confirmation dialog
|
|
61
|
+
*/
|
|
62
|
+
CustomActionDialogMessage: string;
|
|
63
|
+
/**
|
|
64
|
+
* Optional additional information for the custom action confirmation dialog
|
|
65
|
+
*/
|
|
66
|
+
CustomActionDialogInfo: string;
|
|
31
67
|
/**
|
|
32
68
|
* If AllowEdit or AllowNew is true, this is the section name to display for editing a new or existing record.
|
|
33
69
|
*/
|
|
@@ -35,6 +71,8 @@ export declare class SimpleRecordListComponent implements OnInit {
|
|
|
35
71
|
RecordSelected: EventEmitter<BaseEntity<unknown>>;
|
|
36
72
|
RecordEdited: EventEmitter<BaseEntity<unknown>>;
|
|
37
73
|
RecordCreated: EventEmitter<BaseEntity<unknown>>;
|
|
74
|
+
CustomActionClicked: EventEmitter<BaseEntity<unknown>>;
|
|
75
|
+
CustomActionConfirmed: EventEmitter<BaseEntity<unknown>>;
|
|
38
76
|
isLoading: boolean;
|
|
39
77
|
records: BaseEntity[];
|
|
40
78
|
constructor(router: Router);
|
|
@@ -42,8 +80,20 @@ export declare class SimpleRecordListComponent implements OnInit {
|
|
|
42
80
|
Refresh(): Promise<void>;
|
|
43
81
|
selectRecord(event: MouseEvent | undefined, r: BaseEntity): void;
|
|
44
82
|
deleteRecordDialogVisible: boolean;
|
|
83
|
+
customActionDialogVisible: boolean;
|
|
45
84
|
deleteRecordItem: BaseEntity | null;
|
|
85
|
+
customActionItem: BaseEntity | undefined;
|
|
46
86
|
deleteRecord(event: MouseEvent, r: BaseEntity): Promise<void>;
|
|
87
|
+
performCustomAction(event: MouseEvent, r: BaseEntity): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Gets the custom action icon for a record, using the function if provided, otherwise the static icon
|
|
90
|
+
*/
|
|
91
|
+
getCustomActionIcon(record: BaseEntity): string;
|
|
92
|
+
/**
|
|
93
|
+
* Gets the custom action tooltip for a record, using the function if provided, otherwise the static tooltip
|
|
94
|
+
*/
|
|
95
|
+
getCustomActionTooltip(record: BaseEntity): string;
|
|
96
|
+
closeCustomActionDialog(result: 'Yes' | 'No'): Promise<void>;
|
|
47
97
|
closeDeleteDialog(result: 'Yes' | 'No'): Promise<void>;
|
|
48
98
|
editOrNewRecord: BaseEntity;
|
|
49
99
|
showEditOrNewRecordForm: boolean;
|
|
@@ -53,6 +103,6 @@ export declare class SimpleRecordListComponent implements OnInit {
|
|
|
53
103
|
onEditOrNewRecordFormClosed(result: 'Save' | 'Cancel'): Promise<void>;
|
|
54
104
|
getRecordName(r: BaseEntity): string;
|
|
55
105
|
static ɵfac: i0.ɵɵFactoryDeclaration<SimpleRecordListComponent, never>;
|
|
56
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SimpleRecordListComponent, "mj-simple-record-list", never, { "EntityName": { "alias": "EntityName"; "required": false; }; "Columns": { "alias": "Columns"; "required": false; }; "SortBy": { "alias": "SortBy"; "required": false; }; "AllowDelete": { "alias": "AllowDelete"; "required": false; }; "AllowNew": { "alias": "AllowNew"; "required": false; }; "AllowEdit": { "alias": "AllowEdit"; "required": false; }; "EditSectionName": { "alias": "EditSectionName"; "required": false; }; }, { "RecordSelected": "RecordSelected"; "RecordEdited": "RecordEdited"; "RecordCreated": "RecordCreated"; }, never, never, false, never>;
|
|
106
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SimpleRecordListComponent, "mj-simple-record-list", never, { "EntityName": { "alias": "EntityName"; "required": false; }; "Columns": { "alias": "Columns"; "required": false; }; "SortBy": { "alias": "SortBy"; "required": false; }; "AllowDelete": { "alias": "AllowDelete"; "required": false; }; "AllowNew": { "alias": "AllowNew"; "required": false; }; "AllowEdit": { "alias": "AllowEdit"; "required": false; }; "AllowCustomAction": { "alias": "AllowCustomAction"; "required": false; }; "CustomActionIcon": { "alias": "CustomActionIcon"; "required": false; }; "CustomActionIconFunction": { "alias": "CustomActionIconFunction"; "required": false; }; "CustomActionTooltip": { "alias": "CustomActionTooltip"; "required": false; }; "CustomActionTooltipFunction": { "alias": "CustomActionTooltipFunction"; "required": false; }; "CustomActionDialogTitle": { "alias": "CustomActionDialogTitle"; "required": false; }; "CustomActionDialogMessage": { "alias": "CustomActionDialogMessage"; "required": false; }; "CustomActionDialogInfo": { "alias": "CustomActionDialogInfo"; "required": false; }; "EditSectionName": { "alias": "EditSectionName"; "required": false; }; }, { "RecordSelected": "RecordSelected"; "RecordEdited": "RecordEdited"; "RecordCreated": "RecordCreated"; "CustomActionClicked": "CustomActionClicked"; "CustomActionConfirmed": "CustomActionConfirmed"; }, never, never, false, never>;
|
|
57
107
|
}
|
|
58
108
|
//# sourceMappingURL=simple-record-list.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-record-list.component.d.ts","sourceRoot":"","sources":["../../../src/lib/simple-record-list/simple-record-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAS,YAAY,EAAU,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"simple-record-list.component.d.ts","sourceRoot":"","sources":["../../../src/lib/simple-record-list/simple-record-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAS,YAAY,EAAU,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;;AAIzC,qBAKa,yBAA0B,YAAW,MAAM;IA2E1C,OAAO,CAAC,MAAM;IA1E1B;;OAEG;IACM,UAAU,EAAE,MAAM,CAAM;IACjC;;OAEG;IACM,OAAO,EAAE,MAAM,EAAE,CAAM;IAChC;;OAEG;IACM,MAAM,EAAE,MAAM,CAAM;IAC7B;;OAEG;IACM,WAAW,EAAE,OAAO,CAAQ;IACrC;;OAEG;IACM,QAAQ,EAAE,OAAO,CAAQ;IAClC;;OAEG;IACM,SAAS,EAAE,OAAO,CAAQ;IACnC;;OAEG;IACM,iBAAiB,EAAE,OAAO,CAAS;IAC5C;;OAEG;IACM,gBAAgB,EAAE,MAAM,CAAM;IACvC;;;;OAIG;IACM,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,CAAC,GAAG,IAAI,CAAQ;IAClF;;OAEG;IACM,mBAAmB,EAAE,MAAM,CAAM;IAC1C;;;;OAIG;IACM,2BAA2B,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,CAAC,GAAG,IAAI,CAAQ;IACrF;;OAEG;IACM,uBAAuB,EAAE,MAAM,CAAoB;IAC5D;;OAEG;IACM,yBAAyB,EAAE,MAAM,CAAmD;IAC7F;;OAEG;IACM,sBAAsB,EAAE,MAAM,CAAM;IAC7C;;OAEG;IACM,eAAe,EAAE,MAAM,CAAa;IAEnC,cAAc,oCAAkC;IAChD,YAAY,oCAAkC;IAC9C,aAAa,oCAAkC;IAC/C,mBAAmB,oCAAkC;IACrD,qBAAqB,oCAAkC;IAE1D,SAAS,EAAE,OAAO,CAAS;IAC3B,OAAO,EAAE,UAAU,EAAE,CAAM;gBAEd,MAAM,EAAE,MAAM;IAGlC,QAAQ,IAAI,IAAI;IAIV,OAAO;IAoCN,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,CAAC,EAAE,UAAU;IAOzD,yBAAyB,EAAE,OAAO,CAAS;IAC3C,yBAAyB,EAAE,OAAO,CAAS;IAC3C,gBAAgB,EAAG,UAAU,GAAG,IAAI,CAAC;IACrC,gBAAgB,EAAG,UAAU,GAAG,SAAS,CAAC;IAEpC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU;IAQ7C,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU;IAWjE;;OAEG;IACI,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAOtD;;OAEG;IACI,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAO5C,uBAAuB,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI;IAS5C,iBAAiB,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI;IAe5C,eAAe,EAAG,UAAU,CAAC;IAC7B,uBAAuB,EAAE,OAAO,CAAS;IACzC,UAAU,EAAE,KAAK,GAAG,MAAM,CAAS;IAC7B,eAAe;IAWf,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU;IAQ3C,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAsB3D,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM;yCA7OhC,yBAAyB;2CAAzB,yBAAyB;CAkQrC"}
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { Component, Input, EventEmitter, Output } from '@angular/core';
|
|
11
11
|
import { Metadata, RunView } from '@memberjunction/core';
|
|
12
|
-
import {
|
|
12
|
+
import { MJNotificationService } from '@memberjunction/ng-notifications';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
import * as i1 from "@angular/router";
|
|
15
15
|
import * as i2 from "@angular/common";
|
|
@@ -42,42 +42,55 @@ function SimpleRecordListComponent_Conditional_2_th_5_Template(rf, ctx) { if (rf
|
|
|
42
42
|
} }
|
|
43
43
|
function SimpleRecordListComponent_Conditional_2_tr_7_td_1_Conditional_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
44
44
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
45
|
-
i0.ɵɵelementStart(0, "span",
|
|
45
|
+
i0.ɵɵelementStart(0, "span", 16);
|
|
46
46
|
i0.ɵɵlistener("click", function SimpleRecordListComponent_Conditional_2_tr_7_td_1_Conditional_3_Conditional_1_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r6); const r_r5 = i0.ɵɵnextContext(3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.editRecord($event, r_r5)); });
|
|
47
47
|
i0.ɵɵelementEnd();
|
|
48
48
|
} }
|
|
49
49
|
function SimpleRecordListComponent_Conditional_2_tr_7_td_1_Conditional_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
50
50
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
51
|
-
i0.ɵɵelementStart(0, "span",
|
|
52
|
-
i0.ɵɵlistener("click", function SimpleRecordListComponent_Conditional_2_tr_7_td_1_Conditional_3_Conditional_2_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r7); const r_r5 = i0.ɵɵnextContext(3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.
|
|
51
|
+
i0.ɵɵelementStart(0, "span", 17);
|
|
52
|
+
i0.ɵɵlistener("click", function SimpleRecordListComponent_Conditional_2_tr_7_td_1_Conditional_3_Conditional_2_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r7); const r_r5 = i0.ɵɵnextContext(3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.performCustomAction($event, r_r5)); });
|
|
53
|
+
i0.ɵɵelementEnd();
|
|
54
|
+
} if (rf & 2) {
|
|
55
|
+
const r_r5 = i0.ɵɵnextContext(3).$implicit;
|
|
56
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
57
|
+
i0.ɵɵclassMapInterpolate1("fa-solid ", ctx_r1.getCustomActionIcon(r_r5), " icon");
|
|
58
|
+
i0.ɵɵpropertyInterpolate("title", ctx_r1.getCustomActionTooltip(r_r5));
|
|
59
|
+
} }
|
|
60
|
+
function SimpleRecordListComponent_Conditional_2_tr_7_td_1_Conditional_3_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
61
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
62
|
+
i0.ɵɵelementStart(0, "span", 18);
|
|
63
|
+
i0.ɵɵlistener("click", function SimpleRecordListComponent_Conditional_2_tr_7_td_1_Conditional_3_Conditional_3_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r8); const r_r5 = i0.ɵɵnextContext(3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.deleteRecord($event, r_r5)); });
|
|
53
64
|
i0.ɵɵelementEnd();
|
|
54
65
|
} }
|
|
55
66
|
function SimpleRecordListComponent_Conditional_2_tr_7_td_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
56
67
|
i0.ɵɵelementStart(0, "span");
|
|
57
|
-
i0.ɵɵtemplate(1, SimpleRecordListComponent_Conditional_2_tr_7_td_1_Conditional_3_Conditional_1_Template, 1, 0, "span", 13)(2, SimpleRecordListComponent_Conditional_2_tr_7_td_1_Conditional_3_Conditional_2_Template, 1,
|
|
68
|
+
i0.ɵɵtemplate(1, SimpleRecordListComponent_Conditional_2_tr_7_td_1_Conditional_3_Conditional_1_Template, 1, 0, "span", 13)(2, SimpleRecordListComponent_Conditional_2_tr_7_td_1_Conditional_3_Conditional_2_Template, 1, 4, "span", 14)(3, SimpleRecordListComponent_Conditional_2_tr_7_td_1_Conditional_3_Conditional_3_Template, 1, 0, "span", 15);
|
|
58
69
|
i0.ɵɵelementEnd();
|
|
59
70
|
} if (rf & 2) {
|
|
60
71
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
61
72
|
i0.ɵɵadvance();
|
|
62
73
|
i0.ɵɵconditional(ctx_r1.AllowEdit ? 1 : -1);
|
|
63
74
|
i0.ɵɵadvance();
|
|
64
|
-
i0.ɵɵconditional(ctx_r1.
|
|
75
|
+
i0.ɵɵconditional(ctx_r1.AllowCustomAction ? 2 : -1);
|
|
76
|
+
i0.ɵɵadvance();
|
|
77
|
+
i0.ɵɵconditional(ctx_r1.AllowDelete ? 3 : -1);
|
|
65
78
|
} }
|
|
66
79
|
function SimpleRecordListComponent_Conditional_2_tr_7_td_1_Template(rf, ctx) { if (rf & 1) {
|
|
67
80
|
i0.ɵɵelementStart(0, "td")(1, "span");
|
|
68
81
|
i0.ɵɵtext(2);
|
|
69
82
|
i0.ɵɵelementEnd();
|
|
70
|
-
i0.ɵɵtemplate(3, SimpleRecordListComponent_Conditional_2_tr_7_td_1_Conditional_3_Template,
|
|
83
|
+
i0.ɵɵtemplate(3, SimpleRecordListComponent_Conditional_2_tr_7_td_1_Conditional_3_Template, 4, 3, "span");
|
|
71
84
|
i0.ɵɵelementEnd();
|
|
72
85
|
} if (rf & 2) {
|
|
73
|
-
const
|
|
74
|
-
const
|
|
86
|
+
const c_r9 = ctx.$implicit;
|
|
87
|
+
const i_r10 = ctx.index;
|
|
75
88
|
const r_r5 = i0.ɵɵnextContext().$implicit;
|
|
76
89
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
77
90
|
i0.ɵɵadvance(2);
|
|
78
|
-
i0.ɵɵtextInterpolate(r_r5.Get(
|
|
91
|
+
i0.ɵɵtextInterpolate(r_r5.Get(c_r9));
|
|
79
92
|
i0.ɵɵadvance();
|
|
80
|
-
i0.ɵɵconditional(
|
|
93
|
+
i0.ɵɵconditional(i_r10 === 0 && (ctx_r1.AllowDelete || ctx_r1.AllowEdit) ? 3 : -1);
|
|
81
94
|
} }
|
|
82
95
|
function SimpleRecordListComponent_Conditional_2_tr_7_Template(rf, ctx) { if (rf & 1) {
|
|
83
96
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
@@ -109,27 +122,27 @@ function SimpleRecordListComponent_Conditional_2_Template(rf, ctx) { if (rf & 1)
|
|
|
109
122
|
i0.ɵɵproperty("ngForOf", ctx_r1.records);
|
|
110
123
|
} }
|
|
111
124
|
function SimpleRecordListComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
112
|
-
const
|
|
113
|
-
i0.ɵɵelementStart(0, "mj-entity-form-dialog",
|
|
114
|
-
i0.ɵɵlistener("DialogClosed", function SimpleRecordListComponent_Conditional_3_Template_mj_entity_form_dialog_DialogClosed_0_listener($event) { i0.ɵɵrestoreView(
|
|
125
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
126
|
+
i0.ɵɵelementStart(0, "mj-entity-form-dialog", 19, 0);
|
|
127
|
+
i0.ɵɵlistener("DialogClosed", function SimpleRecordListComponent_Conditional_3_Template_mj_entity_form_dialog_DialogClosed_0_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onEditOrNewRecordFormClosed($event)); });
|
|
115
128
|
i0.ɵɵelementEnd();
|
|
116
129
|
} if (rf & 2) {
|
|
117
130
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
118
131
|
i0.ɵɵproperty("Record", ctx_r1.editOrNewRecord)("SectionName", ctx_r1.EditSectionName)("Visible", ctx_r1.showEditOrNewRecordForm)("AutoRevertOnCancel", true)("HandleSave", true)("Width", 550)("Height", 450);
|
|
119
132
|
} }
|
|
120
133
|
function SimpleRecordListComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
121
|
-
const
|
|
122
|
-
i0.ɵɵelementStart(0, "kendo-dialog",
|
|
123
|
-
i0.ɵɵlistener("close", function SimpleRecordListComponent_Conditional_4_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(
|
|
134
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
135
|
+
i0.ɵɵelementStart(0, "kendo-dialog", 20);
|
|
136
|
+
i0.ɵɵlistener("close", function SimpleRecordListComponent_Conditional_4_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeDeleteDialog("No")); });
|
|
124
137
|
i0.ɵɵelementStart(1, "div");
|
|
125
138
|
i0.ɵɵtext(2);
|
|
126
139
|
i0.ɵɵelementEnd();
|
|
127
|
-
i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button",
|
|
128
|
-
i0.ɵɵlistener("click", function SimpleRecordListComponent_Conditional_4_Template_button_click_4_listener() { i0.ɵɵrestoreView(
|
|
140
|
+
i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button", 21);
|
|
141
|
+
i0.ɵɵlistener("click", function SimpleRecordListComponent_Conditional_4_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeDeleteDialog("Yes")); });
|
|
129
142
|
i0.ɵɵtext(5, "Yes");
|
|
130
143
|
i0.ɵɵelementEnd();
|
|
131
144
|
i0.ɵɵelementStart(6, "button", 10);
|
|
132
|
-
i0.ɵɵlistener("click", function SimpleRecordListComponent_Conditional_4_Template_button_click_6_listener() { i0.ɵɵrestoreView(
|
|
145
|
+
i0.ɵɵlistener("click", function SimpleRecordListComponent_Conditional_4_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeDeleteDialog("No")); });
|
|
133
146
|
i0.ɵɵtext(7, "No");
|
|
134
147
|
i0.ɵɵelementEnd()()();
|
|
135
148
|
} if (rf & 2) {
|
|
@@ -138,6 +151,39 @@ function SimpleRecordListComponent_Conditional_4_Template(rf, ctx) { if (rf & 1)
|
|
|
138
151
|
i0.ɵɵadvance(2);
|
|
139
152
|
i0.ɵɵtextInterpolate1(" Are you sure you want to delete '", ctx_r1.getRecordName(ctx_r1.deleteRecordItem), "'? ");
|
|
140
153
|
} }
|
|
154
|
+
function SimpleRecordListComponent_Conditional_5_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
155
|
+
i0.ɵɵelementStart(0, "p");
|
|
156
|
+
i0.ɵɵtext(1);
|
|
157
|
+
i0.ɵɵelementEnd();
|
|
158
|
+
} if (rf & 2) {
|
|
159
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
160
|
+
i0.ɵɵadvance();
|
|
161
|
+
i0.ɵɵtextInterpolate(ctx_r1.CustomActionDialogInfo);
|
|
162
|
+
} }
|
|
163
|
+
function SimpleRecordListComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
164
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
165
|
+
i0.ɵɵelementStart(0, "kendo-dialog", 20);
|
|
166
|
+
i0.ɵɵlistener("close", function SimpleRecordListComponent_Conditional_5_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeCustomActionDialog("No")); });
|
|
167
|
+
i0.ɵɵelementStart(1, "div");
|
|
168
|
+
i0.ɵɵtext(2);
|
|
169
|
+
i0.ɵɵtemplate(3, SimpleRecordListComponent_Conditional_5_Conditional_3_Template, 2, 1, "p");
|
|
170
|
+
i0.ɵɵelementEnd();
|
|
171
|
+
i0.ɵɵelementStart(4, "kendo-dialog-actions")(5, "button", 21);
|
|
172
|
+
i0.ɵɵlistener("click", function SimpleRecordListComponent_Conditional_5_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeCustomActionDialog("Yes")); });
|
|
173
|
+
i0.ɵɵtext(6, "Yes");
|
|
174
|
+
i0.ɵɵelementEnd();
|
|
175
|
+
i0.ɵɵelementStart(7, "button", 10);
|
|
176
|
+
i0.ɵɵlistener("click", function SimpleRecordListComponent_Conditional_5_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeCustomActionDialog("No")); });
|
|
177
|
+
i0.ɵɵtext(8, "No");
|
|
178
|
+
i0.ɵɵelementEnd()()();
|
|
179
|
+
} if (rf & 2) {
|
|
180
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
181
|
+
i0.ɵɵproperty("title", ctx_r1.CustomActionDialogTitle)("width", 450)("height", 200);
|
|
182
|
+
i0.ɵɵadvance(2);
|
|
183
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.CustomActionDialogMessage.replace("{{recordName}}", ctx_r1.getRecordName(ctx_r1.customActionItem)), " ");
|
|
184
|
+
i0.ɵɵadvance();
|
|
185
|
+
i0.ɵɵconditional(ctx_r1.CustomActionDialogInfo ? 3 : -1);
|
|
186
|
+
} }
|
|
141
187
|
export class SimpleRecordListComponent {
|
|
142
188
|
constructor(router) {
|
|
143
189
|
this.router = router;
|
|
@@ -165,6 +211,42 @@ export class SimpleRecordListComponent {
|
|
|
165
211
|
* If true, the edit button will be shown for each record.
|
|
166
212
|
*/
|
|
167
213
|
this.AllowEdit = true;
|
|
214
|
+
/**
|
|
215
|
+
* If true, a custom action button will be shown for each record.
|
|
216
|
+
*/
|
|
217
|
+
this.AllowCustomAction = false;
|
|
218
|
+
/**
|
|
219
|
+
* The CSS class for the custom action button icon (e.g. 'fa-user-lock')
|
|
220
|
+
*/
|
|
221
|
+
this.CustomActionIcon = '';
|
|
222
|
+
/**
|
|
223
|
+
* A function that returns the appropriate icon based on the record
|
|
224
|
+
* Signature: (record: BaseEntity) => string
|
|
225
|
+
* If provided, overrides CustomActionIcon
|
|
226
|
+
*/
|
|
227
|
+
this.CustomActionIconFunction = null;
|
|
228
|
+
/**
|
|
229
|
+
* Tooltip text for the custom action button
|
|
230
|
+
*/
|
|
231
|
+
this.CustomActionTooltip = '';
|
|
232
|
+
/**
|
|
233
|
+
* A function that returns the appropriate tooltip text based on the record
|
|
234
|
+
* Signature: (record: BaseEntity) => string
|
|
235
|
+
* If provided, overrides CustomActionTooltip
|
|
236
|
+
*/
|
|
237
|
+
this.CustomActionTooltipFunction = null;
|
|
238
|
+
/**
|
|
239
|
+
* Title for the custom action confirmation dialog
|
|
240
|
+
*/
|
|
241
|
+
this.CustomActionDialogTitle = 'Confirm Action';
|
|
242
|
+
/**
|
|
243
|
+
* Message for the custom action confirmation dialog
|
|
244
|
+
*/
|
|
245
|
+
this.CustomActionDialogMessage = 'Are you sure you want to perform this action?';
|
|
246
|
+
/**
|
|
247
|
+
* Optional additional information for the custom action confirmation dialog
|
|
248
|
+
*/
|
|
249
|
+
this.CustomActionDialogInfo = '';
|
|
168
250
|
/**
|
|
169
251
|
* If AllowEdit or AllowNew is true, this is the section name to display for editing a new or existing record.
|
|
170
252
|
*/
|
|
@@ -172,9 +254,12 @@ export class SimpleRecordListComponent {
|
|
|
172
254
|
this.RecordSelected = new EventEmitter();
|
|
173
255
|
this.RecordEdited = new EventEmitter();
|
|
174
256
|
this.RecordCreated = new EventEmitter();
|
|
257
|
+
this.CustomActionClicked = new EventEmitter();
|
|
258
|
+
this.CustomActionConfirmed = new EventEmitter();
|
|
175
259
|
this.isLoading = false;
|
|
176
260
|
this.records = [];
|
|
177
261
|
this.deleteRecordDialogVisible = false;
|
|
262
|
+
this.customActionDialogVisible = false;
|
|
178
263
|
this.showEditOrNewRecordForm = false;
|
|
179
264
|
this.recordMode = 'new';
|
|
180
265
|
}
|
|
@@ -231,6 +316,45 @@ export class SimpleRecordListComponent {
|
|
|
231
316
|
event.stopPropagation(); // prevent row from getting click
|
|
232
317
|
});
|
|
233
318
|
}
|
|
319
|
+
performCustomAction(event, r) {
|
|
320
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
321
|
+
// first emit the clicked event to allow the parent to react
|
|
322
|
+
this.CustomActionClicked.emit(r);
|
|
323
|
+
// confirm with the user
|
|
324
|
+
this.customActionItem = r;
|
|
325
|
+
this.customActionDialogVisible = true;
|
|
326
|
+
if (event)
|
|
327
|
+
event.stopPropagation(); // prevent row from getting click
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Gets the custom action icon for a record, using the function if provided, otherwise the static icon
|
|
332
|
+
*/
|
|
333
|
+
getCustomActionIcon(record) {
|
|
334
|
+
if (this.CustomActionIconFunction) {
|
|
335
|
+
return this.CustomActionIconFunction(record);
|
|
336
|
+
}
|
|
337
|
+
return this.CustomActionIcon;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Gets the custom action tooltip for a record, using the function if provided, otherwise the static tooltip
|
|
341
|
+
*/
|
|
342
|
+
getCustomActionTooltip(record) {
|
|
343
|
+
if (this.CustomActionTooltipFunction) {
|
|
344
|
+
return this.CustomActionTooltipFunction(record);
|
|
345
|
+
}
|
|
346
|
+
return this.CustomActionTooltip;
|
|
347
|
+
}
|
|
348
|
+
closeCustomActionDialog(result) {
|
|
349
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
350
|
+
this.customActionDialogVisible = false;
|
|
351
|
+
if (result === 'Yes') {
|
|
352
|
+
// emit the event so the parent can handle the action
|
|
353
|
+
this.CustomActionConfirmed.emit(this.customActionItem);
|
|
354
|
+
}
|
|
355
|
+
this.customActionItem = undefined;
|
|
356
|
+
});
|
|
357
|
+
}
|
|
234
358
|
closeDeleteDialog(result) {
|
|
235
359
|
return __awaiter(this, void 0, void 0, function* () {
|
|
236
360
|
// if the user confirms, delete the record
|
|
@@ -238,7 +362,8 @@ export class SimpleRecordListComponent {
|
|
|
238
362
|
if (result === 'Yes') {
|
|
239
363
|
if (!(yield this.deleteRecordItem.Delete())) {
|
|
240
364
|
// show an error message
|
|
241
|
-
|
|
365
|
+
const errorMessage = this.deleteRecordItem.LatestResult.Message;
|
|
366
|
+
MJNotificationService.Instance.CreateSimpleNotification('Error deleting record: ' + errorMessage, 'error', 3000);
|
|
242
367
|
}
|
|
243
368
|
else
|
|
244
369
|
this.Refresh(); // refresh the list
|
|
@@ -309,11 +434,11 @@ export class SimpleRecordListComponent {
|
|
|
309
434
|
}
|
|
310
435
|
}
|
|
311
436
|
SimpleRecordListComponent.ɵfac = function SimpleRecordListComponent_Factory(t) { return new (t || SimpleRecordListComponent)(i0.ɵɵdirectiveInject(i1.Router)); };
|
|
312
|
-
SimpleRecordListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SimpleRecordListComponent, selectors: [["mj-simple-record-list"]], inputs: { EntityName: "EntityName", Columns: "Columns", SortBy: "SortBy", AllowDelete: "AllowDelete", AllowNew: "AllowNew", AllowEdit: "AllowEdit", EditSectionName: "EditSectionName" }, outputs: { RecordSelected: "RecordSelected", RecordEdited: "RecordEdited", RecordCreated: "RecordCreated" }, decls:
|
|
437
|
+
SimpleRecordListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SimpleRecordListComponent, selectors: [["mj-simple-record-list"]], inputs: { EntityName: "EntityName", Columns: "Columns", SortBy: "SortBy", AllowDelete: "AllowDelete", AllowNew: "AllowNew", AllowEdit: "AllowEdit", AllowCustomAction: "AllowCustomAction", CustomActionIcon: "CustomActionIcon", CustomActionIconFunction: "CustomActionIconFunction", CustomActionTooltip: "CustomActionTooltip", CustomActionTooltipFunction: "CustomActionTooltipFunction", CustomActionDialogTitle: "CustomActionDialogTitle", CustomActionDialogMessage: "CustomActionDialogMessage", CustomActionDialogInfo: "CustomActionDialogInfo", EditSectionName: "EditSectionName" }, outputs: { RecordSelected: "RecordSelected", RecordEdited: "RecordEdited", RecordCreated: "RecordCreated", CustomActionClicked: "CustomActionClicked", CustomActionConfirmed: "CustomActionConfirmed" }, decls: 6, vars: 4, consts: [["entityForm", ""], ["mjFillContainer", "", 1, "wrapper", "scrollable"], [1, "vertical-full-width"], ["Mode", "section", 3, "Record", "SectionName", "Visible", "AutoRevertOnCancel", "HandleSave", "Width", "Height"], [3, "title", "width", "height"], ["kendoButton", ""], [1, "grid"], [1, "sticky-header"], [4, "ngFor", "ngForOf"], [3, "click", 4, "ngFor", "ngForOf"], ["kendoButton", "", 3, "click"], [1, "fa-solid", "fa-plus"], [3, "click"], ["title", "Edit", 1, "fa-solid", "fa-pen-to-square", "icon"], [3, "class", "title"], ["title", "Delete", 1, "fa-solid", "fa-trash-can", "icon"], ["title", "Edit", 1, "fa-solid", "fa-pen-to-square", "icon", 3, "click"], [3, "click", "title"], ["title", "Delete", 1, "fa-solid", "fa-trash-can", "icon", 3, "click"], ["Mode", "section", 3, "DialogClosed", "Record", "SectionName", "Visible", "AutoRevertOnCancel", "HandleSave", "Width", "Height"], [3, "close", "title", "width", "height"], ["kendoButton", "", "themeColor", "primary", 3, "click"]], template: function SimpleRecordListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
313
438
|
i0.ɵɵelementStart(0, "div", 1);
|
|
314
439
|
i0.ɵɵtemplate(1, SimpleRecordListComponent_Conditional_1_Template, 2, 0, "div")(2, SimpleRecordListComponent_Conditional_2_Template, 8, 3, "div", 2);
|
|
315
440
|
i0.ɵɵelementEnd();
|
|
316
|
-
i0.ɵɵtemplate(3, SimpleRecordListComponent_Conditional_3_Template, 2, 7, "mj-entity-form-dialog", 3)(4, SimpleRecordListComponent_Conditional_4_Template, 8, 4, "kendo-dialog", 4);
|
|
441
|
+
i0.ɵɵtemplate(3, SimpleRecordListComponent_Conditional_3_Template, 2, 7, "mj-entity-form-dialog", 3)(4, SimpleRecordListComponent_Conditional_4_Template, 8, 4, "kendo-dialog", 4)(5, SimpleRecordListComponent_Conditional_5_Template, 9, 5, "kendo-dialog", 4);
|
|
317
442
|
} if (rf & 2) {
|
|
318
443
|
i0.ɵɵadvance();
|
|
319
444
|
i0.ɵɵconditional(ctx.isLoading ? 1 : 2);
|
|
@@ -321,10 +446,12 @@ SimpleRecordListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: S
|
|
|
321
446
|
i0.ɵɵconditional(ctx.AllowNew || ctx.AllowEdit ? 3 : -1);
|
|
322
447
|
i0.ɵɵadvance();
|
|
323
448
|
i0.ɵɵconditional(ctx.deleteRecordDialogVisible && ctx.AllowDelete ? 4 : -1);
|
|
449
|
+
i0.ɵɵadvance();
|
|
450
|
+
i0.ɵɵconditional(ctx.customActionDialogVisible && ctx.AllowCustomAction ? 5 : -1);
|
|
324
451
|
} }, dependencies: [i2.NgForOf, i3.DialogComponent, i3.DialogActionsComponent, i4.FillContainer, i5.ButtonComponent, i6.EntityFormDialogComponent, i7.LoaderComponent], styles: ["button[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-top: 5px;\n width: 125px;\n}\n\n.wrapper[_ngcontent-%COMP%] {\n padding-right: 10px;\n}\n\n\n\ntable[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-top: 10px;\n margin-right: 5px;\n border-collapse: collapse; \n\n width: 100%;\n}\n \ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background-color: #f2f2f2; \n\n color: black; \n\n font-weight: bold; \n\n text-align: left;\n}\n\n\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%], table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n height: 36px; \n\n padding: 0 8px; \n\n}\n\n\n\ntable[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child {\n display: flex; \n\n justify-content: space-between; \n\n align-items: center; \n\n padding-right: 8px; \n\n}\n\n\n\ntd[_ngcontent-%COMP%]:first-child span[_ngcontent-%COMP%]:first-child {\n border: none; \n\n}\n\n\n\ntd[_ngcontent-%COMP%]:first-child span[_ngcontent-%COMP%]:last-child {\n border: none; \n\n}\n\n\n\ntd[_ngcontent-%COMP%]:first-child .icon[_ngcontent-%COMP%] {\n margin-left: 10px; \n\n cursor: pointer; \n\n}\n\ntable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\ntable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background-color: #e7f4ff; \n\n}\n\n.sticky-header[_ngcontent-%COMP%] {\n position: sticky;\n top: 0;\n}\n\n.scrollable[_ngcontent-%COMP%] {\n display: flex;\n overflow-y: scroll;\n max-height: 95%;\n}\n\n.vertical-full-width[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n width: 100%;\n}"] });
|
|
325
452
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SimpleRecordListComponent, [{
|
|
326
453
|
type: Component,
|
|
327
|
-
args: [{ selector: 'mj-simple-record-list', template: "<div mjFillContainer class=\"wrapper scrollable\">\n @if(isLoading) {\n <div>\n <kendo-loader></kendo-loader>\n </div>\n }\n @else {\n <div class=\"vertical-full-width\">\n @if(AllowNew) {\n <button kendoButton (click)=\"createNewRecord()\"><span class=\"fa-solid fa-plus\"></span> New</button>\n }\n <table class=\"grid\">\n <thead class=\"sticky-header\">\n <tr>\n <th *ngFor=\"let c of Columns\">\n {{ c }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let r of records\" (click)=\"selectRecord(undefined, r)\">\n <td *ngFor=\"let c of Columns; let i = index\">\n <span>{{ r.Get(c) }}</span>\n @if(i === 0 && (AllowDelete || AllowEdit)) {\n <span>\n @if (AllowEdit) {\n <span class=\"fa-solid fa-pen-to-square icon\" (click)=\"editRecord($event, r)\"></span>\n }\n @if (AllowDelete) {\n <span class=\"fa-solid fa-trash-can icon\" (click)=\"deleteRecord($event, r)\"></span>\n }\n </span> \n }\n </td>\n </tr>\n </tbody>\n </table> \n </div> \n }\n</div>\n \n@if(AllowNew || AllowEdit) {\n<mj-entity-form-dialog #entityForm \n [Record]=\"editOrNewRecord\" \n [SectionName]=\"EditSectionName\"\n Mode=\"section\" \n [Visible]=\"showEditOrNewRecordForm\" \n [AutoRevertOnCancel]=\"true\"\n [HandleSave]=\"true\"\n [Width]=\"550\"\n [Height]=\"450\"\n (DialogClosed)=\"onEditOrNewRecordFormClosed($event)\">\n</mj-entity-form-dialog>\n}\n\n@if(deleteRecordDialogVisible && AllowDelete) {\n<kendo-dialog\n [title]=\"'Delete ' + EntityName + '?'\" \n [width]=\"450\"\n [height]=\"200\"\n (close)=\"closeDeleteDialog('No')\" >\n <div>\n Are you sure you want to delete '{{getRecordName(deleteRecordItem!)}}'?\n </div>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeDeleteDialog('Yes')\" themeColor=\"primary\">Yes</button>\n <button kendoButton (click)=\"closeDeleteDialog('No')\">No</button>\n </kendo-dialog-actions>\n</kendo-dialog>\n}\n", styles: ["button {\n margin-left: 5px;\n margin-top: 5px;\n width: 125px;\n}\n\n.wrapper {\n padding-right: 10px;\n}\n\n/* Style for the whole table */\ntable {\n margin-left: 5px;\n margin-top: 10px;\n margin-right: 5px;\n border-collapse: collapse; /* Ensures border collapse for a cleaner look */\n width: 100%;\n}\n \ntable th {\n background-color: #f2f2f2; /* Light gray background for headers */\n color: black; /* Black text color for headers */\n font-weight: bold; /* Bold font weight for headers */\n text-align: left;\n}\n\n/* Style for all table cells */\ntable th, table td {\n height: 36px; /* Fixed height for all rows */\n padding: 0 8px; /* Add some padding inside cells */\n}\n\n/* Style for the first column cells */\ntable td:first-child {\n display: flex; /* Make the cell a flex container */\n justify-content: space-between; /* Space out the text and icons */\n align-items: center; /* Center items vertically */\n padding-right: 8px; /* Ensure there is some padding on the right */\n}\n\n/* Style for the text span within the first column */\ntd:first-child span:first-child {\n border: none; /* Ensures no border is applied to the span */\n}\n\n/* Style for the icons container span within the first column */\ntd:first-child span:last-child {\n border: none; /* Ensures no border is applied to the span */\n}\n\n/* Style for the icons within the first column */\ntd:first-child .icon {\n margin-left: 10px; /* Space between icons if needed */\n cursor: pointer; /* Change cursor to pointer on hover */\n}\n\ntable tr {\n cursor: pointer;\n}\n\ntable tr:hover {\n background-color: #e7f4ff; /* Light blue for even rows */\n}\n\n.sticky-header {\n position: sticky;\n top: 0;\n}\n\n.scrollable {\n display: flex;\n overflow-y: scroll;\n max-height: 95%;\n}\n\n.vertical-full-width {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n "] }]
|
|
454
|
+
args: [{ selector: 'mj-simple-record-list', template: "<div mjFillContainer class=\"wrapper scrollable\">\n @if(isLoading) {\n <div>\n <kendo-loader></kendo-loader>\n </div>\n }\n @else {\n <div class=\"vertical-full-width\">\n @if(AllowNew) {\n <button kendoButton (click)=\"createNewRecord()\"><span class=\"fa-solid fa-plus\"></span> New</button>\n }\n <table class=\"grid\">\n <thead class=\"sticky-header\">\n <tr>\n <th *ngFor=\"let c of Columns\">\n {{ c }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let r of records\" (click)=\"selectRecord(undefined, r)\">\n <td *ngFor=\"let c of Columns; let i = index\">\n <span>{{ r.Get(c) }}</span>\n @if(i === 0 && (AllowDelete || AllowEdit)) {\n <span>\n @if (AllowEdit) {\n <span class=\"fa-solid fa-pen-to-square icon\" (click)=\"editRecord($event, r)\" title=\"Edit\"></span>\n }\n @if (AllowCustomAction) {\n <span \n class=\"fa-solid {{getCustomActionIcon(r)}} icon\" \n (click)=\"performCustomAction($event, r)\" \n title=\"{{getCustomActionTooltip(r)}}\"\n ></span>\n }\n @if (AllowDelete) {\n <span class=\"fa-solid fa-trash-can icon\" (click)=\"deleteRecord($event, r)\" title=\"Delete\"></span>\n }\n </span> \n }\n </td>\n </tr>\n </tbody>\n </table> \n </div> \n }\n</div>\n \n@if(AllowNew || AllowEdit) {\n<mj-entity-form-dialog #entityForm \n [Record]=\"editOrNewRecord\" \n [SectionName]=\"EditSectionName\"\n Mode=\"section\" \n [Visible]=\"showEditOrNewRecordForm\" \n [AutoRevertOnCancel]=\"true\"\n [HandleSave]=\"true\"\n [Width]=\"550\"\n [Height]=\"450\"\n (DialogClosed)=\"onEditOrNewRecordFormClosed($event)\">\n</mj-entity-form-dialog>\n}\n\n@if(deleteRecordDialogVisible && AllowDelete) {\n<kendo-dialog\n [title]=\"'Delete ' + EntityName + '?'\" \n [width]=\"450\"\n [height]=\"200\"\n (close)=\"closeDeleteDialog('No')\" >\n <div>\n Are you sure you want to delete '{{getRecordName(deleteRecordItem!)}}'?\n </div>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeDeleteDialog('Yes')\" themeColor=\"primary\">Yes</button>\n <button kendoButton (click)=\"closeDeleteDialog('No')\">No</button>\n </kendo-dialog-actions>\n</kendo-dialog>\n}\n\n@if(customActionDialogVisible && AllowCustomAction) {\n<kendo-dialog\n [title]=\"CustomActionDialogTitle\" \n [width]=\"450\"\n [height]=\"200\"\n (close)=\"closeCustomActionDialog('No')\" >\n <div>\n {{ CustomActionDialogMessage.replace('{{recordName}}', getRecordName(customActionItem!)) }}\n @if(CustomActionDialogInfo) {\n <p>{{ CustomActionDialogInfo }}</p>\n }\n </div>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeCustomActionDialog('Yes')\" themeColor=\"primary\">Yes</button>\n <button kendoButton (click)=\"closeCustomActionDialog('No')\">No</button>\n </kendo-dialog-actions>\n</kendo-dialog>\n}\n", styles: ["button {\n margin-left: 5px;\n margin-top: 5px;\n width: 125px;\n}\n\n.wrapper {\n padding-right: 10px;\n}\n\n/* Style for the whole table */\ntable {\n margin-left: 5px;\n margin-top: 10px;\n margin-right: 5px;\n border-collapse: collapse; /* Ensures border collapse for a cleaner look */\n width: 100%;\n}\n \ntable th {\n background-color: #f2f2f2; /* Light gray background for headers */\n color: black; /* Black text color for headers */\n font-weight: bold; /* Bold font weight for headers */\n text-align: left;\n}\n\n/* Style for all table cells */\ntable th, table td {\n height: 36px; /* Fixed height for all rows */\n padding: 0 8px; /* Add some padding inside cells */\n}\n\n/* Style for the first column cells */\ntable td:first-child {\n display: flex; /* Make the cell a flex container */\n justify-content: space-between; /* Space out the text and icons */\n align-items: center; /* Center items vertically */\n padding-right: 8px; /* Ensure there is some padding on the right */\n}\n\n/* Style for the text span within the first column */\ntd:first-child span:first-child {\n border: none; /* Ensures no border is applied to the span */\n}\n\n/* Style for the icons container span within the first column */\ntd:first-child span:last-child {\n border: none; /* Ensures no border is applied to the span */\n}\n\n/* Style for the icons within the first column */\ntd:first-child .icon {\n margin-left: 10px; /* Space between icons if needed */\n cursor: pointer; /* Change cursor to pointer on hover */\n}\n\ntable tr {\n cursor: pointer;\n}\n\ntable tr:hover {\n background-color: #e7f4ff; /* Light blue for even rows */\n}\n\n.sticky-header {\n position: sticky;\n top: 0;\n}\n\n.scrollable {\n display: flex;\n overflow-y: scroll;\n max-height: 95%;\n}\n\n.vertical-full-width {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n "] }]
|
|
328
455
|
}], () => [{ type: i1.Router }], { EntityName: [{
|
|
329
456
|
type: Input
|
|
330
457
|
}], Columns: [{
|
|
@@ -337,6 +464,22 @@ SimpleRecordListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: S
|
|
|
337
464
|
type: Input
|
|
338
465
|
}], AllowEdit: [{
|
|
339
466
|
type: Input
|
|
467
|
+
}], AllowCustomAction: [{
|
|
468
|
+
type: Input
|
|
469
|
+
}], CustomActionIcon: [{
|
|
470
|
+
type: Input
|
|
471
|
+
}], CustomActionIconFunction: [{
|
|
472
|
+
type: Input
|
|
473
|
+
}], CustomActionTooltip: [{
|
|
474
|
+
type: Input
|
|
475
|
+
}], CustomActionTooltipFunction: [{
|
|
476
|
+
type: Input
|
|
477
|
+
}], CustomActionDialogTitle: [{
|
|
478
|
+
type: Input
|
|
479
|
+
}], CustomActionDialogMessage: [{
|
|
480
|
+
type: Input
|
|
481
|
+
}], CustomActionDialogInfo: [{
|
|
482
|
+
type: Input
|
|
340
483
|
}], EditSectionName: [{
|
|
341
484
|
type: Input
|
|
342
485
|
}], RecordSelected: [{
|
|
@@ -345,6 +488,10 @@ SimpleRecordListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: S
|
|
|
345
488
|
type: Output
|
|
346
489
|
}], RecordCreated: [{
|
|
347
490
|
type: Output
|
|
491
|
+
}], CustomActionClicked: [{
|
|
492
|
+
type: Output
|
|
493
|
+
}], CustomActionConfirmed: [{
|
|
494
|
+
type: Output
|
|
348
495
|
}] }); })();
|
|
349
496
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SimpleRecordListComponent, { className: "SimpleRecordListComponent", filePath: "src/lib/simple-record-list/simple-record-list.component.ts", lineNumber: 13 }); })();
|
|
350
497
|
//# sourceMappingURL=simple-record-list.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-record-list.component.js","sourceRoot":"","sources":["../../../src/lib/simple-record-list/simple-record-list.component.ts","../../../src/lib/simple-record-list/simple-record-list.component.html"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAc,QAAQ,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"simple-record-list.component.js","sourceRoot":"","sources":["../../../src/lib/simple-record-list/simple-record-list.component.ts","../../../src/lib/simple-record-list/simple-record-list.component.html"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-simple-record-list",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.33.0",
|
|
4
4
|
"description": "MemberJunction: Very simple and reusable Angular component for displaying, editing, creating and deleting records in any entity",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
"@angular/router": "18.0.2"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@memberjunction/core-entities": "2.
|
|
29
|
-
"@memberjunction/global": "2.
|
|
30
|
-
"@memberjunction/core": "2.
|
|
31
|
-
"@memberjunction/ng-container-directives": "2.
|
|
32
|
-
"@memberjunction/ng-
|
|
33
|
-
"@memberjunction/ng-entity-form-dialog": "2.
|
|
28
|
+
"@memberjunction/core-entities": "2.33.0",
|
|
29
|
+
"@memberjunction/global": "2.33.0",
|
|
30
|
+
"@memberjunction/core": "2.33.0",
|
|
31
|
+
"@memberjunction/ng-container-directives": "2.33.0",
|
|
32
|
+
"@memberjunction/ng-notifications": "2.33.0",
|
|
33
|
+
"@memberjunction/ng-entity-form-dialog": "2.33.0",
|
|
34
34
|
"@progress/kendo-angular-buttons": "16.2.0",
|
|
35
35
|
"@progress/kendo-angular-dialog": "16.2.0",
|
|
36
36
|
"@progress/kendo-angular-layout": "16.2.0",
|