@mj-biz-apps/orders-ng 5.9.0 → 5.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/lib/custom/PaymentHeader/payment-header-form.component.d.ts +2 -0
  2. package/dist/lib/custom/PaymentHeader/payment-header-form.component.d.ts.map +1 -1
  3. package/dist/lib/custom/PaymentHeader/payment-header-form.component.js +280 -237
  4. package/dist/lib/custom/PaymentHeader/payment-header-form.component.js.map +1 -1
  5. package/dist/lib/custom/Product/widgets/product-accounting-widget.component.js +9 -4
  6. package/dist/lib/custom/Product/widgets/product-accounting-widget.component.js.map +1 -1
  7. package/dist/lib/custom/Product/widgets/product-fulfillment-widget.component.d.ts +1 -1
  8. package/dist/lib/custom/Product/widgets/product-fulfillment-widget.component.js +8 -35
  9. package/dist/lib/custom/Product/widgets/product-fulfillment-widget.component.js.map +1 -1
  10. package/dist/lib/custom/Product/widgets/product-pricing-widget.component.d.ts +8 -0
  11. package/dist/lib/custom/Product/widgets/product-pricing-widget.component.d.ts.map +1 -1
  12. package/dist/lib/custom/Product/widgets/product-pricing-widget.component.js +31 -5
  13. package/dist/lib/custom/Product/widgets/product-pricing-widget.component.js.map +1 -1
  14. package/dist/lib/custom/Product/widgets/product-subscription-widget.component.d.ts +1 -1
  15. package/dist/lib/custom/Product/widgets/product-subscription-widget.component.js +8 -15
  16. package/dist/lib/custom/Product/widgets/product-subscription-widget.component.js.map +1 -1
  17. package/dist/lib/form-panels/product-widget.panels.d.ts.map +1 -1
  18. package/dist/lib/form-panels/product-widget.panels.js +157 -25
  19. package/dist/lib/form-panels/product-widget.panels.js.map +1 -1
  20. package/dist/lib/pages/catalog/pricing.page.d.ts.map +1 -1
  21. package/dist/lib/pages/catalog/pricing.page.js +22 -20
  22. package/dist/lib/pages/catalog/pricing.page.js.map +1 -1
  23. package/dist/lib/pages/catalog/products.page.d.ts +20 -3
  24. package/dist/lib/pages/catalog/products.page.d.ts.map +1 -1
  25. package/dist/lib/pages/catalog/products.page.js +39 -23
  26. package/dist/lib/pages/catalog/products.page.js.map +1 -1
  27. package/dist/lib/pages/orders/orders-dashboard.page.d.ts +12 -0
  28. package/dist/lib/pages/orders/orders-dashboard.page.d.ts.map +1 -1
  29. package/dist/lib/pages/orders/orders-dashboard.page.js +293 -69
  30. package/dist/lib/pages/orders/orders-dashboard.page.js.map +1 -1
  31. package/dist/lib/panels/party-orders-overview.component.d.ts.map +1 -1
  32. package/dist/lib/panels/party-orders-overview.component.js +11 -8
  33. package/dist/lib/panels/party-orders-overview.component.js.map +1 -1
  34. package/dist/lib/sections/orders-sections.component.d.ts.map +1 -1
  35. package/dist/lib/sections/orders-sections.component.js +6 -4
  36. package/dist/lib/sections/orders-sections.component.js.map +1 -1
  37. package/package.json +2 -2
@@ -100,7 +100,7 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
100
100
  i0.ɵɵadvance();
101
101
  i0.ɵɵconditional(ctx_r1.OpenOrders.length > 0 ? 4 : -1);
102
102
  } }
103
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_30_For_4_Template(rf, ctx) { if (rf & 1) {
103
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_32_For_4_Template(rf, ctx) { if (rf & 1) {
104
104
  i0.ɵɵelementStart(0, "option", 74);
105
105
  i0.ɵɵtext(1);
106
106
  i0.ɵɵelementEnd();
@@ -110,57 +110,66 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
110
110
  i0.ɵɵadvance();
111
111
  i0.ɵɵtextInterpolate(pt_r6.Name);
112
112
  } }
113
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_30_Template(rf, ctx) { if (rf & 1) {
113
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_32_Conditional_5_Template(rf, ctx) { if (rf & 1) {
114
+ i0.ɵɵelementStart(0, "div", 75);
115
+ i0.ɵɵtext(1, "Required before Capture & Book.");
116
+ i0.ɵɵelementEnd();
117
+ } }
118
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_32_Template(rf, ctx) { if (rf & 1) {
114
119
  const _r5 = i0.ɵɵgetCurrentView();
115
120
  i0.ɵɵelementStart(0, "select", 72);
116
- i0.ɵɵlistener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_30_Template_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPaymentTypeSelected($event)); });
121
+ i0.ɵɵlistener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_32_Template_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPaymentTypeSelected($event)); });
117
122
  i0.ɵɵelementStart(1, "option", 73);
118
123
  i0.ɵɵtext(2, "Select payment type\u2026");
119
124
  i0.ɵɵelementEnd();
120
- i0.ɵɵrepeaterCreate(3, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_30_For_4_Template, 2, 2, "option", 74, _forTrack0);
125
+ i0.ɵɵrepeaterCreate(3, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_32_For_4_Template, 2, 2, "option", 74, _forTrack0);
121
126
  i0.ɵɵelementEnd();
127
+ i0.ɵɵconditionalCreate(5, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_32_Conditional_5_Template, 2, 0, "div", 75);
122
128
  } if (rf & 2) {
123
129
  const ctx_r1 = i0.ɵɵnextContext(3);
130
+ i0.ɵɵclassProp("mjo-input--invalid", ctx_r1.PaymentTypeMissing);
124
131
  i0.ɵɵproperty("ngModel", ctx_r1.record.PaymentTypeID);
125
132
  i0.ɵɵadvance();
126
133
  i0.ɵɵproperty("ngValue", null);
127
134
  i0.ɵɵadvance(2);
128
135
  i0.ɵɵrepeater(ctx_r1.PaymentTypes);
136
+ i0.ɵɵadvance(2);
137
+ i0.ɵɵconditional(ctx_r1.PaymentTypeMissing ? 5 : -1);
129
138
  } }
130
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_31_Template(rf, ctx) { if (rf & 1) {
139
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_33_Template(rf, ctx) { if (rf & 1) {
131
140
  const _r7 = i0.ɵɵgetCurrentView();
132
- i0.ɵɵelementStart(0, "mj-form-field", 75);
133
- i0.ɵɵlistener("Navigate", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_31_Template_mj_form_field_Navigate_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
141
+ i0.ɵɵelementStart(0, "mj-form-field", 76);
142
+ i0.ɵɵlistener("Navigate", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_33_Template_mj_form_field_Navigate_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
134
143
  i0.ɵɵelementEnd();
135
144
  } if (rf & 2) {
136
145
  const ctx_r1 = i0.ɵɵnextContext(3);
137
146
  i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", false)("EditMode", ctx_r1.ComposeMode)("FormContext", ctx_r1.formContext);
138
147
  } }
139
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_32_Template(rf, ctx) { if (rf & 1) {
148
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_34_Template(rf, ctx) { if (rf & 1) {
140
149
  const _r8 = i0.ɵɵgetCurrentView();
141
- i0.ɵɵelementStart(0, "div", 46)(1, "div", 76);
142
- i0.ɵɵelement(2, "i", 77);
150
+ i0.ɵɵelementStart(0, "div", 46)(1, "div", 77);
151
+ i0.ɵɵelement(2, "i", 78);
143
152
  i0.ɵɵtext(3, " Check details ");
144
153
  i0.ɵɵelementEnd();
145
- i0.ɵɵelementStart(4, "div", 78)(5, "div", 38)(6, "label", 39);
154
+ i0.ɵɵelementStart(4, "div", 79)(5, "div", 38)(6, "label", 39);
146
155
  i0.ɵɵtext(7, "Check \u2116 ");
147
- i0.ɵɵelementStart(8, "span", 79);
156
+ i0.ɵɵelementStart(8, "span", 80);
148
157
  i0.ɵɵtext(9, "*");
149
158
  i0.ɵɵelementEnd()();
150
- i0.ɵɵelementStart(10, "input", 80);
151
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_32_Template_input_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.ReferenceNumber, $event) || (ctx_r1.ReferenceNumber = $event); return i0.ɵɵresetView($event); });
159
+ i0.ɵɵelementStart(10, "input", 81);
160
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_34_Template_input_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.ReferenceNumber, $event) || (ctx_r1.ReferenceNumber = $event); return i0.ɵɵresetView($event); });
152
161
  i0.ɵɵelementEnd()();
153
162
  i0.ɵɵelementStart(11, "div", 38)(12, "label", 39);
154
163
  i0.ɵɵtext(13, "Check Date");
155
164
  i0.ɵɵelementEnd();
156
- i0.ɵɵelementStart(14, "input", 81);
157
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_32_Template_input_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.InstrumentDateInput, $event) || (ctx_r1.InstrumentDateInput = $event); return i0.ɵɵresetView($event); });
165
+ i0.ɵɵelementStart(14, "input", 82);
166
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_34_Template_input_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.InstrumentDateInput, $event) || (ctx_r1.InstrumentDateInput = $event); return i0.ɵɵresetView($event); });
158
167
  i0.ɵɵelementEnd()();
159
- i0.ɵɵelementStart(15, "div", 82)(16, "label", 39);
168
+ i0.ɵɵelementStart(15, "div", 83)(16, "label", 39);
160
169
  i0.ɵɵtext(17, "Bank Name");
161
170
  i0.ɵɵelementEnd();
162
- i0.ɵɵelementStart(18, "input", 83);
163
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_32_Template_input_ngModelChange_18_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.BankName, $event) || (ctx_r1.BankName = $event); return i0.ɵɵresetView($event); });
171
+ i0.ɵɵelementStart(18, "input", 84);
172
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_34_Template_input_ngModelChange_18_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.BankName, $event) || (ctx_r1.BankName = $event); return i0.ɵɵresetView($event); });
164
173
  i0.ɵɵelementEnd()()()();
165
174
  } if (rf & 2) {
166
175
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -174,61 +183,61 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
174
183
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.BankName);
175
184
  i0.ɵɵproperty("disabled", !ctx_r1.ComposeMode);
176
185
  } }
177
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_33_Template(rf, ctx) { if (rf & 1) {
186
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_35_Template(rf, ctx) { if (rf & 1) {
178
187
  const _r9 = i0.ɵɵgetCurrentView();
179
- i0.ɵɵelementStart(0, "div", 46)(1, "div", 76);
180
- i0.ɵɵelement(2, "i", 84);
188
+ i0.ɵɵelementStart(0, "div", 46)(1, "div", 77);
189
+ i0.ɵɵelement(2, "i", 85);
181
190
  i0.ɵɵtext(3, " Card instrument details ");
182
191
  i0.ɵɵelementEnd();
183
- i0.ɵɵelementStart(4, "div", 78)(5, "div", 38)(6, "label", 39);
192
+ i0.ɵɵelementStart(4, "div", 79)(5, "div", 38)(6, "label", 39);
184
193
  i0.ɵɵtext(7, "Card Brand");
185
194
  i0.ɵɵelementEnd();
186
- i0.ɵɵelementStart(8, "select", 85);
187
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_33_Template_select_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.CardBrand, $event) || (ctx_r1.CardBrand = $event); return i0.ɵɵresetView($event); });
188
- i0.ɵɵelementStart(9, "option", 86);
195
+ i0.ɵɵelementStart(8, "select", 86);
196
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_35_Template_select_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.CardBrand, $event) || (ctx_r1.CardBrand = $event); return i0.ɵɵresetView($event); });
197
+ i0.ɵɵelementStart(9, "option", 87);
189
198
  i0.ɵɵtext(10, "Select Brand");
190
199
  i0.ɵɵelementEnd();
191
- i0.ɵɵelementStart(11, "option", 87);
200
+ i0.ɵɵelementStart(11, "option", 88);
192
201
  i0.ɵɵtext(12, "Visa");
193
202
  i0.ɵɵelementEnd();
194
- i0.ɵɵelementStart(13, "option", 88);
203
+ i0.ɵɵelementStart(13, "option", 89);
195
204
  i0.ɵɵtext(14, "MasterCard");
196
205
  i0.ɵɵelementEnd();
197
- i0.ɵɵelementStart(15, "option", 89);
206
+ i0.ɵɵelementStart(15, "option", 90);
198
207
  i0.ɵɵtext(16, "American Express");
199
208
  i0.ɵɵelementEnd();
200
- i0.ɵɵelementStart(17, "option", 90);
209
+ i0.ɵɵelementStart(17, "option", 91);
201
210
  i0.ɵɵtext(18, "Discover");
202
211
  i0.ɵɵelementEnd();
203
- i0.ɵɵelementStart(19, "option", 91);
212
+ i0.ɵɵelementStart(19, "option", 92);
204
213
  i0.ɵɵtext(20, "Other");
205
214
  i0.ɵɵelementEnd()()();
206
215
  i0.ɵɵelementStart(21, "div", 38)(22, "label", 39);
207
216
  i0.ɵɵtext(23, "Last 4 Digits");
208
217
  i0.ɵɵelementEnd();
209
- i0.ɵɵelementStart(24, "input", 92);
210
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_33_Template_input_ngModelChange_24_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.CardLast4, $event) || (ctx_r1.CardLast4 = $event); return i0.ɵɵresetView($event); });
218
+ i0.ɵɵelementStart(24, "input", 93);
219
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_35_Template_input_ngModelChange_24_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.CardLast4, $event) || (ctx_r1.CardLast4 = $event); return i0.ɵɵresetView($event); });
211
220
  i0.ɵɵelementEnd()();
212
221
  i0.ɵɵelementStart(25, "div", 38)(26, "label", 39);
213
222
  i0.ɵɵtext(27, "Expiry (MM / YYYY)");
214
223
  i0.ɵɵelementEnd();
215
- i0.ɵɵelementStart(28, "div", 93)(29, "input", 94);
216
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_33_Template_input_ngModelChange_29_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.CardExpMonth, $event) || (ctx_r1.CardExpMonth = $event); return i0.ɵɵresetView($event); });
224
+ i0.ɵɵelementStart(28, "div", 94)(29, "input", 95);
225
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_35_Template_input_ngModelChange_29_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.CardExpMonth, $event) || (ctx_r1.CardExpMonth = $event); return i0.ɵɵresetView($event); });
217
226
  i0.ɵɵelementEnd();
218
- i0.ɵɵelementStart(30, "input", 95);
219
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_33_Template_input_ngModelChange_30_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.CardExpYear, $event) || (ctx_r1.CardExpYear = $event); return i0.ɵɵresetView($event); });
227
+ i0.ɵɵelementStart(30, "input", 96);
228
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_35_Template_input_ngModelChange_30_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.CardExpYear, $event) || (ctx_r1.CardExpYear = $event); return i0.ɵɵresetView($event); });
220
229
  i0.ɵɵelementEnd()()();
221
230
  i0.ɵɵelementStart(31, "div", 38)(32, "label", 39);
222
231
  i0.ɵɵtext(33, "Cardholder Name");
223
232
  i0.ɵɵelementEnd();
224
- i0.ɵɵelementStart(34, "input", 96);
225
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_33_Template_input_ngModelChange_34_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.CardHolderName, $event) || (ctx_r1.CardHolderName = $event); return i0.ɵɵresetView($event); });
233
+ i0.ɵɵelementStart(34, "input", 97);
234
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_35_Template_input_ngModelChange_34_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.CardHolderName, $event) || (ctx_r1.CardHolderName = $event); return i0.ɵɵresetView($event); });
226
235
  i0.ɵɵelementEnd()();
227
- i0.ɵɵelementStart(35, "div", 82)(36, "label", 39);
236
+ i0.ɵɵelementStart(35, "div", 83)(36, "label", 39);
228
237
  i0.ɵɵtext(37, "Auth / Approval \u2116");
229
238
  i0.ɵɵelementEnd();
230
- i0.ɵɵelementStart(38, "input", 97);
231
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_33_Template_input_ngModelChange_38_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.ReferenceNumber, $event) || (ctx_r1.ReferenceNumber = $event); return i0.ɵɵresetView($event); });
239
+ i0.ɵɵelementStart(38, "input", 98);
240
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_35_Template_input_ngModelChange_38_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.ReferenceNumber, $event) || (ctx_r1.ReferenceNumber = $event); return i0.ɵɵresetView($event); });
232
241
  i0.ɵɵelementEnd()()()();
233
242
  } if (rf & 2) {
234
243
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -251,49 +260,49 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
251
260
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.ReferenceNumber);
252
261
  i0.ɵɵproperty("disabled", !ctx_r1.ComposeMode);
253
262
  } }
254
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_34_Template(rf, ctx) { if (rf & 1) {
263
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_36_Template(rf, ctx) { if (rf & 1) {
255
264
  const _r10 = i0.ɵɵgetCurrentView();
256
- i0.ɵɵelementStart(0, "div", 46)(1, "div", 76);
257
- i0.ɵɵelement(2, "i", 98);
265
+ i0.ɵɵelementStart(0, "div", 46)(1, "div", 77);
266
+ i0.ɵɵelement(2, "i", 99);
258
267
  i0.ɵɵtext(3, " Bank transfer / ACH details ");
259
268
  i0.ɵɵelementEnd();
260
- i0.ɵɵelementStart(4, "div", 78)(5, "div", 38)(6, "label", 39);
269
+ i0.ɵɵelementStart(4, "div", 79)(5, "div", 38)(6, "label", 39);
261
270
  i0.ɵɵtext(7, "Bank Name");
262
271
  i0.ɵɵelementEnd();
263
- i0.ɵɵelementStart(8, "input", 99);
264
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_34_Template_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.BankName, $event) || (ctx_r1.BankName = $event); return i0.ɵɵresetView($event); });
272
+ i0.ɵɵelementStart(8, "input", 100);
273
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_36_Template_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.BankName, $event) || (ctx_r1.BankName = $event); return i0.ɵɵresetView($event); });
265
274
  i0.ɵɵelementEnd()();
266
275
  i0.ɵɵelementStart(9, "div", 38)(10, "label", 39);
267
276
  i0.ɵɵtext(11, "Account Type");
268
277
  i0.ɵɵelementEnd();
269
- i0.ɵɵelementStart(12, "select", 85);
270
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_34_Template_select_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.BankAccountType, $event) || (ctx_r1.BankAccountType = $event); return i0.ɵɵresetView($event); });
278
+ i0.ɵɵelementStart(12, "select", 86);
279
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_36_Template_select_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.BankAccountType, $event) || (ctx_r1.BankAccountType = $event); return i0.ɵɵresetView($event); });
271
280
  i0.ɵɵelementStart(13, "option", 73);
272
281
  i0.ɵɵtext(14, "Select Type");
273
282
  i0.ɵɵelementEnd();
274
- i0.ɵɵelementStart(15, "option", 100);
283
+ i0.ɵɵelementStart(15, "option", 101);
275
284
  i0.ɵɵtext(16, "Checking");
276
285
  i0.ɵɵelementEnd();
277
- i0.ɵɵelementStart(17, "option", 101);
286
+ i0.ɵɵelementStart(17, "option", 102);
278
287
  i0.ɵɵtext(18, "Savings");
279
288
  i0.ɵɵelementEnd()()();
280
289
  i0.ɵɵelementStart(19, "div", 38)(20, "label", 39);
281
290
  i0.ɵɵtext(21, "Routing Last 4");
282
291
  i0.ɵɵelementEnd();
283
- i0.ɵɵelementStart(22, "input", 102);
284
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_34_Template_input_ngModelChange_22_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.RoutingLast4, $event) || (ctx_r1.RoutingLast4 = $event); return i0.ɵɵresetView($event); });
292
+ i0.ɵɵelementStart(22, "input", 103);
293
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_36_Template_input_ngModelChange_22_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.RoutingLast4, $event) || (ctx_r1.RoutingLast4 = $event); return i0.ɵɵresetView($event); });
285
294
  i0.ɵɵelementEnd()();
286
295
  i0.ɵɵelementStart(23, "div", 38)(24, "label", 39);
287
296
  i0.ɵɵtext(25, "Account Last 4");
288
297
  i0.ɵɵelementEnd();
289
- i0.ɵɵelementStart(26, "input", 103);
290
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_34_Template_input_ngModelChange_26_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.AccountLast4, $event) || (ctx_r1.AccountLast4 = $event); return i0.ɵɵresetView($event); });
298
+ i0.ɵɵelementStart(26, "input", 104);
299
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_36_Template_input_ngModelChange_26_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.AccountLast4, $event) || (ctx_r1.AccountLast4 = $event); return i0.ɵɵresetView($event); });
291
300
  i0.ɵɵelementEnd()();
292
- i0.ɵɵelementStart(27, "div", 82)(28, "label", 39);
301
+ i0.ɵɵelementStart(27, "div", 83)(28, "label", 39);
293
302
  i0.ɵɵtext(29, "Trace / Reference \u2116");
294
303
  i0.ɵɵelementEnd();
295
- i0.ɵɵelementStart(30, "input", 104);
296
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_34_Template_input_ngModelChange_30_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.ReferenceNumber, $event) || (ctx_r1.ReferenceNumber = $event); return i0.ɵɵresetView($event); });
304
+ i0.ɵɵelementStart(30, "input", 105);
305
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_36_Template_input_ngModelChange_30_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.ReferenceNumber, $event) || (ctx_r1.ReferenceNumber = $event); return i0.ɵɵresetView($event); });
297
306
  i0.ɵɵelementEnd()()()();
298
307
  } if (rf & 2) {
299
308
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -315,19 +324,19 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
315
324
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.ReferenceNumber);
316
325
  i0.ɵɵproperty("disabled", !ctx_r1.ComposeMode);
317
326
  } }
318
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_35_Template(rf, ctx) { if (rf & 1) {
327
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_37_Template(rf, ctx) { if (rf & 1) {
319
328
  const _r11 = i0.ɵɵgetCurrentView();
320
- i0.ɵɵelementStart(0, "div", 46)(1, "div", 76);
329
+ i0.ɵɵelementStart(0, "div", 46)(1, "div", 77);
321
330
  i0.ɵɵelement(2, "i", 65);
322
331
  i0.ɵɵtext(3, " Reference details ");
323
332
  i0.ɵɵelementEnd();
324
333
  i0.ɵɵelementStart(4, "div", 38)(5, "label", 39);
325
334
  i0.ɵɵtext(6, "Reference / Wire Confirmation \u2116 ");
326
- i0.ɵɵelementStart(7, "span", 79);
335
+ i0.ɵɵelementStart(7, "span", 80);
327
336
  i0.ɵɵtext(8, "*");
328
337
  i0.ɵɵelementEnd()();
329
- i0.ɵɵelementStart(9, "input", 105);
330
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_35_Template_input_ngModelChange_9_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.ReferenceNumber, $event) || (ctx_r1.ReferenceNumber = $event); return i0.ɵɵresetView($event); });
338
+ i0.ɵɵelementStart(9, "input", 106);
339
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_37_Template_input_ngModelChange_9_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.ReferenceNumber, $event) || (ctx_r1.ReferenceNumber = $event); return i0.ɵɵresetView($event); });
331
340
  i0.ɵɵelementEnd()()();
332
341
  } if (rf & 2) {
333
342
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -335,14 +344,14 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
335
344
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.ReferenceNumber);
336
345
  i0.ɵɵproperty("disabled", !ctx_r1.ComposeMode);
337
346
  } }
338
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_66_Template(rf, ctx) { if (rf & 1) {
347
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_68_Template(rf, ctx) { if (rf & 1) {
339
348
  i0.ɵɵelement(0, "i", 71);
340
349
  i0.ɵɵelementStart(1, "span");
341
350
  i0.ɵɵtext(2, "Allocations tie 100% to payment received. Ready to capture and book.");
342
351
  i0.ɵɵelementEnd();
343
352
  } }
344
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_67_Template(rf, ctx) { if (rf & 1) {
345
- i0.ɵɵelement(0, "i", 106);
353
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_69_Template(rf, ctx) { if (rf & 1) {
354
+ i0.ɵɵelement(0, "i", 107);
346
355
  i0.ɵɵelementStart(1, "span");
347
356
  i0.ɵɵtext(2);
348
357
  i0.ɵɵelementEnd();
@@ -351,8 +360,8 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
351
360
  i0.ɵɵadvance(2);
352
361
  i0.ɵɵtextInterpolate1("$", ctx_r1.UnallocatedRemainder.toFixed(2), " remaining to allocate before capturing.");
353
362
  } }
354
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_68_Template(rf, ctx) { if (rf & 1) {
355
- i0.ɵɵelement(0, "i", 107);
363
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_70_Template(rf, ctx) { if (rf & 1) {
364
+ i0.ɵɵelement(0, "i", 108);
356
365
  i0.ɵɵelementStart(1, "span");
357
366
  i0.ɵɵtext(2);
358
367
  i0.ɵɵelementEnd();
@@ -361,7 +370,7 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
361
370
  i0.ɵɵadvance(2);
362
371
  i0.ɵɵtextInterpolate1("Over-allocated by $", ctx_r1.Math.abs(ctx_r1.UnallocatedRemainder).toFixed(2), ". Please adjust amounts.");
363
372
  } }
364
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_74_Template(rf, ctx) { if (rf & 1) {
373
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_76_Template(rf, ctx) { if (rf & 1) {
365
374
  i0.ɵɵelementStart(0, "span", 66);
366
375
  i0.ɵɵtext(1);
367
376
  i0.ɵɵelementEnd();
@@ -370,21 +379,21 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
370
379
  i0.ɵɵadvance();
371
380
  i0.ɵɵtextInterpolate1("", ctx_r1.FilteredOpenOrders.length, " available");
372
381
  } }
373
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_75_Template(rf, ctx) { if (rf & 1) {
382
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_77_Template(rf, ctx) { if (rf & 1) {
374
383
  const _r12 = i0.ɵɵgetCurrentView();
375
- i0.ɵɵelementStart(0, "div", 67)(1, "div", 108);
376
- i0.ɵɵelement(2, "i", 109);
377
- i0.ɵɵelementStart(3, "input", 110);
378
- i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_75_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.SearchQuery, $event) || (ctx_r1.SearchQuery = $event); return i0.ɵɵresetView($event); });
384
+ i0.ɵɵelementStart(0, "div", 67)(1, "div", 109);
385
+ i0.ɵɵelement(2, "i", 110);
386
+ i0.ɵɵelementStart(3, "input", 111);
387
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_77_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.SearchQuery, $event) || (ctx_r1.SearchQuery = $event); return i0.ɵɵresetView($event); });
379
388
  i0.ɵɵelementEnd()();
380
- i0.ɵɵelementStart(4, "button", 111);
381
- i0.ɵɵlistener("click", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_75_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.AutoApplyOldestFirst()); });
382
- i0.ɵɵelement(5, "i", 112);
389
+ i0.ɵɵelementStart(4, "button", 112);
390
+ i0.ɵɵlistener("click", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_77_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.AutoApplyOldestFirst()); });
391
+ i0.ɵɵelement(5, "i", 113);
383
392
  i0.ɵɵtext(6, " Auto-apply oldest ");
384
393
  i0.ɵɵelementEnd();
385
- i0.ɵɵelementStart(7, "button", 113);
386
- i0.ɵɵlistener("click", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_75_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.ClearAllocations()); });
387
- i0.ɵɵelement(8, "i", 114);
394
+ i0.ɵɵelementStart(7, "button", 114);
395
+ i0.ɵɵlistener("click", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_77_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.ClearAllocations()); });
396
+ i0.ɵɵelement(8, "i", 115);
388
397
  i0.ɵɵtext(9, " Clear all ");
389
398
  i0.ɵɵelementEnd()();
390
399
  } if (rf & 2) {
@@ -392,16 +401,16 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
392
401
  i0.ɵɵadvance(3);
393
402
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.SearchQuery);
394
403
  } }
