@mj-biz-apps/orders-ng 5.37.0 → 5.38.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 (25) hide show
  1. package/dist/lib/custom/OrderHeader/order-header-form.component.js +11 -11
  2. package/dist/lib/custom/OrderHeader/order-header-form.component.js.map +1 -1
  3. package/dist/lib/custom/custom-forms.module.d.ts +1 -1
  4. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  5. package/dist/lib/custom/custom-forms.module.js +6 -3
  6. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  7. package/dist/lib/pages/orders/orders-dashboard.page.d.ts +17 -3
  8. package/dist/lib/pages/orders/orders-dashboard.page.d.ts.map +1 -1
  9. package/dist/lib/pages/orders/orders-dashboard.page.js +43 -45
  10. package/dist/lib/pages/orders/orders-dashboard.page.js.map +1 -1
  11. package/dist/lib/pages/receivables/customer-ar.page.d.ts.map +1 -1
  12. package/dist/lib/pages/receivables/customer-ar.page.js +6 -12
  13. package/dist/lib/pages/receivables/customer-ar.page.js.map +1 -1
  14. package/dist/lib/pages/receivables/subscriptions.page.d.ts +13 -3
  15. package/dist/lib/pages/receivables/subscriptions.page.d.ts.map +1 -1
  16. package/dist/lib/pages/receivables/subscriptions.page.js +114 -93
  17. package/dist/lib/pages/receivables/subscriptions.page.js.map +1 -1
  18. package/dist/lib/panels/aging-bar.component.d.ts +19 -0
  19. package/dist/lib/panels/aging-bar.component.d.ts.map +1 -1
  20. package/dist/lib/panels/aging-bar.component.js +31 -2
  21. package/dist/lib/panels/aging-bar.component.js.map +1 -1
  22. package/dist/lib/sections/orders-sections.component.d.ts.map +1 -1
  23. package/dist/lib/sections/orders-sections.component.js +5 -4
  24. package/dist/lib/sections/orders-sections.component.js.map +1 -1
  25. package/package.json +6 -6
@@ -67,11 +67,11 @@ function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditiona
67
67
  } }
68
68
  function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditional_21_Template(rf, ctx) { if (rf & 1) {
69
69
  const _r5 = i0.ɵɵgetCurrentView();
70
- i0.ɵɵelementStart(0, "div", 40)(1, "mj-form-field", 49);
71
- i0.ɵɵlistener("Navigate", function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditional_21_Template_mj_form_field_Navigate_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
70
+ i0.ɵɵelementStart(0, "div", 40)(1, "bizapps-party-field", 49);
71
+ i0.ɵɵlistener("Navigate", function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditional_21_Template_bizapps_party_field_Navigate_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
72
72
  i0.ɵɵelementEnd();
73
- i0.ɵɵelementStart(2, "mj-form-field", 50);
74
- i0.ɵɵlistener("Navigate", function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditional_21_Template_mj_form_field_Navigate_2_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("ValueChange", function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditional_21_Template_mj_form_field_ValueChange_2_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPartyPersonChange("ShipTo", $event)); });
73
+ i0.ɵɵelementStart(2, "bizapps-party-field", 50);
74
+ i0.ɵɵlistener("Navigate", function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditional_21_Template_bizapps_party_field_Navigate_2_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("ValueChange", function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditional_21_Template_bizapps_party_field_ValueChange_2_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPartyPersonChange("ShipTo", $event)); });
75
75
  i0.ɵɵelementEnd();
76
76
  i0.ɵɵelement(3, "mjo-party-address-picker", 51);
77
77
  i0.ɵɵelementEnd();
@@ -106,11 +106,11 @@ function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditiona
106
106
  } }
107
107
  function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditional_34_Template(rf, ctx) { if (rf & 1) {
108
108
  const _r7 = i0.ɵɵgetCurrentView();
109
- i0.ɵɵelementStart(0, "div", 40)(1, "mj-form-field", 52);
110
- i0.ɵɵlistener("Navigate", function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditional_34_Template_mj_form_field_Navigate_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
109
+ i0.ɵɵelementStart(0, "div", 40)(1, "bizapps-party-field", 52);
110
+ i0.ɵɵlistener("Navigate", function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditional_34_Template_bizapps_party_field_Navigate_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
111
111
  i0.ɵɵelementEnd();
112
- i0.ɵɵelementStart(2, "mj-form-field", 53);
113
- i0.ɵɵlistener("Navigate", function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditional_34_Template_mj_form_field_Navigate_2_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("ValueChange", function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditional_34_Template_mj_form_field_ValueChange_2_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPartyPersonChange("BillTo", $event)); });
112
+ i0.ɵɵelementStart(2, "bizapps-party-field", 53);
113
+ i0.ɵɵlistener("Navigate", function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditional_34_Template_bizapps_party_field_Navigate_2_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("ValueChange", function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditional_34_Template_bizapps_party_field_ValueChange_2_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPartyPersonChange("BillTo", $event)); });
114
114
  i0.ɵɵelementEnd();
115
115
  i0.ɵɵelementStart(3, "mj-form-field", 54);
116
116
  i0.ɵɵlistener("Navigate", function BizAppsOrderHeaderFormComponent_Conditional_0_Conditional_33_Conditional_34_Template_mj_form_field_Navigate_3_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); });
@@ -1651,11 +1651,11 @@ let BizAppsOrderHeaderFormComponent = class BizAppsOrderHeaderFormComponent exte
1651
1651
  });
1652
1652
  }
1653
1653
  static ɵfac = /*@__PURE__*/ (() => { let ɵBizAppsOrderHeaderFormComponent_BaseFactory; return function BizAppsOrderHeaderFormComponent_Factory(__ngFactoryType__) { return (ɵBizAppsOrderHeaderFormComponent_BaseFactory || (ɵBizAppsOrderHeaderFormComponent_BaseFactory = i0.ɵɵgetInheritedFactory(BizAppsOrderHeaderFormComponent)))(__ngFactoryType__ || BizAppsOrderHeaderFormComponent); }; })();
