@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.
- package/README.md +272 -0
- package/lib/actions/jobs.d.ts +3 -0
- package/lib/actions/jobs.js +80 -0
- package/lib/actions/leads.d.ts +7 -0
- package/lib/actions/leads.js +67 -0
- package/lib/components/AlertVariationSellerEditable.d.ts +6 -0
- package/lib/components/AlertVariationSellerEditable.js +46 -0
- package/lib/components/Collapse.d.ts +3 -0
- package/lib/components/Collapse.js +34 -0
- package/lib/components/DateCountdown.d.ts +44 -0
- package/lib/components/DateCountdown.js +188 -0
- package/lib/components/DropzoneInput.d.ts +10 -0
- package/lib/components/DropzoneInput.js +169 -0
- package/lib/components/DynamicVariationInput.d.ts +9 -0
- package/lib/components/DynamicVariationInput.js +71 -0
- package/lib/components/FormLead.d.ts +10 -0
- package/lib/components/FormLead.js +215 -0
- package/lib/components/GroupInventory.d.ts +6 -0
- package/lib/components/GroupInventory.js +16 -0
- package/lib/components/InputGroupQuantity.d.ts +8 -0
- package/lib/components/InputGroupQuantity.js +117 -0
- package/lib/components/InputHiddenStatic.d.ts +8 -0
- package/lib/components/InputHiddenStatic.js +24 -0
- package/lib/components/InputProductQuantity.d.ts +7 -0
- package/lib/components/InputProductQuantity.js +102 -0
- package/lib/components/InventoryStatus.d.ts +7 -0
- package/lib/components/InventoryStatus.js +67 -0
- package/lib/components/MerchiProductForm.d.ts +62 -0
- package/lib/components/MerchiProductForm.js +51 -0
- package/lib/components/PriceMatrix.d.ts +27 -0
- package/lib/components/PriceMatrix.js +106 -0
- package/lib/components/ProductButtonsSubmit.d.ts +3 -0
- package/lib/components/ProductButtonsSubmit.js +52 -0
- package/lib/components/ProductFeatureDeadline.d.ts +3 -0
- package/lib/components/ProductFeatureDeadline.js +25 -0
- package/lib/components/ProductGroupBuyStatus.d.ts +3 -0
- package/lib/components/ProductGroupBuyStatus.js +47 -0
- package/lib/components/ProductPriceMatrix.d.ts +3 -0
- package/lib/components/ProductPriceMatrix.js +51 -0
- package/lib/components/ProductTitle.d.ts +3 -0
- package/lib/components/ProductTitle.js +36 -0
- package/lib/components/ProductTotalCost.d.ts +3 -0
- package/lib/components/ProductTotalCost.js +74 -0
- package/lib/components/ProductUnitPrice.d.ts +7 -0
- package/lib/components/ProductUnitPrice.js +51 -0
- package/lib/components/TooltipElement.d.ts +9 -0
- package/lib/components/TooltipElement.js +35 -0
- package/lib/components/VariationAreaInput.d.ts +8 -0
- package/lib/components/VariationAreaInput.js +219 -0
- package/lib/components/VariationCheckBoxOrRadioOption.d.ts +10 -0
- package/lib/components/VariationCheckBoxOrRadioOption.js +82 -0
- package/lib/components/VariationCheckboxRadio.d.ts +17 -0
- package/lib/components/VariationCheckboxRadio.js +57 -0
- package/lib/components/VariationColourExtractInput.d.ts +8 -0
- package/lib/components/VariationColourExtractInput.js +395 -0
- package/lib/components/VariationError.d.ts +7 -0
- package/lib/components/VariationError.js +52 -0
- package/lib/components/VariationFieldInputInstructions.d.ts +10 -0
- package/lib/components/VariationFieldInputInstructions.js +50 -0
- package/lib/components/VariationFieldInstructions.d.ts +3 -0
- package/lib/components/VariationFieldInstructions.js +22 -0
- package/lib/components/VariationFieldNameAndCostInputs.d.ts +7 -0
- package/lib/components/VariationFieldNameAndCostInputs.js +34 -0
- package/lib/components/VariationFieldOptionDefaultInputs.d.ts +7 -0
- package/lib/components/VariationFieldOptionDefaultInputs.js +48 -0
- package/lib/components/VariationFieldStaticValues.d.ts +8 -0
- package/lib/components/VariationFieldStaticValues.js +57 -0
- package/lib/components/VariationFileInput.d.ts +8 -0
- package/lib/components/VariationFileInput.js +229 -0
- package/lib/components/VariationInput.d.ts +11 -0
- package/lib/components/VariationInput.js +97 -0
- package/lib/components/VariationLabel.d.ts +11 -0
- package/lib/components/VariationLabel.js +85 -0
- package/lib/components/VariationOptionColour.d.ts +8 -0
- package/lib/components/VariationOptionColour.js +50 -0
- package/lib/components/VariationOptionImage.d.ts +8 -0
- package/lib/components/VariationOptionImage.js +52 -0
- package/lib/components/VariationSelect.d.ts +8 -0
- package/lib/components/VariationSelect.js +66 -0
- package/lib/components/VariationSelectElements.d.ts +16 -0
- package/lib/components/VariationSelectElements.js +141 -0
- package/lib/components/VariationTurnaroundTime.d.ts +9 -0
- package/lib/components/VariationTurnaroundTime.js +156 -0
- package/lib/components/Variations.d.ts +9 -0
- package/lib/components/Variations.js +109 -0
- package/lib/components/VariationsGroups.d.ts +8 -0
- package/lib/components/VariationsGroups.js +79 -0
- package/lib/components/buttons/ButtonAddGroup.d.ts +7 -0
- package/lib/components/buttons/ButtonAddGroup.js +38 -0
- package/lib/components/buttons/ButtonProductSubmit.d.ts +7 -0
- package/lib/components/buttons/ButtonProductSubmit.js +33 -0
- package/lib/components/buttons/ButtonRemoveGroup.d.ts +8 -0
- package/lib/components/buttons/ButtonRemoveGroup.js +25 -0
- package/lib/components/buttons/index.d.ts +4 -0
- package/lib/components/buttons/index.js +5 -0
- package/lib/components/cost.d.ts +11 -0
- package/lib/components/cost.js +44 -0
- package/lib/components/currency.d.ts +16 -0
- package/lib/components/currency.js +184 -0
- package/lib/components/drafts/DraftApprovePanel.d.ts +6 -0
- package/lib/components/drafts/DraftApprovePanel.js +315 -0
- package/lib/components/drafts/DraftCanvas.d.ts +13 -0
- package/lib/components/drafts/DraftCanvas.js +496 -0
- package/lib/components/drafts/DraftDesignerSheet.d.ts +9 -0
- package/lib/components/drafts/DraftDesignerSheet.js +685 -0
- package/lib/components/drafts/ProductDraftsHost.d.ts +3 -0
- package/lib/components/drafts/ProductDraftsHost.js +207 -0
- package/lib/components/drafts/useHtmlImage.d.ts +1 -0
- package/lib/components/drafts/useHtmlImage.js +45 -0
- package/lib/components/icons/IconChecked.d.ts +3 -0
- package/lib/components/icons/IconChecked.js +10 -0
- package/lib/components/icons/IconCheckedOrNoStock.d.ts +7 -0
- package/lib/components/icons/IconCheckedOrNoStock.js +13 -0
- package/lib/components/icons/IconCountryFlag.d.ts +8 -0
- package/lib/components/icons/IconCountryFlag.js +27 -0
- package/lib/components/icons/IconFile.d.ts +7 -0
- package/lib/components/icons/IconFile.js +41 -0
- package/lib/components/icons/IconNoStock.d.ts +3 -0
- package/lib/components/icons/IconNoStock.js +12 -0
- package/lib/components/icons/index.d.ts +5 -0
- package/lib/components/icons/index.js +6 -0
- package/lib/components/quoteAfterFieldChange.d.ts +7 -0
- package/lib/components/quoteAfterFieldChange.js +11 -0
- package/lib/components/quoteAfterFieldChange.test.js +58 -0
- package/lib/components/utils.d.ts +26 -0
- package/lib/components/utils.js +500 -0
- package/lib/context/MerchiProductFormProvider.d.ts +177 -0
- package/lib/context/MerchiProductFormProvider.js +1020 -0
- package/lib/images/product-not-found.png +0 -0
- package/lib/index.d.ts +42 -0
- package/lib/index.js +41 -0
- package/lib/styles/globals.css +1590 -0
- package/lib/styles/globals.css.map +1 -0
- package/lib/styles/globals.scss +1698 -0
- package/lib/utils/area.d.ts +77 -0
- package/lib/utils/area.js +298 -0
- package/lib/utils/cleanFormVariationJson.d.ts +5 -0
- package/lib/utils/cleanFormVariationJson.js +39 -0
- package/lib/utils/cleanFormVariationJson.test.js +54 -0
- package/lib/utils/countries.d.ts +7 -0
- package/lib/utils/countries.js +290 -0
- package/lib/utils/currency.d.ts +2 -0
- package/lib/utils/currency.js +188 -0
- package/lib/utils/draftExport.d.ts +21 -0
- package/lib/utils/draftExport.js +481 -0
- package/lib/utils/draftExport.test.js +78 -0
- package/lib/utils/draftFonts.d.ts +55 -0
- package/lib/utils/draftFonts.js +68 -0
- package/lib/utils/draftStorage.d.ts +25 -0
- package/lib/utils/draftStorage.js +148 -0
- package/lib/utils/draftStorage.test.js +125 -0
- package/lib/utils/draftTemplates.d.ts +87 -0
- package/lib/utils/draftTemplates.js +579 -0
- package/lib/utils/draftTemplates.test.js +476 -0
- package/lib/utils/formErrors.d.ts +2 -0
- package/lib/utils/formErrors.js +29 -0
- package/lib/utils/index.d.ts +3 -0
- package/lib/utils/index.js +4 -0
- package/lib/utils/priceMatrix.d.ts +57 -0
- package/lib/utils/priceMatrix.js +82 -0
- package/lib/utils/priceMatrix.test.js +200 -0
- package/lib/utils/products.d.ts +40 -0
- package/lib/utils/products.js +68 -0
- package/lib/utils/quantity.d.ts +7 -0
- package/lib/utils/quantity.js +19 -0
- package/lib/utils/quantity.test.js +42 -0
- package/lib/utils/reconcileVariations.d.ts +25 -0
- package/lib/utils/reconcileVariations.js +246 -0
- package/lib/utils/reconcileVariations.test.js +239 -0
- package/lib/utils/selectedVariationCosts.d.ts +6 -0
- package/lib/utils/selectedVariationCosts.js +59 -0
- package/lib/utils/selectedVariationCosts.test.js +66 -0
- package/lib/utils/selections.d.ts +23 -0
- package/lib/utils/selections.js +76 -0
- package/lib/utils/selections.test.js +159 -0
- package/lib/utils/singleOptionVariation.d.ts +2 -0
- package/lib/utils/singleOptionVariation.js +22 -0
- package/lib/utils/singleOptionVariation.test.js +59 -0
- package/lib/utils/supportedNumbers.d.ts +1 -0
- package/lib/utils/supportedNumbers.js +27 -0
- package/lib/utils/types.d.ts +114 -0
- package/lib/utils/types.js +50 -0
- package/lib/utils/url.d.ts +3 -0
- package/lib/utils/url.js +65 -0
- package/lib/utils/variationFields.d.ts +5 -0
- package/lib/utils/variationFields.js +116 -0
- package/lib/utils/variationFields.test.js +108 -0
- 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,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
|
+
}
|