@memberjunction/ng-base-forms 4.2.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.
- package/dist/__tests__/sanity.test.d.ts +2 -0
- package/dist/__tests__/sanity.test.d.ts.map +1 -0
- package/dist/__tests__/sanity.test.js +12 -0
- package/dist/__tests__/sanity.test.js.map +1 -0
- package/dist/lib/__tests__/base-forms.test.d.ts +2 -0
- package/dist/lib/__tests__/base-forms.test.d.ts.map +1 -0
- package/dist/lib/__tests__/base-forms.test.js +252 -0
- package/dist/lib/__tests__/base-forms.test.js.map +1 -0
- package/dist/lib/container/record-form-container.component.d.ts +15 -3
- package/dist/lib/container/record-form-container.component.d.ts.map +1 -1
- package/dist/lib/container/record-form-container.component.js +81 -41
- package/dist/lib/container/record-form-container.component.js.map +1 -1
- package/dist/lib/explorer-entity-data-grid.component.d.ts.map +1 -1
- package/dist/lib/explorer-entity-data-grid.component.js +10 -2
- package/dist/lib/explorer-entity-data-grid.component.js.map +1 -1
- package/dist/lib/panel/collapsible-panel.component.d.ts +5 -1
- package/dist/lib/panel/collapsible-panel.component.d.ts.map +1 -1
- package/dist/lib/panel/collapsible-panel.component.js +69 -45
- package/dist/lib/panel/collapsible-panel.component.js.map +1 -1
- package/dist/lib/section-manager/section-manager.component.d.ts +60 -0
- package/dist/lib/section-manager/section-manager.component.d.ts.map +1 -0
- package/dist/lib/section-manager/section-manager.component.js +208 -0
- package/dist/lib/section-manager/section-manager.component.js.map +1 -0
- package/dist/lib/toolbar/form-toolbar.component.d.ts +20 -2
- package/dist/lib/toolbar/form-toolbar.component.d.ts.map +1 -1
- package/dist/lib/toolbar/form-toolbar.component.js +154 -72
- package/dist/lib/toolbar/form-toolbar.component.js.map +1 -1
- package/dist/lib/types/form-types.d.ts +2 -0
- package/dist/lib/types/form-types.d.ts.map +1 -1
- package/dist/lib/types/form-types.js.map +1 -1
- package/dist/lib/types/navigation-events.d.ts +2 -2
- package/dist/lib/types/navigation-events.d.ts.map +1 -1
- package/dist/lib/types/toolbar-config.d.ts +6 -0
- package/dist/lib/types/toolbar-config.d.ts.map +1 -1
- package/dist/lib/types/toolbar-config.js +6 -0
- package/dist/lib/types/toolbar-config.js.map +1 -1
- package/dist/module.d.ts +9 -8
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +5 -0
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +1 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +1 -0
- package/dist/public-api.js.map +1 -1
- 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
|
|
10
|
-
i0.ɵɵ
|
|
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
|
|
15
|
-
i0.ɵɵclassProp("mj-forms-row-count-badge--zero",
|
|
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(" ",
|
|
24
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.BadgeCount, " ");
|
|
18
25
|
} }
|
|
19
|
-
function
|
|
20
|
-
const
|
|
21
|
-
i0.ɵɵelementStart(0, "a",
|
|
22
|
-
i0.ɵɵlistener("click", function
|
|
23
|
-
i0.ɵɵelement(1, "i",
|
|
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
|
|
28
|
-
i0.ɵɵproperty("title", "View parent record: " +
|
|
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 ",
|
|
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
|
|
118
|
-
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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.ɵɵ
|
|
358
|
-
i0.ɵɵ
|
|
359
|
-
i0.ɵɵelement(
|
|
360
|
-
i0.ɵɵ
|
|
361
|
-
i0.ɵɵ
|
|
362
|
-
i0.ɵɵ
|
|
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(
|
|
368
|
-
i0.ɵɵelementStart(
|
|
369
|
-
i0.ɵɵelement(
|
|
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(
|
|
372
|
-
i0.ɵɵprojection(
|
|
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(
|
|
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 ?
|
|
412
|
+
i0.ɵɵconditional(ctx.BadgeCount !== undefined ? 7 : -1);
|
|
383
413
|
i0.ɵɵadvance();
|
|
384
|
-
i0.ɵɵconditional(ctx.Variant === "inherited" && ctx.InheritedFromEntity ?
|
|
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
|
|
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
|
-
}],
|
|
472
|
+
}], HostClass: [{
|
|
443
473
|
type: HostBinding,
|
|
444
|
-
args: ['class
|
|
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
|