@memberjunction/ng-list-management 4.0.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.
Files changed (2) hide show
  1. package/README.md +122 -0
  2. package/package.json +7 -7
package/README.md ADDED
@@ -0,0 +1,122 @@
1
+ # @memberjunction/ng-list-management
2
+
3
+ Angular components for managing entity list membership with a responsive dialog interface. Allows users to add and remove records from multiple lists with visual membership indicators.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @memberjunction/ng-list-management
9
+ ```
10
+
11
+ ## Overview
12
+
13
+ The List Management package provides a dialog-based UI for managing which lists a set of entity records belong to. It supports search and filtering, visual membership indicators (full/partial/none), inline list creation, batch operations with progress feedback, and list sharing via a separate sharing dialog.
14
+
15
+ ```mermaid
16
+ flowchart TD
17
+ subgraph Dialog["List Management Dialog"]
18
+ A["Search & Filter"] --> B["List Items with Membership Indicators"]
19
+ B --> C["Toggle Membership"]
20
+ B --> D["Inline List Creation"]
21
+ end
22
+ subgraph Share["List Sharing Dialog"]
23
+ E["Share with Users/Roles"]
24
+ end
25
+ subgraph Services["Services"]
26
+ F["ListManagementService"]
27
+ G["ListSharingService"]
28
+ end
29
+
30
+ C --> F
31
+ D --> F
32
+ E --> G
33
+
34
+ style Dialog fill:#2d6a9f,stroke:#1a4971,color:#fff
35
+ style Share fill:#7c5295,stroke:#563a6b,color:#fff
36
+ style Services fill:#2d8659,stroke:#1a5c3a,color:#fff
37
+ ```
38
+
39
+ ## Usage
40
+
41
+ ### Module Import
42
+
43
+ ```typescript
44
+ import { ListManagementModule } from '@memberjunction/ng-list-management';
45
+
46
+ @NgModule({
47
+ imports: [ListManagementModule]
48
+ })
49
+ export class YourModule {}
50
+ ```
51
+
52
+ ### List Management Dialog
53
+
54
+ ```html
55
+ <mj-list-management-dialog
56
+ [config]="listConfig"
57
+ [visible]="showListDialog"
58
+ (complete)="onListManagementComplete($event)"
59
+ (cancel)="onListManagementCancel()">
60
+ </mj-list-management-dialog>
61
+ ```
62
+
63
+ ### List Sharing Dialog
64
+
65
+ ```html
66
+ <mj-list-share-dialog
67
+ [listId]="selectedListId"
68
+ [visible]="showShareDialog"
69
+ (closed)="onShareDialogClosed()">
70
+ </mj-list-share-dialog>
71
+ ```
72
+
73
+ ### Configuration Example
74
+
75
+ ```typescript
76
+ import { ListManagementDialogConfig } from '@memberjunction/ng-list-management';
77
+
78
+ const listConfig: ListManagementDialogConfig = {
79
+ EntityName: 'Products',
80
+ RecordIDs: ['product-1', 'product-2', 'product-3'],
81
+ Title: 'Manage Product Lists',
82
+ AllowCreateList: true,
83
+ AllowShareList: true
84
+ };
85
+ ```
86
+
87
+ ## Components
88
+
89
+ | Component | Selector | Purpose |
90
+ |-----------|----------|---------|
91
+ | `ListManagementDialogComponent` | `mj-list-management-dialog` | Dialog for adding/removing records to/from lists |
92
+ | `ListShareDialogComponent` | `mj-list-share-dialog` | Dialog for sharing lists with users and roles |
93
+
94
+ ## Services
95
+
96
+ | Service | Purpose |
97
+ |---------|---------|
98
+ | `ListManagementService` | Business logic for list operations (add, remove, create, load) |
99
+ | `ListSharingService` | Business logic for sharing lists with users and roles |
100
+
101
+ ## Exported Types
102
+
103
+ - `ListManagementDialogConfig` -- Configuration for the list management dialog
104
+ - `ListManagementResult` -- Result returned when dialog completes
105
+ - `ListOperationDetail` -- Detail of a single add/remove operation
106
+ - `ListItemViewModel` -- View model for a list item with membership state
107
+ - `ListFilterTab` -- Filter tab type (`'all' | 'member' | 'not-member'`)
108
+ - `ListSortOption` -- Sort option type (`'name' | 'date' | 'count'`)
109
+ - `CreateListConfig` -- Configuration for inline list creation
110
+ - `BatchOperationResult` -- Result of batch add/remove operations
111
+ - `RecordMembershipInfo` -- Membership info for a record across lists
112
+ - `ListShareConfig` -- Configuration for list sharing
113
+ - `ListShareResult` -- Result of sharing operations
114
+
115
+ ## Dependencies
116
+
117
+ - [@memberjunction/core](../../MJCore/README.md) -- Metadata, RunView
118
+ - [@memberjunction/core-entities](../../MJCoreEntities/README.md) -- ListEntity, ListCategoryEntity
119
+ - [@memberjunction/ng-shared-generic](../shared/README.md) -- Loading component
120
+ - `@progress/kendo-angular-dialog` -- Dialog rendering
121
+ - `@progress/kendo-angular-buttons` -- Button components
122
+ - `@progress/kendo-angular-inputs` -- Input components
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-list-management",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "description": "MemberJunction: Angular Components for managing entity list membership with beautiful, responsive UI",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -36,12 +36,12 @@
36
36
  "rxjs": "^7.8.2"
37
37
  },
38
38
  "dependencies": {
39
- "@memberjunction/core": "4.0.0",
40
- "@memberjunction/core-entities": "4.0.0",
41
- "@memberjunction/global": "4.0.0",
42
- "@memberjunction/ng-container-directives": "4.0.0",
43
- "@memberjunction/ng-shared": "4.0.0",
44
- "@memberjunction/ng-shared-generic": "4.0.0",
39
+ "@memberjunction/core": "4.1.0",
40
+ "@memberjunction/core-entities": "4.1.0",
41
+ "@memberjunction/global": "4.1.0",
42
+ "@memberjunction/ng-container-directives": "4.1.0",
43
+ "@memberjunction/ng-shared": "4.1.0",
44
+ "@memberjunction/ng-shared-generic": "4.1.0",
45
45
  "tslib": "^2.8.1"
46
46
  },
47
47
  "sideEffects": false,