395
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_77_Template(rf, ctx) { if (rf & 1) {
404
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_Template(rf, ctx) { if (rf & 1) {
396
405
  i0.ɵɵelementStart(0, "div", 69);
397
- i0.ɵɵelement(1, "i", 115);
406
+ i0.ɵɵelement(1, "i", 116);
398
407
  i0.ɵɵelementStart(2, "p");
399
408
  i0.ɵɵtext(3, "Loading open orders\u2026");
400
409
  i0.ɵɵelementEnd()();
401
410
  } }
402
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_78_Template(rf, ctx) { if (rf & 1) {
411
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_80_Template(rf, ctx) { if (rf & 1) {
403
412
  i0.ɵɵelementStart(0, "div", 69);
404
- i0.ɵɵelement(1, "i", 116);
413
+ i0.ɵɵelement(1, "i", 117);
405
414
  i0.ɵɵelementStart(2, "h3");
406
415
  i0.ɵɵtext(3, "No unpaid orders found");
407
416
  i0.ɵɵelementEnd();
@@ -409,13 +418,13 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
409
418
  i0.ɵɵtext(5, "There are zero open unpaid orders. Any recorded payment will be retained as unallocated credit.");
410
419
  i0.ɵɵelementEnd()();
411
420
  } }
412
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_Conditional_5_Template(rf, ctx) { if (rf & 1) {
421
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_Conditional_5_Template(rf, ctx) { if (rf & 1) {
413
422
  i0.ɵɵelementStart(0, "th");
414
423
  i0.ɵɵtext(1, "Customer");
415
424
  i0.ɵɵelementEnd();
416
425
  } }
417
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_4_Template(rf, ctx) { if (rf & 1) {
418
- i0.ɵɵelementStart(0, "td", 125);
426
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_4_Template(rf, ctx) { if (rf & 1) {
427
+ i0.ɵɵelementStart(0, "td", 126);
419
428
  i0.ɵɵtext(1);
420
429
  i0.ɵɵelementEnd();
421
430
  } if (rf & 2) {
@@ -423,8 +432,8 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
423
432
  i0.ɵɵadvance();
424
433
  i0.ɵɵtextInterpolate(order_r14.BillToOrganization || order_r14.BillToPerson || "\u2014");
425
434
  } }
426
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_9_Template(rf, ctx) { if (rf & 1) {
427
- i0.ɵɵelementStart(0, "div", 127);
435
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_9_Template(rf, ctx) { if (rf & 1) {
436
+ i0.ɵɵelementStart(0, "div", 128);
428
437
  i0.ɵɵtext(1);
429
438
  i0.ɵɵelementEnd();
430
439
  } if (rf & 2) {
@@ -432,8 +441,8 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
432
441
  i0.ɵɵadvance();
433
442
  i0.ɵɵtextInterpolate(order_r14.Description);
434
443
  } }
435
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_13_Template(rf, ctx) { if (rf & 1) {
436
- i0.ɵɵelementStart(0, "span", 128);
444
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_13_Template(rf, ctx) { if (rf & 1) {
445
+ i0.ɵɵelementStart(0, "span", 129);
437
446
  i0.ɵɵtext(1);
438
447
  i0.ɵɵelementEnd();
439
448
  } if (rf & 2) {
@@ -442,7 +451,7 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
442
451
  i0.ɵɵadvance();
443
452
  i0.ɵɵtextInterpolate1("", ctx_r1.GetOrderDaysOverdue(order_r14), "d overdue");
444
453
  } }
445
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_14_Template(rf, ctx) { if (rf & 1) {
454
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_14_Template(rf, ctx) { if (rf & 1) {
446
455
  i0.ɵɵelementStart(0, "span");
447
456
  i0.ɵɵtext(1);
448
457
  i0.ɵɵelementEnd();
@@ -452,30 +461,30 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
452
461
  i0.ɵɵadvance();
453
462
  i0.ɵɵtextInterpolate(ctx_r1.FormatOrderDueDate(order_r14));
454
463
  } }
455
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_27_Template(rf, ctx) { if (rf & 1) {
456
- i0.ɵɵelementStart(0, "div", 135);
457
- i0.ɵɵelement(1, "i", 138);
464
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_27_Template(rf, ctx) { if (rf & 1) {
465
+ i0.ɵɵelementStart(0, "div", 136);
466
+ i0.ɵɵelement(1, "i", 139);
458
467
  i0.ɵɵtext(2, " Lines allocated ");
459
468
  i0.ɵɵelementEnd();
460
469
  } }
461
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_31_Template(rf, ctx) { if (rf & 1) {
470
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_31_Template(rf, ctx) { if (rf & 1) {
462
471
  const _r15 = i0.ɵɵgetCurrentView();
463
- i0.ɵɵelementStart(0, "button", 139);
464
- i0.ɵɵlistener("click", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_31_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r15); const order_r14 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.FullPayOrder(order_r14)); });
472
+ i0.ɵɵelementStart(0, "button", 140);
473
+ i0.ɵɵlistener("click", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_31_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r15); const order_r14 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.FullPayOrder(order_r14)); });
465
474
  i0.ɵɵtext(1, " Pay in Full ");
466
475
  i0.ɵɵelementEnd();
467
476
  } if (rf & 2) {
468
477
  const order_r14 = i0.ɵɵnextContext().$implicit;
469
478
  i0.ɵɵproperty("disabled", (order_r14.Balance ?? order_r14.TotalGross ?? 0) <= 0);
470
479
  } }
471
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_32_For_23_Conditional_16_Template(rf, ctx) { if (rf & 1) {
480
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_32_For_23_Conditional_16_Template(rf, ctx) { if (rf & 1) {
472
481
  const _r18 = i0.ɵɵgetCurrentView();
473
- i0.ɵɵelementStart(0, "button", 147);
474
- i0.ɵɵlistener("click", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_32_For_23_Conditional_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const line_r17 = i0.ɵɵnextContext().$implicit; const order_r14 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.FullPayLine(order_r14, line_r17)); });
482
+ i0.ɵɵelementStart(0, "button", 148);
483
+ i0.ɵɵlistener("click", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_32_For_23_Conditional_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const line_r17 = i0.ɵɵnextContext().$implicit; const order_r14 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.FullPayLine(order_r14, line_r17)); });
475
484
  i0.ɵɵtext(1, " Line Pay ");
476
485
  i0.ɵɵelementEnd();
477
486
  } }
478
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_32_For_23_Template(rf, ctx) { if (rf & 1) {
487
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_32_For_23_Template(rf, ctx) { if (rf & 1) {
479
488
  const _r16 = i0.ɵɵgetCurrentView();
480
489
  i0.ɵɵelementStart(0, "tr")(1, "td");
481
490
  i0.ɵɵtext(2);
@@ -483,20 +492,20 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
483
492
  i0.ɵɵelementStart(3, "td")(4, "strong");
484
493
  i0.ɵɵtext(5);
485
494
  i0.ɵɵelementEnd()();
486
- i0.ɵɵelementStart(6, "td", 130);
495
+ i0.ɵɵelementStart(6, "td", 131);
487
496
  i0.ɵɵtext(7);
488
497
  i0.ɵɵelementEnd();
489
- i0.ɵɵelementStart(8, "td", 130);
498
+ i0.ɵɵelementStart(8, "td", 131);
490
499
  i0.ɵɵtext(9);
491
500
  i0.ɵɵelementEnd();
492
- i0.ɵɵelementStart(10, "td", 119)(11, "div", 132)(12, "span", 133);
501
+ i0.ɵɵelementStart(10, "td", 120)(11, "div", 133)(12, "span", 134);
493
502
  i0.ɵɵtext(13, "$");
494
503
  i0.ɵɵelementEnd();
495
- i0.ɵɵelementStart(14, "input", 145);
496
- i0.ɵɵlistener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_32_For_23_Template_input_ngModelChange_14_listener($event) { const line_r17 = i0.ɵɵrestoreView(_r16).$implicit; const order_r14 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.SetLineAllocation(line_r17.ID || "", $event, order_r14.ID)); });
504
+ i0.ɵɵelementStart(14, "input", 146);
505
+ i0.ɵɵlistener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_32_For_23_Template_input_ngModelChange_14_listener($event) { const line_r17 = i0.ɵɵrestoreView(_r16).$implicit; const order_r14 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.SetLineAllocation(line_r17.ID || "", $event, order_r14.ID)); });
497
506
  i0.ɵɵelementEnd()()();
498
- i0.ɵɵelementStart(15, "td", 119);
499
- i0.ɵɵconditionalCreate(16, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_32_For_23_Conditional_16_Template, 2, 0, "button", 146);
507
+ i0.ɵɵelementStart(15, "td", 120);
508
+ i0.ɵɵconditionalCreate(16, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_32_For_23_Conditional_16_Template, 2, 0, "button", 147);
500
509
  i0.ɵɵelementEnd()();
501
510
  } if (rf & 2) {
502
511
  const line_r17 = ctx.$implicit;
@@ -514,31 +523,31 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
514
523
  i0.ɵɵadvance(2);
515
524
  i0.ɵɵconditional(!ctx_r1.IsCaptured ? 16 : -1);
516
525
  } }
517
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_32_Template(rf, ctx) { if (rf & 1) {
518
- i0.ɵɵelementStart(0, "tr", 137)(1, "td", 140)(2, "div", 141)(3, "div", 142);
519
- i0.ɵɵelement(4, "i", 138);
526
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_32_Template(rf, ctx) { if (rf & 1) {
527
+ i0.ɵɵelementStart(0, "tr", 138)(1, "td", 141)(2, "div", 142)(3, "div", 143);
528
+ i0.ɵɵelement(4, "i", 139);
520
529
  i0.ɵɵelementStart(5, "span");
521
530
  i0.ɵɵtext(6, "Order Line Items (Targeted Line Allocations)");
522
531
  i0.ɵɵelementEnd()();
523
- i0.ɵɵelementStart(7, "table", 143)(8, "thead")(9, "tr")(10, "th");
532
+ i0.ɵɵelementStart(7, "table", 144)(8, "thead")(9, "tr")(10, "th");
524
533
  i0.ɵɵtext(11, "#");
525
534
  i0.ɵɵelementEnd();
526
535
  i0.ɵɵelementStart(12, "th");
527
536
  i0.ɵɵtext(13, "Product");
528
537
  i0.ɵɵelementEnd();
529
- i0.ɵɵelementStart(14, "th", 119);
538
+ i0.ɵɵelementStart(14, "th", 120);
530
539
  i0.ɵɵtext(15, "Unit Price");
531
540
  i0.ɵɵelementEnd();
532
- i0.ɵɵelementStart(16, "th", 119);
541
+ i0.ɵɵelementStart(16, "th", 120);
533
542
  i0.ɵɵtext(17, "Gross");
534
543
  i0.ɵɵelementEnd();
535
- i0.ɵɵelementStart(18, "th", 120);
544
+ i0.ɵɵelementStart(18, "th", 121);
536
545
  i0.ɵɵtext(19, "Line Allocation");
537
546
  i0.ɵɵelementEnd();
538
- i0.ɵɵelement(20, "th", 144);
547
+ i0.ɵɵelement(20, "th", 145);
539
548
  i0.ɵɵelementEnd()();
540
549
  i0.ɵɵelementStart(21, "tbody");
541
- i0.ɵɵrepeaterCreate(22, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_32_For_23_Template, 17, 7, "tr", null, _forTrack0);
550
+ i0.ɵɵrepeaterCreate(22, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_32_For_23_Template, 17, 7, "tr", null, _forTrack0);
542
551
  i0.ɵɵelementEnd()()()()();
543
552
  } if (rf & 2) {
544
553
  const order_r14 = i0.ɵɵnextContext().$implicit;
@@ -548,50 +557,50 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
548
557
  i0.ɵɵadvance(21);
549
558
  i0.ɵɵrepeater(ctx_r1.GetOrderLines(order_r14.ID || ""));
550
559
  } }
551
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Template(rf, ctx) { if (rf & 1) {
560
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Template(rf, ctx) { if (rf & 1) {
552
561
  const _r13 = i0.ɵɵgetCurrentView();
553
- i0.ɵɵelementStart(0, "tr", 122)(1, "td")(2, "button", 123);
554
- i0.ɵɵlistener("click", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Template_button_click_2_listener() { const order_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.ToggleOrderExpanded(order_r14.ID || "")); });
555
- i0.ɵɵelement(3, "i", 124);
562
+ i0.ɵɵelementStart(0, "tr", 123)(1, "td")(2, "button", 124);
563
+ i0.ɵɵlistener("click", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Template_button_click_2_listener() { const order_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.ToggleOrderExpanded(order_r14.ID || "")); });
564
+ i0.ɵɵelement(3, "i", 125);
556
565
  i0.ɵɵelementEnd()();
557
- i0.ɵɵconditionalCreate(4, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_4_Template, 2, 1, "td", 125);
558
- i0.ɵɵelementStart(5, "td")(6, "button", 126);
559
- i0.ɵɵlistener("click", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Template_button_click_6_listener($event) { const order_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OpenOrderRecord(order_r14, $event)); });
566
+ i0.ɵɵconditionalCreate(4, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_4_Template, 2, 1, "td", 126);
567
+ i0.ɵɵelementStart(5, "td")(6, "button", 127);
568
+ i0.ɵɵlistener("click", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Template_button_click_6_listener($event) { const order_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OpenOrderRecord(order_r14, $event)); });
560
569
  i0.ɵɵelementStart(7, "strong");
561
570
  i0.ɵɵtext(8);
562
571
  i0.ɵɵelementEnd()();
563
- i0.ɵɵconditionalCreate(9, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_9_Template, 2, 1, "div", 127);
572
+ i0.ɵɵconditionalCreate(9, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_9_Template, 2, 1, "div", 128);
564
573
  i0.ɵɵelementEnd();
565
574
  i0.ɵɵelementStart(10, "td");
566
575
  i0.ɵɵtext(11);
567
576
  i0.ɵɵelementEnd();
568
577
  i0.ɵɵelementStart(12, "td");
569
- i0.ɵɵconditionalCreate(13, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_13_Template, 2, 1, "span", 128)(14, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_14_Template, 2, 1, "span");
578
+ i0.ɵɵconditionalCreate(13, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_13_Template, 2, 1, "span", 129)(14, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_14_Template, 2, 1, "span");
570
579
  i0.ɵɵelementEnd();
571
- i0.ɵɵelementStart(15, "td")(16, "span", 129);
580
+ i0.ɵɵelementStart(15, "td")(16, "span", 130);
572
581
  i0.ɵɵtext(17);
573
582
  i0.ɵɵelementEnd()();
574
- i0.ɵɵelementStart(18, "td", 130);
583
+ i0.ɵɵelementStart(18, "td", 131);
575
584
  i0.ɵɵtext(19);
576
585
  i0.ɵɵelementEnd();
577
- i0.ɵɵelementStart(20, "td", 131);
586
+ i0.ɵɵelementStart(20, "td", 132);
578
587
  i0.ɵɵtext(21);
579
588
  i0.ɵɵelementEnd();
580
- i0.ɵɵelementStart(22, "td", 119)(23, "div", 132)(24, "span", 133);
589
+ i0.ɵɵelementStart(22, "td", 120)(23, "div", 133)(24, "span", 134);
581
590
  i0.ɵɵtext(25, "$");
582
591
  i0.ɵɵelementEnd();
583
- i0.ɵɵelementStart(26, "input", 134);
584
- i0.ɵɵlistener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Template_input_ngModelChange_26_listener($event) { const order_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.SetOrderAllocation(order_r14.ID || "", $event)); });
592
+ i0.ɵɵelementStart(26, "input", 135);
593
+ i0.ɵɵlistener("ngModelChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Template_input_ngModelChange_26_listener($event) { const order_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.SetOrderAllocation(order_r14.ID || "", $event)); });
585
594
  i0.ɵɵelementEnd()();
586
- i0.ɵɵconditionalCreate(27, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_27_Template, 3, 0, "div", 135);
595
+ i0.ɵɵconditionalCreate(27, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_27_Template, 3, 0, "div", 136);
587
596
  i0.ɵɵelementEnd();
588
- i0.ɵɵelementStart(28, "td", 130);
597
+ i0.ɵɵelementStart(28, "td", 131);
589
598
  i0.ɵɵtext(29);
590
599
  i0.ɵɵelementEnd();
591
- i0.ɵɵelementStart(30, "td", 119);
592
- i0.ɵɵconditionalCreate(31, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_31_Template, 2, 1, "button", 136);
600
+ i0.ɵɵelementStart(30, "td", 120);
601
+ i0.ɵɵconditionalCreate(31, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_31_Template, 2, 1, "button", 137);
593
602
  i0.ɵɵelementEnd()();
594
- i0.ɵɵconditionalCreate(32, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Conditional_32_Template, 24, 1, "tr", 137);
603
+ i0.ɵɵconditionalCreate(32, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Conditional_32_Template, 24, 1, "tr", 138);
595
604
  } if (rf & 2) {
596
605
  const order_r14 = ctx.$implicit;
597
606
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -629,10 +638,10 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
629
638
  i0.ɵɵadvance();
630
639
  i0.ɵɵconditional(ctx_r1.IsOrderExpanded(order_r14.ID || "") ? 32 : -1);
631
640
  } }
632
- function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_Template(rf, ctx) { if (rf & 1) {
633
- i0.ɵɵelementStart(0, "div", 70)(1, "table", 117)(2, "thead")(3, "tr");
634
- i0.ɵɵelement(4, "th", 118);
635
- i0.ɵɵconditionalCreate(5, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_Conditional_5_Template, 2, 0, "th");
641
+ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_Template(rf, ctx) { if (rf & 1) {
642
+ i0.ɵɵelementStart(0, "div", 70)(1, "table", 118)(2, "thead")(3, "tr");
643
+ i0.ɵɵelement(4, "th", 119);
644
+ i0.ɵɵconditionalCreate(5, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_Conditional_5_Template, 2, 0, "th");
636
645
  i0.ɵɵelementStart(6, "th");
637
646
  i0.ɵɵtext(7, "Order \u2116");
638
647
  i0.ɵɵelementEnd();
@@ -645,22 +654,22 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditio
645
654
  i0.ɵɵelementStart(12, "th");
646
655
  i0.ɵɵtext(13, "Company");
647
656
  i0.ɵɵelementEnd();
648
- i0.ɵɵelementStart(14, "th", 119);
657
+ i0.ɵɵelementStart(14, "th", 120);
649
658
  i0.ɵɵtext(15, "Gross");
650
659
  i0.ɵɵelementEnd();
651
- i0.ɵɵelementStart(16, "th", 119);
660
+ i0.ɵɵelementStart(16, "th", 120);
652
661
  i0.ɵɵtext(17, "Open Balance");
653
662
  i0.ɵɵelementEnd();
654
- i0.ɵɵelementStart(18, "th", 120);
663
+ i0.ɵɵelementStart(18, "th", 121);
655
664
  i0.ɵɵtext(19, "Apply Amount");
656
665
  i0.ɵɵelementEnd();
657
- i0.ɵɵelementStart(20, "th", 119);
666
+ i0.ɵɵelementStart(20, "th", 120);
658
667
  i0.ɵɵtext(21, "Leaves Balance");
659
668
  i0.ɵɵelementEnd();
660
- i0.ɵɵelement(22, "th", 121);
669
+ i0.ɵɵelement(22, "th", 122);
661
670
  i0.ɵɵelementEnd()();
662
671
  i0.ɵɵelementStart(23, "tbody");
663
- i0.ɵɵrepeaterCreate(24, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_For_25_Template, 33, 25, null, null, _forTrack0);
672
+ i0.ɵɵrepeaterCreate(24, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_For_25_Template, 33, 25, null, null, _forTrack0);
664
673
  i0.ɵɵelementEnd()()();
665
674
  } if (rf & 2) {
666
675
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -700,60 +709,62 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Template
700
709
  i0.ɵɵlistener("Navigate", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Template_mj_form_field_Navigate_26_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
701
710
  i0.ɵɵelementEnd();
702
711
  i0.ɵɵelementStart(27, "div", 38)(28, "label", 39);
703
- i0.ɵɵtext(29, "Payment Type");
704
- i0.ɵɵelementEnd();
705
- i0.ɵɵconditionalCreate(30, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_30_Template, 5, 2, "select", 44)(31, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_31_Template, 1, 4, "mj-form-field", 45);
712
+ i0.ɵɵtext(29, "Payment Type ");
713
+ i0.ɵɵelementStart(30, "span", 44);
714
+ i0.ɵɵtext(31, "*");
715
+ i0.ɵɵelementEnd()();
716
+ i0.ɵɵconditionalCreate(32, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_32_Template, 6, 5)(33, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_33_Template, 1, 4, "mj-form-field", 45);
706
717
  i0.ɵɵelementEnd();
707
- i0.ɵɵconditionalCreate(32, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_32_Template, 19, 6, "div", 46)(33, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_33_Template, 39, 12, "div", 46)(34, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_34_Template, 31, 11, "div", 46)(35, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_35_Template, 10, 2, "div", 46);
708
- i0.ɵɵelementStart(36, "mj-form-field", 47);
709
- i0.ɵɵlistener("Navigate", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Template_mj_form_field_Navigate_36_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
718
+ i0.ɵɵconditionalCreate(34, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_34_Template, 19, 6, "div", 46)(35, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_35_Template, 39, 12, "div", 46)(36, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_36_Template, 31, 11, "div", 46)(37, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_37_Template, 10, 2, "div", 46);
719
+ i0.ɵɵelementStart(38, "mj-form-field", 47);
720
+ i0.ɵɵlistener("Navigate", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Template_mj_form_field_Navigate_38_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
710
721
  i0.ɵɵelementEnd();
711
- i0.ɵɵelementStart(37, "mj-form-field", 48);
712
- i0.ɵɵlistener("Navigate", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Template_mj_form_field_Navigate_37_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
722
+ i0.ɵɵelementStart(39, "mj-form-field", 48);
723
+ i0.ɵɵlistener("Navigate", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Template_mj_form_field_Navigate_39_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
713
724
  i0.ɵɵelementEnd()();
714
- i0.ɵɵelementStart(38, "div", 49)(39, "span", 50);
715
- i0.ɵɵtext(40, "Net Settlement Amount");
725
+ i0.ɵɵelementStart(40, "div", 49)(41, "span", 50);
726
+ i0.ɵɵtext(42, "Net Settlement Amount");
716
727
  i0.ɵɵelementEnd();
717
- i0.ɵɵelementStart(41, "span", 51);
718
- i0.ɵɵtext(42);
728
+ i0.ɵɵelementStart(43, "span", 51);
729
+ i0.ɵɵtext(44);
719
730
  i0.ɵɵelementEnd()()()()();
720
- i0.ɵɵelementStart(43, "main", 52)(44, "div", 53)(45, "div", 54)(46, "div", 55)(47, "span", 56);
721
- i0.ɵɵtext(48, "Payment Received");
731
+ i0.ɵɵelementStart(45, "main", 52)(46, "div", 53)(47, "div", 54)(48, "div", 55)(49, "span", 56);
732
+ i0.ɵɵtext(50, "Payment Received");
722
733
  i0.ɵɵelementEnd();
723
- i0.ɵɵelementStart(49, "span", 57);
724
- i0.ɵɵtext(50);
734
+ i0.ɵɵelementStart(51, "span", 57);
735
+ i0.ɵɵtext(52);
725
736
  i0.ɵɵelementEnd()();
726
- i0.ɵɵelementStart(51, "div", 58);
727
- i0.ɵɵelement(52, "i", 59);
737
+ i0.ɵɵelementStart(53, "div", 58);
738
+ i0.ɵɵelement(54, "i", 59);
728
739
  i0.ɵɵelementEnd();
729
- i0.ɵɵelementStart(53, "div", 55)(54, "span", 56);
730
- i0.ɵɵtext(55, "Allocated");
740
+ i0.ɵɵelementStart(55, "div", 55)(56, "span", 56);
741
+ i0.ɵɵtext(57, "Allocated");
731
742
  i0.ɵɵelementEnd();
732
- i0.ɵɵelementStart(56, "span", 57);
733
- i0.ɵɵtext(57);
743
+ i0.ɵɵelementStart(58, "span", 57);
744
+ i0.ɵɵtext(59);
734
745
  i0.ɵɵelementEnd()();
735
- i0.ɵɵelementStart(58, "div", 58);
736
- i0.ɵɵelement(59, "i", 60);
746
+ i0.ɵɵelementStart(60, "div", 58);
747
+ i0.ɵɵelement(61, "i", 60);
737
748
  i0.ɵɵelementEnd();
738
- i0.ɵɵelementStart(60, "div", 55)(61, "span", 56);
739
- i0.ɵɵtext(62, "Unallocated Remainder");
749
+ i0.ɵɵelementStart(62, "div", 55)(63, "span", 56);
750
+ i0.ɵɵtext(64, "Unallocated Remainder");
740
751
  i0.ɵɵelementEnd();
741
- i0.ɵɵelementStart(63, "span", 57);
742
- i0.ɵɵtext(64);
752
+ i0.ɵɵelementStart(65, "span", 57);
753
+ i0.ɵɵtext(66);
743
754
  i0.ɵɵelementEnd()()();
744
- i0.ɵɵelementStart(65, "div", 61);
745
- i0.ɵɵconditionalCreate(66, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_66_Template, 3, 0)(67, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_67_Template, 3, 1)(68, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_68_Template, 3, 1);
755
+ i0.ɵɵelementStart(67, "div", 61);
756
+ i0.ɵɵconditionalCreate(68, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_68_Template, 3, 0)(69, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_69_Template, 3, 1)(70, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_70_Template, 3, 1);
746
757
  i0.ɵɵelementEnd()();
747
- i0.ɵɵelementStart(69, "div", 62)(70, "div", 63)(71, "h2", 64);
748
- i0.ɵɵelement(72, "i", 65);
749
- i0.ɵɵtext(73, " Open orders ");
758
+ i0.ɵɵelementStart(71, "div", 62)(72, "div", 63)(73, "h2", 64);
759
+ i0.ɵɵelement(74, "i", 65);
760
+ i0.ɵɵtext(75, " Open orders ");
750
761
  i0.ɵɵelementEnd();
751
- i0.ɵɵconditionalCreate(74, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_74_Template, 2, 1, "span", 66);
762
+ i0.ɵɵconditionalCreate(76, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_76_Template, 2, 1, "span", 66);
752
763
  i0.ɵɵelementEnd();
753
- i0.ɵɵconditionalCreate(75, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_75_Template, 10, 1, "div", 67);
764
+ i0.ɵɵconditionalCreate(77, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_77_Template, 10, 1, "div", 67);
754
765
  i0.ɵɵelementEnd();
755
- i0.ɵɵelementStart(76, "div", 68);
756
- i0.ɵɵconditionalCreate(77, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_77_Template, 4, 0, "div", 69)(78, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_78_Template, 6, 0, "div", 69)(79, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_Template, 26, 1, "div", 70);
766
+ i0.ɵɵelementStart(78, "div", 68);
767
+ i0.ɵɵconditionalCreate(79, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_79_Template, 4, 0, "div", 69)(80, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_80_Template, 6, 0, "div", 69)(81, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Conditional_81_Template, 26, 1, "div", 70);
757
768
  i0.ɵɵelementEnd()()();
758
769
  } if (rf & 2) {
759
770
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -767,10 +778,10 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Template
767
778
  i0.ɵɵproperty("ngModel", ctx_r1.record.Amount)("disabled", !ctx_r1.ComposeMode);
768
779
  i0.ɵɵadvance(2);
769
780
  i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.ComposeMode)("FormContext", ctx_r1.formContext);
770
- i0.ɵɵadvance(4);
771
- i0.ɵɵconditional(ctx_r1.ComposeMode && ctx_r1.PaymentTypes.length > 0 ? 30 : 31);
781
+ i0.ɵɵadvance(6);
782
+ i0.ɵɵconditional(ctx_r1.ComposeMode && ctx_r1.PaymentTypes.length > 0 ? 32 : 33);
772
783
  i0.ɵɵadvance(2);
773
- i0.ɵɵconditional(ctx_r1.PaymentTypeCode === "check" || (ctx_r1.SelectedPaymentType == null ? null : ctx_r1.SelectedPaymentType.RequiresReference) && !ctx_r1.RequiresInstrument ? 32 : ctx_r1.PaymentTypeCode === "card" || ctx_r1.RequiresInstrument ? 33 : ctx_r1.PaymentTypeCode === "ach" ? 34 : ctx_r1.RequiresReference ? 35 : -1);
784
+ i0.ɵɵconditional(ctx_r1.PaymentTypeCode === "check" || (ctx_r1.SelectedPaymentType == null ? null : ctx_r1.SelectedPaymentType.RequiresReference) && !ctx_r1.RequiresInstrument ? 34 : ctx_r1.PaymentTypeCode === "card" || ctx_r1.RequiresInstrument ? 35 : ctx_r1.PaymentTypeCode === "ach" ? 36 : ctx_r1.RequiresReference ? 37 : -1);
774
785
  i0.ɵɵadvance(4);
775
786
  i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.ComposeMode)("FormContext", ctx_r1.formContext);
776
787
  i0.ɵɵadvance();
@@ -788,17 +799,17 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Template
788
799
  i0.ɵɵadvance();
789
800
  i0.ɵɵtextInterpolate1(" $", ctx_r1.Math.abs(ctx_r1.UnallocatedRemainder).toFixed(2), " ");
790
801
  i0.ɵɵadvance(2);
791
- i0.ɵɵconditional(ctx_r1.IsAllocationBalanced ? 66 : ctx_r1.UnallocatedRemainder > 0 ? 67 : 68);
802
+ i0.ɵɵconditional(ctx_r1.IsAllocationBalanced ? 68 : ctx_r1.UnallocatedRemainder > 0 ? 69 : 70);
792
803
  i0.ɵɵadvance(8);
793
- i0.ɵɵconditional(ctx_r1.OpenOrders.length > 0 ? 74 : -1);
804
+ i0.ɵɵconditional(ctx_r1.OpenOrders.length > 0 ? 76 : -1);
794
805
  i0.ɵɵadvance();
795
- i0.ɵɵconditional(!ctx_r1.IsCaptured && ctx_r1.OpenOrders.length > 0 ? 75 : -1);
806
+ i0.ɵɵconditional(!ctx_r1.IsCaptured && ctx_r1.OpenOrders.length > 0 ? 77 : -1);
796
807
  i0.ɵɵadvance(2);
797
- i0.ɵɵconditional(ctx_r1.LoadingOpenOrders ? 77 : ctx_r1.OpenOrders.length === 0 ? 78 : 79);
808
+ i0.ɵɵconditional(ctx_r1.LoadingOpenOrders ? 79 : ctx_r1.OpenOrders.length === 0 ? 80 : 81);
798
809
  } }
799
810
  function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_0_Template(rf, ctx) { if (rf & 1) {
800
811
  i0.ɵɵelementStart(0, "div", 69);
801
- i0.ɵɵelement(1, "i", 115);
812
+ i0.ɵɵelement(1, "i", 116);
802
813
  i0.ɵɵelementStart(2, "p");
803
814
  i0.ɵɵtext(3, "Rolling up general ledger accounts\u2026");
804
815
  i0.ɵɵelementEnd()();
@@ -814,7 +825,7 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditio
814
825
  } }
815
826
  function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_2_Template(rf, ctx) { if (rf & 1) {
816
827
  i0.ɵɵelementStart(0, "div", 69);
817
- i0.ɵɵelement(1, "i", 154);
828
+ i0.ɵɵelement(1, "i", 155);
818
829
  i0.ɵɵelementStart(2, "h3");
819
830
  i0.ɵɵtext(3, "No journal entries booked yet");
820
831
  i0.ɵɵelementEnd();
@@ -823,16 +834,16 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditio
823
834
  i0.ɵɵelementEnd()();
824
835
  } }
825
836
  function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_3_For_2_For_23_Template(rf, ctx) { if (rf & 1) {
826
- i0.ɵɵelementStart(0, "tr")(1, "td", 159);
837
+ i0.ɵɵelementStart(0, "tr")(1, "td", 160);
827
838
  i0.ɵɵtext(2);
828
839
  i0.ɵɵelementEnd();
829
840
  i0.ɵɵelementStart(3, "td")(4, "span");
830
841
  i0.ɵɵtext(5);
831
842
  i0.ɵɵelementEnd()();
832
- i0.ɵɵelementStart(6, "td", 130);
843
+ i0.ɵɵelementStart(6, "td", 131);
833
844
  i0.ɵɵtext(7);
834
845
  i0.ɵɵelementEnd();
835
- i0.ɵɵelementStart(8, "td", 130);
846
+ i0.ɵɵelementStart(8, "td", 131);
836
847
  i0.ɵɵtext(9);
837
848
  i0.ɵɵelementEnd()();
838
849
  } if (rf & 2) {
@@ -848,37 +859,37 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditio
848
859
  i0.ɵɵtextInterpolate(row_r20.Credit ? ctx_r1.RollupAmount(row_r20.Credit) : "\u2014");
849
860
  } }
850
861
  function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_3_For_2_Template(rf, ctx) { if (rf & 1) {
851
- i0.ɵɵelementStart(0, "div", 155)(1, "div", 29)(2, "div")(3, "h3", 30);
862
+ i0.ɵɵelementStart(0, "div", 156)(1, "div", 29)(2, "div")(3, "h3", 30);
852
863
  i0.ɵɵtext(4);
853
864
  i0.ɵɵelementEnd();
854
- i0.ɵɵelementStart(5, "div", 127);
865
+ i0.ɵɵelementStart(5, "div", 128);
855
866
  i0.ɵɵtext(6);
856
867
  i0.ɵɵelementEnd()();
857
868
  i0.ɵɵelementStart(7, "span", 66);
858
869
  i0.ɵɵtext(8);
859
870
  i0.ɵɵelementEnd()();
860
- i0.ɵɵelementStart(9, "div", 156)(10, "table", 157)(11, "thead")(12, "tr")(13, "th");
871
+ i0.ɵɵelementStart(9, "div", 157)(10, "table", 158)(11, "thead")(12, "tr")(13, "th");
861
872
  i0.ɵɵtext(14, "GL Account");
862
873
  i0.ɵɵelementEnd();
863
874
  i0.ɵɵelementStart(15, "th");
864
875
  i0.ɵɵtext(16, "Name");
865
876
  i0.ɵɵelementEnd();
866
- i0.ɵɵelementStart(17, "th", 119);
877
+ i0.ɵɵelementStart(17, "th", 120);
867
878
  i0.ɵɵtext(18, "Debit");
868
879
  i0.ɵɵelementEnd();
869
- i0.ɵɵelementStart(19, "th", 119);
880
+ i0.ɵɵelementStart(19, "th", 120);
870
881
  i0.ɵɵtext(20, "Credit");
871
882
  i0.ɵɵelementEnd()()();
872
883
  i0.ɵɵelementStart(21, "tbody");
873
884
  i0.ɵɵrepeaterCreate(22, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_3_For_2_For_23_Template, 10, 4, "tr", null, _forTrack2);
874
885
  i0.ɵɵelementEnd();
875
- i0.ɵɵelementStart(24, "tfoot")(25, "tr")(26, "th", 158);
886
+ i0.ɵɵelementStart(24, "tfoot")(25, "tr")(26, "th", 159);
876
887
  i0.ɵɵtext(27, "Total");
877
888
  i0.ɵɵelementEnd();
878
- i0.ɵɵelementStart(28, "th", 130);
889
+ i0.ɵɵelementStart(28, "th", 131);
879
890
  i0.ɵɵtext(29);
880
891
  i0.ɵɵelementEnd();
881
- i0.ɵɵelementStart(30, "th", 130);
892
+ i0.ɵɵelementStart(30, "th", 131);
882
893
  i0.ɵɵtext(31);
883
894
  i0.ɵɵelementEnd()()()()()();
884
895
  } if (rf & 2) {
@@ -900,8 +911,8 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditio
900
911
  i0.ɵɵtextInterpolate1("$", card_r21.TotalCredit.toFixed(2));
901
912
  } }
902
913
  function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_3_Template(rf, ctx) { if (rf & 1) {
903
- i0.ɵɵelementStart(0, "div", 153);
904
- i0.ɵɵrepeaterCreate(1, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_3_For_2_Template, 32, 10, "div", 155, _forTrack1);
914
+ i0.ɵɵelementStart(0, "div", 154);
915
+ i0.ɵɵrepeaterCreate(1, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_3_For_2_Template, 32, 10, "div", 156, _forTrack1);
905
916
  i0.ɵɵelementEnd();
906
917
  } if (rf & 2) {
907
918
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -909,14 +920,14 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditio
909
920
  i0.ɵɵrepeater(ctx_r1.RollupCards);
910
921
  } }
911
922
  function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Template(rf, ctx) { if (rf & 1) {
912
- i0.ɵɵconditionalCreate(0, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_0_Template, 4, 0, "div", 69)(1, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_1_Template, 2, 1, "div", 18)(2, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_2_Template, 6, 0, "div", 69)(3, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_3_Template, 3, 0, "div", 153);
923
+ i0.ɵɵconditionalCreate(0, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_0_Template, 4, 0, "div", 69)(1, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_1_Template, 2, 1, "div", 18)(2, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_2_Template, 6, 0, "div", 69)(3, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_13_Conditional_3_Template, 3, 0, "div", 154);
913
924
  } if (rf & 2) {
914
925
  const ctx_r1 = i0.ɵɵnextContext(3);
915
926
  i0.ɵɵconditional(ctx_r1.RollupLoading ? 0 : ctx_r1.RollupError ? 1 : ctx_r1.RollupCards.length === 0 ? 2 : 3);
916
927
  } }
917
928
  function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_14_Conditional_0_Template(rf, ctx) { if (rf & 1) {
918
929
  const _r22 = i0.ɵɵgetCurrentView();
919
- i0.ɵɵelementStart(0, "mj-explorer-entity-data-grid", 161);
930
+ i0.ɵɵelementStart(0, "mj-explorer-entity-data-grid", 162);
920
931
  i0.ɵɵlistener("Navigate", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_14_Conditional_0_Template_mj_explorer_entity_data_grid_Navigate_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
921
932
  i0.ɵɵelementEnd();
922
933
  } if (rf & 2) {
@@ -924,25 +935,25 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditio
924
935
  i0.ɵɵproperty("Params", ctx_r1.PaymentJournalEntryParams)("AllowLoad", true)("ShowToolbar", false);
925
936
  } }
926
937
  function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_14_Template(rf, ctx) { if (rf & 1) {
927
- i0.ɵɵconditionalCreate(0, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_14_Conditional_0_Template, 1, 3, "mj-explorer-entity-data-grid", 160);
938
+ i0.ɵɵconditionalCreate(0, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Conditional_14_Conditional_0_Template, 1, 3, "mj-explorer-entity-data-grid", 161);
928
939
  } if (rf & 2) {
929
940
  const ctx_r1 = i0.ɵɵnextContext(3);
930
941
  i0.ɵɵconditional(ctx_r1.PaymentJournalEntryParams ? 0 : -1);
931
942
  } }
932
943
  function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Template(rf, ctx) { if (rf & 1) {
933
944
  const _r19 = i0.ɵɵgetCurrentView();
934
- i0.ɵɵelementStart(0, "div", 20)(1, "div", 148)(2, "div")(3, "h2");
935
- i0.ɵɵelement(4, "i", 149);
945
+ i0.ɵɵelementStart(0, "div", 20)(1, "div", 149)(2, "div")(3, "h2");
946
+ i0.ɵɵelement(4, "i", 150);
936
947
  i0.ɵɵtext(5, " General Ledger Postings");
937
948
  i0.ɵɵelementEnd();
938
- i0.ɵɵelementStart(6, "p", 150);
949
+ i0.ɵɵelementStart(6, "p", 151);
939
950
  i0.ɵɵtext(7, "Double-entry balanced accounting entries booked across operating and receivable accounts.");
940
951
  i0.ɵɵelementEnd()();
941
- i0.ɵɵelementStart(8, "div", 151)(9, "button", 152);
952
+ i0.ɵɵelementStart(8, "div", 152)(9, "button", 153);
942
953
  i0.ɵɵlistener("click", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SetAccountingView("summary")); });
943
954
  i0.ɵɵtext(10, " Summary (Rolled-up) ");
944
955
  i0.ɵɵelementEnd();
945
- i0.ɵɵelementStart(11, "button", 152);
956
+ i0.ɵɵelementStart(11, "button", 153);
946
957
  i0.ɵɵlistener("click", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SetAccountingView("detail")); });
947
958
  i0.ɵɵtext(12, " By Journal Entry ");
948
959
  i0.ɵɵelementEnd()()();
@@ -959,36 +970,36 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Template
959
970
  } }
960
971
  function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_45_Template(rf, ctx) { if (rf & 1) {
961
972
  const _r23 = i0.ɵɵgetCurrentView();
962
- i0.ɵɵelementStart(0, "div", 20)(1, "div", 162)(2, "div", 28)(3, "div", 29)(4, "h3", 30);
963
- i0.ɵɵelement(5, "i", 163);
973
+ i0.ɵɵelementStart(0, "div", 20)(1, "div", 163)(2, "div", 28)(3, "div", 29)(4, "h3", 30);
974
+ i0.ɵɵelement(5, "i", 164);
964
975
  i0.ɵɵtext(6, " Processing & Gateway Details");
965
976
  i0.ɵɵelementEnd()();
966
- i0.ɵɵelementStart(7, "div", 164)(8, "mj-form-field", 165);
977
+ i0.ɵɵelementStart(7, "div", 165)(8, "mj-form-field", 166);
967
978
  i0.ɵɵlistener("Navigate", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_45_Template_mj_form_field_Navigate_8_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
968
979
  i0.ɵɵelementEnd();
969
- i0.ɵɵelementStart(9, "mj-form-field", 166);
980
+ i0.ɵɵelementStart(9, "mj-form-field", 167);
970
981
  i0.ɵɵlistener("Navigate", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_45_Template_mj_form_field_Navigate_9_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
971
982
  i0.ɵɵelementEnd();
972
- i0.ɵɵelementStart(10, "mj-form-field", 167);
983
+ i0.ɵɵelementStart(10, "mj-form-field", 168);
973
984
  i0.ɵɵlistener("Navigate", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_45_Template_mj_form_field_Navigate_10_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
974
985
  i0.ɵɵelementEnd();
975
- i0.ɵɵelement(11, "mj-form-field", 168)(12, "mj-form-field", 169)(13, "mj-form-field", 170);
986
+ i0.ɵɵelement(11, "mj-form-field", 169)(12, "mj-form-field", 170)(13, "mj-form-field", 171);
976
987
  i0.ɵɵelementEnd()();
977
988
  i0.ɵɵelementStart(14, "div", 28)(15, "div", 29)(16, "h3", 30);
978
- i0.ɵɵelement(17, "i", 171);
989
+ i0.ɵɵelement(17, "i", 172);
979
990
  i0.ɵɵtext(18, " Reversal Info & Notes");
980
991
  i0.ɵɵelementEnd()();
981
- i0.ɵɵelementStart(19, "div", 164)(20, "mj-form-field", 172);
992
+ i0.ɵɵelementStart(19, "div", 165)(20, "mj-form-field", 173);
982
993
  i0.ɵɵlistener("Navigate", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_45_Template_mj_form_field_Navigate_20_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
983
994
  i0.ɵɵelementEnd();
984
- i0.ɵɵelement(21, "mj-form-field", 173)(22, "mj-form-field", 174)(23, "mj-form-field", 175);
995
+ i0.ɵɵelement(21, "mj-form-field", 174)(22, "mj-form-field", 175)(23, "mj-form-field", 176);
985
996
  i0.ɵɵelementEnd()();
986
997
  i0.ɵɵelementStart(24, "div", 28)(25, "div", 29)(26, "h3", 30);
987
- i0.ɵɵelement(27, "i", 176);
998
+ i0.ɵɵelement(27, "i", 177);
988
999
  i0.ɵɵtext(28, " System Metadata");
989
1000
  i0.ɵɵelementEnd()();
990
- i0.ɵɵelementStart(29, "div", 164);
991
- i0.ɵɵelement(30, "mj-form-field", 177)(31, "mj-form-field", 178);
1001
+ i0.ɵɵelementStart(29, "div", 165);
1002
+ i0.ɵɵelement(30, "mj-form-field", 178)(31, "mj-form-field", 179);
992
1003
  i0.ɵɵelementEnd()()()();
993
1004
  } if (rf & 2) {
994
1005
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -1019,13 +1030,13 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_45_Template
1019
1030
  } }
1020
1031
  function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_46_Template(rf, ctx) { if (rf & 1) {
1021
1032
  const _r24 = i0.ɵɵgetCurrentView();
1022
- i0.ɵɵelementStart(0, "div", 20)(1, "mj-collapsible-panel", 179)(2, "mj-explorer-entity-data-grid", 180);
1033
+ i0.ɵɵelementStart(0, "div", 20)(1, "mj-collapsible-panel", 180)(2, "mj-explorer-entity-data-grid", 181);
1023
1034
  i0.ɵɵlistener("Navigate", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_46_Template_mj_explorer_entity_data_grid_Navigate_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("AfterDataLoad", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_46_Template_mj_explorer_entity_data_grid_AfterDataLoad_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SetSectionRowCount("mJBizAppsOrdersStoredValueTransactions", $event.totalRowCount)); });
1024
1035
  i0.ɵɵelementEnd()();
1025
- i0.ɵɵelementStart(3, "mj-collapsible-panel", 181)(4, "mj-explorer-entity-data-grid", 180);
1036
+ i0.ɵɵelementStart(3, "mj-collapsible-panel", 182)(4, "mj-explorer-entity-data-grid", 181);
1026
1037
  i0.ɵɵlistener("Navigate", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_46_Template_mj_explorer_entity_data_grid_Navigate_4_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("AfterDataLoad", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_46_Template_mj_explorer_entity_data_grid_AfterDataLoad_4_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SetSectionRowCount("mJBizAppsOrdersSubscriptionEvents", $event.totalRowCount)); });
1027
1038
  i0.ɵɵelementEnd()();
1028
- i0.ɵɵelementStart(5, "mj-collapsible-panel", 182)(6, "mj-explorer-entity-data-grid", 180);
1039
+ i0.ɵɵelementStart(5, "mj-collapsible-panel", 183)(6, "mj-explorer-entity-data-grid", 181);
1029
1040
  i0.ɵɵlistener("Navigate", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_46_Template_mj_explorer_entity_data_grid_Navigate_6_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("AfterDataLoad", function BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_46_Template_mj_explorer_entity_data_grid_AfterDataLoad_6_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SetSectionRowCount("mJBizAppsOrdersPaymentHeaders", $event.totalRowCount)); });
1030
1041
  i0.ɵɵelementEnd()()();
1031
1042
  } if (rf & 2) {
@@ -1092,7 +1103,7 @@ function BizAppsPaymentHeaderFormComponent_Conditional_0_Template(rf, ctx) { if
1092
1103
  i0.ɵɵlistener("TabChange", function BizAppsPaymentHeaderFormComponent_Conditional_0_Template_mj_tab_nav_TabChange_41_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.SelectTab($event)); });
1093
1104
  i0.ɵɵelementEnd()();
1094
1105
  i0.ɵɵconditionalCreate(42, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_42_Template, 6, 1, "div", 18);
1095
- i0.ɵɵconditionalCreate(43, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Template, 80, 41, "div", 19);
1106
+ i0.ɵɵconditionalCreate(43, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_43_Template, 82, 41, "div", 19);
1096
1107
  i0.ɵɵconditionalCreate(44, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_44_Template, 15, 5, "div", 20);
1097
1108
  i0.ɵɵconditionalCreate(45, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_45_Template, 32, 48, "div", 20);
1098
1109
  i0.ɵɵconditionalCreate(46, BizAppsPaymentHeaderFormComponent_Conditional_0_Conditional_46_Template, 7, 24, "div", 20);
@@ -1149,6 +1160,27 @@ export const PAYMENT_FORM_TABS = [
1149
1160
  { key: 'details', label: 'Details & Notes', icon: 'fa-solid fa-sliders' },
1150
1161
  { key: 'related', label: 'Related Records', icon: 'fa-solid fa-layer-group' },
1151
1162
  ];
1163
+ /**
1164
+ * A save-result message with its repeated lines collapsed.
1165
+ *
1166
+ * `LatestResult.Message` can carry the same validation failure more than once (the failure list
1167
+ * plus the summary that restates it), and the capture banner then printed "Payment Type cannot be
1168
+ * null" twice. Same fact once is the whole fix; order is preserved.
1169
+ */
1170
+ function uniqueErrorLines(message) {
1171
+ if (!message)
1172
+ return '';
1173
+ const seen = new Set();
1174
+ const kept = [];
1175
+ for (const line of message.split(/\r?\n/)) {
1176
+ const key = line.trim();
1177
+ if (!key || seen.has(key))
1178
+ continue;
1179
+ seen.add(key);
1180
+ kept.push(line);
1181
+ }
1182
+ return kept.join('\n');
1183
+ }
1152
1184
  /**
1153
1185
  * Custom Payment Header form component overriding the CodeGen-generated form.
1154
1186
  *
@@ -1181,6 +1213,8 @@ let BizAppsPaymentHeaderFormComponent = class BizAppsPaymentHeaderFormComponent
1181
1213
  Capturing = false;
1182
1214
  CaptureError = null;
1183
1215
  AmountManuallySet = false;
1216
+ /** True once a capture was attempted without a Payment Type — drives the field's error state. */
1217
+ PaymentTypeMissing = false;
1184
1218
  lastLoadedCustomerKey = null;
1185
1219
  get ContextTabs() {
1186
1220
  if (!this.record?.IsSaved || !this.IsCaptured) {
@@ -1630,6 +1664,8 @@ let BizAppsPaymentHeaderFormComponent = class BizAppsPaymentHeaderFormComponent
1630
1664
  if (!this.record)
1631
1665
  return;
1632
1666
  this.record.PaymentTypeID = paymentTypeID || '';
1667
+ if (paymentTypeID)
1668
+ this.PaymentTypeMissing = false;
1633
1669
  if (paymentTypeID && this.record.PaymentDetailID_Object) {
1634
1670
  this.record.PaymentDetailID_Object.PaymentTypeID = paymentTypeID;
1635
1671
  }
@@ -2057,6 +2093,13 @@ let BizAppsPaymentHeaderFormComponent = class BizAppsPaymentHeaderFormComponent
2057
2093
  if (!this.hasPayer) {
2058
2094
  throw new Error('Please select who is paying (Bill-To Customer) before capturing.');
2059
2095
  }
2096
+ if (!this.record.PaymentTypeID) {
2097
+ // Gate it HERE rather than letting the NOT NULL refuse it server-side: the round
2098
+ // trip cost a whole capture attempt and came back as a raw constraint message.
2099
+ this.PaymentTypeMissing = true;
2100
+ throw new Error('Select a Payment Type before capturing — it is required to book the payment.');
2101
+ }
2102
+ this.PaymentTypeMissing = false;
2060
2103
  if (!this.IsAllocationBalanced) {
2061
2104
  throw new Error(`Allocations must exactly match payment amount. Remainder: $${this.UnallocatedRemainder.toFixed(2)}`);
2062
2105
  }
@@ -2064,7 +2107,7 @@ let BizAppsPaymentHeaderFormComponent = class BizAppsPaymentHeaderFormComponent
2064
2107
  this.record.Status = 'Captured';
2065
2108
  const saved = await this.record.Save();
2066
2109
  if (!saved) {
2067
- throw new Error(this.record.LatestResult?.Message || 'Failed to capture and book payment.');
2110
+ throw new Error(uniqueErrorLines(this.record.LatestResult?.Message) || 'Failed to capture and book payment.');
2068
2111
  }
2069
2112
  this.ActiveTab = 'accounting';
2070
2113
  await this.loadPaymentJournalRollup();
@@ -2147,11 +2190,11 @@ let BizAppsPaymentHeaderFormComponent = class BizAppsPaymentHeaderFormComponent
2147
2190
  }
2148
2191
  }
2149
2192
  static ɵfac = /*@__PURE__*/ (() => { let ɵBizAppsPaymentHeaderFormComponent_BaseFactory; return function BizAppsPaymentHeaderFormComponent_Factory(__ngFactoryType__) { return (ɵBizAppsPaymentHeaderFormComponent_BaseFactory || (ɵBizAppsPaymentHeaderFormComponent_BaseFactory = i0.ɵɵgetInheritedFactory(BizAppsPaymentHeaderFormComponent)))(__ngFactoryType__ || BizAppsPaymentHeaderFormComponent); }; })();
2150
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BizAppsPaymentHeaderFormComponent, selectors: [["bizapps-payment-header-form"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [[3, "Record", "FormComponent"], [3, "Navigate", "DeleteRequested", "FavoriteToggled", "HistoryRequested", "ListManagementRequested", "Record", "FormComponent"], ["Slot", "before-fields", 3, "Entity", "Record", "FormComponent", "FormContext"], [1, "mjo-ph-hero"], [1, "mjo-ph-hero__top"], [1, "mjo-ph-who"], [1, "mjo-ph-avatar"], [1, "mjo-ph-title-row"], [1, "mjo-ph-title"], [1, "mjo-status-chip", "mjo-status-chip--purple"], [1, "mjo-ph-sub"], [1, "mjo-ph-hero__aside"], [1, "mjo-ph-money"], [1, "mjo-ph-kicker"], [1, "mjo-ph-amt"], [1, "mjo-ph-actions"], [1, "mjo-ph-tabs"], [3, "TabChange", "Tabs", "ActiveKey"], [1, "mjo-alert", "mjo-alert--error"], [1, "mjo-ph-workbench"], [1, "mjo-ph-tab-body"], [1, "fa-solid", "fa-rotate-left"], ["type", "button", 1, "mjo-btn", "mjo-btn--secondary", 3, "click", "disabled"], [1, "fa-solid", "fa-floppy-disk"], ["type", "button", 1, "mjo-btn", "mjo-btn--primary", 3, "click", "disabled"], [1, "fa-solid", "fa-check-double"], [1, "fa-solid", "fa-circle-exclamation"], [1, "mjo-ph-money-pane"], [1, "mjo-card"], [1, "mjo-card__header"], [1, "mjo-card__title"], [1, "fa-solid", "fa-user-tag"], [1, "mjo-card__body"], [1, "mjo-ph-fields-stack"], ["DisplayNameOverride", "Organization", "FieldName", "BillToOrganizationID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["DisplayNameOverride", "Person", "FieldName", "BillToPersonID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mjo-payer-chip"], [1, "fa-solid", "fa-money-check-dollar"], [1, "mjo-field"], [1, "mjo-label"], [1, "mjo-input-money-wrap"], [1, "mjo-currency-prefix"], ["type", "number", "placeholder", "0.00", "step", "0.01", 1, "mj-input", "is-num", "mjo-input--money", 3, "ngModelChange", "ngModel", "disabled"], ["DisplayNameOverride", "Payment Date", "FieldName", "PaymentDate", "Type", "datepicker", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mj-input", 3, "ngModel"], ["FieldName", "PaymentTypeID", "Type", "textbox", "LinkType", "Record", 3, "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mjo-instrument-box"], ["DisplayNameOverride", "Receiving Co.", "FieldName", "ReceivingCompanyID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["DisplayNameOverride", "Processing Fee", "FieldName", "ProcessingFeeAmount", "Type", "number", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mjo-net-calc"], [1, "mjo-net-calc__label"], [1, "mjo-net-calc__val"], [1, "mjo-ph-alloc-pane"], [1, "mjo-alloc-hero"], [1, "mjo-alloc-hero__stats"], [1, "mjo-alloc-stat"], [1, "mjo-alloc-stat__kicker"], [1, "mjo-alloc-stat__val"], [1, "mjo-alloc-stat__op"], [1, "fa-solid", "fa-minus"], [1, "fa-solid", "fa-equals"], [1, "mjo-alloc-hero__message"], [1, "mjo-alloc-toolbar"], [1, "mjo-alloc-toolbar__left"], [1, "mjo-alloc-toolbar__title"], [1, "fa-solid", "fa-receipt"], [1, "mjo-badge"], [1, "mjo-alloc-toolbar__right"], [1, "mjo-card", "mjo-card--table"], [1, "mjo-empty-state"], [1, "mjo-table-responsive"], [1, "fa-solid", "fa-circle-check", "text-success"], [1, "mj-input", 3, "ngModelChange", "ngModel"], [3, "ngValue"], [3, "value"], ["FieldName", "PaymentTypeID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mjo-instrument-box__title"], [1, "fa-solid", "fa-money-check"], [1, "mjo-instrument-box__grid"], [1, "text-danger"], ["type", "text", "placeholder", "e.g. 10428", "autocomplete", "off", 1, "mj-input", "font-mono", 3, "ngModelChange", "ngModel", "disabled"], ["type", "date", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], [1, "mjo-field", "col-span-full"], ["type", "text", "placeholder", "e.g. Chase, Bank of America", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], [1, "fa-solid", "fa-credit-card"], [1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], ["value", ""], ["value", "Visa"], ["value", "MasterCard"], ["value", "American Express"], ["value", "Discover"], ["value", "Other"], ["type", "text", "maxlength", "4", "placeholder", "4242", 1, "mj-input", "font-mono", 3, "ngModelChange", "ngModel", "disabled"], [1, "flex", "gap-2"], ["type", "number", "min", "1", "max", "12", "placeholder", "MM", 1, "mj-input", "font-mono", "w-16", 3, "ngModelChange", "ngModel", "disabled"], ["type", "number", "min", "2025", "max", "2045", "placeholder", "YYYY", 1, "mj-input", "font-mono", "w-24", 3, "ngModelChange", "ngModel", "disabled"], ["type", "text", "placeholder", "Name on card", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], ["type", "text", "placeholder", "e.g. AUTH-98210", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], [1, "fa-solid", "fa-building-columns"], ["type", "text", "placeholder", "e.g. Wells Fargo", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], ["value", "Checking"], ["value", "Savings"], ["type", "text", "maxlength", "4", "placeholder", "1234", 1, "mj-input", "font-mono", 3, "ngModelChange", "ngModel", "disabled"], ["type", "text", "maxlength", "4", "placeholder", "5678", 1, "mj-input", "font-mono", 3, "ngModelChange", "ngModel", "disabled"], ["type", "text", "placeholder", "Trace #", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], ["type", "text", "placeholder", "Confirmation or transfer id", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], [1, "fa-solid", "fa-circle-info", "text-warning"], [1, "fa-solid", "fa-triangle-exclamation", "text-danger"], [1, "mjo-search-input-wrap"], [1, "fa-solid", "fa-magnifying-glass"], ["type", "text", "placeholder", "Filter orders\u2026", 1, "mjo-input", "mjo-input--sm", 3, "ngModelChange", "ngModel"], ["type", "button", 1, "mjo-btn", "mjo-btn--secondary", "mjo-btn--sm", 3, "click"], [1, "fa-solid", "fa-wand-magic-sparkles"], ["type", "button", 1, "mjo-btn", "mjo-btn--outline", "mjo-btn--sm", 3, "click"], [1, "fa-solid", "fa-eraser"], [1, "fa-solid", "fa-spinner", "fa-spin", "fa-2x", "text-muted"], [1, "fa-solid", "fa-receipt", "fa-3x", "text-muted"], [1, "mjo-table"], [1, "w-8"], [1, "text-right"], [1, "text-right", "w-36"], [1, "w-24"], [1, "mjo-order-row"], ["type", "button", "title", "Toggle line items", 1, "mjo-icon-btn", 3, "click"], [1, "fa-solid"], [1, "font-bold"], ["type", "button", 1, "mjo-link", 3, "click"], [1, "mjo-subtext"], [1, "mjo-badge", "mjo-badge--error"], [1, "mjo-company-pill"], [1, "text-right", "font-mono"], [1, "text-right", "font-mono", "font-bold"], [1, "mjo-apply-input-wrap"], [1, "mjo-apply-dollar"], ["type", "number", "step", "0.01", "min", "0", 1, "mjo-input", "mjo-input--sm", "mjo-input--num", 3, "ngModelChange", "ngModel", "disabled", "title"], [1, "mjo-subtext", "text-info"], ["type", "button", 1, "mjo-btn", "mjo-btn--outline", "mjo-btn--sm", 3, "disabled"], [1, "mjo-lines-row"], [1, "fa-solid", "fa-layer-group"], ["type", "button", 1, "mjo-btn", "mjo-btn--outline", "mjo-btn--sm", 3, "click", "disabled"], [1, "p-0"], [1, "mjo-nested-lines-pane"], [1, "mjo-nested-lines-header"], [1, "mjo-nested-table"], [1, "w-20"], ["type", "number", "step", "0.01", "min", "0", 1, "mjo-input", "mjo-input--xs", "mjo-input--num", 3, "ngModelChange", "ngModel", "disabled"], ["type", "button", 1, "mjo-btn", "mjo-btn--outline", "mjo-btn--xs"], ["type", "button", 1, "mjo-btn", "mjo-btn--outline", "mjo-btn--xs", 3, "click"], [1, "mjo-accounting-header"], [1, "fa-solid", "fa-book"], [1, "text-muted"], [1, "mjo-view-toggle"], ["type", "button", 1, "mjo-toggle-btn", 3, "click"], [1, "mjo-gl-cards-grid"], [1, "fa-solid", "fa-book-open", "fa-3x", "text-muted"], [1, "mjo-card", "mjo-card--gl"], [1, "mjo-card__body", "p-0"], [1, "mjo-table", "mjo-table--compact"], ["colspan", "2"], [1, "font-mono"], [3, "Params", "AllowLoad", "ShowToolbar"], [3, "Navigate", "Params", "AllowLoad", "ShowToolbar"], [1, "mjo-form-sections-grid"], [1, "fa-solid", "fa-gears"], [1, "mjo-card__body", "mjo-form-grid-2"], ["FieldName", "PaymentProviderID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "PaymentIntentID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "PaymentDetailID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ProviderChargeID", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ProviderRefundID", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "IdempotencyKey", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], [1, "fa-solid", "fa-note-sticky"], ["FieldName", "ReversesPaymentHeaderID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ReversalReason", "Type", "textarea", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Description", "Type", "textarea", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Notes", "Type", "textarea", 3, "Record", "ShowLabel", "EditMode", "FormContext"], [1, "fa-solid", "fa-clock-rotate-left"], ["FieldName", "__mj_CreatedAt", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "__mj_UpdatedAt", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["SectionKey", "mJBizAppsOrdersStoredValueTransactions", "SectionName", "Stored Value & Account Credit Transactions", "Icon", "fa fa-wallet", "Variant", "related-entity", 3, "Form", "FormContext", "BadgeCount", "DefaultExpanded"], [3, "Navigate", "AfterDataLoad", "Params", "NewRecordValues", "AllowLoad", "ShowToolbar"], ["SectionKey", "mJBizAppsOrdersSubscriptionEvents", "SectionName", "Subscription Billing Events", "Icon", "fa fa-history", "Variant", "related-entity", 3, "Form", "FormContext", "BadgeCount", "DefaultExpanded"], ["SectionKey", "mJBizAppsOrdersPaymentHeaders", "SectionName", "Linked Reversal & Refund Payment Records", "Icon", "fa fa-rotate-left", "Variant", "related-entity", 3, "Form", "FormContext", "BadgeCount", "DefaultExpanded"]], template: function BizAppsPaymentHeaderFormComponent_Template(rf, ctx) { if (rf & 1) {
2193
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BizAppsPaymentHeaderFormComponent, selectors: [["bizapps-payment-header-form"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [[3, "Record", "FormComponent"], [3, "Navigate", "DeleteRequested", "FavoriteToggled", "HistoryRequested", "ListManagementRequested", "Record", "FormComponent"], ["Slot", "before-fields", 3, "Entity", "Record", "FormComponent", "FormContext"], [1, "mjo-ph-hero"], [1, "mjo-ph-hero__top"], [1, "mjo-ph-who"], [1, "mjo-ph-avatar"], [1, "mjo-ph-title-row"], [1, "mjo-ph-title"], [1, "mjo-status-chip", "mjo-status-chip--purple"], [1, "mjo-ph-sub"], [1, "mjo-ph-hero__aside"], [1, "mjo-ph-money"], [1, "mjo-ph-kicker"], [1, "mjo-ph-amt"], [1, "mjo-ph-actions"], [1, "mjo-ph-tabs"], [3, "TabChange", "Tabs", "ActiveKey"], [1, "mjo-alert", "mjo-alert--error"], [1, "mjo-ph-workbench"], [1, "mjo-ph-tab-body"], [1, "fa-solid", "fa-rotate-left"], ["type", "button", 1, "mjo-btn", "mjo-btn--secondary", 3, "click", "disabled"], [1, "fa-solid", "fa-floppy-disk"], ["type", "button", 1, "mjo-btn", "mjo-btn--primary", 3, "click", "disabled"], [1, "fa-solid", "fa-check-double"], [1, "fa-solid", "fa-circle-exclamation"], [1, "mjo-ph-money-pane"], [1, "mjo-card"], [1, "mjo-card__header"], [1, "mjo-card__title"], [1, "fa-solid", "fa-user-tag"], [1, "mjo-card__body"], [1, "mjo-ph-fields-stack"], ["DisplayNameOverride", "Organization", "FieldName", "BillToOrganizationID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["DisplayNameOverride", "Person", "FieldName", "BillToPersonID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mjo-payer-chip"], [1, "fa-solid", "fa-money-check-dollar"], [1, "mjo-field"], [1, "mjo-label"], [1, "mjo-input-money-wrap"], [1, "mjo-currency-prefix"], ["type", "number", "placeholder", "0.00", "step", "0.01", 1, "mj-input", "is-num", "mjo-input--money", 3, "ngModelChange", "ngModel", "disabled"], ["DisplayNameOverride", "Payment Date", "FieldName", "PaymentDate", "Type", "datepicker", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["title", "Required to capture and book", 1, "mjo-required-mark"], ["FieldName", "PaymentTypeID", "Type", "textbox", "LinkType", "Record", 3, "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mjo-instrument-box"], ["DisplayNameOverride", "Receiving Co.", "FieldName", "ReceivingCompanyID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["DisplayNameOverride", "Processing Fee", "FieldName", "ProcessingFeeAmount", "Type", "number", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mjo-net-calc"], [1, "mjo-net-calc__label"], [1, "mjo-net-calc__val"], [1, "mjo-ph-alloc-pane"], [1, "mjo-alloc-hero"], [1, "mjo-alloc-hero__stats"], [1, "mjo-alloc-stat"], [1, "mjo-alloc-stat__kicker"], [1, "mjo-alloc-stat__val"], [1, "mjo-alloc-stat__op"], [1, "fa-solid", "fa-minus"], [1, "fa-solid", "fa-equals"], [1, "mjo-alloc-hero__message"], [1, "mjo-alloc-toolbar"], [1, "mjo-alloc-toolbar__left"], [1, "mjo-alloc-toolbar__title"], [1, "fa-solid", "fa-receipt"], [1, "mjo-badge"], [1, "mjo-alloc-toolbar__right"], [1, "mjo-card", "mjo-card--table"], [1, "mjo-empty-state"], [1, "mjo-table-responsive"], [1, "fa-solid", "fa-circle-check", "text-success"], [1, "mj-input", 3, "ngModelChange", "ngModel"], [3, "ngValue"], [3, "value"], [1, "mjo-field-hint", "mjo-field-hint--error"], ["FieldName", "PaymentTypeID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mjo-instrument-box__title"], [1, "fa-solid", "fa-money-check"], [1, "mjo-instrument-box__grid"], [1, "text-danger"], ["type", "text", "placeholder", "e.g. 10428", "autocomplete", "off", 1, "mj-input", "font-mono", 3, "ngModelChange", "ngModel", "disabled"], ["type", "date", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], [1, "mjo-field", "col-span-full"], ["type", "text", "placeholder", "e.g. Chase, Bank of America", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], [1, "fa-solid", "fa-credit-card"], [1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], ["value", ""], ["value", "Visa"], ["value", "MasterCard"], ["value", "American Express"], ["value", "Discover"], ["value", "Other"], ["type", "text", "maxlength", "4", "placeholder", "4242", 1, "mj-input", "font-mono", 3, "ngModelChange", "ngModel", "disabled"], [1, "flex", "gap-2"], ["type", "number", "min", "1", "max", "12", "placeholder", "MM", 1, "mj-input", "font-mono", "w-16", 3, "ngModelChange", "ngModel", "disabled"], ["type", "number", "min", "2025", "max", "2045", "placeholder", "YYYY", 1, "mj-input", "font-mono", "w-24", 3, "ngModelChange", "ngModel", "disabled"], ["type", "text", "placeholder", "Name on card", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], ["type", "text", "placeholder", "e.g. AUTH-98210", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], [1, "fa-solid", "fa-building-columns"], ["type", "text", "placeholder", "e.g. Wells Fargo", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], ["value", "Checking"], ["value", "Savings"], ["type", "text", "maxlength", "4", "placeholder", "1234", 1, "mj-input", "font-mono", 3, "ngModelChange", "ngModel", "disabled"], ["type", "text", "maxlength", "4", "placeholder", "5678", 1, "mj-input", "font-mono", 3, "ngModelChange", "ngModel", "disabled"], ["type", "text", "placeholder", "Trace #", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], ["type", "text", "placeholder", "Confirmation or transfer id", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], [1, "fa-solid", "fa-circle-info", "text-warning"], [1, "fa-solid", "fa-triangle-exclamation", "text-danger"], [1, "mjo-search-input-wrap"], [1, "fa-solid", "fa-magnifying-glass"], ["type", "text", "placeholder", "Filter orders\u2026", 1, "mjo-input", "mjo-input--sm", 3, "ngModelChange", "ngModel"], ["type", "button", 1, "mjo-btn", "mjo-btn--secondary", "mjo-btn--sm", 3, "click"], [1, "fa-solid", "fa-wand-magic-sparkles"], ["type", "button", 1, "mjo-btn", "mjo-btn--outline", "mjo-btn--sm", 3, "click"], [1, "fa-solid", "fa-eraser"], [1, "fa-solid", "fa-spinner", "fa-spin", "fa-2x", "text-muted"], [1, "fa-solid", "fa-receipt", "fa-3x", "text-muted"], [1, "mjo-table"], [1, "w-8"], [1, "text-right"], [1, "text-right", "w-36"], [1, "w-24"], [1, "mjo-order-row"], ["type", "button", "title", "Toggle line items", 1, "mjo-icon-btn", 3, "click"], [1, "fa-solid"], [1, "font-bold"], ["type", "button", 1, "mjo-link", 3, "click"], [1, "mjo-subtext"], [1, "mjo-badge", "mjo-badge--error"], [1, "mjo-company-pill"], [1, "text-right", "font-mono"], [1, "text-right", "font-mono", "font-bold"], [1, "mjo-apply-input-wrap"], [1, "mjo-apply-dollar"], ["type", "number", "step", "0.01", "min", "0", 1, "mjo-input", "mjo-input--sm", "mjo-input--num", 3, "ngModelChange", "ngModel", "disabled", "title"], [1, "mjo-subtext", "text-info"], ["type", "button", 1, "mjo-btn", "mjo-btn--outline", "mjo-btn--sm", 3, "disabled"], [1, "mjo-lines-row"], [1, "fa-solid", "fa-layer-group"], ["type", "button", 1, "mjo-btn", "mjo-btn--outline", "mjo-btn--sm", 3, "click", "disabled"], [1, "p-0"], [1, "mjo-nested-lines-pane"], [1, "mjo-nested-lines-header"], [1, "mjo-nested-table"], [1, "w-20"], ["type", "number", "step", "0.01", "min", "0", 1, "mjo-input", "mjo-input--xs", "mjo-input--num", 3, "ngModelChange", "ngModel", "disabled"], ["type", "button", 1, "mjo-btn", "mjo-btn--outline", "mjo-btn--xs"], ["type", "button", 1, "mjo-btn", "mjo-btn--outline", "mjo-btn--xs", 3, "click"], [1, "mjo-accounting-header"], [1, "fa-solid", "fa-book"], [1, "text-muted"], [1, "mjo-view-toggle"], ["type", "button", 1, "mjo-toggle-btn", 3, "click"], [1, "mjo-gl-cards-grid"], [1, "fa-solid", "fa-book-open", "fa-3x", "text-muted"], [1, "mjo-card", "mjo-card--gl"], [1, "mjo-card__body", "p-0"], [1, "mjo-table", "mjo-table--compact"], ["colspan", "2"], [1, "font-mono"], [3, "Params", "AllowLoad", "ShowToolbar"], [3, "Navigate", "Params", "AllowLoad", "ShowToolbar"], [1, "mjo-form-sections-grid"], [1, "fa-solid", "fa-gears"], [1, "mjo-card__body", "mjo-form-grid-2"], ["FieldName", "PaymentProviderID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "PaymentIntentID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "PaymentDetailID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ProviderChargeID", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ProviderRefundID", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "IdempotencyKey", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], [1, "fa-solid", "fa-note-sticky"], ["FieldName", "ReversesPaymentHeaderID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ReversalReason", "Type", "textarea", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Description", "Type", "textarea", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Notes", "Type", "textarea", 3, "Record", "ShowLabel", "EditMode", "FormContext"], [1, "fa-solid", "fa-clock-rotate-left"], ["FieldName", "__mj_CreatedAt", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "__mj_UpdatedAt", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["SectionKey", "mJBizAppsOrdersStoredValueTransactions", "SectionName", "Stored Value & Account Credit Transactions", "Icon", "fa fa-wallet", "Variant", "related-entity", 3, "Form", "FormContext", "BadgeCount", "DefaultExpanded"], [3, "Navigate", "AfterDataLoad", "Params", "NewRecordValues", "AllowLoad", "ShowToolbar"], ["SectionKey", "mJBizAppsOrdersSubscriptionEvents", "SectionName", "Subscription Billing Events", "Icon", "fa fa-history", "Variant", "related-entity", 3, "Form", "FormContext", "BadgeCount", "DefaultExpanded"], ["SectionKey", "mJBizAppsOrdersPaymentHeaders", "SectionName", "Linked Reversal & Refund Payment Records", "Icon", "fa fa-rotate-left", "Variant", "related-entity", 3, "Form", "FormContext", "BadgeCount", "DefaultExpanded"]], template: function BizAppsPaymentHeaderFormComponent_Template(rf, ctx) { if (rf & 1) {
2151
2194
  i0.ɵɵconditionalCreate(0, BizAppsPaymentHeaderFormComponent_Conditional_0_Template, 47, 34, "mj-record-form-container", 0);
2152
2195
  } if (rf & 2) {
2153
2196
  i0.ɵɵconditional(ctx.record ? 0 : -1);
2154
- } }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption, i1.DefaultValueAccessor, i1.NumberValueAccessor, i1.SelectControlValueAccessor, i1.NgControlStatus, i1.MaxLengthValidator, i1.MinValidator, i1.MaxValidator, i1.NgModel, i2.MjFormFieldComponent, i2.MjCollapsiblePanelComponent, i2.MjRecordFormContainerComponent, i2.ExplorerEntityDataGridComponent, i2.FormPanelSlotComponent, i3.MJTabNavComponent], styles: ["\n\n\n\n\n\n[_nghost-%COMP%] {\n display: block;\n width: 100%;\n}\n\n\n\n.mjo-ph-hero[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-lg, 12px);\n padding: var(--mj-space-4, 16px) var(--mj-space-5, 20px);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);\n margin-bottom: var(--mj-space-4, 16px);\n}\n\n.mjo-ph-hero__top[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-4, 16px);\n flex-wrap: wrap;\n}\n\n.mjo-ph-who[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-4, 16px);\n}\n\n.mjo-ph-avatar[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border-radius: var(--mj-radius-md, 8px);\n background: linear-gradient(135deg, #16a34a 0%, #15803d 100%);\n color: #ffffff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n box-shadow: 0 4px 10px rgba(22, 163, 74, 0.25);\n flex-shrink: 0;\n}\n\n.mjo-ph-avatar.is-reversal[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #9333ea 0%, #7e22ce 100%);\n box-shadow: 0 4px 10px rgba(147, 51, 234, 0.25);\n}\n\n.mjo-ph-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3, 10px);\n flex-wrap: wrap;\n}\n\n.mjo-ph-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-lg, 18px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n letter-spacing: -0.01em;\n}\n\n.mjo-ph-sub[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs, 12px);\n color: var(--mj-text-muted, #64748b);\n margin-top: 2px;\n}\n\n.mjo-ph-hero__aside[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-5, 20px);\n flex-wrap: wrap;\n}\n\n.mjo-ph-money[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-4, 16px);\n padding: var(--mj-space-2, 6px) var(--mj-space-4, 14px);\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.03));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 8px);\n}\n\n.mjo-ph-money[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n}\n\n.mjo-ph-kicker[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs, 11px);\n font-weight: var(--mj-font-semibold, 600);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted, #64748b);\n}\n\n.mjo-ph-amt[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm, 13px);\n font-weight: var(--mj-font-bold, 700);\n font-family: var(--mj-font-family-mono, monospace);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-ph-amt.is-balanced[_ngcontent-%COMP%] {\n color: #16a34a;\n}\n\n.mjo-ph-amt.is-unbalanced[_ngcontent-%COMP%] {\n color: #d97706;\n}\n\n.mjo-ph-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n\n\n.mjo-ph-tabs[_ngcontent-%COMP%] {\n margin-bottom: var(--mj-space-4, 16px);\n}\n\n\n\n.mjo-ph-workbench[_ngcontent-%COMP%] {\n display: flex;\n gap: var(--mj-space-4, 16px);\n align-items: flex-start;\n width: 100%;\n}\n\n.mjo-ph-money-pane[_ngcontent-%COMP%] {\n width: 380px;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-4, 16px);\n --mj-forms-field-label-width: 105px;\n --mj-forms-field-gap: 8px;\n}\n\n.mjo-ph-fields-stack[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mjo-ph-fields-stack[_ngcontent-%COMP%] mj-form-field[_ngcontent-%COMP%] {\n --mj-forms-field-label-width: 105px;\n --mj-forms-field-gap: 8px;\n}\n\n.mjo-ph-alloc-pane[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-4, 16px);\n}\n\n\n\n.mjo-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-lg, 10px);\n box-shadow: var(--mj-shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.04));\n overflow: hidden;\n}\n\n.mjo-card__header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--mj-space-3, 12px) var(--mj-space-4, 16px);\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.02));\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n.mjo-card__title[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm, 13px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-card__body[_ngcontent-%COMP%] {\n padding: var(--mj-space-4, 16px);\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3, 12px);\n}\n\n.mjo-card__body.p-0[_ngcontent-%COMP%] {\n padding: 0;\n}\n\n.mjo-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mjo-label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #94a3b8);\n}\n\n.mjo-input-money-wrap[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n}\n\n.mjo-currency-prefix[_ngcontent-%COMP%] {\n position: absolute;\n left: 14px;\n font-size: var(--mj-text-lg, 16px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-muted, #94a3b8);\n pointer-events: none;\n z-index: 2;\n}\n\n.mjo-input--money[_ngcontent-%COMP%] {\n padding-left: 30px !important;\n font-size: var(--mj-text-lg, 16px) !important;\n font-weight: var(--mj-font-bold, 700) !important;\n font-family: var(--mj-font-family-mono, monospace) !important;\n height: 42px !important;\n width: 100% !important;\n background: var(--mj-bg-surface-card, transparent) !important;\n color: var(--mj-text-primary, inherit) !important;\n border: 1px solid var(--mj-border-default, #334155) !important;\n border-radius: var(--mj-radius-md, 6px) !important;\n}\n\n.mjo-input--money[_ngcontent-%COMP%]:focus {\n border-color: var(--mj-brand-primary, #0076b6) !important;\n box-shadow: 0 0 0 2px rgba(0, 118, 182, 0.25) !important;\n}\n\n.mjo-net-calc[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 14px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.2));\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.08));\n border-radius: var(--mj-radius-md, 6px);\n margin-top: 4px;\n}\n\n.mjo-net-calc__label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #94a3b8);\n}\n\n.mjo-net-calc__val[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base, 15px);\n font-weight: var(--mj-font-bold, 700);\n font-family: var(--mj-font-family-mono, monospace);\n color: var(--mj-text-primary, #f8fafc);\n}\n\n.mjo-payer-chip[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n padding: 6px 10px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.03));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 6px);\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n}\n\n\n\n.mjo-card--books[_ngcontent-%COMP%] {\n border-color: rgba(0, 118, 182, 0.25);\n}\n\n\n\n\n\n.mjo-alloc-hero[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-lg, 12px);\n padding: var(--mj-space-3, 12px) var(--mj-space-4, 16px);\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-alloc-hero.is-balanced[_ngcontent-%COMP%] {\n border-color: rgba(22, 163, 74, 0.35);\n background: rgba(22, 163, 74, 0.03);\n}\n\n.mjo-alloc-hero.is-warning[_ngcontent-%COMP%] {\n border-color: rgba(217, 119, 6, 0.35);\n background: rgba(217, 119, 6, 0.03);\n}\n\n.mjo-alloc-hero.is-error[_ngcontent-%COMP%] {\n border-color: rgba(220, 38, 38, 0.35);\n background: rgba(220, 38, 38, 0.03);\n}\n\n.mjo-alloc-hero__stats[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-4, 16px);\n flex-wrap: wrap;\n}\n\n.mjo-alloc-stat[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.mjo-alloc-stat__kicker[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: var(--mj-font-semibold, 600);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted, #64748b);\n}\n\n.mjo-alloc-stat__val[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base, 15px);\n font-weight: var(--mj-font-bold, 700);\n font-family: var(--mj-font-family-mono, monospace);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-alloc-stat__op[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-alloc-hero__message[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n padding-top: 6px;\n border-top: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n\n\n.mjo-alloc-toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-3, 12px);\n flex-wrap: wrap;\n}\n\n.mjo-alloc-toolbar__left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-alloc-toolbar__title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-sm, 14px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-alloc-toolbar__right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-search-input-wrap[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.mjo-search-input-wrap[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n position: absolute;\n left: 8px;\n font-size: 11px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-search-input-wrap[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n padding-left: 24px;\n width: 160px;\n}\n\n\n\n.mjo-table-responsive[_ngcontent-%COMP%] {\n overflow-x: auto;\n width: 100%;\n}\n\n.mjo-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: var(--mj-text-xs, 12px);\n}\n\n.mjo-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-header, rgba(0, 0, 0, 0.02));\n color: var(--mj-text-muted, #64748b);\n font-weight: var(--mj-font-semibold, 600);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n font-size: 11px;\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n text-align: left;\n}\n\n.mjo-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n vertical-align: middle;\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-order-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover, rgba(0, 0, 0, 0.02));\n}\n\n.mjo-order-row.is-expanded[_ngcontent-%COMP%] {\n background: rgba(0, 118, 182, 0.02);\n}\n\n.mjo-apply-input-wrap[_ngcontent-%COMP%] {\n position: relative;\n display: inline-flex;\n align-items: center;\n width: 100%;\n max-width: 110px;\n}\n\n.mjo-apply-dollar[_ngcontent-%COMP%] {\n position: absolute;\n left: 8px;\n font-size: 11px;\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-muted, #64748b);\n pointer-events: none;\n}\n\n.mjo-apply-input-wrap[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n padding-left: 18px;\n}\n\n.mjo-nested-lines-pane[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.02));\n border-top: 1px solid var(--mj-border-default, #e2e8f0);\n border-bottom: 2px solid var(--mj-border-default, #cbd5e1);\n padding: var(--mj-space-3, 10px) var(--mj-space-4, 16px);\n}\n\n.mjo-nested-lines-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n font-size: 11px;\n font-weight: var(--mj-font-bold, 700);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-secondary, #475569);\n margin-bottom: var(--mj-space-2, 6px);\n}\n\n.mjo-nested-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: var(--mj-text-xs, 12px);\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 6px);\n overflow: hidden;\n}\n\n.mjo-nested-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: rgba(0, 0, 0, 0.02);\n font-size: 10.5px;\n font-weight: var(--mj-font-semibold, 600);\n padding: 6px 10px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n.mjo-nested-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 6px 10px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n\n\n.mjo-ph-tab-body[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-4, 16px);\n}\n\n.mjo-accounting-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-4, 16px);\n flex-wrap: wrap;\n}\n\n.mjo-accounting-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-base, 15px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-accounting-header[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 2px 0 0 0;\n font-size: var(--mj-text-xs, 12px);\n}\n\n.mjo-view-toggle[_ngcontent-%COMP%] {\n display: flex;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.04));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 6px);\n padding: 2px;\n}\n\n.mjo-toggle-btn[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n padding: 4px 10px;\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #475569);\n border-radius: var(--mj-radius-sm, 4px);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mjo-toggle-btn.is-active[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card, #ffffff);\n color: var(--mj-text-primary, #0f172a);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.mjo-gl-cards-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));\n gap: var(--mj-space-4, 16px);\n}\n\n.mjo-table--compact[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .mjo-table--compact[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 6px 10px;\n}\n\n.mjo-table[_ngcontent-%COMP%] tfoot[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-header, rgba(0, 0, 0, 0.02));\n border-top: 2px solid var(--mj-border-default, #cbd5e1);\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-bold, 700);\n}\n\n.is-intercompany[_ngcontent-%COMP%] {\n background: rgba(0, 118, 182, 0.04);\n}\n\n.mjo-ic-tag[_ngcontent-%COMP%] {\n display: inline-block;\n font-size: 10px;\n font-weight: var(--mj-font-bold, 700);\n text-transform: uppercase;\n color: #0284c7;\n background: rgba(2, 132, 199, 0.12);\n padding: 1px 5px;\n border-radius: 3px;\n margin-left: 6px;\n}\n\n\n\n.mjo-btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--mj-space-2, 6px);\n height: 34px;\n padding: 0 14px;\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n border-radius: var(--mj-radius-md, 6px);\n cursor: pointer;\n border: 1px solid transparent;\n transition: all 0.15s ease;\n}\n\n.mjo-btn--primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary, #0076b6);\n color: #ffffff;\n}\n\n.mjo-btn--primary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #006094;\n}\n\n.mjo-btn--secondary[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.05));\n border-color: var(--mj-border-default, #cbd5e1);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-btn--secondary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.mjo-btn--outline[_ngcontent-%COMP%] {\n background: transparent;\n border-color: var(--mj-border-default, #cbd5e1);\n color: var(--mj-text-secondary, #475569);\n}\n\n.mjo-btn--outline[_ngcontent-%COMP%]:hover:not(:disabled) {\n border-color: var(--mj-brand-primary, #0076b6);\n color: var(--mj-brand-primary, #0076b6);\n}\n\n.mjo-btn--sm[_ngcontent-%COMP%] {\n height: 30px;\n padding: 0 10px;\n font-size: 11.5px;\n}\n\n.mjo-btn--xs[_ngcontent-%COMP%] {\n height: 24px;\n padding: 0 8px;\n font-size: 11px;\n}\n\n.mjo-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.mjo-icon-btn[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-text-muted, #64748b);\n cursor: pointer;\n padding: 4px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.mjo-icon-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-link[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-brand-primary, #0076b6);\n cursor: pointer;\n padding: 0;\n font-size: inherit;\n text-align: left;\n}\n\n.mjo-link[_ngcontent-%COMP%]:hover {\n text-decoration: underline;\n}\n\n.mjo-status-chip[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: var(--mj-font-bold, 700);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n padding: 2px 8px;\n border-radius: 4px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.mjo-status-chip--draft[_ngcontent-%COMP%] {\n background: rgba(100, 116, 139, 0.12);\n color: #475569;\n}\n\n.mjo-status-chip--active[_ngcontent-%COMP%] {\n background: rgba(22, 163, 74, 0.12);\n color: #16a34a;\n}\n\n.mjo-status-chip--purple[_ngcontent-%COMP%] {\n background: rgba(147, 51, 234, 0.12);\n color: #9333ea;\n}\n\n.mjo-status-chip--error[_ngcontent-%COMP%] {\n background: rgba(220, 38, 38, 0.12);\n color: #dc2626;\n}\n\n.mjo-status-chip--warning[_ngcontent-%COMP%] {\n background: rgba(217, 119, 6, 0.12);\n color: #d97706;\n}\n\n.mjo-company-pill[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #475569);\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.04));\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.mjo-sku-chip[_ngcontent-%COMP%] {\n font-family: var(--mj-font-family-mono, monospace);\n font-size: 10px;\n color: var(--mj-text-muted, #64748b);\n background: rgba(0, 0, 0, 0.04);\n padding: 1px 4px;\n border-radius: 3px;\n margin-left: 4px;\n}\n\n.mjo-badge[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: var(--mj-font-semibold, 600);\n padding: 2px 6px;\n border-radius: 12px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.05));\n color: var(--mj-text-secondary, #475569);\n}\n\n.mjo-badge--error[_ngcontent-%COMP%] {\n background: rgba(220, 38, 38, 0.12);\n color: #dc2626;\n}\n\n.mjo-badge--success[_ngcontent-%COMP%] {\n background: rgba(22, 163, 74, 0.12);\n color: #16a34a;\n}\n\n.mjo-empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: var(--mj-space-6, 32px) var(--mj-space-4, 16px);\n text-align: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-sm, 14px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-xs, 12px);\n color: var(--mj-text-muted, #64748b);\n max-width: 380px;\n}\n\n.mjo-alert[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3, 10px);\n padding: 10px 14px;\n border-radius: var(--mj-radius-md, 8px);\n font-size: var(--mj-text-xs, 12px);\n margin-bottom: var(--mj-space-3, 12px);\n}\n\n.mjo-alert--error[_ngcontent-%COMP%] {\n background: rgba(220, 38, 38, 0.08);\n border: 1px solid rgba(220, 38, 38, 0.25);\n color: #dc2626;\n}\n\n.mjo-subtext[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted, #64748b);\n}\n\n.text-right[_ngcontent-%COMP%] { text-align: right; }\n.font-mono[_ngcontent-%COMP%] { font-family: var(--mj-font-family-mono, monospace); }\n.font-bold[_ngcontent-%COMP%] { font-weight: var(--mj-font-bold, 700); }\n.text-muted[_ngcontent-%COMP%] { color: var(--mj-text-muted, #64748b); }\n.text-success[_ngcontent-%COMP%] { color: #16a34a; }\n.text-warning[_ngcontent-%COMP%] { color: #d97706; }\n.text-danger[_ngcontent-%COMP%] { color: #dc2626; }\n.w-8[_ngcontent-%COMP%] { width: 32px; }\n.w-16[_ngcontent-%COMP%] { width: 64px; }\n.w-20[_ngcontent-%COMP%] { width: 80px; }\n.w-24[_ngcontent-%COMP%] { width: 96px; }\n.w-36[_ngcontent-%COMP%] { width: 144px; }\n.flex[_ngcontent-%COMP%] { display: flex; }\n.gap-2[_ngcontent-%COMP%] { gap: 8px; }\n.col-span-full[_ngcontent-%COMP%] { grid-column: 1 / -1; }\n.text-info[_ngcontent-%COMP%] { color: #0284c7; }\n\n\n\n.mjo-instrument-box[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.02));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 8px);\n padding: var(--mj-space-3, 12px);\n margin: var(--mj-space-2, 6px) 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3, 10px);\n}\n\n.mjo-instrument-box__title[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: 6px;\n padding-bottom: 6px;\n border-bottom: 1px dashed var(--mj-border-default, #e2e8f0);\n}\n\n.mjo-instrument-box__grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-instrument-box[_ngcontent-%COMP%] .mjo-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mjo-instrument-box[_ngcontent-%COMP%] .mjo-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: var(--mj-font-medium, 500);\n color: var(--mj-text-secondary, #475569);\n}\n\n.mjo-apply-input-wrap.is-derived[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.03));\n color: var(--mj-text-secondary, #475569);\n cursor: not-allowed;\n border-style: dashed;\n}"] });
2197
+ } }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption, i1.DefaultValueAccessor, i1.NumberValueAccessor, i1.SelectControlValueAccessor, i1.NgControlStatus, i1.MaxLengthValidator, i1.MinValidator, i1.MaxValidator, i1.NgModel, i2.MjFormFieldComponent, i2.MjCollapsiblePanelComponent, i2.MjRecordFormContainerComponent, i2.ExplorerEntityDataGridComponent, i2.FormPanelSlotComponent, i3.MJTabNavComponent], styles: ["\n\n\n\n\n\n[_nghost-%COMP%] {\n display: block;\n width: 100%;\n}\n\n\n\n.mjo-ph-hero[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-lg, 12px);\n padding: var(--mj-space-4, 16px) var(--mj-space-5, 20px);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);\n margin-bottom: var(--mj-space-4, 16px);\n}\n\n.mjo-ph-hero__top[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-4, 16px);\n flex-wrap: wrap;\n}\n\n.mjo-ph-who[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-4, 16px);\n}\n\n.mjo-ph-avatar[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border-radius: var(--mj-radius-md, 8px);\n background: linear-gradient(135deg, #16a34a 0%, #15803d 100%);\n color: #ffffff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n box-shadow: 0 4px 10px rgba(22, 163, 74, 0.25);\n flex-shrink: 0;\n}\n\n.mjo-ph-avatar.is-reversal[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #9333ea 0%, #7e22ce 100%);\n box-shadow: 0 4px 10px rgba(147, 51, 234, 0.25);\n}\n\n.mjo-ph-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3, 10px);\n flex-wrap: wrap;\n}\n\n.mjo-ph-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-lg, 18px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n letter-spacing: -0.01em;\n}\n\n.mjo-ph-sub[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs, 12px);\n color: var(--mj-text-muted, #64748b);\n margin-top: 2px;\n}\n\n.mjo-ph-hero__aside[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-5, 20px);\n flex-wrap: wrap;\n}\n\n.mjo-ph-money[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-4, 16px);\n padding: var(--mj-space-2, 6px) var(--mj-space-4, 14px);\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.03));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 8px);\n}\n\n.mjo-ph-money[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n}\n\n.mjo-ph-kicker[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs, 11px);\n font-weight: var(--mj-font-semibold, 600);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted, #64748b);\n}\n\n.mjo-ph-amt[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm, 13px);\n font-weight: var(--mj-font-bold, 700);\n font-family: var(--mj-font-family-mono, monospace);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-ph-amt.is-balanced[_ngcontent-%COMP%] {\n color: #16a34a;\n}\n\n.mjo-ph-amt.is-unbalanced[_ngcontent-%COMP%] {\n color: #d97706;\n}\n\n.mjo-ph-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n\n\n.mjo-ph-tabs[_ngcontent-%COMP%] {\n margin-bottom: var(--mj-space-4, 16px);\n}\n\n\n\n.mjo-ph-workbench[_ngcontent-%COMP%] {\n display: flex;\n gap: var(--mj-space-4, 16px);\n align-items: flex-start;\n width: 100%;\n}\n\n.mjo-ph-money-pane[_ngcontent-%COMP%] {\n width: 380px;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-4, 16px);\n --mj-forms-field-label-width: 105px;\n --mj-forms-field-gap: 8px;\n}\n\n.mjo-ph-fields-stack[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mjo-ph-fields-stack[_ngcontent-%COMP%] mj-form-field[_ngcontent-%COMP%] {\n --mj-forms-field-label-width: 105px;\n --mj-forms-field-gap: 8px;\n}\n\n.mjo-ph-alloc-pane[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-4, 16px);\n}\n\n\n\n.mjo-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-lg, 10px);\n box-shadow: var(--mj-shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.04));\n overflow: hidden;\n}\n\n.mjo-card__header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--mj-space-3, 12px) var(--mj-space-4, 16px);\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.02));\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n.mjo-card__title[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm, 13px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-card__body[_ngcontent-%COMP%] {\n padding: var(--mj-space-4, 16px);\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3, 12px);\n}\n\n.mjo-card__body.p-0[_ngcontent-%COMP%] {\n padding: 0;\n}\n\n.mjo-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mjo-label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #94a3b8);\n}\n\n.mjo-input-money-wrap[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n}\n\n.mjo-currency-prefix[_ngcontent-%COMP%] {\n position: absolute;\n left: 14px;\n font-size: var(--mj-text-lg, 16px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-muted, #94a3b8);\n pointer-events: none;\n z-index: 2;\n}\n\n.mjo-input--money[_ngcontent-%COMP%] {\n padding-left: 30px !important;\n font-size: var(--mj-text-lg, 16px) !important;\n font-weight: var(--mj-font-bold, 700) !important;\n font-family: var(--mj-font-family-mono, monospace) !important;\n height: 42px !important;\n width: 100% !important;\n background: var(--mj-bg-surface-card, transparent) !important;\n color: var(--mj-text-primary, inherit) !important;\n border: 1px solid var(--mj-border-default, #334155) !important;\n border-radius: var(--mj-radius-md, 6px) !important;\n}\n\n.mjo-input--money[_ngcontent-%COMP%]:focus {\n border-color: var(--mj-brand-primary, #0076b6) !important;\n box-shadow: 0 0 0 2px rgba(0, 118, 182, 0.25) !important;\n}\n\n.mjo-net-calc[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 14px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.2));\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.08));\n border-radius: var(--mj-radius-md, 6px);\n margin-top: 4px;\n}\n\n.mjo-net-calc__label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #94a3b8);\n}\n\n.mjo-net-calc__val[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base, 15px);\n font-weight: var(--mj-font-bold, 700);\n font-family: var(--mj-font-family-mono, monospace);\n color: var(--mj-text-primary, #f8fafc);\n}\n\n.mjo-payer-chip[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n padding: 6px 10px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.03));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 6px);\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n}\n\n\n\n.mjo-card--books[_ngcontent-%COMP%] {\n border-color: rgba(0, 118, 182, 0.25);\n}\n\n\n\n\n\n.mjo-alloc-hero[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-lg, 12px);\n padding: var(--mj-space-3, 12px) var(--mj-space-4, 16px);\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-alloc-hero.is-balanced[_ngcontent-%COMP%] {\n border-color: rgba(22, 163, 74, 0.35);\n background: rgba(22, 163, 74, 0.03);\n}\n\n.mjo-alloc-hero.is-warning[_ngcontent-%COMP%] {\n border-color: rgba(217, 119, 6, 0.35);\n background: rgba(217, 119, 6, 0.03);\n}\n\n.mjo-alloc-hero.is-error[_ngcontent-%COMP%] {\n border-color: rgba(220, 38, 38, 0.35);\n background: rgba(220, 38, 38, 0.03);\n}\n\n.mjo-alloc-hero__stats[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-4, 16px);\n flex-wrap: wrap;\n}\n\n.mjo-alloc-stat[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.mjo-alloc-stat__kicker[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: var(--mj-font-semibold, 600);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted, #64748b);\n}\n\n.mjo-alloc-stat__val[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base, 15px);\n font-weight: var(--mj-font-bold, 700);\n font-family: var(--mj-font-family-mono, monospace);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-alloc-stat__op[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-alloc-hero__message[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n padding-top: 6px;\n border-top: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n\n\n.mjo-alloc-toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-3, 12px);\n flex-wrap: wrap;\n}\n\n.mjo-alloc-toolbar__left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-alloc-toolbar__title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-sm, 14px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-alloc-toolbar__right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-search-input-wrap[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.mjo-search-input-wrap[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n position: absolute;\n left: 8px;\n font-size: 11px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-search-input-wrap[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n padding-left: 24px;\n width: 160px;\n}\n\n\n\n.mjo-table-responsive[_ngcontent-%COMP%] {\n overflow-x: auto;\n width: 100%;\n}\n\n\n\n\n.mjo-required-mark[_ngcontent-%COMP%] {\n color: var(--mj-status-error, #dc2626);\n font-weight: var(--mj-font-bold, 700);\n}\n\n.mjo-input--invalid[_ngcontent-%COMP%] {\n border-color: var(--mj-status-error, #dc2626) !important;\n box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.12);\n}\n\n.mjo-field-hint--error[_ngcontent-%COMP%] {\n margin-top: 4px;\n font-size: var(--mj-text-xs, 12px);\n color: var(--mj-status-error, #dc2626);\n}\n\n.mjo-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: var(--mj-text-xs, 12px);\n}\n\n.mjo-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-header, rgba(0, 0, 0, 0.02));\n color: var(--mj-text-muted, #64748b);\n font-weight: var(--mj-font-semibold, 600);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n font-size: 11px;\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n text-align: left;\n}\n\n.mjo-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n vertical-align: middle;\n color: var(--mj-text-primary, #0f172a);\n}\n\n\n\n\n.mjo-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], \n.mjo-table[_ngcontent-%COMP%] .mjo-btn[_ngcontent-%COMP%], \n.mjo-table[_ngcontent-%COMP%] .font-mono[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n.mjo-order-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover, rgba(0, 0, 0, 0.02));\n}\n\n.mjo-order-row.is-expanded[_ngcontent-%COMP%] {\n background: rgba(0, 118, 182, 0.02);\n}\n\n.mjo-apply-input-wrap[_ngcontent-%COMP%] {\n position: relative;\n display: inline-flex;\n align-items: center;\n width: 100%;\n max-width: 110px;\n}\n\n.mjo-apply-dollar[_ngcontent-%COMP%] {\n position: absolute;\n left: 8px;\n font-size: 11px;\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-muted, #64748b);\n pointer-events: none;\n}\n\n.mjo-apply-input-wrap[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n padding-left: 18px;\n}\n\n.mjo-nested-lines-pane[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.02));\n border-top: 1px solid var(--mj-border-default, #e2e8f0);\n border-bottom: 2px solid var(--mj-border-default, #cbd5e1);\n padding: var(--mj-space-3, 10px) var(--mj-space-4, 16px);\n}\n\n.mjo-nested-lines-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n font-size: 11px;\n font-weight: var(--mj-font-bold, 700);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-secondary, #475569);\n margin-bottom: var(--mj-space-2, 6px);\n}\n\n.mjo-nested-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: var(--mj-text-xs, 12px);\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 6px);\n overflow: hidden;\n}\n\n.mjo-nested-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: rgba(0, 0, 0, 0.02);\n font-size: 10.5px;\n font-weight: var(--mj-font-semibold, 600);\n padding: 6px 10px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n.mjo-nested-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 6px 10px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n\n\n.mjo-ph-tab-body[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-4, 16px);\n}\n\n.mjo-accounting-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-4, 16px);\n flex-wrap: wrap;\n}\n\n.mjo-accounting-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-base, 15px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-accounting-header[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 2px 0 0 0;\n font-size: var(--mj-text-xs, 12px);\n}\n\n.mjo-view-toggle[_ngcontent-%COMP%] {\n display: flex;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.04));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 6px);\n padding: 2px;\n}\n\n.mjo-toggle-btn[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n padding: 4px 10px;\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #475569);\n border-radius: var(--mj-radius-sm, 4px);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mjo-toggle-btn.is-active[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card, #ffffff);\n color: var(--mj-text-primary, #0f172a);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.mjo-gl-cards-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));\n gap: var(--mj-space-4, 16px);\n}\n\n.mjo-table--compact[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .mjo-table--compact[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 6px 10px;\n}\n\n.mjo-table[_ngcontent-%COMP%] tfoot[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-header, rgba(0, 0, 0, 0.02));\n border-top: 2px solid var(--mj-border-default, #cbd5e1);\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-bold, 700);\n}\n\n.is-intercompany[_ngcontent-%COMP%] {\n background: rgba(0, 118, 182, 0.04);\n}\n\n.mjo-ic-tag[_ngcontent-%COMP%] {\n display: inline-block;\n font-size: 10px;\n font-weight: var(--mj-font-bold, 700);\n text-transform: uppercase;\n color: #0284c7;\n background: rgba(2, 132, 199, 0.12);\n padding: 1px 5px;\n border-radius: 3px;\n margin-left: 6px;\n}\n\n\n\n.mjo-btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--mj-space-2, 6px);\n height: 34px;\n padding: 0 14px;\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n border-radius: var(--mj-radius-md, 6px);\n cursor: pointer;\n border: 1px solid transparent;\n transition: all 0.15s ease;\n}\n\n.mjo-btn--primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary, #0076b6);\n color: #ffffff;\n}\n\n.mjo-btn--primary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #006094;\n}\n\n.mjo-btn--secondary[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.05));\n border-color: var(--mj-border-default, #cbd5e1);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-btn--secondary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.mjo-btn--outline[_ngcontent-%COMP%] {\n background: transparent;\n border-color: var(--mj-border-default, #cbd5e1);\n color: var(--mj-text-secondary, #475569);\n}\n\n.mjo-btn--outline[_ngcontent-%COMP%]:hover:not(:disabled) {\n border-color: var(--mj-brand-primary, #0076b6);\n color: var(--mj-brand-primary, #0076b6);\n}\n\n.mjo-btn--sm[_ngcontent-%COMP%] {\n height: 30px;\n padding: 0 10px;\n font-size: 11.5px;\n}\n\n.mjo-btn--xs[_ngcontent-%COMP%] {\n height: 24px;\n padding: 0 8px;\n font-size: 11px;\n}\n\n.mjo-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.mjo-icon-btn[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-text-muted, #64748b);\n cursor: pointer;\n padding: 4px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.mjo-icon-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-link[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-brand-primary, #0076b6);\n cursor: pointer;\n padding: 0;\n font-size: inherit;\n text-align: left;\n}\n\n.mjo-link[_ngcontent-%COMP%]:hover {\n text-decoration: underline;\n}\n\n.mjo-status-chip[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: var(--mj-font-bold, 700);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n padding: 2px 8px;\n border-radius: 4px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.mjo-status-chip--draft[_ngcontent-%COMP%] {\n background: rgba(100, 116, 139, 0.12);\n color: #475569;\n}\n\n.mjo-status-chip--active[_ngcontent-%COMP%] {\n background: rgba(22, 163, 74, 0.12);\n color: #16a34a;\n}\n\n.mjo-status-chip--purple[_ngcontent-%COMP%] {\n background: rgba(147, 51, 234, 0.12);\n color: #9333ea;\n}\n\n.mjo-status-chip--error[_ngcontent-%COMP%] {\n background: rgba(220, 38, 38, 0.12);\n color: #dc2626;\n}\n\n.mjo-status-chip--warning[_ngcontent-%COMP%] {\n background: rgba(217, 119, 6, 0.12);\n color: #d97706;\n}\n\n.mjo-company-pill[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #475569);\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.04));\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.mjo-sku-chip[_ngcontent-%COMP%] {\n font-family: var(--mj-font-family-mono, monospace);\n font-size: 10px;\n color: var(--mj-text-muted, #64748b);\n background: rgba(0, 0, 0, 0.04);\n padding: 1px 4px;\n border-radius: 3px;\n margin-left: 4px;\n}\n\n.mjo-badge[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: var(--mj-font-semibold, 600);\n padding: 2px 6px;\n border-radius: 12px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.05));\n color: var(--mj-text-secondary, #475569);\n}\n\n.mjo-badge--error[_ngcontent-%COMP%] {\n background: rgba(220, 38, 38, 0.12);\n color: #dc2626;\n}\n\n.mjo-badge--success[_ngcontent-%COMP%] {\n background: rgba(22, 163, 74, 0.12);\n color: #16a34a;\n}\n\n.mjo-empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: var(--mj-space-6, 32px) var(--mj-space-4, 16px);\n text-align: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-sm, 14px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-xs, 12px);\n color: var(--mj-text-muted, #64748b);\n max-width: 380px;\n}\n\n.mjo-alert[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3, 10px);\n padding: 10px 14px;\n border-radius: var(--mj-radius-md, 8px);\n font-size: var(--mj-text-xs, 12px);\n margin-bottom: var(--mj-space-3, 12px);\n}\n\n.mjo-alert--error[_ngcontent-%COMP%] {\n background: rgba(220, 38, 38, 0.08);\n border: 1px solid rgba(220, 38, 38, 0.25);\n color: #dc2626;\n}\n\n.mjo-subtext[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted, #64748b);\n}\n\n.text-right[_ngcontent-%COMP%] { text-align: right; }\n.font-mono[_ngcontent-%COMP%] { font-family: var(--mj-font-family-mono, monospace); }\n.font-bold[_ngcontent-%COMP%] { font-weight: var(--mj-font-bold, 700); }\n.text-muted[_ngcontent-%COMP%] { color: var(--mj-text-muted, #64748b); }\n.text-success[_ngcontent-%COMP%] { color: #16a34a; }\n.text-warning[_ngcontent-%COMP%] { color: #d97706; }\n.text-danger[_ngcontent-%COMP%] { color: #dc2626; }\n.w-8[_ngcontent-%COMP%] { width: 32px; }\n.w-16[_ngcontent-%COMP%] { width: 64px; }\n.w-20[_ngcontent-%COMP%] { width: 80px; }\n.w-24[_ngcontent-%COMP%] { width: 96px; }\n.w-36[_ngcontent-%COMP%] { width: 144px; }\n.flex[_ngcontent-%COMP%] { display: flex; }\n.gap-2[_ngcontent-%COMP%] { gap: 8px; }\n.col-span-full[_ngcontent-%COMP%] { grid-column: 1 / -1; }\n.text-info[_ngcontent-%COMP%] { color: #0284c7; }\n\n\n\n.mjo-instrument-box[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.02));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 8px);\n padding: var(--mj-space-3, 12px);\n margin: var(--mj-space-2, 6px) 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3, 10px);\n}\n\n.mjo-instrument-box__title[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: 6px;\n padding-bottom: 6px;\n border-bottom: 1px dashed var(--mj-border-default, #e2e8f0);\n}\n\n.mjo-instrument-box__grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-instrument-box[_ngcontent-%COMP%] .mjo-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mjo-instrument-box[_ngcontent-%COMP%] .mjo-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: var(--mj-font-medium, 500);\n color: var(--mj-text-secondary, #475569);\n}\n\n.mjo-apply-input-wrap.is-derived[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.03));\n color: var(--mj-text-secondary, #475569);\n cursor: not-allowed;\n border-style: dashed;\n}"] });
2155
2198
  };
2156
2199
  BizAppsPaymentHeaderFormComponent = __decorate([
2157
2200
  RegisterClass(BaseFormComponent, 'MJ_BizApps_Orders: Payment Headers', 2)
@@ -2159,9 +2202,9 @@ BizAppsPaymentHeaderFormComponent = __decorate([
2159
2202
  export { BizAppsPaymentHeaderFormComponent };
2160
2203
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BizAppsPaymentHeaderFormComponent, [{
2161
2204
  type: Component,
2162
- args: [{ standalone: false, selector: 'bizapps-payment-header-form', template: "@if (record) {\n<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"before-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- ================================================================\n HERO IDENTITY HEADER CARD & SUMMARY METRIC STRIP\n ================================================================ -->\n <div class=\"mjo-ph-hero\">\n <div class=\"mjo-ph-hero__top\">\n <div class=\"mjo-ph-who\">\n <div class=\"mjo-ph-avatar\" [class.is-reversal]=\"IsReversal\">\n <i [class]=\"PaymentAvatarIcon\"></i>\n </div>\n <div>\n <div class=\"mjo-ph-title-row\">\n <h1 class=\"mjo-ph-title\">\n {{ record.PaymentNumber || 'New payment' }} \u00B7 {{ FormattedGrossAmount }}\n </h1>\n <span [class]=\"StatusBadgeClass\">{{ record.Status || 'Draft' }}</span>\n @if (IsReversal) {\n <span class=\"mjo-status-chip mjo-status-chip--purple\">\n <i class=\"fa-solid fa-rotate-left\"></i> Reversal\n </span>\n }\n </div>\n <div class=\"mjo-ph-sub\">{{ HeaderSubtitle }}</div>\n </div>\n </div>\n\n <div class=\"mjo-ph-hero__aside\">\n <div class=\"mjo-ph-money\">\n <div>\n <span class=\"mjo-ph-kicker\">Gross</span>\n <span class=\"mjo-ph-amt\">{{ FormattedGrossAmount }}</span>\n </div>\n <div>\n <span class=\"mjo-ph-kicker\">Fee</span>\n <span class=\"mjo-ph-amt\">{{ FormattedFee }}</span>\n </div>\n <div>\n <span class=\"mjo-ph-kicker\">Net</span>\n <span class=\"mjo-ph-amt\">{{ FormattedNetAmount }}</span>\n </div>\n <div>\n <span class=\"mjo-ph-kicker\">Allocations</span>\n <span class=\"mjo-ph-amt\" [class.is-balanced]=\"IsAllocationBalanced\" [class.is-unbalanced]=\"!IsAllocationBalanced && TotalAllocated > 0\">\n @if (IsCaptured) {\n {{ GetSectionRowCount('mJBizAppsOrdersPaymentLines') || 0 }} Settled\n } @else {\n ${{ TotalAllocated.toFixed(2) }}\n }\n </span>\n </div>\n </div>\n\n @if (!IsCaptured) {\n <div class=\"mjo-ph-actions\">\n <button type=\"button\" class=\"mjo-btn mjo-btn--secondary\" (click)=\"SaveAsDraft()\" [disabled]=\"Saving || Capturing\">\n <i class=\"fa-solid fa-floppy-disk\"></i> {{ Saving ? 'Saving\u2026' : 'Save draft' }}\n </button>\n <button type=\"button\" class=\"mjo-btn mjo-btn--primary\" (click)=\"CapturePayment()\" [disabled]=\"Capturing || Saving || !IsAllocationBalanced || !record.Amount || !hasPayer\">\n <i class=\"fa-solid fa-check-double\"></i> {{ Capturing ? 'Capturing\u2026' : 'Capture & Book' }}\n </button>\n </div>\n }\n </div>\n </div>\n </div>\n\n <!-- TAB NAVIGATION STRIP -->\n <div class=\"mjo-ph-tabs\">\n <mj-tab-nav [Tabs]=\"ContextTabs\" [ActiveKey]=\"ActiveTab ?? ''\" (TabChange)=\"SelectTab($event)\"></mj-tab-nav>\n </div>\n\n @if (CaptureError) {\n <div class=\"mjo-alert mjo-alert--error\">\n <i class=\"fa-solid fa-circle-exclamation\"></i>\n <div>\n <strong>Failed to capture payment:</strong> {{ CaptureError }}\n </div>\n </div>\n }\n\n <!-- ================================================================\n TAB 1: PAYMENT & ALLOCATION WORKBENCH\n ================================================================ -->\n @if (ActiveTab === 'payment') {\n <div class=\"mjo-ph-workbench\">\n\n <!-- LEFT COLUMN: THE MONEY & PAYER (380px) -->\n <aside class=\"mjo-ph-money-pane\">\n\n <!-- 1. Payer Card -->\n <div class=\"mjo-card\">\n <div class=\"mjo-card__header\">\n <div class=\"mjo-card__title\">\n <i class=\"fa-solid fa-user-tag\"></i> Who is paying?\n </div>\n </div>\n <div class=\"mjo-card__body\">\n <div class=\"mjo-ph-fields-stack\">\n <mj-form-field\n [Record]=\"record\"\n [ShowLabel]=\"true\"\n DisplayNameOverride=\"Organization\"\n FieldName=\"BillToOrganizationID\"\n Type=\"textbox\"\n LinkType=\"Record\"\n [EditMode]=\"ComposeMode\"\n [FormContext]=\"formContext\"\n (Navigate)=\"OnFormNavigate($event); OnPayerSelectionChanged()\">\n </mj-form-field>\n <mj-form-field\n [Record]=\"record\"\n [ShowLabel]=\"true\"\n DisplayNameOverride=\"Person\"\n FieldName=\"BillToPersonID\"\n Type=\"textbox\"\n LinkType=\"Record\"\n [EditMode]=\"ComposeMode\"\n [FormContext]=\"formContext\"\n (Navigate)=\"OnFormNavigate($event); OnPayerSelectionChanged()\">\n </mj-form-field>\n </div>\n @if (hasPayer) {\n <div class=\"mjo-payer-chip\">\n <i class=\"fa-solid fa-circle-check text-success\"></i>\n <span>{{ PayerDisplayName }}</span>\n @if (OpenOrders.length > 0) {\n <span class=\"mjo-badge\">{{ OpenOrders.length }} unpaid orders</span>\n }\n </div>\n }\n </div>\n </div>\n\n <!-- 2. Payment Details Card -->\n <div class=\"mjo-card\">\n <div class=\"mjo-card__header\">\n <div class=\"mjo-card__title\">\n <i class=\"fa-solid fa-money-check-dollar\"></i> Payment details\n </div>\n </div>\n <div class=\"mjo-card__body\">\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Amount received ($)</label>\n <div class=\"mjo-input-money-wrap\">\n <span class=\"mjo-currency-prefix\">$</span>\n <input\n type=\"number\"\n class=\"mj-input is-num mjo-input--money\"\n [ngModel]=\"record.Amount\"\n (ngModelChange)=\"OnAmountChanged($event)\"\n [disabled]=\"!ComposeMode\"\n placeholder=\"0.00\"\n step=\"0.01\"\n />\n </div>\n </div>\n\n <div class=\"mjo-ph-fields-stack\">\n <mj-form-field\n [Record]=\"record\"\n [ShowLabel]=\"true\"\n DisplayNameOverride=\"Payment Date\"\n FieldName=\"PaymentDate\"\n Type=\"datepicker\"\n [EditMode]=\"ComposeMode\"\n [FormContext]=\"formContext\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-form-field>\n\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Payment Type</label>\n @if (ComposeMode && PaymentTypes.length > 0) {\n <select class=\"mj-input\" [ngModel]=\"record.PaymentTypeID\" (ngModelChange)=\"OnPaymentTypeSelected($event)\">\n <option [ngValue]=\"null\">Select payment type\u2026</option>\n @for (pt of PaymentTypes; track pt.ID) {\n <option [value]=\"pt.ID\">{{ pt.Name }}</option>\n }\n </select>\n } @else {\n <mj-form-field\n [Record]=\"record\"\n [ShowLabel]=\"false\"\n FieldName=\"PaymentTypeID\"\n Type=\"textbox\"\n LinkType=\"Record\"\n [EditMode]=\"ComposeMode\"\n [FormContext]=\"formContext\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-form-field>\n }\n </div>\n\n <!-- TENDER-SPECIFIC INSTRUMENT CAPTURE (PaymentDetail) -->\n @if (PaymentTypeCode === 'check' || (SelectedPaymentType?.RequiresReference && !RequiresInstrument)) {\n <div class=\"mjo-instrument-box\">\n <div class=\"mjo-instrument-box__title\">\n <i class=\"fa-solid fa-money-check\"></i> Check details\n </div>\n <div class=\"mjo-instrument-box__grid\">\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Check \u2116 <span class=\"text-danger\">*</span></label>\n <input type=\"text\" class=\"mj-input font-mono\" [(ngModel)]=\"ReferenceNumber\" [disabled]=\"!ComposeMode\" placeholder=\"e.g. 10428\" autocomplete=\"off\" />\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Check Date</label>\n <input type=\"date\" class=\"mj-input\" [(ngModel)]=\"InstrumentDateInput\" [disabled]=\"!ComposeMode\" />\n </div>\n <div class=\"mjo-field col-span-full\">\n <label class=\"mjo-label\">Bank Name</label>\n <input type=\"text\" class=\"mj-input\" [(ngModel)]=\"BankName\" [disabled]=\"!ComposeMode\" placeholder=\"e.g. Chase, Bank of America\" />\n </div>\n </div>\n </div>\n } @else if (PaymentTypeCode === 'card' || RequiresInstrument) {\n <div class=\"mjo-instrument-box\">\n <div class=\"mjo-instrument-box__title\">\n <i class=\"fa-solid fa-credit-card\"></i> Card instrument details\n </div>\n <div class=\"mjo-instrument-box__grid\">\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Card Brand</label>\n <select class=\"mj-input\" [(ngModel)]=\"CardBrand\" [disabled]=\"!ComposeMode\">\n <option value=\"\">Select Brand</option>\n <option value=\"Visa\">Visa</option>\n <option value=\"MasterCard\">MasterCard</option>\n <option value=\"American Express\">American Express</option>\n <option value=\"Discover\">Discover</option>\n <option value=\"Other\">Other</option>\n </select>\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Last 4 Digits</label>\n <input type=\"text\" class=\"mj-input font-mono\" maxlength=\"4\" [(ngModel)]=\"CardLast4\" [disabled]=\"!ComposeMode\" placeholder=\"4242\" />\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Expiry (MM / YYYY)</label>\n <div class=\"flex gap-2\">\n <input type=\"number\" min=\"1\" max=\"12\" class=\"mj-input font-mono w-16\" [(ngModel)]=\"CardExpMonth\" [disabled]=\"!ComposeMode\" placeholder=\"MM\" />\n <input type=\"number\" min=\"2025\" max=\"2045\" class=\"mj-input font-mono w-24\" [(ngModel)]=\"CardExpYear\" [disabled]=\"!ComposeMode\" placeholder=\"YYYY\" />\n </div>\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Cardholder Name</label>\n <input type=\"text\" class=\"mj-input\" [(ngModel)]=\"CardHolderName\" [disabled]=\"!ComposeMode\" placeholder=\"Name on card\" />\n </div>\n <div class=\"mjo-field col-span-full\">\n <label class=\"mjo-label\">Auth / Approval \u2116</label>\n <input type=\"text\" class=\"mj-input\" [(ngModel)]=\"ReferenceNumber\" [disabled]=\"!ComposeMode\" placeholder=\"e.g. AUTH-98210\" />\n </div>\n </div>\n </div>\n } @else if (PaymentTypeCode === 'ach') {\n <div class=\"mjo-instrument-box\">\n <div class=\"mjo-instrument-box__title\">\n <i class=\"fa-solid fa-building-columns\"></i> Bank transfer / ACH details\n </div>\n <div class=\"mjo-instrument-box__grid\">\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Bank Name</label>\n <input type=\"text\" class=\"mj-input\" [(ngModel)]=\"BankName\" [disabled]=\"!ComposeMode\" placeholder=\"e.g. Wells Fargo\" />\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Account Type</label>\n <select class=\"mj-input\" [(ngModel)]=\"BankAccountType\" [disabled]=\"!ComposeMode\">\n <option [ngValue]=\"null\">Select Type</option>\n <option value=\"Checking\">Checking</option>\n <option value=\"Savings\">Savings</option>\n </select>\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Routing Last 4</label>\n <input type=\"text\" class=\"mj-input font-mono\" maxlength=\"4\" [(ngModel)]=\"RoutingLast4\" [disabled]=\"!ComposeMode\" placeholder=\"1234\" />\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Account Last 4</label>\n <input type=\"text\" class=\"mj-input font-mono\" maxlength=\"4\" [(ngModel)]=\"AccountLast4\" [disabled]=\"!ComposeMode\" placeholder=\"5678\" />\n </div>\n <div class=\"mjo-field col-span-full\">\n <label class=\"mjo-label\">Trace / Reference \u2116</label>\n <input type=\"text\" class=\"mj-input\" [(ngModel)]=\"ReferenceNumber\" [disabled]=\"!ComposeMode\" placeholder=\"Trace #\" />\n </div>\n </div>\n </div>\n } @else if (RequiresReference) {\n <div class=\"mjo-instrument-box\">\n <div class=\"mjo-instrument-box__title\">\n <i class=\"fa-solid fa-receipt\"></i> Reference details\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Reference / Wire Confirmation \u2116 <span class=\"text-danger\">*</span></label>\n <input type=\"text\" class=\"mj-input\" [(ngModel)]=\"ReferenceNumber\" [disabled]=\"!ComposeMode\" placeholder=\"Confirmation or transfer id\" />\n </div>\n </div>\n }\n\n <mj-form-field\n [Record]=\"record\"\n [ShowLabel]=\"true\"\n DisplayNameOverride=\"Receiving Co.\"\n FieldName=\"ReceivingCompanyID\"\n Type=\"textbox\"\n LinkType=\"Record\"\n [EditMode]=\"ComposeMode\"\n [FormContext]=\"formContext\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-form-field>\n\n <mj-form-field\n [Record]=\"record\"\n [ShowLabel]=\"true\"\n DisplayNameOverride=\"Processing Fee\"\n FieldName=\"ProcessingFeeAmount\"\n Type=\"number\"\n [EditMode]=\"ComposeMode\"\n [FormContext]=\"formContext\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-form-field>\n </div>\n\n <div class=\"mjo-net-calc\">\n <span class=\"mjo-net-calc__label\">Net Settlement Amount</span>\n <span class=\"mjo-net-calc__val\">{{ FormattedNetAmount }}</span>\n </div>\n </div>\n </div>\n\n </aside>\n\n <!-- RIGHT COLUMN: ALLOCATION WORKBENCH -->\n <main class=\"mjo-ph-alloc-pane\">\n\n <!-- 1. Balance Status Hero Strip -->\n <div class=\"mjo-alloc-hero\" [class.is-balanced]=\"IsAllocationBalanced\" [class.is-warning]=\"!IsAllocationBalanced && UnallocatedRemainder > 0\" [class.is-error]=\"UnallocatedRemainder < 0\">\n <div class=\"mjo-alloc-hero__stats\">\n <div class=\"mjo-alloc-stat\">\n <span class=\"mjo-alloc-stat__kicker\">Payment Received</span>\n <span class=\"mjo-alloc-stat__val\">${{ (record.Amount || 0).toFixed(2) }}</span>\n </div>\n <div class=\"mjo-alloc-stat__op\"><i class=\"fa-solid fa-minus\"></i></div>\n <div class=\"mjo-alloc-stat\">\n <span class=\"mjo-alloc-stat__kicker\">Allocated</span>\n <span class=\"mjo-alloc-stat__val\">${{ TotalAllocated.toFixed(2) }}</span>\n </div>\n <div class=\"mjo-alloc-stat__op\"><i class=\"fa-solid fa-equals\"></i></div>\n <div class=\"mjo-alloc-stat\">\n <span class=\"mjo-alloc-stat__kicker\">Unallocated Remainder</span>\n <span class=\"mjo-alloc-stat__val\" [class.text-danger]=\"UnallocatedRemainder < 0\">\n ${{ Math.abs(UnallocatedRemainder).toFixed(2) }}\n </span>\n </div>\n </div>\n\n <div class=\"mjo-alloc-hero__message\">\n @if (IsAllocationBalanced) {\n <i class=\"fa-solid fa-circle-check text-success\"></i>\n <span>Allocations tie 100% to payment received. Ready to capture and book.</span>\n } @else if (UnallocatedRemainder > 0) {\n <i class=\"fa-solid fa-circle-info text-warning\"></i>\n <span>${{ UnallocatedRemainder.toFixed(2) }} remaining to allocate before capturing.</span>\n } @else {\n <i class=\"fa-solid fa-triangle-exclamation text-danger\"></i>\n <span>Over-allocated by ${{ Math.abs(UnallocatedRemainder).toFixed(2) }}. Please adjust amounts.</span>\n }\n </div>\n </div>\n <!-- 2. Allocation Toolbar -->\n <div class=\"mjo-alloc-toolbar\">\n <div class=\"mjo-alloc-toolbar__left\">\n <h2 class=\"mjo-alloc-toolbar__title\">\n <i class=\"fa-solid fa-receipt\"></i> Open orders\n </h2>\n @if (OpenOrders.length > 0) {\n <span class=\"mjo-badge\">{{ FilteredOpenOrders.length }} available</span>\n }\n </div>\n\n @if (!IsCaptured && OpenOrders.length > 0) {\n <div class=\"mjo-alloc-toolbar__right\">\n <div class=\"mjo-search-input-wrap\">\n <i class=\"fa-solid fa-magnifying-glass\"></i>\n <input type=\"text\" class=\"mjo-input mjo-input--sm\" [(ngModel)]=\"SearchQuery\" placeholder=\"Filter orders\u2026\" />\n </div>\n <button type=\"button\" class=\"mjo-btn mjo-btn--secondary mjo-btn--sm\" (click)=\"AutoApplyOldestFirst()\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i> Auto-apply oldest\n </button>\n <button type=\"button\" class=\"mjo-btn mjo-btn--outline mjo-btn--sm\" (click)=\"ClearAllocations()\">\n <i class=\"fa-solid fa-eraser\"></i> Clear all\n </button>\n </div>\n }\n </div>\n\n <!-- 3. Open Orders & Order Lines Allocation Table -->\n <div class=\"mjo-card mjo-card--table\">\n @if (LoadingOpenOrders) {\n <div class=\"mjo-empty-state\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x text-muted\"></i>\n <p>Loading open orders\u2026</p>\n </div>\n } @else if (OpenOrders.length === 0) {\n <div class=\"mjo-empty-state\">\n <i class=\"fa-solid fa-receipt fa-3x text-muted\"></i>\n <h3>No unpaid orders found</h3>\n <p>There are zero open unpaid orders. Any recorded payment will be retained as unallocated credit.</p>\n </div>\n } @else {\n <div class=\"mjo-table-responsive\">\n <table class=\"mjo-table\">\n <thead>\n <tr>\n <th class=\"w-8\"></th>\n @if (!hasPayer) {\n <th>Customer</th>\n }\n <th>Order \u2116</th>\n <th>Date</th>\n <th>Due</th>\n <th>Company</th>\n <th class=\"text-right\">Gross</th>\n <th class=\"text-right\">Open Balance</th>\n <th class=\"text-right w-36\">Apply Amount</th>\n <th class=\"text-right\">Leaves Balance</th>\n <th class=\"w-24\"></th>\n </tr>\n </thead>\n <tbody>\n @for (order of FilteredOpenOrders; track order.ID) {\n <tr class=\"mjo-order-row\" [class.is-expanded]=\"IsOrderExpanded(order.ID || '')\">\n <td>\n <button type=\"button\" class=\"mjo-icon-btn\" (click)=\"ToggleOrderExpanded(order.ID || '')\" title=\"Toggle line items\">\n <i class=\"fa-solid\" [class.fa-chevron-down]=\"IsOrderExpanded(order.ID || '')\" [class.fa-chevron-right]=\"!IsOrderExpanded(order.ID || '')\"></i>\n </button>\n </td>\n @if (!hasPayer) {\n <td class=\"font-bold\">{{ order.BillToOrganization || order.BillToPerson || '\u2014' }}</td>\n }\n <td>\n <button type=\"button\" class=\"mjo-link\" (click)=\"OpenOrderRecord(order, $event)\">\n <strong>{{ order.OrderNumber }}</strong>\n </button>\n @if (order.Description) {\n <div class=\"mjo-subtext\">{{ order.Description }}</div>\n }\n </td>\n <td>{{ order.OrderDate ? FormatOrderDueDate(order) : '\u2014' }}</td>\n <td>\n @if (GetOrderDaysOverdue(order) > 0) {\n <span class=\"mjo-badge mjo-badge--error\">{{ GetOrderDaysOverdue(order) }}d overdue</span>\n } @else {\n <span>{{ FormatOrderDueDate(order) }}</span>\n }\n </td>\n <td>\n <span class=\"mjo-company-pill\">{{ order.Company || 'Default' }}</span>\n </td>\n <td class=\"text-right font-mono\">${{ (order.TotalGross || 0).toFixed(2) }}</td>\n <td class=\"text-right font-mono font-bold\">${{ (order.Balance ?? order.TotalGross ?? 0).toFixed(2) }}</td>\n <td class=\"text-right\">\n <div class=\"mjo-apply-input-wrap\" [class.is-derived]=\"HasLineAllocations(order.ID || '')\">\n <span class=\"mjo-apply-dollar\">$</span>\n <input\n type=\"number\"\n class=\"mjo-input mjo-input--sm mjo-input--num\"\n [ngModel]=\"GetOrderAllocation(order.ID || '')\"\n (ngModelChange)=\"SetOrderAllocation(order.ID || '', $event)\"\n [disabled]=\"IsCaptured || HasLineAllocations(order.ID || '')\"\n step=\"0.01\"\n min=\"0\"\n [title]=\"HasLineAllocations(order.ID || '') ? 'Order allocation is driven by line item allocations below' : 'Enter amount to allocate to order'\"\n />\n </div>\n @if (HasLineAllocations(order.ID || '')) {\n <div class=\"mjo-subtext text-info\">\n <i class=\"fa-solid fa-layer-group\"></i> Lines allocated\n </div>\n }\n </td>\n <td class=\"text-right font-mono\" [class.text-muted]=\"CalculateLeavesBalance(order) === 0\">\n ${{ CalculateLeavesBalance(order).toFixed(2) }}\n </td>\n <td class=\"text-right\">\n @if (!IsCaptured) {\n <button\n type=\"button\"\n class=\"mjo-btn mjo-btn--outline mjo-btn--sm\"\n (click)=\"FullPayOrder(order)\"\n [disabled]=\"(order.Balance ?? order.TotalGross ?? 0) <= 0\"\n >\n Pay in Full\n </button>\n }\n </td>\n </tr>\n\n <!-- EXPANDED CHILD ROW: INDIVIDUAL ORDER LINES -->\n @if (IsOrderExpanded(order.ID || '')) {\n <tr class=\"mjo-lines-row\">\n <td [attr.colspan]=\"hasPayer ? 10 : 11\" class=\"p-0\">\n <div class=\"mjo-nested-lines-pane\">\n <div class=\"mjo-nested-lines-header\">\n <i class=\"fa-solid fa-layer-group\"></i>\n <span>Order Line Items (Targeted Line Allocations)</span>\n </div>\n <table class=\"mjo-nested-table\">\n <thead>\n <tr>\n <th>#</th>\n <th>Product</th>\n <th class=\"text-right\">Unit Price</th>\n <th class=\"text-right\">Gross</th>\n <th class=\"text-right w-36\">Line Allocation</th>\n <th class=\"w-20\"></th>\n </tr>\n </thead>\n <tbody>\n @for (line of GetOrderLines(order.ID || ''); track line.ID) {\n <tr>\n <td>{{ line.LineNumber }}</td>\n <td>\n <strong>{{ line.Product || 'Line Item' }}</strong>\n </td>\n <td class=\"text-right font-mono\">${{ (line.UnitPrice || 0).toFixed(2) }}</td>\n <td class=\"text-right font-mono\">${{ (line.LineTotalGross || 0).toFixed(2) }}</td>\n <td class=\"text-right\">\n <div class=\"mjo-apply-input-wrap\">\n <span class=\"mjo-apply-dollar\">$</span>\n <input\n type=\"number\"\n class=\"mjo-input mjo-input--xs mjo-input--num\"\n [ngModel]=\"GetLineAllocation(line.ID || '')\"\n (ngModelChange)=\"SetLineAllocation(line.ID || '', $event, order.ID)\"\n [disabled]=\"IsCaptured\"\n step=\"0.01\"\n min=\"0\"\n />\n </div>\n </td>\n <td class=\"text-right\">\n @if (!IsCaptured) {\n <button type=\"button\" class=\"mjo-btn mjo-btn--outline mjo-btn--xs\" (click)=\"FullPayLine(order, line)\">\n Line Pay\n </button>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n </td>\n </tr>\n }\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n\n </main>\n\n </div>\n }\n\n <!-- ================================================================\n TAB 2: ACCOUNTING & GENERAL LEDGER (CAPTURED PAYMENTS)\n ================================================================ -->\n @if (ActiveTab === 'accounting') {\n <div class=\"mjo-ph-tab-body\">\n <div class=\"mjo-accounting-header\">\n <div>\n <h2><i class=\"fa-solid fa-book\"></i> General Ledger Postings</h2>\n <p class=\"text-muted\">Double-entry balanced accounting entries booked across operating and receivable accounts.</p>\n </div>\n <div class=\"mjo-view-toggle\">\n <button type=\"button\" class=\"mjo-toggle-btn\" [class.is-active]=\"AccountingView === 'summary'\" (click)=\"SetAccountingView('summary')\">\n Summary (Rolled-up)\n </button>\n <button type=\"button\" class=\"mjo-toggle-btn\" [class.is-active]=\"AccountingView === 'detail'\" (click)=\"SetAccountingView('detail')\">\n By Journal Entry\n </button>\n </div>\n </div>\n\n @if (AccountingView === 'summary') {\n @if (RollupLoading) {\n <div class=\"mjo-empty-state\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x text-muted\"></i>\n <p>Rolling up general ledger accounts\u2026</p>\n </div>\n } @else if (RollupError) {\n <div class=\"mjo-alert mjo-alert--error\">{{ RollupError }}</div>\n } @else if (RollupCards.length === 0) {\n <div class=\"mjo-empty-state\">\n <i class=\"fa-solid fa-book-open fa-3x text-muted\"></i>\n <h3>No journal entries booked yet</h3>\n <p>Journal entries are booked automatically upon capturing and settling the payment.</p>\n </div>\n } @else {\n <div class=\"mjo-gl-cards-grid\">\n @for (card of RollupCards; track card.CompanyID) {\n <div class=\"mjo-card mjo-card--gl\">\n <div class=\"mjo-card__header\">\n <div>\n <h3 class=\"mjo-card__title\">{{ card.Company }}</h3>\n <div class=\"mjo-subtext\">{{ card.Rows.length }} {{ card.Rows.length === 1 ? 'line' : 'lines' }}</div>\n </div>\n <span class=\"mjo-badge\" [class.mjo-badge--success]=\"CardIsBalanced(card)\" [class.mjo-badge--error]=\"!CardIsBalanced(card)\">\n {{ CardIsBalanced(card) ? 'Balanced' : 'Out of Balance' }}\n </span>\n </div>\n <div class=\"mjo-card__body p-0\">\n <table class=\"mjo-table mjo-table--compact\">\n <thead>\n <tr>\n <th>GL Account</th>\n <th>Name</th>\n <th class=\"text-right\">Debit</th>\n <th class=\"text-right\">Credit</th>\n </tr>\n </thead>\n <tbody>\n @for (row of card.Rows; track row.Key) {\n <tr>\n <td class=\"font-mono\">{{ row.AccountCode || '\u2014' }}</td>\n <td>\n <span>{{ row.AccountName }}</span>\n </td>\n <td class=\"text-right font-mono\">{{ row.Debit ? RollupAmount(row.Debit) : '\u2014' }}</td>\n <td class=\"text-right font-mono\">{{ row.Credit ? RollupAmount(row.Credit) : '\u2014' }}</td>\n </tr>\n }\n </tbody>\n <tfoot>\n <tr>\n <th colspan=\"2\">Total</th>\n <th class=\"text-right font-mono\">${{ card.TotalDebit.toFixed(2) }}</th>\n <th class=\"text-right font-mono\">${{ card.TotalCredit.toFixed(2) }}</th>\n </tr>\n </tfoot>\n </table>\n </div>\n </div>\n }\n </div>\n }\n } @else {\n @if (PaymentJournalEntryParams) {\n <mj-explorer-entity-data-grid\n [Params]=\"PaymentJournalEntryParams\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"false\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-explorer-entity-data-grid>\n }\n }\n </div>\n }\n\n <!-- ================================================================\n TAB 3: DETAILS & NOTES\n ================================================================ -->\n @if (ActiveTab === 'details') {\n <div class=\"mjo-ph-tab-body\">\n <div class=\"mjo-form-sections-grid\">\n\n <!-- Processing & Gateway Details -->\n <div class=\"mjo-card\">\n <div class=\"mjo-card__header\">\n <h3 class=\"mjo-card__title\"><i class=\"fa-solid fa-gears\"></i> Processing &amp; Gateway Details</h3>\n </div>\n <div class=\"mjo-card__body mjo-form-grid-2\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"PaymentProviderID\" Type=\"textbox\" LinkType=\"Record\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"PaymentIntentID\" Type=\"textbox\" LinkType=\"Record\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"PaymentDetailID\" Type=\"textbox\" LinkType=\"Record\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ProviderChargeID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ProviderRefundID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"IdempotencyKey\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </div>\n </div>\n\n <!-- Reversal & Notes -->\n <div class=\"mjo-card\">\n <div class=\"mjo-card__header\">\n <h3 class=\"mjo-card__title\"><i class=\"fa-solid fa-note-sticky\"></i> Reversal Info &amp; Notes</h3>\n </div>\n <div class=\"mjo-card__body mjo-form-grid-2\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ReversesPaymentHeaderID\" Type=\"textbox\" LinkType=\"Record\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ReversalReason\" Type=\"textarea\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Description\" Type=\"textarea\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Notes\" Type=\"textarea\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </div>\n </div>\n\n <!-- Audit Metadata -->\n <div class=\"mjo-card\">\n <div class=\"mjo-card__header\">\n <h3 class=\"mjo-card__title\"><i class=\"fa-solid fa-clock-rotate-left\"></i> System Metadata</h3>\n </div>\n <div class=\"mjo-card__body mjo-form-grid-2\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"__mj_CreatedAt\" Type=\"textbox\" [EditMode]=\"false\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"__mj_UpdatedAt\" Type=\"textbox\" [EditMode]=\"false\" [FormContext]=\"formContext\"></mj-form-field>\n </div>\n </div>\n\n </div>\n </div>\n }\n\n <!-- ================================================================\n TAB 4: RELATED RECORDS\n ================================================================ -->\n @if (ActiveTab === 'related') {\n <div class=\"mjo-ph-tab-body\">\n <mj-collapsible-panel\n SectionKey=\"mJBizAppsOrdersStoredValueTransactions\"\n SectionName=\"Stored Value &amp; Account Credit Transactions\"\n Icon=\"fa fa-wallet\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJBizAppsOrdersStoredValueTransactions')\"\n [DefaultExpanded]=\"true\">\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ_BizApps_Orders: Stored Value Transactions', 'RelatedPaymentID')\"\n [NewRecordValues]=\"NewRecordValues('MJ_BizApps_Orders: Stored Value Transactions', 'RelatedPaymentID')\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJBizAppsOrdersStoredValueTransactions', $event.totalRowCount)\">\n </mj-explorer-entity-data-grid>\n </mj-collapsible-panel>\n\n <mj-collapsible-panel\n SectionKey=\"mJBizAppsOrdersSubscriptionEvents\"\n SectionName=\"Subscription Billing Events\"\n Icon=\"fa fa-history\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJBizAppsOrdersSubscriptionEvents')\"\n [DefaultExpanded]=\"false\">\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ_BizApps_Orders: Subscription Events', 'PaymentHeaderID')\"\n [NewRecordValues]=\"NewRecordValues('MJ_BizApps_Orders: Subscription Events', 'PaymentHeaderID')\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJBizAppsOrdersSubscriptionEvents', $event.totalRowCount)\">\n </mj-explorer-entity-data-grid>\n </mj-collapsible-panel>\n\n <mj-collapsible-panel\n SectionKey=\"mJBizAppsOrdersPaymentHeaders\"\n SectionName=\"Linked Reversal &amp; Refund Payment Records\"\n Icon=\"fa fa-rotate-left\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJBizAppsOrdersPaymentHeaders')\"\n [DefaultExpanded]=\"false\">\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ_BizApps_Orders: Payment Headers', 'ReversesPaymentHeaderID')\"\n [NewRecordValues]=\"NewRecordValues('MJ_BizApps_Orders: Payment Headers', 'ReversesPaymentHeaderID')\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJBizAppsOrdersPaymentHeaders', $event.totalRowCount)\">\n </mj-explorer-entity-data-grid>\n </mj-collapsible-panel>\n </div>\n }\n\n</mj-record-form-container>\n}\n", styles: ["/* ============================================================================\n BizApps Orders \u2014 Custom Payment Header Form Component Styles\n Uses MemberJunction semantic tokens for dark and light theme harmony.\n ============================================================================ */\n\n:host {\n display: block;\n width: 100%;\n}\n\n/* \u2500\u2500 1. Hero Header Banner \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-ph-hero {\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-lg, 12px);\n padding: var(--mj-space-4, 16px) var(--mj-space-5, 20px);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);\n margin-bottom: var(--mj-space-4, 16px);\n}\n\n.mjo-ph-hero__top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-4, 16px);\n flex-wrap: wrap;\n}\n\n.mjo-ph-who {\n display: flex;\n align-items: center;\n gap: var(--mj-space-4, 16px);\n}\n\n.mjo-ph-avatar {\n width: 48px;\n height: 48px;\n border-radius: var(--mj-radius-md, 8px);\n background: linear-gradient(135deg, #16a34a 0%, #15803d 100%);\n color: #ffffff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n box-shadow: 0 4px 10px rgba(22, 163, 74, 0.25);\n flex-shrink: 0;\n}\n\n.mjo-ph-avatar.is-reversal {\n background: linear-gradient(135deg, #9333ea 0%, #7e22ce 100%);\n box-shadow: 0 4px 10px rgba(147, 51, 234, 0.25);\n}\n\n.mjo-ph-title-row {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3, 10px);\n flex-wrap: wrap;\n}\n\n.mjo-ph-title {\n margin: 0;\n font-size: var(--mj-text-lg, 18px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n letter-spacing: -0.01em;\n}\n\n.mjo-ph-sub {\n font-size: var(--mj-text-xs, 12px);\n color: var(--mj-text-muted, #64748b);\n margin-top: 2px;\n}\n\n.mjo-ph-hero__aside {\n display: flex;\n align-items: center;\n gap: var(--mj-space-5, 20px);\n flex-wrap: wrap;\n}\n\n.mjo-ph-money {\n display: flex;\n align-items: center;\n gap: var(--mj-space-4, 16px);\n padding: var(--mj-space-2, 6px) var(--mj-space-4, 14px);\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.03));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 8px);\n}\n\n.mjo-ph-money > div {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n}\n\n.mjo-ph-kicker {\n font-size: var(--mj-text-xs, 11px);\n font-weight: var(--mj-font-semibold, 600);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted, #64748b);\n}\n\n.mjo-ph-amt {\n font-size: var(--mj-text-sm, 13px);\n font-weight: var(--mj-font-bold, 700);\n font-family: var(--mj-font-family-mono, monospace);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-ph-amt.is-balanced {\n color: #16a34a;\n}\n\n.mjo-ph-amt.is-unbalanced {\n color: #d97706;\n}\n\n.mjo-ph-actions {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n/* \u2500\u2500 2. Tab Navigation \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-ph-tabs {\n margin-bottom: var(--mj-space-4, 16px);\n}\n\n/* \u2500\u2500 3. 2-Column Workbench Layout \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-ph-workbench {\n display: flex;\n gap: var(--mj-space-4, 16px);\n align-items: flex-start;\n width: 100%;\n}\n\n.mjo-ph-money-pane {\n width: 380px;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-4, 16px);\n --mj-forms-field-label-width: 105px;\n --mj-forms-field-gap: 8px;\n}\n\n.mjo-ph-fields-stack {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mjo-ph-fields-stack mj-form-field {\n --mj-forms-field-label-width: 105px;\n --mj-forms-field-gap: 8px;\n}\n\n.mjo-ph-alloc-pane {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-4, 16px);\n}\n\n/* \u2500\u2500 4. Card Surfaces \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-card {\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-lg, 10px);\n box-shadow: var(--mj-shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.04));\n overflow: hidden;\n}\n\n.mjo-card__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--mj-space-3, 12px) var(--mj-space-4, 16px);\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.02));\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n.mjo-card__title {\n font-size: var(--mj-text-sm, 13px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-card__body {\n padding: var(--mj-space-4, 16px);\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3, 12px);\n}\n\n.mjo-card__body.p-0 {\n padding: 0;\n}\n\n.mjo-field {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mjo-label {\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #94a3b8);\n}\n\n.mjo-input-money-wrap {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n}\n\n.mjo-currency-prefix {\n position: absolute;\n left: 14px;\n font-size: var(--mj-text-lg, 16px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-muted, #94a3b8);\n pointer-events: none;\n z-index: 2;\n}\n\n.mjo-input--money {\n padding-left: 30px !important;\n font-size: var(--mj-text-lg, 16px) !important;\n font-weight: var(--mj-font-bold, 700) !important;\n font-family: var(--mj-font-family-mono, monospace) !important;\n height: 42px !important;\n width: 100% !important;\n background: var(--mj-bg-surface-card, transparent) !important;\n color: var(--mj-text-primary, inherit) !important;\n border: 1px solid var(--mj-border-default, #334155) !important;\n border-radius: var(--mj-radius-md, 6px) !important;\n}\n\n.mjo-input--money:focus {\n border-color: var(--mj-brand-primary, #0076b6) !important;\n box-shadow: 0 0 0 2px rgba(0, 118, 182, 0.25) !important;\n}\n\n.mjo-net-calc {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 14px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.2));\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.08));\n border-radius: var(--mj-radius-md, 6px);\n margin-top: 4px;\n}\n\n.mjo-net-calc__label {\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #94a3b8);\n}\n\n.mjo-net-calc__val {\n font-size: var(--mj-text-base, 15px);\n font-weight: var(--mj-font-bold, 700);\n font-family: var(--mj-font-family-mono, monospace);\n color: var(--mj-text-primary, #f8fafc);\n}\n\n.mjo-payer-chip {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n padding: 6px 10px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.03));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 6px);\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n}\n\n/* \u2500\u2500 5. Books Preview Card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-card--books {\n border-color: rgba(0, 118, 182, 0.25);\n}\n\n\n\n/* \u2500\u2500 6. Allocation Hero Status Strip \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-alloc-hero {\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-lg, 12px);\n padding: var(--mj-space-3, 12px) var(--mj-space-4, 16px);\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-alloc-hero.is-balanced {\n border-color: rgba(22, 163, 74, 0.35);\n background: rgba(22, 163, 74, 0.03);\n}\n\n.mjo-alloc-hero.is-warning {\n border-color: rgba(217, 119, 6, 0.35);\n background: rgba(217, 119, 6, 0.03);\n}\n\n.mjo-alloc-hero.is-error {\n border-color: rgba(220, 38, 38, 0.35);\n background: rgba(220, 38, 38, 0.03);\n}\n\n.mjo-alloc-hero__stats {\n display: flex;\n align-items: center;\n gap: var(--mj-space-4, 16px);\n flex-wrap: wrap;\n}\n\n.mjo-alloc-stat {\n display: flex;\n flex-direction: column;\n}\n\n.mjo-alloc-stat__kicker {\n font-size: 11px;\n font-weight: var(--mj-font-semibold, 600);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted, #64748b);\n}\n\n.mjo-alloc-stat__val {\n font-size: var(--mj-text-base, 15px);\n font-weight: var(--mj-font-bold, 700);\n font-family: var(--mj-font-family-mono, monospace);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-alloc-stat__op {\n font-size: 14px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-alloc-hero__message {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n padding-top: 6px;\n border-top: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n/* \u2500\u2500 7. Toolbar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-alloc-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-3, 12px);\n flex-wrap: wrap;\n}\n\n.mjo-alloc-toolbar__left {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-alloc-toolbar__title {\n margin: 0;\n font-size: var(--mj-text-sm, 14px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-alloc-toolbar__right {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-search-input-wrap {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.mjo-search-input-wrap i {\n position: absolute;\n left: 8px;\n font-size: 11px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-search-input-wrap input {\n padding-left: 24px;\n width: 160px;\n}\n\n/* \u2500\u2500 8. Orders & Allocations Table \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-table-responsive {\n overflow-x: auto;\n width: 100%;\n}\n\n.mjo-table {\n width: 100%;\n border-collapse: collapse;\n font-size: var(--mj-text-xs, 12px);\n}\n\n.mjo-table th {\n background: var(--mj-bg-surface-header, rgba(0, 0, 0, 0.02));\n color: var(--mj-text-muted, #64748b);\n font-weight: var(--mj-font-semibold, 600);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n font-size: 11px;\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n text-align: left;\n}\n\n.mjo-table td {\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n vertical-align: middle;\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-order-row:hover {\n background: var(--mj-bg-surface-hover, rgba(0, 0, 0, 0.02));\n}\n\n.mjo-order-row.is-expanded {\n background: rgba(0, 118, 182, 0.02);\n}\n\n.mjo-apply-input-wrap {\n position: relative;\n display: inline-flex;\n align-items: center;\n width: 100%;\n max-width: 110px;\n}\n\n.mjo-apply-dollar {\n position: absolute;\n left: 8px;\n font-size: 11px;\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-muted, #64748b);\n pointer-events: none;\n}\n\n.mjo-apply-input-wrap input {\n padding-left: 18px;\n}\n\n.mjo-nested-lines-pane {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.02));\n border-top: 1px solid var(--mj-border-default, #e2e8f0);\n border-bottom: 2px solid var(--mj-border-default, #cbd5e1);\n padding: var(--mj-space-3, 10px) var(--mj-space-4, 16px);\n}\n\n.mjo-nested-lines-header {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n font-size: 11px;\n font-weight: var(--mj-font-bold, 700);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-secondary, #475569);\n margin-bottom: var(--mj-space-2, 6px);\n}\n\n.mjo-nested-table {\n width: 100%;\n border-collapse: collapse;\n font-size: var(--mj-text-xs, 12px);\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 6px);\n overflow: hidden;\n}\n\n.mjo-nested-table th {\n background: rgba(0, 0, 0, 0.02);\n font-size: 10.5px;\n font-weight: var(--mj-font-semibold, 600);\n padding: 6px 10px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n.mjo-nested-table td {\n padding: 6px 10px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n/* \u2500\u2500 9. Accounting Postings View \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-ph-tab-body {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-4, 16px);\n}\n\n.mjo-accounting-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-4, 16px);\n flex-wrap: wrap;\n}\n\n.mjo-accounting-header h2 {\n margin: 0;\n font-size: var(--mj-text-base, 15px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-accounting-header p {\n margin: 2px 0 0 0;\n font-size: var(--mj-text-xs, 12px);\n}\n\n.mjo-view-toggle {\n display: flex;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.04));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 6px);\n padding: 2px;\n}\n\n.mjo-toggle-btn {\n border: none;\n background: transparent;\n padding: 4px 10px;\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #475569);\n border-radius: var(--mj-radius-sm, 4px);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mjo-toggle-btn.is-active {\n background: var(--mj-bg-surface-card, #ffffff);\n color: var(--mj-text-primary, #0f172a);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.mjo-gl-cards-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));\n gap: var(--mj-space-4, 16px);\n}\n\n.mjo-table--compact th, .mjo-table--compact td {\n padding: 6px 10px;\n}\n\n.mjo-table tfoot th {\n background: var(--mj-bg-surface-header, rgba(0, 0, 0, 0.02));\n border-top: 2px solid var(--mj-border-default, #cbd5e1);\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-bold, 700);\n}\n\n.is-intercompany {\n background: rgba(0, 118, 182, 0.04);\n}\n\n.mjo-ic-tag {\n display: inline-block;\n font-size: 10px;\n font-weight: var(--mj-font-bold, 700);\n text-transform: uppercase;\n color: #0284c7;\n background: rgba(2, 132, 199, 0.12);\n padding: 1px 5px;\n border-radius: 3px;\n margin-left: 6px;\n}\n\n/* \u2500\u2500 10. Common UI Elements & Chips \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--mj-space-2, 6px);\n height: 34px;\n padding: 0 14px;\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n border-radius: var(--mj-radius-md, 6px);\n cursor: pointer;\n border: 1px solid transparent;\n transition: all 0.15s ease;\n}\n\n.mjo-btn--primary {\n background: var(--mj-brand-primary, #0076b6);\n color: #ffffff;\n}\n\n.mjo-btn--primary:hover:not(:disabled) {\n background: #006094;\n}\n\n.mjo-btn--secondary {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.05));\n border-color: var(--mj-border-default, #cbd5e1);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-btn--secondary:hover:not(:disabled) {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.mjo-btn--outline {\n background: transparent;\n border-color: var(--mj-border-default, #cbd5e1);\n color: var(--mj-text-secondary, #475569);\n}\n\n.mjo-btn--outline:hover:not(:disabled) {\n border-color: var(--mj-brand-primary, #0076b6);\n color: var(--mj-brand-primary, #0076b6);\n}\n\n.mjo-btn--sm {\n height: 30px;\n padding: 0 10px;\n font-size: 11.5px;\n}\n\n.mjo-btn--xs {\n height: 24px;\n padding: 0 8px;\n font-size: 11px;\n}\n\n.mjo-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.mjo-icon-btn {\n border: none;\n background: transparent;\n color: var(--mj-text-muted, #64748b);\n cursor: pointer;\n padding: 4px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.mjo-icon-btn:hover {\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-link {\n border: none;\n background: transparent;\n color: var(--mj-brand-primary, #0076b6);\n cursor: pointer;\n padding: 0;\n font-size: inherit;\n text-align: left;\n}\n\n.mjo-link:hover {\n text-decoration: underline;\n}\n\n.mjo-status-chip {\n font-size: 11px;\n font-weight: var(--mj-font-bold, 700);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n padding: 2px 8px;\n border-radius: 4px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.mjo-status-chip--draft {\n background: rgba(100, 116, 139, 0.12);\n color: #475569;\n}\n\n.mjo-status-chip--active {\n background: rgba(22, 163, 74, 0.12);\n color: #16a34a;\n}\n\n.mjo-status-chip--purple {\n background: rgba(147, 51, 234, 0.12);\n color: #9333ea;\n}\n\n.mjo-status-chip--error {\n background: rgba(220, 38, 38, 0.12);\n color: #dc2626;\n}\n\n.mjo-status-chip--warning {\n background: rgba(217, 119, 6, 0.12);\n color: #d97706;\n}\n\n.mjo-company-pill {\n font-size: 11px;\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #475569);\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.04));\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.mjo-sku-chip {\n font-family: var(--mj-font-family-mono, monospace);\n font-size: 10px;\n color: var(--mj-text-muted, #64748b);\n background: rgba(0, 0, 0, 0.04);\n padding: 1px 4px;\n border-radius: 3px;\n margin-left: 4px;\n}\n\n.mjo-badge {\n font-size: 11px;\n font-weight: var(--mj-font-semibold, 600);\n padding: 2px 6px;\n border-radius: 12px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.05));\n color: var(--mj-text-secondary, #475569);\n}\n\n.mjo-badge--error {\n background: rgba(220, 38, 38, 0.12);\n color: #dc2626;\n}\n\n.mjo-badge--success {\n background: rgba(22, 163, 74, 0.12);\n color: #16a34a;\n}\n\n.mjo-empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: var(--mj-space-6, 32px) var(--mj-space-4, 16px);\n text-align: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-empty-state h3 {\n margin: 0;\n font-size: var(--mj-text-sm, 14px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-empty-state p {\n margin: 0;\n font-size: var(--mj-text-xs, 12px);\n color: var(--mj-text-muted, #64748b);\n max-width: 380px;\n}\n\n.mjo-alert {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3, 10px);\n padding: 10px 14px;\n border-radius: var(--mj-radius-md, 8px);\n font-size: var(--mj-text-xs, 12px);\n margin-bottom: var(--mj-space-3, 12px);\n}\n\n.mjo-alert--error {\n background: rgba(220, 38, 38, 0.08);\n border: 1px solid rgba(220, 38, 38, 0.25);\n color: #dc2626;\n}\n\n.mjo-subtext {\n font-size: 11px;\n color: var(--mj-text-muted, #64748b);\n}\n\n.text-right { text-align: right; }\n.font-mono { font-family: var(--mj-font-family-mono, monospace); }\n.font-bold { font-weight: var(--mj-font-bold, 700); }\n.text-muted { color: var(--mj-text-muted, #64748b); }\n.text-success { color: #16a34a; }\n.text-warning { color: #d97706; }\n.text-danger { color: #dc2626; }\n.w-8 { width: 32px; }\n.w-16 { width: 64px; }\n.w-20 { width: 80px; }\n.w-24 { width: 96px; }\n.w-36 { width: 144px; }\n.flex { display: flex; }\n.gap-2 { gap: 8px; }\n.col-span-full { grid-column: 1 / -1; }\n.text-info { color: #0284c7; }\n\n/* \u2500\u2500 12. Instrument Box (Check/Card/ACH/Wire) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-instrument-box {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.02));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 8px);\n padding: var(--mj-space-3, 12px);\n margin: var(--mj-space-2, 6px) 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3, 10px);\n}\n\n.mjo-instrument-box__title {\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: 6px;\n padding-bottom: 6px;\n border-bottom: 1px dashed var(--mj-border-default, #e2e8f0);\n}\n\n.mjo-instrument-box__grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-instrument-box .mjo-field {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mjo-instrument-box .mjo-label {\n font-size: 11px;\n font-weight: var(--mj-font-medium, 500);\n color: var(--mj-text-secondary, #475569);\n}\n\n.mjo-apply-input-wrap.is-derived input {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.03));\n color: var(--mj-text-secondary, #475569);\n cursor: not-allowed;\n border-style: dashed;\n}\n"] }]
2205
+ args: [{ standalone: false, selector: 'bizapps-payment-header-form', template: "@if (record) {\n<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"before-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- ================================================================\n HERO IDENTITY HEADER CARD & SUMMARY METRIC STRIP\n ================================================================ -->\n <div class=\"mjo-ph-hero\">\n <div class=\"mjo-ph-hero__top\">\n <div class=\"mjo-ph-who\">\n <div class=\"mjo-ph-avatar\" [class.is-reversal]=\"IsReversal\">\n <i [class]=\"PaymentAvatarIcon\"></i>\n </div>\n <div>\n <div class=\"mjo-ph-title-row\">\n <h1 class=\"mjo-ph-title\">\n {{ record.PaymentNumber || 'New payment' }} \u00B7 {{ FormattedGrossAmount }}\n </h1>\n <span [class]=\"StatusBadgeClass\">{{ record.Status || 'Draft' }}</span>\n @if (IsReversal) {\n <span class=\"mjo-status-chip mjo-status-chip--purple\">\n <i class=\"fa-solid fa-rotate-left\"></i> Reversal\n </span>\n }\n </div>\n <div class=\"mjo-ph-sub\">{{ HeaderSubtitle }}</div>\n </div>\n </div>\n\n <div class=\"mjo-ph-hero__aside\">\n <div class=\"mjo-ph-money\">\n <div>\n <span class=\"mjo-ph-kicker\">Gross</span>\n <span class=\"mjo-ph-amt\">{{ FormattedGrossAmount }}</span>\n </div>\n <div>\n <span class=\"mjo-ph-kicker\">Fee</span>\n <span class=\"mjo-ph-amt\">{{ FormattedFee }}</span>\n </div>\n <div>\n <span class=\"mjo-ph-kicker\">Net</span>\n <span class=\"mjo-ph-amt\">{{ FormattedNetAmount }}</span>\n </div>\n <div>\n <span class=\"mjo-ph-kicker\">Allocations</span>\n <span class=\"mjo-ph-amt\" [class.is-balanced]=\"IsAllocationBalanced\" [class.is-unbalanced]=\"!IsAllocationBalanced && TotalAllocated > 0\">\n @if (IsCaptured) {\n {{ GetSectionRowCount('mJBizAppsOrdersPaymentLines') || 0 }} Settled\n } @else {\n ${{ TotalAllocated.toFixed(2) }}\n }\n </span>\n </div>\n </div>\n\n @if (!IsCaptured) {\n <div class=\"mjo-ph-actions\">\n <button type=\"button\" class=\"mjo-btn mjo-btn--secondary\" (click)=\"SaveAsDraft()\" [disabled]=\"Saving || Capturing\">\n <i class=\"fa-solid fa-floppy-disk\"></i> {{ Saving ? 'Saving\u2026' : 'Save draft' }}\n </button>\n <button type=\"button\" class=\"mjo-btn mjo-btn--primary\" (click)=\"CapturePayment()\" [disabled]=\"Capturing || Saving || !IsAllocationBalanced || !record.Amount || !hasPayer\">\n <i class=\"fa-solid fa-check-double\"></i> {{ Capturing ? 'Capturing\u2026' : 'Capture & Book' }}\n </button>\n </div>\n }\n </div>\n </div>\n </div>\n\n <!-- TAB NAVIGATION STRIP -->\n <div class=\"mjo-ph-tabs\">\n <mj-tab-nav [Tabs]=\"ContextTabs\" [ActiveKey]=\"ActiveTab ?? ''\" (TabChange)=\"SelectTab($event)\"></mj-tab-nav>\n </div>\n\n @if (CaptureError) {\n <div class=\"mjo-alert mjo-alert--error\">\n <i class=\"fa-solid fa-circle-exclamation\"></i>\n <div>\n <strong>Failed to capture payment:</strong> {{ CaptureError }}\n </div>\n </div>\n }\n\n <!-- ================================================================\n TAB 1: PAYMENT & ALLOCATION WORKBENCH\n ================================================================ -->\n @if (ActiveTab === 'payment') {\n <div class=\"mjo-ph-workbench\">\n\n <!-- LEFT COLUMN: THE MONEY & PAYER (380px) -->\n <aside class=\"mjo-ph-money-pane\">\n\n <!-- 1. Payer Card -->\n <div class=\"mjo-card\">\n <div class=\"mjo-card__header\">\n <div class=\"mjo-card__title\">\n <i class=\"fa-solid fa-user-tag\"></i> Who is paying?\n </div>\n </div>\n <div class=\"mjo-card__body\">\n <div class=\"mjo-ph-fields-stack\">\n <mj-form-field\n [Record]=\"record\"\n [ShowLabel]=\"true\"\n DisplayNameOverride=\"Organization\"\n FieldName=\"BillToOrganizationID\"\n Type=\"textbox\"\n LinkType=\"Record\"\n [EditMode]=\"ComposeMode\"\n [FormContext]=\"formContext\"\n (Navigate)=\"OnFormNavigate($event); OnPayerSelectionChanged()\">\n </mj-form-field>\n <mj-form-field\n [Record]=\"record\"\n [ShowLabel]=\"true\"\n DisplayNameOverride=\"Person\"\n FieldName=\"BillToPersonID\"\n Type=\"textbox\"\n LinkType=\"Record\"\n [EditMode]=\"ComposeMode\"\n [FormContext]=\"formContext\"\n (Navigate)=\"OnFormNavigate($event); OnPayerSelectionChanged()\">\n </mj-form-field>\n </div>\n @if (hasPayer) {\n <div class=\"mjo-payer-chip\">\n <i class=\"fa-solid fa-circle-check text-success\"></i>\n <span>{{ PayerDisplayName }}</span>\n @if (OpenOrders.length > 0) {\n <span class=\"mjo-badge\">{{ OpenOrders.length }} unpaid orders</span>\n }\n </div>\n }\n </div>\n </div>\n\n <!-- 2. Payment Details Card -->\n <div class=\"mjo-card\">\n <div class=\"mjo-card__header\">\n <div class=\"mjo-card__title\">\n <i class=\"fa-solid fa-money-check-dollar\"></i> Payment details\n </div>\n </div>\n <div class=\"mjo-card__body\">\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Amount received ($)</label>\n <div class=\"mjo-input-money-wrap\">\n <span class=\"mjo-currency-prefix\">$</span>\n <input\n type=\"number\"\n class=\"mj-input is-num mjo-input--money\"\n [ngModel]=\"record.Amount\"\n (ngModelChange)=\"OnAmountChanged($event)\"\n [disabled]=\"!ComposeMode\"\n placeholder=\"0.00\"\n step=\"0.01\"\n />\n </div>\n </div>\n\n <div class=\"mjo-ph-fields-stack\">\n <mj-form-field\n [Record]=\"record\"\n [ShowLabel]=\"true\"\n DisplayNameOverride=\"Payment Date\"\n FieldName=\"PaymentDate\"\n Type=\"datepicker\"\n [EditMode]=\"ComposeMode\"\n [FormContext]=\"formContext\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-form-field>\n\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Payment Type <span class=\"mjo-required-mark\" title=\"Required to capture and book\">*</span></label>\n @if (ComposeMode && PaymentTypes.length > 0) {\n <select class=\"mj-input\" [class.mjo-input--invalid]=\"PaymentTypeMissing\" [ngModel]=\"record.PaymentTypeID\" (ngModelChange)=\"OnPaymentTypeSelected($event)\">\n <option [ngValue]=\"null\">Select payment type\u2026</option>\n @for (pt of PaymentTypes; track pt.ID) {\n <option [value]=\"pt.ID\">{{ pt.Name }}</option>\n }\n </select>\n @if (PaymentTypeMissing) {\n <div class=\"mjo-field-hint mjo-field-hint--error\">Required before Capture &amp; Book.</div>\n }\n } @else {\n <mj-form-field\n [Record]=\"record\"\n [ShowLabel]=\"false\"\n FieldName=\"PaymentTypeID\"\n Type=\"textbox\"\n LinkType=\"Record\"\n [EditMode]=\"ComposeMode\"\n [FormContext]=\"formContext\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-form-field>\n }\n </div>\n\n <!-- TENDER-SPECIFIC INSTRUMENT CAPTURE (PaymentDetail) -->\n @if (PaymentTypeCode === 'check' || (SelectedPaymentType?.RequiresReference && !RequiresInstrument)) {\n <div class=\"mjo-instrument-box\">\n <div class=\"mjo-instrument-box__title\">\n <i class=\"fa-solid fa-money-check\"></i> Check details\n </div>\n <div class=\"mjo-instrument-box__grid\">\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Check \u2116 <span class=\"text-danger\">*</span></label>\n <input type=\"text\" class=\"mj-input font-mono\" [(ngModel)]=\"ReferenceNumber\" [disabled]=\"!ComposeMode\" placeholder=\"e.g. 10428\" autocomplete=\"off\" />\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Check Date</label>\n <input type=\"date\" class=\"mj-input\" [(ngModel)]=\"InstrumentDateInput\" [disabled]=\"!ComposeMode\" />\n </div>\n <div class=\"mjo-field col-span-full\">\n <label class=\"mjo-label\">Bank Name</label>\n <input type=\"text\" class=\"mj-input\" [(ngModel)]=\"BankName\" [disabled]=\"!ComposeMode\" placeholder=\"e.g. Chase, Bank of America\" />\n </div>\n </div>\n </div>\n } @else if (PaymentTypeCode === 'card' || RequiresInstrument) {\n <div class=\"mjo-instrument-box\">\n <div class=\"mjo-instrument-box__title\">\n <i class=\"fa-solid fa-credit-card\"></i> Card instrument details\n </div>\n <div class=\"mjo-instrument-box__grid\">\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Card Brand</label>\n <select class=\"mj-input\" [(ngModel)]=\"CardBrand\" [disabled]=\"!ComposeMode\">\n <option value=\"\">Select Brand</option>\n <option value=\"Visa\">Visa</option>\n <option value=\"MasterCard\">MasterCard</option>\n <option value=\"American Express\">American Express</option>\n <option value=\"Discover\">Discover</option>\n <option value=\"Other\">Other</option>\n </select>\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Last 4 Digits</label>\n <input type=\"text\" class=\"mj-input font-mono\" maxlength=\"4\" [(ngModel)]=\"CardLast4\" [disabled]=\"!ComposeMode\" placeholder=\"4242\" />\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Expiry (MM / YYYY)</label>\n <div class=\"flex gap-2\">\n <input type=\"number\" min=\"1\" max=\"12\" class=\"mj-input font-mono w-16\" [(ngModel)]=\"CardExpMonth\" [disabled]=\"!ComposeMode\" placeholder=\"MM\" />\n <input type=\"number\" min=\"2025\" max=\"2045\" class=\"mj-input font-mono w-24\" [(ngModel)]=\"CardExpYear\" [disabled]=\"!ComposeMode\" placeholder=\"YYYY\" />\n </div>\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Cardholder Name</label>\n <input type=\"text\" class=\"mj-input\" [(ngModel)]=\"CardHolderName\" [disabled]=\"!ComposeMode\" placeholder=\"Name on card\" />\n </div>\n <div class=\"mjo-field col-span-full\">\n <label class=\"mjo-label\">Auth / Approval \u2116</label>\n <input type=\"text\" class=\"mj-input\" [(ngModel)]=\"ReferenceNumber\" [disabled]=\"!ComposeMode\" placeholder=\"e.g. AUTH-98210\" />\n </div>\n </div>\n </div>\n } @else if (PaymentTypeCode === 'ach') {\n <div class=\"mjo-instrument-box\">\n <div class=\"mjo-instrument-box__title\">\n <i class=\"fa-solid fa-building-columns\"></i> Bank transfer / ACH details\n </div>\n <div class=\"mjo-instrument-box__grid\">\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Bank Name</label>\n <input type=\"text\" class=\"mj-input\" [(ngModel)]=\"BankName\" [disabled]=\"!ComposeMode\" placeholder=\"e.g. Wells Fargo\" />\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Account Type</label>\n <select class=\"mj-input\" [(ngModel)]=\"BankAccountType\" [disabled]=\"!ComposeMode\">\n <option [ngValue]=\"null\">Select Type</option>\n <option value=\"Checking\">Checking</option>\n <option value=\"Savings\">Savings</option>\n </select>\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Routing Last 4</label>\n <input type=\"text\" class=\"mj-input font-mono\" maxlength=\"4\" [(ngModel)]=\"RoutingLast4\" [disabled]=\"!ComposeMode\" placeholder=\"1234\" />\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Account Last 4</label>\n <input type=\"text\" class=\"mj-input font-mono\" maxlength=\"4\" [(ngModel)]=\"AccountLast4\" [disabled]=\"!ComposeMode\" placeholder=\"5678\" />\n </div>\n <div class=\"mjo-field col-span-full\">\n <label class=\"mjo-label\">Trace / Reference \u2116</label>\n <input type=\"text\" class=\"mj-input\" [(ngModel)]=\"ReferenceNumber\" [disabled]=\"!ComposeMode\" placeholder=\"Trace #\" />\n </div>\n </div>\n </div>\n } @else if (RequiresReference) {\n <div class=\"mjo-instrument-box\">\n <div class=\"mjo-instrument-box__title\">\n <i class=\"fa-solid fa-receipt\"></i> Reference details\n </div>\n <div class=\"mjo-field\">\n <label class=\"mjo-label\">Reference / Wire Confirmation \u2116 <span class=\"text-danger\">*</span></label>\n <input type=\"text\" class=\"mj-input\" [(ngModel)]=\"ReferenceNumber\" [disabled]=\"!ComposeMode\" placeholder=\"Confirmation or transfer id\" />\n </div>\n </div>\n }\n\n <mj-form-field\n [Record]=\"record\"\n [ShowLabel]=\"true\"\n DisplayNameOverride=\"Receiving Co.\"\n FieldName=\"ReceivingCompanyID\"\n Type=\"textbox\"\n LinkType=\"Record\"\n [EditMode]=\"ComposeMode\"\n [FormContext]=\"formContext\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-form-field>\n\n <mj-form-field\n [Record]=\"record\"\n [ShowLabel]=\"true\"\n DisplayNameOverride=\"Processing Fee\"\n FieldName=\"ProcessingFeeAmount\"\n Type=\"number\"\n [EditMode]=\"ComposeMode\"\n [FormContext]=\"formContext\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-form-field>\n </div>\n\n <div class=\"mjo-net-calc\">\n <span class=\"mjo-net-calc__label\">Net Settlement Amount</span>\n <span class=\"mjo-net-calc__val\">{{ FormattedNetAmount }}</span>\n </div>\n </div>\n </div>\n\n </aside>\n\n <!-- RIGHT COLUMN: ALLOCATION WORKBENCH -->\n <main class=\"mjo-ph-alloc-pane\">\n\n <!-- 1. Balance Status Hero Strip -->\n <div class=\"mjo-alloc-hero\" [class.is-balanced]=\"IsAllocationBalanced\" [class.is-warning]=\"!IsAllocationBalanced && UnallocatedRemainder > 0\" [class.is-error]=\"UnallocatedRemainder < 0\">\n <div class=\"mjo-alloc-hero__stats\">\n <div class=\"mjo-alloc-stat\">\n <span class=\"mjo-alloc-stat__kicker\">Payment Received</span>\n <span class=\"mjo-alloc-stat__val\">${{ (record.Amount || 0).toFixed(2) }}</span>\n </div>\n <div class=\"mjo-alloc-stat__op\"><i class=\"fa-solid fa-minus\"></i></div>\n <div class=\"mjo-alloc-stat\">\n <span class=\"mjo-alloc-stat__kicker\">Allocated</span>\n <span class=\"mjo-alloc-stat__val\">${{ TotalAllocated.toFixed(2) }}</span>\n </div>\n <div class=\"mjo-alloc-stat__op\"><i class=\"fa-solid fa-equals\"></i></div>\n <div class=\"mjo-alloc-stat\">\n <span class=\"mjo-alloc-stat__kicker\">Unallocated Remainder</span>\n <span class=\"mjo-alloc-stat__val\" [class.text-danger]=\"UnallocatedRemainder < 0\">\n ${{ Math.abs(UnallocatedRemainder).toFixed(2) }}\n </span>\n </div>\n </div>\n\n <div class=\"mjo-alloc-hero__message\">\n @if (IsAllocationBalanced) {\n <i class=\"fa-solid fa-circle-check text-success\"></i>\n <span>Allocations tie 100% to payment received. Ready to capture and book.</span>\n } @else if (UnallocatedRemainder > 0) {\n <i class=\"fa-solid fa-circle-info text-warning\"></i>\n <span>${{ UnallocatedRemainder.toFixed(2) }} remaining to allocate before capturing.</span>\n } @else {\n <i class=\"fa-solid fa-triangle-exclamation text-danger\"></i>\n <span>Over-allocated by ${{ Math.abs(UnallocatedRemainder).toFixed(2) }}. Please adjust amounts.</span>\n }\n </div>\n </div>\n <!-- 2. Allocation Toolbar -->\n <div class=\"mjo-alloc-toolbar\">\n <div class=\"mjo-alloc-toolbar__left\">\n <h2 class=\"mjo-alloc-toolbar__title\">\n <i class=\"fa-solid fa-receipt\"></i> Open orders\n </h2>\n @if (OpenOrders.length > 0) {\n <span class=\"mjo-badge\">{{ FilteredOpenOrders.length }} available</span>\n }\n </div>\n\n @if (!IsCaptured && OpenOrders.length > 0) {\n <div class=\"mjo-alloc-toolbar__right\">\n <div class=\"mjo-search-input-wrap\">\n <i class=\"fa-solid fa-magnifying-glass\"></i>\n <input type=\"text\" class=\"mjo-input mjo-input--sm\" [(ngModel)]=\"SearchQuery\" placeholder=\"Filter orders\u2026\" />\n </div>\n <button type=\"button\" class=\"mjo-btn mjo-btn--secondary mjo-btn--sm\" (click)=\"AutoApplyOldestFirst()\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i> Auto-apply oldest\n </button>\n <button type=\"button\" class=\"mjo-btn mjo-btn--outline mjo-btn--sm\" (click)=\"ClearAllocations()\">\n <i class=\"fa-solid fa-eraser\"></i> Clear all\n </button>\n </div>\n }\n </div>\n\n <!-- 3. Open Orders & Order Lines Allocation Table -->\n <div class=\"mjo-card mjo-card--table\">\n @if (LoadingOpenOrders) {\n <div class=\"mjo-empty-state\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x text-muted\"></i>\n <p>Loading open orders\u2026</p>\n </div>\n } @else if (OpenOrders.length === 0) {\n <div class=\"mjo-empty-state\">\n <i class=\"fa-solid fa-receipt fa-3x text-muted\"></i>\n <h3>No unpaid orders found</h3>\n <p>There are zero open unpaid orders. Any recorded payment will be retained as unallocated credit.</p>\n </div>\n } @else {\n <div class=\"mjo-table-responsive\">\n <table class=\"mjo-table\">\n <thead>\n <tr>\n <th class=\"w-8\"></th>\n @if (!hasPayer) {\n <th>Customer</th>\n }\n <th>Order \u2116</th>\n <th>Date</th>\n <th>Due</th>\n <th>Company</th>\n <th class=\"text-right\">Gross</th>\n <th class=\"text-right\">Open Balance</th>\n <th class=\"text-right w-36\">Apply Amount</th>\n <th class=\"text-right\">Leaves Balance</th>\n <th class=\"w-24\"></th>\n </tr>\n </thead>\n <tbody>\n @for (order of FilteredOpenOrders; track order.ID) {\n <tr class=\"mjo-order-row\" [class.is-expanded]=\"IsOrderExpanded(order.ID || '')\">\n <td>\n <button type=\"button\" class=\"mjo-icon-btn\" (click)=\"ToggleOrderExpanded(order.ID || '')\" title=\"Toggle line items\">\n <i class=\"fa-solid\" [class.fa-chevron-down]=\"IsOrderExpanded(order.ID || '')\" [class.fa-chevron-right]=\"!IsOrderExpanded(order.ID || '')\"></i>\n </button>\n </td>\n @if (!hasPayer) {\n <td class=\"font-bold\">{{ order.BillToOrganization || order.BillToPerson || '\u2014' }}</td>\n }\n <td>\n <button type=\"button\" class=\"mjo-link\" (click)=\"OpenOrderRecord(order, $event)\">\n <strong>{{ order.OrderNumber }}</strong>\n </button>\n @if (order.Description) {\n <div class=\"mjo-subtext\">{{ order.Description }}</div>\n }\n </td>\n <td>{{ order.OrderDate ? FormatOrderDueDate(order) : '\u2014' }}</td>\n <td>\n @if (GetOrderDaysOverdue(order) > 0) {\n <span class=\"mjo-badge mjo-badge--error\">{{ GetOrderDaysOverdue(order) }}d overdue</span>\n } @else {\n <span>{{ FormatOrderDueDate(order) }}</span>\n }\n </td>\n <td>\n <span class=\"mjo-company-pill\">{{ order.Company || 'Default' }}</span>\n </td>\n <td class=\"text-right font-mono\">${{ (order.TotalGross || 0).toFixed(2) }}</td>\n <td class=\"text-right font-mono font-bold\">${{ (order.Balance ?? order.TotalGross ?? 0).toFixed(2) }}</td>\n <td class=\"text-right\">\n <div class=\"mjo-apply-input-wrap\" [class.is-derived]=\"HasLineAllocations(order.ID || '')\">\n <span class=\"mjo-apply-dollar\">$</span>\n <input\n type=\"number\"\n class=\"mjo-input mjo-input--sm mjo-input--num\"\n [ngModel]=\"GetOrderAllocation(order.ID || '')\"\n (ngModelChange)=\"SetOrderAllocation(order.ID || '', $event)\"\n [disabled]=\"IsCaptured || HasLineAllocations(order.ID || '')\"\n step=\"0.01\"\n min=\"0\"\n [title]=\"HasLineAllocations(order.ID || '') ? 'Order allocation is driven by line item allocations below' : 'Enter amount to allocate to order'\"\n />\n </div>\n @if (HasLineAllocations(order.ID || '')) {\n <div class=\"mjo-subtext text-info\">\n <i class=\"fa-solid fa-layer-group\"></i> Lines allocated\n </div>\n }\n </td>\n <td class=\"text-right font-mono\" [class.text-muted]=\"CalculateLeavesBalance(order) === 0\">\n ${{ CalculateLeavesBalance(order).toFixed(2) }}\n </td>\n <td class=\"text-right\">\n @if (!IsCaptured) {\n <button\n type=\"button\"\n class=\"mjo-btn mjo-btn--outline mjo-btn--sm\"\n (click)=\"FullPayOrder(order)\"\n [disabled]=\"(order.Balance ?? order.TotalGross ?? 0) <= 0\"\n >\n Pay in Full\n </button>\n }\n </td>\n </tr>\n\n <!-- EXPANDED CHILD ROW: INDIVIDUAL ORDER LINES -->\n @if (IsOrderExpanded(order.ID || '')) {\n <tr class=\"mjo-lines-row\">\n <td [attr.colspan]=\"hasPayer ? 10 : 11\" class=\"p-0\">\n <div class=\"mjo-nested-lines-pane\">\n <div class=\"mjo-nested-lines-header\">\n <i class=\"fa-solid fa-layer-group\"></i>\n <span>Order Line Items (Targeted Line Allocations)</span>\n </div>\n <table class=\"mjo-nested-table\">\n <thead>\n <tr>\n <th>#</th>\n <th>Product</th>\n <th class=\"text-right\">Unit Price</th>\n <th class=\"text-right\">Gross</th>\n <th class=\"text-right w-36\">Line Allocation</th>\n <th class=\"w-20\"></th>\n </tr>\n </thead>\n <tbody>\n @for (line of GetOrderLines(order.ID || ''); track line.ID) {\n <tr>\n <td>{{ line.LineNumber }}</td>\n <td>\n <strong>{{ line.Product || 'Line Item' }}</strong>\n </td>\n <td class=\"text-right font-mono\">${{ (line.UnitPrice || 0).toFixed(2) }}</td>\n <td class=\"text-right font-mono\">${{ (line.LineTotalGross || 0).toFixed(2) }}</td>\n <td class=\"text-right\">\n <div class=\"mjo-apply-input-wrap\">\n <span class=\"mjo-apply-dollar\">$</span>\n <input\n type=\"number\"\n class=\"mjo-input mjo-input--xs mjo-input--num\"\n [ngModel]=\"GetLineAllocation(line.ID || '')\"\n (ngModelChange)=\"SetLineAllocation(line.ID || '', $event, order.ID)\"\n [disabled]=\"IsCaptured\"\n step=\"0.01\"\n min=\"0\"\n />\n </div>\n </td>\n <td class=\"text-right\">\n @if (!IsCaptured) {\n <button type=\"button\" class=\"mjo-btn mjo-btn--outline mjo-btn--xs\" (click)=\"FullPayLine(order, line)\">\n Line Pay\n </button>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n </td>\n </tr>\n }\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n\n </main>\n\n </div>\n }\n\n <!-- ================================================================\n TAB 2: ACCOUNTING & GENERAL LEDGER (CAPTURED PAYMENTS)\n ================================================================ -->\n @if (ActiveTab === 'accounting') {\n <div class=\"mjo-ph-tab-body\">\n <div class=\"mjo-accounting-header\">\n <div>\n <h2><i class=\"fa-solid fa-book\"></i> General Ledger Postings</h2>\n <p class=\"text-muted\">Double-entry balanced accounting entries booked across operating and receivable accounts.</p>\n </div>\n <div class=\"mjo-view-toggle\">\n <button type=\"button\" class=\"mjo-toggle-btn\" [class.is-active]=\"AccountingView === 'summary'\" (click)=\"SetAccountingView('summary')\">\n Summary (Rolled-up)\n </button>\n <button type=\"button\" class=\"mjo-toggle-btn\" [class.is-active]=\"AccountingView === 'detail'\" (click)=\"SetAccountingView('detail')\">\n By Journal Entry\n </button>\n </div>\n </div>\n\n @if (AccountingView === 'summary') {\n @if (RollupLoading) {\n <div class=\"mjo-empty-state\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x text-muted\"></i>\n <p>Rolling up general ledger accounts\u2026</p>\n </div>\n } @else if (RollupError) {\n <div class=\"mjo-alert mjo-alert--error\">{{ RollupError }}</div>\n } @else if (RollupCards.length === 0) {\n <div class=\"mjo-empty-state\">\n <i class=\"fa-solid fa-book-open fa-3x text-muted\"></i>\n <h3>No journal entries booked yet</h3>\n <p>Journal entries are booked automatically upon capturing and settling the payment.</p>\n </div>\n } @else {\n <div class=\"mjo-gl-cards-grid\">\n @for (card of RollupCards; track card.CompanyID) {\n <div class=\"mjo-card mjo-card--gl\">\n <div class=\"mjo-card__header\">\n <div>\n <h3 class=\"mjo-card__title\">{{ card.Company }}</h3>\n <div class=\"mjo-subtext\">{{ card.Rows.length }} {{ card.Rows.length === 1 ? 'line' : 'lines' }}</div>\n </div>\n <span class=\"mjo-badge\" [class.mjo-badge--success]=\"CardIsBalanced(card)\" [class.mjo-badge--error]=\"!CardIsBalanced(card)\">\n {{ CardIsBalanced(card) ? 'Balanced' : 'Out of Balance' }}\n </span>\n </div>\n <div class=\"mjo-card__body p-0\">\n <table class=\"mjo-table mjo-table--compact\">\n <thead>\n <tr>\n <th>GL Account</th>\n <th>Name</th>\n <th class=\"text-right\">Debit</th>\n <th class=\"text-right\">Credit</th>\n </tr>\n </thead>\n <tbody>\n @for (row of card.Rows; track row.Key) {\n <tr>\n <td class=\"font-mono\">{{ row.AccountCode || '\u2014' }}</td>\n <td>\n <span>{{ row.AccountName }}</span>\n </td>\n <td class=\"text-right font-mono\">{{ row.Debit ? RollupAmount(row.Debit) : '\u2014' }}</td>\n <td class=\"text-right font-mono\">{{ row.Credit ? RollupAmount(row.Credit) : '\u2014' }}</td>\n </tr>\n }\n </tbody>\n <tfoot>\n <tr>\n <th colspan=\"2\">Total</th>\n <th class=\"text-right font-mono\">${{ card.TotalDebit.toFixed(2) }}</th>\n <th class=\"text-right font-mono\">${{ card.TotalCredit.toFixed(2) }}</th>\n </tr>\n </tfoot>\n </table>\n </div>\n </div>\n }\n </div>\n }\n } @else {\n @if (PaymentJournalEntryParams) {\n <mj-explorer-entity-data-grid\n [Params]=\"PaymentJournalEntryParams\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"false\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-explorer-entity-data-grid>\n }\n }\n </div>\n }\n\n <!-- ================================================================\n TAB 3: DETAILS & NOTES\n ================================================================ -->\n @if (ActiveTab === 'details') {\n <div class=\"mjo-ph-tab-body\">\n <div class=\"mjo-form-sections-grid\">\n\n <!-- Processing & Gateway Details -->\n <div class=\"mjo-card\">\n <div class=\"mjo-card__header\">\n <h3 class=\"mjo-card__title\"><i class=\"fa-solid fa-gears\"></i> Processing &amp; Gateway Details</h3>\n </div>\n <div class=\"mjo-card__body mjo-form-grid-2\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"PaymentProviderID\" Type=\"textbox\" LinkType=\"Record\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"PaymentIntentID\" Type=\"textbox\" LinkType=\"Record\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"PaymentDetailID\" Type=\"textbox\" LinkType=\"Record\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ProviderChargeID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ProviderRefundID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"IdempotencyKey\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </div>\n </div>\n\n <!-- Reversal & Notes -->\n <div class=\"mjo-card\">\n <div class=\"mjo-card__header\">\n <h3 class=\"mjo-card__title\"><i class=\"fa-solid fa-note-sticky\"></i> Reversal Info &amp; Notes</h3>\n </div>\n <div class=\"mjo-card__body mjo-form-grid-2\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ReversesPaymentHeaderID\" Type=\"textbox\" LinkType=\"Record\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ReversalReason\" Type=\"textarea\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Description\" Type=\"textarea\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Notes\" Type=\"textarea\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </div>\n </div>\n\n <!-- Audit Metadata -->\n <div class=\"mjo-card\">\n <div class=\"mjo-card__header\">\n <h3 class=\"mjo-card__title\"><i class=\"fa-solid fa-clock-rotate-left\"></i> System Metadata</h3>\n </div>\n <div class=\"mjo-card__body mjo-form-grid-2\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"__mj_CreatedAt\" Type=\"textbox\" [EditMode]=\"false\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"__mj_UpdatedAt\" Type=\"textbox\" [EditMode]=\"false\" [FormContext]=\"formContext\"></mj-form-field>\n </div>\n </div>\n\n </div>\n </div>\n }\n\n <!-- ================================================================\n TAB 4: RELATED RECORDS\n ================================================================ -->\n @if (ActiveTab === 'related') {\n <div class=\"mjo-ph-tab-body\">\n <mj-collapsible-panel\n SectionKey=\"mJBizAppsOrdersStoredValueTransactions\"\n SectionName=\"Stored Value &amp; Account Credit Transactions\"\n Icon=\"fa fa-wallet\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJBizAppsOrdersStoredValueTransactions')\"\n [DefaultExpanded]=\"true\">\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ_BizApps_Orders: Stored Value Transactions', 'RelatedPaymentID')\"\n [NewRecordValues]=\"NewRecordValues('MJ_BizApps_Orders: Stored Value Transactions', 'RelatedPaymentID')\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJBizAppsOrdersStoredValueTransactions', $event.totalRowCount)\">\n </mj-explorer-entity-data-grid>\n </mj-collapsible-panel>\n\n <mj-collapsible-panel\n SectionKey=\"mJBizAppsOrdersSubscriptionEvents\"\n SectionName=\"Subscription Billing Events\"\n Icon=\"fa fa-history\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJBizAppsOrdersSubscriptionEvents')\"\n [DefaultExpanded]=\"false\">\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ_BizApps_Orders: Subscription Events', 'PaymentHeaderID')\"\n [NewRecordValues]=\"NewRecordValues('MJ_BizApps_Orders: Subscription Events', 'PaymentHeaderID')\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJBizAppsOrdersSubscriptionEvents', $event.totalRowCount)\">\n </mj-explorer-entity-data-grid>\n </mj-collapsible-panel>\n\n <mj-collapsible-panel\n SectionKey=\"mJBizAppsOrdersPaymentHeaders\"\n SectionName=\"Linked Reversal &amp; Refund Payment Records\"\n Icon=\"fa fa-rotate-left\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJBizAppsOrdersPaymentHeaders')\"\n [DefaultExpanded]=\"false\">\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ_BizApps_Orders: Payment Headers', 'ReversesPaymentHeaderID')\"\n [NewRecordValues]=\"NewRecordValues('MJ_BizApps_Orders: Payment Headers', 'ReversesPaymentHeaderID')\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJBizAppsOrdersPaymentHeaders', $event.totalRowCount)\">\n </mj-explorer-entity-data-grid>\n </mj-collapsible-panel>\n </div>\n }\n\n</mj-record-form-container>\n}\n", styles: ["/* ============================================================================\n BizApps Orders \u2014 Custom Payment Header Form Component Styles\n Uses MemberJunction semantic tokens for dark and light theme harmony.\n ============================================================================ */\n\n:host {\n display: block;\n width: 100%;\n}\n\n/* \u2500\u2500 1. Hero Header Banner \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-ph-hero {\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-lg, 12px);\n padding: var(--mj-space-4, 16px) var(--mj-space-5, 20px);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);\n margin-bottom: var(--mj-space-4, 16px);\n}\n\n.mjo-ph-hero__top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-4, 16px);\n flex-wrap: wrap;\n}\n\n.mjo-ph-who {\n display: flex;\n align-items: center;\n gap: var(--mj-space-4, 16px);\n}\n\n.mjo-ph-avatar {\n width: 48px;\n height: 48px;\n border-radius: var(--mj-radius-md, 8px);\n background: linear-gradient(135deg, #16a34a 0%, #15803d 100%);\n color: #ffffff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n box-shadow: 0 4px 10px rgba(22, 163, 74, 0.25);\n flex-shrink: 0;\n}\n\n.mjo-ph-avatar.is-reversal {\n background: linear-gradient(135deg, #9333ea 0%, #7e22ce 100%);\n box-shadow: 0 4px 10px rgba(147, 51, 234, 0.25);\n}\n\n.mjo-ph-title-row {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3, 10px);\n flex-wrap: wrap;\n}\n\n.mjo-ph-title {\n margin: 0;\n font-size: var(--mj-text-lg, 18px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n letter-spacing: -0.01em;\n}\n\n.mjo-ph-sub {\n font-size: var(--mj-text-xs, 12px);\n color: var(--mj-text-muted, #64748b);\n margin-top: 2px;\n}\n\n.mjo-ph-hero__aside {\n display: flex;\n align-items: center;\n gap: var(--mj-space-5, 20px);\n flex-wrap: wrap;\n}\n\n.mjo-ph-money {\n display: flex;\n align-items: center;\n gap: var(--mj-space-4, 16px);\n padding: var(--mj-space-2, 6px) var(--mj-space-4, 14px);\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.03));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 8px);\n}\n\n.mjo-ph-money > div {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n}\n\n.mjo-ph-kicker {\n font-size: var(--mj-text-xs, 11px);\n font-weight: var(--mj-font-semibold, 600);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted, #64748b);\n}\n\n.mjo-ph-amt {\n font-size: var(--mj-text-sm, 13px);\n font-weight: var(--mj-font-bold, 700);\n font-family: var(--mj-font-family-mono, monospace);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-ph-amt.is-balanced {\n color: #16a34a;\n}\n\n.mjo-ph-amt.is-unbalanced {\n color: #d97706;\n}\n\n.mjo-ph-actions {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n/* \u2500\u2500 2. Tab Navigation \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-ph-tabs {\n margin-bottom: var(--mj-space-4, 16px);\n}\n\n/* \u2500\u2500 3. 2-Column Workbench Layout \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-ph-workbench {\n display: flex;\n gap: var(--mj-space-4, 16px);\n align-items: flex-start;\n width: 100%;\n}\n\n.mjo-ph-money-pane {\n width: 380px;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-4, 16px);\n --mj-forms-field-label-width: 105px;\n --mj-forms-field-gap: 8px;\n}\n\n.mjo-ph-fields-stack {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mjo-ph-fields-stack mj-form-field {\n --mj-forms-field-label-width: 105px;\n --mj-forms-field-gap: 8px;\n}\n\n.mjo-ph-alloc-pane {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-4, 16px);\n}\n\n/* \u2500\u2500 4. Card Surfaces \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-card {\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-lg, 10px);\n box-shadow: var(--mj-shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.04));\n overflow: hidden;\n}\n\n.mjo-card__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--mj-space-3, 12px) var(--mj-space-4, 16px);\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.02));\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n.mjo-card__title {\n font-size: var(--mj-text-sm, 13px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-card__body {\n padding: var(--mj-space-4, 16px);\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3, 12px);\n}\n\n.mjo-card__body.p-0 {\n padding: 0;\n}\n\n.mjo-field {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mjo-label {\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #94a3b8);\n}\n\n.mjo-input-money-wrap {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n}\n\n.mjo-currency-prefix {\n position: absolute;\n left: 14px;\n font-size: var(--mj-text-lg, 16px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-muted, #94a3b8);\n pointer-events: none;\n z-index: 2;\n}\n\n.mjo-input--money {\n padding-left: 30px !important;\n font-size: var(--mj-text-lg, 16px) !important;\n font-weight: var(--mj-font-bold, 700) !important;\n font-family: var(--mj-font-family-mono, monospace) !important;\n height: 42px !important;\n width: 100% !important;\n background: var(--mj-bg-surface-card, transparent) !important;\n color: var(--mj-text-primary, inherit) !important;\n border: 1px solid var(--mj-border-default, #334155) !important;\n border-radius: var(--mj-radius-md, 6px) !important;\n}\n\n.mjo-input--money:focus {\n border-color: var(--mj-brand-primary, #0076b6) !important;\n box-shadow: 0 0 0 2px rgba(0, 118, 182, 0.25) !important;\n}\n\n.mjo-net-calc {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 14px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.2));\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.08));\n border-radius: var(--mj-radius-md, 6px);\n margin-top: 4px;\n}\n\n.mjo-net-calc__label {\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #94a3b8);\n}\n\n.mjo-net-calc__val {\n font-size: var(--mj-text-base, 15px);\n font-weight: var(--mj-font-bold, 700);\n font-family: var(--mj-font-family-mono, monospace);\n color: var(--mj-text-primary, #f8fafc);\n}\n\n.mjo-payer-chip {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n padding: 6px 10px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.03));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 6px);\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n}\n\n/* \u2500\u2500 5. Books Preview Card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-card--books {\n border-color: rgba(0, 118, 182, 0.25);\n}\n\n\n\n/* \u2500\u2500 6. Allocation Hero Status Strip \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-alloc-hero {\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-lg, 12px);\n padding: var(--mj-space-3, 12px) var(--mj-space-4, 16px);\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-alloc-hero.is-balanced {\n border-color: rgba(22, 163, 74, 0.35);\n background: rgba(22, 163, 74, 0.03);\n}\n\n.mjo-alloc-hero.is-warning {\n border-color: rgba(217, 119, 6, 0.35);\n background: rgba(217, 119, 6, 0.03);\n}\n\n.mjo-alloc-hero.is-error {\n border-color: rgba(220, 38, 38, 0.35);\n background: rgba(220, 38, 38, 0.03);\n}\n\n.mjo-alloc-hero__stats {\n display: flex;\n align-items: center;\n gap: var(--mj-space-4, 16px);\n flex-wrap: wrap;\n}\n\n.mjo-alloc-stat {\n display: flex;\n flex-direction: column;\n}\n\n.mjo-alloc-stat__kicker {\n font-size: 11px;\n font-weight: var(--mj-font-semibold, 600);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted, #64748b);\n}\n\n.mjo-alloc-stat__val {\n font-size: var(--mj-text-base, 15px);\n font-weight: var(--mj-font-bold, 700);\n font-family: var(--mj-font-family-mono, monospace);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-alloc-stat__op {\n font-size: 14px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-alloc-hero__message {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n padding-top: 6px;\n border-top: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n/* \u2500\u2500 7. Toolbar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-alloc-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-3, 12px);\n flex-wrap: wrap;\n}\n\n.mjo-alloc-toolbar__left {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-alloc-toolbar__title {\n margin: 0;\n font-size: var(--mj-text-sm, 14px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-alloc-toolbar__right {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-search-input-wrap {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.mjo-search-input-wrap i {\n position: absolute;\n left: 8px;\n font-size: 11px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-search-input-wrap input {\n padding-left: 24px;\n width: 160px;\n}\n\n/* \u2500\u2500 8. Orders & Allocations Table \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-table-responsive {\n overflow-x: auto;\n width: 100%;\n}\n\n/* Required-field affordance: the marker sits on the label, the invalid state and hint appear\n only after a capture is attempted without the field. Say it before the server has to. */\n.mjo-required-mark {\n color: var(--mj-status-error, #dc2626);\n font-weight: var(--mj-font-bold, 700);\n}\n\n.mjo-input--invalid {\n border-color: var(--mj-status-error, #dc2626) !important;\n box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.12);\n}\n\n.mjo-field-hint--error {\n margin-top: 4px;\n font-size: var(--mj-text-xs, 12px);\n color: var(--mj-status-error, #dc2626);\n}\n\n.mjo-table {\n width: 100%;\n border-collapse: collapse;\n font-size: var(--mj-text-xs, 12px);\n}\n\n.mjo-table th {\n background: var(--mj-bg-surface-header, rgba(0, 0, 0, 0.02));\n color: var(--mj-text-muted, #64748b);\n font-weight: var(--mj-font-semibold, 600);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n font-size: 11px;\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n text-align: left;\n}\n\n.mjo-table td {\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n vertical-align: middle;\n color: var(--mj-text-primary, #0f172a);\n}\n\n/* Headers and action buttons never wrap: \"Pay in Full\" was folding onto three lines inside a\n crushed cell while the wrapper's overflow-x sat unused. Let the table scroll instead. */\n.mjo-table th,\n.mjo-table .mjo-btn,\n.mjo-table .font-mono {\n white-space: nowrap;\n}\n\n.mjo-order-row:hover {\n background: var(--mj-bg-surface-hover, rgba(0, 0, 0, 0.02));\n}\n\n.mjo-order-row.is-expanded {\n background: rgba(0, 118, 182, 0.02);\n}\n\n.mjo-apply-input-wrap {\n position: relative;\n display: inline-flex;\n align-items: center;\n width: 100%;\n max-width: 110px;\n}\n\n.mjo-apply-dollar {\n position: absolute;\n left: 8px;\n font-size: 11px;\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-muted, #64748b);\n pointer-events: none;\n}\n\n.mjo-apply-input-wrap input {\n padding-left: 18px;\n}\n\n.mjo-nested-lines-pane {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.02));\n border-top: 1px solid var(--mj-border-default, #e2e8f0);\n border-bottom: 2px solid var(--mj-border-default, #cbd5e1);\n padding: var(--mj-space-3, 10px) var(--mj-space-4, 16px);\n}\n\n.mjo-nested-lines-header {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n font-size: 11px;\n font-weight: var(--mj-font-bold, 700);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-secondary, #475569);\n margin-bottom: var(--mj-space-2, 6px);\n}\n\n.mjo-nested-table {\n width: 100%;\n border-collapse: collapse;\n font-size: var(--mj-text-xs, 12px);\n background: var(--mj-bg-surface-card, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 6px);\n overflow: hidden;\n}\n\n.mjo-nested-table th {\n background: rgba(0, 0, 0, 0.02);\n font-size: 10.5px;\n font-weight: var(--mj-font-semibold, 600);\n padding: 6px 10px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n.mjo-nested-table td {\n padding: 6px 10px;\n border-bottom: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n/* \u2500\u2500 9. Accounting Postings View \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-ph-tab-body {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-4, 16px);\n}\n\n.mjo-accounting-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-4, 16px);\n flex-wrap: wrap;\n}\n\n.mjo-accounting-header h2 {\n margin: 0;\n font-size: var(--mj-text-base, 15px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-accounting-header p {\n margin: 2px 0 0 0;\n font-size: var(--mj-text-xs, 12px);\n}\n\n.mjo-view-toggle {\n display: flex;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.04));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 6px);\n padding: 2px;\n}\n\n.mjo-toggle-btn {\n border: none;\n background: transparent;\n padding: 4px 10px;\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #475569);\n border-radius: var(--mj-radius-sm, 4px);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mjo-toggle-btn.is-active {\n background: var(--mj-bg-surface-card, #ffffff);\n color: var(--mj-text-primary, #0f172a);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.mjo-gl-cards-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));\n gap: var(--mj-space-4, 16px);\n}\n\n.mjo-table--compact th, .mjo-table--compact td {\n padding: 6px 10px;\n}\n\n.mjo-table tfoot th {\n background: var(--mj-bg-surface-header, rgba(0, 0, 0, 0.02));\n border-top: 2px solid var(--mj-border-default, #cbd5e1);\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-bold, 700);\n}\n\n.is-intercompany {\n background: rgba(0, 118, 182, 0.04);\n}\n\n.mjo-ic-tag {\n display: inline-block;\n font-size: 10px;\n font-weight: var(--mj-font-bold, 700);\n text-transform: uppercase;\n color: #0284c7;\n background: rgba(2, 132, 199, 0.12);\n padding: 1px 5px;\n border-radius: 3px;\n margin-left: 6px;\n}\n\n/* \u2500\u2500 10. Common UI Elements & Chips \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--mj-space-2, 6px);\n height: 34px;\n padding: 0 14px;\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n border-radius: var(--mj-radius-md, 6px);\n cursor: pointer;\n border: 1px solid transparent;\n transition: all 0.15s ease;\n}\n\n.mjo-btn--primary {\n background: var(--mj-brand-primary, #0076b6);\n color: #ffffff;\n}\n\n.mjo-btn--primary:hover:not(:disabled) {\n background: #006094;\n}\n\n.mjo-btn--secondary {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.05));\n border-color: var(--mj-border-default, #cbd5e1);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-btn--secondary:hover:not(:disabled) {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.mjo-btn--outline {\n background: transparent;\n border-color: var(--mj-border-default, #cbd5e1);\n color: var(--mj-text-secondary, #475569);\n}\n\n.mjo-btn--outline:hover:not(:disabled) {\n border-color: var(--mj-brand-primary, #0076b6);\n color: var(--mj-brand-primary, #0076b6);\n}\n\n.mjo-btn--sm {\n height: 30px;\n padding: 0 10px;\n font-size: 11.5px;\n}\n\n.mjo-btn--xs {\n height: 24px;\n padding: 0 8px;\n font-size: 11px;\n}\n\n.mjo-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.mjo-icon-btn {\n border: none;\n background: transparent;\n color: var(--mj-text-muted, #64748b);\n cursor: pointer;\n padding: 4px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.mjo-icon-btn:hover {\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-link {\n border: none;\n background: transparent;\n color: var(--mj-brand-primary, #0076b6);\n cursor: pointer;\n padding: 0;\n font-size: inherit;\n text-align: left;\n}\n\n.mjo-link:hover {\n text-decoration: underline;\n}\n\n.mjo-status-chip {\n font-size: 11px;\n font-weight: var(--mj-font-bold, 700);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n padding: 2px 8px;\n border-radius: 4px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.mjo-status-chip--draft {\n background: rgba(100, 116, 139, 0.12);\n color: #475569;\n}\n\n.mjo-status-chip--active {\n background: rgba(22, 163, 74, 0.12);\n color: #16a34a;\n}\n\n.mjo-status-chip--purple {\n background: rgba(147, 51, 234, 0.12);\n color: #9333ea;\n}\n\n.mjo-status-chip--error {\n background: rgba(220, 38, 38, 0.12);\n color: #dc2626;\n}\n\n.mjo-status-chip--warning {\n background: rgba(217, 119, 6, 0.12);\n color: #d97706;\n}\n\n.mjo-company-pill {\n font-size: 11px;\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-secondary, #475569);\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.04));\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.mjo-sku-chip {\n font-family: var(--mj-font-family-mono, monospace);\n font-size: 10px;\n color: var(--mj-text-muted, #64748b);\n background: rgba(0, 0, 0, 0.04);\n padding: 1px 4px;\n border-radius: 3px;\n margin-left: 4px;\n}\n\n.mjo-badge {\n font-size: 11px;\n font-weight: var(--mj-font-semibold, 600);\n padding: 2px 6px;\n border-radius: 12px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.05));\n color: var(--mj-text-secondary, #475569);\n}\n\n.mjo-badge--error {\n background: rgba(220, 38, 38, 0.12);\n color: #dc2626;\n}\n\n.mjo-badge--success {\n background: rgba(22, 163, 74, 0.12);\n color: #16a34a;\n}\n\n.mjo-empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: var(--mj-space-6, 32px) var(--mj-space-4, 16px);\n text-align: center;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-empty-state h3 {\n margin: 0;\n font-size: var(--mj-text-sm, 14px);\n font-weight: var(--mj-font-bold, 700);\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-empty-state p {\n margin: 0;\n font-size: var(--mj-text-xs, 12px);\n color: var(--mj-text-muted, #64748b);\n max-width: 380px;\n}\n\n.mjo-alert {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3, 10px);\n padding: 10px 14px;\n border-radius: var(--mj-radius-md, 8px);\n font-size: var(--mj-text-xs, 12px);\n margin-bottom: var(--mj-space-3, 12px);\n}\n\n.mjo-alert--error {\n background: rgba(220, 38, 38, 0.08);\n border: 1px solid rgba(220, 38, 38, 0.25);\n color: #dc2626;\n}\n\n.mjo-subtext {\n font-size: 11px;\n color: var(--mj-text-muted, #64748b);\n}\n\n.text-right { text-align: right; }\n.font-mono { font-family: var(--mj-font-family-mono, monospace); }\n.font-bold { font-weight: var(--mj-font-bold, 700); }\n.text-muted { color: var(--mj-text-muted, #64748b); }\n.text-success { color: #16a34a; }\n.text-warning { color: #d97706; }\n.text-danger { color: #dc2626; }\n.w-8 { width: 32px; }\n.w-16 { width: 64px; }\n.w-20 { width: 80px; }\n.w-24 { width: 96px; }\n.w-36 { width: 144px; }\n.flex { display: flex; }\n.gap-2 { gap: 8px; }\n.col-span-full { grid-column: 1 / -1; }\n.text-info { color: #0284c7; }\n\n/* \u2500\u2500 12. Instrument Box (Check/Card/ACH/Wire) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.mjo-instrument-box {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.02));\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: var(--mj-radius-md, 8px);\n padding: var(--mj-space-3, 12px);\n margin: var(--mj-space-2, 6px) 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3, 10px);\n}\n\n.mjo-instrument-box__title {\n font-size: var(--mj-text-xs, 12px);\n font-weight: var(--mj-font-semibold, 600);\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: 6px;\n padding-bottom: 6px;\n border-bottom: 1px dashed var(--mj-border-default, #e2e8f0);\n}\n\n.mjo-instrument-box__grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--mj-space-2, 8px);\n}\n\n.mjo-instrument-box .mjo-field {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mjo-instrument-box .mjo-label {\n font-size: 11px;\n font-weight: var(--mj-font-medium, 500);\n color: var(--mj-text-secondary, #475569);\n}\n\n.mjo-apply-input-wrap.is-derived input {\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.03));\n color: var(--mj-text-secondary, #475569);\n cursor: not-allowed;\n border-style: dashed;\n}\n"] }]
2163
2206
  }], null, null); })();
2164
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BizAppsPaymentHeaderFormComponent, { className: "BizAppsPaymentHeaderFormComponent", filePath: "lib/custom/PaymentHeader/payment-header-form.component.ts", lineNumber: 56 }); })();
2207
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BizAppsPaymentHeaderFormComponent, { className: "BizAppsPaymentHeaderFormComponent", filePath: "lib/custom/PaymentHeader/payment-header-form.component.ts", lineNumber: 76 }); })();
2165
2208
  /** Tree-shaking prevention anchor function */
2166
2209
  export function LoadPaymentHeaderFormComponent() {
2167
2210
  // Anchors BizAppsPaymentHeaderFormComponent in bundlers