@memberjunction/ng-form-toolbar 2.116.0 → 2.118.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/form-toolbar.d.ts +4 -2
- package/dist/lib/form-toolbar.d.ts.map +1 -1
- package/dist/lib/form-toolbar.js +50 -36
- package/dist/lib/form-toolbar.js.map +1 -1
- package/dist/lib/record-form-container.component.d.ts +18 -0
- package/dist/lib/record-form-container.component.d.ts.map +1 -0
- package/dist/lib/record-form-container.component.js +91 -0
- package/dist/lib/record-form-container.component.js.map +1 -0
- package/dist/module.d.ts +13 -12
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +7 -2
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +1 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +1 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +8 -8
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
1
|
+
import { OnInit, ElementRef } from '@angular/core';
|
|
2
2
|
import { BaseFormComponent } from '@memberjunction/ng-base-forms';
|
|
3
3
|
import { CompositeKey } from '@memberjunction/core';
|
|
4
4
|
import { Router } from '@angular/router';
|
|
@@ -8,6 +8,8 @@ export declare class FormToolbarComponent implements OnInit {
|
|
|
8
8
|
private router;
|
|
9
9
|
ShowSkipChatButton: boolean;
|
|
10
10
|
form: BaseFormComponent;
|
|
11
|
+
additionalControls?: ElementRef;
|
|
12
|
+
get hasAdditionalControls(): boolean;
|
|
11
13
|
/**
|
|
12
14
|
* This property does not get modified by the toolbar as things change within its state, it is the global setting you can change to disable the toolbar
|
|
13
15
|
*/
|
|
@@ -45,6 +47,6 @@ export declare class FormToolbarComponent implements OnInit {
|
|
|
45
47
|
addRecordToList(list: ListEntity): Promise<void>;
|
|
46
48
|
deleteRecord(): Promise<void>;
|
|
47
49
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormToolbarComponent, never>;
|
|
48
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FormToolbarComponent, "mj-form-toolbar", never, { "ShowSkipChatButton": { "alias": "ShowSkipChatButton"; "required": false; }; "form": { "alias": "form"; "required": false; }; }, {},
|
|
50
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FormToolbarComponent, "mj-form-toolbar", never, { "ShowSkipChatButton": { "alias": "ShowSkipChatButton"; "required": false; }; "form": { "alias": "form"; "required": false; }; }, {}, ["additionalControls"], ["[toolbar-additional-controls]"], false, never>;
|
|
49
51
|
}
|
|
50
52
|
//# sourceMappingURL=form-toolbar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-toolbar.d.ts","sourceRoot":"","sources":["../../src/lib/form-toolbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
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,EAAc,YAAY,EAAiD,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAoB,UAAU,EAAE,MAAM,+BAA+B,CAAC;;AAG7E,qBAKa,oBAAqB,YAAW,MAAM;IA6C5B,OAAO,CAAC,MAAM;IA5CxB,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;IAExC;;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;IAGzB,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;IAS9C,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBhD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;yCAjKjC,oBAAoB;2CAApB,oBAAoB;CAiMhC"}
|
package/dist/lib/form-toolbar.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
1
|
+
import { Component, Input, ContentChild, ElementRef } from '@angular/core';
|
|
2
2
|
import { EventCodes, SharedService } from '@memberjunction/ng-shared';
|
|
3
3
|
import { LogError, Metadata } from '@memberjunction/core';
|
|
4
4
|
import { MJEventType, MJGlobal } from '@memberjunction/global';
|
|
@@ -9,44 +9,45 @@ import * as i3 from "@memberjunction/ng-record-changes";
|
|
|
9
9
|
import * as i4 from "@progress/kendo-angular-buttons";
|
|
10
10
|
import * as i5 from "@progress/kendo-angular-dialog";
|
|
11
11
|
import * as i6 from "@memberjunction/ng-ask-skip";
|
|
12
|
+
const _c0 = ["additionalControls"];
|
|
13
|
+
const _c1 = [[["", "toolbar-additional-controls", ""]]];
|
|
14
|
+
const _c2 = ["[toolbar-additional-controls]"];
|
|
12
15
|
function FormToolbarComponent_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
13
16
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
14
17
|
i0.ɵɵelementStart(0, "button", 11);
|
|
15
18
|
i0.ɵɵlistener("click", function FormToolbarComponent_Conditional_1_Conditional_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.form.StartEditMode()); });
|
|
16
19
|
i0.ɵɵelement(1, "span", 12);
|
|
17
|
-
i0.ɵɵ
|
|
18
|
-
i0.ɵɵtext(3, "Edit");
|
|
19
|
-
i0.ɵɵelementEnd()();
|
|
20
|
+
i0.ɵɵelementEnd();
|
|
20
21
|
} }
|
|
21
22
|
function FormToolbarComponent_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
22
23
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
23
|
-
i0.ɵɵelementStart(0, "button",
|
|
24
|
+
i0.ɵɵelementStart(0, "button", 13);
|
|
24
25
|
i0.ɵɵlistener("click", function FormToolbarComponent_Conditional_1_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleDeleteDialog(true)); });
|
|
25
|
-
i0.ɵɵelement(1, "span",
|
|
26
|
+
i0.ɵɵelement(1, "span", 14);
|
|
26
27
|
i0.ɵɵelementEnd();
|
|
27
28
|
} }
|
|
28
29
|
function FormToolbarComponent_Conditional_1_Conditional_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
29
30
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
30
|
-
i0.ɵɵelementStart(0, "button",
|
|
31
|
+
i0.ɵɵelementStart(0, "button", 17);
|
|
31
32
|
i0.ɵɵlistener("click", function FormToolbarComponent_Conditional_1_Conditional_2_Conditional_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.form.RemoveFavorite()); });
|
|
32
|
-
i0.ɵɵelement(1, "span",
|
|
33
|
+
i0.ɵɵelement(1, "span", 18);
|
|
33
34
|
i0.ɵɵelementEnd();
|
|
34
35
|
} }
|
|
35
36
|
function FormToolbarComponent_Conditional_1_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
36
37
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
37
|
-
i0.ɵɵelementStart(0, "button",
|
|
38
|
+
i0.ɵɵelementStart(0, "button", 19);
|
|
38
39
|
i0.ɵɵlistener("click", function FormToolbarComponent_Conditional_1_Conditional_2_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.form.MakeFavorite()); });
|
|
39
|
-
i0.ɵɵelement(1, "span",
|
|
40
|
+
i0.ɵɵelement(1, "span", 20);
|
|
40
41
|
i0.ɵɵelementEnd();
|
|
41
42
|
} }
|
|
42
43
|
function FormToolbarComponent_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
43
|
-
i0.ɵɵtemplate(0, FormToolbarComponent_Conditional_1_Conditional_2_Conditional_0_Template, 2, 0, "button",
|
|
44
|
+
i0.ɵɵtemplate(0, FormToolbarComponent_Conditional_1_Conditional_2_Conditional_0_Template, 2, 0, "button", 15)(1, FormToolbarComponent_Conditional_1_Conditional_2_Conditional_1_Template, 2, 0, "button", 16);
|
|
44
45
|
} if (rf & 2) {
|
|
45
46
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
46
47
|
i0.ɵɵconditional(ctx_r1.form.IsFavorite ? 0 : 1);
|
|
47
48
|
} }
|
|
48
49
|
function FormToolbarComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
49
|
-
i0.ɵɵtemplate(0, FormToolbarComponent_Conditional_1_Conditional_0_Template,
|
|
50
|
+
i0.ɵɵtemplate(0, FormToolbarComponent_Conditional_1_Conditional_0_Template, 2, 0, "button", 9)(1, FormToolbarComponent_Conditional_1_Conditional_1_Template, 2, 0, "button", 10)(2, FormToolbarComponent_Conditional_1_Conditional_2_Template, 2, 1);
|
|
50
51
|
} if (rf & 2) {
|
|
51
52
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
52
53
|
i0.ɵɵconditional(ctx_r1.form.UserCanEdit ? 0 : -1);
|
|
@@ -60,7 +61,7 @@ function FormToolbarComponent_Conditional_2_Conditional_4_Template(rf, ctx) { if
|
|
|
60
61
|
i0.ɵɵelementStart(0, "button", 26);
|
|
61
62
|
i0.ɵɵlistener("click", function FormToolbarComponent_Conditional_2_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.form.CancelEdit()); });
|
|
62
63
|
i0.ɵɵelement(1, "span", 27);
|
|
63
|
-
i0.ɵɵelementStart(2, "span",
|
|
64
|
+
i0.ɵɵelementStart(2, "span", 23);
|
|
64
65
|
i0.ɵɵtext(3, "Cancel");
|
|
65
66
|
i0.ɵɵelementEnd()();
|
|
66
67
|
} }
|
|
@@ -69,16 +70,16 @@ function FormToolbarComponent_Conditional_2_Conditional_5_Template(rf, ctx) { if
|
|
|
69
70
|
i0.ɵɵelementStart(0, "button", 28);
|
|
70
71
|
i0.ɵɵlistener("click", function FormToolbarComponent_Conditional_2_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.form.ShowChanges()); });
|
|
71
72
|
i0.ɵɵelement(1, "span", 29);
|
|
72
|
-
i0.ɵɵelementStart(2, "span",
|
|
73
|
+
i0.ɵɵelementStart(2, "span", 23);
|
|
73
74
|
i0.ɵɵtext(3, "Changes");
|
|
74
75
|
i0.ɵɵelementEnd()();
|
|
75
76
|
} }
|
|
76
77
|
function FormToolbarComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
77
78
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
78
|
-
i0.ɵɵelementStart(0, "button",
|
|
79
|
+
i0.ɵɵelementStart(0, "button", 21);
|
|
79
80
|
i0.ɵɵlistener("mouseup", function FormToolbarComponent_Conditional_2_Template_button_mouseup_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.saveExistingRecord($event)); });
|
|
80
|
-
i0.ɵɵelement(1, "span",
|
|
81
|
-
i0.ɵɵelementStart(2, "span",
|
|
81
|
+
i0.ɵɵelement(1, "span", 22);
|
|
82
|
+
i0.ɵɵelementStart(2, "span", 23);
|
|
82
83
|
i0.ɵɵtext(3, "Save");
|
|
83
84
|
i0.ɵɵelementEnd()();
|
|
84
85
|
i0.ɵɵtemplate(4, FormToolbarComponent_Conditional_2_Conditional_4_Template, 4, 0, "button", 24)(5, FormToolbarComponent_Conditional_2_Conditional_5_Template, 4, 0, "button", 25);
|
|
@@ -94,9 +95,7 @@ function FormToolbarComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
94
95
|
i0.ɵɵelementStart(0, "button", 30);
|
|
95
96
|
i0.ɵɵlistener("click", function FormToolbarComponent_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.form.handleHistoryDialog()); });
|
|
96
97
|
i0.ɵɵelement(1, "span", 31);
|
|
97
|
-
i0.ɵɵ
|
|
98
|
-
i0.ɵɵtext(3, "History");
|
|
99
|
-
i0.ɵɵelementEnd()();
|
|
98
|
+
i0.ɵɵelementEnd();
|
|
100
99
|
} }
|
|
101
100
|
function FormToolbarComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
102
101
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
@@ -130,33 +129,33 @@ function FormToolbarComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
130
129
|
i0.ɵɵelement(1, "span", 37);
|
|
131
130
|
i0.ɵɵelementEnd();
|
|
132
131
|
} }
|
|
133
|
-
function
|
|
132
|
+
function FormToolbarComponent_kendo_dialog_9_Template(rf, ctx) { if (rf & 1) {
|
|
134
133
|
const _r14 = i0.ɵɵgetCurrentView();
|
|
135
134
|
i0.ɵɵelementStart(0, "kendo-dialog", 38);
|
|
136
|
-
i0.ɵɵlistener("close", function
|
|
135
|
+
i0.ɵɵlistener("close", function FormToolbarComponent_kendo_dialog_9_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleDeleteDialog(false)); });
|
|
137
136
|
i0.ɵɵelementStart(1, "p", 39);
|
|
138
137
|
i0.ɵɵtext(2, " Are you sure you want to delete this record? ");
|
|
139
138
|
i0.ɵɵelementEnd();
|
|
140
139
|
i0.ɵɵelementStart(3, "kendo-dialog-actions", 40)(4, "button", 41);
|
|
141
|
-
i0.ɵɵlistener("click", function
|
|
140
|
+
i0.ɵɵlistener("click", function FormToolbarComponent_kendo_dialog_9_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.deleteRecord()); });
|
|
142
141
|
i0.ɵɵtext(5, " Yes, Delete ");
|
|
143
142
|
i0.ɵɵelementEnd();
|
|
144
143
|
i0.ɵɵelementStart(6, "button", 42);
|
|
145
|
-
i0.ɵɵlistener("click", function
|
|
144
|
+
i0.ɵɵlistener("click", function FormToolbarComponent_kendo_dialog_9_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleDeleteDialog(false)); });
|
|
146
145
|
i0.ɵɵtext(7, " No, Cancel ");
|
|
147
146
|
i0.ɵɵelementEnd()()();
|
|
148
147
|
} if (rf & 2) {
|
|
149
148
|
i0.ɵɵproperty("minWidth", 450)("width", 650);
|
|
150
149
|
} }
|
|
151
|
-
function
|
|
150
|
+
function FormToolbarComponent_kendo_dialog_10_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
152
151
|
const _r16 = i0.ɵɵgetCurrentView();
|
|
153
152
|
i0.ɵɵelementStart(0, "div", 44)(1, "div", 45)(2, "div", 46);
|
|
154
153
|
i0.ɵɵtext(3);
|
|
155
154
|
i0.ɵɵelementEnd();
|
|
156
155
|
i0.ɵɵelementStart(4, "button", 47);
|
|
157
|
-
i0.ɵɵlistener("click", function
|
|
156
|
+
i0.ɵɵlistener("click", function FormToolbarComponent_kendo_dialog_10_For_3_Template_button_click_4_listener() { const list_r17 = i0.ɵɵrestoreView(_r16).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.addRecordToList(list_r17)); });
|
|
158
157
|
i0.ɵɵelementStart(5, "div", 48);
|
|
159
|
-
i0.ɵɵelement(6, "span",
|
|
158
|
+
i0.ɵɵelement(6, "span", 49);
|
|
160
159
|
i0.ɵɵtext(7, " Add ");
|
|
161
160
|
i0.ɵɵelementEnd()()();
|
|
162
161
|
i0.ɵɵelement(8, "hr");
|
|
@@ -166,14 +165,14 @@ function FormToolbarComponent_kendo_dialog_9_For_3_Template(rf, ctx) { if (rf &
|
|
|
166
165
|
i0.ɵɵadvance(3);
|
|
167
166
|
i0.ɵɵtextInterpolate1(" ", list_r17.Name, " ");
|
|
168
167
|
} }
|
|
169
|
-
function
|
|
168
|
+
function FormToolbarComponent_kendo_dialog_10_Template(rf, ctx) { if (rf & 1) {
|
|
170
169
|
const _r15 = i0.ɵɵgetCurrentView();
|
|
171
170
|
i0.ɵɵelementStart(0, "kendo-dialog", 43);
|
|
172
|
-
i0.ɵɵlistener("close", function
|
|
171
|
+
i0.ɵɵlistener("close", function FormToolbarComponent_kendo_dialog_10_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleListDialog(false)); });
|
|
173
172
|
i0.ɵɵelement(1, "hr");
|
|
174
|
-
i0.ɵɵrepeaterCreate(2,
|
|
173
|
+
i0.ɵɵrepeaterCreate(2, FormToolbarComponent_kendo_dialog_10_For_3_Template, 9, 1, "div", 44, i0.ɵɵrepeaterTrackByIdentity);
|
|
175
174
|
i0.ɵɵelementStart(4, "kendo-dialog-actions", 40)(5, "button", 42);
|
|
176
|
-
i0.ɵɵlistener("click", function
|
|
175
|
+
i0.ɵɵlistener("click", function FormToolbarComponent_kendo_dialog_10_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleListDialog(false)); });
|
|
177
176
|
i0.ɵɵtext(6, " Close ");
|
|
178
177
|
i0.ɵɵelementEnd()()();
|
|
179
178
|
} if (rf & 2) {
|
|
@@ -186,6 +185,10 @@ export class FormToolbarComponent {
|
|
|
186
185
|
router;
|
|
187
186
|
ShowSkipChatButton = true;
|
|
188
187
|
form;
|
|
188
|
+
additionalControls;
|
|
189
|
+
get hasAdditionalControls() {
|
|
190
|
+
return !!this.additionalControls;
|
|
191
|
+
}
|
|
189
192
|
/**
|
|
190
193
|
* This property does not get modified by the toolbar as things change within its state, it is the global setting you can change to disable the toolbar
|
|
191
194
|
*/
|
|
@@ -338,9 +341,17 @@ export class FormToolbarComponent {
|
|
|
338
341
|
}
|
|
339
342
|
}
|
|
340
343
|
static ɵfac = function FormToolbarComponent_Factory(t) { return new (t || FormToolbarComponent)(i0.ɵɵdirectiveInject(i1.Router)); };
|
|
341
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FormToolbarComponent, selectors: [["mj-form-toolbar"]],
|
|
344
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FormToolbarComponent, selectors: [["mj-form-toolbar"]], contentQueries: function FormToolbarComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
|
345
|
+
i0.ɵɵcontentQuery(dirIndex, _c0, 5, ElementRef);
|
|
346
|
+
} if (rf & 2) {
|
|
347
|
+
let _t;
|
|
348
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.additionalControls = _t.first);
|
|
349
|
+
} }, inputs: { ShowSkipChatButton: "ShowSkipChatButton", form: "form" }, ngContentSelectors: _c2, decls: 11, vars: 10, consts: [["mjChat", ""], [1, "toolbar-container"], ["kendoButton", "", "title", "Show History"], ["kendoButton", "", "title", "Discuss this record with Skip"], [3, "LinkedEntityID", "LinkedEntityPrimaryKey", "WindowOpened"], [3, "record"], ["kendoButton", "", "title", "Add this record to a list"], ["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"], ["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"], ["kendoButton", "", "title", "Discuss this record with Skip", 3, "click"], [1, "fa-regular", "fa-comment-dots"], [3, "WindowClosed", "LinkedEntityID", "LinkedEntityPrimaryKey", "WindowOpened"], [3, "dialogClosed", "record"], ["kendoButton", "", "title", "Add this record to a list", 3, "click"], [1, "fa-solid", "fa-rectangle-list"], ["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"]], template: function FormToolbarComponent_Template(rf, ctx) { if (rf & 1) {
|
|
350
|
+
i0.ɵɵprojectionDef(_c1);
|
|
342
351
|
i0.ɵɵelementStart(0, "div", 1);
|
|
343
|
-
i0.ɵɵtemplate(1, FormToolbarComponent_Conditional_1_Template, 3, 3)(2, FormToolbarComponent_Conditional_2_Template, 6, 2)(3, FormToolbarComponent_Conditional_3_Template,
|
|
352
|
+
i0.ɵɵtemplate(1, FormToolbarComponent_Conditional_1_Template, 3, 3)(2, FormToolbarComponent_Conditional_2_Template, 6, 2)(3, FormToolbarComponent_Conditional_3_Template, 2, 0, "button", 2)(4, FormToolbarComponent_Conditional_4_Template, 2, 0, "button", 3)(5, FormToolbarComponent_Conditional_5_Template, 2, 3, "mj-skip-chat-with-record-window", 4)(6, FormToolbarComponent_Conditional_6_Template, 1, 1, "mj-record-changes", 5)(7, FormToolbarComponent_Conditional_7_Template, 2, 0, "button", 6);
|
|
353
|
+
i0.ɵɵprojection(8);
|
|
354
|
+
i0.ɵɵtemplate(9, FormToolbarComponent_kendo_dialog_9_Template, 8, 2, "kendo-dialog", 7)(10, FormToolbarComponent_kendo_dialog_10_Template, 7, 3, "kendo-dialog", 8);
|
|
344
355
|
i0.ɵɵelementEnd();
|
|
345
356
|
} if (rf & 2) {
|
|
346
357
|
i0.ɵɵclassProp("disabled", ctx.CurrentlyDisabled);
|
|
@@ -356,19 +367,22 @@ export class FormToolbarComponent {
|
|
|
356
367
|
i0.ɵɵconditional(ctx.form.isHistoryDialogOpen ? 6 : -1);
|
|
357
368
|
i0.ɵɵadvance();
|
|
358
369
|
i0.ɵɵconditional(!ctx.form.EditMode ? 7 : -1);
|
|
359
|
-
i0.ɵɵadvance();
|
|
370
|
+
i0.ɵɵadvance(2);
|
|
360
371
|
i0.ɵɵproperty("ngIf", ctx._deleteDialogVisible);
|
|
361
372
|
i0.ɵɵadvance();
|
|
362
373
|
i0.ɵɵproperty("ngIf", ctx.listDialogVisible);
|
|
363
|
-
} }, dependencies: [i2.NgIf, i3.RecordChangesComponent, i4.ButtonComponent, i5.DialogComponent, i5.DialogActionsComponent, i6.SkipChatWithRecordWindowComponent], 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:
|
|
374
|
+
} }, dependencies: [i2.NgIf, i3.RecordChangesComponent, i4.ButtonComponent, i5.DialogComponent, i5.DialogActionsComponent, i6.SkipChatWithRecordWindowComponent], 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}"] });
|
|
364
375
|
}
|
|
365
376
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormToolbarComponent, [{
|
|
366
377
|
type: Component,
|
|
367
|
-
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 <span class=\"button-text\">Edit</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-business-time\"></span>\n <span class=\"button-text\">History</span>\n </button> \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 @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)\" title=\"Add this record to a list\">\n <span class=\"fa-solid fa-plus\"></span>\n </button> \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 <kendo-dialog\n class=\"dialog-wrapper\"\n title=\"Select List to Add Record To\"\n *ngIf=\"listDialogVisible\"\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</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: 8px;\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-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}"] }]
|
|
378
|
+
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 @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 @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)\" title=\"Add this record to a list\">\n <span class=\"fa-solid fa-rectangle-list\"></span>\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 <kendo-dialog\n class=\"dialog-wrapper\"\n title=\"Select List to Add Record To\"\n *ngIf=\"listDialogVisible\"\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</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}"] }]
|
|
368
379
|
}], () => [{ type: i1.Router }], { ShowSkipChatButton: [{
|
|
369
380
|
type: Input
|
|
370
381
|
}], form: [{
|
|
371
382
|
type: Input
|
|
383
|
+
}], additionalControls: [{
|
|
384
|
+
type: ContentChild,
|
|
385
|
+
args: ['additionalControls', { read: ElementRef }]
|
|
372
386
|
}] }); })();
|
|
373
387
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FormToolbarComponent, { className: "FormToolbarComponent", filePath: "src/lib/form-toolbar.ts", lineNumber: 15 }); })();
|
|
374
388
|
//# 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":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;
|
|
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,EAA4B,QAAQ,EAAE,QAAQ,EAA6B,MAAM,sBAAsB,CAAC;AAE/G,OAAO,EAAW,WAAW,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;;;;;;;;;;;;;ICD5D,kCAA4E;IAAxD,uMAAS,2BAAoB,KAAC;IAC9C,2BAA+C;IACnD,iBAAS;;;;IAGT,kCAAkF;IAA9D,uMAAS,0BAAmB,IAAI,CAAC,KAAC;IAClD,2BAA6C;IACjD,iBAAS;;;;IAIL,kCAA4E;IAAxD,qNAAS,4BAAqB,KAAC;IAC/C,2BAAsC;IAC1C,iBAAS;;;;IAGT,kCAAwE;IAApD,qNAAS,0BAAmB,KAAC;IAC7C,2BAAwC;IAC5C,iBAAS;;;IAHb,AALA,6GAAuB,gGAKhB;;;IALP,gDASC;;;IAVL,AALA,AALA,8FAAwB,kFAKA,oEAKK;;;IAV7B,kDAIC;IACD,cAIC;IAJD,oDAIC;IACD,cAWC;IAXD,uDAWC;;;;IASG,kCAAoE;IAAhD,uMAAS,wBAAiB,KAAC;IAC3C,2BAA6C;IAC7C,gCAA0B;IAAA,sBAAM;IACpC,AADoC,iBAAO,EAClC;;;;IAGT,kCAAiF;IAA7D,uMAAS,yBAAkB,KAAC;IAC5C,2BAAgD;IAChD,gCAA0B;IAAA,uBAAO;IACrC,AADqC,iBAAO,EACnC;;;;IAfb,kCAA+E;IAA3D,kMAAW,iCAA0B,KAAC;IACtD,2BAA6C;IAC7C,gCAA0B;IAAA,oBAAI;IAClC,AADkC,iBAAO,EAChC;IAQT,AAPA,+FAA2B,kFAOF;;;IAPzB,eAMC;IAND,qDAMC;IACD,cAKC;IALD,mDAKC;;;;IAGD,kCAA8E;IAA1D,wLAAS,iCAA0B,KAAC;IACpD,2BAAmD;IACvD,iBAAS;;;;IAGT,kCAAmF;IAA/D,yLAAS,qBAAc,KAAC;IACxC,2BAAgD;IACpD,iBAAS;;;;IAGT,8DAMC;IADG,gOAAgB,qBAAc,KAAC;IAEnC,iBAAkC;;;IAH9B,AAFA,AADA,0DAAqC,yDACY,+CAEV;;;;IAM3C,6CAAsF;IAA5C,kNAAgB,iCAA0B,KAAC;IAAC,iBAAoB;;;IAAvF,2CAAsB;;;;IAGzC,kCAAuF;IAAnE,yLAAS,wBAAiB,IAAI,CAAC,KAAC;IAChD,2BAAgD;IACpD,iBAAS;;;;IAMb,wCAMoC;IAApC,gMAAS,0BAAmB,KAAK,CAAC,KAAC;IACjC,6BAAiC;IAC/B,8DACF;IAAA,iBAAI;IAEF,AADF,gDAAgD,iBACoC;IAAvD,0LAAS,qBAAc,KAAC;IACjD,6BACF;IAAA,iBAAS;IACT,kCAA6G;IAArF,0LAAS,0BAAmB,KAAK,CAAC,KAAC;IACzD,4BACF;IAEJ,AADE,AADE,iBAAS,EACY,EACV;;IAhBf,AADA,8BAAgB,cACH;;;;IA+BD,AADJ,AADJ,+BAA+B,cACJ,cACI;IACnB,YACJ;IAAA,iBAAM;IACN,kCAA0E;IAAhC,6NAAS,gCAAqB,KAAC;IACrE,+BAA8B;IAC1B,2BAAsC;IACtC,qBACJ;IAER,AADI,AADI,iBAAM,EACD,EACP;IACN,qBAAI;IACR,iBAAM;;;IAVM,eACJ;IADI,8CACJ;;;;IAfZ,wCAQC;IAJD,iMAAS,wBAAiB,KAAK,CAAC,KAAC;IAKjC,qBAAI;IACJ,0HAeC;IAEG,AADJ,gDAAgD,iBACgE;IAAnF,2LAAS,wBAAiB,KAAK,CAAC,KAAC;IACtD,uBACJ;IAER,AADI,AADI,iBAAS,EACU,EACZ;;;IAxBX,AADA,AADA,8BAAgB,cACH,eACC;IAGd,eAeC;IAfD,oCAeC;;AD5GL,MAAM,OAAO,oBAAoB;IA6CF;IA5ClB,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;;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;IACrB,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,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvG,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,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;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,GAAqB,MAAM,EAAE,CAAC,eAAe,CAAmB,cAAc,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;QACtH,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAC7B,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QAClC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC;QAEnE,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;8EAhMQ,oBAAoB;6DAApB,oBAAoB;gDAGe,UAAU;;;;;;YChB1D,8BAAoE;YAmEhE,AAHA,AAVA,AALA,AALA,AAnBA,AAxBA,mEAAsB,sDAwBf,mEAmBsD,mEAKjB,4FAKrB,8EAUS,mEAGZ;YAOpB,kBAAgE;YAsBhE,AApBA,uFAMoC,4EAsBnC;YAwBL,iBAAM;;YAhIyB,iDAAoC;YAC/D,cA0CC;YA1CD,4CA0CC;YACD,eAIC;YAJD,8HAIC;YACD,cAIC;YAJD,uEAIC;YACD,cASC;YATD,8CASC;YACD,cAEC;YAFD,uDAEC;YACD,cAIC;YAJD,6CAIC;YAUA,eAA0B;YAA1B,+CAA0B;YAkB1B,cAAuB;YAAvB,4CAAuB;;;iFDtFf,oBAAoB;cALhC,SAAS;2BACI,iBAAiB;uCAKlB,kBAAkB;kBAA1B,KAAK;YACG,IAAI;kBAAZ,KAAK;YACoD,kBAAkB;kBAA3E,YAAY;mBAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;;kFAH/C,oBAAoB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BaseFormComponent } from '@memberjunction/ng-base-forms';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Container component that wraps generated forms with consistent structure and styling.
|
|
5
|
+
* Encapsulates the entire form structure including toolbar, section controls, and panels container.
|
|
6
|
+
*
|
|
7
|
+
* Supports three content projection slots:
|
|
8
|
+
* - [slot="before-panels"]: Related entity sections displayed before field panels
|
|
9
|
+
* - [slot="field-panels"]: Main form field sections
|
|
10
|
+
* - [slot="after-panels"]: Related entity sections displayed after field panels
|
|
11
|
+
*/
|
|
12
|
+
export declare class RecordFormContainerComponent {
|
|
13
|
+
record: any;
|
|
14
|
+
formComponent: BaseFormComponent;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RecordFormContainerComponent, never>;
|
|
16
|
+
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>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=record-form-container.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-form-container.component.d.ts","sourceRoot":"","sources":["../../src/lib/record-form-container.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;;AAElE;;;;;;;;GAQG;AACH,qBAoCa,4BAA4B;IAC5B,MAAM,EAAE,GAAG,CAAC;IACZ,aAAa,EAAG,iBAAiB,CAAC;yCAFlC,4BAA4B;2CAA5B,4BAA4B;CAGxC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
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";
|
|
7
|
+
const _c0 = [[["", "slot", "before-panels"]], [["", "slot", "field-panels"]], [["", "slot", "after-panels"]]];
|
|
8
|
+
const _c1 = ["[slot='before-panels']", "[slot='field-panels']", "[slot='after-panels']"];
|
|
9
|
+
function RecordFormContainerComponent_form_1_Template(rf, ctx) { if (rf & 1) {
|
|
10
|
+
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.formComponent.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); });
|
|
13
|
+
i0.ɵɵelementEnd()();
|
|
14
|
+
i0.ɵɵelementStart(4, "div", 6)(5, "div", 7);
|
|
15
|
+
i0.ɵɵprojection(6);
|
|
16
|
+
i0.ɵɵelementEnd();
|
|
17
|
+
i0.ɵɵprojection(7, 1);
|
|
18
|
+
i0.ɵɵelement(8, "div", 8);
|
|
19
|
+
i0.ɵɵelementStart(9, "div", 7);
|
|
20
|
+
i0.ɵɵprojection(10, 2);
|
|
21
|
+
i0.ɵɵelementEnd()()();
|
|
22
|
+
} if (rf & 2) {
|
|
23
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
24
|
+
i0.ɵɵadvance(2);
|
|
25
|
+
i0.ɵɵproperty("form", ctx_r1.formComponent);
|
|
26
|
+
i0.ɵɵadvance();
|
|
27
|
+
i0.ɵɵproperty("visibleCount", ctx_r1.formComponent.getVisibleSectionCount())("totalCount", ctx_r1.formComponent.getTotalSectionCount())("expandedCount", ctx_r1.formComponent.getExpandedCount())("searchFilter", ctx_r1.formComponent.searchFilter)("showEmptyFields", ctx_r1.formComponent.showEmptyFields);
|
|
28
|
+
} }
|
|
29
|
+
/**
|
|
30
|
+
* Container component that wraps generated forms with consistent structure and styling.
|
|
31
|
+
* Encapsulates the entire form structure including toolbar, section controls, and panels container.
|
|
32
|
+
*
|
|
33
|
+
* Supports three content projection slots:
|
|
34
|
+
* - [slot="before-panels"]: Related entity sections displayed before field panels
|
|
35
|
+
* - [slot="field-panels"]: Main form field sections
|
|
36
|
+
* - [slot="after-panels"]: Related entity sections displayed after field panels
|
|
37
|
+
*/
|
|
38
|
+
export class RecordFormContainerComponent {
|
|
39
|
+
record;
|
|
40
|
+
formComponent;
|
|
41
|
+
static ɵfac = function RecordFormContainerComponent_Factory(t) { return new (t || RecordFormContainerComponent)(); };
|
|
42
|
+
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, "form-panels-container"], [1, "related-entity-grid"], [1, "related-entities-divider"]], template: function RecordFormContainerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
43
|
+
i0.ɵɵprojectionDef(_c0);
|
|
44
|
+
i0.ɵɵelementStart(0, "div", 1);
|
|
45
|
+
i0.ɵɵtemplate(1, RecordFormContainerComponent_form_1_Template, 11, 6, "form", 2);
|
|
46
|
+
i0.ɵɵelementEnd();
|
|
47
|
+
} if (rf & 2) {
|
|
48
|
+
i0.ɵɵadvance();
|
|
49
|
+
i0.ɵɵproperty("ngIf", ctx.record);
|
|
50
|
+
} }, dependencies: [i1.NgIf, i2.ɵNgNoValidate, i2.NgControlStatusGroup, i2.NgForm, i3.FormSectionControlsComponent, i4.FormToolbarComponent], styles: [".k-pane {\n background-color: #F5F6FA;\n}\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 min-height: 100vh;\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.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 });
|
|
51
|
+
}
|
|
52
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RecordFormContainerComponent, [{
|
|
53
|
+
type: Component,
|
|
54
|
+
args: [{ selector: 'mj-record-form-container', encapsulation: ViewEncapsulation.None, template: `
|
|
55
|
+
<div class="record-form-container">
|
|
56
|
+
<form *ngIf="record" class="record-form" #formElement="ngForm">
|
|
57
|
+
<mj-form-toolbar [form]="formComponent">
|
|
58
|
+
<mj-form-section-controls
|
|
59
|
+
toolbar-additional-controls
|
|
60
|
+
[visibleCount]="formComponent.getVisibleSectionCount()"
|
|
61
|
+
[totalCount]="formComponent.getTotalSectionCount()"
|
|
62
|
+
[expandedCount]="formComponent.getExpandedCount()"
|
|
63
|
+
[searchFilter]="formComponent.searchFilter"
|
|
64
|
+
[showEmptyFields]="formComponent.showEmptyFields"
|
|
65
|
+
(expandAll)="formComponent.expandAllSections()"
|
|
66
|
+
(collapseAll)="formComponent.collapseAllSections()"
|
|
67
|
+
(filterChange)="formComponent.onFilterChange($event)"
|
|
68
|
+
(showEmptyFieldsChange)="formComponent.showEmptyFields = $event">
|
|
69
|
+
</mj-form-section-controls>
|
|
70
|
+
</mj-form-toolbar>
|
|
71
|
+
|
|
72
|
+
<div class="form-panels-container">
|
|
73
|
+
<div class="related-entity-grid">
|
|
74
|
+
<ng-content select="[slot='before-panels']"></ng-content>
|
|
75
|
+
</div>
|
|
76
|
+
<ng-content select="[slot='field-panels']"></ng-content>
|
|
77
|
+
<div class="related-entities-divider"></div>
|
|
78
|
+
<div class="related-entity-grid">
|
|
79
|
+
<ng-content select="[slot='after-panels']"></ng-content>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
</form>
|
|
83
|
+
</div>
|
|
84
|
+
`, styles: [".k-pane {\n background-color: #F5F6FA;\n}\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 min-height: 100vh;\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.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"] }]
|
|
85
|
+
}], null, { record: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], formComponent: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}] }); })();
|
|
90
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RecordFormContainerComponent, { className: "RecordFormContainerComponent", filePath: "src/lib/record-form-container.component.ts", lineNumber: 49 }); })();
|
|
91
|
+
//# sourceMappingURL=record-form-container.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-form-container.component.js","sourceRoot":"","sources":["../../src/lib/record-form-container.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;;;;;;;;;;IAmBhD,AADJ,AADJ,kCAA+D,yBACnB,kCAWiC;IAAjE,AADA,AADA,AADA,mNAAa,wCAAiC,KAAC,0MAChC,0CAAmC,KAAC,kNACnC,2CAAoC,KAAC,sRACW;IAExE,AADI,iBAA2B,EACb;IAGd,AADJ,8BAAmC,aACE;IAC7B,kBAAyD;IAC7D,iBAAM;IACN,qBAAwD;IACxD,yBAA4C;IAC5C,8BAAiC;IAC7B,sBAAwD;IAGpE,AADI,AADI,iBAAM,EACJ,EACH;;;IAzBc,eAAsB;IAAtB,2CAAsB;IAG/B,cAAuD;IAIvD,AADA,AADA,AADA,AADA,4EAAuD,2DACJ,0DACD,mDACP,yDACM;;AAtBzE;;;;;;;;GAQG;AAqCH,MAAM,OAAO,4BAA4B;IAC5B,MAAM,CAAM;IACZ,aAAa,CAAqB;sFAFlC,4BAA4B;6DAA5B,4BAA4B;;YAhCjC,8BAAmC;YAC/B,gFAA+D;YA2BnE,iBAAM;;YA3BK,cAAY;YAAZ,iCAAY;;;iFA+BlB,4BAA4B;cApCxC,SAAS;2BACI,0BAA0B,iBACrB,iBAAiB,CAAC,IAAI,YAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8BT;gBAIQ,MAAM;kBAAd,KAAK;YACG,aAAa;kBAArB,KAAK;;kFAFG,4BAA4B"}
|
package/dist/module.d.ts
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import * as i1 from "./lib/form-toolbar";
|
|
3
|
-
import * as i2 from "
|
|
4
|
-
import * as i3 from "@angular/
|
|
5
|
-
import * as i4 from "@
|
|
6
|
-
import * as i5 from "@memberjunction/ng-
|
|
7
|
-
import * as i6 from "@
|
|
8
|
-
import * as i7 from "@progress/kendo-angular-
|
|
9
|
-
import * as i8 from "@progress/kendo-angular-
|
|
10
|
-
import * as i9 from "@
|
|
11
|
-
import * as i10 from "@
|
|
12
|
-
import * as i11 from "@
|
|
13
|
-
import * as i12 from "
|
|
3
|
+
import * as i2 from "./lib/record-form-container.component";
|
|
4
|
+
import * as i3 from "@angular/common";
|
|
5
|
+
import * as i4 from "@angular/forms";
|
|
6
|
+
import * as i5 from "@memberjunction/ng-record-changes";
|
|
7
|
+
import * as i6 from "@memberjunction/ng-base-forms";
|
|
8
|
+
import * as i7 from "@progress/kendo-angular-buttons";
|
|
9
|
+
import * as i8 from "@progress/kendo-angular-inputs";
|
|
10
|
+
import * as i9 from "@progress/kendo-angular-dialog";
|
|
11
|
+
import * as i10 from "@memberjunction/ng-ask-skip";
|
|
12
|
+
import * as i11 from "@progress/kendo-angular-indicators";
|
|
13
|
+
import * as i12 from "@memberjunction/ng-shared";
|
|
14
|
+
import * as i13 from "ngx-markdown";
|
|
14
15
|
export declare class FormToolbarModule {
|
|
15
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormToolbarModule, never>;
|
|
16
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<FormToolbarModule, [typeof i1.FormToolbarComponent], [typeof
|
|
17
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<FormToolbarModule, [typeof i1.FormToolbarComponent, typeof i2.RecordFormContainerComponent], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i5.RecordChangesModule, typeof i6.BaseFormsModule, typeof i7.ButtonsModule, typeof i8.InputsModule, typeof i9.DialogsModule, typeof i10.AskSkipModule, typeof i11.IndicatorsModule, typeof i12.MemberJunctionSharedModule, typeof i13.MarkdownModule], [typeof i1.FormToolbarComponent, typeof i2.RecordFormContainerComponent]>;
|
|
17
18
|
static ɵinj: i0.ɵɵInjectorDeclaration<FormToolbarModule>;
|
|
18
19
|
}
|
|
19
20
|
//# sourceMappingURL=module.d.ts.map
|
package/dist/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAyBA,qBAuBa,iBAAiB;yCAAjB,iBAAiB;0CAAjB,iBAAiB;0CAAjB,iBAAiB;CAAI"}
|
package/dist/module.js
CHANGED
|
@@ -15,6 +15,7 @@ import { AskSkipModule } from '@memberjunction/ng-ask-skip';
|
|
|
15
15
|
import { MemberJunctionSharedModule } from '@memberjunction/ng-shared';
|
|
16
16
|
// Local to package
|
|
17
17
|
import { FormToolbarComponent } from './lib/form-toolbar';
|
|
18
|
+
import { RecordFormContainerComponent } from './lib/record-form-container.component';
|
|
18
19
|
import { BaseFormsModule } from '@memberjunction/ng-base-forms';
|
|
19
20
|
import * as i0 from "@angular/core";
|
|
20
21
|
import * as i1 from "ngx-markdown";
|
|
@@ -38,6 +39,7 @@ export class FormToolbarModule {
|
|
|
38
39
|
args: [{
|
|
39
40
|
declarations: [
|
|
40
41
|
FormToolbarComponent,
|
|
42
|
+
RecordFormContainerComponent
|
|
41
43
|
],
|
|
42
44
|
imports: [
|
|
43
45
|
CommonModule,
|
|
@@ -54,10 +56,12 @@ export class FormToolbarModule {
|
|
|
54
56
|
],
|
|
55
57
|
exports: [
|
|
56
58
|
FormToolbarComponent,
|
|
59
|
+
RecordFormContainerComponent
|
|
57
60
|
]
|
|
58
61
|
}]
|
|
59
62
|
}], null, null); })();
|
|
60
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(FormToolbarModule, { declarations: [FormToolbarComponent
|
|
63
|
+
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(FormToolbarModule, { declarations: [FormToolbarComponent,
|
|
64
|
+
RecordFormContainerComponent], imports: [CommonModule,
|
|
61
65
|
FormsModule,
|
|
62
66
|
RecordChangesModule,
|
|
63
67
|
BaseFormsModule,
|
|
@@ -66,5 +70,6 @@ export class FormToolbarModule {
|
|
|
66
70
|
DialogsModule,
|
|
67
71
|
AskSkipModule,
|
|
68
72
|
IndicatorsModule,
|
|
69
|
-
MemberJunctionSharedModule, i1.MarkdownModule], exports: [FormToolbarComponent
|
|
73
|
+
MemberJunctionSharedModule, i1.MarkdownModule], exports: [FormToolbarComponent,
|
|
74
|
+
RecordFormContainerComponent] }); })();
|
|
70
75
|
//# sourceMappingURL=module.js.map
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,2BAA2B;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,KAAK;AACL,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,mBAAmB;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;;;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,2BAA2B;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,KAAK;AACL,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,mBAAmB;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;;;AA0BhE,MAAM,OAAO,iBAAiB;2EAAjB,iBAAiB;4DAAjB,iBAAiB;gEAjB1B,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,aAAa;YACb,YAAY;YACZ,aAAa;YACb,aAAa;YACb,gBAAgB;YAChB,0BAA0B;YAC1B,cAAc,CAAC,OAAO,EAAE;;iFAOf,iBAAiB;cAvB7B,QAAQ;eAAC;gBACR,YAAY,EAAE;oBACZ,oBAAoB;oBACpB,4BAA4B;iBAC7B;gBACD,OAAO,EAAE;oBACP,YAAY;oBACZ,WAAW;oBACX,mBAAmB;oBACnB,eAAe;oBACf,aAAa;oBACb,YAAY;oBACZ,aAAa;oBACb,aAAa;oBACb,gBAAgB;oBAChB,0BAA0B;oBAC1B,cAAc,CAAC,OAAO,EAAE;iBACzB;gBACD,OAAO,EAAE;oBACP,oBAAoB;oBACpB,4BAA4B;iBAC7B;aACF;;wFACY,iBAAiB,mBArB1B,oBAAoB;QACpB,4BAA4B,aAG5B,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,eAAe;QACf,aAAa;QACb,YAAY;QACZ,aAAa;QACb,aAAa;QACb,gBAAgB;QAChB,0BAA0B,gCAI1B,oBAAoB;QACpB,4BAA4B"}
|
package/dist/public-api.d.ts
CHANGED
package/dist/public-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,uCAAuC,CAAC"}
|
package/dist/public-api.js
CHANGED
package/dist/public-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,uCAAuC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-form-toolbar",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.118.0",
|
|
4
4
|
"description": "MemberJunction: Angular Form Toolbar",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -25,13 +25,13 @@
|
|
|
25
25
|
"@angular/router": "18.0.2"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@memberjunction/global": "2.
|
|
29
|
-
"@memberjunction/core": "2.
|
|
30
|
-
"@memberjunction/ng-shared": "2.
|
|
31
|
-
"@memberjunction/ng-base-forms": "2.
|
|
32
|
-
"@memberjunction/ng-ask-skip": "2.
|
|
33
|
-
"@memberjunction/ng-record-changes": "2.
|
|
34
|
-
"@memberjunction/ng-container-directives": "2.
|
|
28
|
+
"@memberjunction/global": "2.118.0",
|
|
29
|
+
"@memberjunction/core": "2.118.0",
|
|
30
|
+
"@memberjunction/ng-shared": "2.118.0",
|
|
31
|
+
"@memberjunction/ng-base-forms": "2.118.0",
|
|
32
|
+
"@memberjunction/ng-ask-skip": "2.118.0",
|
|
33
|
+
"@memberjunction/ng-record-changes": "2.118.0",
|
|
34
|
+
"@memberjunction/ng-container-directives": "2.118.0",
|
|
35
35
|
"@progress/kendo-angular-buttons": "16.2.0",
|
|
36
36
|
"@progress/kendo-angular-dialog": "16.2.0",
|
|
37
37
|
"ngx-markdown": "^18.0.0",
|