@memberjunction/ng-base-forms 4.1.0 → 4.3.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 (45) hide show
  1. package/dist/__tests__/sanity.test.d.ts +2 -0
  2. package/dist/__tests__/sanity.test.d.ts.map +1 -0
  3. package/dist/__tests__/sanity.test.js +12 -0
  4. package/dist/__tests__/sanity.test.js.map +1 -0
  5. package/dist/lib/__tests__/base-forms.test.d.ts +2 -0
  6. package/dist/lib/__tests__/base-forms.test.d.ts.map +1 -0
  7. package/dist/lib/__tests__/base-forms.test.js +252 -0
  8. package/dist/lib/__tests__/base-forms.test.js.map +1 -0
  9. package/dist/lib/container/record-form-container.component.d.ts +15 -3
  10. package/dist/lib/container/record-form-container.component.d.ts.map +1 -1
  11. package/dist/lib/container/record-form-container.component.js +81 -41
  12. package/dist/lib/container/record-form-container.component.js.map +1 -1
  13. package/dist/lib/explorer-entity-data-grid.component.d.ts.map +1 -1
  14. package/dist/lib/explorer-entity-data-grid.component.js +10 -2
  15. package/dist/lib/explorer-entity-data-grid.component.js.map +1 -1
  16. package/dist/lib/panel/collapsible-panel.component.d.ts +5 -1
  17. package/dist/lib/panel/collapsible-panel.component.d.ts.map +1 -1
  18. package/dist/lib/panel/collapsible-panel.component.js +69 -45
  19. package/dist/lib/panel/collapsible-panel.component.js.map +1 -1
  20. package/dist/lib/section-manager/section-manager.component.d.ts +60 -0
  21. package/dist/lib/section-manager/section-manager.component.d.ts.map +1 -0
  22. package/dist/lib/section-manager/section-manager.component.js +208 -0
  23. package/dist/lib/section-manager/section-manager.component.js.map +1 -0
  24. package/dist/lib/toolbar/form-toolbar.component.d.ts +20 -2
  25. package/dist/lib/toolbar/form-toolbar.component.d.ts.map +1 -1
  26. package/dist/lib/toolbar/form-toolbar.component.js +154 -72
  27. package/dist/lib/toolbar/form-toolbar.component.js.map +1 -1
  28. package/dist/lib/types/form-types.d.ts +2 -0
  29. package/dist/lib/types/form-types.d.ts.map +1 -1
  30. package/dist/lib/types/form-types.js.map +1 -1
  31. package/dist/lib/types/navigation-events.d.ts +2 -2
  32. package/dist/lib/types/navigation-events.d.ts.map +1 -1
  33. package/dist/lib/types/toolbar-config.d.ts +6 -0
  34. package/dist/lib/types/toolbar-config.d.ts.map +1 -1
  35. package/dist/lib/types/toolbar-config.js +6 -0
  36. package/dist/lib/types/toolbar-config.js.map +1 -1
  37. package/dist/module.d.ts +9 -8
  38. package/dist/module.d.ts.map +1 -1
  39. package/dist/module.js +5 -0
  40. package/dist/module.js.map +1 -1
  41. package/dist/public-api.d.ts +1 -0
  42. package/dist/public-api.d.ts.map +1 -1
  43. package/dist/public-api.js +1 -0
  44. package/dist/public-api.js.map +1 -1
  45. package/package.json +10 -9
@@ -6,28 +6,35 @@ import { CompositeKey } from '@memberjunction/core';
6
6
  import * as i0 from "@angular/core";
7
7
  const _c0 = ["panelContent"];
8
8
  const _c1 = ["*"];
9
- function MjCollapsiblePanelComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
10
- i0.ɵɵelementStart(0, "span", 14);
9
+ function MjCollapsiblePanelComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
10
+ const _r2 = i0.ɵɵgetCurrentView();
11
+ i0.ɵɵelementStart(0, "div", 13);
12
+ i0.ɵɵlistener("dragstart", function MjCollapsiblePanelComponent_Conditional_2_Template_div_dragstart_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnDragStart($event)); })("dragend", function MjCollapsiblePanelComponent_Conditional_2_Template_div_dragend_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnDragEnd()); })("click", function MjCollapsiblePanelComponent_Conditional_2_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r2); return i0.ɵɵresetView($event.stopPropagation()); });
13
+ i0.ɵɵelement(1, "i", 14);
14
+ i0.ɵɵelementEnd();
15
+ } }
16
+ function MjCollapsiblePanelComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
17
+ i0.ɵɵelementStart(0, "span", 15);
11
18
  i0.ɵɵtext(1);
12
19
  i0.ɵɵelementEnd();
13
20
  } if (rf & 2) {
14
- const ctx_r1 = i0.ɵɵnextContext();
15
- i0.ɵɵclassProp("mj-forms-row-count-badge--zero", ctx_r1.BadgeCount === 0);
21
+ const ctx_r2 = i0.ɵɵnextContext();
22
+ i0.ɵɵclassProp("mj-forms-row-count-badge--zero", ctx_r2.BadgeCount === 0);
16
23
  i0.ɵɵadvance();
17
- i0.ɵɵtextInterpolate1(" ", ctx_r1.BadgeCount, " ");
24
+ i0.ɵɵtextInterpolate1(" ", ctx_r2.BadgeCount, " ");
18
25
  } }
19
- function MjCollapsiblePanelComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
20
- const _r3 = i0.ɵɵgetCurrentView();
21
- i0.ɵɵelementStart(0, "a", 15);
22
- i0.ɵɵlistener("click", function MjCollapsiblePanelComponent_Conditional_9_Template_a_click_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnInheritedBadgeClick($event)); });
23
- i0.ɵɵelement(1, "i", 16);
26
+ function MjCollapsiblePanelComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
27
+ const _r4 = i0.ɵɵgetCurrentView();
28
+ i0.ɵɵelementStart(0, "a", 16);
29
+ i0.ɵɵlistener("click", function MjCollapsiblePanelComponent_Conditional_8_Template_a_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnInheritedBadgeClick($event)); });
30
+ i0.ɵɵelement(1, "i", 17);
24
31
  i0.ɵɵtext(2);
25
32
  i0.ɵɵelementEnd();
26
33
  } if (rf & 2) {
27
- const ctx_r1 = i0.ɵɵnextContext();
28
- i0.ɵɵproperty("title", "View parent record: " + ctx_r1.InheritedFromEntity);
34
+ const ctx_r2 = i0.ɵɵnextContext();
35
+ i0.ɵɵproperty("title", "View parent record: " + ctx_r2.InheritedFromEntity);
29
36
  i0.ɵɵadvance(2);
30
- i0.ɵɵtextInterpolate1(" Inherited from ", ctx_r1.InheritedFromEntity, " ");
37
+ i0.ɵɵtextInterpolate1(" Inherited from ", ctx_r2.InheritedFromEntity, " ");
31
38
  } }
32
39
  /**
33
40
  * Reusable collapsible panel for form sections.
@@ -114,8 +121,15 @@ export class MjCollapsiblePanelComponent {
114
121
  DisplayName = '';
115
122
  FieldNames = '';
116
123
  IsVisible = true;
117
- get IsHidden() {
118
- return !this.IsVisible;
124
+ get HostClass() {
125
+ const classes = [`mj-panel--${this.Variant}`];
126
+ if (!this.IsVisible)
127
+ classes.push('mj-search-hidden');
128
+ if (this.IsDragging)
129
+ classes.push('mj-dragging');
130
+ if (this.IsDragOver)
131
+ classes.push('mj-drag-over');
132
+ return classes.join(' ');
119
133
  }
120
134
  get CssOrder() {
121
135
  const formRef = this.Form;
@@ -140,6 +154,10 @@ export class MjCollapsiblePanelComponent {
140
154
  const formRef = this.Form;
141
155
  return formRef?.GetSectionPanelHeight?.(this.SectionKey);
142
156
  }
157
+ /** Whether drag-to-reorder is allowed (from FormContext) */
158
+ get ReorderAllowed() {
159
+ return this.FormContext?.allowSectionReorder !== false;
160
+ }
143
161
  /** Whether the panel is expanded (delegates to form state) */
