@memberjunction/ng-form-toolbar 3.3.0 → 4.0.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/README.md CHANGED
@@ -23,7 +23,7 @@ npm install @memberjunction/ng-form-toolbar
23
23
 
24
24
  ## Requirements
25
25
 
26
- - Angular 18+
26
+ - Angular 21+
27
27
  - @memberjunction/global ^2.43.0
28
28
  - @memberjunction/core ^2.43.0
29
29
  - @memberjunction/ng-shared ^2.43.0
@@ -1 +1 @@
1
- {"version":3,"file":"form-toolbar.d.ts","sourceRoot":"","sources":["../../src/lib/form-toolbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAgB,UAAU,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,YAAY,EAA6D,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAA8C,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACvG,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;;AAGtG,qBAKa,oBAAqB,YAAW,MAAM;IAuD5B,OAAO,CAAC,MAAM;IAtDxB,kBAAkB,EAAE,OAAO,CAAQ;IACnC,IAAI,EAAG,iBAAiB,CAAC;IACwB,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAE1F,IAAW,qBAAqB,IAAI,OAAO,CAE1C;IAGD;;OAEG;IACI,QAAQ,EAAE,OAAO,CAAS;IAEjC;;OAEG;IACH,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IAEM,iBAAiB,EAAE,OAAO,CAAS;IACnC,oBAAoB,EAAE,OAAO,CAAS;IACtC,cAAc,EAAE,UAAU,EAAE,CAAM;IAClC,aAAa,EAAE,UAAU,EAAE,CAAM;IAGjC,sBAAsB,EAAE,OAAO,CAAS;IACxC,oBAAoB,EAAE,0BAA0B,GAAG,IAAI,CAAQ;IAC/D,qBAAqB,EAAE,OAAO,CAAQ;IAGtC,eAAe,EAAE,MAAM,CAAK;IAC5B,kBAAkB,EAAE,OAAO,CAAS;IACpC,WAAW,EAAE,UAAU,EAAE,CAAM;IAEtC;;OAEG;IACI,kBAAkB,EAAE,OAAO,CAAS;IAE3C;;OAEG;IACI,oBAAoB,EAAE,OAAO,CAAS;IAC7C;;OAEG;IACI,sBAAsB,EAAE,OAAO,CAAS;IAE/C,IAAW,sBAAsB,IAAI,YAAY,CAEhD;gBAE0B,MAAM,EAAE,MAAM;IAG5B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtC;;OAEG;IACU,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwDpC,kBAAkB,CAAC,KAAK,EAAE,UAAU;IAkEjD;;OAEG;IACI,YAAY,IAAI,IAAI;IAKpB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAIjC,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB3D;;OAEG;IACI,sBAAsB,IAAI,IAAI;IAyBrC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACU,4BAA4B,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBtF;;OAEG;IACI,0BAA0B,IAAI,IAAI;IAK5B,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBhD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;yCA5TjC,oBAAoB;2CAApB,oBAAoB;CA4VhC"}
1
+ {"version":3,"file":"form-toolbar.d.ts","sourceRoot":"","sources":["../../src/lib/form-toolbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAgB,UAAU,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,YAAY,EAA6D,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAA8C,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACvG,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;;AAGtG,qBAMa,oBAAqB,YAAW,MAAM;IAuD5B,OAAO,CAAC,MAAM;IAtDxB,kBAAkB,EAAE,OAAO,CAAQ;IACnC,IAAI,EAAG,iBAAiB,CAAC;IACwB,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAE1F,IAAW,qBAAqB,IAAI,OAAO,CAE1C;IAGD;;OAEG;IACI,QAAQ,EAAE,OAAO,CAAS;IAEjC;;OAEG;IACH,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IAEM,iBAAiB,EAAE,OAAO,CAAS;IACnC,oBAAoB,EAAE,OAAO,CAAS;IACtC,cAAc,EAAE,UAAU,EAAE,CAAM;IAClC,aAAa,EAAE,UAAU,EAAE,CAAM;IAGjC,sBAAsB,EAAE,OAAO,CAAS;IACxC,oBAAoB,EAAE,0BAA0B,GAAG,IAAI,CAAQ;IAC/D,qBAAqB,EAAE,OAAO,CAAQ;IAGtC,eAAe,EAAE,MAAM,CAAK;IAC5B,kBAAkB,EAAE,OAAO,CAAS;IACpC,WAAW,EAAE,UAAU,EAAE,CAAM;IAEtC;;OAEG;IACI,kBAAkB,EAAE,OAAO,CAAS;IAE3C;;OAEG;IACI,oBAAoB,EAAE,OAAO,CAAS;IAC7C;;OAEG;IACI,sBAAsB,EAAE,OAAO,CAAS;IAE/C,IAAW,sBAAsB,IAAI,YAAY,CAEhD;gBAE0B,MAAM,EAAE,MAAM;IAG5B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtC;;OAEG;IACU,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwDpC,kBAAkB,CAAC,KAAK,EAAE,UAAU;IAkEjD;;OAEG;IACI,YAAY,IAAI,IAAI;IAKpB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAIjC,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB3D;;OAEG;IACI,sBAAsB,IAAI,IAAI;IAyBrC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACU,4BAA4B,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBtF;;OAEG;IACI,0BAA0B,IAAI,IAAI;IAK5B,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBhD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;yCA5TjC,oBAAoB;2CAApB,oBAAoB;CA4VhC"}
@@ -5,11 +5,10 @@ import { MJEventType, MJGlobal } from '@memberjunction/global';
5
5
  import { ListDetailEntityExtended } from '@memberjunction/core-entities';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/router";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "@memberjunction/ng-record-changes";
10
- import * as i4 from "@progress/kendo-angular-buttons";
11
- import * as i5 from "@progress/kendo-angular-dialog";
12
- import * as i6 from "@memberjunction/ng-list-management";
8
+ import * as i2 from "@memberjunction/ng-record-changes";
9
+ import * as i3 from "@progress/kendo-angular-buttons";
10
+ import * as i4 from "@progress/kendo-angular-dialog";
11
+ import * as i5 from "@memberjunction/ng-list-management";
13
12
  const _c0 = ["additionalControls"];
14
13
  const _c1 = [[["", "toolbar-additional-controls", ""]]];
15
14
  const _c2 = ["[toolbar-additional-controls]"];
@@ -42,13 +41,15 @@ function FormToolbarComponent_Conditional_1_Conditional_2_Conditional_1_Template
42
41
  i0.ɵɵelementEnd();
43
42
  } }
44
43
  function FormToolbarComponent_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
45
- i0.ɵɵtemplate(0, FormToolbarComponent_Conditional_1_Conditional_2_Conditional_0_Template, 2, 0, "button", 13)(1, FormToolbarComponent_Conditional_1_Conditional_2_Conditional_1_Template, 2, 0, "button", 14);
44
+ i0.ɵɵconditionalCreate(0, FormToolbarComponent_Conditional_1_Conditional_2_Conditional_0_Template, 2, 0, "button", 13)(1, FormToolbarComponent_Conditional_1_Conditional_2_Conditional_1_Template, 2, 0, "button", 14);
46
45
  } if (rf & 2) {
47
46
  const ctx_r1 = i0.ɵɵnextContext(2);
48
47
  i0.ɵɵconditional(ctx_r1.form.IsFavorite ? 0 : 1);
49
48
  } }
50
49
  function FormToolbarComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
51
- i0.ɵɵtemplate(0, FormToolbarComponent_Conditional_1_Conditional_0_Template, 2, 0, "button", 7)(1, FormToolbarComponent_Conditional_1_Conditional_1_Template, 2, 0, "button", 8)(2, FormToolbarComponent_Conditional_1_Conditional_2_Template, 2, 1);
50
+ i0.ɵɵconditionalCreate(0, FormToolbarComponent_Conditional_1_Conditional_0_Template, 2, 0, "button", 7);
51
+ i0.ɵɵconditionalCreate(1, FormToolbarComponent_Conditional_1_Conditional_1_Template, 2, 0, "button", 8);
52
+ i0.ɵɵconditionalCreate(2, FormToolbarComponent_Conditional_1_Conditional_2_Template, 2, 1);
52
53
  } if (rf & 2) {
53
54
  const ctx_r1 = i0.ɵɵnextContext();
54
55
  i0.ɵɵconditional(ctx_r1.form.UserCanEdit ? 0 : -1);
@@ -83,7 +84,8 @@ function FormToolbarComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
83
84
  i0.ɵɵelementStart(2, "span", 21);
84
85
  i0.ɵɵtext(3, "Save");
85
86
  i0.ɵɵelementEnd()();
86
- i0.ɵɵtemplate(4, FormToolbarComponent_Conditional_2_Conditional_4_Template, 4, 0, "button", 22)(5, FormToolbarComponent_Conditional_2_Conditional_5_Template, 4, 0, "button", 23);
87
+ i0.ɵɵconditionalCreate(4, FormToolbarComponent_Conditional_2_Conditional_4_Template, 4, 0, "button", 22);
88
+ i0.ɵɵconditionalCreate(5, FormToolbarComponent_Conditional_2_Conditional_5_Template, 4, 0, "button", 23);
87
89
  } if (rf & 2) {
88
90
  const ctx_r1 = i0.ɵɵnextContext();
89
91
  i0.ɵɵadvance(4);
@@ -121,7 +123,7 @@ function FormToolbarComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
121
123
  i0.ɵɵelementStart(0, "button", 31);
122
124
  i0.ɵɵlistener("click", function FormToolbarComponent_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleListDialog(true)); });
123
125
  i0.ɵɵelement(1, "span", 32);
124
- i0.ɵɵtemplate(2, FormToolbarComponent_Conditional_5_Conditional_2_Template, 2, 1, "span", 33);
126
+ i0.ɵɵconditionalCreate(2, FormToolbarComponent_Conditional_5_Conditional_2_Template, 2, 1, "span", 33);
125
127
  i0.ɵɵelementEnd();
126
128
  } if (rf & 2) {
127
129
  const ctx_r1 = i0.ɵɵnextContext();
@@ -129,31 +131,31 @@ function FormToolbarComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
129
131
  i0.ɵɵadvance(2);
130
132
  i0.ɵɵconditional(ctx_r1.recordListCount > 0 ? 2 : -1);
131
133
  } }
132
- function FormToolbarComponent_kendo_dialog_7_Template(rf, ctx) { if (rf & 1) {
134
+ function FormToolbarComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
133
135
  const _r12 = i0.ɵɵgetCurrentView();
134
136
  i0.ɵɵelementStart(0, "kendo-dialog", 34);
135
- i0.ɵɵlistener("close", function FormToolbarComponent_kendo_dialog_7_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleDeleteDialog(false)); });
137
+ i0.ɵɵlistener("close", function FormToolbarComponent_Conditional_7_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleDeleteDialog(false)); });
136
138
  i0.ɵɵelementStart(1, "p", 35);
137
139
  i0.ɵɵtext(2, " Are you sure you want to delete this record? ");
138
140
  i0.ɵɵelementEnd();
139
141
  i0.ɵɵelementStart(3, "kendo-dialog-actions", 36)(4, "button", 37);
140
- i0.ɵɵlistener("click", function FormToolbarComponent_kendo_dialog_7_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.deleteRecord()); });
142
+ i0.ɵɵlistener("click", function FormToolbarComponent_Conditional_7_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.deleteRecord()); });
141
143
  i0.ɵɵtext(5, " Yes, Delete ");
142
144
  i0.ɵɵelementEnd();
143
145
  i0.ɵɵelementStart(6, "button", 38);
144
- i0.ɵɵlistener("click", function FormToolbarComponent_kendo_dialog_7_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleDeleteDialog(false)); });
146
+ i0.ɵɵlistener("click", function FormToolbarComponent_Conditional_7_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleDeleteDialog(false)); });
145
147
  i0.ɵɵtext(7, " No, Cancel ");
146
148
  i0.ɵɵelementEnd()()();
147
149
  } if (rf & 2) {
148
150
  i0.ɵɵproperty("minWidth", 450)("width", 650);
149
151
  } }
150
- function FormToolbarComponent_kendo_dialog_8_For_3_Template(rf, ctx) { if (rf & 1) {
152
+ function FormToolbarComponent_Conditional_8_For_3_Template(rf, ctx) { if (rf & 1) {
151
153
  const _r14 = i0.ɵɵgetCurrentView();
152
154
  i0.ɵɵelementStart(0, "div", 40)(1, "div", 41)(2, "div", 42);
153
155
  i0.ɵɵtext(3);
154
156
  i0.ɵɵelementEnd();
155
157
  i0.ɵɵelementStart(4, "button", 43);
156
- i0.ɵɵlistener("click", function FormToolbarComponent_kendo_dialog_8_For_3_Template_button_click_4_listener() { const list_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.addRecordToList(list_r15)); });
158
+ i0.ɵɵlistener("click", function FormToolbarComponent_Conditional_8_For_3_Template_button_click_4_listener() { const list_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.addRecordToList(list_r15)); });
157
159
  i0.ɵɵelementStart(5, "div", 44);
158
160
  i0.ɵɵelement(6, "span", 45);
159
161
  i0.ɵɵtext(7, " Add ");
@@ -165,14 +167,14 @@ function FormToolbarComponent_kendo_dialog_8_For_3_Template(rf, ctx) { if (rf &
165
167
  i0.ɵɵadvance(3);
166
168
  i0.ɵɵtextInterpolate1(" ", list_r15.Name, " ");
167
169
  } }
168
- function FormToolbarComponent_kendo_dialog_8_Template(rf, ctx) { if (rf & 1) {
170
+ function FormToolbarComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
169
171
  const _r13 = i0.ɵɵgetCurrentView();
170
172
  i0.ɵɵelementStart(0, "kendo-dialog", 39);
171
- i0.ɵɵlistener("close", function FormToolbarComponent_kendo_dialog_8_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleListDialog(false)); });
173
+ i0.ɵɵlistener("close", function FormToolbarComponent_Conditional_8_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleListDialog(false)); });
172
174
  i0.ɵɵelement(1, "hr");
173
- i0.ɵɵrepeaterCreate(2, FormToolbarComponent_kendo_dialog_8_For_3_Template, 9, 1, "div", 40, i0.ɵɵrepeaterTrackByIdentity);
175
+ i0.ɵɵrepeaterCreate(2, FormToolbarComponent_Conditional_8_For_3_Template, 9, 1, "div", 40, i0.ɵɵrepeaterTrackByIdentity);
174
176
  i0.ɵɵelementStart(4, "kendo-dialog-actions", 36)(5, "button", 38);
