@mj-biz-apps/orders-ng 5.1.0 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/checkout-element/main.js +38080 -0
- package/dist/lib/checkout-widget/checkout-draft-line.d.ts +25 -0
- package/dist/lib/checkout-widget/checkout-draft-line.d.ts.map +1 -0
- package/dist/lib/checkout-widget/checkout-draft-line.js +46 -0
- package/dist/lib/checkout-widget/checkout-draft-line.js.map +1 -0
- package/dist/lib/checkout-widget/checkout-public-host.component.d.ts +80 -0
- package/dist/lib/checkout-widget/checkout-public-host.component.d.ts.map +1 -0
- package/dist/lib/checkout-widget/checkout-public-host.component.js +360 -0
- package/dist/lib/checkout-widget/checkout-public-host.component.js.map +1 -0
- package/dist/lib/checkout-widget/checkout-widget.component.d.ts +143 -0
- package/dist/lib/checkout-widget/checkout-widget.component.d.ts.map +1 -0
- package/dist/lib/checkout-widget/checkout-widget.component.js +873 -0
- package/dist/lib/checkout-widget/checkout-widget.component.js.map +1 -0
- package/dist/lib/custom/OrderHeader/order-header-form.component.d.ts +1 -0
- package/dist/lib/custom/OrderHeader/order-header-form.component.d.ts.map +1 -1
- package/dist/lib/custom/OrderHeader/order-header-form.component.js +10 -6
- package/dist/lib/custom/OrderHeader/order-header-form.component.js.map +1 -1
- package/dist/lib/custom/OrderHeader/order-lines-editor.component.d.ts +2 -0
- package/dist/lib/custom/OrderHeader/order-lines-editor.component.d.ts.map +1 -1
- package/dist/lib/custom/OrderHeader/order-lines-editor.component.js +37 -11
- package/dist/lib/custom/OrderHeader/order-lines-editor.component.js.map +1 -1
- package/dist/lib/form-panels/party-order-stats.js +2 -2
- package/dist/lib/form-panels/party-order-stats.js.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutSession/mjbizappsorderscheckoutsession.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutSession/mjbizappsorderscheckoutsession.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutSession/mjbizappsorderscheckoutsession.form.component.js +103 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutSession/mjbizappsorderscheckoutsession.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidget/mjbizappsorderscheckoutwidget.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidget/mjbizappsorderscheckoutwidget.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidget/mjbizappsorderscheckoutwidget.form.component.js +136 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidget/mjbizappsorderscheckoutwidget.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidgetDistribution/mjbizappsorderscheckoutwidgetdistribution.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidgetDistribution/mjbizappsorderscheckoutwidgetdistribution.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidgetDistribution/mjbizappsorderscheckoutwidgetdistribution.form.component.js +106 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidgetDistribution/mjbizappsorderscheckoutwidgetdistribution.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersEventOrderLine/mjbizappsorderseventorderline.form.component.js +9 -9
- package/dist/lib/generated/Entities/mjBizAppsOrdersEventOrderLine/mjbizappsorderseventorderline.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersEventProduct/mjbizappsorderseventproduct.form.component.js +12 -12
- package/dist/lib/generated/Entities/mjBizAppsOrdersEventProduct/mjbizappsorderseventproduct.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersOrderCompanyPolicy/mjbizappsordersordercompanypolicy.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersOrderCompanyPolicy/mjbizappsordersordercompanypolicy.form.component.js +16 -10
- package/dist/lib/generated/Entities/mjBizAppsOrdersOrderCompanyPolicy/mjbizappsordersordercompanypolicy.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersOrderHeader/mjbizappsordersorderheader.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersOrderHeader/mjbizappsordersorderheader.form.component.js +78 -52
- package/dist/lib/generated/Entities/mjBizAppsOrdersOrderHeader/mjbizappsordersorderheader.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersOrderLine/mjbizappsordersorderline.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersOrderLine/mjbizappsordersorderline.form.component.js +88 -82
- package/dist/lib/generated/Entities/mjBizAppsOrdersOrderLine/mjbizappsordersorderline.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentHeader/mjbizappsorderspaymentheader.form.component.js +3 -3
- package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentHeader/mjbizappsorderspaymentheader.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentIntent/mjbizappsorderspaymentintent.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentIntent/mjbizappsorderspaymentintent.form.component.js +23 -5
- package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentIntent/mjbizappsorderspaymentintent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersProduct/mjbizappsordersproduct.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersProduct/mjbizappsordersproduct.form.component.js +75 -69
- package/dist/lib/generated/Entities/mjBizAppsOrdersProduct/mjbizappsordersproduct.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersProductCategory/mjbizappsordersproductcategory.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersProductCategory/mjbizappsordersproductcategory.form.component.js +37 -31
- package/dist/lib/generated/Entities/mjBizAppsOrdersProductCategory/mjbizappsordersproductcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersProductType/mjbizappsordersproducttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersProductType/mjbizappsordersproducttype.form.component.js +24 -16
- package/dist/lib/generated/Entities/mjBizAppsOrdersProductType/mjbizappsordersproducttype.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +54 -51
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +27 -18
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/lib/pages/catalog/pricing.page.d.ts +3 -24
- package/dist/lib/pages/catalog/pricing.page.d.ts.map +1 -1
- package/dist/lib/pages/catalog/pricing.page.js +158 -214
- package/dist/lib/pages/catalog/pricing.page.js.map +1 -1
- package/dist/lib/pages/catalog/products.page.d.ts +6 -29
- package/dist/lib/pages/catalog/products.page.d.ts.map +1 -1
- package/dist/lib/pages/catalog/products.page.js +255 -315
- package/dist/lib/pages/catalog/products.page.js.map +1 -1
- package/dist/lib/pages/orders/fulfillment.page.d.ts +14 -97
- package/dist/lib/pages/orders/fulfillment.page.d.ts.map +1 -1
- package/dist/lib/pages/orders/fulfillment.page.js +93 -258
- package/dist/lib/pages/orders/fulfillment.page.js.map +1 -1
- package/dist/lib/pages/orders/order-document.page.js +1 -1
- package/dist/lib/pages/orders/order-document.page.js.map +1 -1
- package/dist/lib/pages/orders/orders-dashboard.page.d.ts +29 -58
- package/dist/lib/pages/orders/orders-dashboard.page.d.ts.map +1 -1
- package/dist/lib/pages/orders/orders-dashboard.page.js +602 -352
- package/dist/lib/pages/orders/orders-dashboard.page.js.map +1 -1
- package/dist/lib/pages/orders/orders-list.page.d.ts +8 -58
- package/dist/lib/pages/orders/orders-list.page.d.ts.map +1 -1
- package/dist/lib/pages/orders/orders-list.page.js +52 -237
- package/dist/lib/pages/orders/orders-list.page.js.map +1 -1
- package/dist/lib/pages/payments/account-credit.page.d.ts +7 -17
- package/dist/lib/pages/payments/account-credit.page.d.ts.map +1 -1
- package/dist/lib/pages/payments/account-credit.page.js +99 -85
- package/dist/lib/pages/payments/account-credit.page.js.map +1 -1
- package/dist/lib/pages/payments/payments-dashboard.page.d.ts +4 -15
- package/dist/lib/pages/payments/payments-dashboard.page.d.ts.map +1 -1
- package/dist/lib/pages/payments/payments-dashboard.page.js +76 -111
- package/dist/lib/pages/payments/payments-dashboard.page.js.map +1 -1
- package/dist/lib/pages/payments/payments-list.page.d.ts +7 -41
- package/dist/lib/pages/payments/payments-list.page.d.ts.map +1 -1
- package/dist/lib/pages/payments/payments-list.page.js +51 -130
- package/dist/lib/pages/payments/payments-list.page.js.map +1 -1
- package/dist/lib/pages/receivables/customer-ar.page.d.ts +6 -8
- package/dist/lib/pages/receivables/customer-ar.page.d.ts.map +1 -1
- package/dist/lib/pages/receivables/customer-ar.page.js +112 -100
- package/dist/lib/pages/receivables/customer-ar.page.js.map +1 -1
- package/dist/lib/pages/receivables/overdue.page.d.ts +6 -3
- package/dist/lib/pages/receivables/overdue.page.d.ts.map +1 -1
- package/dist/lib/pages/receivables/overdue.page.js +61 -65
- package/dist/lib/pages/receivables/overdue.page.js.map +1 -1
- package/dist/lib/pages/receivables/subscriptions.page.d.ts +5 -9
- package/dist/lib/pages/receivables/subscriptions.page.d.ts.map +1 -1
- package/dist/lib/pages/receivables/subscriptions.page.js +139 -153
- package/dist/lib/pages/receivables/subscriptions.page.js.map +1 -1
- package/dist/lib/panels/order-stages.d.ts +12 -16
- package/dist/lib/panels/order-stages.d.ts.map +1 -1
- package/dist/lib/panels/order-stages.js +6 -42
- package/dist/lib/panels/order-stages.js.map +1 -1
- package/dist/lib/panels/party-orders-overview.component.d.ts +3 -1
- package/dist/lib/panels/party-orders-overview.component.d.ts.map +1 -1
- package/dist/lib/panels/party-orders-overview.component.js +18 -6
- package/dist/lib/panels/party-orders-overview.component.js.map +1 -1
- package/dist/lib/panels/status-stepper.component.d.ts +1 -1
- package/dist/lib/panels/status-stepper.component.d.ts.map +1 -1
- package/dist/lib/services/pricing-scheduler.service.d.ts +3 -4
- package/dist/lib/services/pricing-scheduler.service.d.ts.map +1 -1
- package/dist/lib/services/pricing-scheduler.service.js +3 -4
- package/dist/lib/services/pricing-scheduler.service.js.map +1 -1
- package/dist/public-api.d.ts +3 -2
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -2
- package/dist/public-api.js.map +1 -1
- package/package.json +28 -16
- package/dist/lib/pages/orders/order-editor.page.d.ts +0 -547
- package/dist/lib/pages/orders/order-editor.page.d.ts.map +0 -1
- package/dist/lib/pages/orders/order-editor.page.js +0 -2269
- package/dist/lib/pages/orders/order-editor.page.js.map +0 -1
- package/dist/lib/pages/orders/order-workspace.page.d.ts +0 -120
- package/dist/lib/pages/orders/order-workspace.page.d.ts.map +0 -1
- package/dist/lib/pages/orders/order-workspace.page.js +0 -443
- package/dist/lib/pages/orders/order-workspace.page.js.map +0 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Component, inject } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, Component, EventEmitter, Output, inject } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
3
|
+
import { OrdersFulfillOrderLinesOperation, } from '@mj-biz-apps/orders-entities';
|
|
4
|
+
import { MJAlertComponent, MJButtonDirective, MJTabNavComponent } from '@memberjunction/ng-ui-components';
|
|
5
|
+
import { EntityViewerModule } from '@memberjunction/ng-entity-viewer';
|
|
6
|
+
import { Metadata } from '@memberjunction/core';
|
|
7
|
+
import { MJO_ENTITIES } from '../../data/entity-names.js';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@memberjunction/ng-entity-viewer";
|
|
8
10
|
function MJOFulfillmentPageComponent_Conditional_3_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
9
11
|
i0.ɵɵtext(0);
|
|
10
12
|
} if (rf & 2) {
|
|
@@ -15,7 +17,7 @@ function MJOFulfillmentPageComponent_Conditional_3_Conditional_4_Template(rf, ct
|
|
|
15
17
|
i0.ɵɵtext(0);
|
|
16
18
|
} if (rf & 2) {
|
|
17
19
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
18
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r0.Result.RefusedCount, " refused \u2014 those lines were already shipped or are not fulfillable.
|
|
20
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.Result.RefusedCount, " refused \u2014 those lines were already shipped or are not fulfillable. ");
|
|
19
21
|
} }
|
|
20
22
|
function MJOFulfillmentPageComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
21
23
|
i0.ɵɵelementStart(0, "mj-alert", 2)(1, "strong");
|
|
@@ -45,14 +47,19 @@ function MJOFulfillmentPageComponent_Conditional_4_Template(rf, ctx) { if (rf &
|
|
|
45
47
|
i0.ɵɵadvance(3);
|
|
46
48
|
i0.ɵɵtextInterpolate1(" ", ctx_r0.Error, " ");
|
|
47
49
|
} }
|
|
48
|
-
function
|
|
49
|
-
i0.ɵɵ
|
|
50
|
-
i0.ɵɵ
|
|
50
|
+
function MJOFulfillmentPageComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
51
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
52
|
+
i0.ɵɵelementStart(0, "mj-entity-viewer", 12);
|
|
53
|
+
i0.ɵɵlistener("RecordSelected", function MJOFulfillmentPageComponent_Conditional_12_Template_mj_entity_viewer_RecordSelected_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnRecordSelected($event)); })("RecordOpened", function MJOFulfillmentPageComponent_Conditional_12_Template_mj_entity_viewer_RecordOpened_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnRecordOpened($event)); });
|
|
51
54
|
i0.ɵɵelementEnd();
|
|
52
55
|
} if (rf & 2) {
|
|
53
56
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
54
|
-
i0.ɵɵ
|
|
55
|
-
|
|
57
|
+
i0.ɵɵproperty("Entity", ctx_r0.OrderLineEntityInfo)("ViewEntity", ctx_r0.FulfillmentQueueView);
|
|
58
|
+
} }
|
|
59
|
+
function MJOFulfillmentPageComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
60
|
+
i0.ɵɵelementStart(0, "div", 11);
|
|
61
|
+
i0.ɵɵtext(1, "Loading fulfillment queue...");
|
|
62
|
+
i0.ɵɵelementEnd();
|
|
56
63
|
} }
|
|
57
64
|
/**
|
|
58
65
|
* `mjo-fulfillment-page` — physical lines waiting to ship.
|
|
@@ -73,67 +80,60 @@ function MJOFulfillmentPageComponent_Conditional_11_Template(rf, ctx) { if (rf &
|
|
|
73
80
|
* ```
|
|
74
81
|
*/
|
|
75
82
|
export class MJOFulfillmentPageComponent {
|
|
76
|
-
/**
|
|
77
|
-
* Render what was just loaded.
|
|
78
|
-
*
|
|
79
|
-
* These pages are created imperatively by the section shell through
|
|
80
|
-
* `ViewContainerRef.createComponent`. When an async load assigns across
|
|
81
|
-
* Angular's check/verify boundary, dev mode raises NG0100 and ABORTS the DOM
|
|
82
|
-
* write. Nothing re-renders afterwards, so the recorded "previous" value stays
|
|
83
|
-
* pre-load while the getter returns the loaded one — the mismatch then repeats
|
|
84
|
-
* on every tick and the view is frozen for good. It is not a flicker: the
|
|
85
|
-
* Orders dashboard sat at "0 open orders / $0.00" against 73 real orders, and
|
|
86
|
-
* read as a quiet day rather than a broken screen.
|
|
87
|
-
*
|
|
88
|
-
* Writing the DOM here ends it: the rendered value matches the getter from the
|
|
89
|
-
* first pass on, so later verify passes agree.
|
|
90
|
-
*/
|
|
91
83
|
cdr = inject(ChangeDetectorRef);
|
|
92
|
-
|
|
84
|
+
OrderOpened = new EventEmitter();
|
|
85
|
+
OrderLineEntityInfo = null;
|
|
93
86
|
Preset = 'pending';
|
|
87
|
+
Tabs = [
|
|
88
|
+
{ key: 'pending', label: 'Pending Fulfillment' },
|
|
89
|
+
{ key: 'done', label: 'Fulfilled' },
|
|
90
|
+
{ key: 'all', label: 'All Lines' },
|
|
91
|
+
];
|
|
92
|
+
get FulfillmentQueueView() {
|
|
93
|
+
if (!this.OrderLineEntityInfo)
|
|
94
|
+
return null;
|
|
95
|
+
let whereClause = `FulfillmentStatus IN ('Pending', 'PartiallyFulfilled', 'Unfulfilled')`;
|
|
96
|
+
if (this.Preset === 'done') {
|
|
97
|
+
whereClause = `FulfillmentStatus = 'Fulfilled'`;
|
|
98
|
+
}
|
|
99
|
+
else if (this.Preset === 'all') {
|
|
100
|
+
whereClause = '';
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
EntityID: this.OrderLineEntityInfo.ID,
|
|
104
|
+
Entity: this.OrderLineEntityInfo.Name,
|
|
105
|
+
WhereClause: whereClause,
|
|
106
|
+
ID: `preset-fulfillment-${this.Preset}`,
|
|
107
|
+
Name: 'Fulfillment Queue'
|
|
108
|
+
};
|
|
109
|
+
}
|
|
94
110
|
/** Line ids the picker has ticked. */
|
|
95
111
|
Selected = new Set();
|
|
96
112
|
Busy = false;
|
|
97
113
|
Error = null;
|
|
98
|
-
Truncated = false;
|
|
99
114
|
/** What the last flip did. Kept on screen so a partial result is legible. */
|
|
100
115
|
Result = null;
|
|
101
116
|
get SelectedCount() {
|
|
102
117
|
return this.Selected.size;
|
|
103
118
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
119
|
+
OnRecordSelected(event) {
|
|
120
|
+
const id = (event.compositeKey?.GetValueByFieldName('ID') ?? event.record?.['ID']);
|
|
121
|
+
if (!id)
|
|
122
|
+
return;
|
|
107
123
|
if (this.Selected.has(id))
|
|
108
124
|
this.Selected.delete(id);
|
|
109
125
|
else
|
|
110
126
|
this.Selected.add(id);
|
|
127
|
+
this.cdr.detectChanges();
|
|
111
128
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Drop selections for lines that are no longer in the queue.
|
|
120
|
-
*
|
|
121
|
-
* Without this, a reload after a partial fulfilment leaves ids selected that
|
|
122
|
-
* the next call would refuse — the picker would see a count that does not
|
|
123
|
-
* match what is on screen.
|
|
124
|
-
*/
|
|
125
|
-
pruneSelection() {
|
|
126
|
-
const present = new Set(this.Rows.map((r) => String(r.ID)));
|
|
127
|
-
for (const id of [...this.Selected])
|
|
128
|
-
if (!present.has(id))
|
|
129
|
-
this.Selected.delete(id);
|
|
129
|
+
OnRecordOpened(event) {
|
|
130
|
+
const orderId = event.record?.['OrderHeaderID'];
|
|
131
|
+
if (orderId) {
|
|
132
|
+
this.OrderOpened.emit(orderId);
|
|
133
|
+
}
|
|
130
134
|
}
|
|
131
135
|
/**
|
|
132
136
|
* Mark the ticked lines fulfilled.
|
|
133
|
-
*
|
|
134
|
-
* `AllOrNothing` is deliberately left false. A picker who scans one
|
|
135
|
-
* already-shipped item should not lose the other nine scans — the operation
|
|
136
|
-
* does what it can and reports the rest, and the banner says so.
|
|
137
137
|
*/
|
|
138
138
|
async FulfillSelected() {
|
|
139
139
|
if (!this.Selected.size || this.Busy)
|
|
@@ -154,7 +154,6 @@ export class MJOFulfillmentPageComponent {
|
|
|
154
154
|
AdvancedCount: output.AdvancedCount,
|
|
155
155
|
};
|
|
156
156
|
this.Selected.clear();
|
|
157
|
-
await this.load();
|
|
158
157
|
}
|
|
159
158
|
catch (e) {
|
|
160
159
|
this.Error = e instanceof Error ? e.message : String(e);
|
|
@@ -164,164 +163,18 @@ export class MJOFulfillmentPageComponent {
|
|
|
164
163
|
this.cdr.detectChanges();
|
|
165
164
|
}
|
|
166
165
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
{ Key: 'done', Label: 'Fulfilled' },
|
|
171
|
-
{ Key: 'all', Label: 'All' },
|
|
172
|
-
];
|
|
173
|
-
Columns = [
|
|
174
|
-
{ Key: 'OrderNumber', Label: 'Order', Kind: 'mono', Width: '112px', Secondary: (r) => `line ${r.LineNumber}` },
|
|
175
|
-
{
|
|
176
|
-
Key: 'Product',
|
|
177
|
-
Label: 'Item',
|
|
178
|
-
Secondary: (r) => (r.SKU ? `${r.SKU} · ${r.Customer}` : r.Customer),
|
|
179
|
-
},
|
|
180
|
-
{ Key: 'Quantity', Label: 'Qty', Kind: 'number', Width: '70px' },
|
|
181
|
-
{
|
|
182
|
-
// Where the LINE goes, which is not always where the order goes — a
|
|
183
|
-
// seat bought for a colleague, a gift shipped elsewhere. Blank means
|
|
184
|
-
// it follows the header, which is the common case.
|
|
185
|
-
Key: 'ShipTo',
|
|
186
|
-
Label: 'Ship to',
|
|
187
|
-
Width: '160px',
|
|
188
|
-
HideBelow: 1000,
|
|
189
|
-
Format: (r) => r.ShipTo ?? '—',
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
Key: 'Remaining',
|
|
193
|
-
Label: 'Of order',
|
|
194
|
-
Width: '90px',
|
|
195
|
-
HideBelow: 760,
|
|
196
|
-
// "1 of 3" rather than "1", so a nearly-finished order is legible.
|
|
197
|
-
Format: (r) => r.Remaining,
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
Key: 'ConfirmedAt',
|
|
201
|
-
Label: 'Waiting',
|
|
202
|
-
Width: '120px',
|
|
203
|
-
Format: (r) => (r.ConfirmedAt ? FormatDate(r.ConfirmedAt, { Short: true }) : '—'),
|
|
204
|
-
Secondary: (r) => {
|
|
205
|
-
if (!r.ConfirmedAt || r.FulfillmentStatus === 'Fulfilled')
|
|
206
|
-
return null;
|
|
207
|
-
const days = DaysSince(r.ConfirmedAt, Today());
|
|
208
|
-
return days > 0 ? `${days}d waiting` : null;
|
|
209
|
-
},
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
Key: 'FulfillmentStatus',
|
|
213
|
-
Label: 'Status',
|
|
214
|
-
Kind: 'chip',
|
|
215
|
-
Width: '110px',
|
|
216
|
-
ChipClass: (r) => r.FulfillmentStatus === 'Fulfilled'
|
|
217
|
-
? 'mj-chip--success'
|
|
218
|
-
: this.isLate(r)
|
|
219
|
-
? 'mj-chip--error'
|
|
220
|
-
: 'mj-chip--warning',
|
|
221
|
-
Format: (r) => (r.FulfillmentStatus === 'Pending' && this.isLate(r) ? 'Late' : r.FulfillmentStatus),
|
|
222
|
-
},
|
|
223
|
-
];
|
|
224
|
-
async ngOnInit() {
|
|
225
|
-
await this.load();
|
|
226
|
-
}
|
|
227
|
-
async OnPreset(preset) {
|
|
228
|
-
this.Preset = preset;
|
|
229
|
-
await this.load();
|
|
166
|
+
ngOnInit() {
|
|
167
|
+
const md = new Metadata();
|
|
168
|
+
this.OrderLineEntityInfo = md.Entities.find((e) => e.Name === MJO_ENTITIES.OrderLine) || null;
|
|
230
169
|
this.cdr.detectChanges();
|
|
231
170
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
* Measured from CONFIRMATION, because that is when the promise was made. The
|
|
236
|
-
* queue carries no requested-delivery date — that lives on the order and is
|
|
237
|
-
* not what a warehouse queue is sorted by.
|
|
238
|
-
*/
|
|
239
|
-
isLate(row) {
|
|
240
|
-
if (row.FulfillmentStatus !== 'Pending' || !row.ConfirmedAt)
|
|
241
|
-
return false;
|
|
242
|
-
return DaysSince(row.ConfirmedAt, Today()) > 5;
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* The backlog, as the server computes it.
|
|
246
|
-
*
|
|
247
|
-
* COMPUTED AT READ TIME, not stored. "Awaiting fulfilment" depends on the
|
|
248
|
-
* order's stage and each line's status together, and a stored flag would need
|
|
249
|
-
* a job to keep it honest — the day that job fails the warehouse works from a
|
|
250
|
-
* stale list. `Orders.GetFulfillmentQueue` derives it per call.
|
|
251
|
-
*
|
|
252
|
-
* This replaces a client-side reconstruction that read every posted order,
|
|
253
|
-
* fetched their lines, and filtered for a fulfilment status. That worked, but
|
|
254
|
-
* it decided what "awaiting" means in the browser, which is the second place
|
|
255
|
-
* for a definition to live.
|
|
256
|
-
*/
|
|
257
|
-
async load() {
|
|
258
|
-
const op = new OrdersGetFulfillmentQueueOperation();
|
|
259
|
-
const result = await op.Execute({ IncludeCompleted: this.Preset === 'all' });
|
|
260
|
-
const output = result.Output;
|
|
261
|
-
if (!output?.Success) {
|
|
262
|
-
// An empty queue and a failed one both render "Nothing waiting to
|
|
263
|
-
// ship", which is the most reassuring sentence on a warehouse screen.
|
|
264
|
-
this.Error =
|
|
265
|
-
output?.Message ?? result.ErrorMessage ?? 'The fulfillment queue could not be read.';
|
|
266
|
-
this.Rows = [];
|
|
267
|
-
this.Truncated = false;
|
|
268
|
-
return;
|
|
269
|
-
}
|
|
270
|
-
this.Error = null;
|
|
271
|
-
this.Truncated = output.Truncated;
|
|
272
|
-
// The queue already narrows to what is fulfillable; the presets narrow
|
|
273
|
-
// further, and those are cheap over rows this page is holding.
|
|
274
|
-
const rows = this.flatten(output.Orders);
|
|
275
|
-
this.Rows = rows.filter((row) => {
|
|
276
|
-
switch (this.Preset) {
|
|
277
|
-
case 'pending':
|
|
278
|
-
return row.FulfillmentStatus === 'Pending';
|
|
279
|
-
case 'late':
|
|
280
|
-
return this.isLate(row);
|
|
281
|
-
case 'done':
|
|
282
|
-
return row.FulfillmentStatus === 'Fulfilled';
|
|
283
|
-
default:
|
|
284
|
-
return true;
|
|
285
|
-
}
|
|
286
|
-
});
|
|
287
|
-
this.pruneSelection();
|
|
171
|
+
OnPreset(preset) {
|
|
172
|
+
this.Preset = preset;
|
|
173
|
+
this.Selected.clear();
|
|
288
174
|
this.cdr.detectChanges();
|
|
289
175
|
}
|
|
290
|
-
/**
|
|
291
|
-
* One row per LINE, carrying its order for context.
|
|
292
|
-
*
|
|
293
|
-
* A picker works a shelf, not an order, so the line is the unit of work — but
|
|
294
|
-
* the order number is what everything else is filed under, so each row keeps
|
|
295
|
-
* it. `FulfillableCount` lets a row say "1 of 3 remaining" rather than
|
|
296
|
-
* implying the order is nearly done when it is not.
|
|
297
|
-
*/
|
|
298
|
-
flatten(orders) {
|
|
299
|
-
const rows = [];
|
|
300
|
-
for (const order of orders) {
|
|
301
|
-
for (const line of order.Lines) {
|
|
302
|
-
rows.push({
|
|
303
|
-
ID: line.OrderLineID,
|
|
304
|
-
OrderHeaderID: order.OrderHeaderID,
|
|
305
|
-
OrderNumber: order.OrderNumber,
|
|
306
|
-
LineNumber: line.LineNumber,
|
|
307
|
-
Product: line.ProductName,
|
|
308
|
-
SKU: line.SKU ?? null,
|
|
309
|
-
Quantity: line.Quantity,
|
|
310
|
-
Customer: order.CustomerName,
|
|
311
|
-
ShipTo: line.ShipToName ?? null,
|
|
312
|
-
Remaining: `${order.Lines.length} of ${order.FulfillableCount}`,
|
|
313
|
-
ConfirmedAt: order.ConfirmedAt ?? null,
|
|
314
|
-
FulfillmentStatus: line.FulfillmentStatus,
|
|
315
|
-
// A component from a bundle: the picker should keep it with
|
|
316
|
-
// its siblings rather than treat it as a loose item.
|
|
317
|
-
FromBundle: !!line.ParentOrderLineID,
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
return rows;
|
|
322
|
-
}
|
|
323
176
|
static ɵfac = function MJOFulfillmentPageComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MJOFulfillmentPageComponent)(); };
|
|
324
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJOFulfillmentPageComponent, selectors: [["mjo-fulfillment-page"]], decls:
|
|
177
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJOFulfillmentPageComponent, selectors: [["mjo-fulfillment-page"]], outputs: { OrderOpened: "OrderOpened" }, decls: 14, vars: 7, consts: [[1, "mjo-note", "mjo-fq__note"], ["aria-hidden", "true", 1, "fa-solid", "fa-circle-info"], ["Icon", "fa-solid fa-truck-fast", "Role", "status", 1, "mjo-fq__note", 3, "Variant"], ["Variant", "error", "Icon", "fa-solid fa-triangle-exclamation", "role", "alert", 1, "mjo-fq__note"], [1, "mjo-fq__actions"], ["type", "button", "mjButton", "", "variant", "primary", 3, "click", "disabled"], ["aria-hidden", "true", 1, "fa-solid", "fa-check"], [1, "mjo-fq__tabs"], [3, "TabChange", "Tabs", "ActiveKey"], [1, "mjo-fq__viewer-host"], [3, "Entity", "ViewEntity"], [1, "small", "muted", 2, "padding", "24px"], [3, "RecordSelected", "RecordOpened", "Entity", "ViewEntity"]], template: function MJOFulfillmentPageComponent_Template(rf, ctx) { if (rf & 1) {
|
|
325
178
|
i0.ɵɵelementStart(0, "p", 0);
|
|
326
179
|
i0.ɵɵelement(1, "i", 1);
|
|
327
180
|
i0.ɵɵtext(2, " Everything here is already paid for and booked \u2014 nothing on this screen writes a journal entry. What is outstanding is the goods, and what this queue controls is the order's stage: one with nothing to ship auto-advances past Posted, one with a physical line waits here. ");
|
|
@@ -333,14 +186,11 @@ export class MJOFulfillmentPageComponent {
|
|
|
333
186
|
i0.ɵɵelement(7, "i", 6);
|
|
334
187
|
i0.ɵɵtext(8);
|
|
335
188
|
i0.ɵɵelementEnd();
|
|
336
|
-
i0.ɵɵelementStart(9, "
|
|
337
|
-
i0.ɵɵlistener("
|
|
338
|
-
i0.ɵɵ
|
|
339
|
-
i0.ɵɵ
|
|
340
|
-
i0.ɵɵconditionalCreate(
|
|
341
|
-
i0.ɵɵelementEnd();
|
|
342
|
-
i0.ɵɵelementStart(12, "mjo-worklist-table", 9);
|
|
343
|
-
i0.ɵɵlistener("PresetChanged", function MJOFulfillmentPageComponent_Template_mjo_worklist_table_PresetChanged_12_listener($event) { return ctx.OnPreset($event); })("RowClicked", function MJOFulfillmentPageComponent_Template_mjo_worklist_table_RowClicked_12_listener($event) { return ctx.ToggleRow($event); });
|
|
189
|
+
i0.ɵɵelementStart(9, "div", 7)(10, "mj-tab-nav", 8);
|
|
190
|
+
i0.ɵɵlistener("TabChange", function MJOFulfillmentPageComponent_Template_mj_tab_nav_TabChange_10_listener($event) { return ctx.OnPreset($event); });
|
|
191
|
+
i0.ɵɵelementEnd()()();
|
|
192
|
+
i0.ɵɵelementStart(11, "div", 9);
|
|
193
|
+
i0.ɵɵconditionalCreate(12, MJOFulfillmentPageComponent_Conditional_12_Template, 1, 2, "mj-entity-viewer", 10)(13, MJOFulfillmentPageComponent_Conditional_13_Template, 2, 0, "div", 11);
|
|
344
194
|
i0.ɵɵelementEnd();
|
|
345
195
|
} if (rf & 2) {
|
|
346
196
|
i0.ɵɵadvance(3);
|
|
@@ -351,19 +201,15 @@ export class MJOFulfillmentPageComponent {
|
|
|
351
201
|
i0.ɵɵproperty("disabled", !ctx.SelectedCount || ctx.Busy);
|
|
352
202
|
i0.ɵɵadvance(2);
|
|
353
203
|
i0.ɵɵtextInterpolate1(" ", ctx.Busy ? "Marking\u2026" : "Mark " + ctx.SelectedCount + " fulfilled", " ");
|
|
354
|
-
i0.ɵɵadvance();
|
|
355
|
-
i0.ɵɵproperty("
|
|
356
|
-
i0.ɵɵadvance();
|
|
357
|
-
i0.ɵɵ
|
|
358
|
-
|
|
359
|
-
i0.ɵɵconditional(ctx.Truncated ? 11 : -1);
|
|
360
|
-
i0.ɵɵadvance();
|
|
361
|
-
i0.ɵɵproperty("Columns", ctx.Columns)("Rows", ctx.Rows)("Presets", ctx.Presets)("ActivePreset", ctx.Preset)("Searchable", false);
|
|
362
|
-
} }, dependencies: [MJButtonDirective, CommonModule, MJOWorklistTableComponent, MJAlertComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n overflow: auto;\n padding: var(--mj-space-6);\n }\n .mjo-fq__note[_ngcontent-%COMP%] {\n margin-bottom: var(--mj-space-4);\n }\n .mjo-fq__actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n margin-bottom: var(--mj-space-3);\n }\n @media (max-width: 760px) {\n [_nghost-%COMP%] {\n padding: var(--mj-space-4);\n }\n }"] });
|
|
204
|
+
i0.ɵɵadvance(2);
|
|
205
|
+
i0.ɵɵproperty("Tabs", ctx.Tabs)("ActiveKey", ctx.Preset);
|
|
206
|
+
i0.ɵɵadvance(2);
|
|
207
|
+
i0.ɵɵconditional(ctx.OrderLineEntityInfo ? 12 : 13);
|
|
208
|
+
} }, dependencies: [MJButtonDirective, CommonModule, EntityViewerModule, i1.EntityViewerComponent, MJAlertComponent, MJTabNavComponent], styles: ["[_nghost-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n min-height: 0;\n overflow: hidden;\n padding: var(--mj-space-6);\n box-sizing: border-box;\n }\n .mjo-fq__note[_ngcontent-%COMP%] {\n margin-bottom: var(--mj-space-4);\n flex-shrink: 0;\n }\n .mjo-fq__actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-3);\n margin-bottom: var(--mj-space-3);\n flex-shrink: 0;\n }\n .mjo-fq__viewer-host[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n height: 100%;\n min-height: 500px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n mj-entity-viewer[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n height: 100%;\n width: 100%;\n }\n @media (max-width: 760px) {\n [_nghost-%COMP%] {\n padding: var(--mj-space-4);\n }\n }"] });
|
|
363
209
|
}
|
|
364
210
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJOFulfillmentPageComponent, [{
|
|
365
211
|
type: Component,
|
|
366
|
-
args: [{ selector: 'mjo-fulfillment-page', standalone: true, imports: [MJButtonDirective, CommonModule,
|
|
212
|
+
args: [{ selector: 'mjo-fulfillment-page', standalone: true, imports: [MJButtonDirective, CommonModule, EntityViewerModule, MJAlertComponent, MJTabNavComponent], template: `
|
|
367
213
|
<!-- A standing explanation of how a screen works is not an ALERT — an alert is for
|
|
368
214
|
something that happened or needs attention. These were two info cards saying the same
|
|
369
215
|
thing ("writes no journal entry") in different words, permanently, above the work. -->
|
|
@@ -388,19 +234,17 @@ export class MJOFulfillmentPageComponent {
|
|
|
388
234
|
}
|
|
389
235
|
@if (Result.RefusedCount) {
|
|
390
236
|
{{ Result.RefusedCount }} refused — those lines were already shipped or are
|
|
391
|
-
not fulfillable.
|
|
392
|
-
already-shipped item does not lose the other nine scans.
|
|
237
|
+
not fulfillable.
|
|
393
238
|
}
|
|
394
239
|
</mj-alert>
|
|
395
240
|
}
|
|
396
241
|
|
|
397
242
|
@if (Error) {
|
|
398
243
|
<mj-alert Variant="error" Icon="fa-solid fa-triangle-exclamation" class="mjo-fq__note" role="alert">
|
|
399
|
-
<strong>Nothing was marked.</strong> {{ Error }}
|
|
244
|
+
<strong>Nothing was marked.</strong> {{ Error }}
|
|
400
245
|
</mj-alert>
|
|
401
246
|
}
|
|
402
247
|
|
|
403
|
-
|
|
404
248
|
<div class="mjo-fq__actions">
|
|
405
249
|
<button
|
|
406
250
|
type="button"
|
|
@@ -410,35 +254,26 @@ export class MJOFulfillmentPageComponent {
|
|
|
410
254
|
<i class="fa-solid fa-check" aria-hidden="true"></i>
|
|
411
255
|
{{ Busy ? 'Marking…' : 'Mark ' + SelectedCount + ' fulfilled' }}
|
|
412
256
|
</button>
|
|
413
|
-
<
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
[disabled]="!Rows.length"
|
|
417
|
-
(click)="ToggleAll()">
|
|
418
|
-
<!-- Guarded on a NON-EMPTY selection: with no rows, 0 === 0 read
|
|
419
|
-
as "everything is selected" and offered to clear nothing. -->
|
|
420
|
-
{{ SelectedCount && SelectedCount === Rows.length ? 'Clear selection' : 'Select all' }}
|
|
421
|
-
</button>
|
|
422
|
-
@if (Truncated) {
|
|
423
|
-
<span class="small muted">
|
|
424
|
-
Showing the first {{ Rows.length }} lines — the queue is longer than this page.
|
|
425
|
-
</span>
|
|
426
|
-
}
|
|
257
|
+
<div class="mjo-fq__tabs">
|
|
258
|
+
<mj-tab-nav [Tabs]="Tabs" [ActiveKey]="Preset" (TabChange)="OnPreset($event)"></mj-tab-nav>
|
|
259
|
+
</div>
|
|
427
260
|
</div>
|
|
428
261
|
|
|
429
|
-
<mjo-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
`, styles: ["\n :host {\n display:
|
|
442
|
-
}], null,
|
|
443
|
-
|
|
262
|
+
<div class="mjo-fq__viewer-host">
|
|
263
|
+
@if (OrderLineEntityInfo) {
|
|
264
|
+
<mj-entity-viewer
|
|
265
|
+
[Entity]="OrderLineEntityInfo"
|
|
266
|
+
[ViewEntity]="FulfillmentQueueView"
|
|
267
|
+
(RecordSelected)="OnRecordSelected($event)"
|
|
268
|
+
(RecordOpened)="OnRecordOpened($event)">
|
|
269
|
+
</mj-entity-viewer>
|
|
270
|
+
} @else {
|
|
271
|
+
<div class="small muted" style="padding: 24px;">Loading fulfillment queue...</div>
|
|
272
|
+
}
|
|
273
|
+
</div>
|
|
274
|
+
`, styles: ["\n :host {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n min-height: 0;\n overflow: hidden;\n padding: var(--mj-space-6);\n box-sizing: border-box;\n }\n .mjo-fq__note {\n margin-bottom: var(--mj-space-4);\n flex-shrink: 0;\n }\n .mjo-fq__actions {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-3);\n margin-bottom: var(--mj-space-3);\n flex-shrink: 0;\n }\n .mjo-fq__viewer-host {\n flex: 1 1 auto;\n height: 100%;\n min-height: 500px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n mj-entity-viewer {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n height: 100%;\n width: 100%;\n }\n @media (max-width: 760px) {\n :host {\n padding: var(--mj-space-4);\n }\n }\n "] }]
|
|
275
|
+
}], null, { OrderOpened: [{
|
|
276
|
+
type: Output
|
|
277
|
+
}] }); })();
|
|
278
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MJOFulfillmentPageComponent, { className: "MJOFulfillmentPageComponent", filePath: "lib/pages/orders/fulfillment.page.ts", lineNumber: 150 }); })();
|
|
444
279
|
//# sourceMappingURL=fulfillment.page.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fulfillment.page.js","sourceRoot":"","sources":["../../../../src/lib/pages/orders/fulfillment.page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"fulfillment.page.js","sourceRoot":"","sources":["../../../../src/lib/pages/orders/fulfillment.page.ts"],"names":[],"mappings":"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"}
|
|
@@ -367,7 +367,7 @@ export class MJOOrderDocumentPageComponent {
|
|
|
367
367
|
return this.Order?.OrderType === 'Return' || (this.Order?.TotalGross ?? 0) < 0;
|
|
368
368
|
}
|
|
369
369
|
get IsPaid() {
|
|
370
|
-
return this.Order?.
|
|
370
|
+
return (this.Order?.Balance ?? 0) <= 0 && (this.Order?.TotalGross ?? 0) > 0;
|
|
371
371
|
}
|
|
372
372
|
get Subtotal() {
|
|
373
373
|
return this.Lines.reduce((s, l) => s + Number(l['LineTotalNet'] ?? 0), 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-document.page.js","sourceRoot":"","sources":["../../../../src/lib/pages/orders/order-document.page.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"order-document.page.js","sourceRoot":"","sources":["../../../../src/lib/pages/orders/order-document.page.ts"],"names":[],"mappings":"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"}
|