@memberjunction/ng-base-forms 4.4.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/lib/__tests__/base-forms.test.js +52 -52
  2. package/dist/lib/__tests__/base-forms.test.js.map +1 -1
  3. package/dist/lib/base-form-component.d.ts +2 -2
  4. package/dist/lib/base-form-component.d.ts.map +1 -1
  5. package/dist/lib/base-form-component.js +1 -1
  6. package/dist/lib/base-form-component.js.map +1 -1
  7. package/dist/lib/container/record-form-container.component.d.ts +2 -0
  8. package/dist/lib/container/record-form-container.component.d.ts.map +1 -1
  9. package/dist/lib/container/record-form-container.component.js +57 -29
  10. package/dist/lib/container/record-form-container.component.js.map +1 -1
  11. package/dist/lib/isa-related-panel/isa-hierarchy-utils.d.ts +62 -0
  12. package/dist/lib/isa-related-panel/isa-hierarchy-utils.d.ts.map +1 -0
  13. package/dist/lib/isa-related-panel/isa-hierarchy-utils.js +135 -0
  14. package/dist/lib/isa-related-panel/isa-hierarchy-utils.js.map +1 -0
  15. package/dist/lib/isa-related-panel/isa-related-card.component.d.ts +69 -0
  16. package/dist/lib/isa-related-panel/isa-related-card.component.d.ts.map +1 -0
  17. package/dist/lib/isa-related-panel/isa-related-card.component.js +347 -0
  18. package/dist/lib/isa-related-panel/isa-related-card.component.js.map +1 -0
  19. package/dist/lib/isa-related-panel/isa-related-panel.component.d.ts +70 -0
  20. package/dist/lib/isa-related-panel/isa-related-panel.component.d.ts.map +1 -0
  21. package/dist/lib/isa-related-panel/isa-related-panel.component.js +190 -0
  22. package/dist/lib/isa-related-panel/isa-related-panel.component.js.map +1 -0
  23. package/dist/lib/toolbar/form-toolbar.component.d.ts +38 -0
  24. package/dist/lib/toolbar/form-toolbar.component.d.ts.map +1 -1
  25. package/dist/lib/toolbar/form-toolbar.component.js +249 -100
  26. package/dist/lib/toolbar/form-toolbar.component.js.map +1 -1
  27. package/dist/module.d.ts +8 -6
  28. package/dist/module.d.ts.map +1 -1
  29. package/dist/module.js +14 -4
  30. package/dist/module.js.map +1 -1
  31. package/dist/public-api.d.ts +3 -0
  32. package/dist/public-api.d.ts.map +1 -1
  33. package/dist/public-api.js +3 -0
  34. package/dist/public-api.js.map +1 -1
  35. package/package.json +8 -8
@@ -9,19 +9,20 @@ import * as i1 from "@memberjunction/ng-record-changes";
9
9
  import * as i2 from "@memberjunction/ng-list-management";
10
10
  import * as i3 from "../toolbar/form-toolbar.component";
11
11
  import * as i4 from "../section-manager/section-manager.component";
12
+ import * as i5 from "../isa-related-panel/isa-related-panel.component";
12
13
  const _c0 = [[["", "before-toolbar", ""]], "*"];
13
14
  const _c1 = ["[before-toolbar]", "*"];
14
15
  const _c2 = a0 => [a0];
15
16
  const _c3 = (a0, a1, a2) => ({ mode: "manage", entityId: a0, entityName: a1, recordIds: a2, allowCreate: true });
16
- function MjRecordFormContainerComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
17
+ function MjRecordFormContainerComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
17
18
  const _r1 = i0.ɵɵgetCurrentView();
18
- i0.ɵɵelementStart(0, "div", 4)(1, "div", 8);
19
- i0.ɵɵelement(2, "i", 9);
19
+ i0.ɵɵelementStart(0, "div", 5)(1, "div", 10);
20
+ i0.ɵɵelement(2, "i", 11);
20
21
  i0.ɵɵelementEnd();
21
- i0.ɵɵelementStart(3, "h3", 10);
22
+ i0.ɵɵelementStart(3, "h3", 12);
22
23
  i0.ɵɵtext(4, "No sections found");
23
24
  i0.ɵɵelementEnd();
24
- i0.ɵɵelementStart(5, "p", 11);
25
+ i0.ɵɵelementStart(5, "p", 13);
25
26
  i0.ɵɵtext(6, " No sections match \"");
26
27
  i0.ɵɵelementStart(7, "strong");
27
28
  i0.ɵɵtext(8);
@@ -29,8 +30,8 @@ function MjRecordFormContainerComponent_Conditional_6_Template(rf, ctx) { if (rf
29
30
  i0.ɵɵtext(9, "\". ");
30
31
  i0.ɵɵelement(10, "br");
31
32
  i0.ɵɵtext(11, "Try a different search term or ");
32
- i0.ɵɵelementStart(12, "a", 12);
33
- i0.ɵɵlistener("click", function MjRecordFormContainerComponent_Conditional_6_Template_a_click_12_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); ctx_r1.OnFilterChange(""); return i0.ɵɵresetView($event.preventDefault()); });
33
+ i0.ɵɵelementStart(12, "a", 14);
34
+ i0.ɵɵlistener("click", function MjRecordFormContainerComponent_Conditional_7_Template_a_click_12_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); ctx_r1.OnFilterChange(""); return i0.ɵɵresetView($event.preventDefault()); });
34
35
  i0.ɵɵtext(13, "clear the search");
35
36
  i0.ɵɵelementEnd();
36
37
  i0.ɵɵtext(14, ". ");
@@ -40,19 +41,19 @@ function MjRecordFormContainerComponent_Conditional_6_Template(rf, ctx) { if (rf
40
41
  i0.ɵɵadvance(8);
41
42
  i0.ɵɵtextInterpolate(ctx_r1.EffectiveSearchFilter);
42
43
  } }
43
- function MjRecordFormContainerComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
44
+ function MjRecordFormContainerComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
44
45
  const _r3 = i0.ɵɵgetCurrentView();
45
- i0.ɵɵelementStart(0, "mj-record-changes", 13);
46
- i0.ɵɵlistener("dialogClosed", function MjRecordFormContainerComponent_Conditional_7_Template_mj_record_changes_dialogClosed_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnRecordChangesClosed()); });
46
+ i0.ɵɵelementStart(0, "mj-record-changes", 15);
47
+ i0.ɵɵlistener("dialogClosed", function MjRecordFormContainerComponent_Conditional_9_Template_mj_record_changes_dialogClosed_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnRecordChangesClosed()); });
47
48
  i0.ɵɵelementEnd();
48
49
  } if (rf & 2) {
49
50
  const ctx_r1 = i0.ɵɵnextContext();
50
51
  i0.ɵɵproperty("record", ctx_r1.EffectiveRecord);
51
52
  } }
52
- function MjRecordFormContainerComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
53
+ function MjRecordFormContainerComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
53
54
  const _r4 = i0.ɵɵgetCurrentView();
54
- i0.ɵɵelementStart(0, "mj-list-management-dialog", 14);
55
- i0.ɵɵlistener("complete", function MjRecordFormContainerComponent_Conditional_8_Template_mj_list_management_dialog_complete_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnListManagementClosed()); })("cancel", function MjRecordFormContainerComponent_Conditional_8_Template_mj_list_management_dialog_cancel_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnListManagementClosed()); });
55
+ i0.ɵɵelementStart(0, "mj-list-management-dialog", 16);
56
+ i0.ɵɵlistener("complete", function MjRecordFormContainerComponent_Conditional_10_Template_mj_list_management_dialog_complete_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnListManagementClosed()); })("cancel", function MjRecordFormContainerComponent_Conditional_10_Template_mj_list_management_dialog_cancel_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnListManagementClosed()); });
56
57
  i0.ɵɵelementEnd();