144
162
  get Expanded() {
145
163
  const formRef = this.Form;
@@ -191,20 +209,27 @@ export class MjCollapsiblePanelComponent {
191
209
  }
192
210
  /**
193
211
  * Navigate to the parent entity when clicking the "Inherited from X" badge.
212
+ * Derives the PrimaryKey from the Form's record when InheritedRecordPrimaryKey
213
+ * is not explicitly provided (which is the common case in generated templates).
194
214
  */
195
215
  OnInheritedBadgeClick(event) {
196
216
  event.stopPropagation();
197
217
  if (!this.InheritedFromEntity)
198
218
  return;
219
+ const primaryKey = this.InheritedRecordPrimaryKey
220
+ ?? this.Form?.record?.PrimaryKey
221
+ ?? new CompositeKey([]);
199
222
  this.Navigate.emit({
200
223
  Kind: 'entity-hierarchy',
201
224
  EntityName: this.InheritedFromEntity,
202
- PrimaryKey: this.InheritedRecordPrimaryKey ?? new CompositeKey([]),
225
+ PrimaryKey: primaryKey,
203
226
  Direction: 'parent'
204
227
  });
205
228
  }
206
229
  // ---- Drag and Drop ----
207
230
  OnDragOver(event) {
231
+ if (!this.ReorderAllowed)
232
+ return;
208
233
  event.preventDefault();
209
234
  event.stopPropagation();
210
235
  if (event.dataTransfer?.types.includes('text/plain')) {
@@ -212,10 +237,14 @@ export class MjCollapsiblePanelComponent {
212
237
  }
213
238
  }
214
239
  OnDragLeave(event) {
240
+ if (!this.ReorderAllowed)
241
+ return;
215
242
  event.preventDefault();
216
243
  this.IsDragOver = false;
217
244
  }
218
245
  OnDrop(event) {
246
+ if (!this.ReorderAllowed)
247
+ return;
219
248
  event.preventDefault();
220
249
  event.stopPropagation();
221
250
  this.IsDragOver = false;
@@ -229,6 +258,8 @@ export class MjCollapsiblePanelComponent {
229
258
  }
230
259
  }
231
260
  OnDragStart(event) {
261
+ if (!this.ReorderAllowed)
262
+ return;
232
263
  this.IsDragging = true;
233
264
  event.dataTransfer?.setData('text/plain', this.SectionKey);
234
265
  if (event.dataTransfer) {
@@ -344,44 +375,43 @@ export class MjCollapsiblePanelComponent {
344
375
  } if (rf & 2) {
345
376
  let _t;
346
377
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panelContentRef = _t.first);
347
- } }, hostVars: 8, hostBindings: function MjCollapsiblePanelComponent_HostBindings(rf, ctx) { if (rf & 1) {
378
+ } }, hostVars: 4, hostBindings: function MjCollapsiblePanelComponent_HostBindings(rf, ctx) { if (rf & 1) {
348
379
  i0.ɵɵlistener("dragover", function MjCollapsiblePanelComponent_dragover_HostBindingHandler($event) { return ctx.OnDragOver($event); })("dragleave", function MjCollapsiblePanelComponent_dragleave_HostBindingHandler($event) { return ctx.OnDragLeave($event); })("drop", function MjCollapsiblePanelComponent_drop_HostBindingHandler($event) { return ctx.OnDrop($event); });
349
380
  } if (rf & 2) {
381
+ i0.ɵɵclassMap(ctx.HostClass);
350
382
  i0.ɵɵstyleProp("order", ctx.CssOrder);
351
- i0.ɵɵclassProp("mj-search-hidden", ctx.IsHidden)("mj-dragging", ctx.IsDragging)("mj-drag-over", ctx.IsDragOver);
352
- } }, inputs: { SectionKey: "SectionKey", SectionName: "SectionName", Icon: "Icon", Form: "Form", FormContext: "FormContext", Variant: "Variant", BadgeCount: "BadgeCount", DefaultExpanded: "DefaultExpanded", InheritedFromEntity: "InheritedFromEntity", InheritedRecordPrimaryKey: "InheritedRecordPrimaryKey", _deprecatedSectionKey: [0, "sectionKey", "_deprecatedSectionKey"], _deprecatedSectionName: [0, "sectionName", "_deprecatedSectionName"], _deprecatedIcon: [0, "icon", "_deprecatedIcon"], _deprecatedForm: [0, "form", "_deprecatedForm"], _deprecatedFormContext: [0, "formContext", "_deprecatedFormContext"] }, outputs: { DragStarted: "DragStarted", DragEnded: "DragEnded", PanelDrop: "PanelDrop", Navigate: "Navigate" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c1, decls: 16, vars: 16, consts: [["panelContent", ""], [1, "mj-forms-panel"], ["role", "button", "tabindex", "0", 1, "mj-forms-panel-header", 3, "click"], ["title", "Drag to reorder sections", "draggable", "true", 1, "mj-forms-drag-handle", 3, "dragstart", "dragend", "click"], [1, "fa-solid", "fa-grip-vertical"], [1, "mj-forms-panel-title-group"], [1, "mj-forms-panel-icon"], [1, "mj-forms-panel-title"], [3, "innerHTML"], [1, "mj-forms-row-count-badge", 3, "mj-forms-row-count-badge--zero"], [1, "mj-forms-inherited-badge", 3, "title"], [1, "mj-forms-panel-chevron"], [1, "mj-forms-panel-body"], [1, "mj-forms-panel-content"], [1, "mj-forms-row-count-badge"], [1, "mj-forms-inherited-badge", 3, "click", "title"], [1, "fa-solid", "fa-arrow-up"]], template: function MjCollapsiblePanelComponent_Template(rf, ctx) { if (rf & 1) {
383
+ } }, inputs: { SectionKey: "SectionKey", SectionName: "SectionName", Icon: "Icon", Form: "Form", FormContext: "FormContext", Variant: "Variant", BadgeCount: "BadgeCount", DefaultExpanded: "DefaultExpanded", InheritedFromEntity: "InheritedFromEntity", InheritedRecordPrimaryKey: "InheritedRecordPrimaryKey", _deprecatedSectionKey: [0, "sectionKey", "_deprecatedSectionKey"], _deprecatedSectionName: [0, "sectionName", "_deprecatedSectionName"], _deprecatedIcon: [0, "icon", "_deprecatedIcon"], _deprecatedForm: [0, "form", "_deprecatedForm"], _deprecatedFormContext: [0, "formContext", "_deprecatedFormContext"] }, outputs: { DragStarted: "DragStarted", DragEnded: "DragEnded", PanelDrop: "PanelDrop", Navigate: "Navigate" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c1, decls: 15, vars: 17, consts: [["panelContent", ""], [1, "mj-forms-panel"], ["role", "button", "tabindex", "0", 1, "mj-forms-panel-header", 3, "click"], ["title", "Drag to reorder sections", "draggable", "true", 1, "mj-forms-drag-handle"], [1, "mj-forms-panel-title-group"], [1, "mj-forms-panel-icon"], [1, "mj-forms-panel-title"], [3, "innerHTML"], [1, "mj-forms-row-count-badge", 3, "mj-forms-row-count-badge--zero"], [1, "mj-forms-inherited-badge", 3, "title"], [1, "mj-forms-panel-chevron"], [1, "mj-forms-panel-body"], [1, "mj-forms-panel-content"], ["title", "Drag to reorder sections", "draggable", "true", 1, "mj-forms-drag-handle", 3, "dragstart", "dragend", "click"], [1, "fa-solid", "fa-grip-vertical"], [1, "mj-forms-row-count-badge"], [1, "mj-forms-inherited-badge", 3, "click", "title"], [1, "fa-solid", "fa-arrow-up"]], template: function MjCollapsiblePanelComponent_Template(rf, ctx) { if (rf & 1) {
353
384
  const _r1 = i0.ɵɵgetCurrentView();
354
385
  i0.ɵɵprojectionDef();
355
386
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
356
387
  i0.ɵɵlistener("click", function MjCollapsiblePanelComponent_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.Toggle()); });
357
- i0.ɵɵelementStart(2, "div", 3);
358
- i0.ɵɵlistener("dragstart", function MjCollapsiblePanelComponent_Template_div_dragstart_2_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.OnDragStart($event)); })("dragend", function MjCollapsiblePanelComponent_Template_div_dragend_2_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.OnDragEnd()); })("click", function MjCollapsiblePanelComponent_Template_div_click_2_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); });
359
- i0.ɵɵelement(3, "i", 4);
360
- i0.ɵɵelementEnd();
361
- i0.ɵɵelementStart(4, "div", 5);
362
- i0.ɵɵelement(5, "i", 6);
363
- i0.ɵɵelementStart(6, "h3", 7);
364
- i0.ɵɵelement(7, "span", 8);
365
- i0.ɵɵconditionalCreate(8, MjCollapsiblePanelComponent_Conditional_8_Template, 2, 3, "span", 9);
388
+ i0.ɵɵconditionalCreate(2, MjCollapsiblePanelComponent_Conditional_2_Template, 2, 0, "div", 3);
389
+ i0.ɵɵelementStart(3, "div", 4);
390
+ i0.ɵɵelement(4, "i", 5);
391
+ i0.ɵɵelementStart(5, "h3", 6);
392
+ i0.ɵɵelement(6, "span", 7);
393
+ i0.ɵɵconditionalCreate(7, MjCollapsiblePanelComponent_Conditional_7_Template, 2, 3, "span", 8);
366
394
  i0.ɵɵelementEnd()();
