@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,315 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ 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; } } }; }
8
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
9
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
10
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
11
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12
+ 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; } }
13
+ 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; }
14
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
15
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
16
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
17
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
18
+ import React, { useState } from 'react';
19
+ import { useMerchiFormContext } from '../../context/MerchiProductFormProvider';
20
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
21
+ function DraftPreview(_ref) {
22
+ var templateData = _ref.templateData;
23
+ var canvasPreview = templateData.canvasPreview;
24
+ return /*#__PURE__*/_jsx("div", {
25
+ children: /*#__PURE__*/_jsx("img", {
26
+ src: canvasPreview,
27
+ alt: "Draft Preview"
28
+ })
29
+ });
30
+ }
31
+ function uploadBase64Image(_x, _x2, _x3, _x4) {
32
+ return _uploadBase64Image.apply(this, arguments);
33
+ }
34
+ /** @merchi/checkout cleanClientFiles reads `.file`, not a bare `{ id }`. */
35
+ function _uploadBase64Image() {
36
+ _uploadBase64Image = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(apiUrl, groupId, templateId, base64) {
37
+ var suffix,
38
+ base64Data,
39
+ binaryString,
40
+ bytes,
41
+ i,
42
+ blob,
43
+ file,
44
+ formData,
45
+ response,
46
+ data,
47
+ uploaded,
48
+ _args3 = arguments;
49
+ return _regenerator().w(function (_context3) {
50
+ while (1) switch (_context3.n) {
51
+ case 0:
52
+ suffix = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : 'preview';
53
+ // Remove "data:image/..." prefix if present
54
+ base64Data = typeof base64 === 'string' && base64.includes(',') ? base64.split(',')[1] : base64; // Convert base64 to binary data
55
+ binaryString = atob(base64Data);
56
+ bytes = new Uint8Array(binaryString.length);
57
+ for (i = 0; i < binaryString.length; i++) {
58
+ bytes[i] = binaryString.charCodeAt(i);
59
+ }
60
+
61
+ // Create a Blob from the binary data
62
+ blob = new Blob([bytes], {
63
+ type: 'image/png'
64
+ }); // Create a File from the Blob
65
+ file = new File([blob], "group-".concat(groupId, "-template-").concat(templateId, "-draft-").concat(suffix, "-").concat(Date.now(), ".png"), {
66
+ type: 'image/png'
67
+ });
68
+ formData = new FormData();
69
+ formData.append('0', file);
70
+ _context3.n = 1;
71
+ return fetch("".concat(apiUrl, "public-upload-job-files/"), {
72
+ method: 'POST',
73
+ body: formData
74
+ });
75
+ case 1:
76
+ response = _context3.v;
77
+ if (response.ok) {
78
+ _context3.n = 2;
79
+ break;
80
+ }
81
+ throw new Error("Server responded with ".concat(response.status, ": ").concat(response.statusText));
82
+ case 2:
83
+ _context3.n = 3;
84
+ return response.json();
85
+ case 3:
86
+ data = _context3.v;
87
+ uploaded = data.file;
88
+ if (!((uploaded === null || uploaded === void 0 ? void 0 : uploaded.id) == null)) {
89
+ _context3.n = 4;
90
+ break;
91
+ }
92
+ throw new Error('Draft upload did not return a file id');
93
+ case 4:
94
+ return _context3.a(2, uploaded);
95
+ case 5:
96
+ return _context3.a(2);
97
+ }
98
+ }, _callee3);
99
+ }));
100
+ return _uploadBase64Image.apply(this, arguments);
101
+ }
102
+ function asCheckoutClientFile(file) {
103
+ return {
104
+ file: {
105
+ id: file.id
106
+ },
107
+ objectId: String(file.id)
108
+ };
109
+ }
110
+ export default function DraftApprovePanel(_ref2) {
111
+ var customFooterContent = _ref2.customFooterContent;
112
+ var _useMerchiFormContext = useMerchiFormContext(),
113
+ apiUrl = _useMerchiFormContext.apiUrl,
114
+ classNameDraftGroupContainer = _useMerchiFormContext.classNameDraftGroupContainer,
115
+ classNameDraftGroupTitle = _useMerchiFormContext.classNameDraftGroupTitle,
116
+ draftApproveCallback = _useMerchiFormContext.draftApproveCallback,
117
+ job = _useMerchiFormContext.job,
118
+ product = _useMerchiFormContext.product,
119
+ setIsDraftModalOpen = _useMerchiFormContext.setIsDraftModalOpen,
120
+ setJob = _useMerchiFormContext.setJob,
121
+ showAlert = _useMerchiFormContext.showAlert,
122
+ hookForm = _useMerchiFormContext.hookForm;
123
+ var _useState = useState(false),
124
+ _useState2 = _slicedToArray(_useState, 2),
125
+ isLoading = _useState2[0],
126
+ setIsLoading = _useState2[1];
127
+ var key = "productDraftTemplate-".concat(product.id);
128
+ var raw = localStorage.getItem(key);
129
+ if (!raw) return null;
130
+ var allDrafts = JSON.parse(raw);
131
+ var groupVariationFields = hookForm.getValues('variationsGroups') || [];
132
+ var currentCount = groupVariationFields.length;
133
+ var draftData = allDrafts.filter(function (d) {
134
+ return d.groupIndex < currentCount;
135
+ });
136
+ if (draftData.length !== allDrafts.length) {
137
+ localStorage.setItem(key, JSON.stringify(draftData));
138
+ }
139
+ var doUpload = /*#__PURE__*/function () {
140
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(groupIndex, templateId, base64, suffix) {
141
+ return _regenerator().w(function (_context) {
142
+ while (1) switch (_context.n) {
143
+ case 0:
144
+ return _context.a(2, uploadBase64Image(apiUrl, groupIndex, templateId, base64, suffix));
145
+ }
146
+ }, _callee);
147
+ }));
148
+ return function doUpload(_x5, _x6, _x7, _x8) {
149
+ return _ref3.apply(this, arguments);
150
+ };
151
+ }();
152
+ function approveDrats() {
153
+ return _approveDrats.apply(this, arguments);
154
+ }
155
+ function _approveDrats() {
156
+ _approveDrats = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
157
+ var draftFiles, clientFiles, _iterator, _step, group, _iterator2, _step2, template, clientFile, draftFile, jobData, message, _t, _t2, _t3;
158
+ return _regenerator().w(function (_context2) {
159
+ while (1) switch (_context2.p = _context2.n) {
160
+ case 0:
161
+ if (draftApproveCallback) {
162
+ _context2.n = 1;
163
+ break;
164
+ }
165
+ showAlert({
166
+ message: "No draftApproveCallback, aborting."
167
+ });
168
+ return _context2.a(2);
169
+ case 1:
170
+ setIsLoading(true);
171
+ _context2.p = 2;
172
+ draftFiles = [];
173
+ clientFiles = [];
174
+ _iterator = _createForOfIteratorHelper(draftData);
175
+ _context2.p = 3;
176
+ _iterator.s();
177
+ case 4:
178
+ if ((_step = _iterator.n()).done) {
179
+ _context2.n = 14;
180
+ break;
181
+ }
182
+ group = _step.value;
183
+ _iterator2 = _createForOfIteratorHelper(group.templateData);
184
+ _context2.p = 5;
185
+ _iterator2.s();
186
+ case 6:
187
+ if ((_step2 = _iterator2.n()).done) {
188
+ _context2.n = 10;
189
+ break;
190
+ }
191
+ template = _step2.value;
192
+ _context2.n = 7;
193
+ return doUpload(group.groupIndex, template.templateId, template.draft, "client");
194
+ case 7:
195
+ clientFile = _context2.v;
196
+ _context2.n = 8;
197
+ return doUpload(group.groupIndex, template.templateId, template.canvasPreview, "draft");
198
+ case 8:
199
+ draftFile = _context2.v;
200
+ clientFiles.push(clientFile);
201
+ draftFiles.push(draftFile);
202
+ case 9:
203
+ _context2.n = 6;
204
+ break;
205
+ case 10:
206
+ _context2.n = 12;
207
+ break;
208
+ case 11:
209
+ _context2.p = 11;
210
+ _t = _context2.v;
211
+ _iterator2.e(_t);
212
+ case 12:
213
+ _context2.p = 12;
214
+ _iterator2.f();
215
+ return _context2.f(12);
216
+ case 13:
217
+ _context2.n = 4;
218
+ break;
219
+ case 14:
220
+ _context2.n = 16;
221
+ break;
222
+ case 15:
223
+ _context2.p = 15;
224
+ _t2 = _context2.v;
225
+ _iterator.e(_t2);
226
+ case 16:
227
+ _context2.p = 16;
228
+ _iterator.f();
229
+ return _context2.f(16);
230
+ case 17:
231
+ jobData = _objectSpread(_objectSpread({}, job), {}, {
232
+ clientFiles: clientFiles.map(asCheckoutClientFile),
233
+ ownDrafts: [{
234
+ accepted: Math.floor(Date.now() / 1000),
235
+ images: draftFiles.map(function (f) {
236
+ return {
237
+ id: f.id
238
+ };
239
+ })
240
+ }]
241
+ });
242
+ setJob(jobData);
243
+ _context2.n = 18;
244
+ return draftApproveCallback(jobData);
245
+ case 18:
246
+ setIsDraftModalOpen(false);
247
+ _context2.n = 20;
248
+ break;
249
+ case 19:
250
+ _context2.p = 19;
251
+ _t3 = _context2.v;
252
+ message = _t3.errorMessage || _t3.message || "Upload error";
253
+ showAlert({
254
+ message: message
255
+ });
256
+ console.error(_t3);
257
+ case 20:
258
+ _context2.p = 20;
259
+ setIsLoading(false);
260
+ return _context2.f(20);
261
+ case 21:
262
+ return _context2.a(2);
263
+ }
264
+ }, _callee2, null, [[5, 11, 12, 13], [3, 15, 16, 17], [2, 19, 20, 21]]);
265
+ }));
266
+ return _approveDrats.apply(this, arguments);
267
+ }
268
+ var draftCount = draftData.length;
269
+ var approveLabel = draftCount === 1 ? 'Approve draft' : 'Approve drafts';
270
+ return /*#__PURE__*/_jsxs("div", {
271
+ className: "merchi-product-draft-approve-layout",
272
+ children: [/*#__PURE__*/_jsxs("div", {
273
+ className: "merchi-product-draft-approve-intro",
274
+ children: [/*#__PURE__*/_jsx("h2", {
275
+ id: "merchi-product-draft-approve-title",
276
+ children: approveLabel
277
+ }), /*#__PURE__*/_jsx("p", {
278
+ children: draftCount === 1 ? 'Please approve your draft before you proceed.' : 'Please approve your drafts before you proceed.'
279
+ })]
280
+ }), /*#__PURE__*/_jsx("div", {
281
+ className: "merchi-product-draft-approve-body",
282
+ children: draftData.map(function (draft, index) {
283
+ return /*#__PURE__*/_jsxs("div", {
284
+ className: classNameDraftGroupContainer,
285
+ children: [/*#__PURE__*/_jsxs("h3", {
286
+ className: classNameDraftGroupTitle,
287
+ children: ["Group ", index + 1]
288
+ }), draft.templateData.map(function (tD, tDIndex) {
289
+ return /*#__PURE__*/_jsx(DraftPreview, {
290
+ templateData: tD
291
+ }, tDIndex);
292
+ })]
293
+ }, index);
294
+ })
295
+ }), /*#__PURE__*/_jsxs("div", {
296
+ className: "merchi-product-draft-approve-footer",
297
+ children: [customFooterContent, /*#__PURE__*/_jsx("button", {
298
+ type: "button",
299
+ className: "merchi-product-draft-btn merchi-product-draft-btn-secondary",
300
+ onClick: function onClick() {
301
+ setIsDraftModalOpen(false);
302
+ },
303
+ disabled: isLoading,
304
+ children: "Close"
305
+ }), /*#__PURE__*/_jsx("button", {
306
+ type: "button",
307
+ className: "merchi-product-draft-btn merchi-product-draft-btn-primary",
308
+ disabled: isLoading,
309
+ onClick: approveDrats,
310
+ children: isLoading ? 'Approving…' : approveLabel
311
+ })]
312
+ })]
313
+ });
314
+ }
315
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlIiwidCIsInIiLCJTeW1ib2wiLCJuIiwiaXRlcmF0b3IiLCJvIiwidG9TdHJpbmdUYWciLCJpIiwiYyIsInByb3RvdHlwZSIsIkdlbmVyYXRvciIsInUiLCJPYmplY3QiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwiZiIsInAiLCJ5IiwiRyIsInYiLCJhIiwiZCIsImJpbmQiLCJsZW5ndGgiLCJsIiwiVHlwZUVycm9yIiwiY2FsbCIsImRvbmUiLCJ2YWx1ZSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJfcmVnZW5lcmF0b3IiLCJ3IiwibSIsImRlZmluZVByb3BlcnR5IiwiX3JlZ2VuZXJhdG9yRGVmaW5lIiwiX2ludm9rZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl9zbGljZWRUb0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJuZXh0IiwicHVzaCIsImlzQXJyYXkiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJSZWFjdCIsInVzZVN0YXRlIiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRHJhZnRQcmV2aWV3IiwiX3JlZiIsInRlbXBsYXRlRGF0YSIsImNhbnZhc1ByZXZpZXciLCJjaGlsZHJlbiIsInNyYyIsImFsdCIsInVwbG9hZEJhc2U2NEltYWdlIiwiX3giLCJfeDIiLCJfeDMiLCJfeDQiLCJfdXBsb2FkQmFzZTY0SW1hZ2UiLCJfY2FsbGVlMyIsImFwaVVybCIsImdyb3VwSWQiLCJ0ZW1wbGF0ZUlkIiwiYmFzZTY0Iiwic3VmZml4IiwiYmFzZTY0RGF0YSIsImJpbmFyeVN0cmluZyIsImJ5dGVzIiwiYmxvYiIsImZpbGUiLCJmb3JtRGF0YSIsInJlc3BvbnNlIiwiZGF0YSIsInVwbG9hZGVkIiwiX2FyZ3MzIiwiX2NvbnRleHQzIiwidW5kZWZpbmVkIiwiaW5jbHVkZXMiLCJzcGxpdCIsImF0b2IiLCJVaW50OEFycmF5IiwiY2hhckNvZGVBdCIsIkJsb2IiLCJ0eXBlIiwiRmlsZSIsImNvbmNhdCIsIkRhdGUiLCJub3ciLCJGb3JtRGF0YSIsImFwcGVuZCIsImZldGNoIiwibWV0aG9kIiwiYm9keSIsIm9rIiwiRXJyb3IiLCJzdGF0dXMiLCJzdGF0dXNUZXh0IiwianNvbiIsImlkIiwiYXNDaGVja291dENsaWVudEZpbGUiLCJvYmplY3RJZCIsIlN0cmluZyIsIkRyYWZ0QXBwcm92ZVBhbmVsIiwiX3JlZjIiLCJjdXN0b21Gb290ZXJDb250ZW50IiwiX3VzZU1lcmNoaUZvcm1Db250ZXh0IiwiY2xhc3NOYW1lRHJhZnRHcm91cENvbnRhaW5lciIsImNsYXNzTmFtZURyYWZ0R3JvdXBUaXRsZSIsImRyYWZ0QXBwcm92ZUNhbGxiYWNrIiwiam9iIiwicHJvZHVjdCIsInNldElzRHJhZnRNb2RhbE9wZW4iLCJzZXRKb2IiLCJzaG93QWxlcnQiLCJob29rRm9ybSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJpc0xvYWRpbmciLCJzZXRJc0xvYWRpbmciLCJrZXkiLCJyYXciLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwiYWxsRHJhZnRzIiwiSlNPTiIsInBhcnNlIiwiZ3JvdXBWYXJpYXRpb25GaWVsZHMiLCJnZXRWYWx1ZXMiLCJjdXJyZW50Q291bnQiLCJkcmFmdERhdGEiLCJmaWx0ZXIiLCJncm91cEluZGV4Iiwic2V0SXRlbSIsInN0cmluZ2lmeSIsImRvVXBsb2FkIiwiX3JlZjMiLCJfY2FsbGVlIiwiX2NvbnRleHQiLCJfeDUiLCJfeDYiLCJfeDciLCJfeDgiLCJhcHByb3ZlRHJhdHMiLCJfYXBwcm92ZURyYXRzIiwiX2NhbGxlZTIiLCJkcmFmdEZpbGVzIiwiY2xpZW50RmlsZXMiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImdyb3VwIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsInRlbXBsYXRlIiwiY2xpZW50RmlsZSIsImRyYWZ0RmlsZSIsImpvYkRhdGEiLCJtZXNzYWdlIiwiX3QiLCJfdDIiLCJfdDMiLCJfY29udGV4dDIiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInMiLCJkcmFmdCIsIl9vYmplY3RTcHJlYWQiLCJtYXAiLCJvd25EcmFmdHMiLCJhY2NlcHRlZCIsIk1hdGgiLCJmbG9vciIsImltYWdlcyIsImVycm9yTWVzc2FnZSIsImNvbnNvbGUiLCJlcnJvciIsImRyYWZ0Q291bnQiLCJhcHByb3ZlTGFiZWwiLCJjbGFzc05hbWUiLCJpbmRleCIsInREIiwidERJbmRleCIsIm9uQ2xpY2siLCJkaXNhYmxlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2RyYWZ0cy9EcmFmdEFwcHJvdmVQYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlTWVyY2hpRm9ybUNvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0L01lcmNoaVByb2R1Y3RGb3JtUHJvdmlkZXInO1xuaW1wb3J0IHsgRHJhZnRUZW1wbGF0ZURhdGEsIFJlbmRlcmVkRHJhZnRQcmV2aWV3LCBNZXJjaGlGaWxlIH0gZnJvbSAnLi4vLi4vdXRpbHMvdHlwZXMnO1xuXG5mdW5jdGlvbiBEcmFmdFByZXZpZXcoeyB0ZW1wbGF0ZURhdGEgfTogeyB0ZW1wbGF0ZURhdGE6IFJlbmRlcmVkRHJhZnRQcmV2aWV3IH0pIHtcbiAgY29uc3Qge1xuICAgIGNhbnZhc1ByZXZpZXcsXG4gIH0gPSB0ZW1wbGF0ZURhdGE7XG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxpbWcgc3JjPXtjYW52YXNQcmV2aWV3fSBhbHQ9XCJEcmFmdCBQcmV2aWV3XCIgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBsb2FkQmFzZTY0SW1hZ2UoXG4gIGFwaVVybDogc3RyaW5nLFxuICBncm91cElkOiBudW1iZXIsXG4gIHRlbXBsYXRlSWQ6IG51bWJlcixcbiAgYmFzZTY0OiBzdHJpbmcsXG4gIHN1ZmZpeDogc3RyaW5nID0gJ3ByZXZpZXcnXG4pOiBQcm9taXNlPE1lcmNoaUZpbGU+IHtcbiAgLy8gUmVtb3ZlIFwiZGF0YTppbWFnZS8uLi5cIiBwcmVmaXggaWYgcHJlc2VudFxuICBjb25zdCBiYXNlNjREYXRhID0gdHlwZW9mIGJhc2U2NCA9PT0gJ3N0cmluZycgJiYgYmFzZTY0LmluY2x1ZGVzKCcsJykgPyBiYXNlNjQuc3BsaXQoJywnKVsxXSA6IGJhc2U2NDtcblxuICAvLyBDb252ZXJ0IGJhc2U2NCB0byBiaW5hcnkgZGF0YVxuICBjb25zdCBiaW5hcnlTdHJpbmcgPSBhdG9iKGJhc2U2NERhdGEpO1xuICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KGJpbmFyeVN0cmluZy5sZW5ndGgpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYmluYXJ5U3RyaW5nLmxlbmd0aDsgaSsrKSB7XG4gICAgYnl0ZXNbaV0gPSBiaW5hcnlTdHJpbmcuY2hhckNvZGVBdChpKTtcbiAgfVxuXG4gIC8vIENyZWF0ZSBhIEJsb2IgZnJvbSB0aGUgYmluYXJ5IGRhdGFcbiAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtieXRlc10sIHsgdHlwZTogJ2ltYWdlL3BuZycgfSk7XG5cbiAgLy8gQ3JlYXRlIGEgRmlsZSBmcm9tIHRoZSBCbG9iXG4gIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShcbiAgICBbYmxvYl0sXG4gICAgYGdyb3VwLSR7Z3JvdXBJZH0tdGVtcGxhdGUtJHt0ZW1wbGF0ZUlkfS1kcmFmdC0ke3N1ZmZpeH0tJHtEYXRlLm5vdygpfS5wbmdgLFxuICAgIHsgdHlwZTogJ2ltYWdlL3BuZycgfVxuICApO1xuXG4gIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gIGZvcm1EYXRhLmFwcGVuZCgnMCcsIGZpbGUpO1xuXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7YXBpVXJsfXB1YmxpYy11cGxvYWQtam9iLWZpbGVzL2AsIHtcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBib2R5OiBmb3JtRGF0YVxuICB9KTtcblxuICBsZXQgZGF0YTtcbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcihgU2VydmVyIHJlc3BvbmRlZCB3aXRoICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApO1xuICB9IGVsc2Uge1xuICAgIGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgY29uc3QgdXBsb2FkZWQgPSBkYXRhLmZpbGU7XG4gICAgaWYgKHVwbG9hZGVkPy5pZCA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RyYWZ0IHVwbG9hZCBkaWQgbm90IHJldHVybiBhIGZpbGUgaWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHVwbG9hZGVkO1xuICB9XG59XG5cbi8qKiBAbWVyY2hpL2NoZWNrb3V0IGNsZWFuQ2xpZW50RmlsZXMgcmVhZHMgYC5maWxlYCwgbm90IGEgYmFyZSBgeyBpZCB9YC4gKi9cbmZ1bmN0aW9uIGFzQ2hlY2tvdXRDbGllbnRGaWxlKGZpbGU6IE1lcmNoaUZpbGUpIHtcbiAgcmV0dXJuIHtcbiAgICBmaWxlOiB7IGlkOiBmaWxlLmlkIH0sXG4gICAgb2JqZWN0SWQ6IFN0cmluZyhmaWxlLmlkKSxcbiAgfTtcbn1cblxuaW50ZXJmYWNlIERyYWZ0QXBwcm92ZVBhbmVsUHJvcHMge1xuICBjdXN0b21Gb290ZXJDb250ZW50PzogUmVhY3QuUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEcmFmdEFwcHJvdmVQYW5lbCh7XG4gIGN1c3RvbUZvb3RlckNvbnRlbnQsXG59OiBEcmFmdEFwcHJvdmVQYW5lbFByb3BzKSB7XG5cbiAgY29uc3Qge1xuICAgIGFwaVVybCxcbiAgICBjbGFzc05hbWVEcmFmdEdyb3VwQ29udGFpbmVyLFxuICAgIGNsYXNzTmFtZURyYWZ0R3JvdXBUaXRsZSxcbiAgICBkcmFmdEFwcHJvdmVDYWxsYmFjayxcbiAgICBqb2IsXG4gICAgcHJvZHVjdCxcbiAgICBzZXRJc0RyYWZ0TW9kYWxPcGVuLFxuICAgIHNldEpvYixcbiAgICBzaG93QWxlcnQsXG4gICAgaG9va0Zvcm0sXG4gIH0gPSB1c2VNZXJjaGlGb3JtQ29udGV4dCgpO1xuXG4gIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3Qga2V5ID0gYHByb2R1Y3REcmFmdFRlbXBsYXRlLSR7cHJvZHVjdC5pZH1gO1xuICBjb25zdCByYXcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICBpZiAoIXJhdykgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgYWxsRHJhZnRzOiBEcmFmdFRlbXBsYXRlRGF0YVtdID0gSlNPTi5wYXJzZShyYXcpO1xuICBjb25zdCBncm91cFZhcmlhdGlvbkZpZWxkczogYW55W10gPSBob29rRm9ybS5nZXRWYWx1ZXMoJ3ZhcmlhdGlvbnNHcm91cHMnKSB8fCBbXTtcbiAgY29uc3QgY3VycmVudENvdW50ID0gZ3JvdXBWYXJpYXRpb25GaWVsZHMubGVuZ3RoO1xuXG4gIGNvbnN0IGRyYWZ0RGF0YSA9IGFsbERyYWZ0cy5maWx0ZXIoZCA9PiBkLmdyb3VwSW5kZXggPCBjdXJyZW50Q291bnQpO1xuICBpZiAoZHJhZnREYXRhLmxlbmd0aCAhPT0gYWxsRHJhZnRzLmxlbmd0aCkge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgSlNPTi5zdHJpbmdpZnkoZHJhZnREYXRhKSk7XG4gIH1cblxuICBjb25zdCBkb1VwbG9hZCA9IGFzeW5jIChcbiAgICBncm91cEluZGV4OiBudW1iZXIsXG4gICAgdGVtcGxhdGVJZDogbnVtYmVyLFxuICAgIGJhc2U2NDogc3RyaW5nLFxuICAgIHN1ZmZpeDogc3RyaW5nLFxuICApID0+IHVwbG9hZEJhc2U2NEltYWdlKFxuICAgIChhcGlVcmwgYXMgc3RyaW5nKSxcbiAgICBncm91cEluZGV4LFxuICAgIHRlbXBsYXRlSWQsXG4gICAgYmFzZTY0LFxuICAgIHN1ZmZpeCxcbiAgKTtcblxuICBhc3luYyBmdW5jdGlvbiBhcHByb3ZlRHJhdHMoKSB7XG4gICAgaWYgKCFkcmFmdEFwcHJvdmVDYWxsYmFjaykge1xuICAgICAgc2hvd0FsZXJ0KHsgbWVzc2FnZTogXCJObyBkcmFmdEFwcHJvdmVDYWxsYmFjaywgYWJvcnRpbmcuXCIgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0SXNMb2FkaW5nKHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkcmFmdEZpbGVzOiBNZXJjaGlGaWxlW10gPSBbXTtcbiAgICAgIGNvbnN0IGNsaWVudEZpbGVzOiBNZXJjaGlGaWxlW10gPSBbXTtcbiAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgZHJhZnREYXRhKSB7XG4gICAgICAgIGZvciAoY29uc3QgdGVtcGxhdGUgb2YgZ3JvdXAudGVtcGxhdGVEYXRhKSB7XG4gICAgICAgICAgY29uc3QgY2xpZW50RmlsZSA9IGF3YWl0IGRvVXBsb2FkKGdyb3VwLmdyb3VwSW5kZXgsIHRlbXBsYXRlLnRlbXBsYXRlSWQsIHRlbXBsYXRlLmRyYWZ0LCBcImNsaWVudFwiKTtcbiAgICAgICAgICBjb25zdCBkcmFmdEZpbGUgPSBhd2FpdCBkb1VwbG9hZChncm91cC5ncm91cEluZGV4LCB0ZW1wbGF0ZS50ZW1wbGF0ZUlkLCB0ZW1wbGF0ZS5jYW52YXNQcmV2aWV3LCBcImRyYWZ0XCIpO1xuICAgICAgICAgIGNsaWVudEZpbGVzLnB1c2goY2xpZW50RmlsZSk7XG4gICAgICAgICAgZHJhZnRGaWxlcy5wdXNoKGRyYWZ0RmlsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3Qgam9iRGF0YSA9IHtcbiAgICAgICAgLi4uam9iLFxuICAgICAgICBjbGllbnRGaWxlczogY2xpZW50RmlsZXMubWFwKGFzQ2hlY2tvdXRDbGllbnRGaWxlKSxcbiAgICAgICAgb3duRHJhZnRzOiBbe1xuICAgICAgICAgIGFjY2VwdGVkOiBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKSxcbiAgICAgICAgICBpbWFnZXM6IGRyYWZ0RmlsZXMubWFwKGYgPT4gKHsgaWQ6IGYuaWQgfSkpLFxuICAgICAgICB9XVxuICAgICAgfTtcbiAgICAgIHNldEpvYihqb2JEYXRhKTtcblxuICAgICAgYXdhaXQgZHJhZnRBcHByb3ZlQ2FsbGJhY2soam9iRGF0YSk7XG4gICAgICBzZXRJc0RyYWZ0TW9kYWxPcGVuKGZhbHNlKTtcblxuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGUuZXJyb3JNZXNzYWdlIHx8IGUubWVzc2FnZSB8fCBcIlVwbG9hZCBlcnJvclwiO1xuICAgICAgc2hvd0FsZXJ0KHsgbWVzc2FnZSB9KTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgfVxuICB9XG4gIGNvbnN0IGRyYWZ0Q291bnQgPSBkcmFmdERhdGEubGVuZ3RoO1xuICBjb25zdCBhcHByb3ZlTGFiZWwgPSBkcmFmdENvdW50ID09PSAxID8gJ0FwcHJvdmUgZHJhZnQnIDogJ0FwcHJvdmUgZHJhZnRzJztcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC1hcHByb3ZlLWxheW91dCc+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLXByb2R1Y3QtZHJhZnQtYXBwcm92ZS1pbnRybyc+XG4gICAgICAgIDxoMiBpZD0nbWVyY2hpLXByb2R1Y3QtZHJhZnQtYXBwcm92ZS10aXRsZSc+XG4gICAgICAgICAge2FwcHJvdmVMYWJlbH1cbiAgICAgICAgPC9oMj5cbiAgICAgICAgPHA+XG4gICAgICAgICAge2RyYWZ0Q291bnQgPT09IDFcbiAgICAgICAgICAgID8gJ1BsZWFzZSBhcHByb3ZlIHlvdXIgZHJhZnQgYmVmb3JlIHlvdSBwcm9jZWVkLidcbiAgICAgICAgICAgIDogJ1BsZWFzZSBhcHByb3ZlIHlvdXIgZHJhZnRzIGJlZm9yZSB5b3UgcHJvY2VlZC4nfVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC1hcHByb3ZlLWJvZHknPlxuICAgICAgICB7ZHJhZnREYXRhLm1hcCgoZHJhZnQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9e2NsYXNzTmFtZURyYWZ0R3JvdXBDb250YWluZXJ9PlxuICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT17Y2xhc3NOYW1lRHJhZnRHcm91cFRpdGxlfT5Hcm91cCB7aW5kZXggKyAxfTwvaDM+XG4gICAgICAgICAgICB7ZHJhZnQudGVtcGxhdGVEYXRhLm1hcCgodEQ6IFJlbmRlcmVkRHJhZnRQcmV2aWV3LCB0REluZGV4OiBudW1iZXIpID0+IChcbiAgICAgICAgICAgICAgPERyYWZ0UHJldmlldyBrZXk9e3RESW5kZXh9IHRlbXBsYXRlRGF0YT17dER9IC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC1hcHByb3ZlLWZvb3Rlcic+XG4gICAgICAgIHtjdXN0b21Gb290ZXJDb250ZW50fVxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC1idG4gbWVyY2hpLXByb2R1Y3QtZHJhZnQtYnRuLXNlY29uZGFyeSdcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBzZXRJc0RyYWZ0TW9kYWxPcGVuKGZhbHNlKTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIGRpc2FibGVkPXtpc0xvYWRpbmd9XG4gICAgICAgID5cbiAgICAgICAgICBDbG9zZVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzTmFtZT0nbWVyY2hpLXByb2R1Y3QtZHJhZnQtYnRuIG1lcmNoaS1wcm9kdWN0LWRyYWZ0LWJ0bi1wcmltYXJ5J1xuICAgICAgICAgIGRpc2FibGVkPXtpc0xvYWRpbmd9XG4gICAgICAgICAgb25DbGljaz17YXBwcm92ZURyYXRzfVxuICAgICAgICA+XG4gICAgICAgICAge2lzTG9hZGluZyA/ICdBcHByb3ZpbmfigKYnIDogYXBwcm92ZUxhYmVsfVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OzBCQUNBLHVLQUFBQSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssV0FBQSw4QkFBQUMsRUFBQU4sQ0FBQSxFQUFBRSxDQUFBLEVBQUFFLENBQUEsRUFBQUUsQ0FBQSxRQUFBQyxDQUFBLEdBQUFMLENBQUEsSUFBQUEsQ0FBQSxDQUFBTSxTQUFBLFlBQUFDLFNBQUEsR0FBQVAsQ0FBQSxHQUFBTyxTQUFBLEVBQUFDLENBQUEsR0FBQUMsTUFB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
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import type { DraftCanvasHandle, DraftCanvasState } from '../../utils/types';
3
+ interface Props {
4
+ state: DraftCanvasState;
5
+ templateSrc?: string | string[] | null;
6
+ template?: any;
7
+ selectedId: string | null;
8
+ onSelect: (id: string | null) => void;
9
+ onChange: (state: DraftCanvasState) => void;
10
+ onEditText: (id: string) => void;
11
+ }
12
+ declare const DraftCanvas: React.ForwardRefExoticComponent<Props & React.RefAttributes<DraftCanvasHandle>>;
13
+ export default DraftCanvas;