@merchi/product-form 1.19.12

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 (188) hide show
  1. package/README.md +272 -0
  2. package/lib/actions/jobs.d.ts +3 -0
  3. package/lib/actions/jobs.js +80 -0
  4. package/lib/actions/leads.d.ts +7 -0
  5. package/lib/actions/leads.js +67 -0
  6. package/lib/components/AlertVariationSellerEditable.d.ts +6 -0
  7. package/lib/components/AlertVariationSellerEditable.js +46 -0
  8. package/lib/components/Collapse.d.ts +3 -0
  9. package/lib/components/Collapse.js +34 -0
  10. package/lib/components/DateCountdown.d.ts +44 -0
  11. package/lib/components/DateCountdown.js +188 -0
  12. package/lib/components/DropzoneInput.d.ts +10 -0
  13. package/lib/components/DropzoneInput.js +169 -0
  14. package/lib/components/DynamicVariationInput.d.ts +9 -0
  15. package/lib/components/DynamicVariationInput.js +71 -0
  16. package/lib/components/FormLead.d.ts +10 -0
  17. package/lib/components/FormLead.js +215 -0
  18. package/lib/components/GroupInventory.d.ts +6 -0
  19. package/lib/components/GroupInventory.js +16 -0
  20. package/lib/components/InputGroupQuantity.d.ts +8 -0
  21. package/lib/components/InputGroupQuantity.js +117 -0
  22. package/lib/components/InputHiddenStatic.d.ts +8 -0
  23. package/lib/components/InputHiddenStatic.js +24 -0
  24. package/lib/components/InputProductQuantity.d.ts +7 -0
  25. package/lib/components/InputProductQuantity.js +102 -0
  26. package/lib/components/InventoryStatus.d.ts +7 -0
  27. package/lib/components/InventoryStatus.js +67 -0
  28. package/lib/components/MerchiProductForm.d.ts +62 -0
  29. package/lib/components/MerchiProductForm.js +51 -0
  30. package/lib/components/PriceMatrix.d.ts +27 -0
  31. package/lib/components/PriceMatrix.js +106 -0
  32. package/lib/components/ProductButtonsSubmit.d.ts +3 -0
  33. package/lib/components/ProductButtonsSubmit.js +52 -0
  34. package/lib/components/ProductFeatureDeadline.d.ts +3 -0
  35. package/lib/components/ProductFeatureDeadline.js +25 -0
  36. package/lib/components/ProductGroupBuyStatus.d.ts +3 -0
  37. package/lib/components/ProductGroupBuyStatus.js +47 -0
  38. package/lib/components/ProductPriceMatrix.d.ts +3 -0
  39. package/lib/components/ProductPriceMatrix.js +51 -0
  40. package/lib/components/ProductTitle.d.ts +3 -0
  41. package/lib/components/ProductTitle.js +36 -0
  42. package/lib/components/ProductTotalCost.d.ts +3 -0
  43. package/lib/components/ProductTotalCost.js +74 -0
  44. package/lib/components/ProductUnitPrice.d.ts +7 -0
  45. package/lib/components/ProductUnitPrice.js +51 -0
  46. package/lib/components/TooltipElement.d.ts +9 -0
  47. package/lib/components/TooltipElement.js +35 -0
  48. package/lib/components/VariationAreaInput.d.ts +8 -0
  49. package/lib/components/VariationAreaInput.js +219 -0
  50. package/lib/components/VariationCheckBoxOrRadioOption.d.ts +10 -0
  51. package/lib/components/VariationCheckBoxOrRadioOption.js +82 -0
  52. package/lib/components/VariationCheckboxRadio.d.ts +17 -0
  53. package/lib/components/VariationCheckboxRadio.js +57 -0
  54. package/lib/components/VariationColourExtractInput.d.ts +8 -0
  55. package/lib/components/VariationColourExtractInput.js +395 -0
  56. package/lib/components/VariationError.d.ts +7 -0
  57. package/lib/components/VariationError.js +52 -0
  58. package/lib/components/VariationFieldInputInstructions.d.ts +10 -0
  59. package/lib/components/VariationFieldInputInstructions.js +50 -0
  60. package/lib/components/VariationFieldInstructions.d.ts +3 -0
  61. package/lib/components/VariationFieldInstructions.js +22 -0
  62. package/lib/components/VariationFieldNameAndCostInputs.d.ts +7 -0
  63. package/lib/components/VariationFieldNameAndCostInputs.js +34 -0
  64. package/lib/components/VariationFieldOptionDefaultInputs.d.ts +7 -0
  65. package/lib/components/VariationFieldOptionDefaultInputs.js +48 -0
  66. package/lib/components/VariationFieldStaticValues.d.ts +8 -0
  67. package/lib/components/VariationFieldStaticValues.js +57 -0
  68. package/lib/components/VariationFileInput.d.ts +8 -0
  69. package/lib/components/VariationFileInput.js +229 -0
  70. package/lib/components/VariationInput.d.ts +11 -0
  71. package/lib/components/VariationInput.js +97 -0
  72. package/lib/components/VariationLabel.d.ts +11 -0
  73. package/lib/components/VariationLabel.js +85 -0
  74. package/lib/components/VariationOptionColour.d.ts +8 -0
  75. package/lib/components/VariationOptionColour.js +50 -0
  76. package/lib/components/VariationOptionImage.d.ts +8 -0
  77. package/lib/components/VariationOptionImage.js +52 -0
  78. package/lib/components/VariationSelect.d.ts +8 -0
  79. package/lib/components/VariationSelect.js +66 -0
  80. package/lib/components/VariationSelectElements.d.ts +16 -0
  81. package/lib/components/VariationSelectElements.js +141 -0
  82. package/lib/components/VariationTurnaroundTime.d.ts +9 -0
  83. package/lib/components/VariationTurnaroundTime.js +156 -0
  84. package/lib/components/Variations.d.ts +9 -0
  85. package/lib/components/Variations.js +109 -0
  86. package/lib/components/VariationsGroups.d.ts +8 -0
  87. package/lib/components/VariationsGroups.js +79 -0
  88. package/lib/components/buttons/ButtonAddGroup.d.ts +7 -0
  89. package/lib/components/buttons/ButtonAddGroup.js +38 -0
  90. package/lib/components/buttons/ButtonProductSubmit.d.ts +7 -0
  91. package/lib/components/buttons/ButtonProductSubmit.js +33 -0
  92. package/lib/components/buttons/ButtonRemoveGroup.d.ts +8 -0
  93. package/lib/components/buttons/ButtonRemoveGroup.js +25 -0
  94. package/lib/components/buttons/index.d.ts +4 -0
  95. package/lib/components/buttons/index.js +5 -0
  96. package/lib/components/cost.d.ts +11 -0
  97. package/lib/components/cost.js +44 -0
  98. package/lib/components/currency.d.ts +16 -0
  99. package/lib/components/currency.js +184 -0
  100. package/lib/components/drafts/DraftApprovePanel.d.ts +6 -0
  101. package/lib/components/drafts/DraftApprovePanel.js +315 -0
  102. package/lib/components/drafts/DraftCanvas.d.ts +13 -0
  103. package/lib/components/drafts/DraftCanvas.js +496 -0
  104. package/lib/components/drafts/DraftDesignerSheet.d.ts +9 -0
  105. package/lib/components/drafts/DraftDesignerSheet.js +685 -0
  106. package/lib/components/drafts/ProductDraftsHost.d.ts +3 -0
  107. package/lib/components/drafts/ProductDraftsHost.js +207 -0
  108. package/lib/components/drafts/useHtmlImage.d.ts +1 -0
  109. package/lib/components/drafts/useHtmlImage.js +45 -0
  110. package/lib/components/icons/IconChecked.d.ts +3 -0
  111. package/lib/components/icons/IconChecked.js +10 -0
  112. package/lib/components/icons/IconCheckedOrNoStock.d.ts +7 -0
  113. package/lib/components/icons/IconCheckedOrNoStock.js +13 -0
  114. package/lib/components/icons/IconCountryFlag.d.ts +8 -0
  115. package/lib/components/icons/IconCountryFlag.js +27 -0
  116. package/lib/components/icons/IconFile.d.ts +7 -0
  117. package/lib/components/icons/IconFile.js +41 -0
  118. package/lib/components/icons/IconNoStock.d.ts +3 -0
  119. package/lib/components/icons/IconNoStock.js +12 -0
  120. package/lib/components/icons/index.d.ts +5 -0
  121. package/lib/components/icons/index.js +6 -0
  122. package/lib/components/quoteAfterFieldChange.d.ts +7 -0
  123. package/lib/components/quoteAfterFieldChange.js +11 -0
  124. package/lib/components/quoteAfterFieldChange.test.js +58 -0
  125. package/lib/components/utils.d.ts +26 -0
  126. package/lib/components/utils.js +500 -0
  127. package/lib/context/MerchiProductFormProvider.d.ts +177 -0
  128. package/lib/context/MerchiProductFormProvider.js +1020 -0
  129. package/lib/images/product-not-found.png +0 -0
  130. package/lib/index.d.ts +42 -0
  131. package/lib/index.js +41 -0
  132. package/lib/styles/globals.css +1590 -0
  133. package/lib/styles/globals.css.map +1 -0
  134. package/lib/styles/globals.scss +1698 -0
  135. package/lib/utils/area.d.ts +77 -0
  136. package/lib/utils/area.js +298 -0
  137. package/lib/utils/cleanFormVariationJson.d.ts +5 -0
  138. package/lib/utils/cleanFormVariationJson.js +39 -0
  139. package/lib/utils/cleanFormVariationJson.test.js +54 -0
  140. package/lib/utils/countries.d.ts +7 -0
  141. package/lib/utils/countries.js +290 -0
  142. package/lib/utils/currency.d.ts +2 -0
  143. package/lib/utils/currency.js +188 -0
  144. package/lib/utils/draftExport.d.ts +21 -0
  145. package/lib/utils/draftExport.js +481 -0
  146. package/lib/utils/draftExport.test.js +78 -0
  147. package/lib/utils/draftFonts.d.ts +55 -0
  148. package/lib/utils/draftFonts.js +68 -0
  149. package/lib/utils/draftStorage.d.ts +25 -0
  150. package/lib/utils/draftStorage.js +148 -0
  151. package/lib/utils/draftStorage.test.js +125 -0
  152. package/lib/utils/draftTemplates.d.ts +87 -0
  153. package/lib/utils/draftTemplates.js +579 -0
  154. package/lib/utils/draftTemplates.test.js +476 -0
  155. package/lib/utils/formErrors.d.ts +2 -0
  156. package/lib/utils/formErrors.js +29 -0
  157. package/lib/utils/index.d.ts +3 -0
  158. package/lib/utils/index.js +4 -0
  159. package/lib/utils/priceMatrix.d.ts +57 -0
  160. package/lib/utils/priceMatrix.js +82 -0
  161. package/lib/utils/priceMatrix.test.js +200 -0
  162. package/lib/utils/products.d.ts +40 -0
  163. package/lib/utils/products.js +68 -0
  164. package/lib/utils/quantity.d.ts +7 -0
  165. package/lib/utils/quantity.js +19 -0
  166. package/lib/utils/quantity.test.js +42 -0
  167. package/lib/utils/reconcileVariations.d.ts +25 -0
  168. package/lib/utils/reconcileVariations.js +246 -0
  169. package/lib/utils/reconcileVariations.test.js +239 -0
  170. package/lib/utils/selectedVariationCosts.d.ts +6 -0
  171. package/lib/utils/selectedVariationCosts.js +59 -0
  172. package/lib/utils/selectedVariationCosts.test.js +66 -0
  173. package/lib/utils/selections.d.ts +23 -0
  174. package/lib/utils/selections.js +76 -0
  175. package/lib/utils/selections.test.js +159 -0
  176. package/lib/utils/singleOptionVariation.d.ts +2 -0
  177. package/lib/utils/singleOptionVariation.js +22 -0
  178. package/lib/utils/singleOptionVariation.test.js +59 -0
  179. package/lib/utils/supportedNumbers.d.ts +1 -0
  180. package/lib/utils/supportedNumbers.js +27 -0
  181. package/lib/utils/types.d.ts +114 -0
  182. package/lib/utils/types.js +50 -0
  183. package/lib/utils/url.d.ts +3 -0
  184. package/lib/utils/url.js +65 -0
  185. package/lib/utils/variationFields.d.ts +5 -0
  186. package/lib/utils/variationFields.js +116 -0
  187. package/lib/utils/variationFields.test.js +108 -0
  188. package/package.json +93 -0