175
- i0.ɵɵlistener("click", function FormToolbarComponent_kendo_dialog_8_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleListDialog(false)); });
177
+ i0.ɵɵlistener("click", function FormToolbarComponent_Conditional_8_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleListDialog(false)); });
176
178
  i0.ɵɵtext(6, " Close ");
177
179
  i0.ɵɵelementEnd()()();
178
180
  } if (rf & 2) {
@@ -495,12 +497,17 @@ export class FormToolbarComponent {
495
497
  } if (rf & 2) {
496
498
  let _t;
497
499
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.additionalControls = _t.first);
498
- } }, inputs: { ShowSkipChatButton: "ShowSkipChatButton", form: "form" }, ngContentSelectors: _c2, decls: 10, vars: 9, consts: [[1, "toolbar-container"], ["kendoButton", "", "title", "Show History"], [3, "record"], ["kendoButton", "", 1, "list-button", 3, "title"], ["class", "dialog-wrapper", "title", "Confirm", 3, "minWidth", "width", "close", 4, "ngIf"], ["class", "dialog-wrapper", "title", "Select List to Add Record To", 3, "minWidth", "width", "height", "close", 4, "ngIf"], [3, "config", "visible"], ["kendoButton", "", "title", "Edit this Record"], ["kendoButton", "", "title", "Delete this Record"], ["kendoButton", "", "title", "Edit this Record", 3, "click"], [1, "fa-solid", "fa-pen-to-square"], ["kendoButton", "", "title", "Delete this Record", 3, "click"], [1, "fa-regular", "fa-trash-can"], ["kendoButton", "", "title", "Remove Favorite"], ["kendoButton", "", "title", "Make Favorite"], ["kendoButton", "", "title", "Remove Favorite", 3, "click"], [1, "fa-solid", "fa-star"], ["kendoButton", "", "title", "Make Favorite", 3, "click"], [1, "fa-regular", "fa-star"], ["kendoButton", "", "title", "Save Record", 3, "mouseup"], [1, "fa-solid", "fa-floppy-disk"], [1, "button-text"], ["kendoButton", "", "title", "Cancel Edit"], ["kendoButton", "", "title", "Fields you have changed"], ["kendoButton", "", "title", "Cancel Edit", 3, "click"], [1, "fa-solid", "fa-rotate-left"], ["kendoButton", "", "title", "Fields you have changed", 3, "click"], [1, "fa-solid", "fa-clipboard-list"], ["kendoButton", "", "title", "Show History", 3, "click"], [1, "fa-solid", "fa-clock-rotate-left"], [3, "dialogClosed", "record"], ["kendoButton", "", 1, "list-button", 3, "click", "title"], [1, "fa-solid", "fa-rectangle-list"], [1, "list-count-badge"], ["title", "Confirm", 1, "dialog-wrapper", 3, "close", "minWidth", "width"], [1, "k-m-7.5", "k-text-center"], [1, "popup-actions-btn"], ["kendoButton", "", "themeColor", "info", 1, "cancel-btn", 3, "click"], ["kendoButton", "", "fillMode", "outline", "themeColor", "info", 1, "yes-btn", 3, "click"], ["title", "Select List to Add Record To", 1, "dialog-wrapper", 3, "close", "minWidth", "width", "height"], [1, "overflow-y-scroll"], [1, "list-item"], [1, "list-text"], ["kendoButton", "", 1, "btn-no-border", 3, "click"], [1, "btn-margin-right"], [1, "fa-solid", "fa-plus"], [3, "complete", "cancel", "config", "visible"]], template: function FormToolbarComponent_Template(rf, ctx) { if (rf & 1) {
500
+ } }, inputs: { ShowSkipChatButton: "ShowSkipChatButton", form: "form" }, standalone: false, ngContentSelectors: _c2, decls: 10, vars: 9, consts: [[1, "toolbar-container"], ["kendoButton", "", "title", "Show History"], [3, "record"], ["kendoButton", "", 1, "list-button", 3, "title"], ["title", "Confirm", 1, "dialog-wrapper", 3, "minWidth", "width"], ["title", "Select List to Add Record To", 1, "dialog-wrapper", 3, "minWidth", "width", "height"], [3, "config", "visible"], ["kendoButton", "", "title", "Edit this Record"], ["kendoButton", "", "title", "Delete this Record"], ["kendoButton", "", "title", "Edit this Record", 3, "click"], [1, "fa-solid", "fa-pen-to-square"], ["kendoButton", "", "title", "Delete this Record", 3, "click"], [1, "fa-regular", "fa-trash-can"], ["kendoButton", "", "title", "Remove Favorite"], ["kendoButton", "", "title", "Make Favorite"], ["kendoButton", "", "title", "Remove Favorite", 3, "click"], [1, "fa-solid", "fa-star"], ["kendoButton", "", "title", "Make Favorite", 3, "click"], [1, "fa-regular", "fa-star"], ["kendoButton", "", "title", "Save Record", 3, "mouseup"], [1, "fa-solid", "fa-floppy-disk"], [1, "button-text"], ["kendoButton", "", "title", "Cancel Edit"], ["kendoButton", "", "title", "Fields you have changed"], ["kendoButton", "", "title", "Cancel Edit", 3, "click"], [1, "fa-solid", "fa-rotate-left"], ["kendoButton", "", "title", "Fields you have changed", 3, "click"], [1, "fa-solid", "fa-clipboard-list"], ["kendoButton", "", "title", "Show History", 3, "click"], [1, "fa-solid", "fa-clock-rotate-left"], [3, "dialogClosed", "record"], ["kendoButton", "", 1, "list-button", 3, "click", "title"], [1, "fa-solid", "fa-rectangle-list"], [1, "list-count-badge"], ["title", "Confirm", 1, "dialog-wrapper", 3, "close", "minWidth", "width"], [1, "k-m-7.5", "k-text-center"], [1, "popup-actions-btn"], ["kendoButton", "", "themeColor", "info", 1, "cancel-btn", 3, "click"], ["kendoButton", "", "fillMode", "outline", "themeColor", "info", 1, "yes-btn", 3, "click"], ["title", "Select List to Add Record To", 1, "dialog-wrapper", 3, "close", "minWidth", "width", "height"], [1, "overflow-y-scroll"], [1, "list-item"], [1, "list-text"], ["kendoButton", "", 1, "btn-no-border", 3, "click"], [1, "btn-margin-right"], [1, "fa-solid", "fa-plus"], [3, "complete", "cancel", "config", "visible"]], template: function FormToolbarComponent_Template(rf, ctx) { if (rf & 1) {
499
501
  i0.ɵɵprojectionDef(_c1);
500
502
  i0.ɵɵelementStart(0, "div", 0);
501
- i0.ɵɵtemplate(1, FormToolbarComponent_Conditional_1_Template, 3, 3)(2, FormToolbarComponent_Conditional_2_Template, 6, 2)(3, FormToolbarComponent_Conditional_3_Template, 2, 0, "button", 1)(4, FormToolbarComponent_Conditional_4_Template, 1, 1, "mj-record-changes", 2)(5, FormToolbarComponent_Conditional_5_Template, 3, 2, "button", 3);
503
+ i0.ɵɵconditionalCreate(1, FormToolbarComponent_Conditional_1_Template, 3, 3)(2, FormToolbarComponent_Conditional_2_Template, 6, 2);
504
+ i0.ɵɵconditionalCreate(3, FormToolbarComponent_Conditional_3_Template, 2, 0, "button", 1);
505
+ i0.ɵɵconditionalCreate(4, FormToolbarComponent_Conditional_4_Template, 1, 1, "mj-record-changes", 2);
506
+ i0.ɵɵconditionalCreate(5, FormToolbarComponent_Conditional_5_Template, 3, 2, "button", 3);
502
507
  i0.ɵɵprojection(6);
503
- i0.ɵɵtemplate(7, FormToolbarComponent_kendo_dialog_7_Template, 8, 2, "kendo-dialog", 4)(8, FormToolbarComponent_kendo_dialog_8_Template, 7, 3, "kendo-dialog", 5)(9, FormToolbarComponent_Conditional_9_Template, 1, 2, "mj-list-management-dialog", 6);
508
+ i0.ɵɵconditionalCreate(7, FormToolbarComponent_Conditional_7_Template, 8, 2, "kendo-dialog", 4);
509
+ i0.ɵɵconditionalCreate(8, FormToolbarComponent_Conditional_8_Template, 7, 3, "kendo-dialog", 5);
510
+ i0.ɵɵconditionalCreate(9, FormToolbarComponent_Conditional_9_Template, 1, 2, "mj-list-management-dialog", 6);
504
511
  i0.ɵɵelementEnd();
505
512
  } if (rf & 2) {
506
513
  i0.ɵɵclassProp("disabled", ctx.CurrentlyDisabled);
@@ -513,16 +520,16 @@ export class FormToolbarComponent {
513
520
  i0.ɵɵadvance();
514
521
  i0.ɵɵconditional(!ctx.form.EditMode ? 5 : -1);
515
522
  i0.ɵɵadvance(2);
516
- i0.ɵɵproperty("ngIf", ctx._deleteDialogVisible);
523
+ i0.ɵɵconditional(ctx._deleteDialogVisible ? 7 : -1);
517
524
  i0.ɵɵadvance();
518
- i0.ɵɵproperty("ngIf", ctx.listDialogVisible && !ctx.useEnhancedListDialog);
525
+ i0.ɵɵconditional(ctx.listDialogVisible && !ctx.useEnhancedListDialog ? 8 : -1);
519
526
  i0.ɵɵadvance();
520
527
  i0.ɵɵconditional(ctx.showEnhancedListDialog && ctx.listManagementConfig ? 9 : -1);
521
- } }, dependencies: [i2.NgIf, i3.RecordChangesComponent, i4.ButtonComponent, i5.DialogComponent, i5.DialogActionsComponent, i6.ListManagementDialogComponent], styles: [".toolbar-container[_ngcontent-%COMP%] {\n border-bottom: 2px solid #e5e7eb;\n padding: 12px 16px;\n margin-bottom: 0;\n background: #f9fafb;\n display: flex;\n gap: 7px;\n align-items: center;\n}\n\n.toolbar-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n padding: 8px 14px;\n font-size: 14px;\n border: 1px solid #d1d5db;\n background: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.toolbar-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover {\n background: #f3f4f6;\n border-color: #9ca3af;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.toolbar-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:active {\n transform: translateY(0);\n}\n\n.toolbar-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] span[class*=\"fa-\"][_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.toolbar-container[_ngcontent-%COMP%] .button-text[_ngcontent-%COMP%] {\n margin-left: 0;\n font-size: 14px;\n}\n\n\n\n.toolbar-separator[_ngcontent-%COMP%] {\n width: 1px;\n height: 24px;\n background: #d1d5db;\n margin: 0 8px;\n}\n\n\n\n .toolbar-container [toolbar-additional-controls] {\n display: flex;\n gap: 7px;\n align-items: center;\n margin-left: auto;\n}\n\n\n\n .toolbar-container [toolbar-additional-controls] button {\n padding: 8px 14px;\n font-size: 14px;\n border: 1px solid #d1d5db;\n background: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n .toolbar-container [toolbar-additional-controls] button:hover {\n background: #f3f4f6;\n border-color: #9ca3af;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n .toolbar-container [toolbar-additional-controls] button:active {\n transform: translateY(0);\n}\n\n\n\n .toolbar-container [toolbar-additional-controls] input.section-search {\n padding: 8px 12px;\n font-size: 14px;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n min-width: 180px;\n transition: all 0.2s;\n}\n\n .toolbar-container [toolbar-additional-controls] input.section-search:focus {\n outline: none;\n border-color: #9ca3af;\n box-shadow: 0 0 0 2px rgba(156, 163, 175, 0.2);\n}\n\n\n\n .toolbar-container [toolbar-additional-controls] .section-count {\n font-size: 12px;\n color: #4b5563;\n font-weight: 600;\n padding: 6px 14px;\n background: #e5e7eb;\n border: 1px solid #d1d5db;\n border-radius: 12px;\n white-space: nowrap;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n\n\n .toolbar-container [toolbar-additional-controls] .clear-search-btn {\n position: absolute;\n right: 4px;\n top: 50%;\n transform: translateY(-50%);\n padding: 4px 8px !important;\n min-width: auto !important;\n background: transparent !important;\n border: none !important;\n color: #9ca3af !important;\n font-size: 14px;\n}\n\n .toolbar-container [toolbar-additional-controls] .clear-search-btn:hover {\n color: #6b7280 !important;\n background: transparent !important;\n transform: translateY(-50%);\n box-shadow: none !important;\n}\n\n\n\n mark.search-highlight {\n background: #fef08a;\n color: #854d0e;\n font-weight: 600;\n} \n\n.toolbar-container.disabled[_ngcontent-%COMP%] {\n pointer-events: none;\n opacity: 0.8;\n}\n\n.disabled[_ngcontent-%COMP%] {\n pointer-events: none;\n}\n\n .form-toolbar-status-message {\n background: #f0f0f0;\n padding: 15px;\n border-radius: 5px;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);\n opacity: 1;\n z-index: 1000;\n color:#1d7032;\n font: 16px;\n font-weight: bold;\n min-width: 100px;\n\n text-align: center; \n\n}\n\n\n .form-toolbar-elapsed-time {\n \n\n\n\n position: absolute;\n top: 0;\n right: 0;\n color: darkgray;\n font-size: smaller;\n padding: 2px;\n border-radius: 5px;\n margin: 5px;\n z-index: 1000;\n}\n\n .form-toolbar-server-update-message {\n margin-top: 7px;\n font-size: smaller;\n color: black;\n}\n\n.list-item[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n padding-bottom: 5px;\n align-items: center;\n}\n\n\n\n.toolbar-container[_ngcontent-%COMP%] button.list-button[_ngcontent-%COMP%] {\n position: relative;\n}\n\n.list-count-badge[_ngcontent-%COMP%] {\n position: absolute;\n top: -6px;\n right: -6px;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n font-size: 11px;\n font-weight: 600;\n color: white;\n background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 4px rgba(37, 99, 235, 0.3);\n border: 2px solid #f9fafb;\n}"] });
528
+ } }, dependencies: [i2.RecordChangesComponent, i3.ButtonComponent, i4.DialogComponent, i4.DialogActionsComponent, i5.ListManagementDialogComponent], styles: [".toolbar-container[_ngcontent-%COMP%] {\n border-bottom: 2px solid #e5e7eb;\n padding: 12px 16px;\n margin-bottom: 0;\n background: #f9fafb;\n display: flex;\n gap: 7px;\n align-items: center;\n}\n\n.toolbar-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n padding: 8px 14px;\n font-size: 14px;\n border: 1px solid #d1d5db;\n background: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.toolbar-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover {\n background: #f3f4f6;\n border-color: #9ca3af;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.toolbar-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:active {\n transform: translateY(0);\n}\n\n.toolbar-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] span[class*=\"fa-\"][_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.toolbar-container[_ngcontent-%COMP%] .button-text[_ngcontent-%COMP%] {\n margin-left: 0;\n font-size: 14px;\n}\n\n\n\n.toolbar-separator[_ngcontent-%COMP%] {\n width: 1px;\n height: 24px;\n background: #d1d5db;\n margin: 0 8px;\n}\n\n\n\n .toolbar-container [toolbar-additional-controls] {\n display: flex;\n gap: 7px;\n align-items: center;\n margin-left: auto;\n}\n\n\n\n .toolbar-container [toolbar-additional-controls] button {\n padding: 8px 14px;\n font-size: 14px;\n border: 1px solid #d1d5db;\n background: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n .toolbar-container [toolbar-additional-controls] button:hover {\n background: #f3f4f6;\n border-color: #9ca3af;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n .toolbar-container [toolbar-additional-controls] button:active {\n transform: translateY(0);\n}\n\n\n\n .toolbar-container [toolbar-additional-controls] input.section-search {\n padding: 8px 12px;\n font-size: 14px;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n min-width: 180px;\n transition: all 0.2s;\n}\n\n .toolbar-container [toolbar-additional-controls] input.section-search:focus {\n outline: none;\n border-color: #9ca3af;\n box-shadow: 0 0 0 2px rgba(156, 163, 175, 0.2);\n}\n\n\n\n .toolbar-container [toolbar-additional-controls] .section-count {\n font-size: 12px;\n color: #4b5563;\n font-weight: 600;\n padding: 6px 14px;\n background: #e5e7eb;\n border: 1px solid #d1d5db;\n border-radius: 12px;\n white-space: nowrap;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n\n\n .toolbar-container [toolbar-additional-controls] .clear-search-btn {\n position: absolute;\n right: 4px;\n top: 50%;\n transform: translateY(-50%);\n padding: 4px 8px !important;\n min-width: auto !important;\n background: transparent !important;\n border: none !important;\n color: #9ca3af !important;\n font-size: 14px;\n}\n\n .toolbar-container [toolbar-additional-controls] .clear-search-btn:hover {\n color: #6b7280 !important;\n background: transparent !important;\n transform: translateY(-50%);\n box-shadow: none !important;\n}\n\n\n\n mark.search-highlight {\n background: #fef08a;\n color: #854d0e;\n font-weight: 600;\n} \n\n.toolbar-container.disabled[_ngcontent-%COMP%] {\n pointer-events: none;\n opacity: 0.8;\n}\n\n.disabled[_ngcontent-%COMP%] {\n pointer-events: none;\n}\n\n .form-toolbar-status-message {\n background: #f0f0f0;\n padding: 15px;\n border-radius: 5px;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);\n opacity: 1;\n z-index: 1000;\n color:#1d7032;\n font: 16px;\n font-weight: bold;\n min-width: 100px;\n\n text-align: center; \n\n}\n\n\n .form-toolbar-elapsed-time {\n \n\n\n\n position: absolute;\n top: 0;\n right: 0;\n color: darkgray;\n font-size: smaller;\n padding: 2px;\n border-radius: 5px;\n margin: 5px;\n z-index: 1000;\n}\n\n .form-toolbar-server-update-message {\n margin-top: 7px;\n font-size: smaller;\n color: black;\n}\n\n.list-item[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n padding-bottom: 5px;\n align-items: center;\n}\n\n\n\n.toolbar-container[_ngcontent-%COMP%] button.list-button[_ngcontent-%COMP%] {\n position: relative;\n}\n\n.list-count-badge[_ngcontent-%COMP%] {\n position: absolute;\n top: -6px;\n right: -6px;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n font-size: 11px;\n font-weight: 600;\n color: white;\n background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 4px rgba(37, 99, 235, 0.3);\n border: 2px solid #f9fafb;\n}"] });
522
529
  }