1654
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BizAppsOrderHeaderFormComponent, selectors: [["bizapps-order-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-oh-hero"], [1, "mjo-oh-hero__top"], [1, "mjo-oh-who"], [1, "mjo-oh-avatar"], [1, "fa-solid", "fa-file-invoice-dollar"], [1, "mjo-oh-title-row"], [1, "mjo-oh-title"], [3, "class"], [1, "mjo-oh-sub"], [1, "mjo-oh-hero__aside"], [1, "mjo-oh-money"], [1, "mjo-oh-kicker"], [1, "mjo-oh-amt"], ["type", "button", 1, "mjo-oh-hero__toggle", 3, "click", "title"], ["aria-hidden", "true", 1, "fa-solid"], ["Slot", "after-fields", 3, "Entity", "Record", "FormComponent", "FormContext"], ["SectionKey", "mJBizAppsOrdersOrderLines", "SectionName", "Lines", "Icon", "fa fa-list-ol", 3, "Form", "FormContext", "BadgeCount", "DefaultExpanded"], [3, "PricingChanged", "Navigate", "Order", "EditMode"], ["Slot", "after-related", 3, "Entity", "Record", "FormComponent", "FormContext"], ["Slot", "after-everything", 3, "Entity", "Record", "FormComponent", "FormContext"], [1, "mjo-oh-facts"], [1, "mjo-oh-fact"], ["FieldName", "OrderType", "Type", "select", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "CompanyID", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "OrderDate", "Type", "datepicker", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mjo-oh-hint"], [1, "mjo-oh-parties"], [1, "mjo-oh-bubble"], ["role", "button", "tabindex", "0", 1, "mjo-oh-bubble__hit", 3, "click", "keydown.enter", "keydown.space"], [1, "mjo-oh-bubble__ic"], [1, "fa-solid", "fa-truck-fast"], [1, "mjo-oh-bubble__copy"], [1, "mjo-oh-bubble__role"], [1, "mjo-oh-bubble__name"], ["type", "button", 1, "mjo-oh-link", "mjo-oh-bubble__name"], [1, "mjo-oh-bubble__detail"], [1, "fa-solid", "mjo-oh-bubble__chev"], [1, "mjo-oh-bubble__edit"], [1, "mjo-oh-todo"], ["role", "alert", 1, "mjo-oh-todo", "mjo-oh-todo--err"], ["role", "status", 1, "mjo-oh-todo"], ["role", "status", 1, "mjo-oh-todo", "mjo-oh-moved"], [1, "mjo-oh-tabs", 3, "TabChange", "Tabs", "ActiveKey"], [1, "mjo-oh-tabpane"], ["aria-hidden", "true", 1, "fa-solid", "fa-lock"], ["type", "button", 1, "mjo-oh-link", "mjo-oh-bubble__name", 3, "click"], ["FieldName", "ShipToOrganizationID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ShipToPersonID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "ValueChange", "Record", "ShowLabel", "EditMode", "FormContext"], ["Side", "ship", 3, "Order", "EditMode", "PersonName", "OrganizationName"], ["FieldName", "BillToOrganizationID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "BillToPersonID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "ValueChange", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "PaymentTermsTypeID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["Side", "bill", 3, "Order", "EditMode", "PersonName", "OrganizationName"], [1, "fa-solid", "fa-circle-exclamation"], ["type", "button"], [1, "mjo-oh-todo__hint"], ["type", "button", 3, "click"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "fa-solid", "fa-building-circle-xmark"], ["type", "button", "aria-label", "Dismiss", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "fa-solid", "fa-calendar-xmark"], [1, "mjo-oh-moved__list"], [1, "mjo-oh-fields"], ["FieldName", "InitialPaymentTypeID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "InitialPaymentAmount", "Type", "number", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mjo-oh-ref"], [3, "Params", "AllowLoad", "ShowToolbar", "ShowNewButton", "ShowDeleteButton", "Height", "MaxHeight"], [1, "mjo-oh-ref__label"], ["placeholder", "Check number or confirmation ID", "autocomplete", "off", "aria-label", "Check or ACH reference", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], [3, "Navigate", "Params", "AllowLoad", "ShowToolbar", "ShowNewButton", "ShowDeleteButton", "Height", "MaxHeight"], ["FieldName", "RequestedDeliveryDate", "Type", "datepicker", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "DueDate", "Type", "datepicker", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ExternalDocumentNumber", "Type", "textbox", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "FulfillmentStatus", "Type", "select", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Status", "Type", "select", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "SalesRepUserID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Description", "Type", "textarea", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Notes", "Type", "textarea", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mjo-oh-acct__bar"], ["role", "group", "aria-label", "Accounting view", 1, "mjo-oh-switch"], [1, "mjo-oh-switch__n"], [1, "fa-solid", "fa-chart-line"], [1, "mjo-oh-acct__controls"], [2, "padding", "12px 0"], [1, "mjo-oh-asof"], ["type", "date", "aria-label", "Include entries dated on or before", 3, "change", "value"], ["type", "button", 1, "mjo-oh-asof__clear"], ["role", "group", "aria-label", "Date basis", 1, "mjo-oh-switch", "mjo-oh-switch--sm"], [1, "mjo-oh-acct__basis"], ["type", "button", 1, "mjo-oh-asof__clear", 3, "click"], [3, "JournalEntrySelected", "JournalEntries", "Title"], [1, "mjo-oh-acct__excluded"], [1, "mjo-oh-jecard"], [1, "mjo-oh-acct__note"], [1, "mjo-oh-jecard__head"], [1, "mjo-oh-jecard__co"], [1, "mjo-oh-jecard__sub"], [1, "mjo-oh-chip"], [1, "mjo-oh-je__table"], [1, "is-num"], [1, "mjo-oh-acctline"], [1, "mjo-oh-acctline__code"], [1, "mjo-oh-acctline__name"], [1, "mjo-oh-acctline__meta"], [1, "mjo-oh-dim"], [1, "mjo-oh-je__src"], ["type", "button", 1, "mjo-oh-linkbtn", 3, "click"], [1, "mjo-oh-je__table", "mjo-oh-je__table--detail"], [1, "is-clickable"], [1, "is-clickable", 3, "click"], [3, "Params", "AllowLoad", "ShowToolbar", "ShowNewButton", "Height", "MaxHeight"], [3, "Navigate", "Params", "AllowLoad", "ShowToolbar", "ShowNewButton", "Height", "MaxHeight"]], template: function BizAppsOrderHeaderFormComponent_Template(rf, ctx) { if (rf & 1) {
1654
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BizAppsOrderHeaderFormComponent, selectors: [["bizapps-order-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-oh-hero"], [1, "mjo-oh-hero__top"], [1, "mjo-oh-who"], [1, "mjo-oh-avatar"], [1, "fa-solid", "fa-file-invoice-dollar"], [1, "mjo-oh-title-row"], [1, "mjo-oh-title"], [3, "class"], [1, "mjo-oh-sub"], [1, "mjo-oh-hero__aside"], [1, "mjo-oh-money"], [1, "mjo-oh-kicker"], [1, "mjo-oh-amt"], ["type", "button", 1, "mjo-oh-hero__toggle", 3, "click", "title"], ["aria-hidden", "true", 1, "fa-solid"], ["Slot", "after-fields", 3, "Entity", "Record", "FormComponent", "FormContext"], ["SectionKey", "mJBizAppsOrdersOrderLines", "SectionName", "Lines", "Icon", "fa fa-list-ol", 3, "Form", "FormContext", "BadgeCount", "DefaultExpanded"], [3, "PricingChanged", "Navigate", "Order", "EditMode"], ["Slot", "after-related", 3, "Entity", "Record", "FormComponent", "FormContext"], ["Slot", "after-everything", 3, "Entity", "Record", "FormComponent", "FormContext"], [1, "mjo-oh-facts"], [1, "mjo-oh-fact"], ["FieldName", "OrderType", "Type", "select", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "CompanyID", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "OrderDate", "Type", "datepicker", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mjo-oh-hint"], [1, "mjo-oh-parties"], [1, "mjo-oh-bubble"], ["role", "button", "tabindex", "0", 1, "mjo-oh-bubble__hit", 3, "click", "keydown.enter", "keydown.space"], [1, "mjo-oh-bubble__ic"], [1, "fa-solid", "fa-truck-fast"], [1, "mjo-oh-bubble__copy"], [1, "mjo-oh-bubble__role"], [1, "mjo-oh-bubble__name"], ["type", "button", 1, "mjo-oh-link", "mjo-oh-bubble__name"], [1, "mjo-oh-bubble__detail"], [1, "fa-solid", "mjo-oh-bubble__chev"], [1, "mjo-oh-bubble__edit"], [1, "mjo-oh-todo"], ["role", "alert", 1, "mjo-oh-todo", "mjo-oh-todo--err"], ["role", "status", 1, "mjo-oh-todo"], ["role", "status", 1, "mjo-oh-todo", "mjo-oh-moved"], [1, "mjo-oh-tabs", 3, "TabChange", "Tabs", "ActiveKey"], [1, "mjo-oh-tabpane"], ["aria-hidden", "true", 1, "fa-solid", "fa-lock"], ["type", "button", 1, "mjo-oh-link", "mjo-oh-bubble__name", 3, "click"], ["FieldName", "ShipToOrganizationID", "Kind", "Organization", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ShipToPersonID", "Kind", "Person", 3, "Navigate", "ValueChange", "Record", "ShowLabel", "EditMode", "FormContext"], ["Side", "ship", 3, "Order", "EditMode", "PersonName", "OrganizationName"], ["FieldName", "BillToOrganizationID", "Kind", "Organization", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "BillToPersonID", "Kind", "Person", 3, "Navigate", "ValueChange", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "PaymentTermsTypeID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["Side", "bill", 3, "Order", "EditMode", "PersonName", "OrganizationName"], [1, "fa-solid", "fa-circle-exclamation"], ["type", "button"], [1, "mjo-oh-todo__hint"], ["type", "button", 3, "click"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "fa-solid", "fa-building-circle-xmark"], ["type", "button", "aria-label", "Dismiss", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "fa-solid", "fa-calendar-xmark"], [1, "mjo-oh-moved__list"], [1, "mjo-oh-fields"], ["FieldName", "InitialPaymentTypeID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "InitialPaymentAmount", "Type", "number", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mjo-oh-ref"], [3, "Params", "AllowLoad", "ShowToolbar", "ShowNewButton", "ShowDeleteButton", "Height", "MaxHeight"], [1, "mjo-oh-ref__label"], ["placeholder", "Check number or confirmation ID", "autocomplete", "off", "aria-label", "Check or ACH reference", 1, "mj-input", 3, "ngModelChange", "ngModel", "disabled"], [3, "Navigate", "Params", "AllowLoad", "ShowToolbar", "ShowNewButton", "ShowDeleteButton", "Height", "MaxHeight"], ["FieldName", "RequestedDeliveryDate", "Type", "datepicker", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "DueDate", "Type", "datepicker", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ExternalDocumentNumber", "Type", "textbox", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "FulfillmentStatus", "Type", "select", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Status", "Type", "select", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "SalesRepUserID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Description", "Type", "textarea", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Notes", "Type", "textarea", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mjo-oh-acct__bar"], ["role", "group", "aria-label", "Accounting view", 1, "mjo-oh-switch"], [1, "mjo-oh-switch__n"], [1, "fa-solid", "fa-chart-line"], [1, "mjo-oh-acct__controls"], [2, "padding", "12px 0"], [1, "mjo-oh-asof"], ["type", "date", "aria-label", "Include entries dated on or before", 3, "change", "value"], ["type", "button", 1, "mjo-oh-asof__clear"], ["role", "group", "aria-label", "Date basis", 1, "mjo-oh-switch", "mjo-oh-switch--sm"], [1, "mjo-oh-acct__basis"], ["type", "button", 1, "mjo-oh-asof__clear", 3, "click"], [3, "JournalEntrySelected", "JournalEntries", "Title"], [1, "mjo-oh-acct__excluded"], [1, "mjo-oh-jecard"], [1, "mjo-oh-acct__note"], [1, "mjo-oh-jecard__head"], [1, "mjo-oh-jecard__co"], [1, "mjo-oh-jecard__sub"], [1, "mjo-oh-chip"], [1, "mjo-oh-je__table"], [1, "is-num"], [1, "mjo-oh-acctline"], [1, "mjo-oh-acctline__code"], [1, "mjo-oh-acctline__name"], [1, "mjo-oh-acctline__meta"], [1, "mjo-oh-dim"], [1, "mjo-oh-je__src"], ["type", "button", 1, "mjo-oh-linkbtn", 3, "click"], [1, "mjo-oh-je__table", "mjo-oh-je__table--detail"], [1, "is-clickable"], [1, "is-clickable", 3, "click"], [3, "Params", "AllowLoad", "ShowToolbar", "ShowNewButton", "Height", "MaxHeight"], [3, "Navigate", "Params", "AllowLoad", "ShowToolbar", "ShowNewButton", "Height", "MaxHeight"]], template: function BizAppsOrderHeaderFormComponent_Template(rf, ctx) { if (rf & 1) {
1655
1655
  i0.ɵɵconditionalCreate(0, BizAppsOrderHeaderFormComponent_Conditional_0_Template, 39, 45, "mj-record-form-container", 0);
1656
1656
  } if (rf & 2) {
1657
1657
  i0.ɵɵconditional(ctx.record ? 0 : -1);
1658
- } }, dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgModel, i2.MjFormFieldComponent, i2.MjCollapsiblePanelComponent, i2.MjRecordFormContainerComponent, i2.ExplorerEntityDataGridComponent, i2.FormPanelSlotComponent, i3.MJTabNavComponent, i4.MJOOrderLinesEditorComponent, i5.MJOPartyAddressPickerComponent, i6.DeferredRevenueWaterfallComponent, i7.SellingCompanyFieldComponent], styles: ["\n\n\n\n[_nghost-%COMP%] .mj-forms-panel-body:not(.mj-forms-panel-body--collapsed) {\n max-height: none;\n}\n\n[_nghost-%COMP%] .mj-forms-panel-body:not(.mj-forms-panel-body--collapsed) .mj-forms-panel-content {\n max-height: none;\n overflow: visible;\n}\n\n\n\n\n\n\n\n[_nghost-%COMP%] mj-collapsible-panel:has(mjo-order-lines-editor) .mj-forms-panel {\n overflow: visible;\n}\n\n[_nghost-%COMP%] mj-collapsible-panel:has(mjo-order-lines-editor) .mj-forms-panel-body:not(.mj-forms-panel-body--collapsed) {\n overflow: visible;\n}\n\n[_nghost-%COMP%] mj-collapsible-panel:has(.mj-typeahead-list.is-open) {\n position: relative;\n z-index: 30;\n}\n\n.mjo-oh-hero[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n padding: var(--mj-space-4) var(--mj-space-5);\n margin-bottom: var(--mj-space-4);\n}\n\n.mjo-oh-hero.is-collapsed[_ngcontent-%COMP%] {\n padding: var(--mj-space-2) var(--mj-space-4);\n}\n\n.mjo-oh-hero.is-collapsed[_ngcontent-%COMP%] .mjo-oh-hero__top[_ngcontent-%COMP%] {\n align-items: center;\n}\n\n.mjo-oh-hero.is-collapsed[_ngcontent-%COMP%] .mjo-oh-avatar[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n font-size: 14px;\n}\n\n.mjo-oh-hero.is-collapsed[_ngcontent-%COMP%] .mjo-oh-title[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base);\n}\n\n.mjo-oh-hero__toggle[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n flex: 0 0 auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.mjo-oh-hero__toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-hero__top[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--mj-space-4);\n flex-wrap: wrap;\n}\n\n.mjo-oh-hero__aside[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: var(--mj-space-4);\n flex-wrap: wrap;\n}\n\n.mjo-oh-confirm[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: var(--mj-space-1);\n min-width: 11rem;\n}\n\n.mjo-oh-confirm__hint[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n text-align: right;\n max-width: 14rem;\n line-height: 1.35;\n}\n\n.mjo-oh-who[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3);\n min-width: 0;\n}\n\n.mjo-oh-avatar[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n border-radius: var(--mj-radius-md);\n display: grid;\n place-items: center;\n flex: 0 0 auto;\n background: color-mix(in srgb, var(--mj-brand-primary) 18%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-size: 18px;\n}\n\n.mjo-oh-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n}\n\n.mjo-oh-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-lg);\n font-weight: var(--mj-font-bold);\n color: var(--mj-text-primary);\n letter-spacing: -0.02em;\n}\n\n.mjo-oh-sub[_ngcontent-%COMP%] {\n margin-top: 2px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n}\n\n.mjo-oh-kicker[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 10px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n}\n\n.mjo-oh-chip--ok[_ngcontent-%COMP%] {\n color: var(--mj-status-success-text);\n background: var(--mj-status-success-bg);\n border-color: var(--mj-status-success-border);\n}\n\n.mjo-oh-chip--void[_ngcontent-%COMP%] {\n color: var(--mj-status-error-text);\n background: var(--mj-status-error-bg);\n border-color: var(--mj-status-error-border);\n}\n\n.mjo-oh-money[_ngcontent-%COMP%] {\n display: flex;\n gap: var(--mj-space-5);\n padding: var(--mj-space-2) var(--mj-space-3);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle);\n}\n\n.mjo-oh-money[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.mjo-oh-amt[_ngcontent-%COMP%] {\n font-variant-numeric: tabular-nums;\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-facts[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: var(--mj-space-3) var(--mj-space-4);\n margin-top: var(--mj-space-4);\n padding: var(--mj-space-3);\n border: 1px solid var(--mj-border-subtle);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-fact[_ngcontent-%COMP%] .mj-forms-field {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: 4px;\n padding: 0;\n}\n\n.mjo-oh-fact[_ngcontent-%COMP%] .mj-forms-field-label {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n\n\n\n.mjo-oh-fact[_ngcontent-%COMP%] .mj-forms-field--editing:hover {\n margin: 0;\n padding: 0;\n}\n\n.mjo-oh-fields[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.mjo-oh-parties[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n gap: var(--mj-space-3);\n align-items: start;\n margin: var(--mj-space-4) 0 var(--mj-space-3);\n}\n\n.mjo-oh-parties.is-bill[_ngcontent-%COMP%] {\n grid-template-columns: auto minmax(0, 1fr);\n}\n\n.mjo-oh-parties.is-none[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 1fr;\n}\n\n.mjo-oh-bubble[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n min-width: 0;\n}\n\n.mjo-oh-bubble.is-open[_ngcontent-%COMP%] {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 45%, var(--mj-border-default));\n}\n\n.mjo-oh-bubble.is-rail[_ngcontent-%COMP%] {\n width: 3.25rem;\n flex: 0 0 auto;\n}\n\n.mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__hit[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n gap: var(--mj-space-2);\n padding: var(--mj-space-2);\n min-height: 5.5rem;\n}\n\n.mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__copy[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n align-items: center;\n}\n\n.mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__role[_ngcontent-%COMP%] {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n letter-spacing: 0.08em;\n}\n\n.mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__name[_ngcontent-%COMP%], \n.mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__detail[_ngcontent-%COMP%], \n.mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__chev[_ngcontent-%COMP%] {\n display: none;\n}\n\n@media (max-width: 720px) {\n .mjo-oh-parties[_ngcontent-%COMP%], \n .mjo-oh-parties.is-bill[_ngcontent-%COMP%], \n .mjo-oh-parties.is-none[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .mjo-oh-bubble.is-rail[_ngcontent-%COMP%] {\n width: auto;\n }\n\n .mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__hit[_ngcontent-%COMP%] {\n flex-direction: row;\n min-height: 0;\n padding: var(--mj-space-2) var(--mj-space-3);\n }\n\n .mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__copy[_ngcontent-%COMP%] {\n align-items: flex-start;\n }\n\n .mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__role[_ngcontent-%COMP%] {\n writing-mode: horizontal-tb;\n transform: none;\n }\n}\n\n.mjo-oh-bubble.is-needed[_ngcontent-%COMP%] {\n border-color: color-mix(in srgb, var(--mj-status-warning) 45%, var(--mj-border-default));\n}\n\n.mjo-oh-bubble__hit[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3);\n width: 100%;\n padding: var(--mj-space-3);\n border: 0;\n background: transparent;\n color: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.mjo-oh-bubble__name.mjo-oh-link[_ngcontent-%COMP%] {\n display: inline;\n padding: 0;\n border: 0;\n background: transparent;\n font: inherit;\n font-size: inherit;\n font-weight: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.mjo-oh-bubble__hit[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); }\n\n.mjo-oh-bubble__ic[_ngcontent-%COMP%] {\n width: var(--mj-space-8);\n height: var(--mj-space-8);\n border-radius: var(--mj-radius-sm);\n display: grid;\n place-items: center;\n flex: 0 0 auto;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n.mjo-oh-bubble__copy[_ngcontent-%COMP%] {\n min-width: 0;\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.mjo-oh-bubble__role[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-bubble__name[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-bubble__detail[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.mjo-oh-bubble__chev[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: var(--mj-text-xs);\n}\n\n.mjo-oh-bubble__edit[_ngcontent-%COMP%] {\n padding: var(--mj-space-3);\n border-top: 1px solid var(--mj-border-subtle);\n display: flex;\n flex-direction: column;\n}\n\n.mjo-oh-addr[_ngcontent-%COMP%] {\n margin-top: var(--mj-space-2);\n padding-top: var(--mj-space-2);\n border-top: 1px dashed var(--mj-border-subtle);\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-1);\n}\n\n.mjo-oh-addr__bar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-2);\n}\n\n.mjo-oh-addr__label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-addr__btn[_ngcontent-%COMP%] {\n border: 0;\n background: transparent;\n color: var(--mj-text-link);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n cursor: pointer;\n padding: 0;\n}\n\n.mjo-oh-addr__btn[_ngcontent-%COMP%]:disabled {\n color: var(--mj-text-disabled);\n cursor: default;\n}\n\n.mjo-oh-addr__row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr) minmax(0, 0.8fr);\n gap: var(--mj-space-2);\n}\n\n.mjo-oh-link[_ngcontent-%COMP%] {\n color: var(--mj-text-link);\n text-decoration: none;\n}\n\n.mjo-oh-link[_ngcontent-%COMP%]:hover { text-decoration: underline; }\n\n.mjo-oh-todo[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n margin-bottom: var(--mj-space-3);\n font-size: var(--mj-text-sm);\n color: var(--mj-status-warning-text);\n}\n\n.mjo-oh-todo[_ngcontent-%COMP%] button[_ngcontent-%COMP%], \n.mjo-oh-todo__hint[_ngcontent-%COMP%] {\n background: var(--mj-status-warning-bg);\n border: 1px solid var(--mj-status-warning-border);\n color: var(--mj-status-warning-text);\n border-radius: var(--mj-radius-full);\n padding: 2px 8px;\n font: inherit;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n}\n\n.mjo-oh-todo[_ngcontent-%COMP%] button[_ngcontent-%COMP%] { cursor: pointer; }\n\n.mjo-oh-todo--err[_ngcontent-%COMP%] {\n color: var(--mj-status-error-text);\n}\n\n.mjo-oh-moved__list[_ngcontent-%COMP%] {\n flex-basis: 100%;\n margin: 0;\n padding-left: var(--mj-space-5);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-ref[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-top: var(--mj-space-3);\n}\n\n.mjo-oh-ref__label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-ref[_ngcontent-%COMP%] .mj-input[_ngcontent-%COMP%] {\n max-width: 22rem;\n}\n\n.mjo-oh-tabs[_ngcontent-%COMP%] {\n display: block;\n margin-top: var(--mj-space-2);\n}\n\n.mjo-oh-tabpane[_ngcontent-%COMP%] { margin-top: var(--mj-space-3); }\n\n.mjo-oh-tabpane[_ngcontent-%COMP%] mj-explorer-entity-data-grid[_ngcontent-%COMP%] {\n display: block;\n}\n\n.mjo-oh-hint[_ngcontent-%COMP%] {\n margin-top: var(--mj-space-2);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-acct__bar[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--mj-space-3);\n flex-wrap: wrap;\n margin-bottom: var(--mj-space-3);\n}\n\n.mjo-oh-acct__bar[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-acct__bar[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 2px 0 0;\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-switch[_ngcontent-%COMP%] {\n display: inline-flex;\n padding: 2px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-full);\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-switch[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--mj-text-secondary);\n font: inherit;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n padding: 5px 12px;\n border-radius: var(--mj-radius-full);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.mjo-oh-switch[_ngcontent-%COMP%] button.is-on[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n box-shadow: 0 0 0 1px var(--mj-border-subtle);\n}\n\n.mjo-oh-switch__n[_ngcontent-%COMP%] {\n min-width: 1.25em;\n padding: 0 5px;\n border-radius: var(--mj-radius-full);\n background: color-mix(in srgb, var(--mj-brand-primary) 14%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-variant-numeric: tabular-nums;\n text-align: center;\n}\n\n\n\n.mjo-oh-acct__controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--mj-space-2) var(--mj-space-3);\n margin-bottom: var(--mj-space-3);\n}\n\n.mjo-oh-asof[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: var(--mj-space-2);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-secondary);\n}\n\n.mjo-oh-asof[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n font: inherit;\n font-weight: var(--mj-font-normal);\n padding: 4px 8px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-sm);\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-asof__clear[_ngcontent-%COMP%], \n.mjo-oh-linkbtn[_ngcontent-%COMP%] {\n appearance: none;\n border: 0;\n background: transparent;\n padding: 0;\n font: inherit;\n font-size: var(--mj-text-xs);\n color: var(--mj-brand-primary);\n cursor: pointer;\n text-decoration: underline;\n}\n\n.mjo-oh-switch--sm[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n padding: 4px 10px;\n}\n\n.mjo-oh-acct__basis[_ngcontent-%COMP%], \n.mjo-oh-acct__note[_ngcontent-%COMP%], \n.mjo-oh-acct__excluded[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-acct__note[_ngcontent-%COMP%], \n.mjo-oh-acct__excluded[_ngcontent-%COMP%] {\n margin: var(--mj-space-2) 0 0;\n}\n\n.mjo-oh-je__table--detail[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr.is-clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.mjo-oh-je__table--detail[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr.is-clickable[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-jecard[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface);\n overflow: hidden;\n}\n\n.mjo-oh-jecard[_ngcontent-%COMP%] + .mjo-oh-jecard[_ngcontent-%COMP%] {\n margin-top: var(--mj-space-3);\n}\n\n.mjo-oh-jecard__head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-2);\n padding: var(--mj-space-2) var(--mj-space-3);\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.mjo-oh-jecard__co[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-jecard__sub[_ngcontent-%COMP%] {\n margin-left: var(--mj-space-2);\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-je__table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: var(--mj-text-sm);\n}\n\n.mjo-oh-je__table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], \n.mjo-oh-je__table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: var(--mj-space-2) var(--mj-space-3);\n border-bottom: 1px solid var(--mj-border-subtle);\n text-align: left;\n vertical-align: top;\n}\n\n.mjo-oh-je__table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-je__table[_ngcontent-%COMP%] tfoot[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n border-bottom: 0;\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-je__table[_ngcontent-%COMP%] .is-num[_ngcontent-%COMP%] {\n text-align: right;\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n.mjo-oh-je__table[_ngcontent-%COMP%] .is-quiet[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n}\n\n.mjo-oh-acctline[_ngcontent-%COMP%] {\n display: flex;\n align-items: baseline;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n}\n\n.mjo-oh-acctline__code[_ngcontent-%COMP%] {\n font-variant-numeric: tabular-nums;\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-secondary);\n letter-spacing: 0.02em;\n}\n\n.mjo-oh-acctline__name[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-acctline__meta[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n margin-top: 4px;\n}\n\n.mjo-oh-dim[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 1px 8px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-xs);\n}\n\n.mjo-oh-je__src[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n@media (max-width: 760px) {\n .mjo-oh-parties[_ngcontent-%COMP%], \n .mjo-oh-facts[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n .mjo-oh-money[_ngcontent-%COMP%] { margin-left: 0; }\n}"] });
1658
+ } }, dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgModel, i2.MjFormFieldComponent, i2.MjCollapsiblePanelComponent, i2.MjRecordFormContainerComponent, i2.ExplorerEntityDataGridComponent, i2.FormPanelSlotComponent, i3.MJTabNavComponent, i4.MJOOrderLinesEditorComponent, i5.MJOPartyAddressPickerComponent, i6.DeferredRevenueWaterfallComponent, i7.SellingCompanyFieldComponent, i7.PartyFieldComponent], styles: ["\n\n\n\n[_nghost-%COMP%] .mj-forms-panel-body:not(.mj-forms-panel-body--collapsed) {\n max-height: none;\n}\n\n[_nghost-%COMP%] .mj-forms-panel-body:not(.mj-forms-panel-body--collapsed) .mj-forms-panel-content {\n max-height: none;\n overflow: visible;\n}\n\n\n\n\n\n\n\n[_nghost-%COMP%] mj-collapsible-panel:has(mjo-order-lines-editor) .mj-forms-panel {\n overflow: visible;\n}\n\n[_nghost-%COMP%] mj-collapsible-panel:has(mjo-order-lines-editor) .mj-forms-panel-body:not(.mj-forms-panel-body--collapsed) {\n overflow: visible;\n}\n\n[_nghost-%COMP%] mj-collapsible-panel:has(.mj-typeahead-list.is-open) {\n position: relative;\n z-index: 30;\n}\n\n.mjo-oh-hero[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n padding: var(--mj-space-4) var(--mj-space-5);\n margin-bottom: var(--mj-space-4);\n}\n\n.mjo-oh-hero.is-collapsed[_ngcontent-%COMP%] {\n padding: var(--mj-space-2) var(--mj-space-4);\n}\n\n.mjo-oh-hero.is-collapsed[_ngcontent-%COMP%] .mjo-oh-hero__top[_ngcontent-%COMP%] {\n align-items: center;\n}\n\n.mjo-oh-hero.is-collapsed[_ngcontent-%COMP%] .mjo-oh-avatar[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n font-size: 14px;\n}\n\n.mjo-oh-hero.is-collapsed[_ngcontent-%COMP%] .mjo-oh-title[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base);\n}\n\n.mjo-oh-hero__toggle[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n flex: 0 0 auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.mjo-oh-hero__toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-hero__top[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--mj-space-4);\n flex-wrap: wrap;\n}\n\n.mjo-oh-hero__aside[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: var(--mj-space-4);\n flex-wrap: wrap;\n}\n\n.mjo-oh-confirm[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: var(--mj-space-1);\n min-width: 11rem;\n}\n\n.mjo-oh-confirm__hint[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n text-align: right;\n max-width: 14rem;\n line-height: 1.35;\n}\n\n.mjo-oh-who[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3);\n min-width: 0;\n}\n\n.mjo-oh-avatar[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n border-radius: var(--mj-radius-md);\n display: grid;\n place-items: center;\n flex: 0 0 auto;\n background: color-mix(in srgb, var(--mj-brand-primary) 18%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-size: 18px;\n}\n\n.mjo-oh-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n}\n\n.mjo-oh-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-lg);\n font-weight: var(--mj-font-bold);\n color: var(--mj-text-primary);\n letter-spacing: -0.02em;\n}\n\n.mjo-oh-sub[_ngcontent-%COMP%] {\n margin-top: 2px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n}\n\n.mjo-oh-kicker[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 10px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n}\n\n.mjo-oh-chip--ok[_ngcontent-%COMP%] {\n color: var(--mj-status-success-text);\n background: var(--mj-status-success-bg);\n border-color: var(--mj-status-success-border);\n}\n\n.mjo-oh-chip--void[_ngcontent-%COMP%] {\n color: var(--mj-status-error-text);\n background: var(--mj-status-error-bg);\n border-color: var(--mj-status-error-border);\n}\n\n.mjo-oh-money[_ngcontent-%COMP%] {\n display: flex;\n gap: var(--mj-space-5);\n padding: var(--mj-space-2) var(--mj-space-3);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle);\n}\n\n.mjo-oh-money[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.mjo-oh-amt[_ngcontent-%COMP%] {\n font-variant-numeric: tabular-nums;\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-facts[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: var(--mj-space-3) var(--mj-space-4);\n margin-top: var(--mj-space-4);\n padding: var(--mj-space-3);\n border: 1px solid var(--mj-border-subtle);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-fact[_ngcontent-%COMP%] .mj-forms-field {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: 4px;\n padding: 0;\n}\n\n.mjo-oh-fact[_ngcontent-%COMP%] .mj-forms-field-label {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n\n\n\n.mjo-oh-fact[_ngcontent-%COMP%] .mj-forms-field--editing:hover {\n margin: 0;\n padding: 0;\n}\n\n.mjo-oh-fields[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.mjo-oh-parties[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n gap: var(--mj-space-3);\n align-items: start;\n margin: var(--mj-space-4) 0 var(--mj-space-3);\n}\n\n.mjo-oh-parties.is-bill[_ngcontent-%COMP%] {\n grid-template-columns: auto minmax(0, 1fr);\n}\n\n.mjo-oh-parties.is-none[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 1fr;\n}\n\n.mjo-oh-bubble[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n min-width: 0;\n}\n\n.mjo-oh-bubble.is-open[_ngcontent-%COMP%] {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 45%, var(--mj-border-default));\n}\n\n.mjo-oh-bubble.is-rail[_ngcontent-%COMP%] {\n width: 3.25rem;\n flex: 0 0 auto;\n}\n\n.mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__hit[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n gap: var(--mj-space-2);\n padding: var(--mj-space-2);\n min-height: 5.5rem;\n}\n\n.mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__copy[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n align-items: center;\n}\n\n.mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__role[_ngcontent-%COMP%] {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n letter-spacing: 0.08em;\n}\n\n.mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__name[_ngcontent-%COMP%], \n.mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__detail[_ngcontent-%COMP%], \n.mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__chev[_ngcontent-%COMP%] {\n display: none;\n}\n\n@media (max-width: 720px) {\n .mjo-oh-parties[_ngcontent-%COMP%], \n .mjo-oh-parties.is-bill[_ngcontent-%COMP%], \n .mjo-oh-parties.is-none[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .mjo-oh-bubble.is-rail[_ngcontent-%COMP%] {\n width: auto;\n }\n\n .mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__hit[_ngcontent-%COMP%] {\n flex-direction: row;\n min-height: 0;\n padding: var(--mj-space-2) var(--mj-space-3);\n }\n\n .mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__copy[_ngcontent-%COMP%] {\n align-items: flex-start;\n }\n\n .mjo-oh-bubble.is-rail[_ngcontent-%COMP%] .mjo-oh-bubble__role[_ngcontent-%COMP%] {\n writing-mode: horizontal-tb;\n transform: none;\n }\n}\n\n.mjo-oh-bubble.is-needed[_ngcontent-%COMP%] {\n border-color: color-mix(in srgb, var(--mj-status-warning) 45%, var(--mj-border-default));\n}\n\n.mjo-oh-bubble__hit[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3);\n width: 100%;\n padding: var(--mj-space-3);\n border: 0;\n background: transparent;\n color: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.mjo-oh-bubble__name.mjo-oh-link[_ngcontent-%COMP%] {\n display: inline;\n padding: 0;\n border: 0;\n background: transparent;\n font: inherit;\n font-size: inherit;\n font-weight: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.mjo-oh-bubble__hit[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); }\n\n.mjo-oh-bubble__ic[_ngcontent-%COMP%] {\n width: var(--mj-space-8);\n height: var(--mj-space-8);\n border-radius: var(--mj-radius-sm);\n display: grid;\n place-items: center;\n flex: 0 0 auto;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n.mjo-oh-bubble__copy[_ngcontent-%COMP%] {\n min-width: 0;\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.mjo-oh-bubble__role[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-bubble__name[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-bubble__detail[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.mjo-oh-bubble__chev[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: var(--mj-text-xs);\n}\n\n.mjo-oh-bubble__edit[_ngcontent-%COMP%] {\n padding: var(--mj-space-3);\n border-top: 1px solid var(--mj-border-subtle);\n display: flex;\n flex-direction: column;\n}\n\n.mjo-oh-addr[_ngcontent-%COMP%] {\n margin-top: var(--mj-space-2);\n padding-top: var(--mj-space-2);\n border-top: 1px dashed var(--mj-border-subtle);\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-1);\n}\n\n.mjo-oh-addr__bar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-2);\n}\n\n.mjo-oh-addr__label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-addr__btn[_ngcontent-%COMP%] {\n border: 0;\n background: transparent;\n color: var(--mj-text-link);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n cursor: pointer;\n padding: 0;\n}\n\n.mjo-oh-addr__btn[_ngcontent-%COMP%]:disabled {\n color: var(--mj-text-disabled);\n cursor: default;\n}\n\n.mjo-oh-addr__row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr) minmax(0, 0.8fr);\n gap: var(--mj-space-2);\n}\n\n.mjo-oh-link[_ngcontent-%COMP%] {\n color: var(--mj-text-link);\n text-decoration: none;\n}\n\n.mjo-oh-link[_ngcontent-%COMP%]:hover { text-decoration: underline; }\n\n.mjo-oh-todo[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n margin-bottom: var(--mj-space-3);\n font-size: var(--mj-text-sm);\n color: var(--mj-status-warning-text);\n}\n\n.mjo-oh-todo[_ngcontent-%COMP%] button[_ngcontent-%COMP%], \n.mjo-oh-todo__hint[_ngcontent-%COMP%] {\n background: var(--mj-status-warning-bg);\n border: 1px solid var(--mj-status-warning-border);\n color: var(--mj-status-warning-text);\n border-radius: var(--mj-radius-full);\n padding: 2px 8px;\n font: inherit;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n}\n\n.mjo-oh-todo[_ngcontent-%COMP%] button[_ngcontent-%COMP%] { cursor: pointer; }\n\n.mjo-oh-todo--err[_ngcontent-%COMP%] {\n color: var(--mj-status-error-text);\n}\n\n.mjo-oh-moved__list[_ngcontent-%COMP%] {\n flex-basis: 100%;\n margin: 0;\n padding-left: var(--mj-space-5);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-ref[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-top: var(--mj-space-3);\n}\n\n.mjo-oh-ref__label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-ref[_ngcontent-%COMP%] .mj-input[_ngcontent-%COMP%] {\n max-width: 22rem;\n}\n\n.mjo-oh-tabs[_ngcontent-%COMP%] {\n display: block;\n margin-top: var(--mj-space-2);\n}\n\n.mjo-oh-tabpane[_ngcontent-%COMP%] { margin-top: var(--mj-space-3); }\n\n.mjo-oh-tabpane[_ngcontent-%COMP%] mj-explorer-entity-data-grid[_ngcontent-%COMP%] {\n display: block;\n}\n\n.mjo-oh-hint[_ngcontent-%COMP%] {\n margin-top: var(--mj-space-2);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-acct__bar[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--mj-space-3);\n flex-wrap: wrap;\n margin-bottom: var(--mj-space-3);\n}\n\n.mjo-oh-acct__bar[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-acct__bar[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 2px 0 0;\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-switch[_ngcontent-%COMP%] {\n display: inline-flex;\n padding: 2px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-full);\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-switch[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--mj-text-secondary);\n font: inherit;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n padding: 5px 12px;\n border-radius: var(--mj-radius-full);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.mjo-oh-switch[_ngcontent-%COMP%] button.is-on[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n box-shadow: 0 0 0 1px var(--mj-border-subtle);\n}\n\n.mjo-oh-switch__n[_ngcontent-%COMP%] {\n min-width: 1.25em;\n padding: 0 5px;\n border-radius: var(--mj-radius-full);\n background: color-mix(in srgb, var(--mj-brand-primary) 14%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-variant-numeric: tabular-nums;\n text-align: center;\n}\n\n\n\n.mjo-oh-acct__controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--mj-space-2) var(--mj-space-3);\n margin-bottom: var(--mj-space-3);\n}\n\n.mjo-oh-asof[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: var(--mj-space-2);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-secondary);\n}\n\n.mjo-oh-asof[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n font: inherit;\n font-weight: var(--mj-font-normal);\n padding: 4px 8px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-sm);\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-asof__clear[_ngcontent-%COMP%], \n.mjo-oh-linkbtn[_ngcontent-%COMP%] {\n appearance: none;\n border: 0;\n background: transparent;\n padding: 0;\n font: inherit;\n font-size: var(--mj-text-xs);\n color: var(--mj-brand-primary);\n cursor: pointer;\n text-decoration: underline;\n}\n\n.mjo-oh-switch--sm[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n padding: 4px 10px;\n}\n\n.mjo-oh-acct__basis[_ngcontent-%COMP%], \n.mjo-oh-acct__note[_ngcontent-%COMP%], \n.mjo-oh-acct__excluded[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-acct__note[_ngcontent-%COMP%], \n.mjo-oh-acct__excluded[_ngcontent-%COMP%] {\n margin: var(--mj-space-2) 0 0;\n}\n\n.mjo-oh-je__table--detail[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr.is-clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.mjo-oh-je__table--detail[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr.is-clickable[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-jecard[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface);\n overflow: hidden;\n}\n\n.mjo-oh-jecard[_ngcontent-%COMP%] + .mjo-oh-jecard[_ngcontent-%COMP%] {\n margin-top: var(--mj-space-3);\n}\n\n.mjo-oh-jecard__head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-2);\n padding: var(--mj-space-2) var(--mj-space-3);\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.mjo-oh-jecard__co[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-jecard__sub[_ngcontent-%COMP%] {\n margin-left: var(--mj-space-2);\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-je__table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: var(--mj-text-sm);\n}\n\n.mjo-oh-je__table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], \n.mjo-oh-je__table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: var(--mj-space-2) var(--mj-space-3);\n border-bottom: 1px solid var(--mj-border-subtle);\n text-align: left;\n vertical-align: top;\n}\n\n.mjo-oh-je__table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-je__table[_ngcontent-%COMP%] tfoot[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n border-bottom: 0;\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-je__table[_ngcontent-%COMP%] .is-num[_ngcontent-%COMP%] {\n text-align: right;\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n.mjo-oh-je__table[_ngcontent-%COMP%] .is-quiet[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n}\n\n.mjo-oh-acctline[_ngcontent-%COMP%] {\n display: flex;\n align-items: baseline;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n}\n\n.mjo-oh-acctline__code[_ngcontent-%COMP%] {\n font-variant-numeric: tabular-nums;\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-secondary);\n letter-spacing: 0.02em;\n}\n\n.mjo-oh-acctline__name[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-acctline__meta[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n margin-top: 4px;\n}\n\n.mjo-oh-dim[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 1px 8px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-xs);\n}\n\n.mjo-oh-je__src[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n@media (max-width: 760px) {\n .mjo-oh-parties[_ngcontent-%COMP%], \n .mjo-oh-facts[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n .mjo-oh-money[_ngcontent-%COMP%] { margin-left: 0; }\n}"] });
1659
1659
  };
