@mj-biz-apps/common-ng 5.64.0 → 5.66.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 (64) hide show
  1. package/dist/lib/components/__tests__/uuid-casing.test.d.ts +7 -0
  2. package/dist/lib/components/__tests__/uuid-casing.test.d.ts.map +1 -0
  3. package/dist/lib/components/__tests__/uuid-casing.test.js +78 -0
  4. package/dist/lib/components/__tests__/uuid-casing.test.js.map +1 -0
  5. package/dist/lib/components/address-editor/address-editor.component.d.ts.map +1 -1
  6. package/dist/lib/components/address-editor/address-editor.component.js +9 -7
  7. package/dist/lib/components/address-editor/address-editor.component.js.map +1 -1
  8. package/dist/lib/components/contact-method-list/contact-method-list.component.d.ts +9 -2
  9. package/dist/lib/components/contact-method-list/contact-method-list.component.d.ts.map +1 -1
  10. package/dist/lib/components/contact-method-list/contact-method-list.component.js +35 -22
  11. package/dist/lib/components/contact-method-list/contact-method-list.component.js.map +1 -1
  12. package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.d.ts +8 -0
  13. package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.d.ts.map +1 -0
  14. package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.js +75 -0
  15. package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.js.map +1 -0
  16. package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.d.ts +12 -0
  17. package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.d.ts.map +1 -0
  18. package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.js +94 -0
  19. package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.js.map +1 -0
  20. package/dist/lib/components/identity-header/activity-identity.component.d.ts +9 -0
  21. package/dist/lib/components/identity-header/activity-identity.component.d.ts.map +1 -1
  22. package/dist/lib/components/identity-header/activity-identity.component.js +115 -73
  23. package/dist/lib/components/identity-header/activity-identity.component.js.map +1 -1
  24. package/dist/lib/components/identity-header/organization-identity.component.js +51 -20
  25. package/dist/lib/components/identity-header/organization-identity.component.js.map +1 -1
  26. package/dist/lib/components/identity-header/person-identity.component.js +41 -30
  27. package/dist/lib/components/identity-header/person-identity.component.js.map +1 -1
  28. package/dist/lib/components/org-hierarchy-tree/org-hierarchy-tree.component.d.ts.map +1 -1
  29. package/dist/lib/components/org-hierarchy-tree/org-hierarchy-tree.component.js +11 -7
  30. package/dist/lib/components/org-hierarchy-tree/org-hierarchy-tree.component.js.map +1 -1
  31. package/dist/lib/components/party-field/party-field.component.js +5 -5
  32. package/dist/lib/components/party-field/party-field.component.js.map +1 -1
  33. package/dist/lib/components/related-chips/related-chips.component.d.ts +1 -1
  34. package/dist/lib/components/related-chips/related-chips.component.d.ts.map +1 -1
  35. package/dist/lib/components/related-chips/related-chips.component.js +34 -23
  36. package/dist/lib/components/related-chips/related-chips.component.js.map +1 -1
  37. package/dist/lib/components/relationship-graph/common-relationship-graph.component.d.ts.map +1 -1
  38. package/dist/lib/components/relationship-graph/common-relationship-graph.component.js +29 -20
  39. package/dist/lib/components/relationship-graph/common-relationship-graph.component.js.map +1 -1
  40. package/dist/lib/components/relationship-list/relationship-list.component.js +13 -11
  41. package/dist/lib/components/relationship-list/relationship-list.component.js.map +1 -1
  42. package/dist/lib/components/selling-company-field/__tests__/selling-company-field.component.test.js +110 -4
  43. package/dist/lib/components/selling-company-field/__tests__/selling-company-field.component.test.js.map +1 -1
  44. package/dist/lib/components/selling-company-field/selling-company-field.component.d.ts +34 -3
  45. package/dist/lib/components/selling-company-field/selling-company-field.component.d.ts.map +1 -1
  46. package/dist/lib/components/selling-company-field/selling-company-field.component.js +153 -6
  47. package/dist/lib/components/selling-company-field/selling-company-field.component.js.map +1 -1
  48. package/dist/lib/custom/panels/activity-content.panel.js +2 -2
  49. package/dist/lib/custom/panels/activity-hierarchy.panel.js +2 -2
  50. package/dist/lib/custom/panels/activity-hierarchy.panel.js.map +1 -1
  51. package/dist/lib/custom/panels/activity-links.panel.d.ts.map +1 -1
  52. package/dist/lib/custom/panels/activity-links.panel.js +12 -5
  53. package/dist/lib/custom/panels/activity-links.panel.js.map +1 -1
  54. package/dist/lib/custom/panels/activity-type-hierarchy.panel.js +2 -2
  55. package/dist/lib/custom/panels/activity-type-hierarchy.panel.js.map +1 -1
  56. package/dist/lib/custom/panels/organization-staff.panel.d.ts.map +1 -1
  57. package/dist/lib/custom/panels/organization-staff.panel.js +15 -7
  58. package/dist/lib/custom/panels/organization-staff.panel.js.map +1 -1
  59. package/dist/lib/pages/activities-dashboard.page.d.ts +2 -0
  60. package/dist/lib/pages/activities-dashboard.page.d.ts.map +1 -1
  61. package/dist/lib/pages/activities-dashboard.page.js +10 -5
  62. package/dist/lib/pages/activities-dashboard.page.js.map +1 -1
  63. package/dist/lib/pages/common-dashboard.page.js +2 -2
  64. 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.ConsentHistoryFor === cm_r9.ID ? 4 : -1);
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.EditingId === cm_r9.ID ? 0 : 1);
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 contact method ID. */
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
- /** History already read this session, by contact method ID; dropped for a row when it is saved. */
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 list = this.consentsByMethod.get(consent.ContactMethodID) ?? [];
811
+ const key = NormalizeUUID(consent.ContactMethodID);
812
+ const list = this.consentsByMethod.get(key) ?? [];
809
813
  list.push(consent);
810
- this.consentsByMethod.set(consent.ContactMethodID, list);
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 === typeID);
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 === typeID);
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 === typeID);
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 === typeID);
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 === typeID);
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 === typeID);
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.ConsentHistoryFor === cm.ID) {
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
- TypeID: cm.ContactTypeID,
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 === this.EditingId);
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 === typeID && c.IsPrimary);
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"}