523
530
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormToolbarComponent, [{
524
531
  type: Component,
525
- args: [{ selector: 'mj-form-toolbar', template: "\n<div class=\"toolbar-container\" [class.disabled]=\"CurrentlyDisabled\">\n @if (!form.EditMode) {\n @if (form.UserCanEdit) {\n <button kendoButton (click)=\"form.StartEditMode()\" title=\"Edit this Record\">\n <span class=\"fa-solid fa-pen-to-square\"></span>\n </button> \n }\n @if(form.UserCanDelete){\n <button kendoButton (click)=\"toggleDeleteDialog(true)\" title=\"Delete this Record\">\n <span class=\"fa-regular fa-trash-can\"></span>\n </button> \n }\n @if (form.FavoriteInitDone) {\n @if (form.IsFavorite) {\n <button kendoButton (click)=\"form.RemoveFavorite()\" title=\"Remove Favorite\">\n <span class=\"fa-solid fa-star\"></span>\n </button> \n }\n @else {\n <button kendoButton (click)=\"form.MakeFavorite()\" title=\"Make Favorite\">\n <span class=\"fa-regular fa-star\"></span>\n </button> \n }\n }\n }\n @else {\n <button kendoButton (mouseup)=\"saveExistingRecord($event)\" title=\"Save Record\">\n <span class=\"fa-solid fa-floppy-disk\"></span>\n <span class=\"button-text\">Save</span>\n </button> \n @if (form.record.IsSaved) {\n <!-- Only show the cancel button if the record has already been saved - don't show for a new record. -->\n <button kendoButton (click)=\"form.CancelEdit()\" title=\"Cancel Edit\">\n <span class=\"fa-solid fa-rotate-left\"></span>\n <span class=\"button-text\">Cancel</span>\n </button> \n }\n @if (form.record.Dirty) {\n <button kendoButton (click)=\"form.ShowChanges()\" title=\"Fields you have changed\">\n <span class=\"fa-solid fa-clipboard-list\"></span>\n <span class=\"button-text\">Changes</span>\n </button> \n }\n }\n @if (form.EntityInfo?.TrackRecordChanges && !form.EditMode) {\n <button kendoButton (click)=\"form.handleHistoryDialog()\" title=\"Show History\">\n <span class=\"fa-solid fa-clock-rotate-left\"></span>\n </button>\n }\n <!-- \n ************************************************************\n ************************************************************\n ************************************************************\n ************************************************************\n ************************************************************\n ************************************************************\n REPLACE THIS WITH GENERIC CHAT LATER in 3.0 LIFECYCLE - TO-Do TODO \n ************************************************************\n ************************************************************\n ************************************************************\n ************************************************************\n ************************************************************\n ************************************************************\n -->\n <!-- @if (ShowSkipChatButton && !form.EditMode) {\n <button kendoButton (click)=\"ShowSkipChat()\" title=\"Discuss this record with Skip\">\n <span class=\"fa-regular fa-comment-dots\"></span>\n </button> \n } -->\n <!-- @if (form.EntityInfo) {\n <mj-skip-chat-with-record-window\n [LinkedEntityID]=\"form.EntityInfo.ID\"\n [LinkedEntityPrimaryKey]=\"LinkedEntityPrimaryKey\" \n #mjChat\n [WindowOpened]=\"_skipChatDialogVisible\" \n (WindowClosed)=\"ShowSkipChat()\"\n >\n </mj-skip-chat-with-record-window>\n } -->\n <!-- \n ************************************************************\n ************************************************************\n ************************************************************\n ************************************************************\n ************************************************************\n ************************************************************\n REPLACE THIS WITH GENERIC CHAT LATER in 3.0 LIFECYCLE - TO-Do TODO \n ************************************************************\n ************************************************************\n ************************************************************\n ************************************************************\n ************************************************************\n ************************************************************\n -->\n\n\n\n @if (form.isHistoryDialogOpen) {\n <mj-record-changes [record]=\"form.record\" (dialogClosed)=\"form.handleHistoryDialog()\"></mj-record-changes>\n }\n @if(!form.EditMode){\n <button kendoButton (click)=\"toggleListDialog(true)\"\n [title]=\"recordListCount > 0 ? 'Member of ' + recordListCount + ' list(s) - Click to manage' : 'Add this record to a list'\"\n class=\"list-button\">\n <span class=\"fa-solid fa-rectangle-list\"></span>\n @if (recordListCount > 0) {\n <span class=\"list-count-badge\">{{ recordListCount }}</span>\n }\n </button>\n }\n\n <!-- Slot for additional controls (section controls) - no separator needed with right-align -->\n <ng-content select=\"[toolbar-additional-controls]\"></ng-content>\n\n <kendo-dialog \n [minWidth]=\"450\"\n [width]=\"650\"\n class=\"dialog-wrapper\" \n title=\"Confirm\" \n *ngIf=\"_deleteDialogVisible\" \n (close)=\"toggleDeleteDialog(false)\">\n <p class=\"k-m-7.5 k-text-center\">\n Are you sure you want to delete this record?\n </p>\n <kendo-dialog-actions class=\"popup-actions-btn\">\n <button class=\"cancel-btn\" (click)=\"deleteRecord()\" kendoButton themeColor=\"info\">\n Yes, Delete\n </button>\n <button class=\"yes-btn\" (click)=\"toggleDeleteDialog(false)\" kendoButton fillMode=\"outline\" themeColor=\"info\">\n No, Cancel\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n\n <!-- Legacy List Dialog (fallback when useEnhancedListDialog is false) -->\n <kendo-dialog\n class=\"dialog-wrapper\"\n title=\"Select List to Add Record To\"\n *ngIf=\"listDialogVisible && !useEnhancedListDialog\"\n (close)=\"toggleListDialog(false)\"\n [minWidth]=\"250\"\n [width]=\"650\"\n [height]=\"550\"\n >\n <hr>\n @for(list of availableLists; track list){\n <div class=\"overflow-y-scroll\">\n <div class=\"list-item\">\n <div class=\"list-text\">\n {{list.Name}}\n </div>\n <button kendoButton class=\"btn-no-border\" (click)=\"addRecordToList(list)\">\n <div class=\"btn-margin-right\">\n <span class=\"fa-solid fa-plus\"></span>\n Add\n </div>\n </button>\n </div>\n <hr>\n </div>\n }\n <kendo-dialog-actions class=\"popup-actions-btn\">\n <button class=\"yes-btn\" (click)=\"toggleListDialog(false)\" kendoButton fillMode=\"outline\" themeColor=\"info\">\n Close\n </button>\n </kendo-dialog-actions>\n</kendo-dialog>\n\n <!-- Enhanced List Management Dialog -->\n @if (showEnhancedListDialog && listManagementConfig) {\n <mj-list-management-dialog\n [config]=\"listManagementConfig\"\n [visible]=\"showEnhancedListDialog\"\n (complete)=\"onEnhancedListDialogComplete($event)\"\n (cancel)=\"onEnhancedListDialogCancel()\">\n </mj-list-management-dialog>\n }\n</div>", styles: [".toolbar-container {\n border-bottom: 2px solid #e5e7eb;\n padding: 12px 16px;\n margin-bottom: 0;\n background: #f9fafb;\n display: flex;\n gap: 7px;\n align-items: center;\n}\n\n.toolbar-container button {\n padding: 8px 14px;\n font-size: 14px;\n border: 1px solid #d1d5db;\n background: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.toolbar-container button:hover {\n background: #f3f4f6;\n border-color: #9ca3af;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.toolbar-container button:active {\n transform: translateY(0);\n}\n\n.toolbar-container button span[class*=\"fa-\"] {\n font-size: 16px;\n}\n\n.toolbar-container .button-text {\n margin-left: 0;\n font-size: 14px;\n}\n\n/* Toolbar separator for additional controls */\n.toolbar-separator {\n width: 1px;\n height: 24px;\n background: #d1d5db;\n margin: 0 8px;\n}\n\n/* Additional controls container */\n::ng-deep .toolbar-container [toolbar-additional-controls] {\n display: flex;\n gap: 7px;\n align-items: center;\n margin-left: auto;\n}\n\n/* Additional controls buttons should match main toolbar buttons */\n::ng-deep .toolbar-container [toolbar-additional-controls] button {\n padding: 8px 14px;\n font-size: 14px;\n border: 1px solid #d1d5db;\n background: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n::ng-deep .toolbar-container [toolbar-additional-controls] button:hover {\n background: #f3f4f6;\n border-color: #9ca3af;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n::ng-deep .toolbar-container [toolbar-additional-controls] button:active {\n transform: translateY(0);\n}\n\n/* Search input styling - reduced border radius */\n::ng-deep .toolbar-container [toolbar-additional-controls] input.section-search {\n padding: 8px 12px;\n font-size: 14px;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n min-width: 180px;\n transition: all 0.2s;\n}\n\n::ng-deep .toolbar-container [toolbar-additional-controls] input.section-search:focus {\n outline: none;\n border-color: #9ca3af;\n box-shadow: 0 0 0 2px rgba(156, 163, 175, 0.2);\n}\n\n/* Section count styling - pill design */\n::ng-deep .toolbar-container [toolbar-additional-controls] .section-count {\n font-size: 12px;\n color: #4b5563;\n font-weight: 600;\n padding: 6px 14px;\n background: #e5e7eb;\n border: 1px solid #d1d5db;\n border-radius: 12px;\n white-space: nowrap;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n/* Clear search button styling */\n::ng-deep .toolbar-container [toolbar-additional-controls] .clear-search-btn {\n position: absolute;\n right: 4px;\n top: 50%;\n transform: translateY(-50%);\n padding: 4px 8px !important;\n min-width: auto !important;\n background: transparent !important;\n border: none !important;\n color: #9ca3af !important;\n font-size: 14px;\n}\n\n::ng-deep .toolbar-container [toolbar-additional-controls] .clear-search-btn:hover {\n color: #6b7280 !important;\n background: transparent !important;\n transform: translateY(-50%);\n box-shadow: none !important;\n}\n\n/* Yellow highlight for search matches */\n::ng-deep mark.search-highlight {\n background: #fef08a;\n color: #854d0e;\n font-weight: 600;\n} \n\n.toolbar-container.disabled {\n pointer-events: none;\n opacity: 0.8;\n}\n\n.disabled {\n pointer-events: none;\n}\n\n::ng-deep .form-toolbar-status-message {\n background: #f0f0f0;\n padding: 15px;\n border-radius: 5px;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);\n opacity: 1;\n z-index: 1000;\n color:#1d7032;\n font: 16px;\n font-weight: bold;\n min-width: 100px;\n\n text-align: center; /* Center the text horizontally */\n}\n\n\n::ng-deep .form-toolbar-elapsed-time {\n /*\n we want this littler timer to be small dark gray text in the top right corner with a white background\n*/\n position: absolute;\n top: 0;\n right: 0;\n color: darkgray;\n font-size: smaller;\n padding: 2px;\n border-radius: 5px;\n margin: 5px;\n z-index: 1000;\n}\n\n::ng-deep .form-toolbar-server-update-message {\n margin-top: 7px;\n font-size: smaller;\n color: black;\n}\n\n.list-item {\n display: flex;\n justify-content: space-between;\n padding-bottom: 5px;\n align-items: center;\n}\n\n/* List button with count badge */\n.toolbar-container button.list-button {\n position: relative;\n}\n\n.list-count-badge {\n position: absolute;\n top: -6px;\n right: -6px;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n font-size: 11px;\n font-weight: 600;\n color: white;\n background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 4px rgba(37, 99, 235, 0.3);\n border: 2px solid #f9fafb;\n}"] }]
532
+ args: [{ standalone: false, selector: 'mj-form-toolbar', template: "\n<div class=\"toolbar-container\" [class.disabled]=\"CurrentlyDisabled\">\n @if (!form.EditMode) {\n @if (form.UserCanEdit) {\n <button kendoButton (click)=\"form.StartEditMode()\" title=\"Edit this Record\">\n <span class=\"fa-solid fa-pen-to-square\"></span>\n </button>\n }\n @if(form.UserCanDelete){\n <button kendoButton (click)=\"toggleDeleteDialog(true)\" title=\"Delete this Record\">\n <span class=\"fa-regular fa-trash-can\"></span>\n </button>\n }\n @if (form.FavoriteInitDone) {\n @if (form.IsFavorite) {\n <button kendoButton (click)=\"form.RemoveFavorite()\" title=\"Remove Favorite\">\n <span class=\"fa-solid fa-star\"></span>\n </button>\n }\n @else {\n <button kendoButton (click)=\"form.MakeFavorite()\" title=\"Make Favorite\">\n <span class=\"fa-regular fa-star\"></span>\n </button>\n }\n }\n}\n@else {\n<button kendoButton (mouseup)=\"saveExistingRecord($event)\" title=\"Save Record\">\n <span class=\"fa-solid fa-floppy-disk\"></span>\n <span class=\"button-text\">Save</span>\n</button>\n@if (form.record.IsSaved) {\n <!-- Only show the cancel button if the record has already been saved - don't show for a new record. -->\n <button kendoButton (click)=\"form.CancelEdit()\" title=\"Cancel Edit\">\n <span class=\"fa-solid fa-rotate-left\"></span>\n <span class=\"button-text\">Cancel</span>\n </button>\n}\n@if (form.record.Dirty) {\n <button kendoButton (click)=\"form.ShowChanges()\" title=\"Fields you have changed\">\n <span class=\"fa-solid fa-clipboard-list\"></span>\n <span class=\"button-text\">Changes</span>\n </button>\n}\n}\n@if (form.EntityInfo?.TrackRecordChanges && !form.EditMode) {\n <button kendoButton (click)=\"form.handleHistoryDialog()\" title=\"Show History\">\n <span class=\"fa-solid fa-clock-rotate-left\"></span>\n </button>\n}\n<!--\n************************************************************\n************************************************************\n************************************************************\n************************************************************\n************************************************************\n************************************************************\nREPLACE THIS WITH GENERIC CHAT LATER in 3.0 LIFECYCLE - TO-Do TODO\n************************************************************\n************************************************************\n************************************************************\n************************************************************\n************************************************************\n************************************************************\n-->\n<!-- @if (ShowSkipChatButton && !form.EditMode) {\n<button kendoButton (click)=\"ShowSkipChat()\" title=\"Discuss this record with Skip\">\n <span class=\"fa-regular fa-comment-dots\"></span>\n</button>\n} -->\n<!-- @if (form.EntityInfo) {\n<mj-skip-chat-with-record-window\n [LinkedEntityID]=\"form.EntityInfo.ID\"\n [LinkedEntityPrimaryKey]=\"LinkedEntityPrimaryKey\"\n #mjChat\n [WindowOpened]=\"_skipChatDialogVisible\"\n (WindowClosed)=\"ShowSkipChat()\"\n >\n</mj-skip-chat-with-record-window>\n} -->\n<!--\n************************************************************\n************************************************************\n************************************************************\n************************************************************\n************************************************************\n************************************************************\nREPLACE THIS WITH GENERIC CHAT LATER in 3.0 LIFECYCLE - TO-Do TODO\n************************************************************\n************************************************************\n************************************************************\n************************************************************\n************************************************************\n************************************************************\n-->\n\n\n\n@if (form.isHistoryDialogOpen) {\n <mj-record-changes [record]=\"form.record\" (dialogClosed)=\"form.handleHistoryDialog()\"></mj-record-changes>\n}\n@if(!form.EditMode){\n <button kendoButton (click)=\"toggleListDialog(true)\"\n [title]=\"recordListCount > 0 ? 'Member of ' + recordListCount + ' list(s) - Click to manage' : 'Add this record to a list'\"\n class=\"list-button\">\n <span class=\"fa-solid fa-rectangle-list\"></span>\n @if (recordListCount > 0) {\n <span class=\"list-count-badge\">{{ recordListCount }}</span>\n }\n </button>\n}\n\n<!-- Slot for additional controls (section controls) - no separator needed with right-align -->\n<ng-content select=\"[toolbar-additional-controls]\"></ng-content>\n\n@if (_deleteDialogVisible) {\n <kendo-dialog\n [minWidth]=\"450\"\n [width]=\"650\"\n class=\"dialog-wrapper\"\n title=\"Confirm\"\n (close)=\"toggleDeleteDialog(false)\">\n <p class=\"k-m-7.5 k-text-center\">\n Are you sure you want to delete this record?\n </p>\n <kendo-dialog-actions class=\"popup-actions-btn\">\n <button class=\"cancel-btn\" (click)=\"deleteRecord()\" kendoButton themeColor=\"info\">\n Yes, Delete\n </button>\n <button class=\"yes-btn\" (click)=\"toggleDeleteDialog(false)\" kendoButton fillMode=\"outline\" themeColor=\"info\">\n No, Cancel\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n}\n\n<!-- Legacy List Dialog (fallback when useEnhancedListDialog is false) -->\n@if (listDialogVisible && !useEnhancedListDialog) {\n <kendo-dialog\n class=\"dialog-wrapper\"\n title=\"Select List to Add Record To\"\n (close)=\"toggleListDialog(false)\"\n [minWidth]=\"250\"\n [width]=\"650\"\n [height]=\"550\"\n >\n <hr>\n @for(list of availableLists; track list){\n <div class=\"overflow-y-scroll\">\n <div class=\"list-item\">\n <div class=\"list-text\">\n {{list.Name}}\n </div>\n <button kendoButton class=\"btn-no-border\" (click)=\"addRecordToList(list)\">\n <div class=\"btn-margin-right\">\n <span class=\"fa-solid fa-plus\"></span>\n Add\n </div>\n </button>\n </div>\n <hr>\n </div>\n }\n <kendo-dialog-actions class=\"popup-actions-btn\">\n <button class=\"yes-btn\" (click)=\"toggleListDialog(false)\" kendoButton fillMode=\"outline\" themeColor=\"info\">\n Close\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n }\n\n <!-- Enhanced List Management Dialog -->\n @if (showEnhancedListDialog && listManagementConfig) {\n <mj-list-management-dialog\n [config]=\"listManagementConfig\"\n [visible]=\"showEnhancedListDialog\"\n (complete)=\"onEnhancedListDialogComplete($event)\"\n (cancel)=\"onEnhancedListDialogCancel()\">\n </mj-list-management-dialog>\n }\n </div>", styles: [".toolbar-container {\n border-bottom: 2px solid #e5e7eb;\n padding: 12px 16px;\n margin-bottom: 0;\n background: #f9fafb;\n display: flex;\n gap: 7px;\n align-items: center;\n}\n\n.toolbar-container button {\n padding: 8px 14px;\n font-size: 14px;\n border: 1px solid #d1d5db;\n background: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.toolbar-container button:hover {\n background: #f3f4f6;\n border-color: #9ca3af;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.toolbar-container button:active {\n transform: translateY(0);\n}\n\n.toolbar-container button span[class*=\"fa-\"] {\n font-size: 16px;\n}\n\n.toolbar-container .button-text {\n margin-left: 0;\n font-size: 14px;\n}\n\n/* Toolbar separator for additional controls */\n.toolbar-separator {\n width: 1px;\n height: 24px;\n background: #d1d5db;\n margin: 0 8px;\n}\n\n/* Additional controls container */\n::ng-deep .toolbar-container [toolbar-additional-controls] {\n display: flex;\n gap: 7px;\n align-items: center;\n margin-left: auto;\n}\n\n/* Additional controls buttons should match main toolbar buttons */\n::ng-deep .toolbar-container [toolbar-additional-controls] button {\n padding: 8px 14px;\n font-size: 14px;\n border: 1px solid #d1d5db;\n background: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n::ng-deep .toolbar-container [toolbar-additional-controls] button:hover {\n background: #f3f4f6;\n border-color: #9ca3af;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n::ng-deep .toolbar-container [toolbar-additional-controls] button:active {\n transform: translateY(0);\n}\n\n/* Search input styling - reduced border radius */\n::ng-deep .toolbar-container [toolbar-additional-controls] input.section-search {\n padding: 8px 12px;\n font-size: 14px;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n min-width: 180px;\n transition: all 0.2s;\n}\n\n::ng-deep .toolbar-container [toolbar-additional-controls] input.section-search:focus {\n outline: none;\n border-color: #9ca3af;\n box-shadow: 0 0 0 2px rgba(156, 163, 175, 0.2);\n}\n\n/* Section count styling - pill design */\n::ng-deep .toolbar-container [toolbar-additional-controls] .section-count {\n font-size: 12px;\n color: #4b5563;\n font-weight: 600;\n padding: 6px 14px;\n background: #e5e7eb;\n border: 1px solid #d1d5db;\n border-radius: 12px;\n white-space: nowrap;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n/* Clear search button styling */\n::ng-deep .toolbar-container [toolbar-additional-controls] .clear-search-btn {\n position: absolute;\n right: 4px;\n top: 50%;\n transform: translateY(-50%);\n padding: 4px 8px !important;\n min-width: auto !important;\n background: transparent !important;\n border: none !important;\n color: #9ca3af !important;\n font-size: 14px;\n}\n\n::ng-deep .toolbar-container [toolbar-additional-controls] .clear-search-btn:hover {\n color: #6b7280 !important;\n background: transparent !important;\n transform: translateY(-50%);\n box-shadow: none !important;\n}\n\n/* Yellow highlight for search matches */\n::ng-deep mark.search-highlight {\n background: #fef08a;\n color: #854d0e;\n font-weight: 600;\n} \n\n.toolbar-container.disabled {\n pointer-events: none;\n opacity: 0.8;\n}\n\n.disabled {\n pointer-events: none;\n}\n\n::ng-deep .form-toolbar-status-message {\n background: #f0f0f0;\n padding: 15px;\n border-radius: 5px;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);\n opacity: 1;\n z-index: 1000;\n color:#1d7032;\n font: 16px;\n font-weight: bold;\n min-width: 100px;\n\n text-align: center; /* Center the text horizontally */\n}\n\n\n::ng-deep .form-toolbar-elapsed-time {\n /*\n we want this littler timer to be small dark gray text in the top right corner with a white background\n*/\n position: absolute;\n top: 0;\n right: 0;\n color: darkgray;\n font-size: smaller;\n padding: 2px;\n border-radius: 5px;\n margin: 5px;\n z-index: 1000;\n}\n\n::ng-deep .form-toolbar-server-update-message {\n margin-top: 7px;\n font-size: smaller;\n color: black;\n}\n\n.list-item {\n display: flex;\n justify-content: space-between;\n padding-bottom: 5px;\n align-items: center;\n}\n\n/* List button with count badge */\n.toolbar-container button.list-button {\n position: relative;\n}\n\n.list-count-badge {\n position: absolute;\n top: -6px;\n right: -6px;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n font-size: 11px;\n font-weight: 600;\n color: white;\n background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 4px rgba(37, 99, 235, 0.3);\n border: 2px solid #f9fafb;\n}"] }]
526
533
  }], () => [{ type: i1.Router }], { ShowSkipChatButton: [{
527
534
  type: Input
528
535
  }], form: [{
@@ -531,5 +538,5 @@ export class FormToolbarComponent {
531
538
  type: ContentChild,
532
539
  args: ['additionalControls', { read: ElementRef }]
533
540
  }] }); })();