1660
1660
  BizAppsOrderHeaderFormComponent = __decorate([
1661
1661
  RegisterClass(BaseFormComponent, 'MJ_BizApps_Orders: Order Headers', 2)
@@ -1663,7 +1663,7 @@ BizAppsOrderHeaderFormComponent = __decorate([
1663
1663
  export { BizAppsOrderHeaderFormComponent };
1664
1664
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BizAppsOrderHeaderFormComponent, [{
1665
1665
  type: Component,
1666
- args: [{ standalone: false, selector: 'bizapps-order-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 <div class=\"mjo-oh-hero\" [class.is-collapsed]=\"!HeaderExpanded\">\n <div class=\"mjo-oh-hero__top\">\n <div class=\"mjo-oh-who\">\n <div class=\"mjo-oh-avatar\"><i class=\"fa-solid fa-file-invoice-dollar\"></i></div>\n <div>\n <div class=\"mjo-oh-title-row\">\n <h1 class=\"mjo-oh-title\">{{ HeaderTitle }}</h1>\n @if (ShowStatusChip) {\n <span [class]=\"StatusChipClass\">{{ record.Status }}</span>\n }\n </div>\n <div class=\"mjo-oh-sub\">{{ HeaderExpanded ? HeaderSubtitle : HeaderCollapsedMeta }}</div>\n </div>\n </div>\n <div class=\"mjo-oh-hero__aside\">\n <div class=\"mjo-oh-money\">\n <div>\n <span class=\"mjo-oh-kicker\">{{ TotalLabel }}</span>\n <span class=\"mjo-oh-amt\">{{ Money('total') }}</span>\n </div>\n <div>\n <span class=\"mjo-oh-kicker\">Paid</span>\n <span class=\"mjo-oh-amt\">{{ Money('paid') }}</span>\n </div>\n <div>\n <span class=\"mjo-oh-kicker\">Balance</span>\n <span class=\"mjo-oh-amt\">{{ Money('balance') }}</span>\n </div>\n </div>\n <button\n type=\"button\"\n class=\"mjo-oh-hero__toggle\"\n (click)=\"ToggleHeader()\"\n [attr.aria-expanded]=\"HeaderExpanded\"\n [attr.aria-label]=\"HeaderExpanded ? 'Collapse header' : 'Expand header'\"\n [title]=\"HeaderExpanded ? 'Collapse header' : 'Expand header'\">\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"HeaderExpanded\" [class.fa-chevron-down]=\"!HeaderExpanded\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n\n @if (HeaderExpanded) {\n <div class=\"mjo-oh-facts\">\n <div class=\"mjo-oh-fact\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OrderType\" Type=\"select\" [EditMode]=\"ComposeMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n </div>\n <div class=\"mjo-oh-fact\">\n <bizapps-selling-company-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"CompanyID\" [EditMode]=\"ComposeMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></bizapps-selling-company-field>\n </div>\n <div class=\"mjo-oh-fact\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OrderDate\" Type=\"datepicker\" [EditMode]=\"ComposeMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n </div>\n </div>\n @if (EditMode && record.MoneyLocked) {\n <div class=\"mjo-oh-hint\"><i class=\"fa-solid fa-lock\" aria-hidden=\"true\"></i> This order is booked, so its type, selling company, order date and bill-to are locked. Corrections go through a reversal order.</div>\n }\n\n <div class=\"mjo-oh-parties\" [class.is-ship]=\"ExpandedParty === 'ship'\" [class.is-bill]=\"ExpandedParty === 'bill'\" [class.is-none]=\"ExpandedParty === null\">\n <div class=\"mjo-oh-bubble\" [class.is-open]=\"ExpandedParty === 'ship'\" [class.is-rail]=\"ExpandedParty === 'bill'\">\n <div\n class=\"mjo-oh-bubble__hit\"\n role=\"button\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"ExpandedParty === 'ship'\"\n (click)=\"SelectParty('ship')\"\n (keydown.enter)=\"SelectParty('ship')\"\n (keydown.space)=\"SelectParty('ship'); $event.preventDefault()\">\n <span class=\"mjo-oh-bubble__ic\"><i class=\"fa-solid fa-truck-fast\"></i></span>\n <span class=\"mjo-oh-bubble__copy\">\n <span class=\"mjo-oh-bubble__role\">Ship to</span>\n @if (ShipToIsSame) {\n <span class=\"mjo-oh-bubble__name\">{{ ShipToName }}</span>\n } @else {\n <button type=\"button\" class=\"mjo-oh-link mjo-oh-bubble__name\" (click)=\"OpenShipTo($event)\">{{ ShipToName }}</button>\n }\n <span class=\"mjo-oh-bubble__detail\">{{ ShipToDetail }}</span>\n </span>\n <i class=\"fa-solid mjo-oh-bubble__chev\" [class.fa-chevron-up]=\"ExpandedParty === 'ship'\" [class.fa-chevron-down]=\"ExpandedParty !== 'ship'\"></i>\n </div>\n @if (ExpandedParty === 'ship') {\n <div class=\"mjo-oh-bubble__edit\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ShipToOrganizationID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ShipToPersonID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\" (Navigate)=\"OnFormNavigate($event)\" (ValueChange)=\"OnPartyPersonChange('ShipTo', $event)\"></mj-form-field>\n <mjo-party-address-picker\n [Order]=\"record\"\n Side=\"ship\"\n [EditMode]=\"ComposeMode\"\n [PersonName]=\"record.ShipToPerson\"\n [OrganizationName]=\"record.ShipToOrganization\">\n </mjo-party-address-picker>\n </div>\n }\n </div>\n\n <div class=\"mjo-oh-bubble\" [class.is-open]=\"ExpandedParty === 'bill'\" [class.is-rail]=\"ExpandedParty === 'ship'\" [class.is-needed]=\"NeedsBillTo\">\n <div\n class=\"mjo-oh-bubble__hit\"\n role=\"button\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"ExpandedParty === 'bill'\"\n (click)=\"SelectParty('bill')\"\n (keydown.enter)=\"SelectParty('bill')\"\n (keydown.space)=\"SelectParty('bill'); $event.preventDefault()\">\n <span class=\"mjo-oh-bubble__ic\"><i class=\"fa-solid fa-file-invoice-dollar\"></i></span>\n <span class=\"mjo-oh-bubble__copy\">\n <span class=\"mjo-oh-bubble__role\">Bill to</span>\n @if (hasBillTo) {\n <button type=\"button\" class=\"mjo-oh-link mjo-oh-bubble__name\" (click)=\"OpenBillTo($event)\">{{ BillToName }}</button>\n } @else {\n <span class=\"mjo-oh-bubble__name\">{{ BillToName }}</span>\n }\n <span class=\"mjo-oh-bubble__detail\">{{ BillToDetail }}</span>\n </span>\n <i class=\"fa-solid mjo-oh-bubble__chev\" [class.fa-chevron-up]=\"ExpandedParty === 'bill'\" [class.fa-chevron-down]=\"ExpandedParty !== 'bill'\"></i>\n </div>\n @if (ExpandedParty === 'bill') {\n <div class=\"mjo-oh-bubble__edit\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"BillToOrganizationID\" Type=\"textbox\" [EditMode]=\"ComposeMode\" [FormContext]=\"formContext\" LinkType=\"Record\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"BillToPersonID\" Type=\"textbox\" [EditMode]=\"ComposeMode\" [FormContext]=\"formContext\" LinkType=\"Record\" (Navigate)=\"OnFormNavigate($event)\" (ValueChange)=\"OnPartyPersonChange('BillTo', $event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"PaymentTermsTypeID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mjo-party-address-picker\n [Order]=\"record\"\n Side=\"bill\"\n [EditMode]=\"ComposeMode\"\n [PersonName]=\"record.BillToPerson\"\n [OrganizationName]=\"record.BillToOrganization\">\n </mjo-party-address-picker>\n </div>\n }\n </div>\n </div>\n\n @if (ConfirmBlockedReason) {\n <div class=\"mjo-oh-todo\">\n <i class=\"fa-solid fa-circle-exclamation\"></i>\n <span>Before this can be confirmed</span>\n @if (NeedsBillTo) {\n <button type=\"button\" (click)=\"JumpToBill()\">Need a bill-to party</button>\n } @else if (NeedsPaymentReference) {\n <button type=\"button\" (click)=\"JumpToPayment()\">Need a check / ACH reference</button>\n } @else {\n <span class=\"mjo-oh-todo__hint\">{{ ConfirmBlockedReason }}</span>\n }\n </div>\n }\n\n @if (StatusError) {\n <div class=\"mjo-oh-todo mjo-oh-todo--err\" role=\"alert\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n <span>{{ StatusError }}</span>\n </div>\n }\n\n @if (ClearedEmployerNotice) {\n <div class=\"mjo-oh-todo\" role=\"status\">\n <i class=\"fa-solid fa-building-circle-xmark\"></i>\n <span>{{ ClearedEmployerNotice.Message }}</span>\n <button type=\"button\" (click)=\"UndoClearedEmployers()\">Undo</button>\n <button type=\"button\" aria-label=\"Dismiss\" (click)=\"DismissClearedEmployers()\"><i class=\"fa-solid fa-xmark\"></i></button>\n </div>\n }\n\n @if (DisplacedStartNotices.length > 0) {\n <div class=\"mjo-oh-todo mjo-oh-moved\" role=\"status\">\n <i class=\"fa-solid fa-calendar-xmark\"></i>\n <span>Service dates changed at confirm</span>\n <ul class=\"mjo-oh-moved__list\">\n @for (notice of DisplacedStartNotices; track $index) {\n <li>{{ notice }}</li>\n }\n </ul>\n </div>\n }\n\n <mj-tab-nav\n class=\"mjo-oh-tabs\"\n [Tabs]=\"ContextTabs\"\n [ActiveKey]=\"ActiveTab ?? ''\"\n (TabChange)=\"SelectTab($event)\">\n </mj-tab-nav>\n\n @if (ActiveTab === 'payment') {\n <div class=\"mjo-oh-tabpane\">\n <div class=\"mjo-oh-fields\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"InitialPaymentTypeID\" Type=\"textbox\" [EditMode]=\"ComposeMode\" [FormContext]=\"formContext\" LinkType=\"Record\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"InitialPaymentAmount\" Type=\"number\" [EditMode]=\"ComposeMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n @if (PaymentRequiresReference) {\n <label class=\"mjo-oh-ref\">\n <span class=\"mjo-oh-ref__label\">Check / ACH reference</span>\n <input\n class=\"mj-input\"\n [ngModel]=\"PaymentReference\"\n (ngModelChange)=\"SetPaymentReference($event)\"\n [disabled]=\"!ComposeMode\"\n placeholder=\"Check number or confirmation ID\"\n autocomplete=\"off\"\n aria-label=\"Check or ACH reference\">\n </label>\n }\n </div>\n @if (record.IsSaved && PaymentParams) {\n <mj-explorer-entity-data-grid\n [Params]=\"PaymentParams\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"true\"\n [ShowNewButton]=\"false\"\n [ShowDeleteButton]=\"false\"\n [Height]=\"'fit-content'\"\n [MaxHeight]=\"RelatedGridHeight\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-explorer-entity-data-grid>\n } @else {\n <div class=\"mjo-oh-hint\">Intent only \u2014 the payment is created when the order is confirmed.</div>\n }\n </div>\n }\n\n @if (ActiveTab === 'details') {\n <div class=\"mjo-oh-tabpane\">\n <div class=\"mjo-oh-fields\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"RequestedDeliveryDate\" Type=\"datepicker\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"DueDate\" Type=\"datepicker\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ExternalDocumentNumber\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"FulfillmentStatus\" Type=\"select\" [EditMode]=\"false\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Status\" Type=\"select\" [EditMode]=\"false\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"SalesRepUserID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Description\" Type=\"textarea\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Notes\" Type=\"textarea\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n </div>\n </div>\n }\n\n @if (ActiveTab === 'charges' && record.IsSaved) {\n <div class=\"mjo-oh-tabpane\">\n @if (ChargeParams) {\n <mj-explorer-entity-data-grid\n [Params]=\"ChargeParams\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"true\"\n [ShowNewButton]=\"false\"\n [ShowDeleteButton]=\"false\"\n [Height]=\"'fit-content'\"\n [MaxHeight]=\"RelatedGridHeight\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-explorer-entity-data-grid>\n @if (record.MoneyLocked) {\n <div class=\"mjo-oh-hint\">Charges were booked with the order and cannot be edited.</div>\n }\n }\n </div>\n }\n\n @if (ActiveTab === 'accounting' && record.IsSaved) {\n <div class=\"mjo-oh-tabpane\">\n <div class=\"mjo-oh-acct__bar\">\n <div>\n <h2>{{ AccountingView === 'summary' ? 'Order journal' : 'Journal entries' }}</h2>\n <p>\n @if (AccountingView === 'summary') {\n Gross debits and credits per account over this order's whole life \u2014 not a stored row\n } @else {\n Every stored journal this order caused, unnetted \u2014 open a row to drill in\n }\n </p>\n </div>\n <div class=\"mjo-oh-switch\" role=\"group\" aria-label=\"Accounting view\">\n <button type=\"button\" [class.is-on]=\"AccountingView === 'summary'\" (click)=\"SetAccountingView('summary')\">Rolled up</button>\n <button type=\"button\" [class.is-on]=\"AccountingView === 'detail'\" (click)=\"SetAccountingView('detail')\">\n By line\n @if (RollupJournalCount) {\n <span class=\"mjo-oh-switch__n\">{{ RollupJournalCount }}</span>\n }\n </button>\n <button type=\"button\" [class.is-on]=\"AccountingView === 'waterfall'\" (click)=\"SetAccountingView('waterfall')\">\n <i class=\"fa-solid fa-chart-line\"></i> Rev-Rec Waterfall\n </button>\n </div>\n </div>\n\n <!-- One set of controls for both views, so they can never disagree about what is in. -->\n @if (AccountingView !== 'waterfall') {\n <div class=\"mjo-oh-acct__controls\">\n <label class=\"mjo-oh-asof\">\n <span>As of</span>\n <input\n type=\"date\"\n [value]=\"AccountingAsOf ?? ''\"\n (change)=\"OnAccountingAsOfChanged($any($event.target).value)\"\n aria-label=\"Include entries dated on or before\" />\n </label>\n @if (AccountingAsOf) {\n <button type=\"button\" class=\"mjo-oh-asof__clear\" (click)=\"OnAccountingAsOfChanged('')\">\n Lifetime\n </button>\n }\n <div class=\"mjo-oh-switch mjo-oh-switch--sm\" role=\"group\" aria-label=\"Date basis\">\n <button type=\"button\" [class.is-on]=\"AccountingBasis === 'effective'\" (click)=\"SetAccountingBasis('effective')\">\n Effective date\n </button>\n <button type=\"button\" [class.is-on]=\"AccountingBasis === 'posting'\" (click)=\"SetAccountingBasis('posting')\">\n Posting date\n </button>\n </div>\n <span class=\"mjo-oh-acct__basis\">\n @if (AccountingBasis === 'posting') {\n GL date of the batch \u2014 Posted batches only\n } @else {\n Subledger date on the entry itself\n }\n </span>\n </div>\n }\n\n @if (AccountingView === 'waterfall') {\n <div style=\"padding: 12px 0;\">\n <mj-deferred-revenue-waterfall\n [JournalEntries]=\"RevRecJournalEntries\"\n [Title]=\"'Order Rev-Rec &amp; Deferred Revenue Schedule'\"\n (JournalEntrySelected)=\"OnJournalEntrySelected($event)\">\n </mj-deferred-revenue-waterfall>\n </div>\n } @else if (AccountingView === 'summary') {\n @if (RollupLoading) {\n <div class=\"mjo-oh-hint\">Rolling up journals\u2026</div>\n } @else if (RollupError) {\n <div class=\"mjo-oh-hint\">{{ RollupError }}</div>\n } @else if (RollupCards.length === 0) {\n <div class=\"mjo-oh-hint\">\n @if (RollupExcludedLabel) {\n Nothing in view \u2014 {{ RollupExcludedLabel }}.\n } @else {\n No journals yet \u2014 they appear when the order is confirmed.\n }\n </div>\n } @else {\n @for (card of RollupCards; track card.CompanyID) {\n <article class=\"mjo-oh-jecard\">\n <header class=\"mjo-oh-jecard__head\">\n <div>\n <span class=\"mjo-oh-jecard__co\">{{ card.Company }}</span>\n <span class=\"mjo-oh-jecard__sub\">{{ card.Rows.length }} {{ card.Rows.length === 1 ? 'line' : 'lines' }}</span>\n </div>\n <span class=\"mjo-oh-chip\" [class.mjo-oh-chip--ok]=\"CardIsBalanced(card)\">\n {{ CardIsBalanced(card) ? 'Balanced' : 'Out of balance' }}\n </span>\n </header>\n <table class=\"mjo-oh-je__table\">\n <thead>\n <tr>\n <th>Account</th>\n <th class=\"is-num\">Debit</th>\n <th class=\"is-num\">Credit</th>\n </tr>\n </thead>\n <tbody>\n @for (row of card.Rows; track row.Key) {\n <tr>\n <td>\n <div class=\"mjo-oh-acctline\">\n @if (row.AccountCode) {\n <span class=\"mjo-oh-acctline__code\">{{ row.AccountCode }}</span>\n }\n <span class=\"mjo-oh-acctline__name\">{{ row.AccountName }}</span>\n </div>\n <div class=\"mjo-oh-acctline__meta\">\n @for (dim of row.Dimensions; track dim.Name + dim.Value) {\n <span class=\"mjo-oh-dim\">{{ dim.Name }} \u00B7 {{ dim.Value }}</span>\n }\n <span class=\"mjo-oh-je__src\">{{ SourceLineLabel(row.SourceLineCount) }}</span>\n </div>\n </td>\n <td class=\"is-num\" [class.is-quiet]=\"!row.Debit\">{{ RollupAmount(row.Debit) }}</td>\n <td class=\"is-num\" [class.is-quiet]=\"!row.Credit\">{{ RollupAmount(row.Credit) }}</td>\n </tr>\n }\n </tbody>\n <tfoot>\n <tr>\n <th>Total</th>\n <td class=\"is-num\">{{ RollupAmount(card.TotalDebit) }}</td>\n <td class=\"is-num\">{{ RollupAmount(card.TotalCredit) }}</td>\n </tr>\n </tfoot>\n </table>\n </article>\n }\n @for (note of RollupSharedNotes; track note) {\n <p class=\"mjo-oh-acct__note\">{{ note }}</p>\n }\n }\n @if (RollupExcludedLabel) {\n <p class=\"mjo-oh-acct__excluded\">\n {{ RollupExcludedLabel }} \u2014\n <button type=\"button\" class=\"mjo-oh-linkbtn\" (click)=\"SetAccountingView('detail')\">see By line</button>\n </p>\n }\n } @else {\n @if (RollupLoading) {\n <div class=\"mjo-oh-hint\">Loading journals\u2026</div>\n } @else if (RollupError) {\n <div class=\"mjo-oh-hint\">{{ RollupError }}</div>\n } @else if (JournalRows.length === 0) {\n <div class=\"mjo-oh-hint\">\n @if (RollupExcludedLabel) {\n Nothing in view \u2014 {{ RollupExcludedLabel }}.\n } @else {\n No journals yet \u2014 they appear when the order is confirmed.\n }\n </div>\n } @else {\n <table class=\"mjo-oh-je__table mjo-oh-je__table--detail\">\n <thead>\n <tr>\n <th>Entry</th>\n <th>Effective</th>\n <th>Batch</th>\n <th>Batch status</th>\n <th>Posting date</th>\n <th class=\"is-num\">Debit</th>\n <th class=\"is-num\">Credit</th>\n </tr>\n </thead>\n <tbody>\n @for (row of JournalRows; track row.ID) {\n <tr class=\"is-clickable\" (click)=\"OnJournalRowSelected(row.ID)\">\n <td>\n <div class=\"mjo-oh-acctline__name\">{{ row.EntryNumber }}</div>\n <div class=\"mjo-oh-acctline__meta\">\n <span>{{ row.Description }}</span>\n @if (row.SharedWithOtherOrders) {\n <span class=\"mjo-oh-dim\">{{ SharedOrdersLabel(row.SharedWithOtherOrders) }}</span>\n }\n </div>\n </td>\n <td>{{ JournalDate(row.EffectiveDate) }}</td>\n <td>{{ row.BatchNumber || '\u2014' }}</td>\n <td>{{ row.BatchStatus || 'Not batched' }}</td>\n <td>{{ JournalDate(row.BatchPostingDate) }}</td>\n <td class=\"is-num\" [class.is-quiet]=\"!row.Debit\">{{ RollupAmount(row.Debit) }}</td>\n <td class=\"is-num\" [class.is-quiet]=\"!row.Credit\">{{ RollupAmount(row.Credit) }}</td>\n </tr>\n }\n </tbody>\n </table>\n @if (RollupExcludedLabel) {\n <p class=\"mjo-oh-acct__excluded\">{{ RollupExcludedLabel }}, not listed above.</p>\n }\n }\n }\n </div>\n }\n\n @if (ActiveTab === 'subs' && record.IsSaved) {\n <div class=\"mjo-oh-tabpane\">\n @if (SubscriptionParams) {\n <mj-explorer-entity-data-grid\n [Params]=\"SubscriptionParams\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"true\"\n [ShowNewButton]=\"false\"\n [Height]=\"'fit-content'\"\n [MaxHeight]=\"RelatedGridHeight\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-explorer-entity-data-grid>\n }\n </div>\n }\n }\n </div>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <mj-collapsible-panel\n SectionKey=\"mJBizAppsOrdersOrderLines\"\n SectionName=\"Lines\"\n Icon=\"fa fa-list-ol\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"LineBadge\"\n [DefaultExpanded]=\"true\">\n <mjo-order-lines-editor\n [Order]=\"record\"\n [EditMode]=\"ComposeMode\"\n (PricingChanged)=\"OnPricingChanged($event)\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mjo-order-lines-editor>\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-related\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-everything\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n</mj-record-form-container>\n}\n", styles: ["/* mj-form-field uses display:contents + a 200px|1fr internal grid.\n Wrap each field; never place the host as a CSS-grid item. */\n\n:host ::ng-deep .mj-forms-panel-body:not(.mj-forms-panel-body--collapsed) {\n max-height: none;\n}\n\n:host ::ng-deep .mj-forms-panel-body:not(.mj-forms-panel-body--collapsed) .mj-forms-panel-content {\n max-height: none;\n overflow: visible;\n}\n\n/* Product search results sit `position: absolute` under the add-product\n input at the bottom of Lines. The panel card and body both use\n overflow:hidden (rounded-corner clip + collapse animation), which\n shears the list off at the section edge. Collapse still forces\n overflow:hidden on the collapsed body. */\n:host ::ng-deep mj-collapsible-panel:has(mjo-order-lines-editor) .mj-forms-panel {\n overflow: visible;\n}\n\n:host ::ng-deep mj-collapsible-panel:has(mjo-order-lines-editor) .mj-forms-panel-body:not(.mj-forms-panel-body--collapsed) {\n overflow: visible;\n}\n\n:host ::ng-deep mj-collapsible-panel:has(.mj-typeahead-list.is-open) {\n position: relative;\n z-index: 30;\n}\n\n.mjo-oh-hero {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n padding: var(--mj-space-4) var(--mj-space-5);\n margin-bottom: var(--mj-space-4);\n}\n\n.mjo-oh-hero.is-collapsed {\n padding: var(--mj-space-2) var(--mj-space-4);\n}\n\n.mjo-oh-hero.is-collapsed .mjo-oh-hero__top {\n align-items: center;\n}\n\n.mjo-oh-hero.is-collapsed .mjo-oh-avatar {\n width: 32px;\n height: 32px;\n font-size: 14px;\n}\n\n.mjo-oh-hero.is-collapsed .mjo-oh-title {\n font-size: var(--mj-text-base);\n}\n\n.mjo-oh-hero__toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n flex: 0 0 auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.mjo-oh-hero__toggle:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-hero__top {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--mj-space-4);\n flex-wrap: wrap;\n}\n\n.mjo-oh-hero__aside {\n display: flex;\n align-items: flex-start;\n gap: var(--mj-space-4);\n flex-wrap: wrap;\n}\n\n.mjo-oh-confirm {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: var(--mj-space-1);\n min-width: 11rem;\n}\n\n.mjo-oh-confirm__hint {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n text-align: right;\n max-width: 14rem;\n line-height: 1.35;\n}\n\n.mjo-oh-who {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3);\n min-width: 0;\n}\n\n.mjo-oh-avatar {\n width: 44px;\n height: 44px;\n border-radius: var(--mj-radius-md);\n display: grid;\n place-items: center;\n flex: 0 0 auto;\n background: color-mix(in srgb, var(--mj-brand-primary) 18%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-size: 18px;\n}\n\n.mjo-oh-title-row {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n}\n\n.mjo-oh-title {\n margin: 0;\n font-size: var(--mj-text-lg);\n font-weight: var(--mj-font-bold);\n color: var(--mj-text-primary);\n letter-spacing: -0.02em;\n}\n\n.mjo-oh-sub {\n margin-top: 2px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n}\n\n.mjo-oh-kicker {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-chip {\n display: inline-flex;\n align-items: center;\n padding: 2px 10px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n}\n\n.mjo-oh-chip--ok {\n color: var(--mj-status-success-text);\n background: var(--mj-status-success-bg);\n border-color: var(--mj-status-success-border);\n}\n\n.mjo-oh-chip--void {\n color: var(--mj-status-error-text);\n background: var(--mj-status-error-bg);\n border-color: var(--mj-status-error-border);\n}\n\n.mjo-oh-money {\n display: flex;\n gap: var(--mj-space-5);\n padding: var(--mj-space-2) var(--mj-space-3);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle);\n}\n\n.mjo-oh-money > div {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.mjo-oh-amt {\n font-variant-numeric: tabular-nums;\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-facts {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: var(--mj-space-3) var(--mj-space-4);\n margin-top: var(--mj-space-4);\n padding: var(--mj-space-3);\n border: 1px solid var(--mj-border-subtle);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-fact ::ng-deep .mj-forms-field {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: 4px;\n padding: 0;\n}\n\n.mjo-oh-fact ::ng-deep .mj-forms-field-label {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n/* The shared field hover adds negative margin + extra padding, which shoves\n the three header facts down. Keep the tint, drop the layout shift. */\n.mjo-oh-fact ::ng-deep .mj-forms-field--editing:hover {\n margin: 0;\n padding: 0;\n}\n\n.mjo-oh-fields {\n display: flex;\n flex-direction: column;\n}\n\n.mjo-oh-parties {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n gap: var(--mj-space-3);\n align-items: start;\n margin: var(--mj-space-4) 0 var(--mj-space-3);\n}\n\n.mjo-oh-parties.is-bill {\n grid-template-columns: auto minmax(0, 1fr);\n}\n\n.mjo-oh-parties.is-none {\n grid-template-columns: 1fr 1fr;\n}\n\n.mjo-oh-bubble {\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n min-width: 0;\n}\n\n.mjo-oh-bubble.is-open {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 45%, var(--mj-border-default));\n}\n\n.mjo-oh-bubble.is-rail {\n width: 3.25rem;\n flex: 0 0 auto;\n}\n\n.mjo-oh-bubble.is-rail .mjo-oh-bubble__hit {\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n gap: var(--mj-space-2);\n padding: var(--mj-space-2);\n min-height: 5.5rem;\n}\n\n.mjo-oh-bubble.is-rail .mjo-oh-bubble__copy {\n flex: 0 0 auto;\n align-items: center;\n}\n\n.mjo-oh-bubble.is-rail .mjo-oh-bubble__role {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n letter-spacing: 0.08em;\n}\n\n.mjo-oh-bubble.is-rail .mjo-oh-bubble__name,\n.mjo-oh-bubble.is-rail .mjo-oh-bubble__detail,\n.mjo-oh-bubble.is-rail .mjo-oh-bubble__chev {\n display: none;\n}\n\n@media (max-width: 720px) {\n .mjo-oh-parties,\n .mjo-oh-parties.is-bill,\n .mjo-oh-parties.is-none {\n grid-template-columns: 1fr;\n }\n\n .mjo-oh-bubble.is-rail {\n width: auto;\n }\n\n .mjo-oh-bubble.is-rail .mjo-oh-bubble__hit {\n flex-direction: row;\n min-height: 0;\n padding: var(--mj-space-2) var(--mj-space-3);\n }\n\n .mjo-oh-bubble.is-rail .mjo-oh-bubble__copy {\n align-items: flex-start;\n }\n\n .mjo-oh-bubble.is-rail .mjo-oh-bubble__role {\n writing-mode: horizontal-tb;\n transform: none;\n }\n}\n\n.mjo-oh-bubble.is-needed {\n border-color: color-mix(in srgb, var(--mj-status-warning) 45%, var(--mj-border-default));\n}\n\n.mjo-oh-bubble__hit {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3);\n width: 100%;\n padding: var(--mj-space-3);\n border: 0;\n background: transparent;\n color: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.mjo-oh-bubble__name.mjo-oh-link {\n display: inline;\n padding: 0;\n border: 0;\n background: transparent;\n font: inherit;\n font-size: inherit;\n font-weight: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.mjo-oh-bubble__hit:hover { background: var(--mj-bg-surface-hover); }\n\n.mjo-oh-bubble__ic {\n width: var(--mj-space-8);\n height: var(--mj-space-8);\n border-radius: var(--mj-radius-sm);\n display: grid;\n place-items: center;\n flex: 0 0 auto;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n.mjo-oh-bubble__copy {\n min-width: 0;\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.mjo-oh-bubble__role {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-bubble__name {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-bubble__detail {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.mjo-oh-bubble__chev {\n color: var(--mj-text-muted);\n font-size: var(--mj-text-xs);\n}\n\n.mjo-oh-bubble__edit {\n padding: var(--mj-space-3);\n border-top: 1px solid var(--mj-border-subtle);\n display: flex;\n flex-direction: column;\n}\n\n.mjo-oh-addr {\n margin-top: var(--mj-space-2);\n padding-top: var(--mj-space-2);\n border-top: 1px dashed var(--mj-border-subtle);\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-1);\n}\n\n.mjo-oh-addr__bar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-2);\n}\n\n.mjo-oh-addr__label {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-addr__btn {\n border: 0;\n background: transparent;\n color: var(--mj-text-link);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n cursor: pointer;\n padding: 0;\n}\n\n.mjo-oh-addr__btn:disabled {\n color: var(--mj-text-disabled);\n cursor: default;\n}\n\n.mjo-oh-addr__row {\n display: grid;\n grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr) minmax(0, 0.8fr);\n gap: var(--mj-space-2);\n}\n\n.mjo-oh-link {\n color: var(--mj-text-link);\n text-decoration: none;\n}\n\n.mjo-oh-link:hover { text-decoration: underline; }\n\n.mjo-oh-todo {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n margin-bottom: var(--mj-space-3);\n font-size: var(--mj-text-sm);\n color: var(--mj-status-warning-text);\n}\n\n.mjo-oh-todo button,\n.mjo-oh-todo__hint {\n background: var(--mj-status-warning-bg);\n border: 1px solid var(--mj-status-warning-border);\n color: var(--mj-status-warning-text);\n border-radius: var(--mj-radius-full);\n padding: 2px 8px;\n font: inherit;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n}\n\n.mjo-oh-todo button { cursor: pointer; }\n\n.mjo-oh-todo--err {\n color: var(--mj-status-error-text);\n}\n\n.mjo-oh-moved__list {\n flex-basis: 100%;\n margin: 0;\n padding-left: var(--mj-space-5);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-ref {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-top: var(--mj-space-3);\n}\n\n.mjo-oh-ref__label {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-ref .mj-input {\n max-width: 22rem;\n}\n\n.mjo-oh-tabs {\n display: block;\n margin-top: var(--mj-space-2);\n}\n\n.mjo-oh-tabpane { margin-top: var(--mj-space-3); }\n\n.mjo-oh-tabpane mj-explorer-entity-data-grid {\n display: block;\n}\n\n.mjo-oh-hint {\n margin-top: var(--mj-space-2);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-acct__bar {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--mj-space-3);\n flex-wrap: wrap;\n margin-bottom: var(--mj-space-3);\n}\n\n.mjo-oh-acct__bar h2 {\n margin: 0;\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-acct__bar p {\n margin: 2px 0 0;\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-switch {\n display: inline-flex;\n padding: 2px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-full);\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-switch button {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--mj-text-secondary);\n font: inherit;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n padding: 5px 12px;\n border-radius: var(--mj-radius-full);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.mjo-oh-switch button.is-on {\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n box-shadow: 0 0 0 1px var(--mj-border-subtle);\n}\n\n.mjo-oh-switch__n {\n min-width: 1.25em;\n padding: 0 5px;\n border-radius: var(--mj-radius-full);\n background: color-mix(in srgb, var(--mj-brand-primary) 14%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-variant-numeric: tabular-nums;\n text-align: center;\n}\n\n/* As-of + basis controls: one row above whichever of the two views is showing. */\n.mjo-oh-acct__controls {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--mj-space-2) var(--mj-space-3);\n margin-bottom: var(--mj-space-3);\n}\n\n.mjo-oh-asof {\n display: inline-flex;\n align-items: center;\n gap: var(--mj-space-2);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-secondary);\n}\n\n.mjo-oh-asof input {\n font: inherit;\n font-weight: var(--mj-font-normal);\n padding: 4px 8px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-sm);\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-asof__clear,\n.mjo-oh-linkbtn {\n appearance: none;\n border: 0;\n background: transparent;\n padding: 0;\n font: inherit;\n font-size: var(--mj-text-xs);\n color: var(--mj-brand-primary);\n cursor: pointer;\n text-decoration: underline;\n}\n\n.mjo-oh-switch--sm button {\n padding: 4px 10px;\n}\n\n.mjo-oh-acct__basis,\n.mjo-oh-acct__note,\n.mjo-oh-acct__excluded {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-acct__note,\n.mjo-oh-acct__excluded {\n margin: var(--mj-space-2) 0 0;\n}\n\n.mjo-oh-je__table--detail tbody tr.is-clickable {\n cursor: pointer;\n}\n\n.mjo-oh-je__table--detail tbody tr.is-clickable:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-jecard {\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface);\n overflow: hidden;\n}\n\n.mjo-oh-jecard + .mjo-oh-jecard {\n margin-top: var(--mj-space-3);\n}\n\n.mjo-oh-jecard__head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-2);\n padding: var(--mj-space-2) var(--mj-space-3);\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.mjo-oh-jecard__co {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-jecard__sub {\n margin-left: var(--mj-space-2);\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-je__table {\n width: 100%;\n border-collapse: collapse;\n font-size: var(--mj-text-sm);\n}\n\n.mjo-oh-je__table th,\n.mjo-oh-je__table td {\n padding: var(--mj-space-2) var(--mj-space-3);\n border-bottom: 1px solid var(--mj-border-subtle);\n text-align: left;\n vertical-align: top;\n}\n\n.mjo-oh-je__table thead th {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-je__table tfoot th {\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n border-bottom: 0;\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-je__table .is-num {\n text-align: right;\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n.mjo-oh-je__table .is-quiet {\n color: var(--mj-text-disabled);\n}\n\n.mjo-oh-acctline {\n display: flex;\n align-items: baseline;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n}\n\n.mjo-oh-acctline__code {\n font-variant-numeric: tabular-nums;\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-secondary);\n letter-spacing: 0.02em;\n}\n\n.mjo-oh-acctline__name {\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-acctline__meta {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n margin-top: 4px;\n}\n\n.mjo-oh-dim {\n display: inline-flex;\n align-items: center;\n padding: 1px 8px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-xs);\n}\n\n.mjo-oh-je__src {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n@media (max-width: 760px) {\n .mjo-oh-parties,\n .mjo-oh-facts {\n grid-template-columns: 1fr;\n }\n .mjo-oh-money { margin-left: 0; }\n}\n"] }]
1666
+ args: [{ standalone: false, selector: 'bizapps-order-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 <div class=\"mjo-oh-hero\" [class.is-collapsed]=\"!HeaderExpanded\">\n <div class=\"mjo-oh-hero__top\">\n <div class=\"mjo-oh-who\">\n <div class=\"mjo-oh-avatar\"><i class=\"fa-solid fa-file-invoice-dollar\"></i></div>\n <div>\n <div class=\"mjo-oh-title-row\">\n <h1 class=\"mjo-oh-title\">{{ HeaderTitle }}</h1>\n @if (ShowStatusChip) {\n <span [class]=\"StatusChipClass\">{{ record.Status }}</span>\n }\n </div>\n <div class=\"mjo-oh-sub\">{{ HeaderExpanded ? HeaderSubtitle : HeaderCollapsedMeta }}</div>\n </div>\n </div>\n <div class=\"mjo-oh-hero__aside\">\n <div class=\"mjo-oh-money\">\n <div>\n <span class=\"mjo-oh-kicker\">{{ TotalLabel }}</span>\n <span class=\"mjo-oh-amt\">{{ Money('total') }}</span>\n </div>\n <div>\n <span class=\"mjo-oh-kicker\">Paid</span>\n <span class=\"mjo-oh-amt\">{{ Money('paid') }}</span>\n </div>\n <div>\n <span class=\"mjo-oh-kicker\">Balance</span>\n <span class=\"mjo-oh-amt\">{{ Money('balance') }}</span>\n </div>\n </div>\n <button\n type=\"button\"\n class=\"mjo-oh-hero__toggle\"\n (click)=\"ToggleHeader()\"\n [attr.aria-expanded]=\"HeaderExpanded\"\n [attr.aria-label]=\"HeaderExpanded ? 'Collapse header' : 'Expand header'\"\n [title]=\"HeaderExpanded ? 'Collapse header' : 'Expand header'\">\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"HeaderExpanded\" [class.fa-chevron-down]=\"!HeaderExpanded\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n\n @if (HeaderExpanded) {\n <div class=\"mjo-oh-facts\">\n <div class=\"mjo-oh-fact\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OrderType\" Type=\"select\" [EditMode]=\"ComposeMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n </div>\n <div class=\"mjo-oh-fact\">\n <bizapps-selling-company-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"CompanyID\" [EditMode]=\"ComposeMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></bizapps-selling-company-field>\n </div>\n <div class=\"mjo-oh-fact\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OrderDate\" Type=\"datepicker\" [EditMode]=\"ComposeMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n </div>\n </div>\n @if (EditMode && record.MoneyLocked) {\n <div class=\"mjo-oh-hint\"><i class=\"fa-solid fa-lock\" aria-hidden=\"true\"></i> This order is booked, so its type, selling company, order date and bill-to are locked. Corrections go through a reversal order.</div>\n }\n\n <div class=\"mjo-oh-parties\" [class.is-ship]=\"ExpandedParty === 'ship'\" [class.is-bill]=\"ExpandedParty === 'bill'\" [class.is-none]=\"ExpandedParty === null\">\n <div class=\"mjo-oh-bubble\" [class.is-open]=\"ExpandedParty === 'ship'\" [class.is-rail]=\"ExpandedParty === 'bill'\">\n <div\n class=\"mjo-oh-bubble__hit\"\n role=\"button\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"ExpandedParty === 'ship'\"\n (click)=\"SelectParty('ship')\"\n (keydown.enter)=\"SelectParty('ship')\"\n (keydown.space)=\"SelectParty('ship'); $event.preventDefault()\">\n <span class=\"mjo-oh-bubble__ic\"><i class=\"fa-solid fa-truck-fast\"></i></span>\n <span class=\"mjo-oh-bubble__copy\">\n <span class=\"mjo-oh-bubble__role\">Ship to</span>\n @if (ShipToIsSame) {\n <span class=\"mjo-oh-bubble__name\">{{ ShipToName }}</span>\n } @else {\n <button type=\"button\" class=\"mjo-oh-link mjo-oh-bubble__name\" (click)=\"OpenShipTo($event)\">{{ ShipToName }}</button>\n }\n <span class=\"mjo-oh-bubble__detail\">{{ ShipToDetail }}</span>\n </span>\n <i class=\"fa-solid mjo-oh-bubble__chev\" [class.fa-chevron-up]=\"ExpandedParty === 'ship'\" [class.fa-chevron-down]=\"ExpandedParty !== 'ship'\"></i>\n </div>\n @if (ExpandedParty === 'ship') {\n <div class=\"mjo-oh-bubble__edit\">\n <bizapps-party-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ShipToOrganizationID\" Kind=\"Organization\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></bizapps-party-field>\n <bizapps-party-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ShipToPersonID\" Kind=\"Person\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\" (ValueChange)=\"OnPartyPersonChange('ShipTo', $event)\"></bizapps-party-field>\n <mjo-party-address-picker\n [Order]=\"record\"\n Side=\"ship\"\n [EditMode]=\"ComposeMode\"\n [PersonName]=\"record.ShipToPerson\"\n [OrganizationName]=\"record.ShipToOrganization\">\n </mjo-party-address-picker>\n </div>\n }\n </div>\n\n <div class=\"mjo-oh-bubble\" [class.is-open]=\"ExpandedParty === 'bill'\" [class.is-rail]=\"ExpandedParty === 'ship'\" [class.is-needed]=\"NeedsBillTo\">\n <div\n class=\"mjo-oh-bubble__hit\"\n role=\"button\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"ExpandedParty === 'bill'\"\n (click)=\"SelectParty('bill')\"\n (keydown.enter)=\"SelectParty('bill')\"\n (keydown.space)=\"SelectParty('bill'); $event.preventDefault()\">\n <span class=\"mjo-oh-bubble__ic\"><i class=\"fa-solid fa-file-invoice-dollar\"></i></span>\n <span class=\"mjo-oh-bubble__copy\">\n <span class=\"mjo-oh-bubble__role\">Bill to</span>\n @if (hasBillTo) {\n <button type=\"button\" class=\"mjo-oh-link mjo-oh-bubble__name\" (click)=\"OpenBillTo($event)\">{{ BillToName }}</button>\n } @else {\n <span class=\"mjo-oh-bubble__name\">{{ BillToName }}</span>\n }\n <span class=\"mjo-oh-bubble__detail\">{{ BillToDetail }}</span>\n </span>\n <i class=\"fa-solid mjo-oh-bubble__chev\" [class.fa-chevron-up]=\"ExpandedParty === 'bill'\" [class.fa-chevron-down]=\"ExpandedParty !== 'bill'\"></i>\n </div>\n @if (ExpandedParty === 'bill') {\n <div class=\"mjo-oh-bubble__edit\">\n <bizapps-party-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"BillToOrganizationID\" Kind=\"Organization\" [EditMode]=\"ComposeMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></bizapps-party-field>\n <bizapps-party-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"BillToPersonID\" Kind=\"Person\" [EditMode]=\"ComposeMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\" (ValueChange)=\"OnPartyPersonChange('BillTo', $event)\"></bizapps-party-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"PaymentTermsTypeID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mjo-party-address-picker\n [Order]=\"record\"\n Side=\"bill\"\n [EditMode]=\"ComposeMode\"\n [PersonName]=\"record.BillToPerson\"\n [OrganizationName]=\"record.BillToOrganization\">\n </mjo-party-address-picker>\n </div>\n }\n </div>\n </div>\n\n @if (ConfirmBlockedReason) {\n <div class=\"mjo-oh-todo\">\n <i class=\"fa-solid fa-circle-exclamation\"></i>\n <span>Before this can be confirmed</span>\n @if (NeedsBillTo) {\n <button type=\"button\" (click)=\"JumpToBill()\">Need a bill-to party</button>\n } @else if (NeedsPaymentReference) {\n <button type=\"button\" (click)=\"JumpToPayment()\">Need a check / ACH reference</button>\n } @else {\n <span class=\"mjo-oh-todo__hint\">{{ ConfirmBlockedReason }}</span>\n }\n </div>\n }\n\n @if (StatusError) {\n <div class=\"mjo-oh-todo mjo-oh-todo--err\" role=\"alert\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n <span>{{ StatusError }}</span>\n </div>\n }\n\n @if (ClearedEmployerNotice) {\n <div class=\"mjo-oh-todo\" role=\"status\">\n <i class=\"fa-solid fa-building-circle-xmark\"></i>\n <span>{{ ClearedEmployerNotice.Message }}</span>\n <button type=\"button\" (click)=\"UndoClearedEmployers()\">Undo</button>\n <button type=\"button\" aria-label=\"Dismiss\" (click)=\"DismissClearedEmployers()\"><i class=\"fa-solid fa-xmark\"></i></button>\n </div>\n }\n\n @if (DisplacedStartNotices.length > 0) {\n <div class=\"mjo-oh-todo mjo-oh-moved\" role=\"status\">\n <i class=\"fa-solid fa-calendar-xmark\"></i>\n <span>Service dates changed at confirm</span>\n <ul class=\"mjo-oh-moved__list\">\n @for (notice of DisplacedStartNotices; track $index) {\n <li>{{ notice }}</li>\n }\n </ul>\n </div>\n }\n\n <mj-tab-nav\n class=\"mjo-oh-tabs\"\n [Tabs]=\"ContextTabs\"\n [ActiveKey]=\"ActiveTab ?? ''\"\n (TabChange)=\"SelectTab($event)\">\n </mj-tab-nav>\n\n @if (ActiveTab === 'payment') {\n <div class=\"mjo-oh-tabpane\">\n <div class=\"mjo-oh-fields\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"InitialPaymentTypeID\" Type=\"textbox\" [EditMode]=\"ComposeMode\" [FormContext]=\"formContext\" LinkType=\"Record\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"InitialPaymentAmount\" Type=\"number\" [EditMode]=\"ComposeMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n @if (PaymentRequiresReference) {\n <label class=\"mjo-oh-ref\">\n <span class=\"mjo-oh-ref__label\">Check / ACH reference</span>\n <input\n class=\"mj-input\"\n [ngModel]=\"PaymentReference\"\n (ngModelChange)=\"SetPaymentReference($event)\"\n [disabled]=\"!ComposeMode\"\n placeholder=\"Check number or confirmation ID\"\n autocomplete=\"off\"\n aria-label=\"Check or ACH reference\">\n </label>\n }\n </div>\n @if (record.IsSaved && PaymentParams) {\n <mj-explorer-entity-data-grid\n [Params]=\"PaymentParams\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"true\"\n [ShowNewButton]=\"false\"\n [ShowDeleteButton]=\"false\"\n [Height]=\"'fit-content'\"\n [MaxHeight]=\"RelatedGridHeight\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-explorer-entity-data-grid>\n } @else {\n <div class=\"mjo-oh-hint\">Intent only \u2014 the payment is created when the order is confirmed.</div>\n }\n </div>\n }\n\n @if (ActiveTab === 'details') {\n <div class=\"mjo-oh-tabpane\">\n <div class=\"mjo-oh-fields\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"RequestedDeliveryDate\" Type=\"datepicker\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"DueDate\" Type=\"datepicker\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ExternalDocumentNumber\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"FulfillmentStatus\" Type=\"select\" [EditMode]=\"false\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Status\" Type=\"select\" [EditMode]=\"false\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"SalesRepUserID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Description\" Type=\"textarea\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Notes\" Type=\"textarea\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" (Navigate)=\"OnFormNavigate($event)\"></mj-form-field>\n </div>\n </div>\n }\n\n @if (ActiveTab === 'charges' && record.IsSaved) {\n <div class=\"mjo-oh-tabpane\">\n @if (ChargeParams) {\n <mj-explorer-entity-data-grid\n [Params]=\"ChargeParams\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"true\"\n [ShowNewButton]=\"false\"\n [ShowDeleteButton]=\"false\"\n [Height]=\"'fit-content'\"\n [MaxHeight]=\"RelatedGridHeight\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-explorer-entity-data-grid>\n @if (record.MoneyLocked) {\n <div class=\"mjo-oh-hint\">Charges were booked with the order and cannot be edited.</div>\n }\n }\n </div>\n }\n\n @if (ActiveTab === 'accounting' && record.IsSaved) {\n <div class=\"mjo-oh-tabpane\">\n <div class=\"mjo-oh-acct__bar\">\n <div>\n <h2>{{ AccountingView === 'summary' ? 'Order journal' : 'Journal entries' }}</h2>\n <p>\n @if (AccountingView === 'summary') {\n Gross debits and credits per account over this order's whole life \u2014 not a stored row\n } @else {\n Every stored journal this order caused, unnetted \u2014 open a row to drill in\n }\n </p>\n </div>\n <div class=\"mjo-oh-switch\" role=\"group\" aria-label=\"Accounting view\">\n <button type=\"button\" [class.is-on]=\"AccountingView === 'summary'\" (click)=\"SetAccountingView('summary')\">Rolled up</button>\n <button type=\"button\" [class.is-on]=\"AccountingView === 'detail'\" (click)=\"SetAccountingView('detail')\">\n By line\n @if (RollupJournalCount) {\n <span class=\"mjo-oh-switch__n\">{{ RollupJournalCount }}</span>\n }\n </button>\n <button type=\"button\" [class.is-on]=\"AccountingView === 'waterfall'\" (click)=\"SetAccountingView('waterfall')\">\n <i class=\"fa-solid fa-chart-line\"></i> Rev-Rec Waterfall\n </button>\n </div>\n </div>\n\n <!-- One set of controls for both views, so they can never disagree about what is in. -->\n @if (AccountingView !== 'waterfall') {\n <div class=\"mjo-oh-acct__controls\">\n <label class=\"mjo-oh-asof\">\n <span>As of</span>\n <input\n type=\"date\"\n [value]=\"AccountingAsOf ?? ''\"\n (change)=\"OnAccountingAsOfChanged($any($event.target).value)\"\n aria-label=\"Include entries dated on or before\" />\n </label>\n @if (AccountingAsOf) {\n <button type=\"button\" class=\"mjo-oh-asof__clear\" (click)=\"OnAccountingAsOfChanged('')\">\n Lifetime\n </button>\n }\n <div class=\"mjo-oh-switch mjo-oh-switch--sm\" role=\"group\" aria-label=\"Date basis\">\n <button type=\"button\" [class.is-on]=\"AccountingBasis === 'effective'\" (click)=\"SetAccountingBasis('effective')\">\n Effective date\n </button>\n <button type=\"button\" [class.is-on]=\"AccountingBasis === 'posting'\" (click)=\"SetAccountingBasis('posting')\">\n Posting date\n </button>\n </div>\n <span class=\"mjo-oh-acct__basis\">\n @if (AccountingBasis === 'posting') {\n GL date of the batch \u2014 Posted batches only\n } @else {\n Subledger date on the entry itself\n }\n </span>\n </div>\n }\n\n @if (AccountingView === 'waterfall') {\n <div style=\"padding: 12px 0;\">\n <mj-deferred-revenue-waterfall\n [JournalEntries]=\"RevRecJournalEntries\"\n [Title]=\"'Order Rev-Rec &amp; Deferred Revenue Schedule'\"\n (JournalEntrySelected)=\"OnJournalEntrySelected($event)\">\n </mj-deferred-revenue-waterfall>\n </div>\n } @else if (AccountingView === 'summary') {\n @if (RollupLoading) {\n <div class=\"mjo-oh-hint\">Rolling up journals\u2026</div>\n } @else if (RollupError) {\n <div class=\"mjo-oh-hint\">{{ RollupError }}</div>\n } @else if (RollupCards.length === 0) {\n <div class=\"mjo-oh-hint\">\n @if (RollupExcludedLabel) {\n Nothing in view \u2014 {{ RollupExcludedLabel }}.\n } @else {\n No journals yet \u2014 they appear when the order is confirmed.\n }\n </div>\n } @else {\n @for (card of RollupCards; track card.CompanyID) {\n <article class=\"mjo-oh-jecard\">\n <header class=\"mjo-oh-jecard__head\">\n <div>\n <span class=\"mjo-oh-jecard__co\">{{ card.Company }}</span>\n <span class=\"mjo-oh-jecard__sub\">{{ card.Rows.length }} {{ card.Rows.length === 1 ? 'line' : 'lines' }}</span>\n </div>\n <span class=\"mjo-oh-chip\" [class.mjo-oh-chip--ok]=\"CardIsBalanced(card)\">\n {{ CardIsBalanced(card) ? 'Balanced' : 'Out of balance' }}\n </span>\n </header>\n <table class=\"mjo-oh-je__table\">\n <thead>\n <tr>\n <th>Account</th>\n <th class=\"is-num\">Debit</th>\n <th class=\"is-num\">Credit</th>\n </tr>\n </thead>\n <tbody>\n @for (row of card.Rows; track row.Key) {\n <tr>\n <td>\n <div class=\"mjo-oh-acctline\">\n @if (row.AccountCode) {\n <span class=\"mjo-oh-acctline__code\">{{ row.AccountCode }}</span>\n }\n <span class=\"mjo-oh-acctline__name\">{{ row.AccountName }}</span>\n </div>\n <div class=\"mjo-oh-acctline__meta\">\n @for (dim of row.Dimensions; track dim.Name + dim.Value) {\n <span class=\"mjo-oh-dim\">{{ dim.Name }} \u00B7 {{ dim.Value }}</span>\n }\n <span class=\"mjo-oh-je__src\">{{ SourceLineLabel(row.SourceLineCount) }}</span>\n </div>\n </td>\n <td class=\"is-num\" [class.is-quiet]=\"!row.Debit\">{{ RollupAmount(row.Debit) }}</td>\n <td class=\"is-num\" [class.is-quiet]=\"!row.Credit\">{{ RollupAmount(row.Credit) }}</td>\n </tr>\n }\n </tbody>\n <tfoot>\n <tr>\n <th>Total</th>\n <td class=\"is-num\">{{ RollupAmount(card.TotalDebit) }}</td>\n <td class=\"is-num\">{{ RollupAmount(card.TotalCredit) }}</td>\n </tr>\n </tfoot>\n </table>\n </article>\n }\n @for (note of RollupSharedNotes; track note) {\n <p class=\"mjo-oh-acct__note\">{{ note }}</p>\n }\n }\n @if (RollupExcludedLabel) {\n <p class=\"mjo-oh-acct__excluded\">\n {{ RollupExcludedLabel }} \u2014\n <button type=\"button\" class=\"mjo-oh-linkbtn\" (click)=\"SetAccountingView('detail')\">see By line</button>\n </p>\n }\n } @else {\n @if (RollupLoading) {\n <div class=\"mjo-oh-hint\">Loading journals\u2026</div>\n } @else if (RollupError) {\n <div class=\"mjo-oh-hint\">{{ RollupError }}</div>\n } @else if (JournalRows.length === 0) {\n <div class=\"mjo-oh-hint\">\n @if (RollupExcludedLabel) {\n Nothing in view \u2014 {{ RollupExcludedLabel }}.\n } @else {\n No journals yet \u2014 they appear when the order is confirmed.\n }\n </div>\n } @else {\n <table class=\"mjo-oh-je__table mjo-oh-je__table--detail\">\n <thead>\n <tr>\n <th>Entry</th>\n <th>Effective</th>\n <th>Batch</th>\n <th>Batch status</th>\n <th>Posting date</th>\n <th class=\"is-num\">Debit</th>\n <th class=\"is-num\">Credit</th>\n </tr>\n </thead>\n <tbody>\n @for (row of JournalRows; track row.ID) {\n <tr class=\"is-clickable\" (click)=\"OnJournalRowSelected(row.ID)\">\n <td>\n <div class=\"mjo-oh-acctline__name\">{{ row.EntryNumber }}</div>\n <div class=\"mjo-oh-acctline__meta\">\n <span>{{ row.Description }}</span>\n @if (row.SharedWithOtherOrders) {\n <span class=\"mjo-oh-dim\">{{ SharedOrdersLabel(row.SharedWithOtherOrders) }}</span>\n }\n </div>\n </td>\n <td>{{ JournalDate(row.EffectiveDate) }}</td>\n <td>{{ row.BatchNumber || '\u2014' }}</td>\n <td>{{ row.BatchStatus || 'Not batched' }}</td>\n <td>{{ JournalDate(row.BatchPostingDate) }}</td>\n <td class=\"is-num\" [class.is-quiet]=\"!row.Debit\">{{ RollupAmount(row.Debit) }}</td>\n <td class=\"is-num\" [class.is-quiet]=\"!row.Credit\">{{ RollupAmount(row.Credit) }}</td>\n </tr>\n }\n </tbody>\n </table>\n @if (RollupExcludedLabel) {\n <p class=\"mjo-oh-acct__excluded\">{{ RollupExcludedLabel }}, not listed above.</p>\n }\n }\n }\n </div>\n }\n\n @if (ActiveTab === 'subs' && record.IsSaved) {\n <div class=\"mjo-oh-tabpane\">\n @if (SubscriptionParams) {\n <mj-explorer-entity-data-grid\n [Params]=\"SubscriptionParams\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"true\"\n [ShowNewButton]=\"false\"\n [Height]=\"'fit-content'\"\n [MaxHeight]=\"RelatedGridHeight\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mj-explorer-entity-data-grid>\n }\n </div>\n }\n }\n </div>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <mj-collapsible-panel\n SectionKey=\"mJBizAppsOrdersOrderLines\"\n SectionName=\"Lines\"\n Icon=\"fa fa-list-ol\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"LineBadge\"\n [DefaultExpanded]=\"true\">\n <mjo-order-lines-editor\n [Order]=\"record\"\n [EditMode]=\"ComposeMode\"\n (PricingChanged)=\"OnPricingChanged($event)\"\n (Navigate)=\"OnFormNavigate($event)\">\n </mjo-order-lines-editor>\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-related\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-everything\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n</mj-record-form-container>\n}\n", styles: ["/* mj-form-field uses display:contents + a 200px|1fr internal grid.\n Wrap each field; never place the host as a CSS-grid item. */\n\n:host ::ng-deep .mj-forms-panel-body:not(.mj-forms-panel-body--collapsed) {\n max-height: none;\n}\n\n:host ::ng-deep .mj-forms-panel-body:not(.mj-forms-panel-body--collapsed) .mj-forms-panel-content {\n max-height: none;\n overflow: visible;\n}\n\n/* Product search results sit `position: absolute` under the add-product\n input at the bottom of Lines. The panel card and body both use\n overflow:hidden (rounded-corner clip + collapse animation), which\n shears the list off at the section edge. Collapse still forces\n overflow:hidden on the collapsed body. */\n:host ::ng-deep mj-collapsible-panel:has(mjo-order-lines-editor) .mj-forms-panel {\n overflow: visible;\n}\n\n:host ::ng-deep mj-collapsible-panel:has(mjo-order-lines-editor) .mj-forms-panel-body:not(.mj-forms-panel-body--collapsed) {\n overflow: visible;\n}\n\n:host ::ng-deep mj-collapsible-panel:has(.mj-typeahead-list.is-open) {\n position: relative;\n z-index: 30;\n}\n\n.mjo-oh-hero {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n padding: var(--mj-space-4) var(--mj-space-5);\n margin-bottom: var(--mj-space-4);\n}\n\n.mjo-oh-hero.is-collapsed {\n padding: var(--mj-space-2) var(--mj-space-4);\n}\n\n.mjo-oh-hero.is-collapsed .mjo-oh-hero__top {\n align-items: center;\n}\n\n.mjo-oh-hero.is-collapsed .mjo-oh-avatar {\n width: 32px;\n height: 32px;\n font-size: 14px;\n}\n\n.mjo-oh-hero.is-collapsed .mjo-oh-title {\n font-size: var(--mj-text-base);\n}\n\n.mjo-oh-hero__toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n flex: 0 0 auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.mjo-oh-hero__toggle:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-hero__top {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--mj-space-4);\n flex-wrap: wrap;\n}\n\n.mjo-oh-hero__aside {\n display: flex;\n align-items: flex-start;\n gap: var(--mj-space-4);\n flex-wrap: wrap;\n}\n\n.mjo-oh-confirm {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: var(--mj-space-1);\n min-width: 11rem;\n}\n\n.mjo-oh-confirm__hint {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n text-align: right;\n max-width: 14rem;\n line-height: 1.35;\n}\n\n.mjo-oh-who {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3);\n min-width: 0;\n}\n\n.mjo-oh-avatar {\n width: 44px;\n height: 44px;\n border-radius: var(--mj-radius-md);\n display: grid;\n place-items: center;\n flex: 0 0 auto;\n background: color-mix(in srgb, var(--mj-brand-primary) 18%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-size: 18px;\n}\n\n.mjo-oh-title-row {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n}\n\n.mjo-oh-title {\n margin: 0;\n font-size: var(--mj-text-lg);\n font-weight: var(--mj-font-bold);\n color: var(--mj-text-primary);\n letter-spacing: -0.02em;\n}\n\n.mjo-oh-sub {\n margin-top: 2px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n}\n\n.mjo-oh-kicker {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-chip {\n display: inline-flex;\n align-items: center;\n padding: 2px 10px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n}\n\n.mjo-oh-chip--ok {\n color: var(--mj-status-success-text);\n background: var(--mj-status-success-bg);\n border-color: var(--mj-status-success-border);\n}\n\n.mjo-oh-chip--void {\n color: var(--mj-status-error-text);\n background: var(--mj-status-error-bg);\n border-color: var(--mj-status-error-border);\n}\n\n.mjo-oh-money {\n display: flex;\n gap: var(--mj-space-5);\n padding: var(--mj-space-2) var(--mj-space-3);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle);\n}\n\n.mjo-oh-money > div {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.mjo-oh-amt {\n font-variant-numeric: tabular-nums;\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-facts {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: var(--mj-space-3) var(--mj-space-4);\n margin-top: var(--mj-space-4);\n padding: var(--mj-space-3);\n border: 1px solid var(--mj-border-subtle);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-fact ::ng-deep .mj-forms-field {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: 4px;\n padding: 0;\n}\n\n.mjo-oh-fact ::ng-deep .mj-forms-field-label {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n/* The shared field hover adds negative margin + extra padding, which shoves\n the three header facts down. Keep the tint, drop the layout shift. */\n.mjo-oh-fact ::ng-deep .mj-forms-field--editing:hover {\n margin: 0;\n padding: 0;\n}\n\n.mjo-oh-fields {\n display: flex;\n flex-direction: column;\n}\n\n.mjo-oh-parties {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n gap: var(--mj-space-3);\n align-items: start;\n margin: var(--mj-space-4) 0 var(--mj-space-3);\n}\n\n.mjo-oh-parties.is-bill {\n grid-template-columns: auto minmax(0, 1fr);\n}\n\n.mjo-oh-parties.is-none {\n grid-template-columns: 1fr 1fr;\n}\n\n.mjo-oh-bubble {\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n min-width: 0;\n}\n\n.mjo-oh-bubble.is-open {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 45%, var(--mj-border-default));\n}\n\n.mjo-oh-bubble.is-rail {\n width: 3.25rem;\n flex: 0 0 auto;\n}\n\n.mjo-oh-bubble.is-rail .mjo-oh-bubble__hit {\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n gap: var(--mj-space-2);\n padding: var(--mj-space-2);\n min-height: 5.5rem;\n}\n\n.mjo-oh-bubble.is-rail .mjo-oh-bubble__copy {\n flex: 0 0 auto;\n align-items: center;\n}\n\n.mjo-oh-bubble.is-rail .mjo-oh-bubble__role {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n letter-spacing: 0.08em;\n}\n\n.mjo-oh-bubble.is-rail .mjo-oh-bubble__name,\n.mjo-oh-bubble.is-rail .mjo-oh-bubble__detail,\n.mjo-oh-bubble.is-rail .mjo-oh-bubble__chev {\n display: none;\n}\n\n@media (max-width: 720px) {\n .mjo-oh-parties,\n .mjo-oh-parties.is-bill,\n .mjo-oh-parties.is-none {\n grid-template-columns: 1fr;\n }\n\n .mjo-oh-bubble.is-rail {\n width: auto;\n }\n\n .mjo-oh-bubble.is-rail .mjo-oh-bubble__hit {\n flex-direction: row;\n min-height: 0;\n padding: var(--mj-space-2) var(--mj-space-3);\n }\n\n .mjo-oh-bubble.is-rail .mjo-oh-bubble__copy {\n align-items: flex-start;\n }\n\n .mjo-oh-bubble.is-rail .mjo-oh-bubble__role {\n writing-mode: horizontal-tb;\n transform: none;\n }\n}\n\n.mjo-oh-bubble.is-needed {\n border-color: color-mix(in srgb, var(--mj-status-warning) 45%, var(--mj-border-default));\n}\n\n.mjo-oh-bubble__hit {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3);\n width: 100%;\n padding: var(--mj-space-3);\n border: 0;\n background: transparent;\n color: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.mjo-oh-bubble__name.mjo-oh-link {\n display: inline;\n padding: 0;\n border: 0;\n background: transparent;\n font: inherit;\n font-size: inherit;\n font-weight: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.mjo-oh-bubble__hit:hover { background: var(--mj-bg-surface-hover); }\n\n.mjo-oh-bubble__ic {\n width: var(--mj-space-8);\n height: var(--mj-space-8);\n border-radius: var(--mj-radius-sm);\n display: grid;\n place-items: center;\n flex: 0 0 auto;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n.mjo-oh-bubble__copy {\n min-width: 0;\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.mjo-oh-bubble__role {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-bubble__name {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-bubble__detail {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.mjo-oh-bubble__chev {\n color: var(--mj-text-muted);\n font-size: var(--mj-text-xs);\n}\n\n.mjo-oh-bubble__edit {\n padding: var(--mj-space-3);\n border-top: 1px solid var(--mj-border-subtle);\n display: flex;\n flex-direction: column;\n}\n\n.mjo-oh-addr {\n margin-top: var(--mj-space-2);\n padding-top: var(--mj-space-2);\n border-top: 1px dashed var(--mj-border-subtle);\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-1);\n}\n\n.mjo-oh-addr__bar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-2);\n}\n\n.mjo-oh-addr__label {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-addr__btn {\n border: 0;\n background: transparent;\n color: var(--mj-text-link);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n cursor: pointer;\n padding: 0;\n}\n\n.mjo-oh-addr__btn:disabled {\n color: var(--mj-text-disabled);\n cursor: default;\n}\n\n.mjo-oh-addr__row {\n display: grid;\n grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr) minmax(0, 0.8fr);\n gap: var(--mj-space-2);\n}\n\n.mjo-oh-link {\n color: var(--mj-text-link);\n text-decoration: none;\n}\n\n.mjo-oh-link:hover { text-decoration: underline; }\n\n.mjo-oh-todo {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n margin-bottom: var(--mj-space-3);\n font-size: var(--mj-text-sm);\n color: var(--mj-status-warning-text);\n}\n\n.mjo-oh-todo button,\n.mjo-oh-todo__hint {\n background: var(--mj-status-warning-bg);\n border: 1px solid var(--mj-status-warning-border);\n color: var(--mj-status-warning-text);\n border-radius: var(--mj-radius-full);\n padding: 2px 8px;\n font: inherit;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n}\n\n.mjo-oh-todo button { cursor: pointer; }\n\n.mjo-oh-todo--err {\n color: var(--mj-status-error-text);\n}\n\n.mjo-oh-moved__list {\n flex-basis: 100%;\n margin: 0;\n padding-left: var(--mj-space-5);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-ref {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-top: var(--mj-space-3);\n}\n\n.mjo-oh-ref__label {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-ref .mj-input {\n max-width: 22rem;\n}\n\n.mjo-oh-tabs {\n display: block;\n margin-top: var(--mj-space-2);\n}\n\n.mjo-oh-tabpane { margin-top: var(--mj-space-3); }\n\n.mjo-oh-tabpane mj-explorer-entity-data-grid {\n display: block;\n}\n\n.mjo-oh-hint {\n margin-top: var(--mj-space-2);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-acct__bar {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--mj-space-3);\n flex-wrap: wrap;\n margin-bottom: var(--mj-space-3);\n}\n\n.mjo-oh-acct__bar h2 {\n margin: 0;\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-acct__bar p {\n margin: 2px 0 0;\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-switch {\n display: inline-flex;\n padding: 2px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-full);\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-switch button {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--mj-text-secondary);\n font: inherit;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n padding: 5px 12px;\n border-radius: var(--mj-radius-full);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.mjo-oh-switch button.is-on {\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n box-shadow: 0 0 0 1px var(--mj-border-subtle);\n}\n\n.mjo-oh-switch__n {\n min-width: 1.25em;\n padding: 0 5px;\n border-radius: var(--mj-radius-full);\n background: color-mix(in srgb, var(--mj-brand-primary) 14%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-variant-numeric: tabular-nums;\n text-align: center;\n}\n\n/* As-of + basis controls: one row above whichever of the two views is showing. */\n.mjo-oh-acct__controls {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--mj-space-2) var(--mj-space-3);\n margin-bottom: var(--mj-space-3);\n}\n\n.mjo-oh-asof {\n display: inline-flex;\n align-items: center;\n gap: var(--mj-space-2);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-secondary);\n}\n\n.mjo-oh-asof input {\n font: inherit;\n font-weight: var(--mj-font-normal);\n padding: 4px 8px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-sm);\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-asof__clear,\n.mjo-oh-linkbtn {\n appearance: none;\n border: 0;\n background: transparent;\n padding: 0;\n font: inherit;\n font-size: var(--mj-text-xs);\n color: var(--mj-brand-primary);\n cursor: pointer;\n text-decoration: underline;\n}\n\n.mjo-oh-switch--sm button {\n padding: 4px 10px;\n}\n\n.mjo-oh-acct__basis,\n.mjo-oh-acct__note,\n.mjo-oh-acct__excluded {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-acct__note,\n.mjo-oh-acct__excluded {\n margin: var(--mj-space-2) 0 0;\n}\n\n.mjo-oh-je__table--detail tbody tr.is-clickable {\n cursor: pointer;\n}\n\n.mjo-oh-je__table--detail tbody tr.is-clickable:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-jecard {\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface);\n overflow: hidden;\n}\n\n.mjo-oh-jecard + .mjo-oh-jecard {\n margin-top: var(--mj-space-3);\n}\n\n.mjo-oh-jecard__head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-2);\n padding: var(--mj-space-2) var(--mj-space-3);\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.mjo-oh-jecard__co {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-jecard__sub {\n margin-left: var(--mj-space-2);\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-je__table {\n width: 100%;\n border-collapse: collapse;\n font-size: var(--mj-text-sm);\n}\n\n.mjo-oh-je__table th,\n.mjo-oh-je__table td {\n padding: var(--mj-space-2) var(--mj-space-3);\n border-bottom: 1px solid var(--mj-border-subtle);\n text-align: left;\n vertical-align: top;\n}\n\n.mjo-oh-je__table thead th {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.mjo-oh-je__table tfoot th {\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n border-bottom: 0;\n background: var(--mj-bg-surface-sunken);\n}\n\n.mjo-oh-je__table .is-num {\n text-align: right;\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n.mjo-oh-je__table .is-quiet {\n color: var(--mj-text-disabled);\n}\n\n.mjo-oh-acctline {\n display: flex;\n align-items: baseline;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n}\n\n.mjo-oh-acctline__code {\n font-variant-numeric: tabular-nums;\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-secondary);\n letter-spacing: 0.02em;\n}\n\n.mjo-oh-acctline__name {\n color: var(--mj-text-primary);\n}\n\n.mjo-oh-acctline__meta {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n margin-top: 4px;\n}\n\n.mjo-oh-dim {\n display: inline-flex;\n align-items: center;\n padding: 1px 8px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-xs);\n}\n\n.mjo-oh-je__src {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n@media (max-width: 760px) {\n .mjo-oh-parties,\n .mjo-oh-facts {\n grid-template-columns: 1fr;\n }\n .mjo-oh-money { margin-left: 0; }\n}\n"] }]
1667
1667
  }], null, null); })();
1668
1668
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BizAppsOrderHeaderFormComponent, { className: "BizAppsOrderHeaderFormComponent", filePath: "lib/custom/OrderHeader/order-header-form.component.ts", lineNumber: 95 }); })();
1669
1669
  /** Tree-shaking prevention anchor. */