@dropins/storefront-quote-management 0.0.1-alpha20 → 0.0.1-alpha22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/api/getStoreConfig/getStoreConfig.d.ts +4 -0
  2. package/api/getStoreConfig/graphql/StoreConfigQuery.d.ts +10 -0
  3. package/api/getStoreConfig/index.d.ts +10 -0
  4. package/api/index.d.ts +1 -0
  5. package/api.js +33 -19
  6. package/api.js.map +1 -1
  7. package/chunks/ChevronDown.js +4 -0
  8. package/chunks/ChevronDown.js.map +1 -0
  9. package/chunks/NegotiableQuoteFragment.js +129 -0
  10. package/chunks/NegotiableQuoteFragment.js.map +1 -1
  11. package/chunks/QuoteHistoryLog.js +1 -1
  12. package/chunks/QuoteHistoryLog.js.map +1 -1
  13. package/chunks/dateUtils.js +4 -0
  14. package/chunks/dateUtils.js.map +1 -0
  15. package/chunks/getQuoteTemplates.js +1 -1
  16. package/chunks/getQuoteTemplates.js.map +1 -1
  17. package/chunks/negotiableQuotes.js +1 -1
  18. package/chunks/negotiableQuotes.js.map +1 -1
  19. package/chunks/renameNegotiableQuote.js +1 -1
  20. package/chunks/renameNegotiableQuote.js.map +1 -1
  21. package/chunks/state.js +1 -1
  22. package/chunks/state.js.map +1 -1
  23. package/chunks/transform-quote.js +4 -0
  24. package/chunks/transform-quote.js.map +1 -0
  25. package/chunks/updateQuantities.js +1 -1
  26. package/chunks/updateQuantities.js.map +1 -1
  27. package/chunks/uploadFile.js +1 -1
  28. package/chunks/uploadFile.js.map +1 -1
  29. package/components/QuoteTemplatesListTable/QuoteTemplatesListTable.d.ts +0 -1
  30. package/containers/ItemsQuoted.js +1 -1
  31. package/containers/ManageNegotiableQuote.js +1 -1
  32. package/containers/ManageNegotiableQuote.js.map +1 -1
  33. package/containers/OrderSummary.js +1 -1
  34. package/containers/OrderSummary.js.map +1 -1
  35. package/containers/QuoteHistoryLog.js +1 -1
  36. package/containers/QuoteSummaryList/QuoteSummaryList.d.ts +51 -0
  37. package/containers/QuoteSummaryList/index.d.ts +11 -0
  38. package/containers/QuoteSummaryList.d.ts +3 -0
  39. package/containers/QuoteSummaryList.js +4 -0
  40. package/containers/QuoteSummaryList.js.map +1 -0
  41. package/containers/QuoteTemplatesListTable/QuoteTemplatesListTable.d.ts +0 -4
  42. package/containers/QuoteTemplatesListTable.js +1 -1
  43. package/containers/QuoteTemplatesListTable.js.map +1 -1
  44. package/containers/QuotesListTable.js +1 -1
  45. package/containers/QuotesListTable.js.map +1 -1
  46. package/containers/RequestNegotiableQuoteForm.js +1 -1
  47. package/containers/RequestNegotiableQuoteForm.js.map +1 -1
  48. package/containers/index.d.ts +1 -0
  49. package/data/models/__fixtures__/negotiableQuoteModel.d.ts +1 -0
  50. package/data/models/__fixtures__/storeConfigModel.d.ts +5 -0
  51. package/data/models/negotiable-quote-model.d.ts +33 -5
  52. package/data/models/store-config-model.d.ts +5 -2
  53. package/data/transforms/__fixtures__/negotiableQuoteData.d.ts +216 -0
  54. package/data/transforms/__fixtures__/storeConfigData.d.ts +31 -0
  55. package/data/transforms/index.d.ts +1 -0
  56. package/data/transforms/transform-store-config.d.ts +4 -0
  57. package/hooks/useQuoteSummaryData.d.ts +10 -0
  58. package/i18n/en_US.json.d.ts +13 -2
  59. package/lib/configurationTransformers.d.ts +27 -0
  60. package/lib/itemFormatters.d.ts +47 -0
  61. package/lib/priceCalculators.d.ts +41 -0
  62. package/package.json +1 -1
  63. package/render.js +1 -1
  64. package/render.js.map +1 -1
  65. package/utils/dateUtils.d.ts +6 -0
  66. package/chunks/fetch-graphql.js +0 -4
  67. package/chunks/fetch-graphql.js.map +0 -1
@@ -34,6 +34,10 @@ export declare const mockGraphQLResponse: {
34
34
  };
35
35
  };
36
36
  };
37
+ thumbnail: {
38
+ url: string;
39
+ label: string;
40
+ };
37
41
  };
38
42
  quantity: number;