57
58
  } if (rf & 2) {
58
59
  const ctx_r1 = i0.ɵɵnextContext();
@@ -238,6 +239,28 @@ export class MjRecordFormContainerComponent {
238
239
  return 0;
239
240
  return this.Panels.filter(p => p.Expanded && p.IsVisible).length;
240
241
  }
242
+ // ---- IS-A Related Panel ----
243
+ /** Whether the current record has IS-A related items to display in the side panel */
244
+ get HasIsaRelatedItems() {
245
+ const record = this.EffectiveRecord;
246
+ if (!record?.EntityInfo)
247
+ return false;
248
+ const entityInfo = record.EntityInfo;
249
+ // Child entity with overlapping parent — may have siblings
250
+ if (entityInfo.IsChildType && entityInfo.ParentEntityInfo?.AllowMultipleSubtypes) {
251
+ const parent = record.ISAParent;
252
+ if (parent?.ISAChildren && parent.ISAChildren.length > 1)
253
+ return true;
254
+ }
255
+ // Parent entity with children
256
+ if (entityInfo.IsParentType) {
257
+ if (entityInfo.AllowMultipleSubtypes && record.ISAChildren && record.ISAChildren.length > 0)
258
+ return true;
259
+ if (!entityInfo.AllowMultipleSubtypes && record.ISAChild)
260
+ return true;
261
+ }
262
+ return false;
263
+ }
241
264
  // ---- Section Manager ----
242
265
  /** Builds section info array from projected panels for the section manager drawer */
243
266
  get SectionManagerItems() {
@@ -475,39 +498,44 @@ export class MjRecordFormContainerComponent {
475
498
  } if (rf & 2) {
476
499
  let _t;
477
500
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.Panels = _t);
478
- } }, inputs: { Record: "Record", FormComponent: "FormComponent", EntityInfo: "EntityInfo", EditMode: "EditMode", UserCanEdit: "UserCanEdit", UserCanDelete: "UserCanDelete", IsFavorite: "IsFavorite", FavoriteInitDone: "FavoriteInitDone", IsDirty: "IsDirty", DirtyFieldNames: "DirtyFieldNames", ListCount: "ListCount", IsSaving: "IsSaving", ToolbarConfig: "ToolbarConfig", WidthMode: "WidthMode" }, outputs: { Navigate: "Navigate", EditModeChange: "EditModeChange", BeforeSave: "BeforeSave", SaveRequested: "SaveRequested", BeforeCancel: "BeforeCancel", CancelRequested: "CancelRequested", BeforeDelete: "BeforeDelete", DeleteRequested: "DeleteRequested", FavoriteToggled: "FavoriteToggled", BeforeHistoryView: "BeforeHistoryView", HistoryRequested: "HistoryRequested", BeforeListManagement: "BeforeListManagement", ListManagementRequested: "ListManagementRequested", ShowChangesRequested: "ShowChangesRequested", CustomButtonClick: "CustomButtonClick" }, standalone: false, ngContentSelectors: _c1, decls: 10, vars: 29, consts: [[3, "Navigate", "EditModeChange", "BeforeSave", "SaveRequested", "BeforeCancel", "CancelRequested", "BeforeDelete", "DeleteRequested", "FavoriteToggled", "BeforeHistoryView", "HistoryRequested", "BeforeListManagement", "ListManagementRequested", "ShowChangesRequested", "CustomButtonClick", "FilterChange", "ExpandAllRequested", "CollapseAllRequested", "ShowEmptyFieldsChange", "WidthModeChange", "ResetSectionOrderRequested", "ManageSectionsRequested", "Record", "EditMode", "UserCanEdit", "UserCanDelete", "IsFavorite", "FavoriteInitDone", "IsDirty", "DirtyFieldNames", "ListCount", "EntityInfo", "Config", "IsSaving", "VisibleSectionCount", "TotalSectionCount", "ExpandedSectionCount", "SearchFilter", "ShowEmptyFields", "WidthMode", "HasCustomSectionOrder"], [1, "mj-forms-scroll-area"], [1, "mj-forms-panels-container"], [1, "mj-forms-all-panels"], [1, "mj-forms-empty-search-state"], [3, "record"], [3, "visible", "config"], [3, "SectionOrderChange", "ResetRequested", "Closed", "Sections", "SectionOrder", "Visible"], [1, "mj-forms-empty-search-icon"], [1, "fa-solid", "fa-magnifying-glass"], [1, "mj-forms-empty-search-title"], [1, "mj-forms-empty-search-message"], ["href", "#", 1, "mj-forms-empty-search-link", 3, "click"], [3, "dialogClosed", "record"], [3, "complete", "cancel", "visible", "config"]], template: function MjRecordFormContainerComponent_Template(rf, ctx) { if (rf & 1) {
501
+ } }, inputs: { Record: "Record", FormComponent: "FormComponent", EntityInfo: "EntityInfo", EditMode: "EditMode", UserCanEdit: "UserCanEdit", UserCanDelete: "UserCanDelete", IsFavorite: "IsFavorite", FavoriteInitDone: "FavoriteInitDone", IsDirty: "IsDirty", DirtyFieldNames: "DirtyFieldNames", ListCount: "ListCount", IsSaving: "IsSaving", ToolbarConfig: "ToolbarConfig", WidthMode: "WidthMode" }, outputs: { Navigate: "Navigate", EditModeChange: "EditModeChange", BeforeSave: "BeforeSave", SaveRequested: "SaveRequested", BeforeCancel: "BeforeCancel", CancelRequested: "CancelRequested", BeforeDelete: "BeforeDelete", DeleteRequested: "DeleteRequested", FavoriteToggled: "FavoriteToggled", BeforeHistoryView: "BeforeHistoryView", HistoryRequested: "HistoryRequested", BeforeListManagement: "BeforeListManagement", ListManagementRequested: "ListManagementRequested", ShowChangesRequested: "ShowChangesRequested", CustomButtonClick: "CustomButtonClick" }, standalone: false, ngContentSelectors: _c1, decls: 12, vars: 34, consts: [[3, "Navigate", "EditModeChange", "BeforeSave", "SaveRequested", "BeforeCancel", "CancelRequested", "BeforeDelete", "DeleteRequested", "FavoriteToggled", "BeforeHistoryView", "HistoryRequested", "BeforeListManagement", "ListManagementRequested", "ShowChangesRequested", "CustomButtonClick", "FilterChange", "ExpandAllRequested", "CollapseAllRequested", "ShowEmptyFieldsChange", "WidthModeChange", "ResetSectionOrderRequested", "ManageSectionsRequested", "Record", "EditMode", "UserCanEdit", "UserCanDelete", "IsFavorite", "FavoriteInitDone", "IsDirty", "DirtyFieldNames", "ListCount", "EntityInfo", "Config", "IsSaving", "VisibleSectionCount", "TotalSectionCount", "ExpandedSectionCount", "SearchFilter", "ShowEmptyFields", "WidthMode", "HasCustomSectionOrder"], [1, "mj-forms-scroll-area"], [1, "mj-forms-panels-container"], [1, "mj-forms-layout-row"], [1, "mj-forms-all-panels"], [1, "mj-forms-empty-search-state"], [3, "Navigate", "Record", "EditMode", "Collapsed"], [3, "record"], [3, "visible", "config"], [3, "SectionOrderChange", "ResetRequested", "Closed", "Sections", "SectionOrder", "Visible"], [1, "mj-forms-empty-search-icon"], [1, "fa-solid", "fa-magnifying-glass"], [1, "mj-forms-empty-search-title"], [1, "mj-forms-empty-search-message"], ["href", "#", 1, "mj-forms-empty-search-link", 3, "click"], [3, "dialogClosed", "record"], [3, "complete", "cancel", "visible", "config"]], template: function MjRecordFormContainerComponent_Template(rf, ctx) { if (rf & 1) {
479
502
  i0.ɵɵprojectionDef(_c0);
480
503
  i0.ɵɵprojection(0);
481
504
  i0.ɵɵelementStart(1, "mj-form-toolbar", 0);
482
505
  i0.ɵɵlistener("Navigate", function MjRecordFormContainerComponent_Template_mj_form_toolbar_Navigate_1_listener($event) { return ctx.OnNavigate($event); })("EditModeChange", function MjRecordFormContainerComponent_Template_mj_form_toolbar_EditModeChange_1_listener($event) { return ctx.OnEditModeChange($event); })("BeforeSave", function MjRecordFormContainerComponent_Template_mj_form_toolbar_BeforeSave_1_listener($event) { return ctx.BeforeSave.emit($event); })("SaveRequested", function MjRecordFormContainerComponent_Template_mj_form_toolbar_SaveRequested_1_listener() { return ctx.OnSaveRequested(); })("BeforeCancel", function MjRecordFormContainerComponent_Template_mj_form_toolbar_BeforeCancel_1_listener($event) { return ctx.BeforeCancel.emit($event); })("CancelRequested", function MjRecordFormContainerComponent_Template_mj_form_toolbar_CancelRequested_1_listener() { return ctx.OnCancelRequested(); })("BeforeDelete", function MjRecordFormContainerComponent_Template_mj_form_toolbar_BeforeDelete_1_listener($event) { return ctx.BeforeDelete.emit($event); })("DeleteRequested", function MjRecordFormContainerComponent_Template_mj_form_toolbar_DeleteRequested_1_listener() { return ctx.OnDeleteRequested(); })("FavoriteToggled", function MjRecordFormContainerComponent_Template_mj_form_toolbar_FavoriteToggled_1_listener() { return ctx.OnFavoriteToggled(); })("BeforeHistoryView", function MjRecordFormContainerComponent_Template_mj_form_toolbar_BeforeHistoryView_1_listener($event) { return ctx.BeforeHistoryView.emit($event); })("HistoryRequested", function MjRecordFormContainerComponent_Template_mj_form_toolbar_HistoryRequested_1_listener() { return ctx.OnHistoryRequested(); })("BeforeListManagement", function MjRecordFormContainerComponent_Template_mj_form_toolbar_BeforeListManagement_1_listener($event) { return ctx.BeforeListManagement.emit($event); })("ListManagementRequested", function MjRecordFormContainerComponent_Template_mj_form_toolbar_ListManagementRequested_1_listener() { return ctx.OnListManagementRequested(); })("ShowChangesRequested", function MjRecordFormContainerComponent_Template_mj_form_toolbar_ShowChangesRequested_1_listener() { return ctx.OnShowChangesRequested(); })("CustomButtonClick", function MjRecordFormContainerComponent_Template_mj_form_toolbar_CustomButtonClick_1_listener($event) { return ctx.CustomButtonClick.emit($event); })("FilterChange", function MjRecordFormContainerComponent_Template_mj_form_toolbar_FilterChange_1_listener($event) { return ctx.OnFilterChange($event); })("ExpandAllRequested", function MjRecordFormContainerComponent_Template_mj_form_toolbar_ExpandAllRequested_1_listener() { return ctx.OnExpandAll(); })("CollapseAllRequested", function MjRecordFormContainerComponent_Template_mj_form_toolbar_CollapseAllRequested_1_listener() { return ctx.OnCollapseAll(); })("ShowEmptyFieldsChange", function MjRecordFormContainerComponent_Template_mj_form_toolbar_ShowEmptyFieldsChange_1_listener($event) { return ctx.OnShowEmptyFieldsChange($event); })("WidthModeChange", function MjRecordFormContainerComponent_Template_mj_form_toolbar_WidthModeChange_1_listener($event) { return ctx.OnWidthModeChange($event); })("ResetSectionOrderRequested", function MjRecordFormContainerComponent_Template_mj_form_toolbar_ResetSectionOrderRequested_1_listener() { return ctx.OnResetSectionOrder(); })("ManageSectionsRequested", function MjRecordFormContainerComponent_Template_mj_form_toolbar_ManageSectionsRequested_1_listener() { return ctx.OnManageSections(); });
483
506
  i0.ɵɵelementEnd();
484
- i0.ɵɵelementStart(2, "div", 1)(3, "div", 2)(4, "div", 3);
485
- i0.ɵɵprojection(5, 1);
486
- i0.ɵɵconditionalCreate(6, MjRecordFormContainerComponent_Conditional_6_Template, 15, 1, "div", 4);
487
- i0.ɵɵelementEnd()()();
488
- i0.ɵɵconditionalCreate(7, MjRecordFormContainerComponent_Conditional_7_Template, 1, 1, "mj-record-changes", 5);
489
- i0.ɵɵconditionalCreate(8, MjRecordFormContainerComponent_Conditional_8_Template, 1, 8, "mj-list-management-dialog", 6);
490
- i0.ɵɵelementStart(9, "mj-section-manager", 7);
491
- i0.ɵɵlistener("SectionOrderChange", function MjRecordFormContainerComponent_Template_mj_section_manager_SectionOrderChange_9_listener($event) { return ctx.OnSectionOrderChange($event); })("ResetRequested", function MjRecordFormContainerComponent_Template_mj_section_manager_ResetRequested_9_listener() { return ctx.OnSectionManagerReset(); })("Closed", function MjRecordFormContainerComponent_Template_mj_section_manager_Closed_9_listener() { return ctx.OnSectionManagerClosed(); });
507
+ i0.ɵɵelementStart(2, "div", 1)(3, "div", 2)(4, "div", 3)(5, "div", 4);
508
+ i0.ɵɵprojection(6, 1);
509
+ i0.ɵɵconditionalCreate(7, MjRecordFormContainerComponent_Conditional_7_Template, 15, 1, "div", 5);
510
+ i0.ɵɵelementEnd();
511
+ i0.ɵɵelementStart(8, "mj-isa-related-panel", 6);
512
+ i0.ɵɵlistener("Navigate", function MjRecordFormContainerComponent_Template_mj_isa_related_panel_Navigate_8_listener($event) { return ctx.OnNavigate($event); });
513
+ i0.ɵɵelementEnd()()()();
514
+ i0.ɵɵconditionalCreate(9, MjRecordFormContainerComponent_Conditional_9_Template, 1, 1, "mj-record-changes", 7);
515
+ i0.ɵɵconditionalCreate(10, MjRecordFormContainerComponent_Conditional_10_Template, 1, 8, "mj-list-management-dialog", 8);
516
+ i0.ɵɵelementStart(11, "mj-section-manager", 9);
517
+ i0.ɵɵlistener("SectionOrderChange", function MjRecordFormContainerComponent_Template_mj_section_manager_SectionOrderChange_11_listener($event) { return ctx.OnSectionOrderChange($event); })("ResetRequested", function MjRecordFormContainerComponent_Template_mj_section_manager_ResetRequested_11_listener() { return ctx.OnSectionManagerReset(); })("Closed", function MjRecordFormContainerComponent_Template_mj_section_manager_Closed_11_listener() { return ctx.OnSectionManagerClosed(); });
492
518
  i0.ɵɵelementEnd();
493
519
  } if (rf & 2) {
494
520
  i0.ɵɵadvance();
495
521
  i0.ɵɵproperty("Record", ctx.EffectiveRecord)("EditMode", ctx.EffectiveEditMode)("UserCanEdit", ctx.EffectiveUserCanEdit)("UserCanDelete", ctx.EffectiveUserCanDelete)("IsFavorite", ctx.EffectiveIsFavorite)("FavoriteInitDone", ctx.EffectiveFavoriteInitDone)("IsDirty", ctx.EffectiveIsDirty)("DirtyFieldNames", ctx.EffectiveDirtyFieldNames)("ListCount", ctx.ListCount)("EntityInfo", ctx.EffectiveEntityInfo)("Config", ctx.ToolbarConfig)("IsSaving", ctx.EffectiveIsSaving)("VisibleSectionCount", ctx.VisibleSectionCount)("TotalSectionCount", ctx.TotalSectionCount)("ExpandedSectionCount", ctx.ExpandedSectionCount)("SearchFilter", ctx.EffectiveSearchFilter)("ShowEmptyFields", ctx.EffectiveShowEmptyFields)("WidthMode", ctx.EffectiveWidthMode)("HasCustomSectionOrder", ctx.EffectiveHasCustomSectionOrder);
496
522
  i0.ɵɵadvance(2);
497
- i0.ɵɵclassProp("mj-forms-panels--full-width", ctx.EffectiveWidthMode === "full-width")("mj-forms-panels--edit-mode", ctx.EffectiveEditMode);
498
- i0.ɵɵadvance(3);
499
- i0.ɵɵconditional(ctx.EffectiveSearchFilter && ctx.VisibleSectionCount === 0 ? 6 : -1);
523
+ i0.ɵɵclassProp("mj-forms-panels--full-width", ctx.EffectiveWidthMode === "full-width")("mj-forms-panels--edit-mode", ctx.EffectiveEditMode)("mj-forms-panels--has-isa-panel", ctx.HasIsaRelatedItems);
524
+ i0.ɵɵadvance(4);
525
+ i0.ɵɵconditional(ctx.EffectiveSearchFilter && ctx.VisibleSectionCount === 0 ? 7 : -1);
526
+ i0.ɵɵadvance();
527
+ i0.ɵɵproperty("Record", ctx.EffectiveRecord)("EditMode", ctx.EffectiveEditMode)("Collapsed", ctx.EffectiveWidthMode === "full-width");
500
528
  i0.ɵɵadvance();
501
- i0.ɵɵconditional(ctx.ShowRecordChanges && ctx.EffectiveRecord ? 7 : -1);
529
+ i0.ɵɵconditional(ctx.ShowRecordChanges && ctx.EffectiveRecord ? 9 : -1);
502
530
  i0.ɵɵadvance();
503
- i0.ɵɵconditional(ctx.ShowListManagement && ctx.EffectiveRecord ? 8 : -1);
531
+ i0.ɵɵconditional(ctx.ShowListManagement && ctx.EffectiveRecord ? 10 : -1);
504
532
  i0.ɵɵadvance();
505
533
  i0.ɵɵproperty("Sections", ctx.SectionManagerItems)("SectionOrder", ctx.SectionManagerOrder)("Visible", ctx.ShowSectionManager);
506
- } }, dependencies: [i1.RecordChangesComponent, i2.ListManagementDialogComponent, i3.MjFormToolbarComponent, i4.MjSectionManagerComponent], styles: ["/* ============================================\n RECORD FORM CONTAINER\n Top-level wrapper: toolbar + scrollable content\n ============================================ */\nmj-record-form-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n position: relative;\n overflow: hidden;\n}\n\n/* ViewEncapsulation.None fallback \u2014 ensure the element itself constrains overflow */\nmj-record-form-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n position: relative;\n overflow: hidden;\n}\n\n/* ============================================\n SCROLL AREA (full-width so mouse wheel works anywhere)\n ============================================ */\n.mj-forms-scroll-area {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n background: #eef0f3;\n}\n\n/* ============================================\n PANELS CONTAINER (centered content within scroll area)\n ============================================ */\n.mj-forms-panels-container {\n padding: 24px 32px 48px;\n max-width: 920px;\n margin: 0 auto;\n width: 100%;\n box-sizing: border-box;\n}\n\n.mj-forms-panels--full-width {\n max-width: none;\n padding-left: 24px;\n padding-right: 24px;\n}\n\n/* All panels in a single flex container \u2014 CSS order drives sequencing */\n.mj-forms-all-panels {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n/* Hide related entity panels in edit mode (variant host class on mj-collapsible-panel) */\n.mj-forms-panels--edit-mode .mj-panel--related-entity {\n display: none;\n}\n\n/* ============================================\n EMPTY SEARCH STATE\n ============================================ */\n.mj-forms-empty-search-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 80px 24px;\n text-align: center;\n min-height: 400px;\n}\n\n.mj-forms-empty-search-icon {\n width: 80px;\n height: 80px;\n border-radius: 50%;\n background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 24px;\n}\n\n.mj-forms-empty-search-icon i {\n font-size: 32px;\n color: #9ca3af;\n}\n\n.mj-forms-empty-search-title {\n font-size: 20px;\n font-weight: 600;\n color: #1f2937;\n margin: 0 0 12px 0;\n}\n\n.mj-forms-empty-search-message {\n font-size: 14px;\n color: #6b7280;\n line-height: 1.6;\n max-width: 400px;\n margin: 0;\n}\n\n.mj-forms-empty-search-message strong {\n color: #374151;\n font-weight: 600;\n}\n\n.mj-forms-empty-search-link {\n color: #667eea;\n text-decoration: none;\n font-weight: 500;\n}\n\n.mj-forms-empty-search-link:hover {\n text-decoration: underline;\n}\n\n/* ============================================\n RESPONSIVE\n ============================================ */\n@media (max-width: 768px) {\n .mj-forms-panels-container {\n padding: 16px 12px 32px;\n }\n}\n"], encapsulation: 2, changeDetection: 0 });
534
+ } }, dependencies: [i1.RecordChangesComponent, i2.ListManagementDialogComponent, i3.MjFormToolbarComponent, i4.MjSectionManagerComponent, i5.MjIsaRelatedPanelComponent], styles: ["/* ============================================\n RECORD FORM CONTAINER\n Top-level wrapper: toolbar + scrollable content\n ============================================ */\nmj-record-form-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n position: relative;\n overflow: hidden;\n}\n\n/* ViewEncapsulation.None fallback \u2014 ensure the element itself constrains overflow */\nmj-record-form-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n position: relative;\n overflow: hidden;\n}\n\n/* ============================================\n SCROLL AREA (full-width so mouse wheel works anywhere)\n ============================================ */\n.mj-forms-scroll-area {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n background: #eef0f3;\n}\n\n/* ============================================\n PANELS CONTAINER (centered content within scroll area)\n ============================================ */\n.mj-forms-panels-container {\n padding: 24px 32px 48px;\n max-width: 920px;\n margin: 0 auto;\n width: 100%;\n box-sizing: border-box;\n}\n\n/* Widen max-width when ISA side panel is present */\n.mj-forms-panels--has-isa-panel {\n max-width: 1240px;\n}\n\n.mj-forms-panels--full-width {\n max-width: none;\n padding-left: 24px;\n padding-right: 24px;\n}\n\n/* Flex row layout: form panels + optional ISA side panel */\n.mj-forms-layout-row {\n display: flex;\n gap: 20px;\n align-items: flex-start;\n}\n\n/* All panels in a single flex container \u2014 CSS order drives sequencing */\n.mj-forms-all-panels {\n display: flex;\n flex-direction: column;\n gap: 16px;\n flex: 1;\n min-width: 0;\n}\n\n/* Hide related entity panels in edit mode (variant host class on mj-collapsible-panel) */\n.mj-forms-panels--edit-mode .mj-panel--related-entity {\n display: none;\n}\n\n/* ============================================\n EMPTY SEARCH STATE\n ============================================ */\n.mj-forms-empty-search-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 80px 24px;\n text-align: center;\n min-height: 400px;\n}\n\n.mj-forms-empty-search-icon {\n width: 80px;\n height: 80px;\n border-radius: 50%;\n background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 24px;\n}\n\n.mj-forms-empty-search-icon i {\n font-size: 32px;\n color: #9ca3af;\n}\n\n.mj-forms-empty-search-title {\n font-size: 20px;\n font-weight: 600;\n color: #1f2937;\n margin: 0 0 12px 0;\n}\n\n.mj-forms-empty-search-message {\n font-size: 14px;\n color: #6b7280;\n line-height: 1.6;\n max-width: 400px;\n margin: 0;\n}\n\n.mj-forms-empty-search-message strong {\n color: #374151;\n font-weight: 600;\n}\n\n.mj-forms-empty-search-link {\n color: #667eea;\n text-decoration: none;\n font-weight: 500;\n}\n\n.mj-forms-empty-search-link:hover {\n text-decoration: underline;\n}\n\n/* ============================================\n RESPONSIVE\n ============================================ */\n@media (max-width: 768px) {\n .mj-forms-panels-container {\n padding: 16px 12px 32px;\n }\n}\n"], encapsulation: 2, changeDetection: 0 });
507
535
  }