534
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FormToolbarComponent, { className: "FormToolbarComponent", filePath: "src/lib/form-toolbar.ts", lineNumber: 16 }); })();
541
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FormToolbarComponent, { className: "FormToolbarComponent", filePath: "src/lib/form-toolbar.ts", lineNumber: 17 }); })();
535
542
  //# sourceMappingURL=form-toolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-toolbar.js","sourceRoot":"","sources":["../../src/lib/form-toolbar.ts","../../src/lib/form-toolbar.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-toolbar.js","sourceRoot":"","sources":["../../src/lib/form-toolbar.ts","../../src/lib/form-toolbar.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAgB,QAAQ,EAAE,QAAQ,EAAgC,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/G,OAAO,EAAW,WAAW,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAoB,wBAAwB,EAAc,MAAM,+BAA+B,CAAC;;;;;;;;;;;;ICFjG,iCAA4E;IAAxD,uMAAS,2BAAoB,KAAC;IAChD,2BAA+C;IACjD,iBAAS;;;;IAGT,kCAAkF;IAA9D,uMAAS,0BAAmB,IAAI,CAAC,KAAC;IACpD,2BAA6C;IAC/C,iBAAS;;;;IAIP,kCAA4E;IAAxD,qNAAS,4BAAqB,KAAC;IACjD,2BAAsC;IACxC,iBAAS;;;;IAGX,kCAAwE;IAApD,qNAAS,0BAAmB,KAAC;IAC/C,2BAAwC;IAC1C,iBAAS;;;IAHT,AALA,sHAAuB,gGAKhB;;;IALP,gDASD;;;IApBD,uGAAwB;IAKxB,uGAAwB;IAKxB,0FAA6B;;;IAV7B,kDAIC;IACD,cAIC;IAJD,oDAIC;IACD,cAWD;IAXC,uDAWD;;;;IASD,kCAAoE;IAAhD,uMAAS,wBAAiB,KAAC;IAC7C,2BAA6C;IAC7C,gCAA0B;IAAA,sBAAM;IAClC,AADkC,iBAAO,EAChC;;;;IAGT,kCAAiF;IAA7D,uMAAS,yBAAkB,KAAC;IAC9C,2BAAgD;IAChD,gCAA0B;IAAA,uBAAO;IACnC,AADmC,iBAAO,EACjC;;;;IAfX,kCAA+E;IAA3D,kMAAW,iCAA0B,KAAC;IACxD,2BAA6C;IAC7C,gCAA0B;IAAA,oBAAI;IAChC,AADgC,iBAAO,EAC9B;IACT,wGAA2B;IAO3B,wGAAyB;;;IAPzB,eAMC;IAND,qDAMC;IACD,cAKC;IALD,mDAKC;;;;IAGC,kCAA8E;IAA1D,wLAAS,iCAA0B,KAAC;IACtD,2BAAmD;IACrD,iBAAS;;;;IAmDT,6CAAsF;IAA5C,kNAAgB,iCAA0B,KAAC;IAAC,iBAAoB;;;IAAvF,2CAAsB;;;IAQrC,gCAA+B;IAAA,YAAqB;IAAA,iBAAO;;;IAA5B,cAAqB;IAArB,4CAAqB;;;;IALxD,kCAEsB;IAFF,yLAAS,wBAAiB,IAAI,CAAC,KAAC;IAGlD,2BAAgD;IAChD,sGAA2B;IAG7B,iBAAS;;;IANP,uJAA2H;IAG3H,eAEC;IAFD,qDAEC;;;;IAQH,wCAKsC;IAApC,+LAAS,0BAAmB,KAAK,CAAC,KAAC;IACnC,6BAAiC;IAC/B,8DACF;IAAA,iBAAI;IAEF,AADF,gDAAgD,iBACoC;IAAvD,yLAAS,qBAAc,KAAC;IACjD,6BACF;IAAA,iBAAS;IACT,kCAA6G;IAArF,yLAAS,0BAAmB,KAAK,CAAC,KAAC;IACzD,4BACF;IAEJ,AADE,AADE,iBAAS,EACY,EACV;;IAfb,AADA,8BAAgB,cACH;;;;IAgCL,AADF,AADF,+BAA+B,cACN,cACE;IACrB,YACF;IAAA,iBAAM;IACN,kCAA0E;IAAhC,2NAAS,gCAAqB,KAAC;IACvE,+BAA8B;IAC5B,2BAAsC;IACtC,qBACF;IAEJ,AADE,AADE,iBAAM,EACC,EACL;IACN,qBAAI;IACJ,iBAAM;;;IAVF,eACF;IADE,8CACF;;;;IAdV,wCAOG;IAJD,+LAAS,wBAAiB,KAAK,CAAC,KAAC;IAKjC,qBAAI;IACF,wHAeG;IAEC,AADF,gDAAgD,iBAC8D;IAAnF,yLAAS,wBAAiB,KAAK,CAAC,KAAC;IACxD,uBACF;IAEJ,AADE,AADE,iBAAS,EACY,EACV;;;IAxBjB,AADA,AADA,8BAAgB,cACH,eACC;IAGZ,eAeG;IAfH,oCAeG;;;;IAWH,qDAI0C;IAAxC,AADA,wNAAY,2CAAoC,KAAC,iMACvC,mCAA4B,KAAC;IACzC,iBAA4B;;;IAH1B,AADA,oDAA+B,0CACG;;AD/J1C,MAAM,OAAO,oBAAoB;IAuDF;IAtDlB,kBAAkB,GAAY,IAAI,CAAC;IACnC,IAAI,CAAqB;IACwB,kBAAkB,CAAc;IAE1F,IAAW,qBAAqB;QAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACrC,CAAC;IAGD;;OAEG;IACI,QAAQ,GAAY,KAAK,CAAC;IAEjC;;OAEG;IACH,IAAW,iBAAiB;QACxB,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC;IACpD,CAAC;IAEM,iBAAiB,GAAY,KAAK,CAAC;IACnC,oBAAoB,GAAY,KAAK,CAAC;IACtC,cAAc,GAAiB,EAAE,CAAC;IAClC,aAAa,GAAiB,EAAE,CAAC;IAExC,kCAAkC;IAC3B,sBAAsB,GAAY,KAAK,CAAC;IACxC,oBAAoB,GAAsC,IAAI,CAAC;IAC/D,qBAAqB,GAAY,IAAI,CAAC,CAAC,gCAAgC;IAE9E,4BAA4B;IACrB,eAAe,GAAW,CAAC,CAAC;IAC5B,kBAAkB,GAAY,KAAK,CAAC;IACpC,WAAW,GAAiB,EAAE,CAAC;IAEtC;;OAEG;IACI,kBAAkB,GAAY,KAAK,CAAC;IAE3C;;OAEG;IACI,oBAAoB,GAAY,KAAK,CAAC;IAC7C;;OAEG;IACI,sBAAsB,GAAY,KAAK,CAAC;IAE/C,IAAW,sBAAsB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,YAA2B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IACzC,CAAC;IAEM,KAAK,CAAC,QAAQ;QACjB,mDAAmD;QACnD,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,mBAAmB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;QACjC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAE/B,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;YACzB,oDAAoD;YACpD,0DAA0D;YAC1D,MAAM,QAAQ,GAAG,wBAAwB,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACnF,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAEtC,mCAAmC;YACnC,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,OAAO,CAAmB;gBACrD,UAAU,EAAE,cAAc;gBAC1B,WAAW,EAAE,eAAe,QAAQ,GAAG;gBACvC,UAAU,EAAE,eAAe;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzF,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;gBACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,OAAO;YACX,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAE3F,mCAAmC;YACnC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,OAAO,CAAa;gBAC7C,UAAU,EAAE,OAAO;gBACnB,WAAW,EAAE,UAAU,YAAY,qBAAqB,QAAQ,GAAG;gBACnE,UAAU,EAAE,eAAe;aAC9B,CAAC,CAAC;YAEH,IAAI,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC7C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;gBACvC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;gBACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YAC1B,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YACzD,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QACpC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,KAAiB;QAC7C,gCAAgC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAC3C,MAAM,CAAC,KAAK,EAAE,CAAC;QAEf,sIAAsI;QACtI,uIAAuI;QACvI,+EAA+E;QAC/E,sJAAsJ;QAEtJ,iEAAiE;QACjE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAgB,CAAC;QACpE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAgB,CAAC;QAE3D,8DAA8D;QAC9D,WAAW,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,2CAA2C;QACrF,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,6BAA6B;QAEjE,6CAA6C;QAC7C,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpD,aAAa,CAAC,SAAS,GAAG,6BAA6B,CAAC;QACxD,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAEvC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC1C,aAAa,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;QAErC,kBAAkB;QAClB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,mBAAmB,GAAW,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC3B,WAAW,IAAI,EAAE,CAAC;YAClB,aAAa,CAAC,SAAS,GAAG,0DAA0D,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,WAAW,KAAK,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,mDAAmD,mBAAmB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpS,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,IAAI,CAAC;YACD,oEAAoE;YACpE,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,KAAc,EAAE,EAAE;gBACnE,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC,iBAAiB,EAAE,CAAC;oBACnD,mBAAmB,GAAG,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;oBAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,kBAAkB;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvH,aAAa,CAAC,QAAQ,CAAC,wBAAwB,CAAC,sBAAsB,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAChG,CAAC;QACL,CAAC;gBAAS,CAAC;YACP,iDAAiD;YACjD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAEhC,WAAW,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,6CAA6C;YACvF,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,mCAAmC;YAEpE,oCAAoC;YACpC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAEvC,kBAAkB;YAClB,aAAa,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACL,CAAC;IAGD;;OAEG;IACI,YAAY;QACf,IAAI,CAAC,sBAAsB,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC;QAC3D,aAAa,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;IAChD,CAAC;IAEM,kBAAkB,CAAC,IAAa;QACnC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,IAAa;QACvC,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,EAAE,CAAC;YACrC,0CAA0C;YAC1C,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAE9B,IAAG,IAAI,EAAC,CAAC;YACL,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7D,CAAC;IACL,CAAC;IAED;;OAEG;IACI,sBAAsB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,oDAAoD;QACpD,0DAA0D;QAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAErD,IAAI,CAAC,oBAAoB,GAAG;YACxB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,UAAU,CAAC,EAAE;YACvB,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,SAAS,EAAE,CAAC,QAAQ,CAAC;YACrB,kBAAkB,EAAE,CAAC,UAAU,CAAC;YAChC,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,qBAAqB,UAAU,GAAG;SAClD,CAAC;QAEF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACvC,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,MAAkB;QAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,IAAI,UAAU,EAAE,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,IAAI;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,4BAA4B,CAAC,MAA4B;QAClE,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAEjC,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YACvC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAE3C,IAAI,UAAU,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrC,IAAI,OAAO,GAAG,EAAE,CAAC;gBACjB,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;oBACjB,OAAO,IAAI,YAAY,UAAU,UAAU,CAAC;gBAChD,CAAC;gBACD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;oBACnB,IAAI,OAAO;wBAAE,OAAO,IAAI,IAAI,CAAC;oBAC7B,OAAO,IAAI,gBAAgB,YAAY,UAAU,CAAC;gBACtD,CAAC;gBACD,aAAa,CAAC,QAAQ,CAAC,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBAE1E,yBAAyB;gBACzB,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACrC,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACI,0BAA0B;QAC7B,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,IAAgB;QACzC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAE7B,MAAM,EAAE,GAAa,IAAI,QAAQ,EAAE,CAAC;QAEpC,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC,eAAe,CAA2B,cAAc,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;QAC5G,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAC7B,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QAClC,0EAA0E;QAC1E,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtF,MAAM,UAAU,GAAY,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC1D,IAAG,CAAC,UAAU,EAAC,CAAC;YACZ,QAAQ,CAAC,+BAA+B,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACnG,CAAC;QAED,IAAG,UAAU,EAAC,CAAC;YACX,aAAa,CAAC,QAAQ,CAAC,wBAAwB,CAAC,mCAAmC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1G,CAAC;aACG,CAAC;YACD,aAAa,CAAC,QAAQ,CAAC,wBAAwB,CAAC,8BAA8B,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACnG,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,YAAY;QACrB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE/B,kDAAkD;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC;QAChD,MAAM,iBAAiB,GAAG,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC;QAE9D,6DAA6D;QAC7D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,IAAI,YAAY,GAAuB,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/E,IAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;gBACxB,aAAa,CAAC,QAAQ,CAAC,wBAAwB,CAAC,6DAA6D,YAAY,CAAC,MAAM,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAClK,OAAO;YACX,CAAC;QACL,CAAC;QAED,MAAM,YAAY,GAAY,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9D,IAAI,YAAY,EAAE,CAAC;YACf,aAAa,CAAC,QAAQ,CAAC,wBAAwB,CAAC,4BAA4B,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAC/F,IAAI,KAAK,GAAQ;gBACb,KAAK,EAAE,WAAW,CAAC,cAAc;gBACjC,SAAS,EAAE,UAAU,CAAC,eAAe;gBACrC,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,IAAI;aACb,CAAC;YAEF,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;aACI,CAAC;YACF,aAAa,CAAC,QAAQ,CAAC,wBAAwB,CAAC,uBAAuB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC5F,CAAC;IACL,CAAC;8GA3VQ,oBAAoB;6DAApB,oBAAoB;gDAGe,UAAU;;;;;;YClB1D,8BAAoE;YAyBpE,AAxBE,4EAAsB,sDAwBjB;YAmBP,yFAA6D;YAqD7D,oGAAgC;YAGhC,yFAAoB;YAYpB,kBAAgE;YAEhE,+FAA4B;YAsB5B,+FAAmD;YAmC/C,4GAAsD;YAQxD,iBAAM;;YAnLuB,iDAAoC;YACjE,cA0CD;YA1CC,4CA0CD;YACD,eAIC;YAJD,8HAIC;YAiDD,cAEC;YAFD,uDAEC;YACD,cASC;YATD,6CASC;YAKD,eAmBC;YAnBD,mDAmBC;YAGD,cAgCK;YAhCL,8EAgCK;YAGD,cAOC;YAPD,iFAOC;;;iFDnKQ,oBAAoB;cANhC,SAAS;6BACI,KAAK,YACL,iBAAiB;;kBAK1B,KAAK;;kBACL,KAAK;;kBACL,YAAY;mBAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;;kFAH/C,oBAAoB"}