@@ -0,0 +1,66 @@
1
+ import { costsFromSelectedOptions } from './selectedVariationCosts';
2
+ test('uses selected option costs for the variation label', function () {
3
+ var variation = {
4
+ onceOffCost: 0,
5
+ unitCost: 0.06,
6
+ currency: 'AUD',
7
+ selectableOptions: [{
8
+ optionId: 100,
9
+ onceOffCost: 0,
10
+ unitCost: 0.06,
11
+ currency: 'AUD'
12
+ }, {
13
+ optionId: 200,
14
+ onceOffCost: 0,
15
+ unitCost: 0.05,
16
+ currency: 'AUD'
17
+ }]
18
+ };
19
+ expect(costsFromSelectedOptions(variation, '200')).toEqual({
20
+ onceOffCost: 0,
21
+ unitCost: 0.05,
22
+ currency: 'AUD'
23
+ });
24
+ });
25
+ test('sums costs when multiple options are selected', function () {
26
+ var variation = {
27
+ onceOffCost: 1,
28
+ unitCost: 0.1,
29
+ currency: 'AUD',
30
+ selectableOptions: [{
31
+ optionId: 1,
32
+ onceOffCost: 2,
33
+ unitCost: 0.03,
34
+ currency: 'AUD'
35
+ }, {
36
+ optionId: 2,
37
+ onceOffCost: 1,
38
+ unitCost: 0.02,
39
+ currency: 'AUD'
40
+ }]
41
+ };
42
+ expect(costsFromSelectedOptions(variation, '1,2')).toEqual({
43
+ onceOffCost: 3,
44
+ unitCost: 0.05,
45
+ currency: 'AUD'
46
+ });
47
+ });
48
+ test('falls back to variation costs when nothing is selected', function () {
49
+ var variation = {
50
+ onceOffCost: 1,
51
+ unitCost: 0.06,
52
+ currency: 'AUD',
53
+ selectableOptions: [{
54
+ optionId: 100,
55
+ onceOffCost: 0,
56
+ unitCost: 0.05,
57
+ currency: 'AUD'
58
+ }]
59
+ };
60
+ expect(costsFromSelectedOptions(variation, '')).toEqual({
61
+ onceOffCost: 1,
62
+ unitCost: 0.06,
63
+ currency: 'AUD'
64
+ });
65
+ });
66
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3N0c0Zyb21TZWxlY3RlZE9wdGlvbnMiLCJ0ZXN0IiwidmFyaWF0aW9uIiwib25jZU9mZkNvc3QiLCJ1bml0Q29zdCIsImN1cnJlbmN5Iiwic2VsZWN0YWJsZU9wdGlvbnMiLCJvcHRpb25JZCIsImV4cGVjdCIsInRvRXF1YWwiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc2VsZWN0ZWRWYXJpYXRpb25Db3N0cy50ZXN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvc3RzRnJvbVNlbGVjdGVkT3B0aW9ucyB9IGZyb20gJy4vc2VsZWN0ZWRWYXJpYXRpb25Db3N0cyc7XG5cbnRlc3QoJ3VzZXMgc2VsZWN0ZWQgb3B0aW9uIGNvc3RzIGZvciB0aGUgdmFyaWF0aW9uIGxhYmVsJywgKCkgPT4ge1xuICBjb25zdCB2YXJpYXRpb24gPSB7XG4gICAgb25jZU9mZkNvc3Q6IDAsXG4gICAgdW5pdENvc3Q6IDAuMDYsXG4gICAgY3VycmVuY3k6ICdBVUQnLFxuICAgIHNlbGVjdGFibGVPcHRpb25zOiBbXG4gICAgICB7IG9wdGlvbklkOiAxMDAsIG9uY2VPZmZDb3N0OiAwLCB1bml0Q29zdDogMC4wNiwgY3VycmVuY3k6ICdBVUQnIH0sXG4gICAgICB7IG9wdGlvbklkOiAyMDAsIG9uY2VPZmZDb3N0OiAwLCB1bml0Q29zdDogMC4wNSwgY3VycmVuY3k6ICdBVUQnIH0sXG4gICAgXSxcbiAgfTtcblxuICBleHBlY3QoY29zdHNGcm9tU2VsZWN0ZWRPcHRpb25zKHZhcmlhdGlvbiwgJzIwMCcpKS50b0VxdWFsKHtcbiAgICBvbmNlT2ZmQ29zdDogMCxcbiAgICB1bml0Q29zdDogMC4wNSxcbiAgICBjdXJyZW5jeTogJ0FVRCcsXG4gIH0pO1xufSk7XG5cbnRlc3QoJ3N1bXMgY29zdHMgd2hlbiBtdWx0aXBsZSBvcHRpb25zIGFyZSBzZWxlY3RlZCcsICgpID0+IHtcbiAgY29uc3QgdmFyaWF0aW9uID0ge1xuICAgIG9uY2VPZmZDb3N0OiAxLFxuICAgIHVuaXRDb3N0OiAwLjEsXG4gICAgY3VycmVuY3k6ICdBVUQnLFxuICAgIHNlbGVjdGFibGVPcHRpb25zOiBbXG4gICAgICB7IG9wdGlvbklkOiAxLCBvbmNlT2ZmQ29zdDogMiwgdW5pdENvc3Q6IDAuMDMsIGN1cnJlbmN5OiAnQVVEJyB9LFxuICAgICAgeyBvcHRpb25JZDogMiwgb25jZU9mZkNvc3Q6IDEsIHVuaXRDb3N0OiAwLjAyLCBjdXJyZW5jeTogJ0FVRCcgfSxcbiAgICBdLFxuICB9O1xuXG4gIGV4cGVjdChjb3N0c0Zyb21TZWxlY3RlZE9wdGlvbnModmFyaWF0aW9uLCAnMSwyJykpLnRvRXF1YWwoe1xuICAgIG9uY2VPZmZDb3N0OiAzLFxuICAgIHVuaXRDb3N0OiAwLjA1LFxuICAgIGN1cnJlbmN5OiAnQVVEJyxcbiAgfSk7XG59KTtcblxudGVzdCgnZmFsbHMgYmFjayB0byB2YXJpYXRpb24gY29zdHMgd2hlbiBub3RoaW5nIGlzIHNlbGVjdGVkJywgKCkgPT4ge1xuICBjb25zdCB2YXJpYXRpb24gPSB7XG4gICAgb25jZU9mZkNvc3Q6IDEsXG4gICAgdW5pdENvc3Q6IDAuMDYsXG4gICAgY3VycmVuY3k6ICdBVUQnLFxuICAgIHNlbGVjdGFibGVPcHRpb25zOiBbXG4gICAgICB7IG9wdGlvbklkOiAxMDAsIG9uY2VPZmZDb3N0OiAwLCB1bml0Q29zdDogMC4wNSwgY3VycmVuY3k6ICdBVUQnIH0sXG4gICAgXSxcbiAgfTtcblxuICBleHBlY3QoY29zdHNGcm9tU2VsZWN0ZWRPcHRpb25zKHZhcmlhdGlvbiwgJycpKS50b0VxdWFsKHtcbiAgICBvbmNlT2ZmQ29zdDogMSxcbiAgICB1bml0Q29zdDogMC4wNixcbiAgICBjdXJyZW5jeTogJ0FVRCcsXG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLHdCQUF3QixRQUFRLDBCQUEwQjtBQUVuRUMsSUFBSSxDQUFDLG9EQUFvRCxFQUFFLFlBQU07RUFDL0QsSUFBTUMsU0FBUyxHQUFHO0lBQ2hCQyxXQUFXLEVBQUUsQ0FBQztJQUNkQyxRQUFRLEVBQUUsSUFBSTtJQUNkQyxRQUFRLEVBQUUsS0FBSztJQUNmQyxpQkFBaUIsRUFBRSxDQUNqQjtNQUFFQyxRQUFRLEVBQUUsR0FBRztNQUFFSixXQUFXLEVBQUUsQ0FBQztNQUFFQyxRQUFRLEVBQUUsSUFBSTtNQUFFQyxRQUFRLEVBQUU7SUFBTSxDQUFDLEVBQ2xFO01BQUVFLFFBQVEsRUFBRSxHQUFHO01BQUVKLFdBQVcsRUFBRSxDQUFDO01BQUVDLFFBQVEsRUFBRSxJQUFJO01BQUVDLFFBQVEsRUFBRTtJQUFNLENBQUM7RUFFdEUsQ0FBQztFQUVERyxNQUFNLENBQUNSLHdCQUF3QixDQUFDRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQ08sT0FBTyxDQUFDO0lBQ3pETixXQUFXLEVBQUUsQ0FBQztJQUNkQyxRQUFRLEVBQUUsSUFBSTtJQUNkQyxRQUFRLEVBQUU7RUFDWixDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRkosSUFBSSxDQUFDLCtDQUErQyxFQUFFLFlBQU07RUFDMUQsSUFBTUMsU0FBUyxHQUFHO0lBQ2hCQyxXQUFXLEVBQUUsQ0FBQztJQUNkQyxRQUFRLEVBQUUsR0FBRztJQUNiQyxRQUFRLEVBQUUsS0FBSztJQUNmQyxpQkFBaUIsRUFBRSxDQUNqQjtNQUFFQyxRQUFRLEVBQUUsQ0FBQztNQUFFSixXQUFXLEVBQUUsQ0FBQztNQUFFQyxRQUFRLEVBQUUsSUFBSTtNQUFFQyxRQUFRLEVBQUU7SUFBTSxDQUFDLEVBQ2hFO01BQUVFLFFBQVEsRUFBRSxDQUFDO01BQUVKLFdBQVcsRUFBRSxDQUFDO01BQUVDLFFBQVEsRUFBRSxJQUFJO01BQUVDLFFBQVEsRUFBRTtJQUFNLENBQUM7RUFFcEUsQ0FBQztFQUVERyxNQUFNLENBQUNSLHdCQUF3QixDQUFDRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQ08sT0FBTyxDQUFDO0lBQ3pETixXQUFXLEVBQUUsQ0FBQztJQUNkQyxRQUFRLEVBQUUsSUFBSTtJQUNkQyxRQUFRLEVBQUU7RUFDWixDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRkosSUFBSSxDQUFDLHdEQUF3RCxFQUFFLFlBQU07RUFDbkUsSUFBTUMsU0FBUyxHQUFHO0lBQ2hCQyxXQUFXLEVBQUUsQ0FBQztJQUNkQyxRQUFRLEVBQUUsSUFBSTtJQUNkQyxRQUFRLEVBQUUsS0FBSztJQUNmQyxpQkFBaUIsRUFBRSxDQUNqQjtNQUFFQyxRQUFRLEVBQUUsR0FBRztNQUFFSixXQUFXLEVBQUUsQ0FBQztNQUFFQyxRQUFRLEVBQUUsSUFBSTtNQUFFQyxRQUFRLEVBQUU7SUFBTSxDQUFDO0VBRXRFLENBQUM7RUFFREcsTUFBTSxDQUFDUix3QkFBd0IsQ0FBQ0UsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUNPLE9BQU8sQ0FBQztJQUN0RE4sV0FBVyxFQUFFLENBQUM7SUFDZEMsUUFBUSxFQUFFLElBQUk7SUFDZEMsUUFBUSxFQUFFO0VBQ1osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,23 @@
1
+ interface FieldSelection {
2
+ selectedOptionIds?: number[];
3
+ value?: string | number | null;
4
+ }
5
+ interface Selections {
6
+ quantity?: number;
7
+ fieldValues: Record<number, FieldSelection>;
8
+ groups?: {
9
+ quantity: number;
10
+ fieldValues: Record<number, FieldSelection>;
11
+ }[];
12
+ }
13
+ interface PricingField {
14
+ id: number;
15
+ isSelectable: boolean;
16
+ }
17
+ interface PricingRules {
18
+ fields?: PricingField[];
19
+ groupFields?: PricingField[];
20
+ hasGroups?: boolean;
21
+ }
22
+ export declare function toSelections(formValues: any, rules: PricingRules): Selections;
23
+ export {};
@@ -0,0 +1,76 @@
1
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
4
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
5
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
6
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
7
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
8
+ // These types mirror the pricing shapes exported by `@merchi/sdk`
9
+ // (`@merchi/sdk/dist/pricing`). They are declared locally because the linked
10
+ // SDK build ships no type declarations, so importing the types directly does
11
+ // not resolve under this repo's TypeScript/Jest setup. The runtime logic below
12
+ // only reads plain object fields and does not depend on any SDK runtime code.
13
+
14
+ function parseOptionIds(value) {
15
+ if (value === undefined || value === null || value === '') return [];
16
+ return String(value).split(',').map(function (s) {
17
+ return parseInt(s.trim(), 10);
18
+ }).filter(function (n) {
19
+ return !isNaN(n);
20
+ });
21
+ }
22
+ function toQuantity(value) {
23
+ var n = Number(value);
24
+ return Number.isFinite(n) ? n : 0;
25
+ }
26
+ function buildFieldValues(variations, selectableByField) {
27
+ var out = {};
28
+ var _iterator = _createForOfIteratorHelper(variations || []),
29
+ _step;
30
+ try {
31
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
32
+ var _variation$variationF;
33
+ var variation = _step.value;
34
+ var fieldId = variation === null || variation === void 0 || (_variation$variationF = variation.variationField) === null || _variation$variationF === void 0 ? void 0 : _variation$variationF.id;
35
+ if (fieldId === undefined || fieldId === null) continue;
36
+ if (selectableByField[fieldId]) {
37
+ out[fieldId] = {
38
+ selectedOptionIds: parseOptionIds(variation.value)
39
+ };
40
+ } else {
41
+ var _variation$value;
42
+ out[fieldId] = {
43
+ value: (_variation$value = variation.value) !== null && _variation$value !== void 0 ? _variation$value : null
44
+ };
45
+ }
46
+ }
47
+ } catch (err) {
48
+ _iterator.e(err);
49
+ } finally {
50
+ _iterator.f();
51
+ }
52
+ return out;
53
+ }
54
+ export function toSelections(formValues, rules) {
55
+ var selectableByField = {};
56
+ for (var _i = 0, _arr = [].concat(_toConsumableArray(rules.fields || []), _toConsumableArray(rules.groupFields || [])); _i < _arr.length; _i++) {
57
+ var f = _arr[_i];
58
+ selectableByField[f.id] = f.isSelectable;
59
+ }
60
+ if (rules.hasGroups) {
61
+ return {
62
+ fieldValues: buildFieldValues(formValues.variations || [], selectableByField),
63
+ groups: (formValues.variationsGroups || []).map(function (g) {
64
+ return {
65
+ quantity: toQuantity(g.quantity),
66
+ fieldValues: buildFieldValues(g.variations || [], selectableByField)
67
+ };
68
+ })
69
+ };
70
+ }
71
+ return {
72
+ quantity: toQuantity(formValues.quantity),
73
+ fieldValues: buildFieldValues(formValues.variations || [], selectableByField)
74
+ };
75
+ }
76
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJzZU9wdGlvbklkcyIsInZhbHVlIiwidW5kZWZpbmVkIiwiU3RyaW5nIiwic3BsaXQiLCJtYXAiLCJzIiwicGFyc2VJbnQiLCJ0cmltIiwiZmlsdGVyIiwibiIsImlzTmFOIiwidG9RdWFudGl0eSIsIk51bWJlciIsImlzRmluaXRlIiwiYnVpbGRGaWVsZFZhbHVlcyIsInZhcmlhdGlvbnMiLCJzZWxlY3RhYmxlQnlGaWVsZCIsIm91dCIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJkb25lIiwiX3ZhcmlhdGlvbiR2YXJpYXRpb25GIiwidmFyaWF0aW9uIiwiZmllbGRJZCIsInZhcmlhdGlvbkZpZWxkIiwiaWQiLCJzZWxlY3RlZE9wdGlvbklkcyIsIl92YXJpYXRpb24kdmFsdWUiLCJlcnIiLCJlIiwiZiIsInRvU2VsZWN0aW9ucyIsImZvcm1WYWx1ZXMiLCJydWxlcyIsIl9pIiwiX2FyciIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsImZpZWxkcyIsImdyb3VwRmllbGRzIiwibGVuZ3RoIiwiaXNTZWxlY3RhYmxlIiwiaGFzR3JvdXBzIiwiZmllbGRWYWx1ZXMiLCJncm91cHMiLCJ2YXJpYXRpb25zR3JvdXBzIiwiZyIsInF1YW50aXR5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NlbGVjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhlc2UgdHlwZXMgbWlycm9yIHRoZSBwcmljaW5nIHNoYXBlcyBleHBvcnRlZCBieSBgQG1lcmNoaS9zZGtgXG4vLyAoYEBtZXJjaGkvc2RrL2Rpc3QvcHJpY2luZ2ApLiBUaGV5IGFyZSBkZWNsYXJlZCBsb2NhbGx5IGJlY2F1c2UgdGhlIGxpbmtlZFxuLy8gU0RLIGJ1aWxkIHNoaXBzIG5vIHR5cGUgZGVjbGFyYXRpb25zLCBzbyBpbXBvcnRpbmcgdGhlIHR5cGVzIGRpcmVjdGx5IGRvZXNcbi8vIG5vdCByZXNvbHZlIHVuZGVyIHRoaXMgcmVwbydzIFR5cGVTY3JpcHQvSmVzdCBzZXR1cC4gVGhlIHJ1bnRpbWUgbG9naWMgYmVsb3dcbi8vIG9ubHkgcmVhZHMgcGxhaW4gb2JqZWN0IGZpZWxkcyBhbmQgZG9lcyBub3QgZGVwZW5kIG9uIGFueSBTREsgcnVudGltZSBjb2RlLlxuaW50ZXJmYWNlIEZpZWxkU2VsZWN0aW9uIHtcbiAgc2VsZWN0ZWRPcHRpb25JZHM/OiBudW1iZXJbXTtcbiAgdmFsdWU/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsO1xufVxuXG5pbnRlcmZhY2UgU2VsZWN0aW9ucyB7XG4gIHF1YW50aXR5PzogbnVtYmVyO1xuICBmaWVsZFZhbHVlczogUmVjb3JkPG51bWJlciwgRmllbGRTZWxlY3Rpb24+O1xuICBncm91cHM/OiB7IHF1YW50aXR5OiBudW1iZXI7IGZpZWxkVmFsdWVzOiBSZWNvcmQ8bnVtYmVyLCBGaWVsZFNlbGVjdGlvbj4gfVtdO1xufVxuXG5pbnRlcmZhY2UgUHJpY2luZ0ZpZWxkIHtcbiAgaWQ6IG51bWJlcjtcbiAgaXNTZWxlY3RhYmxlOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgUHJpY2luZ1J1bGVzIHtcbiAgZmllbGRzPzogUHJpY2luZ0ZpZWxkW107XG4gIGdyb3VwRmllbGRzPzogUHJpY2luZ0ZpZWxkW107XG4gIGhhc0dyb3Vwcz86IGJvb2xlYW47XG59XG5cbmZ1bmN0aW9uIHBhcnNlT3B0aW9uSWRzKHZhbHVlOiBhbnkpOiBudW1iZXJbXSB7XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJykgcmV0dXJuIFtdO1xuICByZXR1cm4gU3RyaW5nKHZhbHVlKVxuICAgIC5zcGxpdCgnLCcpXG4gICAgLm1hcCgocykgPT4gcGFyc2VJbnQocy50cmltKCksIDEwKSlcbiAgICAuZmlsdGVyKChuKSA9PiAhaXNOYU4obikpO1xufVxuXG5mdW5jdGlvbiB0b1F1YW50aXR5KHZhbHVlOiB1bmtub3duKTogbnVtYmVyIHtcbiAgY29uc3QgbiA9IE51bWJlcih2YWx1ZSk7XG4gIHJldHVybiBOdW1iZXIuaXNGaW5pdGUobikgPyBuIDogMDtcbn1cblxuZnVuY3Rpb24gYnVpbGRGaWVsZFZhbHVlcyhcbiAgdmFyaWF0aW9uczogYW55W10sXG4gIHNlbGVjdGFibGVCeUZpZWxkOiBSZWNvcmQ8bnVtYmVyLCBib29sZWFuPlxuKTogUmVjb3JkPG51bWJlciwgRmllbGRTZWxlY3Rpb24+IHtcbiAgY29uc3Qgb3V0OiBSZWNvcmQ8bnVtYmVyLCBGaWVsZFNlbGVjdGlvbj4gPSB7fTtcbiAgZm9yIChjb25zdCB2YXJpYXRpb24gb2YgdmFyaWF0aW9ucyB8fCBbXSkge1xuICAgIGNvbnN0IGZpZWxkSWQgPSB2YXJpYXRpb24/LnZhcmlhdGlvbkZpZWxkPy5pZDtcbiAgICBpZiAoZmllbGRJZCA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkSWQgPT09IG51bGwpIGNvbnRpbnVlO1xuICAgIGlmIChzZWxlY3RhYmxlQnlGaWVsZFtmaWVsZElkXSkge1xuICAgICAgb3V0W2ZpZWxkSWRdID0geyBzZWxlY3RlZE9wdGlvbklkczogcGFyc2VPcHRpb25JZHModmFyaWF0aW9uLnZhbHVlKSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXRbZmllbGRJZF0gPSB7IHZhbHVlOiB2YXJpYXRpb24udmFsdWUgPz8gbnVsbCB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4gb3V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9TZWxlY3Rpb25zKGZvcm1WYWx1ZXM6IGFueSwgcnVsZXM6IFByaWNpbmdSdWxlcyk6IFNlbGVjdGlvbnMge1xuICBjb25zdCBzZWxlY3RhYmxlQnlGaWVsZDogUmVjb3JkPG51bWJlciwgYm9vbGVhbj4gPSB7fTtcbiAgZm9yIChjb25zdCBmIG9mIFsuLi4ocnVsZXMuZmllbGRzIHx8IFtdKSwgLi4uKHJ1bGVzLmdyb3VwRmllbGRzIHx8IFtdKV0gYXMgUHJpY2luZ0ZpZWxkW10pIHtcbiAgICBzZWxlY3RhYmxlQnlGaWVsZFtmLmlkXSA9IGYuaXNTZWxlY3RhYmxlO1xuICB9XG5cbiAgaWYgKHJ1bGVzLmhhc0dyb3Vwcykge1xuICAgIHJldHVybiB7XG4gICAgICBmaWVsZFZhbHVlczogYnVpbGRGaWVsZFZhbHVlcyhmb3JtVmFsdWVzLnZhcmlhdGlvbnMgfHwgW10sIHNlbGVjdGFibGVCeUZpZWxkKSxcbiAgICAgIGdyb3VwczogKGZvcm1WYWx1ZXMudmFyaWF0aW9uc0dyb3VwcyB8fCBbXSkubWFwKChnOiBhbnkpID0+ICh7XG4gICAgICAgIHF1YW50aXR5OiB0b1F1YW50aXR5KGcucXVhbnRpdHkpLFxuICAgICAgICBmaWVsZFZhbHVlczogYnVpbGRGaWVsZFZhbHVlcyhnLnZhcmlhdGlvbnMgfHwgW10sIHNlbGVjdGFibGVCeUZpZWxkKSxcbiAgICAgIH0pKSxcbiAgICB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgcXVhbnRpdHk6IHRvUXVhbnRpdHkoZm9ybVZhbHVlcy5xdWFudGl0eSksXG4gICAgZmllbGRWYWx1ZXM6IGJ1aWxkRmllbGRWYWx1ZXMoZm9ybVZhbHVlcy52YXJpYXRpb25zIHx8IFtdLCBzZWxlY3RhYmxlQnlGaWVsZCksXG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQXVCQSxTQUFTQSxjQUFjQSxDQUFDQyxLQUFVLEVBQVk7RUFDNUMsSUFBSUEsS0FBSyxLQUFLQyxTQUFTLElBQUlELEtBQUssS0FBSyxJQUFJLElBQUlBLEtBQUssS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFO0VBQ3BFLE9BQU9FLE1BQU0sQ0FBQ0YsS0FBSyxDQUFDLENBQ2pCRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQ1ZDLEdBQUcsQ0FBQyxVQUFDQyxDQUFDO0lBQUEsT0FBS0MsUUFBUSxDQUFDRCxDQUFDLENBQUNFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBQUEsRUFBQyxDQUNsQ0MsTUFBTSxDQUFDLFVBQUNDLENBQUM7SUFBQSxPQUFLLENBQUNDLEtBQUssQ0FBQ0Qs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
@@ -0,0 +1,159 @@
1
+ import { toSelections } from './selections';
2
+ var rules = {
3
+ hasGroups: false,
4
+ fields: [{
5
+ id: 1,
6
+ isSelectable: true,
7
+ options: []
8
+ }, {
9
+ id: 2,
10
+ isSelectable: false,
11
+ options: []
12
+ }],
13
+ groupFields: []
14
+ };
15
+ test('parses comma-joined option ids for selectable fields', function () {
16
+ var values = {
17
+ quantity: 10,
18
+ variations: [{
19
+ variationField: {
20
+ id: 1
21
+ },
22
+ value: '101,102'
23
+ }, {
24
+ variationField: {
25
+ id: 2
26
+ },
27
+ value: 'hello'
28
+ }]
29
+ };
30
+ expect(toSelections(values, rules)).toEqual({
31
+ quantity: 10,
32
+ fieldValues: {
33
+ 1: {
34
+ selectedOptionIds: [101, 102]
35
+ },
36
+ 2: {
37
+ value: 'hello'
38
+ }
39
+ }
40
+ });
41
+ });
42
+ test('reads per-group quantities and variations', function () {
43
+ var groupRules = {
44
+ hasGroups: true,
45
+ fields: [],
46
+ groupFields: [{
47
+ id: 5,
48
+ isSelectable: true,
49
+ options: []
50
+ }]
51
+ };
52
+ var values = {
53
+ variations: [],
54
+ variationsGroups: [{
55
+ quantity: 3,
56
+ variations: [{
57
+ variationField: {
58
+ id: 5
59
+ },
60
+ value: '501'
61
+ }]
62
+ }]
63
+ };
64
+ expect(toSelections(values, groupRules)).toEqual({
65
+ fieldValues: {},
66
+ groups: [{
67
+ quantity: 3,
68
+ fieldValues: {
69
+ 5: {
70
+ selectedOptionIds: [501]
71
+ }
72
+ }
73
+ }]
74
+ });
75
+ });
76
+ test('coerces string quantities from form inputs to numbers', function () {
77
+ var groupRules = {
78
+ hasGroups: true,
79
+ fields: [],
80
+ groupFields: []
81
+ };
82
+ var values = {
83
+ variations: [],
84
+ variationsGroups: [{
85
+ quantity: '100',
86
+ variations: []
87
+ }, {
88
+ quantity: '1',
89
+ variations: []
90
+ }]
91
+ };
92
+ expect(toSelections(values, groupRules)).toEqual({
93
+ fieldValues: {},
94
+ groups: [{
95
+ quantity: 100,
96
+ fieldValues: {}
97
+ }, {
98
+ quantity: 1,
99
+ fieldValues: {}
100
+ }]
101
+ });
102
+ });
103
+ test('empty/absent values produce empty selections', function () {
104
+ var values = {
105
+ quantity: 0,
106
+ variations: [{
107
+ variationField: {
108
+ id: 1
109
+ },
110
+ value: ''
111
+ }]
112
+ };
113
+ expect(toSelections(values, rules)).toEqual({
114
+ quantity: 0,
115
+ fieldValues: {
116
+ 1: {
117
+ selectedOptionIds: []
118
+ }
119
+ }
120
+ });
121
+ });
122
+ test('area field value is passed through as a non-selectable string', function () {
123
+ var areaRules = {
124
+ hasGroups: false,
125
+ fields: [{
126
+ id: 14,
127
+ isSelectable: false,
128
+ options: []
129
+ }],
130
+ groupFields: []
131
+ };
132
+ var values = {
133
+ quantity: 1,
134
+ variations: [{
135
+ variationField: {
136
+ id: 14,
137
+ fieldType: 14
138
+ },
139
+ value: '7,4'
140
+ }]
141
+ };
142
+ expect(toSelections(values, areaRules)).toEqual({
143
+ quantity: 1,
144
+ fieldValues: {
145
+ 14: {
146
+ value: '7,4'
147
+ }
148
+ }
149
+ });
150
+ });
151
+ test('accepts pricing rules without optional field collections', function () {
152
+ expect(toSelections({
153
+ quantity: 2
154
+ }, {})).toEqual({
155
+ quantity: 2,
156
+ fieldValues: {}
157
+ });
158
+ });
159
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0b1NlbGVjdGlvbnMiLCJydWxlcyIsImhhc0dyb3VwcyIsImZpZWxkcyIsImlkIiwiaXNTZWxlY3RhYmxlIiwib3B0aW9ucyIsImdyb3VwRmllbGRzIiwidGVzdCIsInZhbHVlcyIsInF1YW50aXR5IiwidmFyaWF0aW9ucyIsInZhcmlhdGlvbkZpZWxkIiwidmFsdWUiLCJleHBlY3QiLCJ0b0VxdWFsIiwiZmllbGRWYWx1ZXMiLCJzZWxlY3RlZE9wdGlvbklkcyIsImdyb3VwUnVsZXMiLCJ2YXJpYXRpb25zR3JvdXBzIiwiZ3JvdXBzIiwiYXJlYVJ1bGVzIiwiZmllbGRUeXBlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NlbGVjdGlvbnMudGVzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0b1NlbGVjdGlvbnMgfSBmcm9tICcuL3NlbGVjdGlvbnMnO1xuXG5jb25zdCBydWxlczogYW55ID0ge1xuICBoYXNHcm91cHM6IGZhbHNlLFxuICBmaWVsZHM6IFtcbiAgICB7IGlkOiAxLCBpc1NlbGVjdGFibGU6IHRydWUsIG9wdGlvbnM6IFtdIH0sXG4gICAgeyBpZDogMiwgaXNTZWxlY3RhYmxlOiBmYWxzZSwgb3B0aW9uczogW10gfSxcbiAgXSxcbiAgZ3JvdXBGaWVsZHM6IFtdLFxufTtcblxudGVzdCgncGFyc2VzIGNvbW1hLWpvaW5lZCBvcHRpb24gaWRzIGZvciBzZWxlY3RhYmxlIGZpZWxkcycsICgpID0+IHtcbiAgY29uc3QgdmFsdWVzID0ge1xuICAgIHF1YW50aXR5OiAxMCxcbiAgICB2YXJpYXRpb25zOiBbXG4gICAgICB7IHZhcmlhdGlvbkZpZWxkOiB7IGlkOiAxIH0sIHZhbHVlOiAnMTAxLDEwMicgfSxcbiAgICAgIHsgdmFyaWF0aW9uRmllbGQ6IHsgaWQ6IDIgfSwgdmFsdWU6ICdoZWxsbycgfSxcbiAgICBdLFxuICB9O1xuICBleHBlY3QodG9TZWxlY3Rpb25zKHZhbHVlcywgcnVsZXMpKS50b0VxdWFsKHtcbiAgICBxdWFudGl0eTogMTAsXG4gICAgZmllbGRWYWx1ZXM6IHtcbiAgICAgIDE6IHsgc2VsZWN0ZWRPcHRpb25JZHM6IFsxMDEsIDEwMl0gfSxcbiAgICAgIDI6IHsgdmFsdWU6ICdoZWxsbycgfSxcbiAgICB9LFxuICB9KTtcbn0pO1xuXG50ZXN0KCdyZWFkcyBwZXItZ3JvdXAgcXVhbnRpdGllcyBhbmQgdmFyaWF0aW9ucycsICgpID0+IHtcbiAgY29uc3QgZ3JvdXBSdWxlczogYW55ID0ge1xuICAgIGhhc0dyb3VwczogdHJ1ZSxcbiAgICBmaWVsZHM6IFtdLFxuICAgIGdyb3VwRmllbGRzOiBbeyBpZDogNSwgaXNTZWxlY3RhYmxlOiB0cnVlLCBvcHRpb25zOiBbXSB9XSxcbiAgfTtcbiAgY29uc3QgdmFsdWVzID0ge1xuICAgIHZhcmlhdGlvbnM6IFtdLFxuICAgIHZhcmlhdGlvbnNHcm91cHM6IFtcbiAgICAgIHsgcXVhbnRpdHk6IDMsIHZhcmlhdGlvbnM6IFt7IHZhcmlhdGlvbkZpZWxkOiB7IGlkOiA1IH0sIHZhbHVlOiAnNTAxJyB9XSB9LFxuICAgIF0sXG4gIH07XG4gIGV4cGVjdCh0b1NlbGVjdGlvbnModmFsdWVzLCBncm91cFJ1bGVzKSkudG9FcXVhbCh7XG4gICAgZmllbGRWYWx1ZXM6IHt9LFxuICAgIGdyb3VwczogW3sgcXVhbnRpdHk6IDMsIGZpZWxkVmFsdWVzOiB7IDU6IHsgc2VsZWN0ZWRPcHRpb25JZHM6IFs1MDFdIH0gfSB9XSxcbiAgfSk7XG59KTtcblxudGVzdCgnY29lcmNlcyBzdHJpbmcgcXVhbnRpdGllcyBmcm9tIGZvcm0gaW5wdXRzIHRvIG51bWJlcnMnLCAoKSA9PiB7XG4gIGNvbnN0IGdyb3VwUnVsZXM6IGFueSA9IHtcbiAgICBoYXNHcm91cHM6IHRydWUsXG4gICAgZmllbGRzOiBbXSxcbiAgICBncm91cEZpZWxkczogW10sXG4gIH07XG4gIGNvbnN0IHZhbHVlcyA9IHtcbiAgICB2YXJpYXRpb25zOiBbXSxcbiAgICB2YXJpYXRpb25zR3JvdXBzOiBbXG4gICAgICB7IHF1YW50aXR5OiAnMTAwJywgdmFyaWF0aW9uczogW10gfSxcbiAgICAgIHsgcXVhbnRpdHk6ICcxJywgdmFyaWF0aW9uczogW10gfSxcbiAgICBdLFxuICB9O1xuICBleHBlY3QodG9TZWxlY3Rpb25zKHZhbHVlcywgZ3JvdXBSdWxlcykpLnRvRXF1YWwoe1xuICAgIGZpZWxkVmFsdWVzOiB7fSxcbiAgICBncm91cHM6IFtcbiAgICAgIHsgcXVhbnRpdHk6IDEwMCwgZmllbGRWYWx1ZXM6IHt9IH0sXG4gICAgICB7IHF1YW50aXR5OiAxLCBmaWVsZFZhbHVlczoge30gfSxcbiAgICBdLFxuICB9KTtcbn0pO1xuXG50ZXN0KCdlbXB0eS9hYnNlbnQgdmFsdWVzIHByb2R1Y2UgZW1wdHkgc2VsZWN0aW9ucycsICgpID0+IHtcbiAgY29uc3QgdmFsdWVzID0geyBxdWFudGl0eTogMCwgdmFyaWF0aW9uczogW3sgdmFyaWF0aW9uRmllbGQ6IHsgaWQ6IDEgfSwgdmFsdWU6ICcnIH1dIH07XG4gIGV4cGVjdCh0b1NlbGVjdGlvbnModmFsdWVzLCBydWxlcykpLnRvRXF1YWwoe1xuICAgIHF1YW50aXR5OiAwLFxuICAgIGZpZWxkVmFsdWVzOiB7IDE6IHsgc2VsZWN0ZWRPcHRpb25JZHM6IFtdIH0gfSxcbiAgfSk7XG59KTtcblxudGVzdCgnYXJlYSBmaWVsZCB2YWx1ZSBpcyBwYXNzZWQgdGhyb3VnaCBhcyBhIG5vbi1zZWxlY3RhYmxlIHN0cmluZycsICgpID0+IHtcbiAgY29uc3QgYXJlYVJ1bGVzOiBhbnkgPSB7XG4gICAgaGFzR3JvdXBzOiBmYWxzZSxcbiAgICBmaWVsZHM6IFt7IGlkOiAxNCwgaXNTZWxlY3RhYmxlOiBmYWxzZSwgb3B0aW9uczogW10gfV0sXG4gICAgZ3JvdXBGaWVsZHM6IFtdLFxuICB9O1xuICBjb25zdCB2YWx1ZXMgPSB7XG4gICAgcXVhbnRpdHk6IDEsXG4gICAgdmFyaWF0aW9uczogW1xuICAgICAgeyB2YXJpYXRpb25GaWVsZDogeyBpZDogMTQsIGZpZWxkVHlwZTogMTQgfSwgdmFsdWU6ICc3LDQnIH0sXG4gICAgXSxcbiAgfTtcbiAgZXhwZWN0KHRvU2VsZWN0aW9ucyh2YWx1ZXMsIGFyZWFSdWxlcykpLnRvRXF1YWwoe1xuICAgIHF1YW50aXR5OiAxLFxuICAgIGZpZWxkVmFsdWVzOiB7XG4gICAgICAxNDogeyB2YWx1ZTogJzcsNCcgfSxcbiAgICB9LFxuICB9KTtcbn0pO1xuXG4gdGVzdCgnYWNjZXB0cyBwcmljaW5nIHJ1bGVzIHdpdGhvdXQgb3B0aW9uYWwgZmllbGQgY29sbGVjdGlvbnMnLCAoKSA9PiB7XG4gICBleHBlY3QodG9TZWxlY3Rpb25zKHsgcXVhbnRpdHk6IDIgfSwge30pKS50b0VxdWFsKHsgcXVhbnRpdHk6IDIsIGZpZWxkVmFsdWVzOiB7fSB9KTtcbiB9KTtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsWUFBWSxRQUFRLGNBQWM7QUFFM0MsSUFBTUMsS0FBVSxHQUFHO0VBQ2pCQyxTQUFTLEVBQUUsS0FBSztFQUNoQkMsTUFBTSxFQUFFLENBQ047SUFBRUMsRUFBRSxFQUFFLENBQUM7SUFBRUMsWUFBWSxFQUFFLElBQUk7SUFBRUMsT0FBTyxFQUFFO0VBQUcsQ0FBQyxFQUMxQztJQUFFRixFQUFFLEVBQUUsQ0FBQztJQUFFQyxZQUFZLEVBQUUsS0FBSztJQUFFQyxPQUFPLEVBQUU7RUFBRyxDQUFDLENBQzVDO0VBQ0RDLFdBQVcsRUFBRTtBQUNmLENBQUM7QUFFREMsSUFBSSxDQUFDLHNEQUFzRCxFQUFFLFlBQU07RUFDakUsSUFBTUMsTUFBTSxHQUFHO0lBQ2JDLFFBQVEsRUFBRSxFQUFFO0lBQ1pDLFVBQVUsRUFBRSxDQUNWO01BQUVDLGNBQWMsRUFBRTtRQUFFUixFQUFFLEVBQUU7TUFBRSxDQUFDO01BQUVTLEtBQUssRUFBRTtJQUFVLENBQUMsRUFDL0M7TUFBRUQsY0FBYyxFQUFFO1FBQUVSLEVBQUUsRUFBRTtNQUFFLENBQUM7TUFBRVMsS0FBSyxFQUFFO0lBQVEsQ0FBQztFQUVqRCxDQUFDO0VBQ0RDLE1BQU0sQ0FBQ2Qs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
@@ -0,0 +1,2 @@
1
+ export declare function visibleSelectableOptions(variation: any): any[];
2
+ export declare function shouldHideSingleOptionSelection(variation: any): boolean;
@@ -0,0 +1,22 @@
1
+ import { FieldType } from './types';
2
+ var SINGLE_OPTION_FIELD_TYPES = new Set([FieldType.SELECT, FieldType.RADIO, FieldType.COLOUR_SELECT, FieldType.IMAGE_SELECT, FieldType.TURNAROUND_TIME]);
3
+ export function visibleSelectableOptions(variation) {
4
+ var _variation$variationF, _variation$variationF2;
5
+ var options = variation === null || variation === void 0 ? void 0 : variation.selectableOptions;
6
+ if (Array.isArray(options) && options.length > 0) {
7
+ return options.filter(function (option) {
8
+ return (option === null || option === void 0 ? void 0 : option.isVisible) !== false;
9
+ });
10
+ }
11
+ var fieldOptions = (_variation$variationF = variation === null || variation === void 0 || (_variation$variationF2 = variation.variationField) === null || _variation$variationF2 === void 0 ? void 0 : _variation$variationF2.options) !== null && _variation$variationF !== void 0 ? _variation$variationF : [];
12
+ return fieldOptions.filter(function (option) {
13
+ return (option === null || option === void 0 ? void 0 : option.include) !== false;
14
+ });
15
+ }
16
+ export function shouldHideSingleOptionSelection(variation) {
17
+ var _variation$variationF3;
18
+ var fieldType = Number(variation === null || variation === void 0 || (_variation$variationF3 = variation.variationField) === null || _variation$variationF3 === void 0 ? void 0 : _variation$variationF3.fieldType);
19
+ if (!SINGLE_OPTION_FIELD_TYPES.has(fieldType)) return false;
20
+ return visibleSelectableOptions(variation).length <= 1;
21
+ }
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWVsZFR5cGUiLCJTSU5HTEVfT1BUSU9OX0ZJRUxEX1RZUEVTIiwiU2V0IiwiU0VMRUNUIiwiUkFESU8iLCJDT0xPVVJfU0VMRUNUIiwiSU1BR0VfU0VMRUNUIiwiVFVSTkFST1VORF9USU1FIiwidmlzaWJsZVNlbGVjdGFibGVPcHRpb25zIiwidmFyaWF0aW9uIiwiX3ZhcmlhdGlvbiR2YXJpYXRpb25GIiwiX3ZhcmlhdGlvbiR2YXJpYXRpb25GMiIsIm9wdGlvbnMiLCJzZWxlY3RhYmxlT3B0aW9ucyIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImZpbHRlciIsIm9wdGlvbiIsImlzVmlzaWJsZSIsImZpZWxkT3B0aW9ucyIsInZhcmlhdGlvbkZpZWxkIiwiaW5jbHVkZSIsInNob3VsZEhpZGVTaW5nbGVPcHRpb25TZWxlY3Rpb24iLCJfdmFyaWF0aW9uJHZhcmlhdGlvbkYzIiwiZmllbGRUeXBlIiwiTnVtYmVyIiwiaGFzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NpbmdsZU9wdGlvblZhcmlhdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgU0lOR0xFX09QVElPTl9GSUVMRF9UWVBFUyA9IG5ldyBTZXQ8bnVtYmVyPihbXG4gIEZpZWxkVHlwZS5TRUxFQ1QsXG4gIEZpZWxkVHlwZS5SQURJTyxcbiAgRmllbGRUeXBlLkNPTE9VUl9TRUxFQ1QsXG4gIEZpZWxkVHlwZS5JTUFHRV9TRUxFQ1QsXG4gIEZpZWxkVHlwZS5UVVJOQVJPVU5EX1RJTUUsXG5dKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZpc2libGVTZWxlY3RhYmxlT3B0aW9ucyh2YXJpYXRpb246IGFueSk6IGFueVtdIHtcbiAgY29uc3Qgb3B0aW9ucyA9IHZhcmlhdGlvbj8uc2VsZWN0YWJsZU9wdGlvbnM7XG4gIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMpICYmIG9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBvcHRpb25zLmZpbHRlcigob3B0aW9uOiBhbnkpID0+IG9wdGlvbj8uaXNWaXNpYmxlICE9PSBmYWxzZSk7XG4gIH1cbiAgY29uc3QgZmllbGRPcHRpb25zID0gdmFyaWF0aW9uPy52YXJpYXRpb25GaWVsZD8ub3B0aW9ucyA/PyBbXTtcbiAgcmV0dXJuIGZpZWxkT3B0aW9ucy5maWx0ZXIoKG9wdGlvbjogYW55KSA9PiBvcHRpb24/LmluY2x1ZGUgIT09IGZhbHNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZEhpZGVTaW5nbGVPcHRpb25TZWxlY3Rpb24odmFyaWF0aW9uOiBhbnkpOiBib29sZWFuIHtcbiAgY29uc3QgZmllbGRUeXBlID0gTnVtYmVyKHZhcmlhdGlvbj8udmFyaWF0aW9uRmllbGQ/LmZpZWxkVHlwZSk7XG4gIGlmICghU0lOR0xFX09QVElPTl9GSUVMRF9UWVBFUy5oYXMoZmllbGRUeXBlKSkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gdmlzaWJsZVNlbGVjdGFibGVPcHRpb25zKHZhcmlhdGlvbikubGVuZ3RoIDw9IDE7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsUUFBUSxTQUFTO0FBRW5DLElBQU1DLHlCQUF5QixHQUFHLElBQUlDLEdBQUcsQ0FBUyxDQUNoREYsU0FBUyxDQUFDRyxNQUFNLEVBQ2hCSCxTQUFTLENBQUNJLEtBQUssRUFDZkosU0FBUyxDQUFDSyxhQUFhLEVBQ3ZCTCxTQUFTLENBQUNNLFlBQVksRUFDdEJOLFNBQVMsQ0FBQ08sZUFBZSxDQUMxQixDQUFDO0FBRUYsT0FBTyxTQUFTQyx3QkFBd0JBLENBQUNDLFNBQWMsRUFBUztFQUFBLElBQUFDLHFCQUFBLEVBQUFDLHNCQUFBO0VBQzlELElBQU1DLE9BQU8sR0FBR0gsU0FBUyxhQUFUQSxTQUFTLHVCQUFUQSxTQUFTLENBQUVJLGlCQUFpQjtFQUM1QyxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0gsT0FBTyxDQUFDLElBQUlBLE9BQU8sQ0FBQ0ksTUFBTSxHQUFHLENBQUMsRUFBRTtJQUNoRCxPQUFPSixPQUFPLENBQUNLLE1BQU0sQ0FBQyxVQUFDQyxNQUFXO01BQUEsT0FBSyxDQUFBQSxNQUFNLGFBQU5BLE1BQU0sdUJBQU5BLE1BQU0sQ0FBRUMsU0FBUyxNQUFLLEtBQUs7SUFBQSxFQUFDO0VBQ3JFO0VBQ0EsSUFBTUMsWUFBWSxJQUFBVixxQkFBQSxHQUFHRCxTQUFTLGFBQVRBLFNBQVMsZ0JBQUFFLHNCQUFBLEdBQVRGLFNBQVMsQ0FBRVksY0FBYyxjQUFBVixzQkFBQSx1QkFBekJBLHNCQUFBLENBQTJCQyxPQUFPLGNBQUFGLHFCQUFBLGNBQUFBLHFCQUFBLEdBQUksRUFBRTtFQUM3RCxPQUFPVSxZQUFZLENBQUNILE1BQU0sQ0FBQyxVQUFDQyxNQUFXO0lBQUEsT0FBSyxDQUFBQSxNQUFNLGFBQU5BLE1BQU0sdUJBQU5BLE1BQU0sQ0FBRUksT0FBTyxNQUFLLEtBQUs7RUFBQSxFQUFDO0FBQ3hFO0FBRUEsT0FBTyxTQUFTQywrQkFBK0JBLENBQUNkLFNBQWMsRUFBVztFQUFBLElBQUFlLHNCQUFBO0VBQ3ZFLElBQU1DLFNBQVMsR0FBR0MsTUFBTSxDQUFDakIsU0FBUyxhQUFUQSxTQUFTLGdCQUFBZSxzQkFBQSxHQUFUZixTQUFTLENBQUVZLGNBQWMsY0FBQUcsc0JBQUEsdUJBQXpCQSxzQkFBQSxDQUEyQkMsU0FBUyxDQUFDO0VBQzlELElBQUksQ0FBQ3hCLHlCQUF5QixDQUFDMEIsR0FBRyxDQUFDRixTQUFTLENBQUMsRUFBRSxPQUFPLEtBQUs7RUFDM0QsT0FBT2pCLHdCQUF3QixDQUFDQyxTQUFTLENBQUMsQ0FBQ08sTUFBTSxJQUFJLENBQUM7QUFDeEQiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,59 @@
1
+ import { shouldHideSingleOptionSelection, visibleSelectableOptions } from './singleOptionVariation';
2
+ import { FieldType } from './types';
3
+ test('counts only visible selectable options', function () {
4
+ expect(visibleSelectableOptions({
5
+ selectableOptions: [{
6
+ optionId: 1,
7
+ isVisible: true
8
+ }, {
9
+ optionId: 2,
10
+ isVisible: false
11
+ }]
12
+ })).toHaveLength(1);
13
+ });
14
+ test('hides colour and select fields with one visible option', function () {
15
+ expect(shouldHideSingleOptionSelection({
16
+ variationField: {
17
+ fieldType: FieldType.COLOUR_SELECT
18
+ },
19
+ selectableOptions: [{
20
+ optionId: 1,
21
+ isVisible: true
22
+ }]
23
+ })).toBe(true);
24
+ expect(shouldHideSingleOptionSelection({
25
+ variationField: {
26
+ fieldType: FieldType.SELECT
27
+ },
28
+ selectableOptions: [{
29
+ optionId: 1,
30
+ isVisible: true
31
+ }]
32
+ })).toBe(true);
33
+ });
34
+ test('keeps the picker when more than one option is visible', function () {
35
+ expect(shouldHideSingleOptionSelection({
36
+ variationField: {
37
+ fieldType: FieldType.RADIO
38
+ },
39
+ selectableOptions: [{
40
+ optionId: 1,
41
+ isVisible: true
42
+ }, {
43
+ optionId: 2,
44
+ isVisible: true
45
+ }]
46
+ })).toBe(false);
47
+ });
48
+ test('still shows a checkbox even with one option', function () {
49
+ expect(shouldHideSingleOptionSelection({
50
+ variationField: {
51
+ fieldType: FieldType.CHECKBOX
52
+ },
53
+ selectableOptions: [{
54
+ optionId: 1,
55
+ isVisible: true
56
+ }]
57
+ })).toBe(false);
58
+ });
59
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzaG91bGRIaWRlU2luZ2xlT3B0aW9uU2VsZWN0aW9uIiwidmlzaWJsZVNlbGVjdGFibGVPcHRpb25zIiwiRmllbGRUeXBlIiwidGVzdCIsImV4cGVjdCIsInNlbGVjdGFibGVPcHRpb25zIiwib3B0aW9uSWQiLCJpc1Zpc2libGUiLCJ0b0hhdmVMZW5ndGgiLCJ2YXJpYXRpb25GaWVsZCIsImZpZWxkVHlwZSIsIkNPTE9VUl9TRUxFQ1QiLCJ0b0JlIiwiU0VMRUNUIiwiUkFESU8iLCJDSEVDS0JPWCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zaW5nbGVPcHRpb25WYXJpYXRpb24udGVzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBzaG91bGRIaWRlU2luZ2xlT3B0aW9uU2VsZWN0aW9uLFxuICB2aXNpYmxlU2VsZWN0YWJsZU9wdGlvbnMsXG59IGZyb20gJy4vc2luZ2xlT3B0aW9uVmFyaWF0aW9uJztcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG50ZXN0KCdjb3VudHMgb25seSB2aXNpYmxlIHNlbGVjdGFibGUgb3B0aW9ucycsICgpID0+IHtcbiAgZXhwZWN0KFxuICAgIHZpc2libGVTZWxlY3RhYmxlT3B0aW9ucyh7XG4gICAgICBzZWxlY3RhYmxlT3B0aW9uczogW1xuICAgICAgICB7IG9wdGlvbklkOiAxLCBpc1Zpc2libGU6IHRydWUgfSxcbiAgICAgICAgeyBvcHRpb25JZDogMiwgaXNWaXNpYmxlOiBmYWxzZSB9LFxuICAgICAgXSxcbiAgICB9KVxuICApLnRvSGF2ZUxlbmd0aCgxKTtcbn0pO1xuXG50ZXN0KCdoaWRlcyBjb2xvdXIgYW5kIHNlbGVjdCBmaWVsZHMgd2l0aCBvbmUgdmlzaWJsZSBvcHRpb24nLCAoKSA9PiB7XG4gIGV4cGVjdChcbiAgICBzaG91bGRIaWRlU2luZ2xlT3B0aW9uU2VsZWN0aW9uKHtcbiAgICAgIHZhcmlhdGlvbkZpZWxkOiB7IGZpZWxkVHlwZTogRmllbGRUeXBlLkNPTE9VUl9TRUxFQ1QgfSxcbiAgICAgIHNlbGVjdGFibGVPcHRpb25zOiBbeyBvcHRpb25JZDogMSwgaXNWaXNpYmxlOiB0cnVlIH1dLFxuICAgIH0pXG4gICkudG9CZSh0cnVlKTtcbiAgZXhwZWN0KFxuICAgIHNob3VsZEhpZGVTaW5nbGVPcHRpb25TZWxlY3Rpb24oe1xuICAgICAgdmFyaWF0aW9uRmllbGQ6IHsgZmllbGRUeXBlOiBGaWVsZFR5cGUuU0VMRUNUIH0sXG4gICAgICBzZWxlY3RhYmxlT3B0aW9uczogW3sgb3B0aW9uSWQ6IDEsIGlzVmlzaWJsZTogdHJ1ZSB9XSxcbiAgICB9KVxuICApLnRvQmUodHJ1ZSk7XG59KTtcblxudGVzdCgna2VlcHMgdGhlIHBpY2tlciB3aGVuIG1vcmUgdGhhbiBvbmUgb3B0aW9uIGlzIHZpc2libGUnLCAoKSA9PiB7XG4gIGV4cGVjdChcbiAgICBzaG91bGRIaWRlU2luZ2xlT3B0aW9uU2VsZWN0aW9uKHtcbiAgICAgIHZhcmlhdGlvbkZpZWxkOiB7IGZpZWxkVHlwZTogRmllbGRUeXBlLlJBRElPIH0sXG4gICAgICBzZWxlY3RhYmxlT3B0aW9uczogW1xuICAgICAgICB7IG9wdGlvbklkOiAxLCBpc1Zpc2libGU6IHRydWUgfSxcbiAgICAgICAgeyBvcHRpb25JZDogMiwgaXNWaXNpYmxlOiB0cnVlIH0sXG4gICAgICBdLFxuICAgIH0pXG4gICkudG9CZShmYWxzZSk7XG59KTtcblxudGVzdCgnc3RpbGwgc2hvd3MgYSBjaGVja2JveCBldmVuIHdpdGggb25lIG9wdGlvbicsICgpID0+IHtcbiAgZXhwZWN0KFxuICAgIHNob3VsZEhpZGVTaW5nbGVPcHRpb25TZWxlY3Rpb24oe1xuICAgICAgdmFyaWF0aW9uRmllbGQ6IHsgZmllbGRUeXBlOiBGaWVsZFR5cGUuQ0hFQ0tCT1ggfSxcbiAgICAgIHNlbGVjdGFibGVPcHRpb25zOiBbeyBvcHRpb25JZDogMSwgaXNWaXNpYmxlOiB0cnVlIH1dLFxuICAgIH0pXG4gICkudG9CZShmYWxzZSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRUEsK0JBQStCLEVBQy9CQyx3QkFBd0IsUUFDbkIseUJBQXlCO0FBQ2hDLFNBQVNDLFNBQVMsUUFBUSxTQUFTO0FBRW5DQyxJQUFJLENBQUMsd0NBQXdDLEVBQUUsWUFBTTtFQUNuREMsTUFBTSxDQUNKSCx3QkFBd0IsQ0FBQztJQUN2QkksaUJBQWlCLEVBQUUsQ0FDakI7TUFBRUMsUUFBUSxFQUFFLENBQUM7TUFBRUMsU0FBUyxFQUFFO0lBQUssQ0FBQyxFQUNoQztNQUFFRCxRQUFRLEVBQUUsQ0FBQztNQUFFQyxTQUFTLEVBQUU7SUFBTSxDQUFDO0VBRXJDLENBQUMsQ0FDSCxDQUFDLENBQUNDLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBRUZMLElBQUksQ0FBQyx3REFBd0QsRUFBRSxZQUFNO0VBQ25FQyxNQUFNLENBQ0pKLCtCQUErQixDQUFDO0lBQzlCUyxjQUFjLEVBQUU7TUFBRUMsU0FBUyxFQUFFUixTQUFTLENBQUNTO0lBQWMsQ0FBQztJQUN0RE4saUJBQWlCLEVBQUUsQ0FBQztNQUFFQyxRQUFRLEVBQUUsQ0FBQztNQUFFQyxTQUFTLEVBQUU7SUFBSyxDQUFDO0VBQ3RELENBQUMsQ0FDSCxDQUFDLENBQUNLLElBQUksQ0FBQyxJQUFJLENBQUM7RUFDWlIsTUFBTSxDQUNKSiwrQkFBK0IsQ0FBQztJQUM5QlMsY0FBYyxFQUFFO01BQUVDLFNBQVMsRUFBRVIsU0FBUyxDQUFDVztJQUFPLENBQUM7SUFDL0NSLGlCQUFpQixFQUFFLENBQUM7TUFBRUMsUUFBUSxFQUFFLENBQUM7TUFBRUMsU0FBUyxFQUFFO0lBQUssQ0FBQztFQUN0RCxDQUFDLENBQ0gsQ0FBQyxDQUFDSyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUZULElBQUksQ0FBQyx1REFBdUQsRUFBRSxZQUFNO0VBQ2xFQyxNQUFNLENBQ0pKLCtCQUErQixDQUFDO0lBQzlCUyxjQUFjLEVBQUU7TUFBRUMsU0FBUyxFQUFFUixTQUFTLENBQUNZO0lBQU0sQ0FBQztJQUM5Q1QsaUJBQWlCLEVBQUUsQ0FDakI7TUFBRUMsUUFBUSxFQUFFLENBQUM7TUFBRUMsU0FBUyxFQUFFO0lBQUssQ0FBQyxFQUNoQztNQUFFRCxRQUFRLEVBQUUsQ0FBQztNQUFFQyxTQUFTLEVBQUU7SUFBSyxDQUFDO0VBRXBDLENBQUMsQ0FDSCxDQUFDLENBQUNLLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRlQsSUFBSSxDQUFDLDZDQUE2QyxFQUFFLFlBQU07RUFDeERDLE1BQU0sQ0FDSkosK0JBQStCLENBQUM7SUFDOUJTLGNBQWMsRUFBRTtNQUFFQyxTQUFTLEVBQUVSLFNBQVMsQ0FBQ2E7SUFBUyxDQUFDO0lBQ2pEVixpQkFBaUIsRUFBRSxDQUFDO01BQUVDLFFBQVEsRUFBRSxDQUFDO01BQUVDLFNBQVMsRUFBRTtJQUFLLENBQUM7RUFDdEQsQ0FBQyxDQUNILENBQUMsQ0FBQ0ssSUFBSSxDQUFDLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1 @@
1
+ export declare const supportedNumbers: any;
@@ -0,0 +1,27 @@
1
+ export var supportedNumbers = {
2
+ AU: 'Australia (+61)',
3
+ AE: 'United Arab Emirates (+971)',
4
+ BH: 'Bahrain (+973)',
5
+ CN: 'China (+86)',
6
+ DK: 'Denmark (+45)',
7
+ ES: 'Spain (+34)',
8
+ FR: 'France (+33)',
9
+ GB: 'United Kingdom (+44)',
10
+ HK: 'Hong Kong (+852)',
11
+ ID: 'Indonesia (+62)',
12
+ IN: 'India (+91)',
13
+ IT: 'Italy (+39)',
14
+ KR: 'South Korea (+82)',
15
+ NC: 'New Caledonia (+687)',
16
+ NZ: 'New Zealand (+64)',
17
+ OM: 'Oman (+968)',
18
+ PH: 'Philippines (+63)',
19
+ PT: 'Portugal (+351)',
20
+ QA: 'Qatar (+974)',
21
+ SE: 'Sweden (+46)',
22
+ SG: 'Singapore (+65)',
23
+ TH: 'Thailand (+66)',
24
+ US: 'United States (+1)',
25
+ ZA: 'South Africa (+27)'
26
+ };
27
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdXBwb3J0ZWROdW1iZXJzIiwiQVUiLCJBRSIsIkJIIiwiQ04iLCJESyIsIkVTIiwiRlIiLCJHQiIsIkhLIiwiSUQiLCJJTiIsIklUIiwiS1IiLCJOQyIsIk5aIiwiT00iLCJQSCIsIlBUIiwiUUEiLCJTRSIsIlNHIiwiVEgiLCJVUyIsIlpBIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3N1cHBvcnRlZE51bWJlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHN1cHBvcnRlZE51bWJlcnM6IGFueSA9IHtcbiAgQVU6ICdBdXN0cmFsaWEgKCs2MSknLFxuICBBRTogJ1VuaXRlZCBBcmFiIEVtaXJhdGVzICgrOTcxKScsXG4gIEJIOiAnQmFocmFpbiAoKzk3MyknLFxuICBDTjogJ0NoaW5hICgrODYpJyxcbiAgREs6ICdEZW5tYXJrICgrNDUpJyxcbiAgRVM6ICdTcGFpbiAoKzM0KScsXG4gIEZSOiAnRnJhbmNlICgrMzMpJyxcbiAgR0I6ICdVbml0ZWQgS2luZ2RvbSAoKzQ0KScsXG4gIEhLOiAnSG9uZyBLb25nICgrODUyKScsXG4gIElEOiAnSW5kb25lc2lhICgrNjIpJyxcbiAgSU46ICdJbmRpYSAoKzkxKScsXG4gIElUOiAnSXRhbHkgKCszOSknLFxuICBLUjogJ1NvdXRoIEtvcmVhICgrODIpJyxcbiAgTkM6ICdOZXcgQ2FsZWRvbmlhICgrNjg3KScsXG4gIE5aOiAnTmV3IFplYWxhbmQgKCs2NCknLFxuICBPTTogJ09tYW4gKCs5NjgpJyxcbiAgUEg6ICdQaGlsaXBwaW5lcyAoKzYzKScsXG4gIFBUOiAnUG9ydHVnYWwgKCszNTEpJyxcbiAgUUE6ICdRYXRhciAoKzk3NCknLFxuICBTRTogJ1N3ZWRlbiAoKzQ2KScsXG4gIFNHOiAnU2luZ2Fwb3JlICgrNjUpJyxcbiAgVEg6ICdUaGFpbGFuZCAoKzY2KScsXG4gIFVTOiAnVW5pdGVkIFN0YXRlcyAoKzEpJyxcbiAgWkE6ICdTb3V0aCBBZnJpY2EgKCsyNyknLFxufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFNQSxnQkFBcUIsR0FBRztFQUNuQ0MsRUFBRSxFQUFFLGlCQUFpQjtFQUNyQkMsRUFBRSxFQUFFLDZCQUE2QjtFQUNqQ0MsRUFBRSxFQUFFLGdCQUFnQjtFQUNwQkMsRUFBRSxFQUFFLGFBQWE7RUFDakJDLEVBQUUsRUFBRSxlQUFlO0VBQ25CQyxFQUFFLEVBQUUsYUFBYTtFQUNqQkMsRUFBRSxFQUFFLGNBQWM7RUFDbEJDLEVBQUUsRUFBRSxzQkFBc0I7RUFDMUJDLEVBQUUsRUFBRSxrQkFBa0I7RUFDdEJDLEVBQUUsRUFBRSxpQkFBaUI7RUFDckJDLEVBQUUsRUFBRSxhQUFhO0VBQ2pCQyxFQUFFLEVBQUUsYUFBYTtFQUNqQkMsRUFBRSxFQUFFLG1CQUFtQjtFQUN2QkMsRUFBRSxFQUFFLHNCQUFzQjtFQUMxQkMsRUFBRSxFQUFFLG1CQUFtQjtFQUN2QkMsRUFBRSxFQUFFLGFBQWE7RUFDakJDLEVBQUUsRUFBRSxtQkFBbUI7RUFDdkJDLEVBQUUsRUFBRSxpQkFBaUI7RUFDckJDLEVBQUUsRUFBRSxjQUFjO0VBQ2xCQyxFQUFFLEVBQUUsY0FBYztFQUNsQkMsRUFBRSxFQUFFLGlCQUFpQjtFQUNyQkMsRUFBRSxFQUFFLGdCQUFnQjtFQUNwQkMsRUFBRSxFQUFFLG9CQUFvQjtFQUN4QkMsRUFBRSxFQUFFO0FBQ04sQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,114 @@
1
+ export declare enum ProductType {
2
+ SUPPLIER_MOD = 0,
3
+ SUPPLIER = 1,
4
+ SELLER = 2,
5
+ SELLER_MOD = 3,
6
+ CLONED_SUPPLIER_MOD = 4,
7
+ CLONED_SELLER_MOD = 5,
8
+ PRODUCTION_MOD = 6,
9
+ CLONED_SUPPLIER = 7,
10
+ INVENTORY_SELLER = 8,
11
+ INVENTORY_SUPPLIER = 9,
12
+ SELLER_GROUP_BUY = 10,
13
+ SUPPLIER_RESELL_MOD = 11,
14
+ SUPPLIER_RESELL = 12,
15
+ SUPPLIER_GROUP_BUY_INVENTORY = 13,
16
+ CLONED_INVENTORY_SELLER = 14,
17
+ CLONED_SELLER_GROUP_BUY_INVENTORY = 15,
18
+ CLONED_SUPPLIER_RESELL_MOD = 16,
19
+ SUPPLIER_TO_SUPPLIER_RESELL_MOD = 17,
20
+ CLONED_SUPPLIER_RESELL = 18,
21
+ SUPPLY_DOMAIN_REFERENCE = 19,
22
+ SELLER_FILE_DOWNLOAD = 20,
23
+ SUPPLIER_MOD_SUPPLY_CHAIN_REQUEST = 21,
24
+ SUPPLIER_SUPPLY_CHAIN_REQUEST = 22,
25
+ LEAD_FORM = 23
26
+ }
27
+ export declare enum FieldType {
28
+ TEXT_INPUT = 1,
29
+ SELECT = 2,
30
+ FILE_UPLOAD = 3,
31
+ TEXT_AREA = 4,
32
+ NUMBER_INPUT = 5,
33
+ CHECKBOX = 6,
34
+ RADIO = 7,
35
+ FIELD_INSTRUCTIONS = 8,
36
+ IMAGE_SELECT = 9,
37
+ COLOUR_PICKER = 10,
38
+ COLOUR_SELECT = 11,
39
+ TURNAROUND_TIME = 12,
40
+ COLOUR_EXTRACT = 13,
41
+ AREA = 14
42
+ }
43
+ export type DraftCanvasObjectType = 'text' | 'image' | 'rect';
44
+ export type DraftArtworkRole = 'auto' | 'text' | 'image' | 'text_fill' | 'body_colour_fill';
45
+ export interface DraftFieldBinding {
46
+ fieldId: number;
47
+ role?: DraftArtworkRole;
48
+ targetFieldId?: number;
49
+ lockAspectRatio?: boolean;
50
+ }
51
+ export interface DraftCanvasObject {
52
+ id: string;
53
+ type: DraftCanvasObjectType;
54
+ merchiFieldId?: number;
55
+ colourFieldId?: number;
56
+ artworkRole?: DraftArtworkRole;
57
+ locked?: boolean;
58
+ lockAspectRatio?: boolean;
59
+ x: number;
60
+ y: number;
61
+ width: number;
62
+ height: number;
63
+ rotation: number;
64
+ scaleX: number;
65
+ scaleY: number;
66
+ text?: string;
67
+ fontSize?: number;
68
+ fill?: string;
69
+ fontFamily?: string;
70
+ align?: string;
71
+ src?: string;
72
+ }
73
+ export interface DraftCanvasState {
74
+ width: number;
75
+ height: number;
76
+ objects: DraftCanvasObject[];
77
+ detachedFieldIds?: number[];
78
+ }
79
+ export interface DraftCanvasHandle {
80
+ exportPngs: () => Promise<{
81
+ draft: string;
82
+ canvasPreview: string;
83
+ }>;
84
+ }
85
+ export interface RenderedDraftPreview {
86
+ templateId: number;
87
+ draft: string;
88
+ canvasPreview: string;
89
+ canvasJson?: DraftCanvasState;
90
+ }
91
+ export interface DraftTemplateData {
92
+ groupIndex: number;
93
+ productId: number;
94
+ templateData: RenderedDraftPreview[];
95
+ previews: any[];
96
+ }
97
+ export declare const BLANK_TEMPLATE_ID = 0;
98
+ export declare const DEFAULT_ARTBOARD: {
99
+ width: number;
100
+ height: number;
101
+ };
102
+ export interface MerchiFile {
103
+ id?: number;
104
+ uploadId?: string;
105
+ name?: string | null;
106
+ mimetype?: string | null;
107
+ size?: number;
108
+ creationDate?: Date | null;
109
+ archived?: Date | null;
110
+ cachedViewUrl?: string | null;
111
+ viewUrlExpires?: Date | null;
112
+ cachedDownloadUrl?: string | null;
113
+ fileData?: File;
114
+ }