@mj-biz-apps/common-ng 5.64.0 → 5.65.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/__tests__/uuid-casing.test.d.ts +7 -0
- package/dist/lib/components/__tests__/uuid-casing.test.d.ts.map +1 -0
- package/dist/lib/components/__tests__/uuid-casing.test.js +78 -0
- package/dist/lib/components/__tests__/uuid-casing.test.js.map +1 -0
- package/dist/lib/components/address-editor/address-editor.component.d.ts.map +1 -1
- package/dist/lib/components/address-editor/address-editor.component.js +9 -7
- package/dist/lib/components/address-editor/address-editor.component.js.map +1 -1
- package/dist/lib/components/contact-method-list/contact-method-list.component.d.ts +9 -2
- package/dist/lib/components/contact-method-list/contact-method-list.component.d.ts.map +1 -1
- package/dist/lib/components/contact-method-list/contact-method-list.component.js +35 -22
- package/dist/lib/components/contact-method-list/contact-method-list.component.js.map +1 -1
- package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.d.ts +8 -0
- package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.d.ts.map +1 -0
- package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.js +75 -0
- package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.js.map +1 -0
- package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.d.ts +12 -0
- package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.d.ts.map +1 -0
- package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.js +94 -0
- package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.js.map +1 -0
- package/dist/lib/components/identity-header/activity-identity.component.d.ts +9 -0
- package/dist/lib/components/identity-header/activity-identity.component.d.ts.map +1 -1
- package/dist/lib/components/identity-header/activity-identity.component.js +46 -7
- package/dist/lib/components/identity-header/activity-identity.component.js.map +1 -1
- package/dist/lib/components/identity-header/organization-identity.component.js +48 -18
- package/dist/lib/components/identity-header/organization-identity.component.js.map +1 -1
- package/dist/lib/components/identity-header/person-identity.component.js +38 -28
- package/dist/lib/components/identity-header/person-identity.component.js.map +1 -1
- package/dist/lib/components/party-field/party-field.component.js +5 -5
- package/dist/lib/components/party-field/party-field.component.js.map +1 -1
- package/dist/lib/components/relationship-graph/common-relationship-graph.component.d.ts.map +1 -1
- package/dist/lib/components/relationship-graph/common-relationship-graph.component.js +29 -20
- package/dist/lib/components/relationship-graph/common-relationship-graph.component.js.map +1 -1
- package/dist/lib/components/relationship-list/relationship-list.component.js +6 -6
- package/dist/lib/components/relationship-list/relationship-list.component.js.map +1 -1
- package/dist/lib/components/selling-company-field/__tests__/selling-company-field.component.test.js +110 -4
- package/dist/lib/components/selling-company-field/__tests__/selling-company-field.component.test.js.map +1 -1
- package/dist/lib/components/selling-company-field/selling-company-field.component.d.ts +34 -3
- package/dist/lib/components/selling-company-field/selling-company-field.component.d.ts.map +1 -1
- package/dist/lib/components/selling-company-field/selling-company-field.component.js +153 -6
- package/dist/lib/components/selling-company-field/selling-company-field.component.js.map +1 -1
- package/dist/lib/custom/panels/activity-content.panel.js +2 -2
- package/dist/lib/custom/panels/activity-hierarchy.panel.js +2 -2
- package/dist/lib/custom/panels/activity-hierarchy.panel.js.map +1 -1
- package/dist/lib/custom/panels/activity-type-hierarchy.panel.js +2 -2
- package/dist/lib/custom/panels/activity-type-hierarchy.panel.js.map +1 -1
- package/dist/lib/pages/activities-dashboard.page.d.ts +2 -0
- package/dist/lib/pages/activities-dashboard.page.d.ts.map +1 -1
- package/dist/lib/pages/activities-dashboard.page.js +10 -5
- package/dist/lib/pages/activities-dashboard.page.js.map +1 -1
- package/dist/lib/pages/common-dashboard.page.js +2 -2
- package/package.json +2 -2
|
@@ -2,7 +2,7 @@ import { Component, Input, Output, EventEmitter, inject, ChangeDetectorRef } fro
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { FormsModule } from '@angular/forms';
|
|
4
4
|
import { LogError, Metadata, RunView } from '@memberjunction/core';
|
|
5
|
-
import { EscapeSQLString, UUIDsEqual } from '@memberjunction/global';
|
|
5
|
+
import { EscapeSQLString, NormalizeUUID, UUIDsEqual } from '@memberjunction/global';
|
|
6
6
|
import { SharedGenericModule } from '@memberjunction/ng-shared-generic';
|
|
7
7
|
import { ContactMethodConsentEntity } from '@mj-biz-apps/common-entities';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
@@ -285,7 +285,7 @@ function ContactMethodListComponent_Conditional_6_For_3_Conditional_1_Conditiona
|
|
|
285
285
|
i0.ɵɵadvance();
|
|
286
286
|
i0.ɵɵrepeater(ctx_r0.getConsents(cm_r9));
|
|
287
287
|
i0.ɵɵadvance(3);
|
|
288
|
-
i0.ɵɵconditional(ctx_r0.
|
|
288
|
+
i0.ɵɵconditional(ctx_r0.IsShowingConsentHistory(cm_r9) ? 4 : -1);
|
|
289
289
|
} }
|
|
290
290
|
function ContactMethodListComponent_Conditional_6_For_3_Conditional_1_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
291
291
|
const _r15 = i0.ɵɵgetCurrentView();
|
|
@@ -368,7 +368,7 @@ function ContactMethodListComponent_Conditional_6_For_3_Template(rf, ctx) { if (
|
|
|
368
368
|
} if (rf & 2) {
|
|
369
369
|
const cm_r9 = ctx.$implicit;
|
|
370
370
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
371
|
-
i0.ɵɵconditional(ctx_r0.
|
|
371
|
+
i0.ɵɵconditional(ctx_r0.IsEditing(cm_r9) ? 0 : 1);
|
|
372
372
|
} }
|
|
373
373
|
function ContactMethodListComponent_Conditional_6_Conditional_4_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
374
374
|
i0.ɵɵelementStart(0, "option", 15);
|
|
@@ -647,7 +647,7 @@ export class ContactMethodListComponent {
|
|
|
647
647
|
ConsentStatuses = ContactMethodConsentEntity.Statuses;
|
|
648
648
|
/** The form key of the general (any purpose) consent, for the template. */
|
|
649
649
|
GeneralKey = GENERAL_CONSENT_KEY;
|
|
650
|
-
/** Each loaded method's consent rows (every purpose and organization), keyed by
|
|
650
|
+
/** Each loaded method's consent rows (every purpose and organization), keyed by `NormalizeUUID(contactMethodID)`. */
|
|
651
651
|
consentsByMethod = new Map();
|
|
652
652
|
/**
|
|
653
653
|
* The ID of the contact method currently being edited, or `null` when
|
|
@@ -685,7 +685,10 @@ export class ContactMethodListComponent {
|
|
|
685
685
|
ConsentHistory = [];
|
|
686
686
|
/** True while the history for {@link ConsentHistoryFor} is being read. */
|
|
687
687
|
ConsentHistoryLoading = false;
|
|
688
|
-
/**
|
|
688
|
+
/**
|
|
689
|
+
* History already read this session, by contact method ID; dropped for a row when it is saved.
|
|
690
|
+
* Keyed by `NormalizeUUID(contactMethodID)`.
|
|
691
|
+
*/
|
|
689
692
|
consentHistoryCache = new Map();
|
|
690
693
|
/** Maps lowercase contact type names to CSS icon-color classes. */
|
|
691
694
|
iconColorMap = {
|
|
@@ -805,9 +808,10 @@ export class ContactMethodListComponent {
|
|
|
805
808
|
return;
|
|
806
809
|
}
|
|
807
810
|
for (const consent of result.Results) {
|
|
808
|
-
const
|
|
811
|
+
const key = NormalizeUUID(consent.ContactMethodID);
|
|
812
|
+
const list = this.consentsByMethod.get(key) ?? [];
|
|
809
813
|
list.push(consent);
|
|
810
|
-
this.consentsByMethod.set(
|
|
814
|
+
this.consentsByMethod.set(key, list);
|
|
811
815
|
}
|
|
812
816
|
}
|
|
813
817
|
sortContactMethods() {
|
|
@@ -821,7 +825,7 @@ export class ContactMethodListComponent {
|
|
|
821
825
|
}
|
|
822
826
|
/** Returns the DisplayRank for a contact type, defaulting to 999 if not found. */
|
|
823
827
|
getTypeRank(typeID) {
|
|
824
|
-
const ct = this.ContactTypes.find(t => t.ID
|
|
828
|
+
const ct = this.ContactTypes.find(t => UUIDsEqual(t.ID, typeID));
|
|
825
829
|
return ct?.DisplayRank ?? 999;
|
|
826
830
|
}
|
|
827
831
|
/**
|
|
@@ -834,7 +838,7 @@ export class ContactMethodListComponent {
|
|
|
834
838
|
* @returns The CSS class string for the icon (e.g., `'fa-solid fa-envelope'`)
|
|
835
839
|
*/
|
|
836
840
|
getContactTypeIcon(typeID) {
|
|
837
|
-
const ct = this.ContactTypes.find(t => t.ID
|
|
841
|
+
const ct = this.ContactTypes.find(t => UUIDsEqual(t.ID, typeID));
|
|
838
842
|
return ct?.IconClass || 'fa-solid fa-circle-info';
|
|
839
843
|
}
|
|
840
844
|
/**
|
|
@@ -847,7 +851,7 @@ export class ContactMethodListComponent {
|
|
|
847
851
|
* @returns A CSS class string such as `'icon-email'` or `'icon-linkedin'`
|
|
848
852
|
*/
|
|
849
853
|
getIconColorClass(typeID) {
|
|
850
|
-
const ct = this.ContactTypes.find(t => t.ID
|
|
854
|
+
const ct = this.ContactTypes.find(t => UUIDsEqual(t.ID, typeID));
|
|
851
855
|
if (!ct)
|
|
852
856
|
return 'icon-default';
|
|
853
857
|
const key = ct.Name.toLowerCase();
|
|
@@ -876,7 +880,7 @@ export class ContactMethodListComponent {
|
|
|
876
880
|
* @returns A placeholder string such as `'Enter email address...'`
|
|
877
881
|
*/
|
|
878
882
|
getPlaceholder(typeID) {
|
|
879
|
-
const ct = this.ContactTypes.find(t => t.ID
|
|
883
|
+
const ct = this.ContactTypes.find(t => UUIDsEqual(t.ID, typeID));
|
|
880
884
|
if (!ct)
|
|
881
885
|
return 'Enter value...';
|
|
882
886
|
const name = ct.Name.toLowerCase();
|
|
@@ -896,7 +900,7 @@ export class ContactMethodListComponent {
|
|
|
896
900
|
* @returns `true` for LinkedIn, Twitter/X, and Website types; `false` otherwise
|
|
897
901
|
*/
|
|
898
902
|
isLinkType(typeID) {
|
|
899
|
-
const ct = this.ContactTypes.find(t => t.ID
|
|
903
|
+
const ct = this.ContactTypes.find(t => UUIDsEqual(t.ID, typeID));
|
|
900
904
|
if (!ct)
|
|
901
905
|
return false;
|
|
902
906
|
return this.linkTypeNames.has(ct.Name.toLowerCase());
|
|
@@ -908,7 +912,7 @@ export class ContactMethodListComponent {
|
|
|
908
912
|
* @param typeID - The ContactType record ID to check
|
|
909
913
|
*/
|
|
910
914
|
isConsentType(typeID) {
|
|
911
|
-
const ct = this.ContactTypes.find(t => t.ID
|
|
915
|
+
const ct = this.ContactTypes.find(t => UUIDsEqual(t.ID, typeID));
|
|
912
916
|
return !!ct?.CommunicationBaseMessageTypeID;
|
|
913
917
|
}
|
|
914
918
|
/** The consent rows a method has, in purpose order, general and installation-wide rows first. */
|
|
@@ -930,7 +934,7 @@ export class ContactMethodListComponent {
|
|
|
930
934
|
if (cm.Consents.IsLoaded || cm.Consents.Items.length > 0) {
|
|
931
935
|
return cm.Consents.Items;
|
|
932
936
|
}
|
|
933
|
-
return this.consentsByMethod.get(cm.ID) ?? [];
|
|
937
|
+
return this.consentsByMethod.get(NormalizeUUID(cm.ID)) ?? [];
|
|
934
938
|
}
|
|
935
939
|
/** Returns the Sequence for a consent purpose; the general row (no purpose) sorts first. */
|
|
936
940
|
getPurposeRank(purposeID) {
|
|
@@ -977,7 +981,7 @@ export class ContactMethodListComponent {
|
|
|
977
981
|
*/
|
|
978
982
|
async onShowConsentHistory(cm) {
|
|
979
983
|
this.ConsentHistoryFor = cm.ID;
|
|
980
|
-
const cached = this.consentHistoryCache.get(cm.ID);
|
|
984
|
+
const cached = this.consentHistoryCache.get(NormalizeUUID(cm.ID));
|
|
981
985
|
if (cached) {
|
|
982
986
|
this.ConsentHistory = cached;
|
|
983
987
|
this.cdr.detectChanges();
|
|
@@ -987,8 +991,8 @@ export class ContactMethodListComponent {
|
|
|
987
991
|
this.ConsentHistoryLoading = true;
|
|
988
992
|
this.cdr.detectChanges();
|
|
989
993
|
const lines = await this.loadConsentHistory(cm);
|
|
990
|
-
this.consentHistoryCache.set(cm.ID, lines);
|
|
991
|
-
if (this.
|
|
994
|
+
this.consentHistoryCache.set(NormalizeUUID(cm.ID), lines);
|
|
995
|
+
if (this.IsShowingConsentHistory(cm)) {
|
|
992
996
|
this.ConsentHistory = lines;
|
|
993
997
|
}
|
|
994
998
|
this.ConsentHistoryLoading = false;
|
|
@@ -1141,6 +1145,14 @@ export class ContactMethodListComponent {
|
|
|
1141
1145
|
this.cdr.detectChanges();
|
|
1142
1146
|
}
|
|
1143
1147
|
}
|
|
1148
|
+
/** Whether this row's consent history is the one shown. IDs compare case-insensitively. */
|
|
1149
|
+
IsShowingConsentHistory(cm) {
|
|
1150
|
+
return this.ConsentHistoryFor !== null && UUIDsEqual(this.ConsentHistoryFor, cm.ID);
|
|
1151
|
+
}
|
|
1152
|
+
/** Whether this row is the one being edited. IDs compare case-insensitively. */
|
|
1153
|
+
IsEditing(cm) {
|
|
1154
|
+
return this.EditingId !== null && UUIDsEqual(this.EditingId, cm.ID);
|
|
1155
|
+
}
|
|
1144
1156
|
/**
|
|
1145
1157
|
* Opens the inline edit form for an existing contact method, populating
|
|
1146
1158
|
* the form fields from the current entity data and its installation-wide consents.
|
|
@@ -1158,7 +1170,8 @@ export class ContactMethodListComponent {
|
|
|
1158
1170
|
consents[p.ID] = row?.ConsentStatus ?? unspecified;
|
|
1159
1171
|
}
|
|
1160
1172
|
this.EditForm = {
|
|
1161
|
-
|
|
1173
|
+
// The select matches options with ===, so use the option's own ID spelling.
|
|
1174
|
+
TypeID: this.ContactTypes.find(t => UUIDsEqual(t.ID, cm.ContactTypeID))?.ID ?? cm.ContactTypeID,
|
|
1162
1175
|
Value: cm.Value,
|
|
1163
1176
|
Label: cm.Label || '',
|
|
1164
1177
|
IsPrimary: cm.IsPrimary,
|
|
@@ -1187,7 +1200,7 @@ export class ContactMethodListComponent {
|
|
|
1187
1200
|
this.Saving = true;
|
|
1188
1201
|
this.cdr.detectChanges();
|
|
1189
1202
|
try {
|
|
1190
|
-
const cm = this.ContactMethods.find(c => c.ID
|
|
1203
|
+
const cm = this.ContactMethods.find(c => UUIDsEqual(c.ID, this.EditingId));
|
|
1191
1204
|
if (!cm)
|
|
1192
1205
|
return;
|
|
1193
1206
|
// If setting primary, clear other primaries of same type
|
|
@@ -1199,7 +1212,7 @@ export class ContactMethodListComponent {
|
|
|
1199
1212
|
cm.Label = this.EditForm.Label || null;
|
|
1200
1213
|
cm.IsPrimary = this.EditForm.IsPrimary;
|
|
1201
1214
|
await this.applyConsentsFromForm(cm, this.EditForm);
|
|
1202
|
-
this.consentHistoryCache.delete(cm.ID);
|
|
1215
|
+
this.consentHistoryCache.delete(NormalizeUUID(cm.ID));
|
|
1203
1216
|
if (this._collection) {
|
|
1204
1217
|
this.ContactMethods = [...this._collection.Items];
|
|
1205
1218
|
this.sortContactMethods();
|
|
@@ -1327,7 +1340,7 @@ export class ContactMethodListComponent {
|
|
|
1327
1340
|
}
|
|
1328
1341
|
/** Removes the primary flag from all contact methods of the given type. */
|
|
1329
1342
|
async clearPrimariesForType(typeID) {
|
|
1330
|
-
const sameType = this.ContactMethods.filter(c => c.ContactTypeID
|
|
1343
|
+
const sameType = this.ContactMethods.filter(c => UUIDsEqual(c.ContactTypeID, typeID) && c.IsPrimary);
|
|
1331
1344
|
for (const c of sameType) {
|
|
1332
1345
|
c.IsPrimary = false;
|
|
1333
1346
|
if (!this._collection) {
|
|
@@ -1352,7 +1365,7 @@ export class ContactMethodListComponent {
|
|
|
1352
1365
|
}
|
|
1353
1366
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContactMethodListComponent, [{
|
|
1354
1367
|
type: Component,
|
|
1355
|
-
args: [{ standalone: true, imports: [CommonModule, FormsModule, SharedGenericModule], selector: 'bizapps-contact-method-list', template: "<!-- ContactMethodList - Flat List with Icons Design (Option B) -->\n\n<div class=\"section-header\">\n <span class=\"section-label\">\n <i class=\"fa-solid fa-address-card\"></i>\n Contact Methods\n @if (!Loading && ContactMethods.length > 0) {\n <span class=\"count\">({{ ContactMethods.length }})</span>\n }\n </span>\n</div>\n\n@if (Loading) {\n <div class=\"cm-flat-list\">\n <div class=\"loading-row\">\n <i class=\"fa-solid fa-spinner\"></i> Loading contacts...\n </div>\n </div>\n} @else {\n <div class=\"cm-flat-list\">\n @if (ContactMethods.length === 0 && !ShowAddForm) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-address-card\"></i>\n No contact methods yet\n </div>\n }\n\n @for (cm of ContactMethods; track cm.ID) {\n <!-- Edit mode for this row -->\n @if (EditingId === cm.ID) {\n <div class=\"cm-flat-edit-row\">\n <div class=\"form-row\">\n <div class=\"form-field type-field\">\n <label>Type</label>\n <select [(ngModel)]=\"EditForm.TypeID\">\n @for (t of ContactTypes; track t.ID) {\n <option [value]=\"t.ID\">{{ t.Name }}</option>\n }\n </select>\n </div>\n <div class=\"form-field flex-1\">\n <label>Value</label>\n <input type=\"text\" [(ngModel)]=\"EditForm.Value\" [placeholder]=\"getPlaceholder(EditForm.TypeID)\">\n </div>\n <div class=\"form-field label-field\">\n <label>Label</label>\n <input type=\"text\" [(ngModel)]=\"EditForm.Label\" placeholder=\"e.g., Work\">\n </div>\n <div class=\"checkbox-field\">\n <input type=\"checkbox\" [id]=\"'primary-edit-' + cm.ID\" [(ngModel)]=\"EditForm.IsPrimary\">\n <label [for]=\"'primary-edit-' + cm.ID\">Primary</label>\n </div>\n <div class=\"form-actions\">\n <button class=\"btn btn-primary btn-sm\" (click)=\"onSaveEdit()\" [disabled]=\"Saving\">\n @if (Saving) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n Save\n </button>\n <button class=\"btn btn-cancel btn-sm\" (click)=\"onCancelEdit()\">Cancel</button>\n </div>\n </div>\n @if (isConsentType(EditForm.TypeID)) {\n <div class=\"form-row consent-row\">\n <div class=\"form-field consent-field\">\n <label>General</label>\n <select [(ngModel)]=\"EditForm.Consents[GeneralKey]\">\n @for (s of ConsentStatuses; track s) {\n <option [value]=\"s\">{{ s }}</option>\n }\n </select>\n </div>\n @for (p of ConsentPurposes; track p.ID) {\n <div class=\"form-field consent-field\">\n <label>{{ p.Name }}</label>\n <select [(ngModel)]=\"EditForm.Consents[p.ID]\">\n @for (s of ConsentStatuses; track s) {\n <option [value]=\"s\">{{ s }}</option>\n }\n </select>\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <!-- Display row -->\n <div class=\"cm-flat-row\" [class.primary]=\"cm.IsPrimary\">\n <div class=\"cm-flat-icon\" [ngClass]=\"getIconColorClass(cm.ContactTypeID)\">\n <i [class]=\"getContactTypeIcon(cm.ContactTypeID)\"></i>\n </div>\n <div class=\"cm-flat-content\">\n <div class=\"cm-flat-value\" (click)=\"onCopyValue(cm.Value)\">{{ cm.Value }}</div>\n <div class=\"cm-flat-meta\">{{ getContactMeta(cm) }}</div>\n </div>\n <div class=\"cm-flat-badges\">\n @if (cm.IsPrimary) {\n <span class=\"badge badge-primary\"><i class=\"fa-solid fa-star\"></i></span>\n }\n @if (isConsentType(cm.ContactTypeID)) {\n <span class=\"consent-badges\" (mouseenter)=\"onShowConsentHistory(cm)\" (mouseleave)=\"onHideConsentHistory()\">\n @for (c of getConsents(cm); track c.ID) {\n <span class=\"badge badge-consent\" [ngClass]=\"getConsentBadgeClass(c.ConsentStatus)\">\n <i [class]=\"getConsentIcon(c.ConsentStatus)\"></i>\n <span class=\"consent-purpose\">{{ getConsentBadgeText(c) }}</span>\n {{ c.ConsentStatus }}\n </span>\n } @empty {\n <span class=\"badge badge-consent consent-unknown\">\n <i class=\"fa-regular fa-circle-question\"></i>\n Not Specified\n </span>\n }\n </span>\n @if (ConsentHistoryFor === cm.ID) {\n <div class=\"consent-history\" (mouseenter)=\"onShowConsentHistory(cm)\" (mouseleave)=\"onHideConsentHistory()\">\n <div class=\"consent-history-title\">Consent history \u00B7 {{ cm.Value }}</div>\n @if (ConsentHistoryLoading) {\n <mj-loading Text=\"Loading history...\" Size=\"small\"></mj-loading>\n } @else {\n @for (h of ConsentHistory; track h.ID) {\n <div class=\"consent-history-row\">\n <span>{{ h.ConsentStatusAt | date:'mediumDate' }}</span>\n <span class=\"consent-history-purpose\">{{ h.Purpose }}@if (h.RequestingOrganization) { \u00B7 {{ h.RequestingOrganization }}}</span>\n <span>{{ h.NewConsentStatus }}</span>\n <span class=\"consent-history-source\">{{ h.ConsentSource }}@if (h.ConsentDetails) { \u00B7 {{ h.ConsentDetails }}}</span>\n </div>\n } @empty {\n <div class=\"consent-history-empty\">No consent recorded yet</div>\n }\n <div class=\"consent-history-note\">Newest first; the top row for each purpose is its current status</div>\n }\n </div>\n }\n }\n </div>\n <div class=\"cm-flat-actions\">\n @if (EditMode && !cm.IsPrimary) {\n <button class=\"btn-ghost\" title=\"Set Primary\" (click)=\"onSetPrimary(cm)\">\n <i class=\"fa-regular fa-star\"></i>\n </button>\n }\n @if (isLinkType(cm.ContactTypeID)) {\n <button class=\"btn-ghost\" title=\"Open\" (click)=\"onOpenLink(cm.Value)\">\n <i class=\"fa-solid fa-external-link\"></i>\n </button>\n } @else {\n <button class=\"btn-ghost\" title=\"Copy\" (click)=\"onCopyValue(cm.Value)\">\n <i class=\"fa-solid fa-copy\"></i>\n </button>\n }\n @if (EditMode) {\n <button class=\"btn-ghost\" title=\"Edit\" (click)=\"onEdit(cm)\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n <button class=\"btn-ghost danger\" title=\"Remove\" (click)=\"onDelete(cm)\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n </div>\n }\n }\n\n <!-- Add form -->\n @if (ShowAddForm) {\n <div class=\"cm-flat-add-form\">\n <div class=\"form-field type-field\">\n <label>Type</label>\n <select [(ngModel)]=\"AddForm.TypeID\">\n @for (t of ContactTypes; track t.ID) {\n <option [value]=\"t.ID\">{{ t.Name }}</option>\n }\n </select>\n </div>\n <div class=\"form-field flex-1\">\n <label>Value</label>\n <input type=\"text\" [(ngModel)]=\"AddForm.Value\" [placeholder]=\"getPlaceholder(AddForm.TypeID)\">\n </div>\n <div class=\"form-field label-field\">\n <label>Label</label>\n <input type=\"text\" [(ngModel)]=\"AddForm.Label\" placeholder=\"e.g., Direct Line\">\n </div>\n <div class=\"checkbox-field\">\n <input type=\"checkbox\" id=\"primary-add\" [(ngModel)]=\"AddForm.IsPrimary\">\n <label for=\"primary-add\">Primary</label>\n </div>\n <div class=\"form-actions\">\n <button class=\"btn btn-primary btn-sm\" (click)=\"onSaveAdd()\" [disabled]=\"Saving\">\n @if (Saving) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n Add\n </button>\n <button class=\"btn btn-cancel btn-sm\" (click)=\"onCancelAdd()\">Cancel</button>\n </div>\n @if (isConsentType(AddForm.TypeID)) {\n <div class=\"form-row consent-row\">\n <div class=\"form-field consent-field\">\n <label>General</label>\n <select [(ngModel)]=\"AddForm.Consents[GeneralKey]\">\n @for (s of ConsentStatuses; track s) {\n <option [value]=\"s\">{{ s }}</option>\n }\n </select>\n </div>\n @for (p of ConsentPurposes; track p.ID) {\n <div class=\"form-field consent-field\">\n <label>{{ p.Name }}</label>\n <select [(ngModel)]=\"AddForm.Consents[p.ID]\">\n @for (s of ConsentStatuses; track s) {\n <option [value]=\"s\">{{ s }}</option>\n }\n </select>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- Add button footer -->\n @if (!ShowAddForm && EditingId === null && EditMode) {\n <div class=\"cm-flat-footer\">\n <button class=\"btn btn-outline full-width\" (click)=\"onShowAdd()\">\n <i class=\"fa-solid fa-plus\"></i>\n Add Contact\n </button>\n </div>\n }\n </div>\n}\n", styles: ["/* ============================================\n ContactMethodList - Flat List with Icons Design\n Pixel-perfect match to Option B mockup\n ============================================ */\n\n:host {\n display: block;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;\n color: var(--mj-text-primary);\n}\n\n.section-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 16px;\n}\n\n.section-label {\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.section-label i {\n color: var(--mj-brand-primary);\n}\n\n.count {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-weight: 400;\n}\n\n/* Flat list container */\n.cm-flat-list {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n/* Row */\n.cm-flat-row {\n display: flex;\n align-items: center;\n padding: 10px 16px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n gap: 12px;\n transition: background 0.1s;\n}\n\n.cm-flat-row:last-child {\n border-bottom: none;\n}\n\n.cm-flat-row:hover {\n background: var(--mj-bg-surface-card);\n}\n\n.cm-flat-row.primary {\n background: var(--mj-status-success-bg);\n}\n\n/* Icon */\n.cm-flat-icon {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n font-size: 15px;\n flex-shrink: 0;\n}\n\n.cm-flat-icon.icon-email {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n}\n\n.cm-flat-icon.icon-phone {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n}\n\n.cm-flat-icon.icon-mobile {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n}\n\n.cm-flat-icon.icon-linkedin {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.cm-flat-icon.icon-twitter {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.cm-flat-icon.icon-web {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n}\n\n.cm-flat-icon.icon-fax {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n}\n\n.cm-flat-icon.icon-default {\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n}\n\n/* Content */\n.cm-flat-content {\n flex: 1;\n min-width: 0;\n}\n\n.cm-flat-value {\n font-size: 14px;\n color: var(--mj-text-primary);\n cursor: pointer;\n}\n\n.cm-flat-value:hover {\n color: var(--mj-brand-primary);\n}\n\n.cm-flat-meta {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-top: 1px;\n}\n\n/* Badges */\n.cm-flat-badges {\n display: flex;\n gap: 6px;\n flex-shrink: 0;\n}\n\n.badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.badge-primary {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n}\n\n/* Actions */\n.cm-flat-actions {\n display: flex;\n gap: 2px;\n flex-shrink: 0;\n opacity: 0;\n transition: opacity 0.15s;\n}\n\n.cm-flat-row:hover .cm-flat-actions {\n opacity: 1;\n}\n\n/* Ghost buttons */\n.btn-ghost {\n background: transparent;\n color: var(--mj-text-disabled);\n padding: 6px 8px;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 13px;\n transition: all 0.15s ease;\n}\n\n.btn-ghost:hover {\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface-card);\n}\n\n.btn-ghost.danger:hover {\n color: var(--mj-status-error-text);\n background: var(--mj-status-error-bg);\n}\n\n/* Add form */\n.cm-flat-add-form {\n padding: 14px 16px;\n background: color-mix(in srgb, var(--mj-brand-primary) 5%, var(--mj-bg-surface));\n border-top: 2px solid var(--mj-brand-primary);\n display: flex;\n gap: 10px;\n align-items: flex-end;\n flex-wrap: wrap;\n}\n\n/* Edit inline row */\n.cm-flat-edit-row {\n padding: 14px 16px;\n background: color-mix(in srgb, var(--mj-brand-primary) 5%, var(--mj-bg-surface));\n border-bottom: 2px solid var(--mj-brand-primary);\n}\n\n.cm-flat-edit-row .form-row {\n display: flex;\n gap: 10px;\n align-items: flex-end;\n}\n\n/* Buttons */\n.btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.btn-primary {\n background: var(--mj-brand-primary);\n color: var(--mj-brand-on-primary);\n}\n\n.btn-primary:hover {\n background: var(--mj-brand-primary-hover);\n}\n\n.btn-cancel {\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-default);\n}\n\n.btn-cancel:hover {\n background: var(--mj-border-subtle);\n}\n\n.btn-sm {\n padding: 7px 14px;\n}\n\n/* Form fields */\n.form-field {\n display: flex;\n flex-direction: column;\n}\n\n.form-field.flex-1 {\n flex: 1;\n}\n\n.form-field label {\n display: block;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.form-field input,\n.form-field select {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 14px;\n font-family: inherit;\n background: var(--mj-bg-surface);\n}\n\n.form-field input:focus,\n.form-field select:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.form-field.type-field {\n max-width: 160px;\n}\n\n.form-field.label-field {\n max-width: 140px;\n}\n\n.checkbox-field {\n display: flex;\n align-items: center;\n gap: 8px;\n padding-top: 20px;\n}\n\n.checkbox-field input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.checkbox-field label {\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.form-actions {\n padding-top: 18px;\n display: flex;\n gap: 6px;\n}\n\n/* Copy toast */\n.copy-toast {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n background: var(--mj-text-primary);\n color: var(--mj-brand-on-primary);\n border-radius: 4px;\n font-size: 11px;\n margin-left: 8px;\n animation: fadeInOut 1.5s ease-in-out;\n}\n\n@keyframes fadeInOut {\n 0% { opacity: 0; }\n 15% { opacity: 1; }\n 70% { opacity: 1; }\n 100% { opacity: 0; }\n}\n\n/* Empty state */\n.empty-state {\n text-align: center;\n padding: 32px 16px;\n color: var(--mj-text-muted);\n font-size: 14px;\n}\n\n.empty-state i {\n font-size: 24px;\n color: var(--mj-border-strong);\n margin-bottom: 8px;\n display: block;\n}\n\n/* Loading */\n.loading-row {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n color: var(--mj-text-muted);\n font-size: 13px;\n gap: 8px;\n}\n\n.loading-row i {\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n/* Footer add button area */\n.cm-flat-footer {\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.btn-outline {\n background: transparent;\n border: 1px dashed var(--mj-border-strong);\n color: var(--mj-text-secondary);\n}\n\n.btn-outline:hover {\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 6%, var(--mj-bg-surface));\n}\n\n.btn-outline.full-width {\n width: 100%;\n justify-content: center;\n}\n\n/* Consent badge: one per contact method whose type maps to a channel */\n.badge-consent {\n cursor: default;\n text-transform: none;\n letter-spacing: 0;\n}\n\n.badge-consent.consent-in {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n}\n\n.badge-consent.consent-out {\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n}\n\n.badge-consent.consent-unknown {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-subtle);\n}\n\n/* Consent history: shown while hovering a badge, newest change first */\n.cm-flat-badges {\n position: relative;\n}\n\n.consent-history {\n position: absolute;\n top: 100%;\n right: 0;\n z-index: 20;\n min-width: 300px;\n padding: 10px 12px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n box-shadow: 0 6px 18px color-mix(in srgb, var(--mj-text-primary) 14%, transparent);\n font-size: 12px;\n color: var(--mj-text-primary);\n}\n\n.consent-history-title {\n font-weight: 600;\n margin-bottom: 6px;\n color: var(--mj-text-primary);\n}\n\n.consent-history-row {\n display: grid;\n grid-template-columns: 90px 90px 1fr;\n gap: 8px;\n padding: 3px 0;\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n.consent-history-row:first-of-type {\n border-top: none;\n}\n\n.consent-history-row.current {\n font-weight: 600;\n}\n\n.consent-history-source {\n color: var(--mj-text-secondary);\n}\n\n.consent-history-empty,\n.consent-history-note {\n color: var(--mj-text-muted);\n font-size: 11px;\n margin-top: 6px;\n}\n\n/* Consent dropdown on the add and edit rows */\n.form-field.consent-field select {\n min-width: 130px;\n}\n\n/* A method's consents: one badge per purpose (and organization), hover for history */\n.consent-badges {\n display: inline-flex;\n flex-wrap: wrap;\n gap: 6px;\n justify-content: flex-end;\n}\n\n.badge-consent .consent-purpose {\n font-weight: 500;\n opacity: 0.8;\n}\n\n.badge-consent .consent-purpose::after {\n content: '\u00B7';\n margin: 0 2px 0 4px;\n}\n\n.consent-history-row {\n grid-template-columns: 90px 1fr 90px 1fr;\n}\n\n.consent-history-purpose {\n color: var(--mj-text-secondary);\n}\n\n/* One dropdown per purpose under the add and edit rows */\n.cm-flat-add-form,\n.cm-flat-edit-row .form-row {\n flex-wrap: wrap;\n}\n\n.form-row.consent-row {\n flex-basis: 100%;\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-top: 8px;\n padding-top: 8px;\n border-top: 1px solid var(--mj-border-subtle);\n}\n"] }]
|
|
1368
|
+
args: [{ standalone: true, imports: [CommonModule, FormsModule, SharedGenericModule], selector: 'bizapps-contact-method-list', template: "<!-- ContactMethodList - Flat List with Icons Design (Option B) -->\n\n<div class=\"section-header\">\n <span class=\"section-label\">\n <i class=\"fa-solid fa-address-card\"></i>\n Contact Methods\n @if (!Loading && ContactMethods.length > 0) {\n <span class=\"count\">({{ ContactMethods.length }})</span>\n }\n </span>\n</div>\n\n@if (Loading) {\n <div class=\"cm-flat-list\">\n <div class=\"loading-row\">\n <i class=\"fa-solid fa-spinner\"></i> Loading contacts...\n </div>\n </div>\n} @else {\n <div class=\"cm-flat-list\">\n @if (ContactMethods.length === 0 && !ShowAddForm) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-address-card\"></i>\n No contact methods yet\n </div>\n }\n\n @for (cm of ContactMethods; track cm.ID) {\n <!-- Edit mode for this row -->\n @if (IsEditing(cm)) {\n <div class=\"cm-flat-edit-row\">\n <div class=\"form-row\">\n <div class=\"form-field type-field\">\n <label>Type</label>\n <select [(ngModel)]=\"EditForm.TypeID\">\n @for (t of ContactTypes; track t.ID) {\n <option [value]=\"t.ID\">{{ t.Name }}</option>\n }\n </select>\n </div>\n <div class=\"form-field flex-1\">\n <label>Value</label>\n <input type=\"text\" [(ngModel)]=\"EditForm.Value\" [placeholder]=\"getPlaceholder(EditForm.TypeID)\">\n </div>\n <div class=\"form-field label-field\">\n <label>Label</label>\n <input type=\"text\" [(ngModel)]=\"EditForm.Label\" placeholder=\"e.g., Work\">\n </div>\n <div class=\"checkbox-field\">\n <input type=\"checkbox\" [id]=\"'primary-edit-' + cm.ID\" [(ngModel)]=\"EditForm.IsPrimary\">\n <label [for]=\"'primary-edit-' + cm.ID\">Primary</label>\n </div>\n <div class=\"form-actions\">\n <button class=\"btn btn-primary btn-sm\" (click)=\"onSaveEdit()\" [disabled]=\"Saving\">\n @if (Saving) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n Save\n </button>\n <button class=\"btn btn-cancel btn-sm\" (click)=\"onCancelEdit()\">Cancel</button>\n </div>\n </div>\n @if (isConsentType(EditForm.TypeID)) {\n <div class=\"form-row consent-row\">\n <div class=\"form-field consent-field\">\n <label>General</label>\n <select [(ngModel)]=\"EditForm.Consents[GeneralKey]\">\n @for (s of ConsentStatuses; track s) {\n <option [value]=\"s\">{{ s }}</option>\n }\n </select>\n </div>\n @for (p of ConsentPurposes; track p.ID) {\n <div class=\"form-field consent-field\">\n <label>{{ p.Name }}</label>\n <select [(ngModel)]=\"EditForm.Consents[p.ID]\">\n @for (s of ConsentStatuses; track s) {\n <option [value]=\"s\">{{ s }}</option>\n }\n </select>\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <!-- Display row -->\n <div class=\"cm-flat-row\" [class.primary]=\"cm.IsPrimary\">\n <div class=\"cm-flat-icon\" [ngClass]=\"getIconColorClass(cm.ContactTypeID)\">\n <i [class]=\"getContactTypeIcon(cm.ContactTypeID)\"></i>\n </div>\n <div class=\"cm-flat-content\">\n <div class=\"cm-flat-value\" (click)=\"onCopyValue(cm.Value)\">{{ cm.Value }}</div>\n <div class=\"cm-flat-meta\">{{ getContactMeta(cm) }}</div>\n </div>\n <div class=\"cm-flat-badges\">\n @if (cm.IsPrimary) {\n <span class=\"badge badge-primary\"><i class=\"fa-solid fa-star\"></i></span>\n }\n @if (isConsentType(cm.ContactTypeID)) {\n <span class=\"consent-badges\" (mouseenter)=\"onShowConsentHistory(cm)\" (mouseleave)=\"onHideConsentHistory()\">\n @for (c of getConsents(cm); track c.ID) {\n <span class=\"badge badge-consent\" [ngClass]=\"getConsentBadgeClass(c.ConsentStatus)\">\n <i [class]=\"getConsentIcon(c.ConsentStatus)\"></i>\n <span class=\"consent-purpose\">{{ getConsentBadgeText(c) }}</span>\n {{ c.ConsentStatus }}\n </span>\n } @empty {\n <span class=\"badge badge-consent consent-unknown\">\n <i class=\"fa-regular fa-circle-question\"></i>\n Not Specified\n </span>\n }\n </span>\n @if (IsShowingConsentHistory(cm)) {\n <div class=\"consent-history\" (mouseenter)=\"onShowConsentHistory(cm)\" (mouseleave)=\"onHideConsentHistory()\">\n <div class=\"consent-history-title\">Consent history \u00B7 {{ cm.Value }}</div>\n @if (ConsentHistoryLoading) {\n <mj-loading Text=\"Loading history...\" Size=\"small\"></mj-loading>\n } @else {\n @for (h of ConsentHistory; track h.ID) {\n <div class=\"consent-history-row\">\n <span>{{ h.ConsentStatusAt | date:'mediumDate' }}</span>\n <span class=\"consent-history-purpose\">{{ h.Purpose }}@if (h.RequestingOrganization) { \u00B7 {{ h.RequestingOrganization }}}</span>\n <span>{{ h.NewConsentStatus }}</span>\n <span class=\"consent-history-source\">{{ h.ConsentSource }}@if (h.ConsentDetails) { \u00B7 {{ h.ConsentDetails }}}</span>\n </div>\n } @empty {\n <div class=\"consent-history-empty\">No consent recorded yet</div>\n }\n <div class=\"consent-history-note\">Newest first; the top row for each purpose is its current status</div>\n }\n </div>\n }\n }\n </div>\n <div class=\"cm-flat-actions\">\n @if (EditMode && !cm.IsPrimary) {\n <button class=\"btn-ghost\" title=\"Set Primary\" (click)=\"onSetPrimary(cm)\">\n <i class=\"fa-regular fa-star\"></i>\n </button>\n }\n @if (isLinkType(cm.ContactTypeID)) {\n <button class=\"btn-ghost\" title=\"Open\" (click)=\"onOpenLink(cm.Value)\">\n <i class=\"fa-solid fa-external-link\"></i>\n </button>\n } @else {\n <button class=\"btn-ghost\" title=\"Copy\" (click)=\"onCopyValue(cm.Value)\">\n <i class=\"fa-solid fa-copy\"></i>\n </button>\n }\n @if (EditMode) {\n <button class=\"btn-ghost\" title=\"Edit\" (click)=\"onEdit(cm)\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n <button class=\"btn-ghost danger\" title=\"Remove\" (click)=\"onDelete(cm)\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n </div>\n }\n }\n\n <!-- Add form -->\n @if (ShowAddForm) {\n <div class=\"cm-flat-add-form\">\n <div class=\"form-field type-field\">\n <label>Type</label>\n <select [(ngModel)]=\"AddForm.TypeID\">\n @for (t of ContactTypes; track t.ID) {\n <option [value]=\"t.ID\">{{ t.Name }}</option>\n }\n </select>\n </div>\n <div class=\"form-field flex-1\">\n <label>Value</label>\n <input type=\"text\" [(ngModel)]=\"AddForm.Value\" [placeholder]=\"getPlaceholder(AddForm.TypeID)\">\n </div>\n <div class=\"form-field label-field\">\n <label>Label</label>\n <input type=\"text\" [(ngModel)]=\"AddForm.Label\" placeholder=\"e.g., Direct Line\">\n </div>\n <div class=\"checkbox-field\">\n <input type=\"checkbox\" id=\"primary-add\" [(ngModel)]=\"AddForm.IsPrimary\">\n <label for=\"primary-add\">Primary</label>\n </div>\n <div class=\"form-actions\">\n <button class=\"btn btn-primary btn-sm\" (click)=\"onSaveAdd()\" [disabled]=\"Saving\">\n @if (Saving) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n Add\n </button>\n <button class=\"btn btn-cancel btn-sm\" (click)=\"onCancelAdd()\">Cancel</button>\n </div>\n @if (isConsentType(AddForm.TypeID)) {\n <div class=\"form-row consent-row\">\n <div class=\"form-field consent-field\">\n <label>General</label>\n <select [(ngModel)]=\"AddForm.Consents[GeneralKey]\">\n @for (s of ConsentStatuses; track s) {\n <option [value]=\"s\">{{ s }}</option>\n }\n </select>\n </div>\n @for (p of ConsentPurposes; track p.ID) {\n <div class=\"form-field consent-field\">\n <label>{{ p.Name }}</label>\n <select [(ngModel)]=\"AddForm.Consents[p.ID]\">\n @for (s of ConsentStatuses; track s) {\n <option [value]=\"s\">{{ s }}</option>\n }\n </select>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- Add button footer -->\n @if (!ShowAddForm && EditingId === null && EditMode) {\n <div class=\"cm-flat-footer\">\n <button class=\"btn btn-outline full-width\" (click)=\"onShowAdd()\">\n <i class=\"fa-solid fa-plus\"></i>\n Add Contact\n </button>\n </div>\n }\n </div>\n}\n", styles: ["/* ============================================\n ContactMethodList - Flat List with Icons Design\n Pixel-perfect match to Option B mockup\n ============================================ */\n\n:host {\n display: block;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;\n color: var(--mj-text-primary);\n}\n\n.section-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 16px;\n}\n\n.section-label {\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.section-label i {\n color: var(--mj-brand-primary);\n}\n\n.count {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-weight: 400;\n}\n\n/* Flat list container */\n.cm-flat-list {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n/* Row */\n.cm-flat-row {\n display: flex;\n align-items: center;\n padding: 10px 16px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n gap: 12px;\n transition: background 0.1s;\n}\n\n.cm-flat-row:last-child {\n border-bottom: none;\n}\n\n.cm-flat-row:hover {\n background: var(--mj-bg-surface-card);\n}\n\n.cm-flat-row.primary {\n background: var(--mj-status-success-bg);\n}\n\n/* Icon */\n.cm-flat-icon {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n font-size: 15px;\n flex-shrink: 0;\n}\n\n.cm-flat-icon.icon-email {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n}\n\n.cm-flat-icon.icon-phone {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n}\n\n.cm-flat-icon.icon-mobile {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n}\n\n.cm-flat-icon.icon-linkedin {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.cm-flat-icon.icon-twitter {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.cm-flat-icon.icon-web {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n}\n\n.cm-flat-icon.icon-fax {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n}\n\n.cm-flat-icon.icon-default {\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n}\n\n/* Content */\n.cm-flat-content {\n flex: 1;\n min-width: 0;\n}\n\n.cm-flat-value {\n font-size: 14px;\n color: var(--mj-text-primary);\n cursor: pointer;\n}\n\n.cm-flat-value:hover {\n color: var(--mj-brand-primary);\n}\n\n.cm-flat-meta {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-top: 1px;\n}\n\n/* Badges */\n.cm-flat-badges {\n display: flex;\n gap: 6px;\n flex-shrink: 0;\n}\n\n.badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.badge-primary {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n}\n\n/* Actions */\n.cm-flat-actions {\n display: flex;\n gap: 2px;\n flex-shrink: 0;\n opacity: 0;\n transition: opacity 0.15s;\n}\n\n.cm-flat-row:hover .cm-flat-actions {\n opacity: 1;\n}\n\n/* Ghost buttons */\n.btn-ghost {\n background: transparent;\n color: var(--mj-text-disabled);\n padding: 6px 8px;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 13px;\n transition: all 0.15s ease;\n}\n\n.btn-ghost:hover {\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface-card);\n}\n\n.btn-ghost.danger:hover {\n color: var(--mj-status-error-text);\n background: var(--mj-status-error-bg);\n}\n\n/* Add form */\n.cm-flat-add-form {\n padding: 14px 16px;\n background: color-mix(in srgb, var(--mj-brand-primary) 5%, var(--mj-bg-surface));\n border-top: 2px solid var(--mj-brand-primary);\n display: flex;\n gap: 10px;\n align-items: flex-end;\n flex-wrap: wrap;\n}\n\n/* Edit inline row */\n.cm-flat-edit-row {\n padding: 14px 16px;\n background: color-mix(in srgb, var(--mj-brand-primary) 5%, var(--mj-bg-surface));\n border-bottom: 2px solid var(--mj-brand-primary);\n}\n\n.cm-flat-edit-row .form-row {\n display: flex;\n gap: 10px;\n align-items: flex-end;\n}\n\n/* Buttons */\n.btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.btn-primary {\n background: var(--mj-brand-primary);\n color: var(--mj-brand-on-primary);\n}\n\n.btn-primary:hover {\n background: var(--mj-brand-primary-hover);\n}\n\n.btn-cancel {\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-default);\n}\n\n.btn-cancel:hover {\n background: var(--mj-border-subtle);\n}\n\n.btn-sm {\n padding: 7px 14px;\n}\n\n/* Form fields */\n.form-field {\n display: flex;\n flex-direction: column;\n}\n\n.form-field.flex-1 {\n flex: 1;\n}\n\n.form-field label {\n display: block;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.form-field input,\n.form-field select {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 14px;\n font-family: inherit;\n background: var(--mj-bg-surface);\n}\n\n.form-field input:focus,\n.form-field select:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.form-field.type-field {\n max-width: 160px;\n}\n\n.form-field.label-field {\n max-width: 140px;\n}\n\n.checkbox-field {\n display: flex;\n align-items: center;\n gap: 8px;\n padding-top: 20px;\n}\n\n.checkbox-field input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.checkbox-field label {\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.form-actions {\n padding-top: 18px;\n display: flex;\n gap: 6px;\n}\n\n/* Copy toast */\n.copy-toast {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n background: var(--mj-text-primary);\n color: var(--mj-brand-on-primary);\n border-radius: 4px;\n font-size: 11px;\n margin-left: 8px;\n animation: fadeInOut 1.5s ease-in-out;\n}\n\n@keyframes fadeInOut {\n 0% { opacity: 0; }\n 15% { opacity: 1; }\n 70% { opacity: 1; }\n 100% { opacity: 0; }\n}\n\n/* Empty state */\n.empty-state {\n text-align: center;\n padding: 32px 16px;\n color: var(--mj-text-muted);\n font-size: 14px;\n}\n\n.empty-state i {\n font-size: 24px;\n color: var(--mj-border-strong);\n margin-bottom: 8px;\n display: block;\n}\n\n/* Loading */\n.loading-row {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n color: var(--mj-text-muted);\n font-size: 13px;\n gap: 8px;\n}\n\n.loading-row i {\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n/* Footer add button area */\n.cm-flat-footer {\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.btn-outline {\n background: transparent;\n border: 1px dashed var(--mj-border-strong);\n color: var(--mj-text-secondary);\n}\n\n.btn-outline:hover {\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 6%, var(--mj-bg-surface));\n}\n\n.btn-outline.full-width {\n width: 100%;\n justify-content: center;\n}\n\n/* Consent badge: one per contact method whose type maps to a channel */\n.badge-consent {\n cursor: default;\n text-transform: none;\n letter-spacing: 0;\n}\n\n.badge-consent.consent-in {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n}\n\n.badge-consent.consent-out {\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n}\n\n.badge-consent.consent-unknown {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-subtle);\n}\n\n/* Consent history: shown while hovering a badge, newest change first */\n.cm-flat-badges {\n position: relative;\n}\n\n.consent-history {\n position: absolute;\n top: 100%;\n right: 0;\n z-index: 20;\n min-width: 300px;\n padding: 10px 12px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n box-shadow: 0 6px 18px color-mix(in srgb, var(--mj-text-primary) 14%, transparent);\n font-size: 12px;\n color: var(--mj-text-primary);\n}\n\n.consent-history-title {\n font-weight: 600;\n margin-bottom: 6px;\n color: var(--mj-text-primary);\n}\n\n.consent-history-row {\n display: grid;\n grid-template-columns: 90px 90px 1fr;\n gap: 8px;\n padding: 3px 0;\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n.consent-history-row:first-of-type {\n border-top: none;\n}\n\n.consent-history-row.current {\n font-weight: 600;\n}\n\n.consent-history-source {\n color: var(--mj-text-secondary);\n}\n\n.consent-history-empty,\n.consent-history-note {\n color: var(--mj-text-muted);\n font-size: 11px;\n margin-top: 6px;\n}\n\n/* Consent dropdown on the add and edit rows */\n.form-field.consent-field select {\n min-width: 130px;\n}\n\n/* A method's consents: one badge per purpose (and organization), hover for history */\n.consent-badges {\n display: inline-flex;\n flex-wrap: wrap;\n gap: 6px;\n justify-content: flex-end;\n}\n\n.badge-consent .consent-purpose {\n font-weight: 500;\n opacity: 0.8;\n}\n\n.badge-consent .consent-purpose::after {\n content: '\u00B7';\n margin: 0 2px 0 4px;\n}\n\n.consent-history-row {\n grid-template-columns: 90px 1fr 90px 1fr;\n}\n\n.consent-history-purpose {\n color: var(--mj-text-secondary);\n}\n\n/* One dropdown per purpose under the add and edit rows */\n.cm-flat-add-form,\n.cm-flat-edit-row .form-row {\n flex-wrap: wrap;\n}\n\n.form-row.consent-row {\n flex-basis: 100%;\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-top: 8px;\n padding-top: 8px;\n border-top: 1px solid var(--mj-border-subtle);\n}\n"] }]
|
|
1356
1369
|
}], null, { EditMode: [{
|
|
1357
1370
|
type: Input
|
|
1358
1371
|
}], Provider: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contact-method-list.component.js","sourceRoot":"","sources":["../../../../src/lib/components/contact-method-list/contact-method-list.component.ts","../../../../src/lib/components/contact-method-list/contact-method-list.component.html"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contact-method-list.component.js","sourceRoot":"","sources":["../../../../src/lib/components/contact-method-list/contact-method-list.component.ts","../../../../src/lib/components/contact-method-list/contact-method-list.component.html"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #311 — the Activity hero's "Thread / Parent" link gated on the virtual `ParentActivity` name field,
|
|
3
|
+
* which V202609112330 removes on hosts whose `vwActivities` lacks the column. There it always reads
|
|
4
|
+
* null, so an activity with a parent showed no link. The hero now gates on `ParentActivityID` and
|
|
5
|
+
* reads the parent's Title itself.
|
|
6
|
+
*/
|
|
7
|
+
import '@angular/compiler';
|
|
8
|
+
//# sourceMappingURL=activity-identity-parent.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-identity-parent.test.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/identity-header/__tests__/activity-identity-parent.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #311 — the Activity hero's "Thread / Parent" link gated on the virtual `ParentActivity` name field,
|
|
3
|
+
* which V202609112330 removes on hosts whose `vwActivities` lacks the column. There it always reads
|
|
4
|
+
* null, so an activity with a parent showed no link. The hero now gates on `ParentActivityID` and
|
|
5
|
+
* reads the parent's Title itself.
|
|
6
|
+
*/
|
|
7
|
+
import '@angular/compiler';
|
|
8
|
+
import { readFileSync } from 'node:fs';
|
|
9
|
+
import { fileURLToPath } from 'node:url';
|
|
10
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
11
|
+
const H = vi.hoisted(() => ({ runView: vi.fn() }));
|
|
12
|
+
vi.mock('@memberjunction/core', async (importOriginal) => {
|
|
13
|
+
const actual = await importOriginal();
|
|
14
|
+
class MockRunView {
|
|
15
|
+
RunView = H.runView;
|
|
16
|
+
}
|
|
17
|
+
return { ...actual, RunView: MockRunView, LogError: () => undefined };
|
|
18
|
+
});
|
|
19
|
+
import { UserInfoEngine } from '@memberjunction/core-entities';
|
|
20
|
+
import { ActivityIdentityComponent } from '../activity-identity.component';
|
|
21
|
+
const TEMPLATE = readFileSync(fileURLToPath(new URL('../activity-identity.component.html', import.meta.url)), 'utf8');
|
|
22
|
+
const PARENT_ID = 'A1B2C3D4-0000-0000-0000-000000000001';
|
|
23
|
+
function build(parentID) {
|
|
24
|
+
const component = new ActivityIdentityComponent();
|
|
25
|
+
component.Record = { ParentActivityID: parentID, RunViewProviderToUse: {} };
|
|
26
|
+
return component;
|
|
27
|
+
}
|
|
28
|
+
describe('ActivityIdentityComponent parent link (#311)', () => {
|
|
29
|
+
beforeEach(() => {
|
|
30
|
+
vi.spyOn(UserInfoEngine.Instance, 'GetSetting').mockReturnValue(undefined);
|
|
31
|
+
H.runView.mockReset();
|
|
32
|
+
H.runView.mockResolvedValue({ Success: true, Results: [{ Title: 'Kickoff call' }] });
|
|
33
|
+
});
|
|
34
|
+
it('gates the link on ParentActivityID, not on the virtual ParentActivity field', () => {
|
|
35
|
+
expect(TEMPLATE).toContain('@if (Record.ParentActivityID) {');
|
|
36
|
+
expect(TEMPLATE).not.toMatch(/Record\.ParentActivity\b(?!ID)/);
|
|
37
|
+
});
|
|
38
|
+
it("labels the link with the parent's Title", async () => {
|
|
39
|
+
const component = build(PARENT_ID);
|
|
40
|
+
component.ngOnInit();
|
|
41
|
+
await vi.waitFor(() => expect(component.ParentActivityLabel).toBe('Kickoff call'));
|
|
42
|
+
const params = H.runView.mock.calls[0][0];
|
|
43
|
+
expect(params.EntityName).toBe('MJ_BizApps_Common: Activities');
|
|
44
|
+
expect(params.ExtraFilter).toBe(`ID = '${PARENT_ID}'`);
|
|
45
|
+
});
|
|
46
|
+
it('matches the loaded parent regardless of UUID case', async () => {
|
|
47
|
+
const component = build(PARENT_ID);
|
|
48
|
+
component.ngOnInit();
|
|
49
|
+
await vi.waitFor(() => expect(component.ParentActivityLabel).toBe('Kickoff call'));
|
|
50
|
+
component.Record.ParentActivityID = PARENT_ID.toLowerCase();
|
|
51
|
+
expect(component.ParentActivityLabel).toBe('Kickoff call');
|
|
52
|
+
});
|
|
53
|
+
it('falls back to a generic label when the parent cannot be read, or the parent changed', async () => {
|
|
54
|
+
H.runView.mockResolvedValue({ Success: false, ErrorMessage: 'denied', Results: [] });
|
|
55
|
+
const failed = build(PARENT_ID);
|
|
56
|
+
failed.ngOnInit();
|
|
57
|
+
await vi.waitFor(() => expect(H.runView).toHaveBeenCalled());
|
|
58
|
+
expect(failed.ParentActivityLabel).toBe('Parent activity');
|
|
59
|
+
H.runView.mockResolvedValue({ Success: true, Results: [{ Title: 'Kickoff call' }] });
|
|
60
|
+
const moved = build(PARENT_ID);
|
|
61
|
+
moved.ngOnInit();
|
|
62
|
+
await vi.waitFor(() => expect(moved.ParentActivityLabel).toBe('Kickoff call'));
|
|
63
|
+
moved.Record.ParentActivityID = 'A1B2C3D4-0000-0000-0000-000000000002';
|
|
64
|
+
expect(moved.ParentActivityLabel).toBe('Parent activity');
|
|
65
|
+
});
|
|
66
|
+
it('queries nothing for a parent ID that is not a UUID', () => {
|
|
67
|
+
build("x' OR 1=1 --").ngOnInit();
|
|
68
|
+
expect(H.runView).not.toHaveBeenCalled();
|
|
69
|
+
});
|
|
70
|
+
it('queries nothing for an activity with no parent', () => {
|
|
71
|
+
build(null).ngOnInit();
|
|
72
|
+
expect(H.runView).not.toHaveBeenCalled();
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
//# sourceMappingURL=activity-identity-parent.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-identity-parent.test.js","sourceRoot":"","sources":["../../../../../src/lib/components/identity-header/__tests__/activity-identity-parent.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #343 — the Organization and Person heroes claim the generated identity sections
|
|
3
|
+
* (`replacesSectionKey`), and a claim hides the generated section outright: rail item and Manage
|
|
4
|
+
* Sections entry included. So the hero is the only place those fields can be edited. The heroes
|
|
5
|
+
* rendered a subset of them (Organizations lost Type, Description, Founded date, Tax ID and Status;
|
|
6
|
+
* People lost Middle name and Display name), and put even that subset behind the collapse toggle.
|
|
7
|
+
*
|
|
8
|
+
* Both are structural, so these tests read the structures: the registration's claim, the generated
|
|
9
|
+
* section's field list, and the hero template.
|
|
10
|
+
*/
|
|
11
|
+
import '@angular/compiler';
|
|
12
|
+
//# sourceMappingURL=identity-hero-claims.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-hero-claims.test.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/identity-header/__tests__/identity-hero-claims.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,mBAAmB,CAAC"}
|