@@ -1,5 +1,5 @@
1
1
  import { AfterViewChecked, ChangeDetectorRef } from '@angular/core';
2
- import { BaseFormComponent } from '@memberjunction/ng-base-forms';
2
+ import { BaseFormComponent, FormWidthMode } from '@memberjunction/ng-base-forms';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  * Container component that wraps generated forms with consistent structure and styling.
@@ -12,15 +12,22 @@ import * as i0 from "@angular/core";
12
12
  */
13
13
  export declare class RecordFormContainerComponent implements AfterViewChecked {
14
14
  private cdr;
15
- record: any;
15
+ record: unknown;
16
16
  formComponent: BaseFormComponent;
17
17
  visibleCount: number;
18
18
  totalCount: number;
19
19
  expandedCount: number;
20
+ widthMode: FormWidthMode;
20
21
  private countsInitialized;
22
+ /** Returns true if user has customized the section order */
23
+ get hasCustomOrder(): boolean;
21
24
  constructor(cdr: ChangeDetectorRef);
22
25
  ngAfterViewChecked(): void;
23
26
  onFilterChange(filter: string): void;
27
+ onExpandAll(): void;
28
+ onCollapseAll(): void;
29
+ onWidthModeChange(mode: FormWidthMode): void;
30
+ onResetOrder(): void;
24
31
  private updateCounts;
25
32
  static ɵfac: i0.ɵɵFactoryDeclaration<RecordFormContainerComponent, never>;
26
33
  static ɵcmp: i0.ɵɵComponentDeclaration<RecordFormContainerComponent, "mj-record-form-container", never, { "record": { "alias": "record"; "required": false; }; "formComponent": { "alias": "formComponent"; "required": false; }; }, {}, never, ["[slot='before-panels']", "[slot='field-panels']", "[slot='after-panels']"], false, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"record-form-container.component.d.ts","sourceRoot":"","sources":["../../src/lib/record-form-container.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAuC,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;;AAElE;;;;;;;;GAQG;AACH,qBAsCa,4BAA6B,YAAW,gBAAgB;IAWrD,OAAO,CAAC,GAAG;IAVd,MAAM,EAAE,GAAG,CAAC;IACZ,aAAa,EAAG,iBAAiB,CAAC;IAG3C,YAAY,SAAK;IACjB,UAAU,SAAK;IACf,aAAa,SAAK;IAElB,OAAO,CAAC,iBAAiB,CAAS;gBAEd,GAAG,EAAE,iBAAiB;IAE1C,kBAAkB,IAAI,IAAI;IAa1B,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMpC,OAAO,CAAC,YAAY;yCAhCX,4BAA4B;2CAA5B,4BAA4B;CAuCxC"}
1
+ {"version":3,"file":"record-form-container.component.d.ts","sourceRoot":"","sources":["../../src/lib/record-form-container.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAuC,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;;AAEjF;;;;;;;;GAQG;AACH,qBA2Ca,4BAA6B,YAAW,gBAAgB;IAiBrD,OAAO,CAAC,GAAG;IAhBd,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAG,iBAAiB,CAAC;IAG3C,YAAY,SAAK;IACjB,UAAU,SAAK;IACf,aAAa,SAAK;IAClB,SAAS,EAAE,aAAa,CAAc;IAEtC,OAAO,CAAC,iBAAiB,CAAS;IAElC,4DAA4D;IAC5D,IAAI,cAAc,IAAI,OAAO,CAE5B;gBAEmB,GAAG,EAAE,iBAAiB;IAE1C,kBAAkB,IAAI,IAAI;IAe1B,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMpC,WAAW,IAAI,IAAI;IAKnB,aAAa,IAAI,IAAI;IAKrB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAK5C,YAAY,IAAI,IAAI;IAKpB,OAAO,CAAC,YAAY;yCA5DX,4BAA4B;2CAA5B,4BAA4B;CAmExC"}
@@ -1,30 +1,30 @@
1
1
  import { Component, Input, ViewEncapsulation } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@angular/forms";
5
- import * as i3 from "@memberjunction/ng-base-forms";
6
- import * as i4 from "./form-toolbar";
3
+ import * as i1 from "@angular/forms";
4
+ import * as i2 from "@memberjunction/ng-base-forms";
5
+ import * as i3 from "./form-toolbar";
7
6
  const _c0 = [[["", "slot", "before-panels"]], [["", "slot", "field-panels"]], [["", "slot", "after-panels"]]];
8
7
  const _c1 = ["[slot='before-panels']", "[slot='field-panels']", "[slot='after-panels']"];
9
- function RecordFormContainerComponent_form_1_Template(rf, ctx) { if (rf & 1) {
8
+ function RecordFormContainerComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
10
9
  const _r1 = i0.ɵɵgetCurrentView();
11
- i0.ɵɵelementStart(0, "form", 3, 0)(2, "mj-form-toolbar", 4)(3, "mj-form-section-controls", 5);
12
- i0.ɵɵlistener("expandAll", function RecordFormContainerComponent_form_1_Template_mj_form_section_controls_expandAll_3_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.formComponent.expandAllSections()); })("collapseAll", function RecordFormContainerComponent_form_1_Template_mj_form_section_controls_collapseAll_3_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.formComponent.collapseAllSections()); })("filterChange", function RecordFormContainerComponent_form_1_Template_mj_form_section_controls_filterChange_3_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFilterChange($event)); })("showEmptyFieldsChange", function RecordFormContainerComponent_form_1_Template_mj_form_section_controls_showEmptyFieldsChange_3_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.formComponent.showEmptyFields = $event); });
10
+ i0.ɵɵelementStart(0, "form", 2, 0)(2, "mj-form-toolbar", 3)(3, "mj-form-section-controls", 4);
11
+ i0.ɵɵlistener("expandAll", function RecordFormContainerComponent_Conditional_1_Template_mj_form_section_controls_expandAll_3_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onExpandAll()); })("collapseAll", function RecordFormContainerComponent_Conditional_1_Template_mj_form_section_controls_collapseAll_3_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCollapseAll()); })("filterChange", function RecordFormContainerComponent_Conditional_1_Template_mj_form_section_controls_filterChange_3_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFilterChange($event)); })("showEmptyFieldsChange", function RecordFormContainerComponent_Conditional_1_Template_mj_form_section_controls_showEmptyFieldsChange_3_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.formComponent.showEmptyFields = $event); })("widthModeChange", function RecordFormContainerComponent_Conditional_1_Template_mj_form_section_controls_widthModeChange_3_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onWidthModeChange($event)); })("resetOrder", function RecordFormContainerComponent_Conditional_1_Template_mj_form_section_controls_resetOrder_3_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onResetOrder()); });
13
12
  i0.ɵɵelementEnd()();