508
536
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MjRecordFormContainerComponent, [{
509
537
  type: Component,
510
- args: [{ standalone: false, selector: 'mj-record-form-container', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<!-- ============================================\n BEFORE-TOOLBAR SLOT\n ============================================ -->\n<ng-content select=\"[before-toolbar]\"></ng-content>\n\n<!-- ============================================\n TOOLBAR (bridges FormComponent state \u2192 toolbar inputs)\n ============================================ -->\n<mj-form-toolbar\n [Record]=\"EffectiveRecord\"\n [EditMode]=\"EffectiveEditMode\"\n [UserCanEdit]=\"EffectiveUserCanEdit\"\n [UserCanDelete]=\"EffectiveUserCanDelete\"\n [IsFavorite]=\"EffectiveIsFavorite\"\n [FavoriteInitDone]=\"EffectiveFavoriteInitDone\"\n [IsDirty]=\"EffectiveIsDirty\"\n [DirtyFieldNames]=\"EffectiveDirtyFieldNames\"\n [ListCount]=\"ListCount\"\n [EntityInfo]=\"EffectiveEntityInfo\"\n [Config]=\"ToolbarConfig\"\n [IsSaving]=\"EffectiveIsSaving\"\n [VisibleSectionCount]=\"VisibleSectionCount\"\n [TotalSectionCount]=\"TotalSectionCount\"\n [ExpandedSectionCount]=\"ExpandedSectionCount\"\n [SearchFilter]=\"EffectiveSearchFilter\"\n [ShowEmptyFields]=\"EffectiveShowEmptyFields\"\n [WidthMode]=\"EffectiveWidthMode\"\n [HasCustomSectionOrder]=\"EffectiveHasCustomSectionOrder\"\n (Navigate)=\"OnNavigate($event)\"\n (EditModeChange)=\"OnEditModeChange($event)\"\n (BeforeSave)=\"BeforeSave.emit($event)\"\n (SaveRequested)=\"OnSaveRequested()\"\n (BeforeCancel)=\"BeforeCancel.emit($event)\"\n (CancelRequested)=\"OnCancelRequested()\"\n (BeforeDelete)=\"BeforeDelete.emit($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (BeforeHistoryView)=\"BeforeHistoryView.emit($event)\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (BeforeListManagement)=\"BeforeListManagement.emit($event)\"\n (ListManagementRequested)=\"OnListManagementRequested()\"\n (ShowChangesRequested)=\"OnShowChangesRequested()\"\n (CustomButtonClick)=\"CustomButtonClick.emit($event)\"\n (FilterChange)=\"OnFilterChange($event)\"\n (ExpandAllRequested)=\"OnExpandAll()\"\n (CollapseAllRequested)=\"OnCollapseAll()\"\n (ShowEmptyFieldsChange)=\"OnShowEmptyFieldsChange($event)\"\n (WidthModeChange)=\"OnWidthModeChange($event)\"\n (ResetSectionOrderRequested)=\"OnResetSectionOrder()\"\n (ManageSectionsRequested)=\"OnManageSections()\">\n</mj-form-toolbar>\n\n<!-- ============================================\n SCROLL AREA (full-width so mouse wheel works anywhere)\n ============================================ -->\n<div class=\"mj-forms-scroll-area\">\n <div class=\"mj-forms-panels-container\"\n [class.mj-forms-panels--full-width]=\"EffectiveWidthMode === 'full-width'\"\n [class.mj-forms-panels--edit-mode]=\"EffectiveEditMode\">\n <!-- All panels in a single flex container \u2014 CSS order drives sequencing -->\n <div class=\"mj-forms-all-panels\">\n <ng-content></ng-content>\n\n <!-- Empty state when no sections match search -->\n @if (EffectiveSearchFilter && VisibleSectionCount === 0) {\n <div class=\"mj-forms-empty-search-state\">\n <div class=\"mj-forms-empty-search-icon\">\n <i class=\"fa-solid fa-magnifying-glass\"></i>\n </div>\n <h3 class=\"mj-forms-empty-search-title\">No sections found</h3>\n <p class=\"mj-forms-empty-search-message\">\n No sections match \"<strong>{{ EffectiveSearchFilter }}</strong>\".\n <br>Try a different search term or <a href=\"#\" (click)=\"OnFilterChange(''); $event.preventDefault()\" class=\"mj-forms-empty-search-link\">clear the search</a>.\n </p>\n </div>\n }\n </div>\n </div>\n</div>\n\n<!-- ============================================\n RECORD CHANGES DRAWER (shown when history button clicked)\n ============================================ -->\n@if (ShowRecordChanges && EffectiveRecord) {\n <mj-record-changes\n [record]=\"EffectiveRecord\"\n (dialogClosed)=\"OnRecordChangesClosed()\">\n </mj-record-changes>\n}\n\n<!-- ============================================\n LIST MANAGEMENT DIALOG (shown when lists button clicked)\n ============================================ -->\n@if (ShowListManagement && EffectiveRecord) {\n <mj-list-management-dialog\n [visible]=\"ShowListManagement\"\n [config]=\"{\n mode: 'manage',\n entityId: EffectiveRecord.EntityInfo.ID,\n entityName: EffectiveRecord.EntityInfo.Name,\n recordIds: [EffectiveRecord.PrimaryKey.Values()[0]],\n allowCreate: true\n }\"\n (complete)=\"OnListManagementClosed()\"\n (cancel)=\"OnListManagementClosed()\">\n </mj-list-management-dialog>\n}\n\n<!-- ============================================\n SECTION MANAGER DRAWER (shown when manage-sections button clicked)\n ============================================ -->\n<mj-section-manager\n [Sections]=\"SectionManagerItems\"\n [SectionOrder]=\"SectionManagerOrder\"\n [Visible]=\"ShowSectionManager\"\n (SectionOrderChange)=\"OnSectionOrderChange($event)\"\n (ResetRequested)=\"OnSectionManagerReset()\"\n (Closed)=\"OnSectionManagerClosed()\">\n</mj-section-manager>\n", styles: ["/* ============================================\n RECORD FORM CONTAINER\n Top-level wrapper: toolbar + scrollable content\n ============================================ */\nmj-record-form-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n position: relative;\n overflow: hidden;\n}\n\n/* ViewEncapsulation.None fallback \u2014 ensure the element itself constrains overflow */\nmj-record-form-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n position: relative;\n overflow: hidden;\n}\n\n/* ============================================\n SCROLL AREA (full-width so mouse wheel works anywhere)\n ============================================ */\n.mj-forms-scroll-area {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n background: #eef0f3;\n}\n\n/* ============================================\n PANELS CONTAINER (centered content within scroll area)\n ============================================ */\n.mj-forms-panels-container {\n padding: 24px 32px 48px;\n max-width: 920px;\n margin: 0 auto;\n width: 100%;\n box-sizing: border-box;\n}\n\n.mj-forms-panels--full-width {\n max-width: none;\n padding-left: 24px;\n padding-right: 24px;\n}\n\n/* All panels in a single flex container \u2014 CSS order drives sequencing */\n.mj-forms-all-panels {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n/* Hide related entity panels in edit mode (variant host class on mj-collapsible-panel) */\n.mj-forms-panels--edit-mode .mj-panel--related-entity {\n display: none;\n}\n\n/* ============================================\n EMPTY SEARCH STATE\n ============================================ */\n.mj-forms-empty-search-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 80px 24px;\n text-align: center;\n min-height: 400px;\n}\n\n.mj-forms-empty-search-icon {\n width: 80px;\n height: 80px;\n border-radius: 50%;\n background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 24px;\n}\n\n.mj-forms-empty-search-icon i {\n font-size: 32px;\n color: #9ca3af;\n}\n\n.mj-forms-empty-search-title {\n font-size: 20px;\n font-weight: 600;\n color: #1f2937;\n margin: 0 0 12px 0;\n}\n\n.mj-forms-empty-search-message {\n font-size: 14px;\n color: #6b7280;\n line-height: 1.6;\n max-width: 400px;\n margin: 0;\n}\n\n.mj-forms-empty-search-message strong {\n color: #374151;\n font-weight: 600;\n}\n\n.mj-forms-empty-search-link {\n color: #667eea;\n text-decoration: none;\n font-weight: 500;\n}\n\n.mj-forms-empty-search-link:hover {\n text-decoration: underline;\n}\n\n/* ============================================\n RESPONSIVE\n ============================================ */\n@media (max-width: 768px) {\n .mj-forms-panels-container {\n padding: 16px 12px 32px;\n }\n}\n"] }]
538
+ args: [{ standalone: false, selector: 'mj-record-form-container', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<!-- ============================================\n BEFORE-TOOLBAR SLOT\n ============================================ -->\n<ng-content select=\"[before-toolbar]\"></ng-content>\n\n<!-- ============================================\n TOOLBAR (bridges FormComponent state \u2192 toolbar inputs)\n ============================================ -->\n<mj-form-toolbar\n [Record]=\"EffectiveRecord\"\n [EditMode]=\"EffectiveEditMode\"\n [UserCanEdit]=\"EffectiveUserCanEdit\"\n [UserCanDelete]=\"EffectiveUserCanDelete\"\n [IsFavorite]=\"EffectiveIsFavorite\"\n [FavoriteInitDone]=\"EffectiveFavoriteInitDone\"\n [IsDirty]=\"EffectiveIsDirty\"\n [DirtyFieldNames]=\"EffectiveDirtyFieldNames\"\n [ListCount]=\"ListCount\"\n [EntityInfo]=\"EffectiveEntityInfo\"\n [Config]=\"ToolbarConfig\"\n [IsSaving]=\"EffectiveIsSaving\"\n [VisibleSectionCount]=\"VisibleSectionCount\"\n [TotalSectionCount]=\"TotalSectionCount\"\n [ExpandedSectionCount]=\"ExpandedSectionCount\"\n [SearchFilter]=\"EffectiveSearchFilter\"\n [ShowEmptyFields]=\"EffectiveShowEmptyFields\"\n [WidthMode]=\"EffectiveWidthMode\"\n [HasCustomSectionOrder]=\"EffectiveHasCustomSectionOrder\"\n (Navigate)=\"OnNavigate($event)\"\n (EditModeChange)=\"OnEditModeChange($event)\"\n (BeforeSave)=\"BeforeSave.emit($event)\"\n (SaveRequested)=\"OnSaveRequested()\"\n (BeforeCancel)=\"BeforeCancel.emit($event)\"\n (CancelRequested)=\"OnCancelRequested()\"\n (BeforeDelete)=\"BeforeDelete.emit($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (BeforeHistoryView)=\"BeforeHistoryView.emit($event)\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (BeforeListManagement)=\"BeforeListManagement.emit($event)\"\n (ListManagementRequested)=\"OnListManagementRequested()\"\n (ShowChangesRequested)=\"OnShowChangesRequested()\"\n (CustomButtonClick)=\"CustomButtonClick.emit($event)\"\n (FilterChange)=\"OnFilterChange($event)\"\n (ExpandAllRequested)=\"OnExpandAll()\"\n (CollapseAllRequested)=\"OnCollapseAll()\"\n (ShowEmptyFieldsChange)=\"OnShowEmptyFieldsChange($event)\"\n (WidthModeChange)=\"OnWidthModeChange($event)\"\n (ResetSectionOrderRequested)=\"OnResetSectionOrder()\"\n (ManageSectionsRequested)=\"OnManageSections()\">\n</mj-form-toolbar>\n\n<!-- ============================================\n SCROLL AREA (full-width so mouse wheel works anywhere)\n ============================================ -->\n<div class=\"mj-forms-scroll-area\">\n <div class=\"mj-forms-panels-container\"\n [class.mj-forms-panels--full-width]=\"EffectiveWidthMode === 'full-width'\"\n [class.mj-forms-panels--edit-mode]=\"EffectiveEditMode\"\n [class.mj-forms-panels--has-isa-panel]=\"HasIsaRelatedItems\">\n <!-- Flex row: form panels on left, ISA side panel on right -->\n <div class=\"mj-forms-layout-row\">\n <!-- All panels in a single flex container \u2014 CSS order drives sequencing -->\n <div class=\"mj-forms-all-panels\">\n <ng-content></ng-content>\n\n <!-- Empty state when no sections match search -->\n @if (EffectiveSearchFilter && VisibleSectionCount === 0) {\n <div class=\"mj-forms-empty-search-state\">\n <div class=\"mj-forms-empty-search-icon\">\n <i class=\"fa-solid fa-magnifying-glass\"></i>\n </div>\n <h3 class=\"mj-forms-empty-search-title\">No sections found</h3>\n <p class=\"mj-forms-empty-search-message\">\n No sections match \"<strong>{{ EffectiveSearchFilter }}</strong>\".\n <br>Try a different search term or <a href=\"#\" (click)=\"OnFilterChange(''); $event.preventDefault()\" class=\"mj-forms-empty-search-link\">clear the search</a>.\n </p>\n </div>\n }\n </div>\n\n <!-- IS-A Related Records Side Panel -->\n <mj-isa-related-panel\n [Record]=\"EffectiveRecord\"\n [EditMode]=\"EffectiveEditMode\"\n [Collapsed]=\"EffectiveWidthMode === 'full-width'\"\n (Navigate)=\"OnNavigate($event)\">\n </mj-isa-related-panel>\n </div>\n </div>\n</div>\n\n<!-- ============================================\n RECORD CHANGES DRAWER (shown when history button clicked)\n ============================================ -->\n@if (ShowRecordChanges && EffectiveRecord) {\n <mj-record-changes\n [record]=\"EffectiveRecord\"\n (dialogClosed)=\"OnRecordChangesClosed()\">\n </mj-record-changes>\n}\n\n<!-- ============================================\n LIST MANAGEMENT DIALOG (shown when lists button clicked)\n ============================================ -->\n@if (ShowListManagement && EffectiveRecord) {\n <mj-list-management-dialog\n [visible]=\"ShowListManagement\"\n [config]=\"{\n mode: 'manage',\n entityId: EffectiveRecord.EntityInfo.ID,\n entityName: EffectiveRecord.EntityInfo.Name,\n recordIds: [EffectiveRecord.PrimaryKey.Values()[0]],\n allowCreate: true\n }\"\n (complete)=\"OnListManagementClosed()\"\n (cancel)=\"OnListManagementClosed()\">\n </mj-list-management-dialog>\n}\n\n<!-- ============================================\n SECTION MANAGER DRAWER (shown when manage-sections button clicked)\n ============================================ -->\n<mj-section-manager\n [Sections]=\"SectionManagerItems\"\n [SectionOrder]=\"SectionManagerOrder\"\n [Visible]=\"ShowSectionManager\"\n (SectionOrderChange)=\"OnSectionOrderChange($event)\"\n (ResetRequested)=\"OnSectionManagerReset()\"\n (Closed)=\"OnSectionManagerClosed()\">\n</mj-section-manager>\n", styles: ["/* ============================================\n RECORD FORM CONTAINER\n Top-level wrapper: toolbar + scrollable content\n ============================================ */\nmj-record-form-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n position: relative;\n overflow: hidden;\n}\n\n/* ViewEncapsulation.None fallback \u2014 ensure the element itself constrains overflow */\nmj-record-form-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n position: relative;\n overflow: hidden;\n}\n\n/* ============================================\n SCROLL AREA (full-width so mouse wheel works anywhere)\n ============================================ */\n.mj-forms-scroll-area {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n background: #eef0f3;\n}\n\n/* ============================================\n PANELS CONTAINER (centered content within scroll area)\n ============================================ */\n.mj-forms-panels-container {\n padding: 24px 32px 48px;\n max-width: 920px;\n margin: 0 auto;\n width: 100%;\n box-sizing: border-box;\n}\n\n/* Widen max-width when ISA side panel is present */\n.mj-forms-panels--has-isa-panel {\n max-width: 1240px;\n}\n\n.mj-forms-panels--full-width {\n max-width: none;\n padding-left: 24px;\n padding-right: 24px;\n}\n\n/* Flex row layout: form panels + optional ISA side panel */\n.mj-forms-layout-row {\n display: flex;\n gap: 20px;\n align-items: flex-start;\n}\n\n/* All panels in a single flex container \u2014 CSS order drives sequencing */\n.mj-forms-all-panels {\n display: flex;\n flex-direction: column;\n gap: 16px;\n flex: 1;\n min-width: 0;\n}\n\n/* Hide related entity panels in edit mode (variant host class on mj-collapsible-panel) */\n.mj-forms-panels--edit-mode .mj-panel--related-entity {\n display: none;\n}\n\n/* ============================================\n EMPTY SEARCH STATE\n ============================================ */\n.mj-forms-empty-search-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 80px 24px;\n text-align: center;\n min-height: 400px;\n}\n\n.mj-forms-empty-search-icon {\n width: 80px;\n height: 80px;\n border-radius: 50%;\n background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 24px;\n}\n\n.mj-forms-empty-search-icon i {\n font-size: 32px;\n color: #9ca3af;\n}\n\n.mj-forms-empty-search-title {\n font-size: 20px;\n font-weight: 600;\n color: #1f2937;\n margin: 0 0 12px 0;\n}\n\n.mj-forms-empty-search-message {\n font-size: 14px;\n color: #6b7280;\n line-height: 1.6;\n max-width: 400px;\n margin: 0;\n}\n\n.mj-forms-empty-search-message strong {\n color: #374151;\n font-weight: 600;\n}\n\n.mj-forms-empty-search-link {\n color: #667eea;\n text-decoration: none;\n font-weight: 500;\n}\n\n.mj-forms-empty-search-link:hover {\n text-decoration: underline;\n}\n\n/* ============================================\n RESPONSIVE\n ============================================ */\n@media (max-width: 768px) {\n .mj-forms-panels-container {\n padding: 16px 12px 32px;\n }\n}\n"] }]
511
539
  }], null, { Record: [{
512
540
  type: Input
513
541
  }], FormComponent: [{
@@ -1 +1 @@
1
- {"version":3,"file":"record-form-container.component.js","sourceRoot":"","sources":["../../../src/lib/container/record-form-container.component.ts","../../../src/lib/container/record-form-container.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record-form-container.component.js","sourceRoot":"","sources":["../../../src/lib/container/record-form-container.component.ts","../../../src/lib/container/record-form-container.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EACtC,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAC1D,eAAe,EACf,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAqB,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAEnF,OAAO,EAIL,0BAA0B,EAC1B,6BAA6B,EAE9B,MAAM,sBAAsB,CAAC;;;;;;;;;;;;;ICgDlB,AADF,8BAAyC,cACC;IACtC,wBAA4C;IAC9C,iBAAM;IACN,8BAAwC;IAAA,iCAAiB;IAAA,iBAAK;IAC9D,6BAAyC;IACvC,qCAAmB;IAAA,8BAAQ;IAAA,YAA2B;IAAA,iBAAS;IAAA,oBAC/D;IAAA,sBAAI;IAAA,gDAA+B;IAAA,8BAAqG;IAAzF,8KAAS,sBAAe,EAAE,CAAC,wBAAE,uBAAuB,KAAC;IAAoC,iCAAgB;IAAA,iBAAI;IAAA,mBAC9J;IACF,AADE,iBAAI,EACA;;;IAHyB,eAA2B;IAA3B,kDAA2B;;;;IAsBlE,6CAE2C;IAAzC,2NAAgB,8BAAuB,KAAC;IAC1C,iBAAoB;;;IAFlB,+CAA0B;;;;IAS5B,qDAUsC;IAApC,AADA,4NAAY,+BAAwB,KAAC,2MAC3B,+BAAwB,KAAC;IACrC,iBAA4B;;;IAT1B,AADA,mDAA8B,+LAO5B;;AD1FN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AASH,MAAM,OAAO,8BAA8B;IACjC,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAChC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;IAC/B,cAAc,GAAG,IAAI,OAAO,EAAQ,CAAC;IAE7C,2BAA2B;IAE3B,mDAAmD;IACnD,iBAAiB,GAAG,KAAK,CAAC;IAE1B,oDAAoD;IACpD,kBAAkB,GAAG,KAAK,CAAC;IAE3B,oDAAoD;IACpD,kBAAkB,GAAG,KAAK,CAAC;IAE3B,2BAA2B;IAE3B,+CAA+C;IACtC,MAAM,CAAc;IAE7B;;;;OAIG;IACM,aAAa,GAA6B,IAAI,CAAC;IAExD,sEAAsE;IAE7D,UAAU,GAAsB,IAAI,CAAC;IACrC,QAAQ,GAAG,KAAK,CAAC;IACjB,WAAW,GAAG,KAAK,CAAC;IACpB,aAAa,GAAG,KAAK,CAAC;IACtB,UAAU,GAAG,KAAK,CAAC;IACnB,gBAAgB,GAAG,KAAK,CAAC;IACzB,OAAO,GAAG,KAAK,CAAC;IAChB,eAAe,GAAa,EAAE,CAAC;IAC/B,SAAS,GAAG,CAAC,CAAC;IACd,QAAQ,GAAG,KAAK,CAAC;IACjB,aAAa,GAAsB,sBAAsB,CAAC;IAC1D,SAAS,GAAkB,UAAU,CAAC;IAE/C,oBAAoB;IAEpB,kFAAkF;IACxE,QAAQ,GAAG,IAAI,YAAY,EAAuB,CAAC;IAE7D,sGAAsG;IAC5F,cAAc,GAAG,IAAI,YAAY,EAAW,CAAC;IAEvD,4EAA4E;IAClE,UAAU,GAAG,IAAI,YAAY,EAAuB,CAAC;IAE/D,+DAA+D;IACrD,aAAa,GAAG,IAAI,YAAY,EAAQ,CAAC;IAEnD,8EAA8E;IACpE,YAAY,GAAG,IAAI,YAAY,EAAyB,CAAC;IAEnE,iEAAiE;IACvD,eAAe,GAAG,IAAI,YAAY,EAAQ,CAAC;IAErD,8EAA8E;IACpE,YAAY,GAAG,IAAI,YAAY,EAAyB,CAAC;IAEnE,0EAA0E;IAChE,eAAe,GAAG,IAAI,YAAY,EAAQ,CAAC;IAErD,gDAAgD;IACtC,eAAe,GAAG,IAAI,YAAY,EAAQ,CAAC;IAErD,oFAAoF;IAC1E,iBAAiB,GAAG,IAAI,YAAY,EAA8B,CAAC;IAE7E,6CAA6C;IACnC,gBAAgB,GAAG,IAAI,YAAY,EAAQ,CAAC;IAEtD,uFAAuF;IAC7E,oBAAoB,GAAG,IAAI,YAAY,EAAiC,CAAC;IAEnF,gDAAgD;IACtC,uBAAuB,GAAG,IAAI,YAAY,EAAQ,CAAC;IAE7D,6CAA6C;IACnC,oBAAoB,GAAG,IAAI,YAAY,EAAQ,CAAC;IAE1D,sDAAsD;IAC5C,iBAAiB,GAAG,IAAI,YAAY,EAAqC,CAAC;IAEpF,6BAA6B;IAG7B,MAAM,CAA0C;IAEhD,mCAAmC;IAEnC,sDAAsD;IACtD,IAAY,EAAE;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,qEAAqE;IAErE,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;IACxC,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,EAAE,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;IAC5C,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,EAAE,EAAE,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC;IAClD,CAAC;IAED,IAAI,sBAAsB;QACxB,OAAO,IAAI,CAAC,EAAE,EAAE,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC;IACtD,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,EAAE,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;IAChD,CAAC;IAED,IAAI,yBAAyB;QAC3B,OAAO,IAAI,CAAC,EAAE,EAAE,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC;IAC5D,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAQ,IAAI,CAAC,EAAE,EAAE,UAAyB,IAAI,IAAI,CAAC,UAAU,CAAC;IAChE,CAAC;IAED,IAAI,gBAAgB;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,wBAAwB;QAC1B,IAAI,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,kBAAkB;QACpB,IAAI,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,qBAAqB;QACvB,OAAO,IAAI,CAAC,EAAE,EAAE,YAAY,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,IAAI,CAAC,EAAE,EAAE,eAAe,IAAI,KAAK,CAAC;IAC3C,CAAC;IAED,IAAI,8BAA8B;QAChC,IAAI,IAAI,CAAC,EAAE,EAAE,qBAAqB,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2BAA2B;IAE3B,IAAI,iBAAiB;QACnB,IAAI,IAAI,CAAC,EAAE,EAAE,oBAAoB,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,mBAAmB;QACrB,IAAI,IAAI,CAAC,EAAE,EAAE,sBAAsB,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IACrD,CAAC;IAED,IAAI,oBAAoB;QACtB,IAAI,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IACnE,CAAC;IAED,+BAA+B;IAE/B,qFAAqF;IACrF,IAAI,kBAAkB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,UAAU;YAAE,OAAO,KAAK,CAAC;QAEtC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAErC,2DAA2D;QAC3D,IAAI,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;YACjF,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;YAChC,IAAI,MAAM,EAAE,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QACxE,CAAC;QAED,8BAA8B;QAC9B,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YAC5B,IAAI,UAAU,CAAC,qBAAqB,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzG,IAAI,CAAC,UAAU,CAAC,qBAAqB,IAAI,MAAM,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC;QACxE,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4BAA4B;IAE5B,qFAAqF;IACrF,IAAI,mBAAmB;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3B,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,IAAI,EAAE,CAAC,CAAC,IAAI;SACb,CAAC,CAAC,CAAC;IACN,CAAC;IAED,oDAAoD;IACpD,IAAI,mBAAmB;QACrB,IAAI,IAAI,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,sBAAsB;IAEtB,kBAAkB;QAChB,oDAAoD;QACpD,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAEtC,4DAA4D;QAC5D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;YAChE,IAAI,CAAC,8BAA8B,EAAE,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,0CAA0C;QAC1C,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACK,8BAA8B;QACpC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,mCAAmC;QAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAA0B,EAAE,EAAE;gBAC3F,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,kBAAkB;QACxB,uEAAuE;QACvE,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;YACrC,IAAI,IAAI,CAAC,eAAe,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9C,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,qBAAqB;QACrB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,mCAAmC;IAEnC;;OAEG;IACH,UAAU,CAAC,KAA0B;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,QAAiB;QAChC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;YACxB,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,IAAI,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC;YACxB,yCAAyC;YACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAExB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;oBAAS,CAAC;gBACT,4EAA4E;gBAC5E,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;oBACnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACtB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;gBAC1B,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,IAAI,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,kBAAkB;QAChB,qCAAqC;QACrC,MAAM,WAAW,GAAG,IAAI,0BAA0B,EAAE,CAAC;QACrD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,WAAW,CAAC,MAAM;YAAE,OAAO;QAE/B,wDAAwD;QACxD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAExB,uCAAuC;QACvC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,yBAAyB;QACvB,qCAAqC;QACrC,MAAM,WAAW,GAAG,IAAI,6BAA6B,EAAE,CAAC;QACxD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,WAAW,CAAC,MAAM;YAAE,OAAO;QAE/B,yDAAyD;QACzD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAExB,uCAAuC;QACvC,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC1B,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC1B,CAAC;IAED,sBAAsB;QACpB,IAAI,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC;YACzB,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,qCAAqC;IAErC,cAAc,CAAC,MAAc;QAC3B,IAAI,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC;YAC5B,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,CAAC;YAC/B,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,EAAE,EAAE,mBAAmB,EAAE,CAAC;YACjC,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,uBAAuB,CAAC,IAAa;QACnC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,eAAe,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,IAAmB;QACnC,IAAI,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,CAAC;YAC9B,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,CAAC;YAC/B,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,qCAAqC;IAErC,gBAAgB;QACd,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC1B,CAAC;IAED,oBAAoB,CAAC,QAAkB;QACrC,IAAI,IAAI,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC;YAC7B,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC1B,CAAC;wHAjeU,8BAA8B;6DAA9B,8BAA8B;wCA6FxB,2BAA2B;;;;;;YCxJ9C,kBAAmD;YAKnD,0CAyCiD;YAA/C,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,gIAAY,sBAAkB,IAAC,+HACb,4BAAwB,IAAC,uHAC7B,2BAAuB,IAAC,uHACrB,qBAAiB,IAAC,2HACnB,6BAAyB,IAAC,2HACvB,uBAAmB,IAAC,2HACvB,6BAAyB,IAAC,2HACvB,uBAAmB,IAAC,2HACpB,uBAAmB,IAAC,qIAClB,kCAA8B,IAAC,6HAChC,wBAAoB,IAAC,2IACjB,qCAAiC,IAAC,2IAC/B,+BAA2B,IAAC,qIAC/B,4BAAwB,IAAC,qIAC5B,kCAA8B,IAAC,2HACpC,0BAAsB,IAAC,iIACjB,iBAAa,IAAC,qIACZ,mBAAe,IAAC,6IACf,mCAA+B,IAAC,iIACtC,6BAAyB,IAAC,iJACf,yBAAqB,IAAC,2IACzB,sBAAkB,IAAC;YAChD,iBAAkB;YAaZ,AAFF,AALF,AADF,8BAAkC,aAIiC,aAE9B,aAEE;YAC/B,qBAAyB;YAGzB,iGAA0D;YAY5D,iBAAM;YAGN,+CAIkC;YAAhC,qIAAY,sBAAkB,IAAC;YAIvC,AADE,AADE,AADE,iBAAuB,EACnB,EACF,EACF;YAKN,8GAA4C;YAU5C,wHAA6C;YAkB7C,8CAMsC;YAApC,AADA,AADA,wJAAsB,gCAA4B,IAAC,6HACjC,2BAAuB,IAAC,6GAChC,4BAAwB,IAAC;YACrC,iBAAqB;;YAzHnB,cAA0B;YAkB1B,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,AADA,4CAA0B,mCACI,yCACM,6CACI,uCACN,mDACY,iCAClB,iDACgB,4BACrB,uCACW,6BACV,mCACM,gDACa,4CACJ,kDACM,2CACP,iDACM,qCACZ,6DACwB;YA8BnD,eAAyE;YAEzE,AADA,AADA,sFAAyE,qDACnB,0DACK;YAQ1D,eAWC;YAXD,qFAWC;YAKD,cAA0B;YAE1B,AADA,AADA,4CAA0B,mCACI,sDACmB;YAUzD,cAKC;YALD,uEAKC;YAKD,cAaC;YAbD,yEAaC;YAMC,cAAgC;YAEhC,AADA,AADA,kDAAgC,yCACI,mCACN;;;iFDhEnB,8BAA8B;cAR1C,SAAS;6BACI,KAAK,YACP,0BAA0B,mBACnB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI;;kBAwBpC,KAAK;;kBAOL,KAAK;;kBAIL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBAKL,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAIN,eAAe;mBAAC,2BAA2B,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;kFA7FxD,8BAA8B"}
@@ -0,0 +1,62 @@
1
+ import { BaseEntity } from '@memberjunction/core';
2
+ /**
3
+ * Represents a descendant entity discovered in an IS-A hierarchy.
4
+ * Used by UI components to render hierarchical IS-A relationship displays.
5
+ *
6
+ * This is a **UI-level data structure** — BaseEntity does not use this.
7
+ */
8
+ export interface IsaDescendantInfo {
9
+ /** The entity name (e.g., "Members", "Gold Members") */
10
+ EntityName: string;
11
+ /** Depth relative to the starting entity (0 = direct child, 1 = grandchild, etc.) */
12
+ Depth: number;
13
+ /** The immediate parent entity name in the IS-A chain */
14
+ ParentEntityName: string;
15
+ }
16
+ /**
17
+ * Represents one related IS-A entity to display in the panel.
18
+ * Supports a tree structure via `Children` for nested sub-card rendering.
19
+ */
20
+ export interface IsaRelatedItem {
21
+ /** The entity name (e.g., "Members", "Speakers") */
22
+ EntityName: string;
23
+ /** Relationship to the current form's entity */
24
+ Relationship: 'sibling' | 'child';
25
+ /** Depth in the IS-A hierarchy relative to the form's entity (0 = direct, 1 = grandchild, etc.) */
26
+ Depth: number;
27
+ /** Child items nested under this entity in the IS-A hierarchy */
28
+ Children: IsaRelatedItem[];
29
+ }
30
+ /**
31
+ * Builds a tree of `IsaRelatedItem` from a flat depth-first ordered list of
32
+ * `IsaDescendantInfo`. Depth-0 items become roots; deeper items are nested
33
+ * under their `ParentEntityName` match.
34
+ *
35
+ * @param descendants - Flat depth-first list from `DiscoverISADescendants`
36
+ * @returns Root-level items with nested `Children` arrays
37
+ */
38
+ export declare function BuildDescendantTree(descendants: IsaDescendantInfo[]): IsaRelatedItem[];
39
+ /**
40
+ * Recursively discovers all IS-A descendant entities that have records
41
+ * matching the given record's primary key.
42
+ *
43
+ * **This is a UI-level utility method.** It does NOT modify BaseEntity's
44
+ * automatic loading behavior or participate in entity lifecycle management.
45
+ * It creates temporary entity instances solely to discover deeper hierarchy
46
+ * levels via the existing provider infrastructure.
47
+ *
48
+ * Intended for use by UI components (e.g., `<mj-isa-related-panel>`) that
49
+ * need to display the full IS-A descendant tree with depth information.
50
+ *
51
+ * For disjoint subtypes, leverages the auto-chained `ISAChild` property
52
+ * (already loaded during the parent entity's load). For overlapping subtypes,
53
+ * loads child entities individually to discover their own children.
54
+ *
55
+ * @param record - The already-loaded parent entity record to discover descendants for.
56
+ * Its `ISAChild`/`ISAChildren` properties must already be populated
57
+ * (this happens automatically during entity load).
58
+ * @returns Flat list of descendant entities ordered depth-first, with depth information.
59
+ * Returns empty array if the entity has no children.
60
+ */
61
+ export declare function DiscoverISADescendants(record: BaseEntity): Promise<IsaDescendantInfo[]>;
62
+ //# sourceMappingURL=isa-hierarchy-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isa-hierarchy-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/isa-related-panel/isa-hierarchy-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsC,MAAM,sBAAsB,CAAC;AAEtF;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,YAAY,EAAE,SAAS,GAAG,OAAO,CAAC;IAClC,mGAAmG;IACnG,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,EAAE,GAAG,cAAc,EAAE,CA0BtF;AAKD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAU9B"}
@@ -0,0 +1,135 @@
1
+ import { Metadata } from '@memberjunction/core';
2
+ /**
3
+ * Builds a tree of `IsaRelatedItem` from a flat depth-first ordered list of
4
+ * `IsaDescendantInfo`. Depth-0 items become roots; deeper items are nested
5
+ * under their `ParentEntityName` match.
6
+ *
7
+ * @param descendants - Flat depth-first list from `DiscoverISADescendants`
8
+ * @returns Root-level items with nested `Children` arrays
9
+ */
10
+ export function BuildDescendantTree(descendants) {
11
+ const rootItems = [];
12
+ const itemMap = new Map();
13
+ for (const desc of descendants) {
14
+ const item = {
15
+ EntityName: desc.EntityName,
16
+ Relationship: 'child',
17
+ Depth: desc.Depth,
18
+ Children: []
19
+ };
20
+ itemMap.set(desc.EntityName, item);
21
+ if (desc.Depth === 0) {
22
+ rootItems.push(item);
23
+ }
24
+ else {
25
+ const parent = itemMap.get(desc.ParentEntityName);
26
+ if (parent) {
27
+ parent.Children.push(item);
28
+ }
29
+ else {
30
+ rootItems.push(item);
31
+ }
32
+ }
33
+ }
34
+ return rootItems;
35
+ }
36
+ /** Maximum recursion depth to prevent runaway walks in malformed hierarchies */
37
+ const MAX_DEPTH = 10;
38
+ /**
39
+ * Recursively discovers all IS-A descendant entities that have records
40
+ * matching the given record's primary key.
41
+ *
42
+ * **This is a UI-level utility method.** It does NOT modify BaseEntity's
43
+ * automatic loading behavior or participate in entity lifecycle management.
44
+ * It creates temporary entity instances solely to discover deeper hierarchy
45
+ * levels via the existing provider infrastructure.
46
+ *
47
+ * Intended for use by UI components (e.g., `<mj-isa-related-panel>`) that
48
+ * need to display the full IS-A descendant tree with depth information.
49
+ *
50
+ * For disjoint subtypes, leverages the auto-chained `ISAChild` property
51
+ * (already loaded during the parent entity's load). For overlapping subtypes,
52
+ * loads child entities individually to discover their own children.
53
+ *
54
+ * @param record - The already-loaded parent entity record to discover descendants for.
55
+ * Its `ISAChild`/`ISAChildren` properties must already be populated
56
+ * (this happens automatically during entity load).
57
+ * @returns Flat list of descendant entities ordered depth-first, with depth information.
58
+ * Returns empty array if the entity has no children.
59
+ */
60
+ export async function DiscoverISADescendants(record) {
61
+ const entityInfo = record.EntityInfo;
62
+ if (!entityInfo?.IsParentType)
63
+ return [];
64
+ const md = new Metadata();
65
+ const results = [];
66
+ const visited = new Set([entityInfo.Name]);
67
+ await walkDescendants(md, record, entityInfo, record.PrimaryKey, 0, results, visited);
68
+ return results;
69
+ }
70
+ /**
71
+ * Internal recursive walker. Examines the given loaded entity's children
72
+ * and recurses into any child that is itself a parent type.
73
+ */
74
+ async function walkDescendants(md, loadedEntity, parentInfo, primaryKey, depth, results, visited) {
75
+ if (depth >= MAX_DEPTH)
76
+ return;
77
+ if (parentInfo.AllowMultipleSubtypes) {
78
+ await walkOverlappingChildren(md, loadedEntity, parentInfo, primaryKey, depth, results, visited);
79
+ }
80
+ else {
81
+ await walkDisjointChain(md, loadedEntity, parentInfo, primaryKey, depth, results, visited);
82
+ }
83
+ }
84
+ /**
85
+ * Walk overlapping children: `ISAChildren` has entity names only,
86
+ * so we load each child to discover deeper levels.
87
+ */
88
+ async function walkOverlappingChildren(md, loadedEntity, parentInfo, primaryKey, depth, results, visited) {
89
+ const children = loadedEntity.ISAChildren;
90
+ if (!children)
91
+ return;
92
+ for (const child of children) {
93
+ if (visited.has(child.entityName))
94
+ continue;
95
+ visited.add(child.entityName);
96
+ results.push({
97
+ EntityName: child.entityName,
98
+ Depth: depth,
99
+ ParentEntityName: parentInfo.Name
100
+ });
101
+ // Check if this child is also a parent type with its own descendants
102
+ const childInfo = md.EntityByName(child.entityName);
103
+ if (childInfo?.IsParentType) {
104
+ const childEntity = await md.GetEntityObject(child.entityName);
105
+ const loaded = await childEntity.InnerLoad(primaryKey);
106
+ if (loaded) {
107
+ await walkDescendants(md, childEntity, childInfo, primaryKey, depth + 1, results, visited);
108
+ }
109
+ }
110
+ }
111
+ }
112
+ /**
113
+ * Walk disjoint chain: `ISAChild` is already loaded and auto-chained,
114
+ * so we can access it directly. However, any link in the chain might
115
+ * itself be an overlapping parent, requiring async discovery.
116
+ */
117
+ async function walkDisjointChain(md, loadedEntity, parentInfo, primaryKey, depth, results, visited) {
118
+ const child = loadedEntity.ISAChild;
119
+ if (!child)
120
+ return;
121
+ const childName = child.EntityInfo.Name;
122
+ if (visited.has(childName))
123
+ return;
124
+ visited.add(childName);
125
+ results.push({
126
+ EntityName: childName,
127
+ Depth: depth,
128
+ ParentEntityName: parentInfo.Name
129
+ });
130
+ // The disjoint child is already loaded; check if it has its own descendants
131
+ if (child.EntityInfo.IsParentType) {
132
+ await walkDescendants(md, child, child.EntityInfo, primaryKey, depth + 1, results, visited);
133
+ }
134
+ }
135
+ //# sourceMappingURL=isa-hierarchy-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isa-hierarchy-utils.js","sourceRoot":"","sources":["../../../src/lib/isa-related-panel/isa-hierarchy-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAgCtF;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAgC;IAClE,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAElD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAmB;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,gFAAgF;AAChF,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAkB;IAElB,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACrC,IAAI,CAAC,UAAU,EAAE,YAAY;QAAE,OAAO,EAAE,CAAC;IAEzC,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnD,MAAM,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACtF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,eAAe,CAC5B,EAAY,EACZ,YAAwB,EACxB,UAAsB,EACtB,UAAwB,EACxB,KAAa,EACb,OAA4B,EAC5B,OAAoB;IAEpB,IAAI,KAAK,IAAI,SAAS;QAAE,OAAO;IAE/B,IAAI,UAAU,CAAC,qBAAqB,EAAE,CAAC;QACrC,MAAM,uBAAuB,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnG,CAAC;SAAM,CAAC;QACN,MAAM,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,uBAAuB,CACpC,EAAY,EACZ,YAAwB,EACxB,UAAsB,EACtB,UAAwB,EACxB,KAAa,EACb,OAA4B,EAC5B,OAAoB;IAEpB,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC;IAC1C,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;YAAE,SAAS;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE9B,OAAO,CAAC,IAAI,CAAC;YACX,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,KAAK,EAAE,KAAK;YACZ,gBAAgB,EAAE,UAAU,CAAC,IAAI;SAClC,CAAC,CAAC;QAEH,qEAAqE;QACrE,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,SAAS,EAAE,YAAY,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,eAAe,CAAa,KAAK,CAAC,UAAU,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACvD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAC9B,EAAY,EACZ,YAAwB,EACxB,UAAsB,EACtB,UAAwB,EACxB,KAAa,EACb,OAA4B,EAC5B,OAAoB;IAEpB,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnB,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;IACxC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO;IACnC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEvB,OAAO,CAAC,IAAI,CAAC;QACX,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,KAAK;QACZ,gBAAgB,EAAE,UAAU,CAAC,IAAI;KAClC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { BaseEntity, EntityInfo, CompositeKey } from '@memberjunction/core';
3
+ import { EntityHierarchyNavigationEvent } from '../types/navigation-events';
4
+ import { IsaRelatedItem } from './isa-hierarchy-utils';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Represents a single field value displayed in the ISA related card.
8
+ */
9
+ export interface IsaCardFieldDisplay {
10
+ Label: string;
11
+ Value: string;
12
+ IsBooleanTrue?: boolean;
13
+ IsBooleanFalse?: boolean;
14
+ }
15
+ /**
16
+ * Compact card showing summary fields for one IS-A related entity record
17
+ * (sibling or child). Displays DefaultInView fields by default with
18
+ * expand/collapse for remaining fields.
19
+ *
20
+ * Used inside `<mj-isa-related-panel>` to show related IS-A records
21
+ * alongside the main form.
22
+ */
23
+ export declare class MjIsaRelatedCardComponent implements OnInit, OnChanges {
24
+ private cdr;
25
+ /** The entity name for the related record (e.g., "Members", "Speakers") */
26
+ EntityName: string;
27
+ /** The primary key shared with the parent record */
28
+ PrimaryKey: CompositeKey | null;
29
+ /** The record name of the current form's entity (to suppress if same) */
30
+ CurrentRecordName: string;
31
+ /** The relationship type label */
32
+ Relationship: 'sibling' | 'child';
33
+ /** Depth in the IS-A hierarchy (0 = direct child/sibling, 1 = grandchild, etc.) */
34
+ Depth: number;
35
+ /** Child items nested under this entity (rendered as sub-cards within this card) */
36
+ Children: IsaRelatedItem[];
37
+ /** Emitted when user clicks "Open" to navigate to this related record */
38
+ Navigate: EventEmitter<EntityHierarchyNavigationEvent>;
39
+ EntityInfoRef: EntityInfo | null;
40
+ RelatedRecord: BaseEntity | null;
41
+ IsLoading: boolean;
42
+ LoadError: boolean;
43
+ Expanded: boolean;
44
+ DefaultFields: IsaCardFieldDisplay[];
45
+ ExtraFields: IsaCardFieldDisplay[];
46
+ /** Display name for the entity */
47
+ get DisplayName(): string;
48
+ /** Icon class from entity metadata */
49
+ get IconClass(): string;
50
+ /** Record name of the related record (suppressed if same as current) */
51
+ get RecordName(): string;
52
+ ngOnInit(): void;
53
+ ngOnChanges(changes: SimpleChanges): void;
54
+ /** Load the related entity record and extract field data */
55
+ LoadRelatedRecord(): Promise<void>;
56
+ /** Split fields into DefaultInView (shown by default) and extra (hidden) */
57
+ private BuildFieldDisplayLists;
58
+ /** Create a display representation of a single field value */
59
+ private BuildFieldDisplay;
60
+ /** Format a field value for compact display */
61
+ private FormatFieldValue;
62
+ /** Toggle expanded state to show/hide extra fields */
63
+ ToggleExpand(): void;
64
+ /** Handle "Open" link click — emit navigation event */
65
+ OnOpenClick(event: MouseEvent): void;
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<MjIsaRelatedCardComponent, never>;
67
+ static ɵcmp: i0.ɵɵComponentDeclaration<MjIsaRelatedCardComponent, "mj-isa-related-card", never, { "EntityName": { "alias": "EntityName"; "required": false; }; "PrimaryKey": { "alias": "PrimaryKey"; "required": false; }; "CurrentRecordName": { "alias": "CurrentRecordName"; "required": false; }; "Relationship": { "alias": "Relationship"; "required": false; }; "Depth": { "alias": "Depth"; "required": false; }; "Children": { "alias": "Children"; "required": false; }; }, { "Navigate": "Navigate"; }, never, never, false, never>;
68
+ }
69
+ //# sourceMappingURL=isa-related-card.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isa-related-card.component.d.ts","sourceRoot":"","sources":["../../../src/lib/isa-related-panel/isa-related-card.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACqB,YAAY,EAEtC,MAAM,EAAE,SAAS,EAAE,aAAa,EACjC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EAAE,UAAU,EAA6B,YAAY,EAChE,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;;AAEvD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,qBAQa,yBAA0B,YAAW,MAAM,EAAE,SAAS;IACjE,OAAO,CAAC,GAAG,CAA6B;IAExC,2EAA2E;IAClE,UAAU,SAAM;IAEzB,oDAAoD;IAC3C,UAAU,EAAE,YAAY,GAAG,IAAI,CAAQ;IAEhD,yEAAyE;IAChE,iBAAiB,SAAM;IAEhC,kCAAkC;IACzB,YAAY,EAAE,SAAS,GAAG,OAAO,CAAa;IAEvD,mFAAmF;IAC1E,KAAK,SAAK;IAEnB,oFAAoF;IAC3E,QAAQ,EAAE,cAAc,EAAE,CAAM;IAEzC,yEAAyE;IAC/D,QAAQ,+CAAsD;IAGxE,aAAa,EAAE,UAAU,GAAG,IAAI,CAAQ;IACxC,aAAa,EAAE,UAAU,GAAG,IAAI,CAAQ;IACxC,SAAS,UAAQ;IACjB,SAAS,UAAS;IAClB,QAAQ,UAAS;IAEjB,aAAa,EAAE,mBAAmB,EAAE,CAAM;IAC1C,WAAW,EAAE,mBAAmB,EAAE,CAAM;IAExC,kCAAkC;IAClC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,sCAAsC;IACtC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,wEAAwE;IACxE,IAAI,UAAU,IAAI,MAAM,CAQvB;IAED,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMzC,4DAA4D;IACtD,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCxC,4EAA4E;IAC5E,OAAO,CAAC,sBAAsB;IA6B9B,8DAA8D;IAC9D,OAAO,CAAC,iBAAiB;IAqBzB,+CAA+C;IAC/C,OAAO,CAAC,gBAAgB;IAmBxB,sDAAsD;IACtD,YAAY,IAAI,IAAI;IAKpB,uDAAuD;IACvD,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;yCAjLzB,yBAAyB;2CAAzB,yBAAyB;CA4LrC"}