367
- i0.ɵɵconditionalCreate(9, MjCollapsiblePanelComponent_Conditional_9_Template, 3, 2, "a", 10);
368
- i0.ɵɵelementStart(10, "div", 11);
369
- i0.ɵɵelement(11, "i");
395
+ i0.ɵɵconditionalCreate(8, MjCollapsiblePanelComponent_Conditional_8_Template, 3, 2, "a", 9);
396
+ i0.ɵɵelementStart(9, "div", 10);
397
+ i0.ɵɵelement(10, "i");
370
398
  i0.ɵɵelementEnd()();
371
- i0.ɵɵelementStart(12, "div", 12)(13, "div", 13, 0);
372
- i0.ɵɵprojection(15);
399
+ i0.ɵɵelementStart(11, "div", 11)(12, "div", 12, 0);
400
+ i0.ɵɵprojection(14);
373
401
  i0.ɵɵelementEnd()()();
374
402
  } if (rf & 2) {
375
403
  i0.ɵɵclassProp("mj-forms-panel--related", ctx.Variant === "related-entity")("mj-forms-panel--inherited", ctx.Variant === "inherited");
376
404
  i0.ɵɵattribute("data-section-key", ctx.SectionKey);
377
- i0.ɵɵadvance(5);
405
+ i0.ɵɵadvance(2);
406
+ i0.ɵɵconditional(ctx.ReorderAllowed ? 2 : -1);
407
+ i0.ɵɵadvance(2);
378
408
  i0.ɵɵclassMap(ctx.Icon);
379
409
  i0.ɵɵadvance(2);
380
410
  i0.ɵɵproperty("innerHTML", ctx.DisplayName, i0.ɵɵsanitizeHtml);
381
411
  i0.ɵɵadvance();
382
- i0.ɵɵconditional(ctx.BadgeCount !== undefined ? 8 : -1);
412
+ i0.ɵɵconditional(ctx.BadgeCount !== undefined ? 7 : -1);
383
413
  i0.ɵɵadvance();
384
- i0.ɵɵconditional(ctx.Variant === "inherited" && ctx.InheritedFromEntity ? 9 : -1);
414
+ i0.ɵɵconditional(ctx.Variant === "inherited" && ctx.InheritedFromEntity ? 8 : -1);
385
415
  i0.ɵɵadvance(2);
386
416
  i0.ɵɵclassMap(ctx.Expanded ? "fa fa-chevron-up" : "fa fa-chevron-down");
387
417
  i0.ɵɵadvance();
@@ -392,7 +422,7 @@ export class MjCollapsiblePanelComponent {
392
422
  }
393
423
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MjCollapsiblePanelComponent, [{
394
424
  type: Component,
395
- args: [{ standalone: false, selector: 'mj-collapsible-panel', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"mj-forms-panel\"\n [class.mj-forms-panel--related]=\"Variant === 'related-entity'\"\n [class.mj-forms-panel--inherited]=\"Variant === 'inherited'\"\n [attr.data-section-key]=\"SectionKey\">\n\n <!-- Panel Header -->\n <div class=\"mj-forms-panel-header\" role=\"button\" tabindex=\"0\" (click)=\"Toggle()\">\n <!-- Drag Handle -->\n <div class=\"mj-forms-drag-handle\"\n title=\"Drag to reorder sections\"\n draggable=\"true\"\n (dragstart)=\"OnDragStart($event)\"\n (dragend)=\"OnDragEnd()\"\n (click)=\"$event.stopPropagation()\">\n <i class=\"fa-solid fa-grip-vertical\"></i>\n </div>\n\n <!-- Icon + Title -->\n <div class=\"mj-forms-panel-title-group\">\n <i [class]=\"Icon\" class=\"mj-forms-panel-icon\"></i>\n <h3 class=\"mj-forms-panel-title\">\n <span [innerHTML]=\"DisplayName\"></span>\n <!-- Row count badge for related entities -->\n @if (BadgeCount !== undefined) {\n <span class=\"mj-forms-row-count-badge\" [class.mj-forms-row-count-badge--zero]=\"BadgeCount === 0\">\n {{ BadgeCount }}\n </span>\n }\n </h3>\n </div>\n\n <!-- Inherited From badge (IS-A) -->\n @if (Variant === 'inherited' && InheritedFromEntity) {\n <a class=\"mj-forms-inherited-badge\" (click)=\"OnInheritedBadgeClick($event)\"\n [title]=\"'View parent record: ' + InheritedFromEntity\">\n <i class=\"fa-solid fa-arrow-up\"></i>\n Inherited from {{ InheritedFromEntity }}\n </a>\n }\n\n <!-- Chevron -->\n <div class=\"mj-forms-panel-chevron\">\n <i [class]=\"Expanded ? 'fa fa-chevron-up' : 'fa fa-chevron-down'\"></i>\n </div>\n </div>\n\n <!-- Panel Body -->\n <div class=\"mj-forms-panel-body\" [class.mj-forms-panel-body--collapsed]=\"!Expanded\">\n <div class=\"mj-forms-panel-content\"\n #panelContent\n [style.height.px]=\"PanelContentHeight\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: ["mj-collapsible-panel {\n --mj-card-bg: #ffffff;\n --mj-card-radius: 8px;\n --mj-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 4px 12px rgba(0, 0, 0, 0.05);\n --mj-accent: #667eea;\n --mj-accent-light: rgba(102, 126, 234, 0.08);\n --mj-text-primary: #1f2937;\n --mj-text-secondary: #6b7280;\n --mj-text-muted: #9ca3af;\n --mj-border: #e5e7eb;\n --mj-success: #10b981;\n --mj-isa-parent: #8b5cf6;\n --mj-related-accent: #3b82f6;\n --mj-transition: 200ms;\n\n display: block;\n}\n\nmj-collapsible-panel.mj-search-hidden {\n display: none;\n}\n\nmj-collapsible-panel.mj-drag-over {\n border: 2px dashed var(--mj-accent);\n border-radius: var(--mj-card-radius);\n}\n\n/* ============================================\n PANEL CARD\n ============================================ */\n.mj-forms-panel {\n background: var(--mj-card-bg);\n border-radius: var(--mj-card-radius);\n box-shadow: var(--mj-card-shadow);\n border: 1px solid rgba(0, 0, 0, 0.07);\n overflow: hidden;\n transition: all 0.3s ease;\n}\n\n/* ============================================\n HEADER\n ============================================ */\n.mj-forms-panel-header {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px 20px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid var(--mj-border);\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.mj-forms-panel-header:hover {\n background: linear-gradient(135deg, #f3f4f6 0%, #f9fafb 100%);\n border-bottom-color: var(--mj-accent);\n}\n\n/* Drag handle */\n.mj-forms-drag-handle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 0;\n height: 24px;\n color: var(--mj-text-muted);\n cursor: grab;\n opacity: 0;\n overflow: hidden;\n transition: width var(--mj-transition) ease, opacity var(--mj-transition) ease;\n flex-shrink: 0;\n}\n\n.mj-forms-panel-header:hover .mj-forms-drag-handle {\n width: 24px;\n opacity: 1;\n}\n\n.mj-forms-drag-handle:hover {\n color: var(--mj-accent);\n}\n\n.mj-forms-drag-handle:active {\n cursor: grabbing;\n}\n\nmj-collapsible-panel.mj-dragging .mj-forms-drag-handle {\n width: 24px;\n opacity: 1;\n color: var(--mj-accent);\n}\n\n/* Title group */\n.mj-forms-panel-title-group {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.mj-forms-panel-icon {\n font-size: 18px;\n color: var(--mj-accent);\n width: 24px;\n text-align: center;\n}\n\n.mj-forms-panel-title {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.mj-forms-panel-chevron {\n color: var(--mj-text-secondary);\n font-size: 14px;\n transition: transform 0.3s ease;\n padding: 4px;\n}\n\n/* Row count badge */\n.mj-forms-row-count-badge {\n background: var(--mj-success);\n color: white;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 24px;\n line-height: 1;\n}\n\n.mj-forms-row-count-badge--zero {\n background: var(--mj-text-muted);\n}\n\n/* ============================================\n INHERITED VARIANT (IS-A parent fields)\n ============================================ */\n.mj-forms-panel--inherited {\n border-left: 3px solid var(--mj-isa-parent);\n}\n\n.mj-forms-panel--inherited .mj-forms-panel-header {\n background: linear-gradient(135deg, #f5f3ff 0%, #ffffff 100%);\n}\n\n.mj-forms-panel--inherited .mj-forms-panel-header:hover {\n background: linear-gradient(135deg, #ede9fe 0%, #f5f3ff 100%);\n border-bottom-color: var(--mj-isa-parent);\n}\n\n.mj-forms-panel--inherited .mj-forms-panel-icon {\n color: var(--mj-isa-parent);\n}\n\n.mj-forms-inherited-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n font-weight: 600;\n padding: 3px 10px;\n border-radius: 4px;\n background: #f3f0ff;\n color: var(--mj-isa-parent);\n border: 1px solid #e0d5ff;\n cursor: pointer;\n transition: all var(--mj-transition) ease;\n text-decoration: none;\n}\n\n.mj-forms-inherited-badge:hover {\n background: #e8e0ff;\n border-color: var(--mj-isa-parent);\n box-shadow: 0 2px 6px rgba(139, 92, 246, 0.2);\n}\n\n.mj-forms-inherited-badge i {\n font-size: 10px;\n}\n\n/* ============================================\n RELATED ENTITY VARIANT\n ============================================ */\n.mj-forms-panel--related {\n border-left: 3px solid var(--mj-related-accent);\n}\n\n.mj-forms-panel--related .mj-forms-panel-header {\n background: linear-gradient(135deg, #e0f2fe 0%, #f0f9ff 100%);\n}\n\n.mj-forms-panel--related .mj-forms-panel-header:hover {\n background: linear-gradient(135deg, #bfdbfe 0%, #e0f2fe 100%);\n border-bottom-color: var(--mj-related-accent);\n}\n\n.mj-forms-panel--related .mj-forms-panel-icon {\n color: var(--mj-related-accent);\n}\n\n/* Related entity content \u2014 400px default, user can drag-resize vertically */\n.mj-forms-panel--related .mj-forms-panel-content {\n height: 400px;\n padding: 0;\n overflow: hidden;\n resize: vertical;\n min-height: 120px;\n max-height: 800px;\n}\n\n/* Ensure child chain fills the resizable content area */\n.mj-forms-panel--related .mj-forms-panel-content > *,\n.mj-forms-panel--related .mj-forms-panel-content > .ng-star-inserted {\n height: 100%;\n}\n\n.mj-forms-panel--related .mj-forms-panel-content > * > * {\n height: 100%;\n}\n\n/* Related entity panels need the body to not clip the resize handle */\n.mj-forms-panel--related .mj-forms-panel-body {\n overflow: visible;\n}\n\n/* ============================================\n BODY (collapsible)\n ============================================ */\n.mj-forms-panel-body {\n max-height: 2000px;\n overflow: hidden;\n transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;\n opacity: 1;\n}\n\n.mj-forms-panel-body--collapsed {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.mj-forms-panel-content {\n padding: 20px;\n overflow: auto;\n max-height: 600px;\n}\n\n/* ============================================\n SEARCH HIGHLIGHTING\n ============================================ */\n.mj-forms-panel-title ::ng-deep .mj-forms-search-highlight {\n background-color: #fef08a;\n color: #854d0e;\n padding: 0;\n border-radius: 2px;\n font-weight: 700;\n box-shadow: 0 0 0 2px #fef08a;\n}\n"] }]
425
+ args: [{ standalone: false, selector: 'mj-collapsible-panel', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"mj-forms-panel\"\n [class.mj-forms-panel--related]=\"Variant === 'related-entity'\"\n [class.mj-forms-panel--inherited]=\"Variant === 'inherited'\"\n [attr.data-section-key]=\"SectionKey\">\n\n <!-- Panel Header -->\n <div class=\"mj-forms-panel-header\" role=\"button\" tabindex=\"0\" (click)=\"Toggle()\">\n <!-- Drag Handle (hidden when reorder disabled) -->\n @if (ReorderAllowed) {\n <div class=\"mj-forms-drag-handle\"\n title=\"Drag to reorder sections\"\n draggable=\"true\"\n (dragstart)=\"OnDragStart($event)\"\n (dragend)=\"OnDragEnd()\"\n (click)=\"$event.stopPropagation()\">\n <i class=\"fa-solid fa-grip-vertical\"></i>\n </div>\n }\n\n <!-- Icon + Title -->\n <div class=\"mj-forms-panel-title-group\">\n <i [class]=\"Icon\" class=\"mj-forms-panel-icon\"></i>\n <h3 class=\"mj-forms-panel-title\">\n <span [innerHTML]=\"DisplayName\"></span>\n <!-- Row count badge for related entities -->\n @if (BadgeCount !== undefined) {\n <span class=\"mj-forms-row-count-badge\" [class.mj-forms-row-count-badge--zero]=\"BadgeCount === 0\">\n {{ BadgeCount }}\n </span>\n }\n </h3>\n </div>\n\n <!-- Inherited From badge (IS-A) -->\n @if (Variant === 'inherited' && InheritedFromEntity) {\n <a class=\"mj-forms-inherited-badge\" (click)=\"OnInheritedBadgeClick($event)\"\n [title]=\"'View parent record: ' + InheritedFromEntity\">\n <i class=\"fa-solid fa-arrow-up\"></i>\n Inherited from {{ InheritedFromEntity }}\n </a>\n }\n\n <!-- Chevron -->\n <div class=\"mj-forms-panel-chevron\">\n <i [class]=\"Expanded ? 'fa fa-chevron-up' : 'fa fa-chevron-down'\"></i>\n </div>\n </div>\n\n <!-- Panel Body -->\n <div class=\"mj-forms-panel-body\" [class.mj-forms-panel-body--collapsed]=\"!Expanded\">\n <div class=\"mj-forms-panel-content\"\n #panelContent\n [style.height.px]=\"PanelContentHeight\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: ["mj-collapsible-panel {\n --mj-card-bg: #ffffff;\n --mj-card-radius: 8px;\n --mj-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 4px 12px rgba(0, 0, 0, 0.05);\n --mj-accent: #667eea;\n --mj-accent-light: rgba(102, 126, 234, 0.08);\n --mj-text-primary: #1f2937;\n --mj-text-secondary: #6b7280;\n --mj-text-muted: #9ca3af;\n --mj-border: #e5e7eb;\n --mj-success: #10b981;\n --mj-isa-parent: #8b5cf6;\n --mj-related-accent: #3b82f6;\n --mj-transition: 200ms;\n\n display: block;\n}\n\nmj-collapsible-panel.mj-search-hidden {\n display: none;\n}\n\nmj-collapsible-panel.mj-drag-over {\n border: 2px dashed var(--mj-accent);\n border-radius: var(--mj-card-radius);\n}\n\n/* ============================================\n PANEL CARD\n ============================================ */\n.mj-forms-panel {\n background: var(--mj-card-bg);\n border-radius: var(--mj-card-radius);\n box-shadow: var(--mj-card-shadow);\n border: 1px solid rgba(0, 0, 0, 0.07);\n overflow: hidden;\n transition: all 0.3s ease;\n}\n\n/* ============================================\n HEADER\n ============================================ */\n.mj-forms-panel-header {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px 20px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid var(--mj-border);\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.mj-forms-panel-header:hover {\n background: linear-gradient(135deg, #f3f4f6 0%, #f9fafb 100%);\n border-bottom-color: var(--mj-accent);\n}\n\n/* Drag handle */\n.mj-forms-drag-handle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 0;\n height: 24px;\n color: var(--mj-text-muted);\n cursor: grab;\n opacity: 0;\n overflow: hidden;\n transition: width var(--mj-transition) ease, opacity var(--mj-transition) ease;\n flex-shrink: 0;\n}\n\n.mj-forms-panel-header:hover .mj-forms-drag-handle {\n width: 24px;\n opacity: 1;\n}\n\n.mj-forms-drag-handle:hover {\n color: var(--mj-accent);\n}\n\n.mj-forms-drag-handle:active {\n cursor: grabbing;\n}\n\nmj-collapsible-panel.mj-dragging .mj-forms-drag-handle {\n width: 24px;\n opacity: 1;\n color: var(--mj-accent);\n}\n\n/* Title group */\n.mj-forms-panel-title-group {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.mj-forms-panel-icon {\n font-size: 18px;\n color: var(--mj-accent);\n width: 24px;\n text-align: center;\n}\n\n.mj-forms-panel-title {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.mj-forms-panel-chevron {\n color: var(--mj-text-secondary);\n font-size: 14px;\n transition: transform 0.3s ease;\n padding: 4px;\n}\n\n/* Row count badge */\n.mj-forms-row-count-badge {\n background: var(--mj-success);\n color: white;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 24px;\n line-height: 1;\n}\n\n.mj-forms-row-count-badge--zero {\n background: var(--mj-text-muted);\n}\n\n/* ============================================\n INHERITED VARIANT (IS-A parent fields)\n ============================================ */\n.mj-forms-panel--inherited {\n border-left: 3px solid var(--mj-isa-parent);\n}\n\n.mj-forms-panel--inherited .mj-forms-panel-header {\n background: linear-gradient(135deg, #f5f3ff 0%, #ffffff 100%);\n}\n\n.mj-forms-panel--inherited .mj-forms-panel-header:hover {\n background: linear-gradient(135deg, #ede9fe 0%, #f5f3ff 100%);\n border-bottom-color: var(--mj-isa-parent);\n}\n\n.mj-forms-panel--inherited .mj-forms-panel-icon {\n color: var(--mj-isa-parent);\n}\n\n.mj-forms-inherited-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n font-weight: 600;\n padding: 3px 10px;\n border-radius: 4px;\n background: #f3f0ff;\n color: var(--mj-isa-parent);\n border: 1px solid #e0d5ff;\n cursor: pointer;\n transition: all var(--mj-transition) ease;\n text-decoration: none;\n}\n\n.mj-forms-inherited-badge:hover {\n background: #e8e0ff;\n border-color: var(--mj-isa-parent);\n box-shadow: 0 2px 6px rgba(139, 92, 246, 0.2);\n}\n\n.mj-forms-inherited-badge i {\n font-size: 10px;\n}\n\n/* ============================================\n RELATED ENTITY VARIANT\n ============================================ */\n.mj-forms-panel--related {\n border-left: 3px solid var(--mj-related-accent);\n}\n\n.mj-forms-panel--related .mj-forms-panel-header {\n background: linear-gradient(135deg, #e0f2fe 0%, #f0f9ff 100%);\n}\n\n.mj-forms-panel--related .mj-forms-panel-header:hover {\n background: linear-gradient(135deg, #bfdbfe 0%, #e0f2fe 100%);\n border-bottom-color: var(--mj-related-accent);\n}\n\n.mj-forms-panel--related .mj-forms-panel-icon {\n color: var(--mj-related-accent);\n}\n\n/* Related entity content \u2014 400px default, user can drag-resize vertically */\n.mj-forms-panel--related .mj-forms-panel-content {\n height: 400px;\n padding: 0;\n overflow: hidden;\n resize: vertical;\n min-height: 120px;\n max-height: 800px;\n}\n\n/* Ensure child chain fills the resizable content area */\n.mj-forms-panel--related .mj-forms-panel-content > *,\n.mj-forms-panel--related .mj-forms-panel-content > .ng-star-inserted {\n height: 100%;\n}\n\n.mj-forms-panel--related .mj-forms-panel-content > * > * {\n height: 100%;\n}\n\n/* Related entity panels need the body to not clip the resize handle */\n.mj-forms-panel--related .mj-forms-panel-body {\n overflow: visible;\n}\n\n/* ============================================\n BODY (collapsible)\n ============================================ */\n.mj-forms-panel-body {\n max-height: 2000px;\n overflow: hidden;\n transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;\n opacity: 1;\n}\n\n.mj-forms-panel-body--collapsed {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.mj-forms-panel-content {\n padding: 20px;\n overflow: auto;\n max-height: 600px;\n}\n\n/* ============================================\n SEARCH HIGHLIGHTING\n ============================================ */\n.mj-forms-panel-title ::ng-deep .mj-forms-search-highlight {\n background-color: #fef08a;\n color: #854d0e;\n padding: 0;\n border-radius: 2px;\n font-weight: 700;\n box-shadow: 0 0 0 2px #fef08a;\n}\n"] }]
396
426
  }], null, { SectionKey: [{
397
427
  type: Input
398
428
  }], SectionName: [{
@@ -439,18 +469,12 @@ export class MjCollapsiblePanelComponent {
439
469
  }], FieldComponents: [{
440
470
  type: ContentChildren,
441
471
  args: [MjFormFieldComponent, { descendants: true }]
442
- }], IsHidden: [{
472
+ }], HostClass: [{
443
473
  type: HostBinding,
444
- args: ['class.mj-search-hidden']
474
+ args: ['class']
445
475
  }], CssOrder: [{
446
476
  type: HostBinding,
447
477
  args: ['style.order']
448
- }], IsDragging: [{
449
- type: HostBinding,
450
- args: ['class.mj-dragging']
451
- }], IsDragOver: [{
452
- type: HostBinding,
453
- args: ['class.mj-drag-over']
454
478
  }], panelContentRef: [{
455
479
  type: ViewChild,
456
480
  args: ['panelContent']
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible-panel.component.js","sourceRoot":"","sources":["../../../src/lib/panel/collapsible-panel.component.ts","../../../src/lib/panel/collapsible-panel.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collapsible-panel.component.js","sourceRoot":"","sources":["../../../src/lib/panel/collapsible-panel.component.ts","../../../src/lib/panel/collapsible-panel.component.html"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { PanelVariant } from '../types/form-types';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Info about a section, passed from the container to the Section Manager drawer.
6
+ */
7
+ export interface SectionManagerItem {
8
+ SectionKey: string;
9
+ SectionName: string;
10
+ Variant: PanelVariant;
11
+ Icon: string;
12
+ }
13
+ /**
14
+ * Slide-in drawer for managing section order.
15
+ *
16
+ * Provides an accessible, keyboard-friendly alternative to drag-and-drop
17
+ * for reordering form sections. Each section is displayed as a row with
18
+ * up/down arrow buttons to change position.
19
+ *
20
+ * @example
21
+ * ```html
22
+ * <mj-section-manager
23
+ * [Sections]="sectionList"
24
+ * [SectionOrder]="currentOrder"
25
+ * [Visible]="showDrawer"
26
+ * (SectionOrderChange)="onOrderChange($event)"
27
+ * (Closed)="showDrawer = false">
28
+ * </mj-section-manager>
29
+ * ```
30
+ */
31
+ export declare class MjSectionManagerComponent implements OnChanges {
32
+ private cdr;
33
+ /** All available sections (unordered) */
34
+ Sections: SectionManagerItem[];
35
+ /** Current section order (array of section keys) */
36
+ SectionOrder: string[];
37
+ /** Whether the drawer is visible */
38
+ Visible: boolean;
39
+ /** Emits the new section order when the user reorders */
40
+ SectionOrderChange: EventEmitter<string[]>;
41
+ /** Emits when the drawer is closed */
42
+ Closed: EventEmitter<void>;
43
+ /** Emits when the user resets to default order */
44
+ ResetRequested: EventEmitter<void>;
45
+ /** Ordered list of sections for display */
46
+ OrderedSections: SectionManagerItem[];
47
+ ngOnChanges(changes: SimpleChanges): void;
48
+ OnClose(): void;
49
+ OnOverlayClick(event: MouseEvent): void;
50
+ OnMoveUp(index: number): void;
51
+ OnMoveDown(index: number): void;
52
+ OnReset(): void;
53
+ GetVariantIcon(variant: PanelVariant): string;
54
+ GetVariantLabel(variant: PanelVariant): string;
55
+ private RebuildOrderedSections;
56
+ private ApplyOrder;
57
+ static ɵfac: i0.ɵɵFactoryDeclaration<MjSectionManagerComponent, never>;
58
+ static ɵcmp: i0.ɵɵComponentDeclaration<MjSectionManagerComponent, "mj-section-manager", never, { "Sections": { "alias": "Sections"; "required": false; }; "SectionOrder": { "alias": "SectionOrder"; "required": false; }; "Visible": { "alias": "Visible"; "required": false; }; }, { "SectionOrderChange": "SectionOrderChange"; "Closed": "Closed"; "ResetRequested": "ResetRequested"; }, never, never, false, never>;
59
+ }
60
+ //# sourceMappingURL=section-manager.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section-manager.component.d.ts","sourceRoot":"","sources":["../../../src/lib/section-manager/section-manager.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACqB,YAAY,EAEtC,SAAS,EAAE,aAAa,EACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;;AAEnD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAOa,yBAA0B,YAAW,SAAS;IACzD,OAAO,CAAC,GAAG,CAA6B;IAExC,yCAAyC;IAChC,QAAQ,EAAE,kBAAkB,EAAE,CAAM;IAE7C,oDAAoD;IAC3C,YAAY,EAAE,MAAM,EAAE,CAAM;IAErC,oCAAoC;IAC3B,OAAO,UAAS;IAEzB,yDAAyD;IAC/C,kBAAkB,yBAAgC;IAE5D,sCAAsC;IAC5B,MAAM,qBAA4B;IAE5C,kDAAkD;IACxC,cAAc,qBAA4B;IAEpD,2CAA2C;IAC3C,eAAe,EAAE,kBAAkB,EAAE,CAAM;IAE3C,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMzC,OAAO,IAAI,IAAI;IAIf,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAOvC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ7B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ/B,OAAO,IAAI,IAAI;IAIf,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;IAQ7C,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;IAQ9C,OAAO,CAAC,sBAAsB;IAiC9B,OAAO,CAAC,UAAU;yCA9GP,yBAAyB;2CAAzB,yBAAyB;CAwHrC"}
@@ -0,0 +1,208 @@
1
+ import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, inject } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ const _forTrack0 = ($index, $item) => $item.SectionKey;
4
+ function MjSectionManagerComponent_Conditional_0_For_10_Template(rf, ctx) { if (rf & 1) {
5
+ const _r3 = i0.ɵɵgetCurrentView();
6
+ i0.ɵɵelementStart(0, "div", 9)(1, "div", 13);
7
+ i0.ɵɵelement(2, "i", 14);
8
+ i0.ɵɵelementStart(3, "span", 15);
9
+ i0.ɵɵtext(4);
10
+ i0.ɵɵelementEnd();
11
+ i0.ɵɵelementStart(5, "span");
12
+ i0.ɵɵtext(6);
13
+ i0.ɵɵelementEnd()();
14
+ i0.ɵɵelementStart(7, "div", 16)(8, "button", 17);
15
+ i0.ɵɵlistener("click", function MjSectionManagerComponent_Conditional_0_For_10_Template_button_click_8_listener() { const ɵ$index_19_r4 = i0.ɵɵrestoreView(_r3).$index; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnMoveUp(ɵ$index_19_r4)); });
16
+ i0.ɵɵelement(9, "i", 18);
17
+ i0.ɵɵelementEnd();
18
+ i0.ɵɵelementStart(10, "button", 19);
19
+ i0.ɵɵlistener("click", function MjSectionManagerComponent_Conditional_0_For_10_Template_button_click_10_listener() { const ɵ$index_19_r4 = i0.ɵɵrestoreView(_r3).$index; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnMoveDown(ɵ$index_19_r4)); });
20
+ i0.ɵɵelement(11, "i", 20);
21
+ i0.ɵɵelementEnd()()();
22
+ } if (rf & 2) {
23
+ const section_r5 = ctx.$implicit;
24
+ const ɵ$index_19_r4 = ctx.$index;
25
+ const ctx_r1 = i0.ɵɵnextContext(2);
26
+ i0.ɵɵadvance(2);
27
+ i0.ɵɵclassMap(section_r5.Icon);
28
+ i0.ɵɵadvance(2);
29
+ i0.ɵɵtextInterpolate(section_r5.SectionName);
30
+ i0.ɵɵadvance();
31
+ i0.ɵɵclassMap(i0.ɵɵinterpolate1("mj-sm-row-badge mj-sm-row-badge--", section_r5.Variant));
32
+ i0.ɵɵadvance();
33
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.GetVariantLabel(section_r5.Variant), " ");
34
+ i0.ɵɵadvance(2);
35
+ i0.ɵɵproperty("disabled", ɵ$index_19_r4 === 0);
36
+ i0.ɵɵadvance(2);
37
+ i0.ɵɵproperty("disabled", ɵ$index_19_r4 === ctx_r1.OrderedSections.length - 1);
38
+ } }
39
+ function MjSectionManagerComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
40
+ const _r1 = i0.ɵɵgetCurrentView();
41
+ i0.ɵɵelementStart(0, "div", 1);
42
+ i0.ɵɵlistener("click", function MjSectionManagerComponent_Conditional_0_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnOverlayClick($event)); });
43
+ i0.ɵɵelementStart(1, "div", 2);
44
+ i0.ɵɵlistener("click", function MjSectionManagerComponent_Conditional_0_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); });
45
+ i0.ɵɵelementStart(2, "div", 3)(3, "h3", 4);
46
+ i0.ɵɵelement(4, "i", 5);
47
+ i0.ɵɵtext(5, " Manage Sections ");
48
+ i0.ɵɵelementEnd();
49
+ i0.ɵɵelementStart(6, "button", 6);
50
+ i0.ɵɵlistener("click", function MjSectionManagerComponent_Conditional_0_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnClose()); });
51
+ i0.ɵɵelement(7, "i", 7);
52
+ i0.ɵɵelementEnd()();
53
+ i0.ɵɵelementStart(8, "div", 8);
54
+ i0.ɵɵrepeaterCreate(9, MjSectionManagerComponent_Conditional_0_For_10_Template, 12, 9, "div", 9, _forTrack0);
55
+ i0.ɵɵelementEnd();
56
+ i0.ɵɵelementStart(11, "div", 10)(12, "button", 11);
57
+ i0.ɵɵlistener("click", function MjSectionManagerComponent_Conditional_0_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnReset()); });
58
+ i0.ɵɵelement(13, "i", 12);
59
+ i0.ɵɵtext(14, " Reset to Default Order ");
60
+ i0.ɵɵelementEnd()()()();
61
+ } if (rf & 2) {
62
+ const ctx_r1 = i0.ɵɵnextContext();
63
+ i0.ɵɵadvance(9);
64
+ i0.ɵɵrepeater(ctx_r1.OrderedSections);
65
+ } }
66
+ /**
67
+ * Slide-in drawer for managing section order.
68
+ *
69
+ * Provides an accessible, keyboard-friendly alternative to drag-and-drop
70
+ * for reordering form sections. Each section is displayed as a row with
71
+ * up/down arrow buttons to change position.
72
+ *
73
+ * @example
74
+ * ```html
75
+ * <mj-section-manager
76
+ * [Sections]="sectionList"
77
+ * [SectionOrder]="currentOrder"
78
+ * [Visible]="showDrawer"
79
+ * (SectionOrderChange)="onOrderChange($event)"
80
+ * (Closed)="showDrawer = false">
81
+ * </mj-section-manager>
82
+ * ```
83
+ */
84
+ export class MjSectionManagerComponent {
85
+ cdr = inject(ChangeDetectorRef);
86
+ /** All available sections (unordered) */
87
+ Sections = [];
88
+ /** Current section order (array of section keys) */
89
+ SectionOrder = [];
90
+ /** Whether the drawer is visible */
91
+ Visible = false;
92
+ /** Emits the new section order when the user reorders */
93
+ SectionOrderChange = new EventEmitter();
94
+ /** Emits when the drawer is closed */
95
+ Closed = new EventEmitter();
96
+ /** Emits when the user resets to default order */
97
+ ResetRequested = new EventEmitter();
98
+ /** Ordered list of sections for display */
99
+ OrderedSections = [];
100
+ ngOnChanges(changes) {
101
+ if (changes['Sections'] || changes['SectionOrder']) {
102
+ this.RebuildOrderedSections();
103
+ }
104
+ }
105
+ OnClose() {
106
+ this.Closed.emit();
107
+ }
108
+ OnOverlayClick(event) {
109
+ // Only close if clicking the overlay itself, not the drawer
110
+ if (event.target === event.currentTarget) {
111
+ this.OnClose();
112
+ }
113
+ }
114
+ OnMoveUp(index) {
115
+ if (index <= 0)
116
+ return;
117
+ const newOrder = this.OrderedSections.map(s => s.SectionKey);
118
+ [newOrder[index - 1], newOrder[index]] = [newOrder[index], newOrder[index - 1]];
119
+ this.SectionOrderChange.emit(newOrder);
120
+ this.ApplyOrder(newOrder);
121
+ }
122
+ OnMoveDown(index) {
123
+ if (index >= this.OrderedSections.length - 1)
124
+ return;
125
+ const newOrder = this.OrderedSections.map(s => s.SectionKey);
126
+ [newOrder[index], newOrder[index + 1]] = [newOrder[index + 1], newOrder[index]];
127
+ this.SectionOrderChange.emit(newOrder);
128
+ this.ApplyOrder(newOrder);
129
+ }
130
+ OnReset() {
131
+ this.ResetRequested.emit();
132
+ }
133
+ GetVariantIcon(variant) {
134
+ switch (variant) {
135
+ case 'related-entity': return 'fa-solid fa-link';
136
+ case 'inherited': return 'fa-solid fa-arrow-up';
137
+ default: return 'fa-solid fa-table-cells';
138
+ }
139
+ }
140
+ GetVariantLabel(variant) {
141
+ switch (variant) {
142
+ case 'related-entity': return 'Related';
143
+ case 'inherited': return 'Inherited';
144
+ default: return 'Fields';
145
+ }
146
+ }
147
+ RebuildOrderedSections() {
148
+ if (!this.Sections || this.Sections.length === 0) {
149
+ this.OrderedSections = [];
150
+ return;
151
+ }
152
+ const sectionMap = new Map();
153
+ for (const s of this.Sections) {
154
+ sectionMap.set(s.SectionKey, s);
155
+ }
156
+ const ordered = [];
157
+ // Add sections in persisted order first
158
+ if (this.SectionOrder && this.SectionOrder.length > 0) {
159
+ for (const key of this.SectionOrder) {
160
+ const section = sectionMap.get(key);
161
+ if (section) {
162
+ ordered.push(section);
163
+ sectionMap.delete(key);
164
+ }
165
+ }
166
+ }
167
+ // Append any sections not in the persisted order (new sections)
168
+ for (const section of sectionMap.values()) {
169
+ ordered.push(section);
170
+ }
171
+ this.OrderedSections = ordered;
172
+ this.cdr.markForCheck();
173
+ }
174
+ ApplyOrder(newOrder) {
175
+ const sectionMap = new Map();
176
+ for (const s of this.OrderedSections) {
177
+ sectionMap.set(s.SectionKey, s);
178
+ }
179
+ this.OrderedSections = newOrder
180
+ .map(key => sectionMap.get(key))
181
+ .filter((s) => s !== undefined);
182
+ this.cdr.markForCheck();
183
+ }
184
+ static ɵfac = function MjSectionManagerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MjSectionManagerComponent)(); };
185
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MjSectionManagerComponent, selectors: [["mj-section-manager"]], inputs: { Sections: "Sections", SectionOrder: "SectionOrder", Visible: "Visible" }, outputs: { SectionOrderChange: "SectionOrderChange", Closed: "Closed", ResetRequested: "ResetRequested" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[1, "mj-sm-overlay"], [1, "mj-sm-overlay", 3, "click"], [1, "mj-sm-drawer", 3, "click"], [1, "mj-sm-header"], [1, "mj-sm-title"], [1, "fa-solid", "fa-bars-staggered"], ["title", "Close", 1, "mj-sm-close", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "mj-sm-list"], [1, "mj-sm-row"], [1, "mj-sm-footer"], [1, "mj-sm-reset", 3, "click"], [1, "fa-solid", "fa-arrow-rotate-left"], [1, "mj-sm-row-info"], [1, "mj-sm-row-icon"], [1, "mj-sm-row-name"], [1, "mj-sm-row-actions"], ["title", "Move up", 1, "mj-sm-arrow", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-up"], ["title", "Move down", 1, "mj-sm-arrow", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-down"]], template: function MjSectionManagerComponent_Template(rf, ctx) { if (rf & 1) {
186
+ i0.ɵɵconditionalCreate(0, MjSectionManagerComponent_Conditional_0_Template, 15, 0, "div", 0);
187
+ } if (rf & 2) {
188
+ i0.ɵɵconditional(ctx.Visible ? 0 : -1);
189
+ } }, styles: ["\n\n\n\n[_nghost-%COMP%] {\n --mj-sm-width: 340px;\n --mj-sm-bg: #ffffff;\n --mj-sm-header-bg: #f9fafb;\n --mj-sm-border: #e5e7eb;\n --mj-sm-text: #1f2937;\n --mj-sm-text-secondary: #6b7280;\n --mj-sm-text-muted: #9ca3af;\n --mj-sm-accent: #667eea;\n --mj-sm-transition: 200ms;\n}\n\n\n\n\n\n.mj-sm-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.3);\n z-index: 1000;\n animation: _ngcontent-%COMP%_mj-sm-fade-in 150ms ease;\n}\n\n\n\n\n\n.mj-sm-drawer[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n width: var(--mj-sm-width);\n max-width: 90vw;\n background: var(--mj-sm-bg);\n box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);\n display: flex;\n flex-direction: column;\n animation: _ngcontent-%COMP%_mj-sm-slide-in 200ms ease;\n}\n\n\n\n\n\n.mj-sm-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n background: var(--mj-sm-header-bg);\n border-bottom: 1px solid var(--mj-sm-border);\n flex-shrink: 0;\n}\n\n.mj-sm-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-sm-text);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.mj-sm-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-sm-accent);\n font-size: 14px;\n}\n\n.mj-sm-close[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-sm-text-muted);\n cursor: pointer;\n padding: 6px;\n font-size: 16px;\n border-radius: 4px;\n transition: all var(--mj-sm-transition);\n line-height: 1;\n}\n\n.mj-sm-close[_ngcontent-%COMP%]:hover {\n color: var(--mj-sm-text);\n background: rgba(0, 0, 0, 0.05);\n}\n\n\n\n\n\n.mj-sm-list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 8px 0;\n}\n\n.mj-sm-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 20px;\n border-bottom: 1px solid #f3f4f6;\n transition: background var(--mj-sm-transition);\n}\n\n.mj-sm-row[_ngcontent-%COMP%]:hover {\n background: #f9fafb;\n}\n\n.mj-sm-row-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n flex: 1;\n}\n\n.mj-sm-row-icon[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-sm-text-secondary);\n width: 18px;\n text-align: center;\n flex-shrink: 0;\n}\n\n.mj-sm-row-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-sm-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n\n\n.mj-sm-row-badge[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: 4px;\n flex-shrink: 0;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.mj-sm-row-badge--default[_ngcontent-%COMP%] {\n background: #f3f4f6;\n color: #6b7280;\n}\n\n.mj-sm-row-badge--related-entity[_ngcontent-%COMP%] {\n background: #eff6ff;\n color: #3b82f6;\n}\n\n.mj-sm-row-badge--inherited[_ngcontent-%COMP%] {\n background: #f3f0ff;\n color: #8b5cf6;\n}\n\n\n\n.mj-sm-row-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 2px;\n flex-shrink: 0;\n margin-left: 8px;\n}\n\n.mj-sm-arrow[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: 1px solid var(--mj-sm-border);\n background: white;\n border-radius: 4px;\n cursor: pointer;\n color: var(--mj-sm-text-secondary);\n font-size: 11px;\n transition: all var(--mj-sm-transition);\n}\n\n.mj-sm-arrow[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-sm-accent);\n border-color: var(--mj-sm-accent);\n color: white;\n}\n\n.mj-sm-arrow[_ngcontent-%COMP%]:disabled {\n opacity: 0.3;\n cursor: not-allowed;\n}\n\n\n\n\n\n.mj-sm-footer[_ngcontent-%COMP%] {\n padding: 14px 20px;\n border-top: 1px solid var(--mj-sm-border);\n flex-shrink: 0;\n}\n\n.mj-sm-reset[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 7px 14px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-sm-text-secondary);\n background: white;\n border: 1px solid var(--mj-sm-border);\n border-radius: 6px;\n cursor: pointer;\n transition: all var(--mj-sm-transition);\n font-family: inherit;\n}\n\n.mj-sm-reset[_ngcontent-%COMP%]:hover {\n background: #f3f4f6;\n border-color: #9ca3af;\n color: var(--mj-sm-text);\n}\n\n.mj-sm-reset[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n\n\n\n@keyframes _ngcontent-%COMP%_mj-sm-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes _ngcontent-%COMP%_mj-sm-slide-in {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n}"], changeDetection: 0 });
190
+ }
191
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MjSectionManagerComponent, [{
192
+ type: Component,
193
+ args: [{ standalone: false, selector: 'mj-section-manager', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Overlay backdrop -->\n@if (Visible) {\n <div class=\"mj-sm-overlay\" (click)=\"OnOverlayClick($event)\">\n <!-- Drawer panel -->\n <div class=\"mj-sm-drawer\" (click)=\"$event.stopPropagation()\">\n <!-- Header -->\n <div class=\"mj-sm-header\">\n <h3 class=\"mj-sm-title\">\n <i class=\"fa-solid fa-bars-staggered\"></i>\n Manage Sections\n </h3>\n <button class=\"mj-sm-close\" (click)=\"OnClose()\" title=\"Close\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <!-- Section list -->\n <div class=\"mj-sm-list\">\n @for (section of OrderedSections; track section.SectionKey; let i = $index) {\n <div class=\"mj-sm-row\">\n <div class=\"mj-sm-row-info\">\n <i [class]=\"section.Icon\" class=\"mj-sm-row-icon\"></i>\n <span class=\"mj-sm-row-name\">{{ section.SectionName }}</span>\n <span class=\"mj-sm-row-badge mj-sm-row-badge--{{ section.Variant }}\">\n {{ GetVariantLabel(section.Variant) }}\n </span>\n </div>\n <div class=\"mj-sm-row-actions\">\n <button class=\"mj-sm-arrow\"\n [disabled]=\"i === 0\"\n (click)=\"OnMoveUp(i)\"\n title=\"Move up\">\n <i class=\"fa-solid fa-chevron-up\"></i>\n </button>\n <button class=\"mj-sm-arrow\"\n [disabled]=\"i === OrderedSections.length - 1\"\n (click)=\"OnMoveDown(i)\"\n title=\"Move down\">\n <i class=\"fa-solid fa-chevron-down\"></i>\n </button>\n </div>\n </div>\n }\n </div>\n\n <!-- Footer -->\n <div class=\"mj-sm-footer\">\n <button class=\"mj-sm-reset\" (click)=\"OnReset()\">\n <i class=\"fa-solid fa-arrow-rotate-left\"></i>\n Reset to Default Order\n </button>\n </div>\n </div>\n </div>\n}\n", styles: ["/* ============================================\n CSS VARIABLES\n ============================================ */\n:host {\n --mj-sm-width: 340px;\n --mj-sm-bg: #ffffff;\n --mj-sm-header-bg: #f9fafb;\n --mj-sm-border: #e5e7eb;\n --mj-sm-text: #1f2937;\n --mj-sm-text-secondary: #6b7280;\n --mj-sm-text-muted: #9ca3af;\n --mj-sm-accent: #667eea;\n --mj-sm-transition: 200ms;\n}\n\n/* ============================================\n OVERLAY\n ============================================ */\n.mj-sm-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.3);\n z-index: 1000;\n animation: mj-sm-fade-in 150ms ease;\n}\n\n/* ============================================\n DRAWER\n ============================================ */\n.mj-sm-drawer {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n width: var(--mj-sm-width);\n max-width: 90vw;\n background: var(--mj-sm-bg);\n box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);\n display: flex;\n flex-direction: column;\n animation: mj-sm-slide-in 200ms ease;\n}\n\n/* ============================================\n HEADER\n ============================================ */\n.mj-sm-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n background: var(--mj-sm-header-bg);\n border-bottom: 1px solid var(--mj-sm-border);\n flex-shrink: 0;\n}\n\n.mj-sm-title {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-sm-text);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.mj-sm-title i {\n color: var(--mj-sm-accent);\n font-size: 14px;\n}\n\n.mj-sm-close {\n background: none;\n border: none;\n color: var(--mj-sm-text-muted);\n cursor: pointer;\n padding: 6px;\n font-size: 16px;\n border-radius: 4px;\n transition: all var(--mj-sm-transition);\n line-height: 1;\n}\n\n.mj-sm-close:hover {\n color: var(--mj-sm-text);\n background: rgba(0, 0, 0, 0.05);\n}\n\n/* ============================================\n SECTION LIST\n ============================================ */\n.mj-sm-list {\n flex: 1;\n overflow-y: auto;\n padding: 8px 0;\n}\n\n.mj-sm-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 20px;\n border-bottom: 1px solid #f3f4f6;\n transition: background var(--mj-sm-transition);\n}\n\n.mj-sm-row:hover {\n background: #f9fafb;\n}\n\n.mj-sm-row-info {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n flex: 1;\n}\n\n.mj-sm-row-icon {\n font-size: 13px;\n color: var(--mj-sm-text-secondary);\n width: 18px;\n text-align: center;\n flex-shrink: 0;\n}\n\n.mj-sm-row-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-sm-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Variant badges */\n.mj-sm-row-badge {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: 4px;\n flex-shrink: 0;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.mj-sm-row-badge--default {\n background: #f3f4f6;\n color: #6b7280;\n}\n\n.mj-sm-row-badge--related-entity {\n background: #eff6ff;\n color: #3b82f6;\n}\n\n.mj-sm-row-badge--inherited {\n background: #f3f0ff;\n color: #8b5cf6;\n}\n\n/* Arrow buttons */\n.mj-sm-row-actions {\n display: flex;\n gap: 2px;\n flex-shrink: 0;\n margin-left: 8px;\n}\n\n.mj-sm-arrow {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: 1px solid var(--mj-sm-border);\n background: white;\n border-radius: 4px;\n cursor: pointer;\n color: var(--mj-sm-text-secondary);\n font-size: 11px;\n transition: all var(--mj-sm-transition);\n}\n\n.mj-sm-arrow:hover:not(:disabled) {\n background: var(--mj-sm-accent);\n border-color: var(--mj-sm-accent);\n color: white;\n}\n\n.mj-sm-arrow:disabled {\n opacity: 0.3;\n cursor: not-allowed;\n}\n\n/* ============================================\n FOOTER\n ============================================ */\n.mj-sm-footer {\n padding: 14px 20px;\n border-top: 1px solid var(--mj-sm-border);\n flex-shrink: 0;\n}\n\n.mj-sm-reset {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 7px 14px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-sm-text-secondary);\n background: white;\n border: 1px solid var(--mj-sm-border);\n border-radius: 6px;\n cursor: pointer;\n transition: all var(--mj-sm-transition);\n font-family: inherit;\n}\n\n.mj-sm-reset:hover {\n background: #f3f4f6;\n border-color: #9ca3af;\n color: var(--mj-sm-text);\n}\n\n.mj-sm-reset i {\n font-size: 12px;\n}\n\n/* ============================================\n ANIMATIONS\n ============================================ */\n@keyframes mj-sm-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes mj-sm-slide-in {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n}\n"] }]
194
+ }], null, { Sections: [{
195
+ type: Input
196
+ }], SectionOrder: [{
197
+ type: Input
198
+ }], Visible: [{
199
+ type: Input
200
+ }], SectionOrderChange: [{
201
+ type: Output
202
+ }], Closed: [{
203
+ type: Output
204
+ }], ResetRequested: [{
205
+ type: Output
206
+ }] }); })();
207
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MjSectionManagerComponent, { className: "MjSectionManagerComponent", filePath: "src/lib/section-manager/section-manager.component.ts", lineNumber: 43 }); })();
208
+ //# sourceMappingURL=section-manager.component.js.map