@memberjunction/ng-list-management 0.0.1 → 3.0.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/dist/lib/components/list-management-dialog/list-management-dialog.component.d.ts +170 -0
- package/dist/lib/components/list-management-dialog/list-management-dialog.component.d.ts.map +1 -0
- package/dist/lib/components/list-management-dialog/list-management-dialog.component.js +943 -0
- package/dist/lib/components/list-management-dialog/list-management-dialog.component.js.map +1 -0
- package/dist/lib/components/list-share-dialog/list-share-dialog.component.d.ts +137 -0
- package/dist/lib/components/list-share-dialog/list-share-dialog.component.d.ts.map +1 -0
- package/dist/lib/components/list-share-dialog/list-share-dialog.component.js +658 -0
- package/dist/lib/components/list-share-dialog/list-share-dialog.component.js.map +1 -0
- package/dist/lib/models/list-management.models.d.ts +206 -0
- package/dist/lib/models/list-management.models.d.ts.map +1 -0
- package/dist/lib/models/list-management.models.js +2 -0
- package/dist/lib/models/list-management.models.js.map +1 -0
- package/dist/lib/models/list-sharing.models.d.ts +193 -0
- package/dist/lib/models/list-sharing.models.d.ts.map +1 -0
- package/dist/lib/models/list-sharing.models.js +2 -0
- package/dist/lib/models/list-sharing.models.js.map +1 -0
- package/dist/lib/module.d.ts +44 -0
- package/dist/lib/module.d.ts.map +1 -0
- package/dist/lib/module.js +101 -0
- package/dist/lib/module.js.map +1 -0
- package/dist/lib/services/list-management.service.d.ts +69 -0
- package/dist/lib/services/list-management.service.d.ts.map +1 -0
- package/dist/lib/services/list-management.service.js +411 -0
- package/dist/lib/services/list-management.service.js.map +1 -0
- package/dist/lib/services/list-sharing.service.d.ts +98 -0
- package/dist/lib/services/list-sharing.service.d.ts.map +1 -0
- package/dist/lib/services/list-sharing.service.js +483 -0
- package/dist/lib/services/list-sharing.service.js.map +1 -0
- package/dist/public-api.d.ts +13 -0
- package/dist/public-api.d.ts.map +1 -0
- package/dist/public-api.js +23 -0
- package/dist/public-api.js.map +1 -0
- package/package.json +48 -6
- package/README.md +0 -45
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { EventEmitter, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import { ListEntity, ListCategoryEntity } from '@memberjunction/core-entities';
|
|
3
|
+
import { ListManagementService } from '../../services/list-management.service';
|
|
4
|
+
import { ListManagementDialogConfig, ListManagementResult, ListItemViewModel, ListFilterTab, ListSortOption } from '../../models/list-management.models';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* A gorgeous, responsive dialog for managing list membership.
|
|
8
|
+
* Supports adding/removing records from multiple lists with membership indicators.
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Search and filter lists
|
|
12
|
+
* - Visual membership indicators (full/partial/none)
|
|
13
|
+
* - Inline list creation
|
|
14
|
+
* - Mobile-responsive bottom sheet on small screens
|
|
15
|
+
* - Batch operations with progress feedback
|
|
16
|
+
*/
|
|
17
|
+
export declare class ListManagementDialogComponent implements OnInit, OnDestroy {
|
|
18
|
+
private listService;
|
|
19
|
+
private cdr;
|
|
20
|
+
/**
|
|
21
|
+
* Configuration for the dialog
|
|
22
|
+
*/
|
|
23
|
+
config: ListManagementDialogConfig;
|
|
24
|
+
/**
|
|
25
|
+
* Controls dialog visibility
|
|
26
|
+
*/
|
|
27
|
+
get visible(): boolean;
|
|
28
|
+
set visible(value: boolean);
|
|
29
|
+
private _visible;
|
|
30
|
+
/**
|
|
31
|
+
* Emitted when dialog is closed with results
|
|
32
|
+
*/
|
|
33
|
+
complete: EventEmitter<ListManagementResult>;
|
|
34
|
+
/**
|
|
35
|
+
* Emitted when dialog is cancelled
|
|
36
|
+
*/
|
|
37
|
+
cancel: EventEmitter<void>;
|
|
38
|
+
loading: boolean;
|
|
39
|
+
saving: boolean;
|
|
40
|
+
searchText: string;
|
|
41
|
+
activeTab: ListFilterTab;
|
|
42
|
+
sortOption: ListSortOption;
|
|
43
|
+
showCreateForm: boolean;
|
|
44
|
+
allLists: ListItemViewModel[];
|
|
45
|
+
filteredLists: ListItemViewModel[];
|
|
46
|
+
categories: ListCategoryEntity[];
|
|
47
|
+
newListName: string;
|
|
48
|
+
newListDescription: string;
|
|
49
|
+
newListCategoryId: string | null;
|
|
50
|
+
private originalMembership;
|
|
51
|
+
addedToLists: Set<string>;
|
|
52
|
+
removedFromLists: Set<string>;
|
|
53
|
+
newlyCreatedLists: ListEntity[];
|
|
54
|
+
private destroy$;
|
|
55
|
+
private searchSubject;
|
|
56
|
+
constructor(listService: ListManagementService, cdr: ChangeDetectorRef);
|
|
57
|
+
ngOnInit(): void;
|
|
58
|
+
ngOnDestroy(): void;
|
|
59
|
+
/**
|
|
60
|
+
* Get dialog title based on config
|
|
61
|
+
*/
|
|
62
|
+
get dialogTitle(): string;
|
|
63
|
+
/**
|
|
64
|
+
* Get subtitle showing context
|
|
65
|
+
*/
|
|
66
|
+
get dialogSubtitle(): string;
|
|
67
|
+
/**
|
|
68
|
+
* Check if there are pending changes
|
|
69
|
+
*/
|
|
70
|
+
get hasChanges(): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Get count of lists to add to
|
|
73
|
+
*/
|
|
74
|
+
get addCount(): number;
|
|
75
|
+
/**
|
|
76
|
+
* Get count of lists to remove from
|
|
77
|
+
*/
|
|
78
|
+
get removeCount(): number;
|
|
79
|
+
/**
|
|
80
|
+
* Setup search with debounce
|
|
81
|
+
*/
|
|
82
|
+
private setupSearchDebounce;
|
|
83
|
+
/**
|
|
84
|
+
* Initialize dialog when opened
|
|
85
|
+
*/
|
|
86
|
+
private initializeDialog;
|
|
87
|
+
/**
|
|
88
|
+
* Reset all state
|
|
89
|
+
*/
|
|
90
|
+
private resetState;
|
|
91
|
+
/**
|
|
92
|
+
* Load lists and membership data
|
|
93
|
+
*/
|
|
94
|
+
private loadData;
|
|
95
|
+
/**
|
|
96
|
+
* Handle search input
|
|
97
|
+
*/
|
|
98
|
+
onSearchInput(event: Event): void;
|
|
99
|
+
/**
|
|
100
|
+
* Clear search
|
|
101
|
+
*/
|
|
102
|
+
clearSearch(): void;
|
|
103
|
+
/**
|
|
104
|
+
* Change active tab
|
|
105
|
+
*/
|
|
106
|
+
setActiveTab(tab: ListFilterTab): void;
|
|
107
|
+
/**
|
|
108
|
+
* Change sort option
|
|
109
|
+
*/
|
|
110
|
+
setSortOption(option: ListSortOption): void;
|
|
111
|
+
/**
|
|
112
|
+
* Apply all filters and sorting
|
|
113
|
+
*/
|
|
114
|
+
private applyFilters;
|
|
115
|
+
/**
|
|
116
|
+
* Toggle list selection for adding
|
|
117
|
+
*/
|
|
118
|
+
toggleListForAdd(vm: ListItemViewModel): void;
|
|
119
|
+
/**
|
|
120
|
+
* Toggle list selection for removal
|
|
121
|
+
*/
|
|
122
|
+
toggleListForRemove(vm: ListItemViewModel): void;
|
|
123
|
+
/**
|
|
124
|
+
* Get membership indicator class
|
|
125
|
+
*/
|
|
126
|
+
getMembershipClass(vm: ListItemViewModel): string;
|
|
127
|
+
/**
|
|
128
|
+
* Get membership indicator text
|
|
129
|
+
*/
|
|
130
|
+
getMembershipText(vm: ListItemViewModel): string;
|
|
131
|
+
/**
|
|
132
|
+
* Get membership icon
|
|
133
|
+
*/
|
|
134
|
+
getMembershipIcon(vm: ListItemViewModel): string;
|
|
135
|
+
/**
|
|
136
|
+
* Show create list form
|
|
137
|
+
*/
|
|
138
|
+
showCreateListForm(): void;
|
|
139
|
+
/**
|
|
140
|
+
* Cancel create list form
|
|
141
|
+
*/
|
|
142
|
+
cancelCreateList(): void;
|
|
143
|
+
/**
|
|
144
|
+
* Create a new list
|
|
145
|
+
*/
|
|
146
|
+
createList(): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* Apply changes and close dialog
|
|
149
|
+
*/
|
|
150
|
+
applyChanges(): Promise<void>;
|
|
151
|
+
/**
|
|
152
|
+
* Cancel and close dialog
|
|
153
|
+
*/
|
|
154
|
+
onCancel(): void;
|
|
155
|
+
/**
|
|
156
|
+
* Format date for display
|
|
157
|
+
*/
|
|
158
|
+
formatDate(date: Date): string;
|
|
159
|
+
/**
|
|
160
|
+
* Check if we should show the add button for a list
|
|
161
|
+
*/
|
|
162
|
+
showAddButton(vm: ListItemViewModel): boolean;
|
|
163
|
+
/**
|
|
164
|
+
* Check if we should show the remove button for a list
|
|
165
|
+
*/
|
|
166
|
+
showRemoveButton(vm: ListItemViewModel): boolean;
|
|
167
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ListManagementDialogComponent, never>;
|
|
168
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ListManagementDialogComponent, "mj-list-management-dialog", never, { "config": { "alias": "config"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; }, { "complete": "complete"; "cancel": "cancel"; }, never, never, false, never>;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=list-management-dialog.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-management-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/list-management-dialog/list-management-dialog.component.ts"],"names":[],"mappings":"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"}
|