14
- i0.ɵɵelementStart(4, "div", 6)(5, "div", 7)(6, "div", 8);
13
+ i0.ɵɵelementStart(4, "div", 5)(5, "div", 6)(6, "div", 7);
15
14
  i0.ɵɵprojection(7);
16
15
  i0.ɵɵelementEnd();
17
16
  i0.ɵɵprojection(8, 1);
18
- i0.ɵɵelement(9, "div", 9);
19
- i0.ɵɵelementStart(10, "div", 8);
20
- i0.ɵɵprojection(11, 2);
17
+ i0.ɵɵelementStart(9, "div", 7);
18
+ i0.ɵɵprojection(10, 2);
21
19
  i0.ɵɵelementEnd()()()();
22
20
  } if (rf & 2) {
23
21
  const ctx_r1 = i0.ɵɵnextContext();
24
22
  i0.ɵɵadvance(2);
25
23
  i0.ɵɵproperty("form", ctx_r1.formComponent);
26
24
  i0.ɵɵadvance();
27
- i0.ɵɵproperty("visibleCount", ctx_r1.visibleCount)("totalCount", ctx_r1.totalCount)("expandedCount", ctx_r1.expandedCount)("searchFilter", ctx_r1.formComponent.searchFilter)("showEmptyFields", ctx_r1.formComponent.showEmptyFields);
25
+ i0.ɵɵproperty("visibleCount", ctx_r1.visibleCount)("totalCount", ctx_r1.totalCount)("expandedCount", ctx_r1.expandedCount)("searchFilter", ctx_r1.formComponent.searchFilter)("showEmptyFields", ctx_r1.formComponent.showEmptyFields)("widthMode", ctx_r1.widthMode)("hasCustomOrder", ctx_r1.hasCustomOrder);
26
+ i0.ɵɵadvance(2);
27
+ i0.ɵɵclassProp("full-width", ctx_r1.widthMode === "full-width");
28
28
  } }
29
29
  /**
30
30
  * Container component that wraps generated forms with consistent structure and styling.
@@ -43,7 +43,12 @@ export class RecordFormContainerComponent {
43
43
  visibleCount = 0;
44
44
  totalCount = 0;
45
45
  expandedCount = 0;
46
+ widthMode = 'centered';
46
47
  countsInitialized = false;
48
+ /** Returns true if user has customized the section order */
49
+ get hasCustomOrder() {
50
+ return this.formComponent?.hasCustomSectionOrder() ?? false;
51
+ }
47
52
  constructor(cdr) {
48
53
  this.cdr = cdr;
49
54
  }
@@ -55,6 +60,8 @@ export class RecordFormContainerComponent {
55
60
  if (newTotal > 0) {
56
61
  this.countsInitialized = true;
57
62
  this.updateCounts();
63
+ // Also load persisted width mode
64
+ this.widthMode = this.formComponent.getFormWidthMode();
58
65
  this.cdr.detectChanges();
59
66
  }
60
67
  }
@@ -64,6 +71,22 @@ export class RecordFormContainerComponent {
64
71
  // Update counts after filter change
65
72
  this.updateCounts();
66
73
  }
