@mj-biz-apps/orders-entities 5.23.0 → 5.23.1
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/ProductEntity.d.ts +61 -0
- package/dist/ProductEntity.d.ts.map +1 -0
- package/dist/ProductEntity.js +146 -0
- package/dist/ProductEntity.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/pricing/linePricePick.d.ts +16 -0
- package/dist/pricing/linePricePick.d.ts.map +1 -1
- package/dist/pricing/linePricePick.js +21 -0
- package/dist/pricing/linePricePick.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Product subclass: a product takes its type's defaults when the type is chosen
|
|
3
|
+
* (bc-aidp-next-golive#277).
|
|
4
|
+
*
|
|
5
|
+
* `ProductType` carries `DefaultRevenueRecognitionTypeID`, `DefaultSubscriptionTypeID` and
|
|
6
|
+
* `DefaultIsTaxable`. Nothing copied them onto a new product, so `RevenueRecognitionTypeID` (NOT
|
|
7
|
+
* NULL) refused the save until it was set by hand, and `SubscriptionTypeID` / `IsTaxable` saved null.
|
|
8
|
+
*
|
|
9
|
+
* Lives here rather than in the form so every caller gets it: the form, a Remote Operation, an
|
|
10
|
+
* integration, a script.
|
|
11
|
+
*/
|
|
12
|
+
import { type EntitySaveOptions, type FieldValueCollection } from '@memberjunction/core';
|
|
13
|
+
import { mjBizAppsOrdersProductEntity } from './generated/entity_subclasses.js';
|
|
14
|
+
import { OrdersEngine } from './pricing/OrdersEngine.js';
|
|
15
|
+
/** The product fields a product type supplies a default for. */
|
|
16
|
+
export type ProductDefaults = {
|
|
17
|
+
RevenueRecognitionTypeID: string | null;
|
|
18
|
+
SubscriptionTypeID: string | null;
|
|
19
|
+
IsTaxable: boolean | null;
|
|
20
|
+
};
|
|
21
|
+
export declare const PRODUCT_DEFAULT_FIELDS: readonly ["RevenueRecognitionTypeID", "SubscriptionTypeID", "IsTaxable"];
|
|
22
|
+
export type ProductDefaultField = (typeof PRODUCT_DEFAULT_FIELDS)[number];
|
|
23
|
+
/** The lookups default resolution reads. `OrdersEngine` satisfies it. */
|
|
24
|
+
export type ProductDefaultsLookup = Pick<OrdersEngine, 'ProductTypeByID' | 'ProductCategoryByID' | 'CategoryChain'>;
|
|
25
|
+
/**
|
|
26
|
+
* The defaults a product of this type, in this category, starts with. Null when the type is unknown.
|
|
27
|
+
*
|
|
28
|
+
* Taxability is the answer the taxability walk gives a product that says nothing itself — its
|
|
29
|
+
* category chain, nearest first, then the type. The type's `DefaultIsTaxable` alone would stamp
|
|
30
|
+
* "taxable" onto a product whose category is exempt.
|
|
31
|
+
*/
|
|
32
|
+
export declare function ResolveProductDefaults(lookup: ProductDefaultsLookup, productTypeID: string | null | undefined, productCategoryID: string | null | undefined): ProductDefaults | null;
|
|
33
|
+
/**
|
|
34
|
+
* Which default fields to write, and with what.
|
|
35
|
+
*
|
|
36
|
+
* A field takes the new default when it is empty, or when it still holds the value this record
|
|
37
|
+
* stamped earlier — i.e. it came from the previous type, not from the user. A value the user chose
|
|
38
|
+
* is never overwritten. When the new type has no default for a field it stamped, the stamp is
|
|
39
|
+
* cleared, so switching Subscription → Merchandise does not leave Annual Rolling behind.
|
|
40
|
+
*/
|
|
41
|
+
export declare function PlanProductDefaultWrites(current: ProductDefaults, stamped: Partial<ProductDefaults>, next: ProductDefaults): Partial<ProductDefaults>;
|
|
42
|
+
export declare class ProductEntity extends mjBizAppsOrdersProductEntity {
|
|
43
|
+
/** What this instance wrote from a type default, per field — the values it may replace later. */
|
|
44
|
+
private stampedDefaults;
|
|
45
|
+
/**
|
|
46
|
+
* Applies the defaults when the type or category changes. Form fields and the typed setters
|
|
47
|
+
* both write through `Set`; loads do not (they use `SetMany`), so a loaded product is untouched.
|
|
48
|
+
*/
|
|
49
|
+
Set(FieldName: string, Value: unknown): void;
|
|
50
|
+
/** A record created with `ProductTypeID` in `newValues` never passes through `Set`. */
|
|
51
|
+
NewRecord(newValues?: FieldValueCollection): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* The same fill before a new product saves, after loading the engine — a caller whose engine
|
|
54
|
+
* was not loaded when the type was set still saves with the type's defaults. Existing products
|
|
55
|
+
* are not touched here: a null `IsTaxable` on a saved product is not this save's to change.
|
|
56
|
+
*/
|
|
57
|
+
Save(options?: EntitySaveOptions): Promise<boolean>;
|
|
58
|
+
/** Synchronous: reads the engine only when it is already loaded. */
|
|
59
|
+
protected applyTypeDefaults(): void;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=ProductEntity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductEntity.d.ts","sourceRoot":"","sources":["../src/ProductEntity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAc,KAAK,iBAAiB,EAAE,KAAK,oBAAoB,EAAoC,MAAM,sBAAsB,CAAC;AAEvI,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAoB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAKxE,gEAAgE;AAChE,MAAM,MAAM,eAAe,GAAG;IAC1B,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,0EAA2E,CAAC;AAC/G,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,eAAe,CAAC,CAAC;AAEpH;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAClC,MAAM,EAAE,qBAAqB,EAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACxC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC7C,eAAe,GAAG,IAAI,CAqBxB;AAYD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,EACjC,IAAI,EAAE,eAAe,GACtB,OAAO,CAAC,eAAe,CAAC,CAS1B;AAED,qBACa,aAAc,SAAQ,4BAA4B;IAC3D,iGAAiG;IACjG,OAAO,CAAC,eAAe,CAAgC;IAEvD;;;OAGG;IACa,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAS5D,uFAAuF;IACvE,SAAS,CAAC,SAAS,CAAC,EAAE,oBAAoB,GAAG,OAAO;IAMpE;;;;OAIG;IACmB,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAYzE,oEAAoE;IACpE,SAAS,CAAC,iBAAiB,IAAI,IAAI;CAqBtC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Shared Product subclass: a product takes its type's defaults when the type is chosen
|
|
9
|
+
* (bc-aidp-next-golive#277).
|
|
10
|
+
*
|
|
11
|
+
* `ProductType` carries `DefaultRevenueRecognitionTypeID`, `DefaultSubscriptionTypeID` and
|
|
12
|
+
* `DefaultIsTaxable`. Nothing copied them onto a new product, so `RevenueRecognitionTypeID` (NOT
|
|
13
|
+
* NULL) refused the save until it was set by hand, and `SubscriptionTypeID` / `IsTaxable` saved null.
|
|
14
|
+
*
|
|
15
|
+
* Lives here rather than in the form so every caller gets it: the form, a Remote Operation, an
|
|
16
|
+
* integration, a script.
|
|
17
|
+
*/
|
|
18
|
+
import { BaseEntity, LogError } from '@memberjunction/core';
|
|
19
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
20
|
+
import { mjBizAppsOrdersProductEntity } from './generated/entity_subclasses.js';
|
|
21
|
+
import { LoadOrdersEngine, OrdersEngine } from './pricing/OrdersEngine.js';
|
|
22
|
+
import { ResolveTaxability } from './pricing/TaxResolver.js';
|
|
23
|
+
const ENTITY = 'MJ_BizApps_Orders: Products';
|
|
24
|
+
export const PRODUCT_DEFAULT_FIELDS = ['RevenueRecognitionTypeID', 'SubscriptionTypeID', 'IsTaxable'];
|
|
25
|
+
/**
|
|
26
|
+
* The defaults a product of this type, in this category, starts with. Null when the type is unknown.
|
|
27
|
+
*
|
|
28
|
+
* Taxability is the answer the taxability walk gives a product that says nothing itself — its
|
|
29
|
+
* category chain, nearest first, then the type. The type's `DefaultIsTaxable` alone would stamp
|
|
30
|
+
* "taxable" onto a product whose category is exempt.
|
|
31
|
+
*/
|
|
32
|
+
export function ResolveProductDefaults(lookup, productTypeID, productCategoryID) {
|
|
33
|
+
const type = lookup.ProductTypeByID(productTypeID);
|
|
34
|
+
if (!type)
|
|
35
|
+
return null;
|
|
36
|
+
const chain = [];
|
|
37
|
+
for (const id of lookup.CategoryChain(productCategoryID)) {
|
|
38
|
+
const row = lookup.ProductCategoryByID(id);
|
|
39
|
+
if (!row)
|
|
40
|
+
break;
|
|
41
|
+
chain.push({ ID: row.ID, DefaultIsTaxable: row.DefaultIsTaxable, DefaultTaxCategory: row.DefaultTaxCategory });
|
|
42
|
+
}
|
|
43
|
+
const taxability = ResolveTaxability({ IsTaxable: null, TaxCategory: null }, chain, { DefaultIsTaxable: type.DefaultIsTaxable, DefaultTaxCategory: type.DefaultTaxCategory ?? null });
|
|
44
|
+
return {
|
|
45
|
+
RevenueRecognitionTypeID: type.DefaultRevenueRecognitionTypeID?.trim() || null,
|
|
46
|
+
SubscriptionTypeID: type.DefaultSubscriptionTypeID?.trim() || null,
|
|
47
|
+
IsTaxable: taxability.IsTaxable,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
const isEmpty = (v) => v == null || (typeof v === 'string' && v.trim() === '');
|
|
51
|
+
const sameValue = (a, b) => {
|
|
52
|
+
if (isEmpty(a) && isEmpty(b))
|
|
53
|
+
return true;
|
|
54
|
+
if (typeof a === 'string' && typeof b === 'string')
|
|
55
|
+
return a.trim().toLowerCase() === b.trim().toLowerCase();
|
|
56
|
+
return a === b;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Which default fields to write, and with what.
|
|
60
|
+
*
|
|
61
|
+
* A field takes the new default when it is empty, or when it still holds the value this record
|
|
62
|
+
* stamped earlier — i.e. it came from the previous type, not from the user. A value the user chose
|
|
63
|
+
* is never overwritten. When the new type has no default for a field it stamped, the stamp is
|
|
64
|
+
* cleared, so switching Subscription → Merchandise does not leave Annual Rolling behind.
|
|
65
|
+
*/
|
|
66
|
+
export function PlanProductDefaultWrites(current, stamped, next) {
|
|
67
|
+
const writes = {};
|
|
68
|
+
for (const field of PRODUCT_DEFAULT_FIELDS) {
|
|
69
|
+
const stillStamped = field in stamped && sameValue(stamped[field], current[field]);
|
|
70
|
+
if (!isEmpty(current[field]) && !stillStamped)
|
|
71
|
+
continue;
|
|
72
|
+
if (sameValue(current[field], next[field]))
|
|
73
|
+
continue;
|
|
74
|
+
writes[field] = next[field];
|
|
75
|
+
}
|
|
76
|
+
return writes;
|
|
77
|
+
}
|
|
78
|
+
let ProductEntity = class ProductEntity extends mjBizAppsOrdersProductEntity {
|
|
79
|
+
constructor() {
|
|
80
|
+
super(...arguments);
|
|
81
|
+
/** What this instance wrote from a type default, per field — the values it may replace later. */
|
|
82
|
+
this.stampedDefaults = {};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Applies the defaults when the type or category changes. Form fields and the typed setters
|
|
86
|
+
* both write through `Set`; loads do not (they use `SetMany`), so a loaded product is untouched.
|
|
87
|
+
*/
|
|
88
|
+
Set(FieldName, Value) {
|
|
89
|
+
const watched = FieldName === 'ProductTypeID' || FieldName === 'ProductCategoryID';
|
|
90
|
+
const before = watched ? this.Get(FieldName) : undefined;
|
|
91
|
+
super.Set(FieldName, Value);
|
|
92
|
+
if (watched && !sameValue(before, this.Get(FieldName))) {
|
|
93
|
+
this.applyTypeDefaults();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/** A record created with `ProductTypeID` in `newValues` never passes through `Set`. */
|
|
97
|
+
NewRecord(newValues) {
|
|
98
|
+
const created = super.NewRecord(newValues);
|
|
99
|
+
if (created)
|
|
100
|
+
this.applyTypeDefaults();
|
|
101
|
+
return created;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The same fill before a new product saves, after loading the engine — a caller whose engine
|
|
105
|
+
* was not loaded when the type was set still saves with the type's defaults. Existing products
|
|
106
|
+
* are not touched here: a null `IsTaxable` on a saved product is not this save's to change.
|
|
107
|
+
*/
|
|
108
|
+
async Save(options) {
|
|
109
|
+
if (!this.IsSaved) {
|
|
110
|
+
try {
|
|
111
|
+
await LoadOrdersEngine(this.ProviderToUse, this.ContextCurrentUser);
|
|
112
|
+
this.applyTypeDefaults();
|
|
113
|
+
}
|
|
114
|
+
catch (e) {
|
|
115
|
+
LogError(`Product type defaults not applied — OrdersEngine unavailable: ${e}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return super.Save(options);
|
|
119
|
+
}
|
|
120
|
+
/** Synchronous: reads the engine only when it is already loaded. */
|
|
121
|
+
applyTypeDefaults() {
|
|
122
|
+
const engine = OrdersEngine.Instance;
|
|
123
|
+
if (!engine.Loaded)
|
|
124
|
+
return;
|
|
125
|
+
const next = ResolveProductDefaults(engine, this.ProductTypeID, this.ProductCategoryID);
|
|
126
|
+
if (!next)
|
|
127
|
+
return;
|
|
128
|
+
const writes = PlanProductDefaultWrites({
|
|
129
|
+
RevenueRecognitionTypeID: this.RevenueRecognitionTypeID ?? null,
|
|
130
|
+
SubscriptionTypeID: this.SubscriptionTypeID ?? null,
|
|
131
|
+
IsTaxable: this.IsTaxable ?? null,
|
|
132
|
+
}, this.stampedDefaults, next);
|
|
133
|
+
if ('RevenueRecognitionTypeID' in writes)
|
|
134
|
+
this.RevenueRecognitionTypeID = writes.RevenueRecognitionTypeID;
|
|
135
|
+
if ('SubscriptionTypeID' in writes)
|
|
136
|
+
this.SubscriptionTypeID = writes.SubscriptionTypeID ?? null;
|
|
137
|
+
if ('IsTaxable' in writes)
|
|
138
|
+
this.IsTaxable = writes.IsTaxable ?? null;
|
|
139
|
+
this.stampedDefaults = { ...this.stampedDefaults, ...writes };
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
ProductEntity = __decorate([
|
|
143
|
+
RegisterClass(BaseEntity, ENTITY)
|
|
144
|
+
], ProductEntity);
|
|
145
|
+
export { ProductEntity };
|
|
146
|
+
//# sourceMappingURL=ProductEntity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductEntity.js","sourceRoot":"","sources":["../src/ProductEntity.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -36,6 +36,7 @@ export * from './OrderHeaderEntity.js';
|
|
|
36
36
|
export * from './OrderLineEntity.js';
|
|
37
37
|
export * from './SubscriptionTermEntity.js';
|
|
38
38
|
export * from './ProductPriceEntity.js';
|
|
39
|
+
export * from './ProductEntity.js';
|
|
39
40
|
export * from './OrderLineExtensionCompanion.js';
|
|
40
41
|
export * from './CustomerPaymentMethodEntity.js';
|
|
41
42
|
export * from './PaymentHeaderEntity.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAE9C;;;;;;;;;;;;;GAaG;AACH,cAAc,+BAA+B,CAAC;AAE9C;;;;;GAKG;AACH,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AAEvC;;;;GAIG;AACH,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAC5C;AAED;;;;;GAKG;AACH,cAAc,2BAA2B,CAAC;AAE1C;;;;GAIG;AACH,cAAc,yBAAyB,CAAC;AAExC;;;;;;;;;;;;GAYG;AACH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AAExC;;;;;;;GAOG;AACH,cAAc,aAAa,CAAC;AAE5B;;;;;;;;GAQG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAE9C;;;;;;;;;;;;;GAaG;AACH,cAAc,+BAA+B,CAAC;AAE9C;;;;;GAKG;AACH,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AAEvC;;;;GAIG;AACH,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAC5C;AAED;;;;;GAKG;AACH,cAAc,2BAA2B,CAAC;AAE1C;;;;GAIG;AACH,cAAc,yBAAyB,CAAC;AAExC;;;;;;;;;;;;GAYG;AACH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AAExC;;;;;;;GAOG;AACH,cAAc,aAAa,CAAC;AAE5B;;;;;;;;GAQG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,8BAA8B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -36,6 +36,7 @@ export * from './OrderHeaderEntity.js';
|
|
|
36
36
|
export * from './OrderLineEntity.js';
|
|
37
37
|
export * from './SubscriptionTermEntity.js';
|
|
38
38
|
export * from './ProductPriceEntity.js';
|
|
39
|
+
export * from './ProductEntity.js';
|
|
39
40
|
export * from './OrderLineExtensionCompanion.js';
|
|
40
41
|
export * from './CustomerPaymentMethodEntity.js';
|
|
41
42
|
export * from './PaymentHeaderEntity.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAE9C;;;;;;;;;;;;;GAaG;AACH,cAAc,+BAA+B,CAAC;AAE9C;;;;;GAKG;AACH,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AAEvC;;;;GAIG;AACH,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;AACrC,CAAC;AAED;;;;;GAKG;AACH,cAAc,2BAA2B,CAAC;AAE1C;;;;GAIG;AACH,cAAc,yBAAyB,CAAC;AAExC;;;;;;;;;;;;GAYG;AACH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,iGAAiG;AACjG,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AAExC;;;;;;;GAOG;AACH,cAAc,aAAa,CAAC;AAE5B;;;;;;;;GAQG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAE3C,0GAA0G;AAC1G,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAE9C;;;;;;;;;;;;;GAaG;AACH,cAAc,+BAA+B,CAAC;AAE9C;;;;;GAKG;AACH,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AAEvC;;;;GAIG;AACH,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;AACrC,CAAC;AAED;;;;;GAKG;AACH,cAAc,2BAA2B,CAAC;AAE1C;;;;GAIG;AACH,cAAc,yBAAyB,CAAC;AAExC;;;;;;;;;;;;GAYG;AACH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,iGAAiG;AACjG,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AAExC;;;;;;;GAOG;AACH,cAAc,aAAa,CAAC;AAE5B;;;;;;;;GAQG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAE3C,0GAA0G;AAC1G,cAAc,8BAA8B,CAAC"}
|
|
@@ -27,6 +27,22 @@ export type LinePriceChange = 'restored' | 'pinned';
|
|
|
27
27
|
* override, and saying "overridden" of it is the false statement golive #253 item 2 reported.
|
|
28
28
|
*/
|
|
29
29
|
export declare function IsLinePriceOverridden(line: mjBizAppsOrdersOrderLineEntity, engine: LineEngineDefault | null | undefined): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* The unit price a pricing pass must HOLD for this line, or null when the engine is to resolve one.
|
|
32
|
+
*
|
|
33
|
+
* The same test the save walk applies (`OrderPricingService.applyResolvedPrice`): a price being
|
|
34
|
+
* edited, or any positive stored price, is held. A saved line carrying a price therefore shows what
|
|
35
|
+
* it books, whether the price was typed as an override, written through the API, carried in by a
|
|
36
|
+
* conversion, apportioned from a bundle, or resolved from a rule that has since changed. Re-resolving
|
|
37
|
+
* such a line on screen is what golive #275 was: the screen showed today's rules price as the line
|
|
38
|
+
* total while the stored line and its journal entry carried the stored one.
|
|
39
|
+
*
|
|
40
|
+
* The rules' answer for a held line is still reported as the engine default, which is what the
|
|
41
|
+
* picker's Default row offers.
|
|
42
|
+
*
|
|
43
|
+
* Null is not zero. Zero would pin the line as deliberately free.
|
|
44
|
+
*/
|
|
45
|
+
export declare function StatedLineUnitPrice(line: mjBizAppsOrdersOrderLineEntity): number | null;
|
|
30
46
|
/**
|
|
31
47
|
* The named rules a picker offers BESIDES the default (golive #253 item 3).
|
|
32
48
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linePricePick.d.ts","sourceRoot":"","sources":["../../src/pricing/linePricePick.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACxF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAChD,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C,sGAAsG;AACtG,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,CAAC;AAIpD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,8BAA8B,EACpC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC7C,OAAO,CAKT;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACpC,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC7C,eAAe,EAAE,CAInB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,8BAA8B,EACpC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC7C,OAAO,CAET;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,8BAA8B,EACpC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC7C,OAAO,CAoBT;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,8BAA8B,EACpC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC7C,eAAe,GAAG,IAAI,CAQxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC3B,IAAI,EAAE,8BAA8B,EACpC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC7C,eAAe,GAAG,IAAI,CAQxB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,8BAA8B,GAAG,MAAM,CAGpF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACnC,IAAI,EAAE,8BAA8B,EACpC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC7C,OAAO,CAET;AAED,gGAAgG;AAChG,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,8BAA8B,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAIrG"}
|
|
1
|
+
{"version":3,"file":"linePricePick.d.ts","sourceRoot":"","sources":["../../src/pricing/linePricePick.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACxF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAChD,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C,sGAAsG;AACtG,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,CAAC;AAIpD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,8BAA8B,EACpC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC7C,OAAO,CAKT;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,8BAA8B,GAAG,MAAM,GAAG,IAAI,CAIvF;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACpC,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC7C,eAAe,EAAE,CAInB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,8BAA8B,EACpC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC7C,OAAO,CAET;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,8BAA8B,EACpC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC7C,OAAO,CAoBT;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,8BAA8B,EACpC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC7C,eAAe,GAAG,IAAI,CAQxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC3B,IAAI,EAAE,8BAA8B,EACpC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC7C,eAAe,GAAG,IAAI,CAQxB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,8BAA8B,GAAG,MAAM,CAGpF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACnC,IAAI,EAAE,8BAA8B,EACpC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC7C,OAAO,CAET;AAED,gGAAgG;AAChG,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,8BAA8B,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAIrG"}
|
|
@@ -41,6 +41,27 @@ export function IsLinePriceOverridden(line, engine) {
|
|
|
41
41
|
return false;
|
|
42
42
|
return engine ? !isEnginePrice(line, engine) : true;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* The unit price a pricing pass must HOLD for this line, or null when the engine is to resolve one.
|
|
46
|
+
*
|
|
47
|
+
* The same test the save walk applies (`OrderPricingService.applyResolvedPrice`): a price being
|
|
48
|
+
* edited, or any positive stored price, is held. A saved line carrying a price therefore shows what
|
|
49
|
+
* it books, whether the price was typed as an override, written through the API, carried in by a
|
|
50
|
+
* conversion, apportioned from a bundle, or resolved from a rule that has since changed. Re-resolving
|
|
51
|
+
* such a line on screen is what golive #275 was: the screen showed today's rules price as the line
|
|
52
|
+
* total while the stored line and its journal entry carried the stored one.
|
|
53
|
+
*
|
|
54
|
+
* The rules' answer for a held line is still reported as the engine default, which is what the
|
|
55
|
+
* picker's Default row offers.
|
|
56
|
+
*
|
|
57
|
+
* Null is not zero. Zero would pin the line as deliberately free.
|
|
58
|
+
*/
|
|
59
|
+
export function StatedLineUnitPrice(line) {
|
|
60
|
+
const unit = Number(line.UnitPrice ?? 0);
|
|
61
|
+
if (!anyFieldIsDirty(line, ['UnitPrice']) && !(unit > 0))
|
|
62
|
+
return null;
|
|
63
|
+
return unit;
|
|
64
|
+
}
|
|
44
65
|
/**
|
|
45
66
|
* The named rules a picker offers BESIDES the default (golive #253 item 3).
|
|
46
67
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linePricePick.js","sourceRoot":"","sources":["../../src/pricing/linePricePick.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAY9C,MAAM,OAAO,GAAG,CAAC,EAA6B,EAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAE3F;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACjC,IAAoC,EACpC,MAA4C;IAE5C,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACpD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACzF,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1E,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACpC,UAAsC,EACtC,MAA4C;IAE5C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC;IACpC,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACjC,IAAoC,EACpC,MAA4C;IAE5C,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,IAAI,IAAI,CAAC;AAC3C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAC9B,IAAoC,EACpC,MAA4C;IAE5C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,wFAAwF;QACxF,sEAAsE;QACtE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,gGAAgG;IAChG,4BAA4B;IAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACpD,IAAI,IAAI;QAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;IACrC,IAAI,KAAK;QAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;IACxC,KAAK,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAC/B,IAAoC,EACpC,KAAsB,EACtB,MAA4C;IAE5C,IAAI,MAAM,IAAI,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;QAC5F,OAAO,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;IACD,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC3B,IAAoC,EACpC,MAAc,EACd,WAA0B,EAC1B,MAA4C;IAE5C,IAAI,WAAW,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;QACzD,OAAO,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;IACD,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAoC;IACxE,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;IACzD,OAAO,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACnC,IAAoC,EACpC,MAA4C;IAE5C,OAAO,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAC9F,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,0BAA0B,CAAC,IAAoC,EAAE,MAAc;IAC3F,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,KAAK,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,EAAE,qBAAqB,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,SAAS,KAAK,CAAC,IAAoC,EAAE,SAAiB,EAAE,KAAc;IAClF,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC,KAAK,CAAC,KAAK;QAAE,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AACtD,CAAC"}
|
|
1
|
+
{"version":3,"file":"linePricePick.js","sourceRoot":"","sources":["../../src/pricing/linePricePick.ts"],"names":[],"mappings":"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"}
|