39
43
  note_from_buyer: {
@@ -119,6 +123,7 @@ export declare const mockQuoteData: {
119
123
  template_id: null;
120
124
  template_name: null;
121
125
  items: ({
126
+ __typename: string;
122
127
  uid: string;
123
128
  product: {
124
129
  name: string;
@@ -126,19 +131,43 @@ export declare const mockQuoteData: {
126
131
  uid: string;
127
132
  stock_status: string;
128
133
  quantity: null;
134
+ thumbnail: {
135
+ url: string;
136
+ label: string;
137
+ };
129
138
  price_range: {
130
139
  maximum_price: {
131
140
  regular_price: {
141
+ currency: string;
132
142
  value: number;
133
143
  };
144
+ discount: {
145
+ amount_off: number;
146
+ percent_off: number;
147
+ };
134
148
  };
135
149
  };
150
+ price_tiers: {
151
+ quantity: number;
152
+ final_price: {
153
+ currency: string;
154
+ value: number;
155
+ };
156
+ discount: {
157
+ amount_off: number;
158
+ percent_off: number;
159
+ };
160
+ }[];
136
161
  };
137
162
  prices: {
138
163
  price: {
139
164
  currency: string;
140
165
  value: number;
141
166
  };
167
+ price_including_tax: {
168
+ currency: string;
169
+ value: number;
170
+ };
142
171
  original_item_price: {
143
172
  currency: string;
144
173
  value: number;
@@ -151,6 +180,10 @@ export declare const mockQuoteData: {
151
180
  currency: string;
152
181
  value: number;
153
182
  };
183
+ row_total_including_tax: {
184
+ currency: string;
185
+ value: number;
186
+ };
154
187
  catalog_discount: {
155
188
  amount_off: number;
156
189
  percent_off: number;
@@ -181,9 +214,20 @@ export declare const mockQuoteData: {
181
214
  note: string;
182
215
  note_uid: string;
183
216
  }[];
217
+ customizable_options: {
218
+ type: string;
219
+ label: string;
220
+ values: {
221
+ label: string;
222
+ value: string;
223
+ }[];
224
+ }[];
184
225
  configurable_options?: undefined;
226
+ configured_variant?: undefined;
185
227
  bundle_options?: undefined;
228
+ links?: undefined;
186
229
  } | {
230
+ __typename: string;
187
231
  uid: string;
188
232
  product: {
189
233
  name: string;
@@ -191,19 +235,30 @@ export declare const mockQuoteData: {
191
235
  uid: string;
192
236
  stock_status: string;
193
237
  quantity: null;
238
+ thumbnail: {
239
+ url: string;
240
+ label: string;
241
+ };
194
242
  price_range: {
195
243
  maximum_price: {
196
244
  regular_price: {
245
+ currency: string;
197
246
  value: number;
198
247
  };
248
+ discount?: undefined;
199
249
  };
200
250
  };
251
+ price_tiers?: undefined;
201
252
  };
202
253
  prices: {
203
254
  price: {
204
255
  currency: string;
205
256
  value: number;
206
257
  };
258
+ price_including_tax: {
259
+ currency: string;
260
+ value: number;
261
+ };
207
262
  original_item_price: {
208
263
  currency: string;
209
264
  value: number;
@@ -216,6 +271,10 @@ export declare const mockQuoteData: {
216
271
  currency: string;
217
272
  value: number;
218
273
  };
274
+ row_total_including_tax: {
275
+ currency: string;
276
+ value: number;
277
+ };
219
278
  catalog_discount: {
220
279
  amount_off: number;
221
280
  percent_off: number;
@@ -236,8 +295,47 @@ export declare const mockQuoteData: {
236
295
  note_uid: string;
237
296
  }[];
238
297
  note_from_seller: never[];
298
+ configured_variant: {
299
+ thumbnail: {
300
+ label: string;
301
+ url: string;
302
+ };
303
+ price_range: {
304
+ maximum_price: {
305
+ regular_price: {
306
+ currency: string;
307
+ value: number;
308
+ };
309
+ discount: {
310
+ amount_off: number;
311
+ percent_off: number;
312
+ };
313
+ };
314
+ };
315
+ price_tiers: {
316
+ quantity: number;
317
+ final_price: {
318
+ currency: string;
319
+ value: number;
320
+ };
321
+ discount: {
322
+ amount_off: number;
323
+ percent_off: number;
324
+ };
325
+ }[];
326
+ };
327
+ customizable_options: {
328
+ type: string;
329
+ label: string;
330
+ values: {
331
+ label: string;
332
+ value: string;
333
+ }[];
334
+ }[];
239
335
  bundle_options?: undefined;
336
+ links?: undefined;
240
337
  } | {
338
+ __typename: string;
241
339
  uid: string;
242
340
  product: {
243
341
  name: string;
@@ -245,19 +343,33 @@ export declare const mockQuoteData: {
245
343
  uid: string;
246
344
  stock_status: string;
247
345
  quantity: null;
346
+ thumbnail: {
347
+ url: string;
348
+ label: string;
349
+ };
248
350
  price_range: {
249
351
  maximum_price: {
250
352
  regular_price: {
353
+ currency: string;
251
354
  value: number;
252
355
  };
356
+ discount: {
357
+ amount_off: number;
358
+ percent_off: number;
359
+ };
253
360
  };
254
361
  };
362
+ price_tiers?: undefined;
255
363
  };
256
364
  prices: {
257
365
  price: {
258
366
  currency: string;
259
367
  value: number;
260
368
  };
369
+ price_including_tax: {
370
+ currency: string;
371
+ value: number;
372
+ };
261
373
  original_item_price: {
262
374
  currency: string;
263
375
  value: number;
@@ -270,6 +382,10 @@ export declare const mockQuoteData: {
270
382
  currency: string;
271
383
  value: number;
272
384
  };
385
+ row_total_including_tax: {
386
+ currency: string;
387
+ value: number;
388
+ };
273
389
  catalog_discount: {
274
390
  amount_off: number;
275
391
  percent_off: number;
@@ -315,7 +431,103 @@ export declare const mockQuoteData: {
315
431
  note: string;
316
432
  note_uid: string;
317
433
  }[];
434
+ customizable_options?: undefined;
435
+ configurable_options?: undefined;
436
+ configured_variant?: undefined;
437
+ links?: undefined;
438
+ } | {
439
+ __typename: string;
440
+ uid: string;
441
+ product: {
442
+ name: string;
443
+ sku: string;
444
+ uid: string;
445
+ stock_status: string;
446
+ quantity: null;
447
+ thumbnail: {
448
+ url: string;
449
+ label: string;
450
+ };
451
+ price_range: {
452
+ maximum_price: {
453
+ regular_price: {
454
+ currency: string;
455
+ value: number;
456
+ };
457
+ discount: {
458
+ amount_off: number;
459
+ percent_off: number;
460
+ };
461
+ };
462
+ };
463
+ price_tiers: {
464
+ quantity: number;
465
+ final_price: {
466
+ currency: string;
467
+ value: number;
468
+ };
469
+ discount: {
470
+ amount_off: number;
471
+ percent_off: number;
472
+ };
473
+ }[];
474
+ };
475
+ prices: {
476
+ price: {
477
+ currency: string;
478
+ value: number;
479
+ };
480
+ price_including_tax: {
481
+ currency: string;
482
+ value: number;
483
+ };
484
+ original_item_price: {
485
+ currency: string;
486
+ value: number;
487
+ };
488
+ original_row_total: {
489
+ currency: string;
490
+ value: number;
491
+ };
492
+ row_total: {
493
+ currency: string;
494
+ value: number;
495
+ };
496
+ row_total_including_tax: {
497
+ currency: string;
498
+ value: number;
499
+ };
500
+ catalog_discount: {
501
+ amount_off: number;
502
+ percent_off: number;
503
+ };
504
+ discounts: {
505
+ label: string;
506
+ value: number;
507
+ amount: {
508
+ currency: string;
509
+ value: number;
510
+ };
511
+ }[];
512
+ };
513
+ quantity: number;
514
+ links: {
515
+ sort_order: number;
516
+ title: string;
517
+ }[];
518
+ customizable_options: {
519
+ type: string;
520
+ label: string;
521
+ values: {
522
+ label: string;
523
+ value: string;
524
+ }[];
525
+ }[];
526
+ note_from_buyer?: undefined;
527
+ note_from_seller?: undefined;
318
528
  configurable_options?: undefined;
529
+ configured_variant?: undefined;
530
+ bundle_options?: undefined;
319
531
  })[];
320
532
  history: {
321
533
  uid: string;
@@ -446,6 +658,10 @@ export declare const mockNegotiableQuotesResponse: {
446
658
  };
447
659
  };
448
660
  };
661
+ thumbnail: {
662
+ url: string;
663
+ label: string;
664
+ };
449
665
  };
450
666
  quantity: number;
451
667
  note_from_buyer: {
@@ -0,0 +1,31 @@
1
+ /********************************************************************
2
+ * Copyright 2025 Adobe
3
+ * All Rights Reserved.
4
+ *
5
+ * NOTICE: Adobe permits you to use, modify, and distribute this
6
+ * file in accordance with the terms of the Adobe license agreement
7
+ * accompanying it.
8
+ *******************************************************************/
9
+ export declare const mockStoreConfigGraphQLResponse: {
10
+ cart_summary_display_quantity: number;
11
+ max_items_in_order_summary: number;
12
+ shopping_cart_display_zero_tax: boolean;
13
+ shopping_cart_display_subtotal: number;
14
+ shopping_cart_display_price: number;
15
+ shopping_cart_display_shipping: number;
16
+ shopping_cart_display_full_summary: boolean;
17
+ shopping_cart_display_grand_total: boolean;
18
+ configurable_thumbnail_source: string;
19
+ };
20
+ export declare const mockStoreConfigGraphQLResponseWithWrongValues: {
21
+ shopping_cart_display_subtotal: number;
22
+ shopping_cart_display_price: null;
23
+ shopping_cart_display_shipping: number;
24
+ cart_summary_display_quantity: number;
25
+ max_items_in_order_summary: number;
26
+ shopping_cart_display_zero_tax: boolean;
27
+ shopping_cart_display_full_summary: boolean;
28
+ shopping_cart_display_grand_total: boolean;
29
+ configurable_thumbnail_source: string;
30
+ };
31
+ //# sourceMappingURL=storeConfigData.d.ts.map
@@ -6,6 +6,7 @@
6
6
  * file in accordance with the terms of the Adobe license agreement
7
7
  * accompanying it.
8
8
  *******************************************************************/
9
+ export * from './transform-store-config';
9
10
  export * from './transform-customer';
10
11
  export * from './transform-quote';
11
12
  export * from './transform-quote-template';
@@ -0,0 +1,4 @@
1
+ import { StoreConfigModel } from '../models';
2
+
3
+ export declare function transformStoreConfig(data: any): StoreConfigModel;
4
+ //# sourceMappingURL=transform-store-config.d.ts.map
@@ -0,0 +1,10 @@
1
+ import { NegotiableQuoteModel } from '../data/models';
2
+
3
+ /**
4
+ * Custom hook to manage quote summary data and loading state
5
+ */
6
+ export declare const useQuoteSummaryData: () => {
7
+ quoteData: NegotiableQuoteModel | undefined;
8
+ loading: boolean;
9
+ };
10
+ //# sourceMappingURL=useQuoteSummaryData.d.ts.map
@@ -174,6 +174,18 @@ declare const _default: {
174
174
  "withoutTax": "Total excluding taxes",
175
175
  "saved": "Total saved"
176
176
  }
177
+ },
178
+ "QuoteSummaryList": {
179
+ "discountedPrice": "Discounted Price",
180
+ "discountPercentage": "{discount}% off",
181
+ "editQuote": "Edit",
182
+ "file": "{count} file",
183
+ "files": "{count} files",
184
+ "heading": "Negotiable Quote ({count})",
185
+ "listOfQuoteItems": "List of Quote Items",
186
+ "regularPrice": "Regular Price",
187
+ "savingsAmount": "Savings",
188
+ "viewMore": "View more"
177
189
  }
178
190
  },
179
191
  "historyLog": {
@@ -221,8 +233,7 @@ declare const _default: {
221
233
  "actions": "Action"
222
234
  },
223
235
  "QuoteTemplatesListTable": {
224
- "templateId": "ID",
225
- "name": "Name",
236
+ "name": "Template Name",
226
237
  "state": "State",
227
238
  "status": "Status",
228
239
  "validUntil": "Valid Until",
@@ -0,0 +1,27 @@
1
+ /********************************************************************
2
+ * Copyright 2025 Adobe
3
+ * All Rights Reserved.
4
+ *
5
+ * NOTICE: Adobe permits you to use, modify, and distribute this
6
+ * file in accordance with the terms of the Adobe license agreement
7
+ * accompanying it.
8
+ *******************************************************************/
9
+ /**
10
+ * Helper function to transform bundle options data to be ready for a CartItem SDK component
11
+ */
12
+ export declare const transformBundleOptions: (data: any) => {
13
+ [key: string]: any;
14
+ } | null;
15
+ /**
16
+ * Helper function to transform configurable options data to be ready for a CartItem SDK component
17
+ */
18
+ export declare const transformConfigurableOptions: (data: any) => {
19
+ [key: string]: any;
20
+ } | null;
21
+ /**
22
+ * Helper function to transform customizable options data to be ready for a CartItem SDK component
23
+ */
24
+ export declare const transformCustomizableOptions: (data: any) => {
25
+ [key: string]: any;
26
+ };
27
+ //# sourceMappingURL=configurationTransformers.d.ts.map
@@ -0,0 +1,47 @@
1
+ import { ImageProps } from '@dropins/tools/types/elsie/src/components';
2
+ import { SlotProps } from '@dropins/tools/types/elsie/src/lib';
3
+ import { NegotiableQuoteCartItem as NegotiableQuoteItemModel, StoreConfigModel } from '../data/models';
4
+ import { SwitchableAttributes } from '../containers/QuoteSummaryList/QuoteSummaryList';
5
+
6
+ export interface ItemFormatterOptions {
7
+ attributesToHide: SwitchableAttributes[];
8
+ routeProduct?: (item: NegotiableQuoteItemModel) => string;
9
+ slots?: {
10
+ Thumbnail?: SlotProps<{
11
+ item: NegotiableQuoteItemModel;
12
+ defaultImageProps: ImageProps;
13
+ }>;
14
+ ProductAttributes?: SlotProps<{
15
+ item: NegotiableQuoteItemModel;
16
+ }>;
17
+ };
18
+ dictionary: Record<string, string>;
19
+ quoteDisplaySettings?: StoreConfigModel['quoteDisplaySettings'];
20
+ }
21
+ /**
22
+ * Get image component for an item
23
+ */
24
+ export declare const getImage: (item: NegotiableQuoteItemModel, index: number, options: ItemFormatterOptions) => import("preact").JSX.Element | undefined;
25
+ /**
26
+ * Get title component for an item
27
+ */
28
+ export declare const getTitle: (item: NegotiableQuoteItemModel, options: ItemFormatterOptions) => import("preact").JSX.Element | undefined;
29
+ /**
30
+ * Get SKU component for an item
31
+ */
32
+ export declare const getSku: (item: NegotiableQuoteItemModel) => import("preact").JSX.Element;
33
+ /**
34
+ * Get product attributes slot for an item
35
+ */
36
+ export declare const getProductAttributes: (item: NegotiableQuoteItemModel, options: ItemFormatterOptions) => import("preact").JSX.Element;
37
+ /**
38
+ * Get configurations for an item (bundle, configurable, customizable options)
39
+ */
40
+ export declare const getConfigurations: (item: NegotiableQuoteItemModel, options: ItemFormatterOptions) => {
41
+ [x: string]: any;
42
+ } | undefined;
43
+ /**
44
+ * Get total excluding tax component for an item
45
+ */
46
+ export declare const getTotalExcludingTax: (item: NegotiableQuoteItemModel, options: ItemFormatterOptions) => import("preact").JSX.Element | undefined;
47
+ //# sourceMappingURL=itemFormatters.d.ts.map
@@ -0,0 +1,41 @@
1
+ import { PriceProps } from '@dropins/tools/types/elsie/src/components';
2
+ import { NegotiableQuoteCartItem as NegotiableQuoteItemModel, StoreConfigModel } from '../data/models';
3
+
4
+ export interface PriceCalculatorOptions {
5
+ dictionary: Record<string, string>;
6
+ quoteDisplaySettings?: StoreConfigModel['quoteDisplaySettings'];
7
+ }
8
+ /**
9
+ * Get price props for an item
10
+ */
11
+ export declare const getPriceProps: (item: NegotiableQuoteItemModel, options: PriceCalculatorOptions) => {
12
+ amount: number;
13
+ currency: string;
14
+ style: {
15
+ font: string;
16
+ };
17
+ 'data-testid': string;
18
+ };
19
+ /**
20
+ * Get savings amount props for an item
21
+ */
22
+ export declare const getSavingsAmount: (item: NegotiableQuoteItemModel) => {
23
+ amount: number | undefined;
24
+ currency: string | undefined;
25
+ style: {
26
+ font: string;
27
+ };
28
+ 'data-testid': string;
29
+ };
30
+ /**
31
+ * Calculate total price props and discount props for an item
32
+ */
33
+ export declare const getTotalPriceProps: (item: NegotiableQuoteItemModel, options: PriceCalculatorOptions) => {
34
+ totalProps: PriceProps & {
35
+ 'data-testid'?: string | undefined;
36
+ };
37
+ discountProps: (PriceProps & {
38
+ 'data-testid'?: string | undefined;
39
+ }) | null;
40
+ };
41
+ //# sourceMappingURL=priceCalculators.d.ts.map
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/storefront-quote-management", "version": "0.0.1-alpha20", "@dropins/tools": "1.6.0-beta2", "license": "SEE LICENSE IN LICENSE.md"}
1
+ {"name": "@dropins/storefront-quote-management", "version": "0.0.1-alpha22", "@dropins/tools": "1.6.0-beta2", "license": "SEE LICENSE IN LICENSE.md"}
package/render.js CHANGED
@@ -6,5 +6,5 @@ All Rights Reserved. */
6
6
  .quote-management-shipping-address-display{display:flex;flex-direction:column;gap:var(--spacing-xsmall);font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);color:var(--color-neutral-800)}.quote-management-shipping-address-display__field{margin:0;word-wrap:break-word;overflow-wrap:break-word}.quote-management-shipping-address-display__name{font:var(--type-body-2-emphasized-font);letter-spacing:var(--type-body-2-emphasized-letter-spacing)}.quote-management-shipping-address-display--empty{padding:var(--spacing-medium);background-color:var(--color-neutral-50)}.quote-management-shipping-address-display__no-address{margin:0;color:var(--color-neutral-700);font-style:italic}
7
7
  .quote-management-items-quoted{display:flex;flex-direction:column;gap:var(--spacing-big)}.quote-management-product-list-table-container{display:flex;flex-direction:column;gap:var(--spacing-small)}.quote-management-product-list-table__checkbox{align-self:center;justify-self:center}.quote-management-product-list-table__product-name-container{display:flex;flex-direction:column;gap:var(--spacing-xxsmall)}.quote-management-product-list-table__product-name{font:var(--type-body-1-font);letter-spacing:var(--type-body-1-letter-spacing)}.quote-management-product-list-table__configurable-option{display:flex;flex-direction:row;gap:var(--spacing-xxsmall)}.quote-management-product-list-table__configurable-option-label{font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing)}.quote-management-product-list-table__configurable-option-value{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing)}.quote-management-product-list-table__bundle-option{display:flex;flex-direction:column;gap:var(--spacing-xxsmall)}.quote-management-product-list-table__bundle-option-label{font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing)}.quote-management-product-list-table__bundle-option-values{display:flex;flex-direction:column;gap:var(--spacing-xxsmall)}.quote-management-product-list-table__bundle-option-value{display:flex;flex-direction:row;align-items:center;gap:var(--spacing-xxsmall);font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing)}.quote-management-product-list-table__bundle-option-value-original-price{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing)}.quote-management-product-list-table__sku{font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing)}.quote-management-product-list-table__quantity{font:var(--type-body-1-font);letter-spacing:var(--type-body-1-letter-spacing)}.quote-management-product-list-table__quantity-input{width:80px}@media only screen and (max-width: 767px){.quote-management-product-list-table__quantity-input{width:100%;max-width:200px}}.quote-management-product-list-table__discount-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--spacing-xxsmall);align-items:baseline}.quote-management-product-list-table-container__submit-container{display:flex;justify-content:flex-end}.quote-management-quote-prices-summary{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.quote-management-quote-prices-summary__entry{display:flex;flex-direction:row;justify-content:space-between;gap:10px;width:100%}.quote-management-quote-prices-summary__accordion,.quote-management-quote-prices-summary__label{flex-grow:1}.quote-management-quote-prices-summary__label--strong{font:var(--type-body-1-strong-font);letter-spacing:var(--type-body-1-strong-letter-spacing)}.quote-management-quote-prices-summary__value{flex-grow:1;text-align:right}.dropin-modal__body.dropin-modal__body--medium{padding:var(--spacing-small)}.confirmation-modal__content{display:flex;flex-direction:column}.confirmation-modal__banner{margin-left:calc(-1 * var(--spacing-small));margin-right:calc(-1 * var(--spacing-small));margin-top:calc(-1 * var(--spacing-small));margin-bottom:var(--spacing-medium)}.confirmation-modal__title{font:var(--type-headline-2-strong-font);letter-spacing:var(--type-headline-1-letter-spacing);color:var(--color-neutral-800);margin-bottom:var(--spacing-medium);padding-bottom:var(--spacing-medium)}.confirmation-modal__message{margin-bottom:var(--spacing-medium);text-align:left;color:var(--color-neutral-800)}.confirmation-modal__actions{display:flex;justify-content:flex-end;gap:var(--spacing-medium);margin-top:var(--spacing-big);margin-right:var(--spacing-small);padding-bottom:var(--spacing-small)}div.dropin-modal__body.dropin-modal__body--medium>div.dropin-modal__content{margin:var(--spacing-small) var(--spacing-small) var(--spacing-small) var(--spacing-small)!important}.dropin-modal:has(.confirmation-modal__banner) .dropin-modal__header,.dropin-modal__body:has(.confirmation-modal__banner) .dropin-modal__header{display:none!important;height:0!important;padding:0!important;margin:0!important}@media only screen and (max-width: 768px){.confirmation-modal__banner .dropin-in-line-alert{padding:var(--spacing-xsmall) var(--spacing-small)!important;gap:var(--spacing-xsmall)!important}.confirmation-modal__actions{flex-direction:column-reverse;gap:var(--spacing-small)}.confirmation-modal__actions button{width:100%}}
8
8
  .quote-management-actions-bar__container{container-type:inline-size;container-name:actions-bar-container}.quote-management-actions-bar{background:var(--color-neutral-200);padding:var(--spacing-xsmall);display:flex;gap:var(--spacing-small);justify-content:space-between;align-items:center}.quote-management-actions-bar__dropdown{width:max-content}.quote-management-actions-bar__buttons{display:flex}.quote-management-actions-bar__button>span{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}@container actions-bar-container (max-width: 768px){.quote-management-actions-bar{flex-direction:column;align-items:flex-start;gap:var(--spacing-xsmall)}.quote-management-actions-bar__dropdown{width:100%}.quote-management-actions-bar__buttons{flex-direction:column;align-items:flex-start;gap:var(--spacing-xsmall);width:100%}.quote-management-actions-bar__button{width:100%}}.quote-management-manage-negotiable-quote{display:grid;gap:var(--spacing-small);color:var(--color-neutral-800);width:100%;container-type:inline-size}.quote-management-manage-negotiable-quote__header{display:flex;gap:var(--spacing-big);align-items:center}.quote-management-manage-negotiable-quote__quote-name>*{font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing);margin:0}.quote-management-manage-negotiable-quote__quote-name-wrapper{display:flex;align-items:center;gap:var(--spacing-xsmall)}.quote-management-manage-negotiable-quote__quote-name-title{font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing);margin:0}.quote-management-manage-negotiable-quote__rename-button{background:none;border:none;padding:var(--spacing-xsmall);cursor:pointer;display:inline-flex;align-items:center}.quote-management-manage-negotiable-quote__rename-button:disabled{cursor:not-allowed;opacity:.5}.quote-management-manage-negotiable-quote__quote-status>*{font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing);border:2px solid var(--color-neutral-300);padding:var(--spacing-xxsmall)}.quote-management-manage-negotiable-quote__banner{width:100%}.quote-management-manage-negotiable-quote__details{display:flex;flex-direction:row;gap:var(--spacing-xsmall);justify-content:space-between;align-items:center;flex-wrap:wrap}.quote-management-manage-negotiable-quote__detail{display:flex;flex-wrap:wrap;gap:var(--spacing-xxsmall);align-items:baseline}.quote-management-manage-negotiable-quote__detail-title{font:var(--type-body-2-emphasized-font);letter-spacing:var(--type-body-2-emphasized-letter-spacing)}.quote-management-manage-negotiable-quote__detail-content{font:var(--type-body-2-font);letter-spacing:var(--type-body-2-letter-spacing)}.quote-management-manage-negotiable-quote__item-actions{justify-content:flex-start}.quote-management-manage-negotiable-quote__quote-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--spacing-xsmall)}.quote-management-manage-negotiable-quote__shipping-information-container{display:flex;flex-direction:column;gap:var(--spacing-xsmall)}.quote-management-manage-negotiable-quote__shipping-information-title>*{font:var(--type-body-2-emphasized-font);letter-spacing:var(--type-body-2-emphasized-letter-spacing);margin:0}.quote-management-manage-negotiable-quote__quote-comments-container{display:flex;flex-direction:column;gap:var(--spacing-xsmall)}.quote-management-manage-negotiable-quote__quote-comments-title>*{font:var(--type-body-2-emphasized-font);letter-spacing:var(--type-body-2-emphasized-letter-spacing);margin:0}.quote-management-manage-negotiable-quote__footer{display:flex;gap:var(--spacing-small);justify-content:flex-start}@container (max-width: 768px){.quote-management-manage-negotiable-quote__header{flex-direction:column}.quote-management-manage-negotiable-quote__action-bar{flex-direction:column;align-items:flex-start}.quote-management-manage-negotiable-quote__quote-actions{justify-content:flex-start}}.quote-order-summary{display:grid;position:relative;grid-auto-flow:row;padding:var(--spacing-medium)}.quote-order-summary__primary{background-color:var(--color-neutral-200)}.quote-order-summary__secondary{background-color:var(--color-neutral-50)}.quote-order-summary__content{display:grid;gap:var(--spacing-xsmall);margin-top:var(--spacing-small)}.quote-order-summary__heading{display:grid;font:var(--type-headline-2-strong-font);letter-spacing:var(--type-headline-2-strong-letter-spacing);color:var(--color-neutral-800);gap:var(--spacing-small)}.quote-order-summary__discount .quote-order-summary__label,.quote-order-summary__discount .quote-order-summary__price{color:var(--color-warning-800)}.quote-order-summary__taxes .dropin-divider:last-child{margin-bottom:0}.quote-order-summary__total{margin-top:var(--spacing-medium)}.quote-order-summary__heading .quote-order-summary__divider-primary,.quote-order-summary__heading .quote-order-summary__divider-secondary{width:100%;margin:0}.quote-order-summary__divider-secondary{margin:0}.quote-order-summary__taxEntry.quote-order-summary__entry{margin-top:0}.quote-order-summary__entry,.quote-order-summary__taxEntry{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xxsmall);align-items:center;color:var(--color-neutral-800)}.quote-order-summary__caption{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing);grid-column:span 2;color:var(--color-neutral-700)}.quote-order-summary__shipping--edit{display:grid;grid-column:1 / span 2;gap:var(--spacing-small);padding-top:var(--spacing-small);padding-left:var(--spacing-small)}a.quote-order-summary__shippingLink{text-decoration:underline}.quote-order-summary__shipping--hide{display:none!important}.quote-order-summary__shipping--edit button{width:var(--spacing-huge);justify-self:end}.quote-order-summary__shipping--zip,.quote-order-summary__shipping--state{background-color:var(--color-neutral-50)}.quote-order-summary__taxes .dropin-accordion-section__content-container{gap:var(--spacing-small);margin:var(--spacing-small) 0}.quote-order-summary__spinner{margin:0 auto;position:absolute;z-index:999;left:0;right:0;top:calc(50% - (var(--size) / 2));bottom:0}.quote-order-summary__label,.quote-order-summary__price{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.quote-order-summary__price{text-align:right;text-transform:uppercase}.quote-order-summary__label--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);color:var(--color-neutral-700)}.quote-order-summary__price--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}.quote-order-summary__label--bold,.quote-order-summary__price--bold{font:var(--type-body-1-emphasized-font);letter-spacing:var(--type-body-1-emphasized-letter-spacing)}.quote-management-quote-summary-list{container-type:inline-size;container-name:quote-summary-list}.quote-management-quote-summary-list__background--secondary{background-color:var(--color-neutral-200)}.quote-management-quote-summary-list__heading{display:grid;row-gap:var(--spacing-xsmall);padding:var(--spacing-medium) 0 0 0;font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing);color:var(--color-neutral-800)}.quote-management-quote-summary-list__heading--full-width{width:100%}.quote-management-quote-summary-list__heading-divider{width:100%;margin:var(--spacing-xxsmall) 0 var(--spacing-medium) 0}.quote-management-quote-summary-list__content{display:grid;grid-template-columns:1fr;padding:0}.quote-management-quote-summary-list__out-of-stock-message{margin:calc(-1 * var(--spacing-xsmall)) 0 var(--spacing-medium) 0}.quote-management-quote-summary-list-footer__action,.quote-management-quote-summary-list-footer__action:focus .quote-management-quote-summary-list-footer__action:active,.quote-management-quote-summary-list-footer__action:link{font:var(--type-body-2-strong-font);margin:0 auto;width:auto;margin-top:var(--spacing-medium);margin-bottom:var(--spacing-medium)}.quote-management-quote-summary-list-footer__action:hover{text-decoration:underline;text-underline-offset:var(--spacing-xxsmall);background:transparent;color:var(--color-brand-700)}.quote-management-quote-summary-list-footer__action:visited{background-color:transparent}.quote-management-quote-summary-list-accordion{border-left:var(--shape-border-width-2) solid var(--color-neutral-400);border-right:var(--shape-border-width-2) solid var(--color-neutral-400)}.quote-management-quote-summary-list-accordion__section{margin:var(--spacing-medium)}.dropin-cart-item__quantity{width:fit-content}@container quote-summary-list (width >= 768px){.quote-management-quote-summary-list__out-of-stock-message{margin:calc(-1 * var(--spacing-small)) 0 var(--spacing-xxbig) 0}}@container quote-summary-list (width >= 1024px){.quote-management-quote-summary-list__content,.quote-management-quote-summary-list__heading{grid-column:1 / span 8}.quote-management-quote-summary-list__heading--full-width{grid-column:1 / span 12}.quote-management-quote-summary-list__content{padding:0}}.quotes-list-table__empty-state{padding:var(--spacing-large);text-align:center;color:var(--color-neutral-600);border-top:var(--shape-border-width-1) solid var(--color-neutral-200)}.quotes-list-table__footer{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-medium);border-top:var(--shape-border-width-1) solid var(--color-neutral-200);gap:var(--spacing-medium)}.quotes-list-table__item-range{flex:1;color:var(--color-neutral-800);font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}.quotes-list-table__pagination{flex:0 0 auto;display:flex;justify-content:center}.quotes-list-table__page-size-picker{flex:1;display:flex;justify-content:flex-end;align-items:center;gap:var(--spacing-small);color:var(--color-neutral-800);font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}.quotes-list-table__page-size-picker>span{display:inline-flex;align-items:baseline}.quotes-list-table__page-size-picker .dropin-picker{display:inline-flex;align-items:center;margin:0 var(--spacing-xsmall);vertical-align:center}.quotes-list-table__page-size-picker .dropin-picker__select{height:auto;min-height:var(--sizing-medium);line-height:1.2;vertical-align:baseline}.quote-management-quote-templates-list-table,.quote-management-quote-templates-list-table__table{width:100%}.quote-templates-list-table__empty-state{padding:var(--spacing-large);text-align:center}.quote-templates-list-table__footer{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-medium) 0;gap:var(--spacing-medium);flex-wrap:wrap}.quote-templates-list-table__item-range{display:flex;align-items:center;color:var(--color-neutral-700);font-size:var(--type-body-2-font-size)}.quote-templates-list-table__pagination{display:flex;justify-content:center;flex:1}.quote-templates-list-table__page-size-picker{display:flex;align-items:center;gap:var(--spacing-xsmall);color:var(--color-neutral-700);font-size:var(--type-body-2-font-size)}.quote-management-tabbed-content{width:100%}.quote-management-tabbed-content__tabs{display:flex;margin-bottom:-1px}.quote-management-tabbed-content__tab{background:var(--color-neutral-100);color:var(--color-neutral-700);border:solid 1px var(--color-neutral-400);padding:var(--spacing-xsmall) var(--spacing-medium);margin-left:-1px;cursor:pointer;font:var(--type-body-2-font);letter-spacing:var(--type-body-2-letter-spacing)}.quote-management-tabbed-content__tab:first-child{margin-left:unset}.quote-management-tabbed-content__tab:hover{background:var(--color-neutral-300);color:var(--color-neutral-700)}.quote-management-tabbed-content__tab--active{background:var(--color-neutral-50);color:var(--color-neutral-800);border-bottom:none}.quote-management-tabbed-content__tab--active:hover{background:var(--color-neutral-50);color:var(--color-neutral-800)}.quote-management-tabbed-content__active-tab-content{background:var(--color-neutral-50);padding:var(--spacing-small);border:solid 1px var(--color-neutral-400)}.quote-management-rename-quote-modal__error-banner,.quote-management-rename-quote-modal__success-banner{margin-bottom:var(--spacing-medium)}.dropin-modal__header-title-content{font:var(--type-headline-2-strong-font);letter-spacing:var(--type-headline-1-letter-spacing);color:var(--color-neutral-800);margin-top:var(--spacing-small);margin-left:var(--spacing-small)}.quote-management-rename-quote-modal__content{display:flex;flex-direction:column;gap:var(--spacing-medium);margin-bottom:var(--spacing-medium);width:100%}.quote-management-rename-quote-modal__error-text{color:var(--color-alert-800);font:var(--type-body-2-default-font);margin-top:var(--spacing-xsmall)}.quote-management-rename-quote-modal__actions{display:flex;justify-content:flex-start;gap:var(--spacing-small);margin-top:var(--spacing-medium);width:100%}.quote-management-rename-quote-modal__cancel-button{order:1}.quote-management-rename-quote-modal__save-button{order:2}@media only screen and (min-width: 768px) and (max-width: 1023px){.quote-management-rename-quote-modal .dropin-modal__close-button{top:var(--spacing-small);right:var(--spacing-small)}.quote-management-rename-quote-modal__actions{gap:var(--spacing-medium)}}@media only screen and (min-width: 1024px){.quote-management-rename-quote-modal__actions{gap:var(--spacing-medium)}}@media only screen and (max-width: 767px){.quote-management-rename-quote-modal .dropin-modal__close-button{margin:var(--spacing-small)}.quote-management-rename-quote-modal__error-banner .dropin-in-line-alert{padding:var(--spacing-xsmall) var(--spacing-small)!important;gap:var(--spacing-xsmall)!important}.quote-management-rename-quote-modal__content{gap:var(--spacing-small)}.quote-management-rename-quote-modal__actions{flex-direction:column-reverse;gap:var(--spacing-small);margin-top:var(--spacing-small)}.quote-management-rename-quote-modal__actions button{width:100%}.quote-management-rename-quote-modal__cancel-button{order:2}.quote-management-rename-quote-modal__save-button{order:1}}`,{styleId:"quote-management"});
9
- import{jsx as t}from"@dropins/tools/preact-jsx-runtime.js";import{Render as n}from"@dropins/tools/lib.js";import{useState as i,useEffect as u}from"@dropins/tools/preact-hooks.js";import{UIProvider as d}from"@dropins/tools/components.js";import{events as l}from"@dropins/tools/event-bus.js";const c={cancel:"Cancel",confirm:"Confirm"},m={Request:{title:"Request a Quote",comment:"Comment",commentError:"Please add your comment",quoteName:"Quote name",quoteNameError:"Please add a quote name",attachmentsError:"Error uploading attachments",requestCta:"Request a Quote",saveDraftCta:"Save as draft",error:{header:"Error",unauthenticated:"Please sign in to request a quote.",unauthorized:"You are not authorized to request a quote.",missingCart:"Could not find a valid cart."},success:{header:"Success",submitted:"Quote request submitted successfully!",draftSaved:"Quote saved as draft successfully!"}},Manage:{createdLabel:"Created:",salesRepLabel:"Sales Rep:",expiresLabel:"Expires:",actionsLabel:"Actions",actions:{remove:"Remove"},bannerTitle:"Alert",bannerStatusMessages:{submitted:"This quote is currently locked for editing. It will become available once released by the Merchant.",pending:"This quote is currently locked for editing. It will become available once released by the Merchant.",expired:"Your quote has expired and the product prices have been updated as per the latest prices in your catalog. You can either re-submit the quote to seller for further negotiation or go to checkout."},actionButtons:{close:"Close quote",delete:"Delete quote",print:"Print quote",createTemplate:"Create quote template",createCopy:"Create copy",sendForReview:"Send for review"},confirmationModal:{cancel:"Cancel",delete:{title:"Delete Quote",message:"Are you sure you want to delete this quote?",confirm:"Delete",errorHeading:"Error",errorFallback:"Failed to delete quote",successHeading:"Success",successDescription:"Quote has been successfully deleted"},close:{message:"Are you sure you want to close this quote?",confirm:"Close",confirmLoading:"Closing...",successHeading:"Success",successDescription:"Quote has been successfully closed"}},shippingInformation:{title:"Shipping Information"},shippingAddress:{noAddress:"No shipping address has been set for this quote."},quoteComments:{title:"Quote Comments",placeholder:"Add your comment",emptyState:"No comments yet",by:"by"},productListTable:{headers:{productName:"Product name",sku:"SKU",price:"Price",quantity:"Quantity",discount:"Discount",subtotal:"Subtotal",actions:"Actions"},submitButton:"Update",actions:{editNoteToSeller:"Edit note to seller",remove:"Remove"}},rename:{title:"Rename Quote",quoteNameLabel:"Quote name",reasonLabel:"Reason for change",renameButton:"Rename",cancelButton:"Cancel",errorHeading:"Error",quoteNameRequired:"Quote name is required",errorDefault:"Failed to rename quote. Please try again.",successHeading:"Success",successMessage:"Quote renamed successfully!"},tabbedContent:{itemsQuoted:"Items quoted",comments:"Comments",historyLog:"History log"},quotePricesSummary:{subtotal:{excludingTax:"Quote Subtotal (excluding tax)"},appliedTaxes:"Applied Taxes",grandTotal:{includingTax:"Quote Grand Total (including tax)"}},updateQuantitiesModal:{title:"Change Quote Items",description:"Making changes to any quote item changes the terms of the quote. After you update the quote, return it to the seller for review and approval.",cancelButton:"Cancel",updateButton:"Apply Changes",successHeading:"Success",successMessage:"Quote quantities have been successfully updated.",errorHeading:"Error",errorMessage:"Failed to update quote quantities. Please try again."}},PriceSummary:{taxToBeDetermined:"TBD",orderSummary:"Order Summary",giftOptionsTax:{printedCard:{title:"Printed card",inclTax:"Including taxes",exclTax:"excluding taxes"},itemGiftWrapping:{title:"Item gift wrapping",inclTax:"Including taxes",exclTax:"excluding taxes"},orderGiftWrapping:{title:"Order gift wrapping",inclTax:"Including taxes",exclTax:"excluding taxes"}},subTotal:{label:"Subtotal",withTaxes:"Including taxes",withoutTaxes:"excluding taxes"},shipping:{label:"Shipping",withTaxes:"Including taxes",withoutTaxes:"excluding taxes"},taxes:{total:"Tax Total",totalOnly:"Tax",breakdown:"Taxes",showBreakdown:"Show Tax Breakdown",hideBreakdown:"Hide Tax Breakdown"},total:{free:"Free",label:"Total",withoutTax:"Total excluding taxes",saved:"Total saved"}}},p={changeTypes:{created:"Quote Created",updated:"Quote Updated",statusChanged:"Status Changed",commentAdded:"Comment Added",expirationChanged:"Expiration Changed"},noteTypes:{buyerNoteAdded:"Buyer Note Added",sellerNoteAdded:"Seller Note Added"},authorLabels:{buyer:"(Buyer)",seller:"(Seller)"},changeDetails:{comment:'Comment: "{comment}"',statusChangedFromTo:"Status changed from {oldStatus} to {newStatus}",statusSetTo:"Status set to {newStatus}",expirationChangedFromTo:"Expiration changed from {oldExpiration} to {newExpiration}",expirationSetTo:"Expiration set to {newExpiration}",totalChangedFromTo:"Total changed from {oldTotal} to {newTotal}",customChange:'{title}: changed from "{oldValue}" to "{newValue}"',productsRemovedFromCatalog:"Products removed from catalog: {products}",productsRemovedFromQuote:"Products removed from quote: {products}",noDetailsAvailable:"No details available"},emptyState:"No history available for this quote."},g={never:"Never"},h={QuotesListTable:{quoteName:"Quote Name",created:"Created",createdBy:"Created By",status:"Status",lastUpdated:"Last Updated",quoteTemplate:"Quote Template",quoteTotal:"Quote Total",actions:"Action"},QuoteTemplatesListTable:{templateId:"ID",name:"Name",state:"State",status:"Status",validUntil:"Valid Until",minQuoteTotal:"Min. Quote Total (Negotiated)",ordersPlaced:"Orders Placed",lastOrdered:"Last Ordered",actions:"Action"}},x={ConfirmationModal:c,NegotiableQuote:m,historyLog:p,dateUtils:g,QuoteManagement:h},f={default:x},T=({children:a})=>{const[o,s]=i("en_US");return u(()=>{const e=l.on("locale",r=>{s(r)},{eager:!0});return()=>{e==null||e.off()}},[]),t(d,{lang:o,langDefinitions:f,children:a})},Q=new n(t(T,{}));export{Q as render};
9
+ import{jsx as t}from"@dropins/tools/preact-jsx-runtime.js";import{Render as n}from"@dropins/tools/lib.js";import{useState as i,useEffect as u}from"@dropins/tools/preact-hooks.js";import{UIProvider as l}from"@dropins/tools/components.js";import{events as d}from"@dropins/tools/event-bus.js";const c={cancel:"Cancel",confirm:"Confirm"},m={Request:{title:"Request a Quote",comment:"Comment",commentError:"Please add your comment",quoteName:"Quote name",quoteNameError:"Please add a quote name",attachmentsError:"Error uploading attachments",requestCta:"Request a Quote",saveDraftCta:"Save as draft",error:{header:"Error",unauthenticated:"Please sign in to request a quote.",unauthorized:"You are not authorized to request a quote.",missingCart:"Could not find a valid cart."},success:{header:"Success",submitted:"Quote request submitted successfully!",draftSaved:"Quote saved as draft successfully!"}},Manage:{createdLabel:"Created:",salesRepLabel:"Sales Rep:",expiresLabel:"Expires:",actionsLabel:"Actions",actions:{remove:"Remove"},bannerTitle:"Alert",bannerStatusMessages:{submitted:"This quote is currently locked for editing. It will become available once released by the Merchant.",pending:"This quote is currently locked for editing. It will become available once released by the Merchant.",expired:"Your quote has expired and the product prices have been updated as per the latest prices in your catalog. You can either re-submit the quote to seller for further negotiation or go to checkout."},actionButtons:{close:"Close quote",delete:"Delete quote",print:"Print quote",createTemplate:"Create quote template",createCopy:"Create copy",sendForReview:"Send for review"},confirmationModal:{cancel:"Cancel",delete:{title:"Delete Quote",message:"Are you sure you want to delete this quote?",confirm:"Delete",errorHeading:"Error",errorFallback:"Failed to delete quote",successHeading:"Success",successDescription:"Quote has been successfully deleted"},close:{message:"Are you sure you want to close this quote?",confirm:"Close",confirmLoading:"Closing...",successHeading:"Success",successDescription:"Quote has been successfully closed"}},shippingInformation:{title:"Shipping Information"},shippingAddress:{noAddress:"No shipping address has been set for this quote."},quoteComments:{title:"Quote Comments",placeholder:"Add your comment",emptyState:"No comments yet",by:"by"},productListTable:{headers:{productName:"Product name",sku:"SKU",price:"Price",quantity:"Quantity",discount:"Discount",subtotal:"Subtotal",actions:"Actions"},submitButton:"Update",actions:{editNoteToSeller:"Edit note to seller",remove:"Remove"}},rename:{title:"Rename Quote",quoteNameLabel:"Quote name",reasonLabel:"Reason for change",renameButton:"Rename",cancelButton:"Cancel",errorHeading:"Error",quoteNameRequired:"Quote name is required",errorDefault:"Failed to rename quote. Please try again.",successHeading:"Success",successMessage:"Quote renamed successfully!"},tabbedContent:{itemsQuoted:"Items quoted",comments:"Comments",historyLog:"History log"},quotePricesSummary:{subtotal:{excludingTax:"Quote Subtotal (excluding tax)"},appliedTaxes:"Applied Taxes",grandTotal:{includingTax:"Quote Grand Total (including tax)"}},updateQuantitiesModal:{title:"Change Quote Items",description:"Making changes to any quote item changes the terms of the quote. After you update the quote, return it to the seller for review and approval.",cancelButton:"Cancel",updateButton:"Apply Changes",successHeading:"Success",successMessage:"Quote quantities have been successfully updated.",errorHeading:"Error",errorMessage:"Failed to update quote quantities. Please try again."}},PriceSummary:{taxToBeDetermined:"TBD",orderSummary:"Order Summary",giftOptionsTax:{printedCard:{title:"Printed card",inclTax:"Including taxes",exclTax:"excluding taxes"},itemGiftWrapping:{title:"Item gift wrapping",inclTax:"Including taxes",exclTax:"excluding taxes"},orderGiftWrapping:{title:"Order gift wrapping",inclTax:"Including taxes",exclTax:"excluding taxes"}},subTotal:{label:"Subtotal",withTaxes:"Including taxes",withoutTaxes:"excluding taxes"},shipping:{label:"Shipping",withTaxes:"Including taxes",withoutTaxes:"excluding taxes"},taxes:{total:"Tax Total",totalOnly:"Tax",breakdown:"Taxes",showBreakdown:"Show Tax Breakdown",hideBreakdown:"Hide Tax Breakdown"},total:{free:"Free",label:"Total",withoutTax:"Total excluding taxes",saved:"Total saved"}},QuoteSummaryList:{discountedPrice:"Discounted Price",discountPercentage:"{discount}% off",editQuote:"Edit",file:"{count} file",files:"{count} files",heading:"Negotiable Quote ({count})",listOfQuoteItems:"List of Quote Items",regularPrice:"Regular Price",savingsAmount:"Savings",viewMore:"View more"}},g={changeTypes:{created:"Quote Created",updated:"Quote Updated",statusChanged:"Status Changed",commentAdded:"Comment Added",expirationChanged:"Expiration Changed"},noteTypes:{buyerNoteAdded:"Buyer Note Added",sellerNoteAdded:"Seller Note Added"},authorLabels:{buyer:"(Buyer)",seller:"(Seller)"},changeDetails:{comment:'Comment: "{comment}"',statusChangedFromTo:"Status changed from {oldStatus} to {newStatus}",statusSetTo:"Status set to {newStatus}",expirationChangedFromTo:"Expiration changed from {oldExpiration} to {newExpiration}",expirationSetTo:"Expiration set to {newExpiration}",totalChangedFromTo:"Total changed from {oldTotal} to {newTotal}",customChange:'{title}: changed from "{oldValue}" to "{newValue}"',productsRemovedFromCatalog:"Products removed from catalog: {products}",productsRemovedFromQuote:"Products removed from quote: {products}",noDetailsAvailable:"No details available"},emptyState:"No history available for this quote."},p={never:"Never"},h={QuotesListTable:{quoteName:"Quote Name",created:"Created",createdBy:"Created By",status:"Status",lastUpdated:"Last Updated",quoteTemplate:"Quote Template",quoteTotal:"Quote Total",actions:"Action"},QuoteTemplatesListTable:{name:"Template Name",state:"State",status:"Status",validUntil:"Valid Until",minQuoteTotal:"Min. Quote Total (Negotiated)",ordersPlaced:"Orders Placed",lastOrdered:"Last Ordered",actions:"Action"}},f={ConfirmationModal:c,NegotiableQuote:m,historyLog:g,dateUtils:p,QuoteManagement:h},x={default:f},T=({children:a})=>{const[o,s]=i("en_US");return u(()=>{const e=d.on("locale",r=>{s(r)},{eager:!0});return()=>{e==null||e.off()}},[]),t(l,{lang:o,langDefinitions:x,children:a})},Q=new n(t(T,{}));export{Q as render};
10
10
  //# sourceMappingURL=render.js.map
package/render.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sources":["/@dropins/storefront-quote-management/src/render/Provider.tsx","/@dropins/storefront-quote-management/src/render/render.tsx"],"sourcesContent":["/********************************************************************\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this\n * file in accordance with the terms of the Adobe license agreement\n * accompanying it.\n *******************************************************************/\n\nimport { FunctionComponent } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { UIProvider } from '@adobe-commerce/elsie/components';\nimport { Lang } from '@adobe-commerce/elsie/i18n';\nimport { events } from '@adobe-commerce/event-bus';\n\nimport en_US from '../i18n/en_US.json';\n\n// Langs\nconst langDefinitions = {\n default: en_US,\n};\n\ninterface CartProviderProps {\n children?: any;\n}\n\nexport const Provider: FunctionComponent<CartProviderProps> = ({\n children,\n}) => {\n const [lang, setLang] = useState<Lang>('en_US');\n\n // Events\n useEffect(() => {\n const localeEvent = events.on(\n 'locale',\n (locale: string) => {\n setLang(locale as Lang);\n },\n { eager: true }\n );\n return () => {\n localeEvent?.off();\n };\n }, []);\n\n return (\n <UIProvider lang={lang} langDefinitions={langDefinitions}>\n {children}\n </UIProvider>\n );\n};\n","/********************************************************************\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this\n * file in accordance with the terms of the Adobe license agreement\n * accompanying it.\n *******************************************************************/\n\nimport { Render } from '@adobe-commerce/elsie/lib';\nimport { Provider } from './Provider';\n\nexport const render = new Render(<Provider />);\n"],"names":["langDefinitions","en_US","Provider","children","lang","setLang","useState","useEffect","localeEvent","events","locale","jsx","UIProvider","render","Render"],"mappings":"iwLAkBMA,EAAkB,CACtB,QAASC,CACX,EAMaC,EAAiD,CAAC,CAC7D,SAAAC,CACF,IAAM,CACJ,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAe,OAAO,EAG9C,OAAAC,EAAU,IAAM,CACd,MAAMC,EAAcC,EAAO,GACzB,SACCC,GAAmB,CAClBL,EAAQK,CAAc,CACxB,EACA,CAAE,MAAO,EAAA,CAAK,EAEhB,MAAO,IAAM,CACXF,GAAA,MAAAA,EAAa,KACf,CACF,EAAG,CAAA,CAAE,EAGHG,EAACC,EAAA,CAAW,KAAAR,EAAY,gBAAAJ,EACrB,SAAAG,CAAA,CACH,CAEJ,ECtCaU,EAAS,IAAIC,EAAOH,EAACT,IAAS,CAAE"}
1
+ {"version":3,"file":"render.js","sources":["/@dropins/storefront-quote-management/src/render/Provider.tsx","/@dropins/storefront-quote-management/src/render/render.tsx"],"sourcesContent":["/********************************************************************\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this\n * file in accordance with the terms of the Adobe license agreement\n * accompanying it.\n *******************************************************************/\n\nimport { FunctionComponent } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { UIProvider } from '@adobe-commerce/elsie/components';\nimport { Lang } from '@adobe-commerce/elsie/i18n';\nimport { events } from '@adobe-commerce/event-bus';\n\nimport en_US from '../i18n/en_US.json';\n\n// Langs\nconst langDefinitions = {\n default: en_US,\n};\n\ninterface CartProviderProps {\n children?: any;\n}\n\nexport const Provider: FunctionComponent<CartProviderProps> = ({\n children,\n}) => {\n const [lang, setLang] = useState<Lang>('en_US');\n\n // Events\n useEffect(() => {\n const localeEvent = events.on(\n 'locale',\n (locale: string) => {\n setLang(locale as Lang);\n },\n { eager: true }\n );\n return () => {\n localeEvent?.off();\n };\n }, []);\n\n return (\n <UIProvider lang={lang} langDefinitions={langDefinitions}>\n {children}\n </UIProvider>\n );\n};\n","/********************************************************************\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this\n * file in accordance with the terms of the Adobe license agreement\n * accompanying it.\n *******************************************************************/\n\nimport { Render } from '@adobe-commerce/elsie/lib';\nimport { Provider } from './Provider';\n\nexport const render = new Render(<Provider />);\n"],"names":["langDefinitions","en_US","Provider","children","lang","setLang","useState","useEffect","localeEvent","events","locale","jsx","UIProvider","render","Render"],"mappings":"siMAkBMA,EAAkB,CACtB,QAASC,CACX,EAMaC,EAAiD,CAAC,CAC7D,SAAAC,CACF,IAAM,CACJ,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAe,OAAO,EAG9C,OAAAC,EAAU,IAAM,CACd,MAAMC,EAAcC,EAAO,GACzB,SACCC,GAAmB,CAClBL,EAAQK,CAAc,CACxB,EACA,CAAE,MAAO,EAAA,CAAK,EAEhB,MAAO,IAAM,CACXF,GAAA,MAAAA,EAAa,KACf,CACF,EAAG,CAAA,CAAE,EAGHG,EAACC,EAAA,CAAW,KAAAR,EAAY,gBAAAJ,EACrB,SAAAG,CAAA,CACH,CAEJ,ECtCaU,EAAS,IAAIC,EAAOH,EAACT,IAAS,CAAE"}
@@ -12,4 +12,10 @@
12
12
  */
13
13
  export declare function formatExpirationDate(date: string, dateFormatter: Intl.DateTimeFormat): string;
14
14
  export declare function getUserTimezone(): string;
15
+ /**
16
+ * Formats a date string to locale date string, returning "–" for invalid dates
17
+ * @param dateString - The date string to format
18
+ * @returns Formatted date string or "–" for invalid dates
19
+ */
20
+ export declare function formattedDate(dateString: string): string;
15
21
  //# sourceMappingURL=dateUtils.d.ts.map