74
+ onExpandAll() {
75
+ this.formComponent.expandAllSections();
76
+ this.updateCounts();
77
+ }
78
+ onCollapseAll() {
79
+ this.formComponent.collapseAllSections();
80
+ this.updateCounts();
81
+ }
82
+ onWidthModeChange(mode) {
83
+ this.widthMode = mode;
84
+ this.formComponent.setFormWidthMode(mode);
85
+ }
86
+ onResetOrder() {
87
+ this.formComponent.resetSectionOrder();
88
+ this.cdr.detectChanges();
89
+ }
67
90
  updateCounts() {
68
91
  if (this.formComponent) {
69
92
  this.visibleCount = this.formComponent.getVisibleSectionCount();
@@ -72,55 +95,59 @@ export class RecordFormContainerComponent {
72
95
  }
73
96
  }
74
97
  static ɵfac = function RecordFormContainerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RecordFormContainerComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
75
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RecordFormContainerComponent, selectors: [["mj-record-form-container"]], inputs: { record: "record", formComponent: "formComponent" }, ngContentSelectors: _c1, decls: 2, vars: 1, consts: [["formElement", "ngForm"], [1, "record-form-container"], ["class", "record-form", 4, "ngIf"], [1, "record-form"], [3, "form"], ["toolbar-additional-controls", "", 3, "expandAll", "collapseAll", "filterChange", "showEmptyFieldsChange", "visibleCount", "totalCount", "expandedCount", "searchFilter", "showEmptyFields"], [1, "forms-panel-container-outer"], [1, "form-panels-container"], [1, "related-entity-grid"], [1, "related-entities-divider"]], template: function RecordFormContainerComponent_Template(rf, ctx) { if (rf & 1) {
98
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RecordFormContainerComponent, selectors: [["mj-record-form-container"]], inputs: { record: "record", formComponent: "formComponent" }, standalone: false, ngContentSelectors: _c1, decls: 2, vars: 1, consts: [["formElement", "ngForm"], [1, "record-form-container"], [1, "record-form"], [3, "form"], ["toolbar-additional-controls", "", 3, "expandAll", "collapseAll", "filterChange", "showEmptyFieldsChange", "widthModeChange", "resetOrder", "visibleCount", "totalCount", "expandedCount", "searchFilter", "showEmptyFields", "widthMode", "hasCustomOrder"], [1, "forms-panel-container-outer"], [1, "form-panels-container"], [1, "related-entity-grid"]], template: function RecordFormContainerComponent_Template(rf, ctx) { if (rf & 1) {
76
99
  i0.ɵɵprojectionDef(_c0);
77
100
  i0.ɵɵelementStart(0, "div", 1);
78
- i0.ɵɵtemplate(1, RecordFormContainerComponent_form_1_Template, 12, 6, "form", 2);
101
+ i0.ɵɵconditionalCreate(1, RecordFormContainerComponent_Conditional_1_Template, 11, 10, "form", 2);
79
102
  i0.ɵɵelementEnd();
80
103
  } if (rf & 2) {
81
104
  i0.ɵɵadvance();
82
- i0.ɵɵproperty("ngIf", ctx.record);
83
- } }, dependencies: [i1.NgIf, i2.ɵNgNoValidate, i2.NgControlStatusGroup, i2.NgForm, i3.FormSectionControlsComponent, i4.FormToolbarComponent], styles: [".k-pane {\n background-color: #F5F6FA;\n}\n\n.record-form-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\na {\n font-size: 14px;\n font-weight: bolder;\n}\n\n.record-form {\n display: flex;\n flex-direction: column;\n background-color: #F5F6FA;\n padding: 0;\n height: 100%;\n min-height: 0; /* Allow flex child to shrink */\n}\n\n.record-form-group {\n margin-top: 0px;\n background-color: #F5F6FA;\n}\n\nbutton {\n margin-right: 5px;\n}\n\n.record-form h2 {\n margin-bottom: 10px;\n}\n\n.k-splitter {\n border-width: 0px;\n}\n\n.record-form-row {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 10px;\n margin-bottom: 12px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n\n\n/* .record-form .record-form-row:nth-child(odd) {\n background-color: #f2f2f2;\n} */\n\n/*\n.record-form .record-form-row:nth-child(even) {\n background-color: #ffffff;\n} */\n\n.record-form .record-form-row > :first-child {\n font-weight: bold;\n padding-right: 10px;\n}\n\n.record-form .record-form-row > span {\n white-space: pre-line;\n max-height: 300px;\n overflow: auto;\n}\n\n\n\n@media (min-width: 768px) {\n .record-form-row {\n flex-direction: row;\n align-items: center;\n }\n\n .record-form-row label {\n width: 240px;\n margin-bottom: 0;\n }\n}\n\n/* Collapsible Panel Styles */\n.forms-panel-container-outer {\n flex: 1;\n min-height: 0; /* Critical: allows flex item to shrink below content size */\n overflow-y: auto;\n}\n\n.form-panels-container {\n display: grid;\n grid-template-columns: 1fr;\n gap: 20px;\n padding: 20px;\n background-color: #F5F6FA;\n}\n\n/* Responsive horizontal stacking for ALL panels (field sections and related entities) */\n@media (min-width: 1200px) {\n .form-panels-container {\n grid-template-columns: repeat(auto-fit, minmax(550px, 1fr));\n }\n}\n\n/* Even more aggressive stacking on ultra-wide screens */\n@media (min-width: 1800px) {\n .form-panels-container {\n grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));\n }\n}\n\n/* Related entity grid container - treated as regular panels now */\n.form-panels-container .related-entity-grid {\n display: contents; /* Makes children participate in parent grid */\n}\n\n/* Visual separator before related entities */\n.related-entities-divider {\n grid-column: 1 / -1;\n height: 2px;\n background: linear-gradient(to right, transparent, #d1d5db 20%, #d1d5db 80%, transparent);\n margin: 12px 0;\n position: relative;\n}\n\n.related-entities-divider::before {\n content: '';\n}\n\n.form-card {\n background: white;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n}\n\n.collapsible-card {\n overflow: hidden;\n}\n\n.collapsible-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid #e5e7eb;\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header:hover {\n background: linear-gradient(135deg, #f3f4f6 0%, #f9fafb 100%);\n border-bottom-color: #667eea;\n}\n\n.collapsible-title {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.collapsible-title i {\n font-size: 20px;\n color: #667eea;\n}\n\n.collapsible-title h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #1f2937;\n}\n\n.collapsible-header .collapse-icon {\n color: #6b7280;\n transition: transform 0.3s ease;\n}\n\n.collapsible-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.collapsible-body.collapsed {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.form-body {\n padding: 24px;\n}\n\n/* Related Entity Sections - Visual Distinction */\n.form-card.related-entity {\n background: linear-gradient(135deg, #f0f9ff 0%, #ffffff 100%);\n border-left: 3px solid #3b82f6;\n}\n\n.form-card.related-entity .collapsible-header {\n background: linear-gradient(135deg, #e0f2fe 0%, #f0f9ff 100%);\n}\n\n.form-card.related-entity .collapsible-header:hover {\n background: linear-gradient(135deg, #bfdbfe 0%, #e0f2fe 100%);\n border-bottom-color: #3b82f6;\n}\n\n.form-card.related-entity .collapsible-title i {\n color: #3b82f6;\n}\n\n/* Section Controls */\n.form-section-controls {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid #e5e7eb;\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.form-section-controls .control-group {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.form-section-controls button {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid #d1d5db;\n background: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.form-section-controls button:hover {\n background: #667eea;\n color: white;\n border-color: #667eea;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(102, 126, 234, 0.2);\n}\n\n.form-section-controls button:active {\n transform: translateY(0);\n}\n\n.form-section-controls button i {\n margin-right: 0;\n font-size: 14px;\n}\n\n.form-section-controls .section-search {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid #d1d5db;\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: white;\n}\n\n.form-section-controls .section-search:focus {\n outline: none;\n border-color: #667eea;\n box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);\n}\n\n.form-section-controls .section-search::placeholder {\n color: #9ca3af;\n font-style: italic;\n}\n\n.form-section-controls .section-count {\n font-size: 13px;\n color: #6b7280;\n margin-left: auto;\n font-weight: 500;\n}\n\n/* Hidden sections for search filter */\n.form-card.search-hidden {\n display: none;\n}\n\n/* Section count badge */\n.section-count-badge {\n background: #667eea;\n color: white;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n/* Row count badge for related entity sections */\n.collapsible-title .row-count-badge {\n background: #10b981;\n color: white;\n padding: 3px 6px 2px 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n vertical-align: middle;\n position: relative;\n top: -2px;\n display: inline-block;\n line-height: 1;\n}\n\n/* Gray badge for zero rows (loaded but empty) */\n.collapsible-title .row-count-badge.zero-rows {\n background: #9ca3af;\n}\n\n/* Search highlighting */\n.collapsible-title h3 .search-highlight {\n background-color: #fef08a;\n color: #854d0e;\n padding: 2px 4px;\n border-radius: 3px;\n font-weight: 700;\n}\n"], encapsulation: 2 });
105
+ i0.ɵɵconditional(ctx.record ? 1 : -1);
106
+ } }, dependencies: [i1.ɵNgNoValidate, i1.NgControlStatusGroup, i1.NgForm, i2.FormSectionControlsComponent, i3.FormToolbarComponent], styles: [".k-pane {\n background-color: #F5F6FA;\n}\n\n.record-form-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\na {\n font-size: 14px;\n}\n\n.record-form {\n display: flex;\n flex-direction: column;\n background-color: #F5F6FA;\n padding: 0;\n height: 100%;\n min-height: 0; /* Allow flex child to shrink */\n}\n\n.record-form-group {\n margin-top: 0px;\n background-color: #F5F6FA;\n}\n\nbutton {\n margin-right: 5px;\n}\n\n.record-form h2 {\n margin-bottom: 10px;\n}\n\n.k-splitter {\n border-width: 0px;\n}\n\n.record-form-row {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 10px;\n margin-bottom: 12px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n\n\n/* .record-form .record-form-row:nth-child(odd) {\n background-color: #f2f2f2;\n} */\n\n/*\n.record-form .record-form-row:nth-child(even) {\n background-color: #ffffff;\n} */\n\n.record-form .record-form-row > :first-child {\n font-weight: bold;\n padding-right: 10px;\n}\n\n.record-form .record-form-row > span {\n white-space: pre-line;\n max-height: 300px;\n overflow: auto;\n}\n\n\n\n@media (min-width: 768px) {\n .record-form-row {\n flex-direction: row;\n align-items: center;\n }\n\n .record-form-row label {\n width: 240px;\n margin-bottom: 0;\n }\n}\n\n/* Collapsible Panel Styles */\n.forms-panel-container-outer {\n flex: 1;\n min-height: 0; /* Critical: allows flex item to shrink below content size */\n overflow-y: auto;\n}\n\n.form-panels-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 20px;\n background-color: #F5F6FA;\n max-width: 900px;\n margin: 0 auto;\n transition: max-width 0.3s ease;\n}\n\n/* On very wide screens, allow slightly wider forms for better use of space */\n@media (min-width: 1600px) {\n .form-panels-container {\n max-width: 1000px;\n }\n}\n\n/* Full-width mode - removes max-width constraint */\n.form-panels-container.full-width {\n max-width: none;\n}\n\n/* Related entity grid container - treated as regular panels now */\n.form-panels-container .related-entity-grid {\n display: contents; /* Makes children participate in parent grid */\n}\n\n.form-card {\n background: white;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n}\n\n.collapsible-card {\n overflow: hidden;\n}\n\n.collapsible-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid #e5e7eb;\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header:hover {\n background: linear-gradient(135deg, #f3f4f6 0%, #f9fafb 100%);\n border-bottom-color: #667eea;\n}\n\n.collapsible-title {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.collapsible-title i {\n font-size: 20px;\n color: #667eea;\n}\n\n.collapsible-title h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #1f2937;\n}\n\n.collapsible-header .collapse-icon {\n color: #6b7280;\n transition: transform 0.3s ease;\n}\n\n.collapsible-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.collapsible-body.collapsed {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.form-body {\n padding: 24px;\n}\n\n/* Related Entity Sections - Visual Distinction */\n.form-card.related-entity {\n background: linear-gradient(135deg, #f0f9ff 0%, #ffffff 100%);\n border-left: 3px solid #3b82f6;\n}\n\n.form-card.related-entity .collapsible-header {\n background: linear-gradient(135deg, #e0f2fe 0%, #f0f9ff 100%);\n}\n\n.form-card.related-entity .collapsible-header:hover {\n background: linear-gradient(135deg, #bfdbfe 0%, #e0f2fe 100%);\n border-bottom-color: #3b82f6;\n}\n\n.form-card.related-entity .collapsible-title i {\n color: #3b82f6;\n}\n\n/* Section Controls */\n.form-section-controls {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid #e5e7eb;\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.form-section-controls .control-group {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.form-section-controls button {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid #d1d5db;\n background: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.form-section-controls button:hover {\n background: #667eea;\n color: white;\n border-color: #667eea;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(102, 126, 234, 0.2);\n}\n\n.form-section-controls button:active {\n transform: translateY(0);\n}\n\n.form-section-controls button i {\n margin-right: 0;\n font-size: 14px;\n}\n\n.form-section-controls .section-search {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid #d1d5db;\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: white;\n}\n\n.form-section-controls .section-search:focus {\n outline: none;\n border-color: #667eea;\n box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);\n}\n\n.form-section-controls .section-search::placeholder {\n color: #9ca3af;\n font-style: italic;\n}\n\n.form-section-controls .section-count {\n font-size: 13px;\n color: #6b7280;\n margin-left: auto;\n font-weight: 500;\n}\n\n/* Hidden sections for search filter */\n.form-card.search-hidden {\n display: none;\n}\n\n/* Section count badge */\n.section-count-badge {\n background: #667eea;\n color: white;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n/* Row count badge for related entity sections */\n.collapsible-title .row-count-badge {\n background: #10b981;\n color: white;\n padding: 3px 6px 2px 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n vertical-align: middle;\n position: relative;\n top: -2px;\n display: inline-block;\n line-height: 1;\n}\n\n/* Gray badge for zero rows (loaded but empty) */\n.collapsible-title .row-count-badge.zero-rows {\n background: #9ca3af;\n}\n\n/* Search highlighting */\n.collapsible-title h3 .search-highlight {\n background-color: #fef08a;\n color: #854d0e;\n padding: 2px 4px;\n border-radius: 3px;\n font-weight: 700;\n}\n"], encapsulation: 2 });
84
107
  }
