@happyvertical/smrt-commerce 0.53.4 → 0.53.6
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/AGENTS.md +19 -3
- package/README.md +29 -1
- package/agents/commercial-ui.md +78 -0
- package/agents/customer-vendor-ui.md +76 -0
- package/agents/invoice-calculations.md +17 -0
- package/agents/invoice-preparation.md +86 -0
- package/agents/invoice-quantity.md +46 -0
- package/agents/pricing-versions.md +28 -0
- package/agents/purchasing-ui.md +82 -0
- package/agents/quote-ui.md +82 -0
- package/dist/billing/units.d.ts +1 -7
- package/dist/billing/units.d.ts.map +1 -1
- package/dist/chunks/calculations-DPuldr1J.js +242 -0
- package/dist/chunks/calculations-DPuldr1J.js.map +1 -0
- package/dist/chunks/types-CRnln577.js.map +1 -1
- package/dist/chunks/{units-CpBepqG1.js → units-CJcAOQm1.js} +3 -39
- package/dist/chunks/units-CJcAOQm1.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +164 -44
- package/dist/index.js.map +1 -1
- package/dist/invoices.d.ts +3 -0
- package/dist/invoices.d.ts.map +1 -0
- package/dist/invoices.js +2 -0
- package/dist/manifest.json +66 -8
- package/dist/migrations/invoiceEditorStorage.d.ts +39 -0
- package/dist/migrations/invoiceEditorStorage.d.ts.map +1 -0
- package/dist/models/ContractLineItem.d.ts +1 -1
- package/dist/models/InvoiceLineItem.d.ts +18 -36
- package/dist/models/InvoiceLineItem.d.ts.map +1 -1
- package/dist/playground.js +201 -3
- package/dist/playground.js.map +1 -1
- package/dist/smrt-knowledge.json +109 -7
- package/dist/svelte/components/CustomerDetail.svelte +150 -0
- package/dist/svelte/components/CustomerDetail.svelte.d.ts +28 -0
- package/dist/svelte/components/CustomerDetail.svelte.d.ts.map +1 -0
- package/dist/svelte/components/CustomerDirectory.svelte +177 -0
- package/dist/svelte/components/CustomerDirectory.svelte.d.ts +42 -0
- package/dist/svelte/components/CustomerDirectory.svelte.d.ts.map +1 -0
- package/dist/svelte/components/CustomerForm.svelte +234 -0
- package/dist/svelte/components/CustomerForm.svelte.d.ts +44 -0
- package/dist/svelte/components/CustomerForm.svelte.d.ts.map +1 -0
- package/dist/svelte/components/InvoiceAllocationFields.svelte +72 -0
- package/dist/svelte/components/InvoiceAllocationFields.svelte.d.ts +8 -0
- package/dist/svelte/components/InvoiceAllocationFields.svelte.d.ts.map +1 -0
- package/dist/svelte/components/InvoiceCard.svelte +2 -2
- package/dist/svelte/components/InvoiceEditor.svelte +134 -0
- package/dist/svelte/components/InvoiceEditor.svelte.d.ts +8 -0
- package/dist/svelte/components/InvoiceEditor.svelte.d.ts.map +1 -0
- package/dist/svelte/components/InvoiceLineEditor.svelte +85 -0
- package/dist/svelte/components/InvoiceLineEditor.svelte.d.ts +8 -0
- package/dist/svelte/components/InvoiceLineEditor.svelte.d.ts.map +1 -0
- package/dist/svelte/components/InvoiceReview.svelte +23 -0
- package/dist/svelte/components/InvoiceReview.svelte.d.ts +10 -0
- package/dist/svelte/components/InvoiceReview.svelte.d.ts.map +1 -0
- package/dist/svelte/components/PartyAddressFields.svelte +95 -0
- package/dist/svelte/components/PartyAddressFields.svelte.d.ts +25 -0
- package/dist/svelte/components/PartyAddressFields.svelte.d.ts.map +1 -0
- package/dist/svelte/components/PartyContactFields.svelte +153 -0
- package/dist/svelte/components/PartyContactFields.svelte.d.ts +28 -0
- package/dist/svelte/components/PartyContactFields.svelte.d.ts.map +1 -0
- package/dist/svelte/components/PricingVersionDecision.svelte +88 -0
- package/dist/svelte/components/PricingVersionDecision.svelte.d.ts +35 -0
- package/dist/svelte/components/PricingVersionDecision.svelte.d.ts.map +1 -0
- package/dist/svelte/components/PricingVersionSummary.svelte +46 -0
- package/dist/svelte/components/PricingVersionSummary.svelte.d.ts +9 -0
- package/dist/svelte/components/PricingVersionSummary.svelte.d.ts.map +1 -0
- package/dist/svelte/components/PurchaseOrderEditor.svelte +210 -0
- package/dist/svelte/components/PurchaseOrderEditor.svelte.d.ts +79 -0
- package/dist/svelte/components/PurchaseOrderEditor.svelte.d.ts.map +1 -0
- package/dist/svelte/components/PurchaseSourceSelector.svelte +56 -0
- package/dist/svelte/components/PurchaseSourceSelector.svelte.d.ts +30 -0
- package/dist/svelte/components/PurchaseSourceSelector.svelte.d.ts.map +1 -0
- package/dist/svelte/components/PurchasingPlayground.svelte +133 -0
- package/dist/svelte/components/PurchasingPlayground.svelte.d.ts +9 -0
- package/dist/svelte/components/PurchasingPlayground.svelte.d.ts.map +1 -0
- package/dist/svelte/components/QuoteEditor.svelte +177 -0
- package/dist/svelte/components/QuoteEditor.svelte.d.ts +76 -0
- package/dist/svelte/components/QuoteEditor.svelte.d.ts.map +1 -0
- package/dist/svelte/components/QuotePlayground.svelte +108 -0
- package/dist/svelte/components/QuotePlayground.svelte.d.ts +10 -0
- package/dist/svelte/components/QuotePlayground.svelte.d.ts.map +1 -0
- package/dist/svelte/components/QuoteRevisionComparison.svelte +44 -0
- package/dist/svelte/components/QuoteRevisionComparison.svelte.d.ts +14 -0
- package/dist/svelte/components/QuoteRevisionComparison.svelte.d.ts.map +1 -0
- package/dist/svelte/components/QuoteRevisionHistory.svelte +55 -0
- package/dist/svelte/components/QuoteRevisionHistory.svelte.d.ts +15 -0
- package/dist/svelte/components/QuoteRevisionHistory.svelte.d.ts.map +1 -0
- package/dist/svelte/components/VendorDetail.svelte +134 -0
- package/dist/svelte/components/VendorDetail.svelte.d.ts +26 -0
- package/dist/svelte/components/VendorDetail.svelte.d.ts.map +1 -0
- package/dist/svelte/components/VendorDirectory.svelte +178 -0
- package/dist/svelte/components/VendorDirectory.svelte.d.ts +42 -0
- package/dist/svelte/components/VendorDirectory.svelte.d.ts.map +1 -0
- package/dist/svelte/components/VendorForm.svelte +224 -0
- package/dist/svelte/components/VendorForm.svelte.d.ts +42 -0
- package/dist/svelte/components/VendorForm.svelte.d.ts.map +1 -0
- package/dist/svelte/i18n.d.ts +102 -0
- package/dist/svelte/i18n.d.ts.map +1 -1
- package/dist/svelte/i18n.js +102 -0
- package/dist/svelte/index.d.ts +52 -0
- package/dist/svelte/index.d.ts.map +1 -1
- package/dist/svelte/index.js +49 -0
- package/dist/svelte/invoices/calculations.d.ts +121 -0
- package/dist/svelte/invoices/calculations.d.ts.map +1 -0
- package/dist/svelte/invoices/calculations.js +259 -0
- package/dist/svelte/invoices/currency.d.ts +9 -0
- package/dist/svelte/invoices/currency.d.ts.map +1 -0
- package/dist/svelte/invoices/currency.js +55 -0
- package/dist/svelte/invoices/fields.d.ts +6 -0
- package/dist/svelte/invoices/fields.d.ts.map +1 -0
- package/dist/svelte/invoices/fields.js +22 -0
- package/dist/svelte/invoices/messages.d.ts +53 -0
- package/dist/svelte/invoices/messages.d.ts.map +1 -0
- package/dist/svelte/invoices/messages.js +53 -0
- package/dist/svelte/invoices/types.d.ts +194 -0
- package/dist/svelte/invoices/types.d.ts.map +1 -0
- package/dist/svelte/invoices/types.js +1 -0
- package/dist/svelte/party-types.d.ts +203 -0
- package/dist/svelte/party-types.d.ts.map +1 -0
- package/dist/svelte/party-types.js +82 -0
- package/dist/svelte/playground/InvoicePreparationPreview.svelte +116 -0
- package/dist/svelte/playground/InvoicePreparationPreview.svelte.d.ts +4 -0
- package/dist/svelte/playground/InvoicePreparationPreview.svelte.d.ts.map +1 -0
- package/dist/svelte/playground/PartyFormPreview.svelte +211 -0
- package/dist/svelte/playground/PartyFormPreview.svelte.d.ts +8 -0
- package/dist/svelte/playground/PartyFormPreview.svelte.d.ts.map +1 -0
- package/dist/svelte/playground/PricingVersionPreview.svelte +55 -0
- package/dist/svelte/playground/PricingVersionPreview.svelte.d.ts +4 -0
- package/dist/svelte/playground/PricingVersionPreview.svelte.d.ts.map +1 -0
- package/dist/svelte/playground.d.ts +442 -3
- package/dist/svelte/playground.d.ts.map +1 -1
- package/dist/svelte/playground.js +199 -3
- package/dist/svelte/pricing-i18n.d.ts +10 -0
- package/dist/svelte/pricing-i18n.d.ts.map +1 -0
- package/dist/svelte/pricing-i18n.js +10 -0
- package/dist/svelte/pricing-types.d.ts +38 -0
- package/dist/svelte/pricing-types.d.ts.map +1 -0
- package/dist/svelte/pricing-types.js +1 -0
- package/dist/svelte/purchasing-i18n.d.ts +53 -0
- package/dist/svelte/purchasing-i18n.d.ts.map +1 -0
- package/dist/svelte/purchasing-i18n.js +53 -0
- package/dist/svelte/purchasing-types.d.ts +91 -0
- package/dist/svelte/purchasing-types.d.ts.map +1 -0
- package/dist/svelte/purchasing-types.js +13 -0
- package/dist/svelte/quote-i18n.d.ts +49 -0
- package/dist/svelte/quote-i18n.d.ts.map +1 -0
- package/dist/svelte/quote-i18n.js +49 -0
- package/dist/svelte/quote-types.d.ts +81 -0
- package/dist/svelte/quote-types.d.ts.map +1 -0
- package/dist/svelte/quote-types.js +51 -0
- package/dist/types/index.d.ts +13 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +150 -6
- package/dist/ui.js.map +1 -1
- package/package.json +25 -13
- package/dist/chunks/units-CpBepqG1.js.map +0 -1
|
@@ -37,21 +37,217 @@ const sampleUnbilledItems = [
|
|
|
37
37
|
category: 'QA',
|
|
38
38
|
},
|
|
39
39
|
];
|
|
40
|
+
const sampleCustomer = {
|
|
41
|
+
id: 'customer-riverstone',
|
|
42
|
+
profileId: 'profile-riverstone',
|
|
43
|
+
profile: {
|
|
44
|
+
id: 'profile-riverstone',
|
|
45
|
+
name: 'Riverstone Newsroom',
|
|
46
|
+
email: 'accounts@riverstone.example',
|
|
47
|
+
description: 'Independent newsroom and publishing customer.',
|
|
48
|
+
identityKind: 'business',
|
|
49
|
+
},
|
|
50
|
+
status: 'active',
|
|
51
|
+
customerType: 'wholesale',
|
|
52
|
+
creditLimitMinor: 250000,
|
|
53
|
+
paymentTerms: 'Net 30',
|
|
54
|
+
taxExempt: false,
|
|
55
|
+
defaultShippingAddress: {
|
|
56
|
+
street1: '88 River Avenue',
|
|
57
|
+
city: 'Edmonton',
|
|
58
|
+
state: 'AB',
|
|
59
|
+
postalCode: 'T5J 0K1',
|
|
60
|
+
country: 'Canada',
|
|
61
|
+
},
|
|
62
|
+
contacts: [
|
|
63
|
+
{
|
|
64
|
+
id: 'contact-avery',
|
|
65
|
+
name: 'Avery Chen',
|
|
66
|
+
label: 'Accounts payable',
|
|
67
|
+
email: 'avery@riverstone.example',
|
|
68
|
+
phone: '+1 780 555 0142',
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
};
|
|
72
|
+
const sampleVendor = {
|
|
73
|
+
id: 'vendor-northstar',
|
|
74
|
+
profileId: 'profile-northstar',
|
|
75
|
+
profile: {
|
|
76
|
+
id: 'profile-northstar',
|
|
77
|
+
name: 'Northstar Supply',
|
|
78
|
+
email: 'orders@northstar.example',
|
|
79
|
+
description: 'Regional materials and equipment supplier.',
|
|
80
|
+
identityKind: 'business',
|
|
81
|
+
},
|
|
82
|
+
status: 'active',
|
|
83
|
+
leadTimeDays: 7,
|
|
84
|
+
minimumOrderMinor: 50000,
|
|
85
|
+
paymentTerms: 'Net 45',
|
|
86
|
+
currency: 'CAD',
|
|
87
|
+
defaultContactEmail: 'orders@northstar.example',
|
|
88
|
+
defaultContactPhone: '+1 403 555 0188',
|
|
89
|
+
contacts: [
|
|
90
|
+
{
|
|
91
|
+
id: 'contact-morgan',
|
|
92
|
+
name: 'Morgan Lee',
|
|
93
|
+
label: 'Order desk',
|
|
94
|
+
email: 'morgan@northstar.example',
|
|
95
|
+
phone: '+1 403 555 0117',
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
};
|
|
99
|
+
const loadCustomerDirectory = () => import('./components/CustomerDirectory.svelte');
|
|
100
|
+
const loadCustomerDetail = () => import('./components/CustomerDetail.svelte');
|
|
101
|
+
const loadPartyFormPreview = () => import('./playground/PartyFormPreview.svelte');
|
|
40
102
|
const loadInvoiceActions = () => import('./components/InvoiceActions.svelte');
|
|
41
103
|
const loadInvoiceCard = () => import('./components/InvoiceCard.svelte');
|
|
42
104
|
const loadUnbilledItems = () => import('./components/UnbilledItems.svelte');
|
|
105
|
+
const loadVendorDirectory = () => import('./components/VendorDirectory.svelte');
|
|
106
|
+
const loadVendorDetail = () => import('./components/VendorDetail.svelte');
|
|
43
107
|
export default {
|
|
44
108
|
packageName: '@happyvertical/smrt-commerce',
|
|
45
109
|
displayName: COMMERCE_MODULE_META.displayName,
|
|
46
110
|
description: COMMERCE_MODULE_META.description,
|
|
47
111
|
moduleMeta: COMMERCE_MODULE_META,
|
|
48
112
|
entries: [
|
|
113
|
+
{
|
|
114
|
+
id: 'purchase-order-editor',
|
|
115
|
+
title: 'Purchase and award preparation',
|
|
116
|
+
description: 'Native allocation entry, review and retained uncertain-response recovery.',
|
|
117
|
+
loadComponent: () => import('./components/PurchasingPlayground.svelte'),
|
|
118
|
+
order: 30,
|
|
119
|
+
props: { reduction: false },
|
|
120
|
+
modes: { mock: { label: 'Interactive demo' } },
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
id: 'purchase-reduction',
|
|
124
|
+
title: 'Explicit allocation reduction',
|
|
125
|
+
description: 'Every retained allocation remains present; zero is explicit, never inferred from blank.',
|
|
126
|
+
loadComponent: () => import('./components/PurchasingPlayground.svelte'),
|
|
127
|
+
order: 31,
|
|
128
|
+
props: { reduction: true },
|
|
129
|
+
modes: { mock: { label: 'Interactive demo' } },
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
id: 'quote-editor',
|
|
133
|
+
title: 'Vendor quotation editor',
|
|
134
|
+
description: 'Edit, add/remove rows and recover a simulated rejected native submission.',
|
|
135
|
+
loadComponent: () => import('./components/QuotePlayground.svelte'),
|
|
136
|
+
order: 20,
|
|
137
|
+
props: { kind: 'vendor-quotation' },
|
|
138
|
+
modes: { mock: { label: 'Interactive demo' } },
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
id: 'customer-estimate-editor',
|
|
142
|
+
title: 'Customer estimate editor',
|
|
143
|
+
description: 'Customer estimate draft and retained revision comparison, without acceptance or budget writes.',
|
|
144
|
+
loadComponent: () => import('./components/QuotePlayground.svelte'),
|
|
145
|
+
order: 21,
|
|
146
|
+
props: { kind: 'customer-estimate' },
|
|
147
|
+
modes: { mock: { label: 'Interactive demo' } },
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
id: 'pricing-version-decision',
|
|
151
|
+
title: 'Pricing version decisions',
|
|
152
|
+
description: 'Compare retained estimates and rehearse a rejected decision without losing input.',
|
|
153
|
+
loadComponent: () => import('./playground/PricingVersionPreview.svelte'),
|
|
154
|
+
order: 30,
|
|
155
|
+
props: {},
|
|
156
|
+
modes: { mock: { label: 'Mock' } },
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
id: 'customer-directory',
|
|
160
|
+
title: 'Customer Directory',
|
|
161
|
+
description: 'Search, paging, responsive cards, and consumer-owned links.',
|
|
162
|
+
loadComponent: loadCustomerDirectory,
|
|
163
|
+
order: 1,
|
|
164
|
+
props: {
|
|
165
|
+
items: [{ data: sampleCustomer, href: '#customer-detail' }],
|
|
166
|
+
total: 26,
|
|
167
|
+
page: 1,
|
|
168
|
+
pageSize: 25,
|
|
169
|
+
nextHref: '#customer-page-2',
|
|
170
|
+
addHref: '#add-customer',
|
|
171
|
+
canCreate: true,
|
|
172
|
+
},
|
|
173
|
+
modes: { mock: { label: 'Mock' } },
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
id: 'customer-detail',
|
|
177
|
+
title: 'Customer Detail',
|
|
178
|
+
description: 'Profile identity, commercial terms, addresses, and contacts.',
|
|
179
|
+
loadComponent: loadCustomerDetail,
|
|
180
|
+
order: 2,
|
|
181
|
+
props: {
|
|
182
|
+
customer: sampleCustomer,
|
|
183
|
+
currency: 'CAD',
|
|
184
|
+
backHref: '#customers',
|
|
185
|
+
editHref: '#edit-customer',
|
|
186
|
+
canEdit: true,
|
|
187
|
+
},
|
|
188
|
+
modes: { mock: { label: 'Mock' } },
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
id: 'customer-form',
|
|
192
|
+
title: 'Customer Form',
|
|
193
|
+
description: 'Native create/edit submission with retained values and contacts.',
|
|
194
|
+
loadComponent: loadPartyFormPreview,
|
|
195
|
+
order: 3,
|
|
196
|
+
props: { kind: 'customer' },
|
|
197
|
+
modes: { mock: { label: 'Mock' } },
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
id: 'vendor-directory',
|
|
201
|
+
title: 'Vendor Directory',
|
|
202
|
+
description: 'Search, paging, empty/error states, and consumer-owned links.',
|
|
203
|
+
loadComponent: loadVendorDirectory,
|
|
204
|
+
order: 4,
|
|
205
|
+
props: {
|
|
206
|
+
items: [{ data: sampleVendor, href: '#vendor-detail' }],
|
|
207
|
+
total: 1,
|
|
208
|
+
addHref: '#add-vendor',
|
|
209
|
+
canCreate: true,
|
|
210
|
+
},
|
|
211
|
+
modes: { mock: { label: 'Mock' } },
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
id: 'vendor-detail',
|
|
215
|
+
title: 'Vendor Detail',
|
|
216
|
+
description: 'Profile identity, purchasing terms, and contact composition.',
|
|
217
|
+
loadComponent: loadVendorDetail,
|
|
218
|
+
order: 5,
|
|
219
|
+
props: {
|
|
220
|
+
vendor: sampleVendor,
|
|
221
|
+
backHref: '#vendors',
|
|
222
|
+
editHref: '#edit-vendor',
|
|
223
|
+
canEdit: true,
|
|
224
|
+
},
|
|
225
|
+
modes: { mock: { label: 'Mock' } },
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
id: 'vendor-form',
|
|
229
|
+
title: 'Vendor Form',
|
|
230
|
+
description: 'Native create/edit submission with retained currency text and contacts.',
|
|
231
|
+
loadComponent: loadPartyFormPreview,
|
|
232
|
+
order: 6,
|
|
233
|
+
props: { kind: 'vendor' },
|
|
234
|
+
modes: { mock: { label: 'Mock' } },
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
id: 'invoice-preparation',
|
|
238
|
+
title: 'Invoice Preparation',
|
|
239
|
+
description: 'Edit invoice lines, prices, discounts and tax, with optional source allocations and retained rejection recovery.',
|
|
240
|
+
loadComponent: () => import('./playground/InvoicePreparationPreview.svelte'),
|
|
241
|
+
order: 7,
|
|
242
|
+
props: {},
|
|
243
|
+
modes: { mock: { label: 'Mock' } },
|
|
244
|
+
},
|
|
49
245
|
{
|
|
50
246
|
id: 'invoice-card',
|
|
51
247
|
title: 'Invoice Card',
|
|
52
248
|
description: 'Compact invoice summary card used in billing and receivables views.',
|
|
53
249
|
loadComponent: loadInvoiceCard,
|
|
54
|
-
order:
|
|
250
|
+
order: 20,
|
|
55
251
|
props: {
|
|
56
252
|
invoice: sampleInvoice,
|
|
57
253
|
currency: 'CAD',
|
|
@@ -68,7 +264,7 @@ export default {
|
|
|
68
264
|
title: 'Invoice Actions',
|
|
69
265
|
description: 'Status-aware billing actions for sending, printing, exporting, and payment confirmation.',
|
|
70
266
|
loadComponent: loadInvoiceActions,
|
|
71
|
-
order:
|
|
267
|
+
order: 21,
|
|
72
268
|
props: {
|
|
73
269
|
status: 'sent',
|
|
74
270
|
onmarkpaid: noop,
|
|
@@ -86,7 +282,7 @@ export default {
|
|
|
86
282
|
title: 'Unbilled Items',
|
|
87
283
|
description: 'Selectable unbilled work list for creating a new invoice from accumulated items.',
|
|
88
284
|
loadComponent: loadUnbilledItems,
|
|
89
|
-
order:
|
|
285
|
+
order: 22,
|
|
90
286
|
props: {
|
|
91
287
|
items: sampleUnbilledItems,
|
|
92
288
|
currency: 'CAD',
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const PRICING_MESSAGES: {
|
|
2
|
+
readonly 'commerce.pricing.total': "commerce.pricing.total";
|
|
3
|
+
readonly 'commerce.pricing.unknown': "commerce.pricing.unknown";
|
|
4
|
+
readonly 'commerce.pricing.sources': "commerce.pricing.sources";
|
|
5
|
+
readonly 'commerce.pricing.no_sources': "commerce.pricing.no_sources";
|
|
6
|
+
readonly 'commerce.pricing.reason': "commerce.pricing.reason";
|
|
7
|
+
readonly 'commerce.pricing.read_only': "commerce.pricing.read_only";
|
|
8
|
+
readonly 'commerce.pricing.no_actions': "commerce.pricing.no_actions";
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=pricing-i18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricing-i18n.d.ts","sourceRoot":"","sources":["../../src/svelte/pricing-i18n.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;CAQ3B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { defineMessages } from '@happyvertical/smrt-ui/i18n';
|
|
2
|
+
export const PRICING_MESSAGES = defineMessages({
|
|
3
|
+
'commerce.pricing.total': 'Total',
|
|
4
|
+
'commerce.pricing.unknown': 'Amount unavailable',
|
|
5
|
+
'commerce.pricing.sources': 'Retained pricing sources',
|
|
6
|
+
'commerce.pricing.no_sources': 'No pricing sources supplied.',
|
|
7
|
+
'commerce.pricing.reason': 'Decision reason',
|
|
8
|
+
'commerce.pricing.read_only': 'This version is read-only.',
|
|
9
|
+
'commerce.pricing.no_actions': 'No decisions are currently available.',
|
|
10
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { QuoteRevision } from './quote-types.js';
|
|
2
|
+
/** A retained pricing source; application policy owns selection and eligibility. */
|
|
3
|
+
export interface PricingVersionSource {
|
|
4
|
+
/** Stable retained source identity. */
|
|
5
|
+
id: string;
|
|
6
|
+
/** Human-readable source label supplied by the consumer. */
|
|
7
|
+
label: string;
|
|
8
|
+
/** Included amount in the version currency's integer minor units; null is unknown. */
|
|
9
|
+
amountMinor: number | null;
|
|
10
|
+
/** Retained explanation, scope or exclusion text. */
|
|
11
|
+
description?: string;
|
|
12
|
+
}
|
|
13
|
+
/** Pricing version snapshot reuses the quote/estimate revision contract. */
|
|
14
|
+
export interface PricingVersionData extends QuoteRevision {
|
|
15
|
+
/** Retained pricing sources, already authorized for this viewer. */
|
|
16
|
+
sources?: readonly PricingVersionSource[];
|
|
17
|
+
}
|
|
18
|
+
/** Native submitter contract; the UI does not infer available decisions. */
|
|
19
|
+
export interface PricingDecisionAction {
|
|
20
|
+
/** Visible localized action label supplied by the application. */
|
|
21
|
+
label: string;
|
|
22
|
+
/** Exact native submitter field name. */
|
|
23
|
+
name: string;
|
|
24
|
+
/** Exact native submitter intent value. */
|
|
25
|
+
value: string;
|
|
26
|
+
/** Whether this action is unavailable in the current server-owned state. */
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
/** Optional native action URL overriding the enclosing form action. */
|
|
29
|
+
formAction?: string;
|
|
30
|
+
}
|
|
31
|
+
/** Caller-owned hidden entry; arrays preserve repeated names and order. */
|
|
32
|
+
export interface PricingHiddenField {
|
|
33
|
+
/** Exact native field name, including request/tenant/version identity if needed. */
|
|
34
|
+
name: string;
|
|
35
|
+
/** Exact retained value; never generated or rotated by the component. */
|
|
36
|
+
value: string;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=pricing-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricing-types.d.ts","sourceRoot":"","sources":["../../src/svelte/pricing-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,oFAAoF;AACpF,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,4EAA4E;AAC5E,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,oEAAoE;IACpE,OAAO,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAC3C;AAED,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACpC,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IACjC,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/** Localizable purchasing presentation text; domain names and policy remain caller-owned. */
|
|
2
|
+
export declare const P: {
|
|
3
|
+
readonly 'commerce.purchase.source': "commerce.purchase.source";
|
|
4
|
+
readonly 'commerce.purchase.choose': "commerce.purchase.choose";
|
|
5
|
+
readonly 'commerce.purchase.use': "commerce.purchase.use";
|
|
6
|
+
readonly 'commerce.purchase.empty_sources': "commerce.purchase.empty_sources";
|
|
7
|
+
readonly 'commerce.purchase.create': "commerce.purchase.create";
|
|
8
|
+
readonly 'commerce.purchase.amend': "commerce.purchase.amend";
|
|
9
|
+
readonly 'commerce.purchase.reduce': "commerce.purchase.reduce";
|
|
10
|
+
readonly 'commerce.purchase.boundary': "commerce.purchase.boundary";
|
|
11
|
+
readonly 'commerce.purchase.reduction_hint': "commerce.purchase.reduction_hint";
|
|
12
|
+
readonly 'commerce.purchase.instrument': "commerce.purchase.instrument";
|
|
13
|
+
readonly 'commerce.purchase.choose_instrument': "commerce.purchase.choose_instrument";
|
|
14
|
+
readonly 'commerce.purchase.allocations': "commerce.purchase.allocations";
|
|
15
|
+
readonly 'commerce.purchase.source_amount': "commerce.purchase.source_amount";
|
|
16
|
+
readonly 'commerce.purchase.minimum': "commerce.purchase.minimum";
|
|
17
|
+
readonly 'commerce.purchase.maximum': "commerce.purchase.maximum";
|
|
18
|
+
readonly 'commerce.purchase.unavailable': "commerce.purchase.unavailable";
|
|
19
|
+
readonly 'commerce.purchase.unknown': "commerce.purchase.unknown";
|
|
20
|
+
readonly 'commerce.purchase.empty_allocations': "commerce.purchase.empty_allocations";
|
|
21
|
+
readonly 'commerce.purchase.tax': "commerce.purchase.tax";
|
|
22
|
+
readonly 'commerce.purchase.scope': "commerce.purchase.scope";
|
|
23
|
+
readonly 'commerce.purchase.inclusions': "commerce.purchase.inclusions";
|
|
24
|
+
readonly 'commerce.purchase.exclusions': "commerce.purchase.exclusions";
|
|
25
|
+
readonly 'commerce.purchase.reason': "commerce.purchase.reason";
|
|
26
|
+
readonly 'commerce.purchase.review': "commerce.purchase.review";
|
|
27
|
+
readonly 'commerce.purchase.review_button': "commerce.purchase.review_button";
|
|
28
|
+
readonly 'commerce.purchase.confirm': "commerce.purchase.confirm";
|
|
29
|
+
readonly 'commerce.purchase.record': "commerce.purchase.record";
|
|
30
|
+
readonly 'commerce.purchase.edit': "commerce.purchase.edit";
|
|
31
|
+
readonly 'commerce.purchase.cancel': "commerce.purchase.cancel";
|
|
32
|
+
readonly 'commerce.purchase.add': "commerce.purchase.add";
|
|
33
|
+
readonly 'commerce.purchase.remove': "commerce.purchase.remove";
|
|
34
|
+
readonly 'commerce.purchase.readonly': "commerce.purchase.readonly";
|
|
35
|
+
readonly 'commerce.purchase.total': "commerce.purchase.total";
|
|
36
|
+
readonly 'commerce.purchase.uncertain': "commerce.purchase.uncertain";
|
|
37
|
+
readonly 'commerce.purchase.demo_added': "commerce.purchase.demo_added";
|
|
38
|
+
readonly 'commerce.purchase.demo_removed': "commerce.purchase.demo_removed";
|
|
39
|
+
readonly 'commerce.purchase.demo_invalid': "commerce.purchase.demo_invalid";
|
|
40
|
+
readonly 'commerce.purchase.demo_authority': "commerce.purchase.demo_authority";
|
|
41
|
+
readonly 'commerce.purchase.demo_review': "commerce.purchase.demo_review";
|
|
42
|
+
readonly 'commerce.purchase.demo_edit': "commerce.purchase.demo_edit";
|
|
43
|
+
readonly 'commerce.purchase.demo_uncertain': "commerce.purchase.demo_uncertain";
|
|
44
|
+
readonly 'commerce.purchase.demo_source': "commerce.purchase.demo_source";
|
|
45
|
+
readonly 'commerce.purchase.demo_notice': "commerce.purchase.demo_notice";
|
|
46
|
+
readonly 'commerce.purchase.demo_amendment': "commerce.purchase.demo_amendment";
|
|
47
|
+
readonly 'commerce.purchase.demo_reduction': "commerce.purchase.demo_reduction";
|
|
48
|
+
readonly 'commerce.purchase.demo_unavailable': "commerce.purchase.demo_unavailable";
|
|
49
|
+
readonly 'commerce.purchase.demo_order': "commerce.purchase.demo_order";
|
|
50
|
+
readonly 'commerce.purchase.demo_agreement': "commerce.purchase.demo_agreement";
|
|
51
|
+
readonly 'commerce.purchase.demo_additional': "commerce.purchase.demo_additional";
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=purchasing-i18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purchasing-i18n.d.ts","sourceRoot":"","sources":["../../src/svelte/purchasing-i18n.ts"],"names":[],"mappings":"AACA,6FAA6F;AAC7F,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DZ,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { defineMessages } from '@happyvertical/smrt-ui/i18n';
|
|
2
|
+
/** Localizable purchasing presentation text; domain names and policy remain caller-owned. */
|
|
3
|
+
export const P = defineMessages({
|
|
4
|
+
'commerce.purchase.source': 'Purchasing source',
|
|
5
|
+
'commerce.purchase.choose': 'Choose a vendor and source',
|
|
6
|
+
'commerce.purchase.use': 'Use this source',
|
|
7
|
+
'commerce.purchase.empty_sources': 'No sources available.',
|
|
8
|
+
'commerce.purchase.create': 'Prepare purchase or award',
|
|
9
|
+
'commerce.purchase.amend': 'Amend purchase or award',
|
|
10
|
+
'commerce.purchase.reduce': 'Reduce or close retained allocations',
|
|
11
|
+
'commerce.purchase.boundary': 'Selecting a source does not record a commitment. Recording requires a separate reviewed decision.',
|
|
12
|
+
'commerce.purchase.reduction_hint': 'Enter every retained allocation explicitly. Enter zero to close an allocation; leaving it blank does not mean zero.',
|
|
13
|
+
'commerce.purchase.instrument': 'Instrument',
|
|
14
|
+
'commerce.purchase.choose_instrument': 'Choose an instrument',
|
|
15
|
+
'commerce.purchase.allocations': 'Explicit allocation amounts, including tax',
|
|
16
|
+
'commerce.purchase.source_amount': 'Source amount',
|
|
17
|
+
'commerce.purchase.minimum': 'Minimum',
|
|
18
|
+
'commerce.purchase.maximum': 'Maximum',
|
|
19
|
+
'commerce.purchase.unavailable': 'Amount unavailable',
|
|
20
|
+
'commerce.purchase.unknown': 'Unknown',
|
|
21
|
+
'commerce.purchase.empty_allocations': 'No allocations supplied.',
|
|
22
|
+
'commerce.purchase.tax': 'Included tax',
|
|
23
|
+
'commerce.purchase.scope': 'Ordered or awarded scope',
|
|
24
|
+
'commerce.purchase.inclusions': 'Inclusions',
|
|
25
|
+
'commerce.purchase.exclusions': 'Exclusions',
|
|
26
|
+
'commerce.purchase.reason': 'Decision evidence or amendment reason',
|
|
27
|
+
'commerce.purchase.review': 'Review before recording',
|
|
28
|
+
'commerce.purchase.review_button': 'Review purchase or award',
|
|
29
|
+
'commerce.purchase.confirm': 'I explicitly authorize this purchase, award or recorded amendment.',
|
|
30
|
+
'commerce.purchase.record': 'Record reviewed decision',
|
|
31
|
+
'commerce.purchase.edit': 'Back to details',
|
|
32
|
+
'commerce.purchase.cancel': 'Cancel',
|
|
33
|
+
'commerce.purchase.add': 'Add allocation',
|
|
34
|
+
'commerce.purchase.remove': 'Remove {label}',
|
|
35
|
+
'commerce.purchase.readonly': 'Read only',
|
|
36
|
+
'commerce.purchase.total': 'Reviewed total',
|
|
37
|
+
'commerce.purchase.uncertain': 'Retry the same reviewed submission. Its request identity and review fingerprint are retained.',
|
|
38
|
+
'commerce.purchase.demo_added': 'Demo: allocation added; entered values retained.',
|
|
39
|
+
'commerce.purchase.demo_removed': 'Demo: allocation removed.',
|
|
40
|
+
'commerce.purchase.demo_invalid': 'Demo validation: enter valid CAD amounts and included tax no greater than the total. Your values are retained.',
|
|
41
|
+
'commerce.purchase.demo_authority': 'Local CAD demonstration only; the application server owns validation and authorization.',
|
|
42
|
+
'commerce.purchase.demo_review': 'Demo review of supplied source evidence.',
|
|
43
|
+
'commerce.purchase.demo_edit': 'Demo: return to editing; request identity retained.',
|
|
44
|
+
'commerce.purchase.demo_uncertain': 'Demo uncertain response. Values, request identity and review fingerprint retained; no financial record was written.',
|
|
45
|
+
'commerce.purchase.demo_source': 'Demo source selected; no commitment recorded.',
|
|
46
|
+
'commerce.purchase.demo_notice': 'This demonstration simulates preparation, review and an uncertain response. No purchase or award is written.',
|
|
47
|
+
'commerce.purchase.demo_amendment': 'Preview ordinary amendment',
|
|
48
|
+
'commerce.purchase.demo_reduction': 'Preview explicit reduction',
|
|
49
|
+
'commerce.purchase.demo_unavailable': 'Unavailable source',
|
|
50
|
+
'commerce.purchase.demo_order': 'Purchase order',
|
|
51
|
+
'commerce.purchase.demo_agreement': 'Agreement',
|
|
52
|
+
'commerce.purchase.demo_additional': 'Additional allocation {number}',
|
|
53
|
+
});
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { QuoteMoneyMinor } from './quote-types.js';
|
|
2
|
+
/** Caller-owned purchasing source identity and display evidence. */
|
|
3
|
+
export interface PurchaseSourceOption {
|
|
4
|
+
/** Stable source selection value, interpreted by the server. */
|
|
5
|
+
id: string;
|
|
6
|
+
/** Human source label. */
|
|
7
|
+
label: string;
|
|
8
|
+
/** Vendor display name; no identity migration is implied. */
|
|
9
|
+
vendor: string;
|
|
10
|
+
/** Caller-selected source availability; never an authorization grant. */
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
/** Reason unavailable, expiry/supersession or other evidence. */
|
|
13
|
+
notice?: string;
|
|
14
|
+
}
|
|
15
|
+
/** Fixed retained allocation or a caller-added draft row. */
|
|
16
|
+
export interface PurchaseAllocationDraft {
|
|
17
|
+
/** Stable allocation identity posted even for explicit zero. */
|
|
18
|
+
id: string;
|
|
19
|
+
/** Caller-provided allocation label; no construction-specific semantics. */
|
|
20
|
+
label: string;
|
|
21
|
+
/** Raw major-unit input string, including invalid rejected input. */
|
|
22
|
+
amount: string;
|
|
23
|
+
/** Whether this row exists in the predecessor; reductions must retain it. */
|
|
24
|
+
retained?: boolean;
|
|
25
|
+
/** Caller-selected requirement for non-reduction editing. */
|
|
26
|
+
required?: boolean;
|
|
27
|
+
/** Optional retained/source amount; null means unknown, not zero. */
|
|
28
|
+
sourceMinor?: number | null;
|
|
29
|
+
/** Optional caller-calculated lower bound, displayed in currency units. */
|
|
30
|
+
minimumMinor?: number;
|
|
31
|
+
/** Optional caller-calculated upper bound, displayed in currency units. */
|
|
32
|
+
maximumMinor?: number;
|
|
33
|
+
}
|
|
34
|
+
/** Input values remain strings until the application validates them. */
|
|
35
|
+
export interface PurchaseDraftValues {
|
|
36
|
+
/** Caller-defined instrument (e.g. purchase-order or subcontract). */
|
|
37
|
+
instrument: string;
|
|
38
|
+
/** Tax included in allocation amounts, as raw major-unit text. */
|
|
39
|
+
tax: string;
|
|
40
|
+
/** Explicit awarded or ordered scope. */
|
|
41
|
+
scope: string;
|
|
42
|
+
/** Included goods or services. */
|
|
43
|
+
inclusions: string;
|
|
44
|
+
/** Excluded goods or services. */
|
|
45
|
+
exclusions: string;
|
|
46
|
+
/** Human decision evidence or amendment reason. */
|
|
47
|
+
reason: string;
|
|
48
|
+
/** Every retained allocation, even when its submitted amount is empty or zero. */
|
|
49
|
+
allocations: PurchaseAllocationDraft[];
|
|
50
|
+
}
|
|
51
|
+
/** A server-produced review snapshot; rendering it never approves the command. */
|
|
52
|
+
export interface PurchaseReviewSnapshot {
|
|
53
|
+
/** Caller-owned fingerprint that the server validates against submitted values. */
|
|
54
|
+
fingerprint: string;
|
|
55
|
+
/** Human vendor/source label retained by the reviewed command. */
|
|
56
|
+
sourceLabel: string;
|
|
57
|
+
/** Exact reviewed total. */
|
|
58
|
+
total: QuoteMoneyMinor;
|
|
59
|
+
/** Included tax in the same currency and scale as total. */
|
|
60
|
+
taxMinor: number;
|
|
61
|
+
/** Retained awarded scope. */
|
|
62
|
+
scope: string;
|
|
63
|
+
/** Caller-owned status, exceptions or historical-source notices. */
|
|
64
|
+
notices?: string[];
|
|
65
|
+
}
|
|
66
|
+
/** Native POST field-name adaptation without changing an existing route contract. */
|
|
67
|
+
export interface PurchaseFieldNames {
|
|
68
|
+
/** Instrument field name. */
|
|
69
|
+
instrument: string;
|
|
70
|
+
/** Included tax field name. */
|
|
71
|
+
tax: string;
|
|
72
|
+
/** Scope field name. */
|
|
73
|
+
scope: string;
|
|
74
|
+
/** Inclusions field name. */
|
|
75
|
+
inclusions: string;
|
|
76
|
+
/** Exclusions field name. */
|
|
77
|
+
exclusions: string;
|
|
78
|
+
/** Decision/amendment reason field name. */
|
|
79
|
+
reason: string;
|
|
80
|
+
/** Repeated allocation ID and major-unit amount fields. */
|
|
81
|
+
allocationId: string;
|
|
82
|
+
/** Repeated major-unit input field. */
|
|
83
|
+
allocationAmount: string;
|
|
84
|
+
/** Caller review fingerprint name. */
|
|
85
|
+
fingerprint: string;
|
|
86
|
+
/** Explicit confirmation checkbox name. */
|
|
87
|
+
confirmation: string;
|
|
88
|
+
}
|
|
89
|
+
/** Conventional defaults; existing consumers can adapt every payload field. */
|
|
90
|
+
export declare const purchaseFieldNames: PurchaseFieldNames;
|
|
91
|
+
//# sourceMappingURL=purchasing-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purchasing-types.d.ts","sourceRoot":"","sources":["../../src/svelte/purchasing-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,oEAAoE;AACpE,MAAM,WAAW,oBAAoB;IACnC,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,6DAA6D;AAC7D,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wEAAwE;AACxE,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,WAAW,EAAE,uBAAuB,EAAE,CAAC;CACxC;AAED,kFAAkF;AAClF,MAAM,WAAW,sBAAsB;IACrC,mFAAmF;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,KAAK,EAAE,eAAe,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qFAAqF;AACrF,MAAM,WAAW,kBAAkB;IACjC,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,EAAE,kBAWhC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Conventional defaults; existing consumers can adapt every payload field. */
|
|
2
|
+
export const purchaseFieldNames = {
|
|
3
|
+
instrument: 'instrument',
|
|
4
|
+
tax: 'tax',
|
|
5
|
+
scope: 'scope',
|
|
6
|
+
inclusions: 'inclusions',
|
|
7
|
+
exclusions: 'exclusions',
|
|
8
|
+
reason: 'reason',
|
|
9
|
+
allocationId: 'allocationId',
|
|
10
|
+
allocationAmount: 'allocationAmount',
|
|
11
|
+
fingerprint: 'reviewFingerprint',
|
|
12
|
+
confirmation: 'confirm',
|
|
13
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** Localizable quotation and estimate presentation messages. */
|
|
2
|
+
export declare const Q: {
|
|
3
|
+
readonly 'commerce.quote.vendor': "commerce.quote.vendor";
|
|
4
|
+
readonly 'commerce.quote.estimate': "commerce.quote.estimate";
|
|
5
|
+
readonly 'commerce.quote.vendor_party': "commerce.quote.vendor_party";
|
|
6
|
+
readonly 'commerce.quote.customer_party': "commerce.quote.customer_party";
|
|
7
|
+
readonly 'commerce.quote.choose': "commerce.quote.choose";
|
|
8
|
+
readonly 'commerce.quote.reference': "commerce.quote.reference";
|
|
9
|
+
readonly 'commerce.quote.date': "commerce.quote.date";
|
|
10
|
+
readonly 'commerce.quote.expiry': "commerce.quote.expiry";
|
|
11
|
+
readonly 'commerce.quote.currency': "commerce.quote.currency";
|
|
12
|
+
readonly 'commerce.quote.total': "commerce.quote.total";
|
|
13
|
+
readonly 'commerce.quote.tax': "commerce.quote.tax";
|
|
14
|
+
readonly 'commerce.quote.scope': "commerce.quote.scope";
|
|
15
|
+
readonly 'commerce.quote.inclusions': "commerce.quote.inclusions";
|
|
16
|
+
readonly 'commerce.quote.exclusions': "commerce.quote.exclusions";
|
|
17
|
+
readonly 'commerce.quote.reason': "commerce.quote.reason";
|
|
18
|
+
readonly 'commerce.quote.lines': "commerce.quote.lines";
|
|
19
|
+
readonly 'commerce.quote.line': "commerce.quote.line";
|
|
20
|
+
readonly 'commerce.quote.description': "commerce.quote.description";
|
|
21
|
+
readonly 'commerce.quote.quantity': "commerce.quote.quantity";
|
|
22
|
+
readonly 'commerce.quote.rate': "commerce.quote.rate";
|
|
23
|
+
readonly 'commerce.quote.add': "commerce.quote.add";
|
|
24
|
+
readonly 'commerce.quote.remove': "commerce.quote.remove";
|
|
25
|
+
readonly 'commerce.quote.save': "commerce.quote.save";
|
|
26
|
+
readonly 'commerce.quote.cancel': "commerce.quote.cancel";
|
|
27
|
+
readonly 'commerce.quote.empty_lines': "commerce.quote.empty_lines";
|
|
28
|
+
readonly 'commerce.quote.vendor_hint': "commerce.quote.vendor_hint";
|
|
29
|
+
readonly 'commerce.quote.estimate_hint': "commerce.quote.estimate_hint";
|
|
30
|
+
readonly 'commerce.quote.history': "commerce.quote.history";
|
|
31
|
+
readonly 'commerce.quote.empty_history': "commerce.quote.empty_history";
|
|
32
|
+
readonly 'commerce.quote.unavailable': "commerce.quote.unavailable";
|
|
33
|
+
readonly 'commerce.quote.unknown': "commerce.quote.unknown";
|
|
34
|
+
readonly 'commerce.quote.compare': "commerce.quote.compare";
|
|
35
|
+
readonly 'commerce.quote.before': "commerce.quote.before";
|
|
36
|
+
readonly 'commerce.quote.after': "commerce.quote.after";
|
|
37
|
+
readonly 'commerce.quote.delta': "commerce.quote.delta";
|
|
38
|
+
readonly 'commerce.quote.incomparable': "commerce.quote.incomparable";
|
|
39
|
+
readonly 'commerce.quote.view': "commerce.quote.view";
|
|
40
|
+
readonly 'commerce.quote.readonly': "commerce.quote.readonly";
|
|
41
|
+
readonly 'commerce.quote.demo_notice': "commerce.quote.demo_notice";
|
|
42
|
+
readonly 'commerce.quote.demo_enable': "commerce.quote.demo_enable";
|
|
43
|
+
readonly 'commerce.quote.demo_readonly': "commerce.quote.demo_readonly";
|
|
44
|
+
readonly 'commerce.quote.demo_added': "commerce.quote.demo_added";
|
|
45
|
+
readonly 'commerce.quote.demo_removed': "commerce.quote.demo_removed";
|
|
46
|
+
readonly 'commerce.quote.demo_error': "commerce.quote.demo_error";
|
|
47
|
+
readonly 'commerce.quote.demo_rejected': "commerce.quote.demo_rejected";
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=quote-i18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quote-i18n.d.ts","sourceRoot":"","sources":["../../src/svelte/quote-i18n.ts"],"names":[],"mappings":"AAEA,gEAAgE;AAChE,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDZ,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { defineMessages } from '@happyvertical/smrt-ui/i18n';
|
|
2
|
+
/** Localizable quotation and estimate presentation messages. */
|
|
3
|
+
export const Q = defineMessages({
|
|
4
|
+
'commerce.quote.vendor': 'Vendor quotation',
|
|
5
|
+
'commerce.quote.estimate': 'Customer estimate',
|
|
6
|
+
'commerce.quote.vendor_party': 'Vendor',
|
|
7
|
+
'commerce.quote.customer_party': 'Customer',
|
|
8
|
+
'commerce.quote.choose': 'Choose a counterparty',
|
|
9
|
+
'commerce.quote.reference': 'Reference',
|
|
10
|
+
'commerce.quote.date': 'Document date',
|
|
11
|
+
'commerce.quote.expiry': 'Valid until',
|
|
12
|
+
'commerce.quote.currency': 'Currency',
|
|
13
|
+
'commerce.quote.total': 'Total, including tax',
|
|
14
|
+
'commerce.quote.tax': 'Tax included in total',
|
|
15
|
+
'commerce.quote.scope': 'Scope',
|
|
16
|
+
'commerce.quote.inclusions': 'Inclusions',
|
|
17
|
+
'commerce.quote.exclusions': 'Exclusions',
|
|
18
|
+
'commerce.quote.reason': 'Reason for revision',
|
|
19
|
+
'commerce.quote.lines': 'Source lines',
|
|
20
|
+
'commerce.quote.line': 'Line {number}',
|
|
21
|
+
'commerce.quote.description': 'Description',
|
|
22
|
+
'commerce.quote.quantity': 'Quantity',
|
|
23
|
+
'commerce.quote.rate': 'Unit rate',
|
|
24
|
+
'commerce.quote.add': 'Add line',
|
|
25
|
+
'commerce.quote.remove': 'Remove line {number}',
|
|
26
|
+
'commerce.quote.save': 'Save draft',
|
|
27
|
+
'commerce.quote.cancel': 'Cancel',
|
|
28
|
+
'commerce.quote.empty_lines': 'No source lines supplied.',
|
|
29
|
+
'commerce.quote.vendor_hint': 'Recording a quotation does not select pricing or award work.',
|
|
30
|
+
'commerce.quote.estimate_hint': 'Preparing an estimate does not accept it or change an approved budget.',
|
|
31
|
+
'commerce.quote.history': 'Revision history',
|
|
32
|
+
'commerce.quote.empty_history': 'No revisions yet.',
|
|
33
|
+
'commerce.quote.unavailable': 'Amount unavailable',
|
|
34
|
+
'commerce.quote.unknown': 'Unknown',
|
|
35
|
+
'commerce.quote.compare': 'Revision comparison',
|
|
36
|
+
'commerce.quote.before': 'Previous',
|
|
37
|
+
'commerce.quote.after': 'Current',
|
|
38
|
+
'commerce.quote.delta': 'Change in total',
|
|
39
|
+
'commerce.quote.incomparable': 'Totals cannot be compared across document kinds, currencies, scales or unknown pricing.',
|
|
40
|
+
'commerce.quote.view': 'View revision',
|
|
41
|
+
'commerce.quote.readonly': 'Read only',
|
|
42
|
+
'commerce.quote.demo_notice': 'This demo simulates validation failure locally. It does not save a quotation or estimate.',
|
|
43
|
+
'commerce.quote.demo_enable': 'Enable editing',
|
|
44
|
+
'commerce.quote.demo_readonly': 'Preview read only',
|
|
45
|
+
'commerce.quote.demo_added': 'Demo: line added; entered values retained.',
|
|
46
|
+
'commerce.quote.demo_removed': 'Demo: line removed; entered values retained.',
|
|
47
|
+
'commerce.quote.demo_error': 'Demo server validation: confirm the total.',
|
|
48
|
+
'commerce.quote.demo_rejected': 'Demo rejected submission. Values and request identity remain available for retry.',
|
|
49
|
+
});
|