85
108
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RecordFormContainerComponent, [{
86
109
  type: Component,
87
- args: [{ selector: 'mj-record-form-container', encapsulation: ViewEncapsulation.None, template: `
110
+ args: [{ standalone: false, selector: 'mj-record-form-container', encapsulation: ViewEncapsulation.None, template: `
88
111
  <div class="record-form-container">
89
- <form *ngIf="record" class="record-form" #formElement="ngForm">
90
- <mj-form-toolbar [form]="formComponent">
91
- <mj-form-section-controls
92
- toolbar-additional-controls
93
- [visibleCount]="visibleCount"
94
- [totalCount]="totalCount"
95
- [expandedCount]="expandedCount"
96
- [searchFilter]="formComponent.searchFilter"
97
- [showEmptyFields]="formComponent.showEmptyFields"
98
- (expandAll)="formComponent.expandAllSections()"
99
- (collapseAll)="formComponent.collapseAllSections()"
100
- (filterChange)="onFilterChange($event)"
101
- (showEmptyFieldsChange)="formComponent.showEmptyFields = $event">
102
- </mj-form-section-controls>
103
- </mj-form-toolbar>
104
-
105
- <div class="forms-panel-container-outer">
106
- <div class="form-panels-container">
107
- <div class="related-entity-grid">
108
- <ng-content select="[slot='before-panels']"></ng-content>
109
- </div>
110
- <ng-content select="[slot='field-panels']"></ng-content>
111
- <div class="related-entities-divider"></div>
112
- <div class="related-entity-grid">
113
- <ng-content select="[slot='after-panels']"></ng-content>
114
- </div>
115
- </div>
112
+ @if (record) {
113
+ <form class="record-form" #formElement="ngForm">
114
+ <mj-form-toolbar [form]="formComponent">
115
+ <mj-form-section-controls
116
+ toolbar-additional-controls
117
+ [visibleCount]="visibleCount"
118
+ [totalCount]="totalCount"
119
+ [expandedCount]="expandedCount"
120
+ [searchFilter]="formComponent.searchFilter"
121
+ [showEmptyFields]="formComponent.showEmptyFields"
122
+ [widthMode]="widthMode"
123
+ [hasCustomOrder]="hasCustomOrder"
124
+ (expandAll)="onExpandAll()"
125
+ (collapseAll)="onCollapseAll()"
126
+ (filterChange)="onFilterChange($event)"
127
+ (showEmptyFieldsChange)="formComponent.showEmptyFields = $event"
128
+ (widthModeChange)="onWidthModeChange($event)"
129
+ (resetOrder)="onResetOrder()">
130
+ </mj-form-section-controls>
131
+ </mj-form-toolbar>
132
+ <div class="forms-panel-container-outer">
133
+ <div class="form-panels-container" [class.full-width]="widthMode === 'full-width'">
134
+ <div class="related-entity-grid">
135
+ <ng-content select="[slot='before-panels']"></ng-content>
136
+ </div>
137
+ <ng-content select="[slot='field-panels']"></ng-content>
138
+ <div class="related-entity-grid">
139
+ <ng-content select="[slot='after-panels']"></ng-content>
140
+ </div>
116
141
  </div>
142
+ </div>
117
143
  </form>
144
+ }
118
145
  </div>
119
- `, styles: [".k-pane {\n background-color: #F5F6FA;\n}\n\n.record-form-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\na {\n font-size: 14px;\n font-weight: bolder;\n}\n\n.record-form {\n display: flex;\n flex-direction: column;\n background-color: #F5F6FA;\n padding: 0;\n height: 100%;\n min-height: 0; /* Allow flex child to shrink */\n}\n\n.record-form-group {\n margin-top: 0px;\n background-color: #F5F6FA;\n}\n\nbutton {\n margin-right: 5px;\n}\n\n.record-form h2 {\n margin-bottom: 10px;\n}\n\n.k-splitter {\n border-width: 0px;\n}\n\n.record-form-row {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 10px;\n margin-bottom: 12px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n\n\n/* .record-form .record-form-row:nth-child(odd) {\n background-color: #f2f2f2;\n} */\n\n/*\n.record-form .record-form-row:nth-child(even) {\n background-color: #ffffff;\n} */\n\n.record-form .record-form-row > :first-child {\n font-weight: bold;\n padding-right: 10px;\n}\n\n.record-form .record-form-row > span {\n white-space: pre-line;\n max-height: 300px;\n overflow: auto;\n}\n\n\n\n@media (min-width: 768px) {\n .record-form-row {\n flex-direction: row;\n align-items: center;\n }\n\n .record-form-row label {\n width: 240px;\n margin-bottom: 0;\n }\n}\n\n/* Collapsible Panel Styles */\n.forms-panel-container-outer {\n flex: 1;\n min-height: 0; /* Critical: allows flex item to shrink below content size */\n overflow-y: auto;\n}\n\n.form-panels-container {\n display: grid;\n grid-template-columns: 1fr;\n gap: 20px;\n padding: 20px;\n background-color: #F5F6FA;\n}\n\n/* Responsive horizontal stacking for ALL panels (field sections and related entities) */\n@media (min-width: 1200px) {\n .form-panels-container {\n grid-template-columns: repeat(auto-fit, minmax(550px, 1fr));\n }\n}\n\n/* Even more aggressive stacking on ultra-wide screens */\n@media (min-width: 1800px) {\n .form-panels-container {\n grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));\n }\n}\n\n/* Related entity grid container - treated as regular panels now */\n.form-panels-container .related-entity-grid {\n display: contents; /* Makes children participate in parent grid */\n}\n\n/* Visual separator before related entities */\n.related-entities-divider {\n grid-column: 1 / -1;\n height: 2px;\n background: linear-gradient(to right, transparent, #d1d5db 20%, #d1d5db 80%, transparent);\n margin: 12px 0;\n position: relative;\n}\n\n.related-entities-divider::before {\n content: '';\n}\n\n.form-card {\n background: white;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n}\n\n.collapsible-card {\n overflow: hidden;\n}\n\n.collapsible-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid #e5e7eb;\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header:hover {\n background: linear-gradient(135deg, #f3f4f6 0%, #f9fafb 100%);\n border-bottom-color: #667eea;\n}\n\n.collapsible-title {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.collapsible-title i {\n font-size: 20px;\n color: #667eea;\n}\n\n.collapsible-title h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #1f2937;\n}\n\n.collapsible-header .collapse-icon {\n color: #6b7280;\n transition: transform 0.3s ease;\n}\n\n.collapsible-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.collapsible-body.collapsed {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.form-body {\n padding: 24px;\n}\n\n/* Related Entity Sections - Visual Distinction */\n.form-card.related-entity {\n background: linear-gradient(135deg, #f0f9ff 0%, #ffffff 100%);\n border-left: 3px solid #3b82f6;\n}\n\n.form-card.related-entity .collapsible-header {\n background: linear-gradient(135deg, #e0f2fe 0%, #f0f9ff 100%);\n}\n\n.form-card.related-entity .collapsible-header:hover {\n background: linear-gradient(135deg, #bfdbfe 0%, #e0f2fe 100%);\n border-bottom-color: #3b82f6;\n}\n\n.form-card.related-entity .collapsible-title i {\n color: #3b82f6;\n}\n\n/* Section Controls */\n.form-section-controls {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid #e5e7eb;\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.form-section-controls .control-group {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.form-section-controls button {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid #d1d5db;\n background: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.form-section-controls button:hover {\n background: #667eea;\n color: white;\n border-color: #667eea;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(102, 126, 234, 0.2);\n}\n\n.form-section-controls button:active {\n transform: translateY(0);\n}\n\n.form-section-controls button i {\n margin-right: 0;\n font-size: 14px;\n}\n\n.form-section-controls .section-search {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid #d1d5db;\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: white;\n}\n\n.form-section-controls .section-search:focus {\n outline: none;\n border-color: #667eea;\n box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);\n}\n\n.form-section-controls .section-search::placeholder {\n color: #9ca3af;\n font-style: italic;\n}\n\n.form-section-controls .section-count {\n font-size: 13px;\n color: #6b7280;\n margin-left: auto;\n font-weight: 500;\n}\n\n/* Hidden sections for search filter */\n.form-card.search-hidden {\n display: none;\n}\n\n/* Section count badge */\n.section-count-badge {\n background: #667eea;\n color: white;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n/* Row count badge for related entity sections */\n.collapsible-title .row-count-badge {\n background: #10b981;\n color: white;\n padding: 3px 6px 2px 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n vertical-align: middle;\n position: relative;\n top: -2px;\n display: inline-block;\n line-height: 1;\n}\n\n/* Gray badge for zero rows (loaded but empty) */\n.collapsible-title .row-count-badge.zero-rows {\n background: #9ca3af;\n}\n\n/* Search highlighting */\n.collapsible-title h3 .search-highlight {\n background-color: #fef08a;\n color: #854d0e;\n padding: 2px 4px;\n border-radius: 3px;\n font-weight: 700;\n}\n"] }]
146
+ `, styles: [".k-pane {\n background-color: #F5F6FA;\n}\n\n.record-form-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\na {\n font-size: 14px;\n}\n\n.record-form {\n display: flex;\n flex-direction: column;\n background-color: #F5F6FA;\n padding: 0;\n height: 100%;\n min-height: 0; /* Allow flex child to shrink */\n}\n\n.record-form-group {\n margin-top: 0px;\n background-color: #F5F6FA;\n}\n\nbutton {\n margin-right: 5px;\n}\n\n.record-form h2 {\n margin-bottom: 10px;\n}\n\n.k-splitter {\n border-width: 0px;\n}\n\n.record-form-row {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 10px;\n margin-bottom: 12px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n\n\n/* .record-form .record-form-row:nth-child(odd) {\n background-color: #f2f2f2;\n} */\n\n/*\n.record-form .record-form-row:nth-child(even) {\n background-color: #ffffff;\n} */\n\n.record-form .record-form-row > :first-child {\n font-weight: bold;\n padding-right: 10px;\n}\n\n.record-form .record-form-row > span {\n white-space: pre-line;\n max-height: 300px;\n overflow: auto;\n}\n\n\n\n@media (min-width: 768px) {\n .record-form-row {\n flex-direction: row;\n align-items: center;\n }\n\n .record-form-row label {\n width: 240px;\n margin-bottom: 0;\n }\n}\n\n/* Collapsible Panel Styles */\n.forms-panel-container-outer {\n flex: 1;\n min-height: 0; /* Critical: allows flex item to shrink below content size */\n overflow-y: auto;\n}\n\n.form-panels-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 20px;\n background-color: #F5F6FA;\n max-width: 900px;\n margin: 0 auto;\n transition: max-width 0.3s ease;\n}\n\n/* On very wide screens, allow slightly wider forms for better use of space */\n@media (min-width: 1600px) {\n .form-panels-container {\n max-width: 1000px;\n }\n}\n\n/* Full-width mode - removes max-width constraint */\n.form-panels-container.full-width {\n max-width: none;\n}\n\n/* Related entity grid container - treated as regular panels now */\n.form-panels-container .related-entity-grid {\n display: contents; /* Makes children participate in parent grid */\n}\n\n.form-card {\n background: white;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n}\n\n.collapsible-card {\n overflow: hidden;\n}\n\n.collapsible-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid #e5e7eb;\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header:hover {\n background: linear-gradient(135deg, #f3f4f6 0%, #f9fafb 100%);\n border-bottom-color: #667eea;\n}\n\n.collapsible-title {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.collapsible-title i {\n font-size: 20px;\n color: #667eea;\n}\n\n.collapsible-title h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #1f2937;\n}\n\n.collapsible-header .collapse-icon {\n color: #6b7280;\n transition: transform 0.3s ease;\n}\n\n.collapsible-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.collapsible-body.collapsed {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.form-body {\n padding: 24px;\n}\n\n/* Related Entity Sections - Visual Distinction */\n.form-card.related-entity {\n background: linear-gradient(135deg, #f0f9ff 0%, #ffffff 100%);\n border-left: 3px solid #3b82f6;\n}\n\n.form-card.related-entity .collapsible-header {\n background: linear-gradient(135deg, #e0f2fe 0%, #f0f9ff 100%);\n}\n\n.form-card.related-entity .collapsible-header:hover {\n background: linear-gradient(135deg, #bfdbfe 0%, #e0f2fe 100%);\n border-bottom-color: #3b82f6;\n}\n\n.form-card.related-entity .collapsible-title i {\n color: #3b82f6;\n}\n\n/* Section Controls */\n.form-section-controls {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid #e5e7eb;\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.form-section-controls .control-group {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.form-section-controls button {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid #d1d5db;\n background: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.form-section-controls button:hover {\n background: #667eea;\n color: white;\n border-color: #667eea;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(102, 126, 234, 0.2);\n}\n\n.form-section-controls button:active {\n transform: translateY(0);\n}\n\n.form-section-controls button i {\n margin-right: 0;\n font-size: 14px;\n}\n\n.form-section-controls .section-search {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid #d1d5db;\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: white;\n}\n\n.form-section-controls .section-search:focus {\n outline: none;\n border-color: #667eea;\n box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);\n}\n\n.form-section-controls .section-search::placeholder {\n color: #9ca3af;\n font-style: italic;\n}\n\n.form-section-controls .section-count {\n font-size: 13px;\n color: #6b7280;\n margin-left: auto;\n font-weight: 500;\n}\n\n/* Hidden sections for search filter */\n.form-card.search-hidden {\n display: none;\n}\n\n/* Section count badge */\n.section-count-badge {\n background: #667eea;\n color: white;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n/* Row count badge for related entity sections */\n.collapsible-title .row-count-badge {\n background: #10b981;\n color: white;\n padding: 3px 6px 2px 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n vertical-align: middle;\n position: relative;\n top: -2px;\n display: inline-block;\n line-height: 1;\n}\n\n/* Gray badge for zero rows (loaded but empty) */\n.collapsible-title .row-count-badge.zero-rows {\n background: #9ca3af;\n}\n\n/* Search highlighting */\n.collapsible-title h3 .search-highlight {\n background-color: #fef08a;\n color: #854d0e;\n padding: 2px 4px;\n border-radius: 3px;\n font-weight: 700;\n}\n"] }]
120
147
  }], () => [{ type: i0.ChangeDetectorRef }], { record: [{
121
148
  type: Input
122
149
  }], formComponent: [{
123
150
  type: Input
124
151
  }] }); })();
125
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RecordFormContainerComponent, { className: "RecordFormContainerComponent", filePath: "src/lib/record-form-container.component.ts", lineNumber: 51 }); })();
152
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RecordFormContainerComponent, { className: "RecordFormContainerComponent", filePath: "src/lib/record-form-container.component.ts", lineNumber: 56 }); })();
126
153
  //# sourceMappingURL=record-form-container.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"record-form-container.component.js","sourceRoot":"","sources":["../../src/lib/record-form-container.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;;;;;;;;;;IAmBrF,AADJ,AADJ,kCAA+D,yBACnB,kCAWiC;IAAjE,AADA,AADA,AADA,mNAAa,wCAAiC,KAAC,0MAChC,0CAAmC,KAAC,kNACnC,6BAAsB,KAAC,sRACyB;IAExE,AADI,iBAA2B,EACb;IAIV,AADJ,AADJ,8BAAyC,aACF,aACE;IAC7B,kBAAyD;IAC7D,iBAAM;IACN,qBAAwD;IACxD,yBAA4C;IAC5C,+BAAiC;IAC7B,sBAAwD;IAIxE,AADI,AADI,AADI,iBAAM,EACJ,EACJ,EACH;;;IA3Bc,eAAsB;IAAtB,2CAAsB;IAG/B,cAA6B;IAI7B,AADA,AADA,AADA,AADA,kDAA6B,iCACJ,uCACM,mDACY,yDACM;;AAtBzE;;;;;;;;GAQG;AAuCH,MAAM,OAAO,4BAA4B;IAWjB;IAVX,MAAM,CAAM;IACZ,aAAa,CAAqB;IAE3C,qEAAqE;IACrE,YAAY,GAAG,CAAC,CAAC;IACjB,UAAU,GAAG,CAAC,CAAC;IACf,aAAa,GAAG,CAAC,CAAC;IAEV,iBAAiB,GAAG,KAAK,CAAC;IAElC,YAAoB,GAAsB;QAAtB,QAAG,GAAH,GAAG,CAAmB;IAAG,CAAC;IAE9C,kBAAkB;QACd,kEAAkE;QAClE,mDAAmD;QACnD,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;YAC3D,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YAC7B,CAAC;QACL,CAAC;IACL,CAAC;IAED,cAAc,CAAC,MAAc;QACzB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC1C,oCAAoC;QACpC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAEO,YAAY;QAChB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;YAChE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;YAC5D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;QAC/D,CAAC;IACL,CAAC;sHAtCQ,4BAA4B;6DAA5B,4BAA4B;;YAlCjC,8BAAmC;YAC/B,gFAA+D;YA6BnE,iBAAM;;YA7BK,cAAY;YAAZ,iCAAY;;;iFAiClB,4BAA4B;cAtCxC,SAAS;2BACI,0BAA0B,iBACrB,iBAAiB,CAAC,IAAI,YAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgCT;kDAIQ,MAAM;kBAAd,KAAK;YACG,aAAa;kBAArB,KAAK;;kFAFG,4BAA4B"}
1
+ {"version":3,"file":"record-form-container.component.js","sourceRoot":"","sources":["../../src/lib/record-form-container.component.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-form-toolbar",
3
- "version": "3.3.0",
3
+ "version": "4.0.0",
4
4
  "description": "MemberJunction: Angular Form Toolbar",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -15,30 +15,30 @@
15
15
  "author": "",
16
16
  "license": "ISC",
17
17
  "devDependencies": {
18
- "@angular/compiler": "18.2.14",
19
- "@angular/compiler-cli": "18.2.14"
18
+ "@angular/compiler": "21.1.3",
19
+ "@angular/compiler-cli": "21.1.3"
20
20
  },
21
21
  "peerDependencies": {
22
- "@angular/common": "18.2.14",
23
- "@angular/core": "18.2.14",
24
- "@angular/forms": "18.2.14",
25
- "@angular/router": "18.2.14"
22
+ "@angular/common": "21.1.3",
23
+ "@angular/core": "21.1.3",
24
+ "@angular/forms": "21.1.3",
25
+ "@angular/router": "21.1.3"
26
26
  },
27
27
  "dependencies": {
28
- "@memberjunction/core": "3.3.0",
29
- "@memberjunction/core-entities": "3.3.0",
30
- "@memberjunction/global": "3.3.0",
31
- "@memberjunction/ng-base-forms": "3.3.0",
32
- "@memberjunction/ng-container-directives": "3.3.0",
33
- "@memberjunction/ng-record-changes": "3.3.0",
34
- "@memberjunction/ng-list-management": "3.3.0",
35
- "@memberjunction/ng-shared": "3.3.0",
36
- "@progress/kendo-angular-buttons": "16.2.0",
37
- "@progress/kendo-angular-dialog": "16.2.0",
38
- "@progress/kendo-angular-indicators": "16.2.0",
39
- "@progress/kendo-angular-inputs": "16.2.0",
40
- "@memberjunction/ng-markdown": "3.3.0",
41
- "tslib": "^2.3.0"
28
+ "@memberjunction/core": "4.0.0",
29
+ "@memberjunction/core-entities": "4.0.0",
30
+ "@memberjunction/global": "4.0.0",
31
+ "@memberjunction/ng-base-forms": "4.0.0",
32
+ "@memberjunction/ng-container-directives": "4.0.0",
33
+ "@memberjunction/ng-record-changes": "4.0.0",
34
+ "@memberjunction/ng-list-management": "4.0.0",
35
+ "@memberjunction/ng-shared": "4.0.0",
36
+ "@progress/kendo-angular-buttons": "22.0.1",
37
+ "@progress/kendo-angular-dialog": "22.0.1",
38
+ "@progress/kendo-angular-indicators": "22.0.1",
39
+ "@progress/kendo-angular-inputs": "22.0.1",
40
+ "@memberjunction/ng-markdown": "4.0.0",
41
+ "tslib": "^2.8.1"
42
42
  },
43
43
  "sideEffects": false,
44
44
  "repository": {