@merchi/product-form 1.19.31 → 1.19.32
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/lib/components/drafts/DraftApprovePanel.js +99 -26
- package/lib/components/drafts/ProductDraftsHost.js +7 -4
- package/lib/utils/designerInputs.d.ts +34 -0
- package/lib/utils/designerInputs.js +141 -0
- package/lib/utils/designerInputs.test.js +154 -0
- package/lib/utils/draftStorage.d.ts +4 -0
- package/lib/utils/draftStorage.js +36 -3
- package/lib/utils/draftStorage.test.js +48 -2
- package/package.json +1 -1
|
@@ -0,0 +1,141 @@
|
|
|
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 _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; } }
|
|
9
|
+
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; }
|
|
10
|
+
import { productHasVariationGroups } from './draftTemplates';
|
|
11
|
+
var NAME_LIMIT = 80;
|
|
12
|
+
var DESIGN_PREFIX = '[[client-design-inputs:';
|
|
13
|
+
var DESIGN_SUFFIX = ']]';
|
|
14
|
+
var TEXT_BOX_NUMBERS = ['x', 'y', 'width', 'height', 'rotation', 'scaleX', 'scaleY'];
|
|
15
|
+
function finiteNumber(value) {
|
|
16
|
+
var number = Number(value);
|
|
17
|
+
return Number.isFinite(number) ? number : undefined;
|
|
18
|
+
}
|
|
19
|
+
function textStyleFromObject(obj) {
|
|
20
|
+
var style = {};
|
|
21
|
+
var colour = String(obj.fill || '').trim();
|
|
22
|
+
if (colour) style.colour = colour;
|
|
23
|
+
var textSize = finiteNumber(obj.fontSize);
|
|
24
|
+
if (textSize != null) style.textSize = textSize;
|
|
25
|
+
var font = String(obj.fontFamily || '').trim();
|
|
26
|
+
if (font) style.font = font;
|
|
27
|
+
var align = String(obj.align || '').trim();
|
|
28
|
+
if (align) style.align = align;
|
|
29
|
+
var _iterator = _createForOfIteratorHelper(TEXT_BOX_NUMBERS),
|
|
30
|
+
_step;
|
|
31
|
+
try {
|
|
32
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
33
|
+
var key = _step.value;
|
|
34
|
+
var number = finiteNumber(obj[key]);
|
|
35
|
+
if (number != null) style[key] = number;
|
|
36
|
+
}
|
|
37
|
+
} catch (err) {
|
|
38
|
+
_iterator.e(err);
|
|
39
|
+
} finally {
|
|
40
|
+
_iterator.f();
|
|
41
|
+
}
|
|
42
|
+
return Object.keys(style).length ? style : undefined;
|
|
43
|
+
}
|
|
44
|
+
function clipName(value, fallback) {
|
|
45
|
+
var trimmed = value.replace(/\s+/g, ' ').trim();
|
|
46
|
+
var name = trimmed || fallback;
|
|
47
|
+
return name.length > NAME_LIMIT ? name.slice(0, NAME_LIMIT).trim() : name;
|
|
48
|
+
}
|
|
49
|
+
export function collectDesignerInputs(product, drafts) {
|
|
50
|
+
var grouped = productHasVariationGroups(product);
|
|
51
|
+
var inputs = [];
|
|
52
|
+
var _iterator2 = _createForOfIteratorHelper(drafts || []),
|
|
53
|
+
_step2;
|
|
54
|
+
try {
|
|
55
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
56
|
+
var draft = _step2.value;
|
|
57
|
+
var groupIndex = grouped ? draft.groupIndex : undefined;
|
|
58
|
+
var _iterator3 = _createForOfIteratorHelper(draft.templateData || []),
|
|
59
|
+
_step3;
|
|
60
|
+
try {
|
|
61
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
62
|
+
var _template$canvasJson;
|
|
63
|
+
var template = _step3.value;
|
|
64
|
+
var _iterator4 = _createForOfIteratorHelper(((_template$canvasJson = template.canvasJson) === null || _template$canvasJson === void 0 ? void 0 : _template$canvasJson.objects) || []),
|
|
65
|
+
_step4;
|
|
66
|
+
try {
|
|
67
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
68
|
+
var obj = _step4.value;
|
|
69
|
+
if ((obj === null || obj === void 0 ? void 0 : obj.merchiFieldId) != null) continue;
|
|
70
|
+
if ((obj === null || obj === void 0 ? void 0 : obj.type) === 'text') {
|
|
71
|
+
var value = String(obj.text || '').trim();
|
|
72
|
+
if (!value) continue;
|
|
73
|
+
var textStyle = textStyleFromObject(obj);
|
|
74
|
+
inputs.push(_objectSpread(_objectSpread({
|
|
75
|
+
kind: 'text',
|
|
76
|
+
name: clipName(value, 'Custom text'),
|
|
77
|
+
value: value
|
|
78
|
+
}, textStyle ? {
|
|
79
|
+
textStyle: textStyle
|
|
80
|
+
} : {}), groupIndex != null ? {
|
|
81
|
+
groupIndex: groupIndex
|
|
82
|
+
} : {}));
|
|
83
|
+
} else if ((obj === null || obj === void 0 ? void 0 : obj.type) === 'image' && obj.src) {
|
|
84
|
+
inputs.push(_objectSpread({
|
|
85
|
+
kind: 'file',
|
|
86
|
+
name: 'Custom image',
|
|
87
|
+
src: String(obj.src)
|
|
88
|
+
}, groupIndex != null ? {
|
|
89
|
+
groupIndex: groupIndex
|
|
90
|
+
} : {}));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
} catch (err) {
|
|
94
|
+
_iterator4.e(err);
|
|
95
|
+
} finally {
|
|
96
|
+
_iterator4.f();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
} catch (err) {
|
|
100
|
+
_iterator3.e(err);
|
|
101
|
+
} finally {
|
|
102
|
+
_iterator3.f();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
} catch (err) {
|
|
106
|
+
_iterator2.e(err);
|
|
107
|
+
} finally {
|
|
108
|
+
_iterator2.f();
|
|
109
|
+
}
|
|
110
|
+
return inputs;
|
|
111
|
+
}
|
|
112
|
+
export function packDesignInputNotes(inputs) {
|
|
113
|
+
var payload = (inputs || []).filter(function (item) {
|
|
114
|
+
var _item$file;
|
|
115
|
+
return item.kind === 'text' || ((_item$file = item.file) === null || _item$file === void 0 ? void 0 : _item$file.id) != null;
|
|
116
|
+
}).map(function (item) {
|
|
117
|
+
var _item$file2;
|
|
118
|
+
return _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
119
|
+
kind: item.kind,
|
|
120
|
+
name: item.name
|
|
121
|
+
}, item.value != null ? {
|
|
122
|
+
value: item.value
|
|
123
|
+
} : {}), item.textStyle ? {
|
|
124
|
+
textStyle: item.textStyle
|
|
125
|
+
} : {}), ((_item$file2 = item.file) === null || _item$file2 === void 0 ? void 0 : _item$file2.id) != null ? {
|
|
126
|
+
file: {
|
|
127
|
+
id: item.file.id
|
|
128
|
+
}
|
|
129
|
+
} : {}), item.groupIndex != null ? {
|
|
130
|
+
groupIndex: item.groupIndex
|
|
131
|
+
} : {});
|
|
132
|
+
});
|
|
133
|
+
if (!payload.length) return undefined;
|
|
134
|
+
var bytes = new TextEncoder().encode(JSON.stringify(payload));
|
|
135
|
+
var binary = '';
|
|
136
|
+
bytes.forEach(function (_byte) {
|
|
137
|
+
binary += String.fromCharCode(_byte);
|
|
138
|
+
});
|
|
139
|
+
return "".concat(DESIGN_PREFIX).concat(btoa(binary)).concat(DESIGN_SUFFIX);
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwcm9kdWN0SGFzVmFyaWF0aW9uR3JvdXBzIiwiTkFNRV9MSU1JVCIsIkRFU0lHTl9QUkVGSVgiLCJERVNJR05fU1VGRklYIiwiVEVYVF9CT1hfTlVNQkVSUyIsImZpbml0ZU51bWJlciIsInZhbHVlIiwibnVtYmVyIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJ1bmRlZmluZWQiLCJ0ZXh0U3R5bGVGcm9tT2JqZWN0Iiwib2JqIiwic3R5bGUiLCJjb2xvdXIiLCJTdHJpbmciLCJmaWxsIiwidHJpbSIsInRleHRTaXplIiwiZm9udFNpemUiLCJmb250IiwiZm9udEZhbWlseSIsImFsaWduIiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfc3RlcCIsInMiLCJuIiwiZG9uZSIsImtleSIsImVyciIsImUiLCJmIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsImNsaXBOYW1lIiwiZmFsbGJhY2siLCJ0cmltbWVkIiwicmVwbGFjZSIsIm5hbWUiLCJzbGljZSIsImNvbGxlY3REZXNpZ25lcklucHV0cyIsInByb2R1Y3QiLCJkcmFmdHMiLCJncm91cGVkIiwiaW5wdXRzIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsImRyYWZ0IiwiZ3JvdXBJbmRleCIsIl9pdGVyYXRvcjMiLCJ0ZW1wbGF0ZURhdGEiLCJfc3RlcDMiLCJfdGVtcGxhdGUkY2FudmFzSnNvbiIsInRlbXBsYXRlIiwiX2l0ZXJhdG9yNCIsImNhbnZhc0pzb24iLCJvYmplY3RzIiwiX3N0ZXA0IiwibWVyY2hpRmllbGRJZCIsInR5cGUiLCJ0ZXh0IiwidGV4dFN0eWxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJraW5kIiwic3JjIiwicGFja0Rlc2lnbklucHV0Tm90ZXMiLCJwYXlsb2FkIiwiZmlsdGVyIiwiaXRlbSIsIl9pdGVtJGZpbGUiLCJmaWxlIiwiaWQiLCJtYXAiLCJfaXRlbSRmaWxlMiIsImJ5dGVzIiwiVGV4dEVuY29kZXIiLCJlbmNvZGUiLCJKU09OIiwic3RyaW5naWZ5IiwiYmluYXJ5IiwiZm9yRWFjaCIsImJ5dGUiLCJmcm9tQ2hhckNvZGUiLCJjb25jYXQiLCJidG9hIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2Rlc2lnbmVySW5wdXRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb2R1Y3RIYXNWYXJpYXRpb25Hcm91cHMgfSBmcm9tICcuL2RyYWZ0VGVtcGxhdGVzJztcbmltcG9ydCB7IERyYWZ0VGVtcGxhdGVEYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IE5BTUVfTElNSVQgPSA4MDtcbmNvbnN0IERFU0lHTl9QUkVGSVggPSAnW1tjbGllbnQtZGVzaWduLWlucHV0czonO1xuY29uc3QgREVTSUdOX1NVRkZJWCA9ICddXSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVzaWduZXJUZXh0U3R5bGUge1xuICBjb2xvdXI/OiBzdHJpbmc7XG4gIHRleHRTaXplPzogbnVtYmVyO1xuICBmb250Pzogc3RyaW5nO1xuICBhbGlnbj86IHN0cmluZztcbiAgeD86IG51bWJlcjtcbiAgeT86IG51bWJlcjtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgcm90YXRpb24/OiBudW1iZXI7XG4gIHNjYWxlWD86IG51bWJlcjtcbiAgc2NhbGVZPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc2lnbmVySW5wdXQge1xuICBraW5kOiAndGV4dCcgfCAnZmlsZSc7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIHNyYz86IHN0cmluZztcbiAgdGV4dFN0eWxlPzogRGVzaWduZXJUZXh0U3R5bGU7XG4gIGdyb3VwSW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tvdXREZXNpZ25JbnB1dCB7XG4gIGtpbmQ6ICd0ZXh0JyB8ICdmaWxlJztcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZT86IHN0cmluZztcbiAgZmlsZT86IHsgaWQ6IG51bWJlciB8IHN0cmluZyB9O1xuICB0ZXh0U3R5bGU/OiBEZXNpZ25lclRleHRTdHlsZTtcbiAgZ3JvdXBJbmRleD86IG51bWJlcjtcbn1cblxuY29uc3QgVEVYVF9CT1hfTlVNQkVSUyA9IFtcbiAgJ3gnLFxuICAneScsXG4gICd3aWR0aCcsXG4gICdoZWlnaHQnLFxuICAncm90YXRpb24nLFxuICAnc2NhbGVYJyxcbiAgJ3NjYWxlWScsXG5dIGFzIGNvbnN0O1xuXG5mdW5jdGlvbiBmaW5pdGVOdW1iZXIodmFsdWU6IHVua25vd24pOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCBudW1iZXIgPSBOdW1iZXIodmFsdWUpO1xuICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKG51bWJlcikgPyBudW1iZXIgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHRleHRTdHlsZUZyb21PYmplY3Qob2JqOiB7XG4gIGZpbGw/OiBzdHJpbmc7XG4gIGZvbnRTaXplPzogbnVtYmVyO1xuICBmb250RmFtaWx5Pzogc3RyaW5nO1xuICBhbGlnbj86IHN0cmluZztcbiAgeD86IG51bWJlcjtcbiAgeT86IG51bWJlcjtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgcm90YXRpb24/OiBudW1iZXI7XG4gIHNjYWxlWD86IG51bWJlcjtcbiAgc2NhbGVZPzogbnVtYmVyO1xufSk6IERlc2lnbmVyVGV4dFN0eWxlIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3R5bGU6IERlc2lnbmVyVGV4dFN0eWxlID0ge307XG4gIGNvbnN0IGNvbG91ciA9IFN0cmluZyhvYmouZmlsbCB8fCAnJykudHJpbSgpO1xuICBpZiAoY29sb3VyKSBzdHlsZS5jb2xvdXIgPSBjb2xvdXI7XG4gIGNvbnN0IHRleHRTaXplID0gZmluaXRlTnVtYmVyKG9iai5mb250U2l6ZSk7XG4gIGlmICh0ZXh0U2l6ZSAhPSBudWxsKSBzdHlsZS50ZXh0U2l6ZSA9IHRleHRTaXplO1xuICBjb25zdCBmb250ID0gU3RyaW5nKG9iai5mb250RmFtaWx5IHx8ICcnKS50cmltKCk7XG4gIGlmIChmb250KSBzdHlsZS5mb250ID0gZm9udDtcbiAgY29uc3QgYWxpZ24gPSBTdHJpbmcob2JqLmFsaWduIHx8ICcnKS50cmltKCk7XG4gIGlmIChhbGlnbikgc3R5bGUuYWxpZ24gPSBhbGlnbjtcbiAgZm9yIChjb25zdCBrZXkgb2YgVEVYVF9CT1hfTlVNQkVSUykge1xuICAgIGNvbnN0IG51bWJlciA9IGZpbml0ZU51bWJlcihvYmpba2V5XSk7XG4gICAgaWYgKG51bWJlciAhPSBudWxsKSBzdHlsZVtrZXldID0gbnVtYmVyO1xuICB9XG4gIHJldHVybiBPYmplY3Qua2V5cyhzdHlsZSkubGVuZ3RoID8gc3R5bGUgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGNsaXBOYW1lKHZhbHVlOiBzdHJpbmcsIGZhbGxiYWNrOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCB0cmltbWVkID0gdmFsdWUucmVwbGFjZSgvXFxzKy9nLCAnICcpLnRyaW0oKTtcbiAgY29uc3QgbmFtZSA9IHRyaW1tZWQgfHwgZmFsbGJhY2s7XG4gIHJldHVybiBuYW1lLmxlbmd0aCA+IE5BTUVfTElNSVQgPyBuYW1lLnNsaWNlKDAsIE5BTUVfTElNSVQpLnRyaW0oKSA6IG5hbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb2xsZWN0RGVzaWduZXJJbnB1dHMoXG4gIHByb2R1Y3Q6IGFueSxcbiAgZHJhZnRzOiBEcmFmdFRlbXBsYXRlRGF0YVtdLFxuKTogRGVzaWduZXJJbnB1dFtdIHtcbiAgY29uc3QgZ3JvdXBlZCA9IHByb2R1Y3RIYXNWYXJpYXRpb25Hcm91cHMocHJvZHVjdCk7XG4gIGNvbnN0IGlucHV0czogRGVzaWduZXJJbnB1dFtdID0gW107XG4gIGZvciAoY29uc3QgZHJhZnQgb2YgZHJhZnRzIHx8IFtdKSB7XG4gICAgY29uc3QgZ3JvdXBJbmRleCA9IGdyb3VwZWQgPyBkcmFmdC5ncm91cEluZGV4IDogdW5kZWZpbmVkO1xuICAgIGZvciAoY29uc3QgdGVtcGxhdGUgb2YgZHJhZnQudGVtcGxhdGVEYXRhIHx8IFtdKSB7XG4gICAgICBmb3IgKGNvbnN0IG9iaiBvZiB0ZW1wbGF0ZS5jYW52YXNKc29uPy5vYmplY3RzIHx8IFtdKSB7XG4gICAgICAgIGlmIChvYmo/Lm1lcmNoaUZpZWxkSWQgIT0gbnVsbCkgY29udGludWU7XG4gICAgICAgIGlmIChvYmo/LnR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gU3RyaW5nKG9iai50ZXh0IHx8ICcnKS50cmltKCk7XG4gICAgICAgICAgaWYgKCF2YWx1ZSkgY29udGludWU7XG4gICAgICAgICAgY29uc3QgdGV4dFN0eWxlID0gdGV4dFN0eWxlRnJvbU9iamVjdChvYmopO1xuICAgICAgICAgIGlucHV0cy5wdXNoKHtcbiAgICAgICAgICAgIGtpbmQ6ICd0ZXh0JyxcbiAgICAgICAgICAgIG5hbWU6IGNsaXBOYW1lKHZhbHVlLCAnQ3VzdG9tIHRleHQnKSxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgLi4uKHRleHRTdHlsZSA/IHsgdGV4dFN0eWxlIH0gOiB7fSksXG4gICAgICAgICAgICAuLi4oZ3JvdXBJbmRleCAhPSBudWxsID8geyBncm91cEluZGV4IH0gOiB7fSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAob2JqPy50eXBlID09PSAnaW1hZ2UnICYmIG9iai5zcmMpIHtcbiAgICAgICAgICBpbnB1dHMucHVzaCh7XG4gICAgICAgICAgICBraW5kOiAnZmlsZScsXG4gICAgICAgICAgICBuYW1lOiAnQ3VzdG9tIGltYWdlJyxcbiAgICAgICAgICAgIHNyYzogU3RyaW5nKG9iai5zcmMpLFxuICAgICAgICAgICAgLi4uKGdyb3VwSW5kZXggIT0gbnVsbCA/IHsgZ3JvdXBJbmRleCB9IDoge30pLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBpbnB1dHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYWNrRGVzaWduSW5wdXROb3RlcyhcbiAgaW5wdXRzOiBDaGVja291dERlc2lnbklucHV0W10sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBwYXlsb2FkID0gKGlucHV0cyB8fCBbXSlcbiAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmtpbmQgPT09ICd0ZXh0JyB8fCBpdGVtLmZpbGU/LmlkICE9IG51bGwpXG4gICAgLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgIGtpbmQ6IGl0ZW0ua2luZCxcbiAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgICAgIC4uLihpdGVtLnZhbHVlICE9IG51bGwgPyB7IHZhbHVlOiBpdGVtLnZhbHVlIH0gOiB7fSksXG4gICAgICAuLi4oaXRlbS50ZXh0U3R5bGUgPyB7IHRleHRTdHlsZTogaXRlbS50ZXh0U3R5bGUgfSA6IHt9KSxcbiAgICAgIC4uLihpdGVtLmZpbGU/LmlkICE9IG51bGwgPyB7IGZpbGU6IHsgaWQ6IGl0ZW0uZmlsZS5pZCB9IH0gOiB7fSksXG4gICAgICAuLi4oaXRlbS5ncm91cEluZGV4ICE9IG51bGwgPyB7IGdyb3VwSW5kZXg6IGl0ZW0uZ3JvdXBJbmRleCB9IDoge30pLFxuICAgIH0pKTtcbiAgaWYgKCFwYXlsb2FkLmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgYnl0ZXMgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkocGF5bG9hZCkpO1xuICBsZXQgYmluYXJ5ID0gJyc7XG4gIGJ5dGVzLmZvckVhY2goKGJ5dGUpID0+IHtcbiAgICBiaW5hcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlKTtcbiAgfSk7XG4gIHJldHVybiBgJHtERVNJR05fUFJFRklYfSR7YnRvYShiaW5hcnkpfSR7REVTSUdOX1NVRkZJWH1gO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxTQUFTQSx5QkFBeUIsUUFBUSxrQkFBa0I7QUFHNUQsSUFBTUMsVUFBVSxHQUFHLEVBQUU7QUFDckIsSUFBTUMsYUFBYSxHQUFHLHlCQUF5QjtBQUMvQyxJQUFNQyxhQUFhLEdBQUcsSUFBSTtBQWtDMUIsSUFBTUMsZ0JBQWdCLEdBQUcsQ0FDdkIsR0FBRyxFQUNILEdBQUcsRUFDSCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxDQUNBO0FBRVYsU0FBU0MsWUFBWUEsQ0FBQ0MsS0FBYyxFQUFzQjtFQUN4RCxJQUFNQyxNQUFNLEdBQUdDLE1BQU0sQ0FBQ0YsS0FBSyxDQUFDO0VBQzVCLE9BQU9FLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDRixNQUFNLENBQUMsR0FBR0EsTUFBTSxHQUFHRyxTQUFTO0FBQ3JEO0FBRUEsU0FBU0MsbUJBQW1CQSxDQUFDQyxHQVk1QixFQUFpQztFQUNoQyxJQUFNQyxLQUF3QixHQUFHLENBQUMsQ0FBQztFQUNuQyxJQUFNQyxNQUFNLEdBQUdDLE1BQU0sQ0FBQ0gsR0FBRyxDQUFDSSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUNDLElBQUksQ0FBQyxDQUFDO0VBQzVDLElBQUlILE1BQU0sRUFBRUQsS0FBSyxDQUFDQyxNQUFNLEdBQUdBLE1BQU07RUFDakMsSUFBTUksUUFBUSxHQUFHYixZQUFZLENBQUNPLEdBQUcsQ0FBQ08sUUFBUSxDQUFDO0VBQzNDLElBQUlELFFBQVEsSUFBSSxJQUFJLEVBQUVMLEtBQUssQ0FBQ0ssUUFBUSxHQUFHQSxRQUFRO0VBQy9DLElBQU1FLElBQUksR0FBR0wsTUFBTSxDQUFDSCxHQUFHLENBQUNTLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQ0osSUFBSSxDQUFDLENBQUM7RUFDaEQsSUFBSUcsSUFBSSxFQUFFUCxLQUFLLENBQUNPLElBQUksR0FBR0EsSUFBSTtFQUMzQixJQUFNRSxLQUFLLEdBQUdQLE1BQU0sQ0FBQ0gsR0FBRyxDQUFDVSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUNMLElBQUksQ0FBQyxDQUFDO0VBQzVDLElBQUlLLEtBQUssRUFBRVQsS0FBSyxDQUFDUyxLQUFLLEdBQUdBLEtBQUs7RUFBQyxJQUFBQyxTQUFBLEdBQUFDLDBCQUFBLENBQ2JwQixnQkFBZ0I7SUFBQXFCLEtBQUE7RUFBQTtJQUFsQyxLQUFBRixTQUFBLENBQUFHLENBQUEsTUFBQUQsS0FBQSxHQUFBRixTQUFBLENBQUFJLENBQUEsSUFBQUMsSUFBQSxHQUFvQztNQUFBLElBQXpCQyxHQUFHLEdBQUFKLEtBQUEsQ0FBQW5CLEtBQUE7TUFDWixJQUFNQyxNQUFNLEdBQUdGLFlBQVksQ0FBQ08sR0FBRyxDQUFDaUIsR0FBRyxDQUFDLENBQUM7TUFDckMsSUFBSXRCLE1BQU0sSUFBSSxJQUFJLEVBQUVNLEtBQUssQ0FBQ2dCLEdBQUcsQ0FBQyxHQUFHdEIsTUFBTTtJQUN6QztFQUFDLFNBQUF1QixHQUFBO0lBQUFQLFNBQUEsQ0FBQVEsQ0FBQSxDQUFBRCxHQUFBO0VBQUE7SUFBQVAsU0FBQSxDQUFBUyxDQUFBO0VBQUE7RUFDRCxPQUFPQyxNQUFNLENBQUNDLElBQUksQ0FBQ3JCLEtBQUssQ0FBQyxDQUFDc0IsTUFBTSxHQUFHdEIsS0FBSyxHQUFHSCxTQUFTO0FBQ3REO0FBRUEsU0FBUzBCLFFBQVFBLENBQUM5QixLQUFhLEVBQUUrQixRQUFnQixFQUFVO0VBQ3pELElBQU1DLE9BQU8sR0FBR2hDLEtBQUssQ0FBQ2lDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUN0QixJQUFJLENBQUMsQ0FBQztFQUNqRCxJQUFNdUIsSUFBSSxHQUFHRixPQUFPLElBQUlELFFBQVE7RUFDaEMsT0FBT0csSUFBSSxDQUFDTCxNQUFNLEdBQUdsQyxVQUFVLEdBQUd1QyxJQUFJLENBQUNDLEtBQUssQ0FBQyxDQUFDLEVBQUV4QyxVQUFVLENBQUMsQ0FBQ2dCLElBQUksQ0FBQyxDQUFDLEdBQUd1QixJQUFJO0FBQzNFO0FBRUEsT0FBTyxTQUFTRSxxQkFBcUJBLENBQ25DQyxPQUFZLEVBQ1pDLE1BQTJCLEVBQ1Y7RUFDakIsSUFBTUMsT0FBTyxHQUFHN0MseUJBQXlCLENBQUMyQyxPQUFPLENBQUM7RUFDbEQsSUFBTUcsTUFBdUIsR0FBRyxFQUFFO0VBQUMsSUFBQUMsVUFBQSxHQUFBdkIsMEJBQUEsQ0FDZm9CLE1BQU0sSUFBSSxFQUFFO0lBQUFJLE1BQUE7RUFBQTtJQUFoQyxLQUFBRCxVQUFBLENBQUFyQixDQUFBLE1BQUFzQixNQUFBLEdBQUFELFVBQUEsQ0FBQXBCLENBQUEsSUFBQUMsSUFBQSxHQUFrQztNQUFBLElBQXZCcUIsS0FBSyxHQUFBRCxNQUFBLENBQUExQyxLQUFBO01BQ2QsSUFBTTRDLFVBQVUsR0FBR0wsT0FBTyxHQUFHSSxLQUFLLENBQUNDLFVBQVUsR0FBR3hDLFNBQVM7TUFBQyxJQUFBeUMsVUFBQSxHQUFBM0IsMEJBQUEsQ0FDbkN5QixLQUFLLENBQUNHLFlBQVksSUFBSSxFQUFFO1FBQUFDLE1BQUE7TUFBQTtRQUEvQyxLQUFBRixVQUFBLENBQUF6QixDQUFBLE1BQUEyQixNQUFBLEdBQUFGLFVBQUEsQ0FBQXhCLENBQUEsSUFBQUMsSUFBQSxHQUFpRDtVQUFBLElBQUEwQixvQkFBQTtVQUFBLElBQXRDQyxRQUFRLEdBQUFGLE1BQUEsQ0FBQS9DLEtBQUE7VUFBQSxJQUFBa0QsVUFBQSxHQUFBaEMsMEJBQUEsQ0FDQyxFQUFBOEIsb0JBQUEsR0FBQUMsUUFBUSxDQUFDRSxVQUFVLGNBQUFILG9CQUFBLHVCQUFuQkEsb0JBQUEsQ0FBcUJJLE9BQU8sS0FBSSxFQUFFO1lBQUFDLE1BQUE7VUFBQTtZQUFwRCxLQUFBSCxVQUFBLENBQUE5QixDQUFBLE1BQUFpQyxNQUFBLEdBQUFILFVBQUEsQ0FBQTdCLENBQUEsSUFBQUMsSUFBQSxHQUFzRDtjQUFBLElBQTNDaEIsR0FBRyxHQUFBK0MsTUFBQSxDQUFBckQsS0FBQTtjQUNaLElBQUksQ0FBQU0sR0FBRyxhQUFIQSxHQUFHLHVCQUFIQSxHQUFHLENBQUVnRCxhQUFhLEtBQUksSUFBSSxFQUFFO2NBQ2hDLElBQUksQ0FBQWhELEdBQUcsYUFBSEEsR0FBRyx1QkFBSEEsR0FBRyxDQUFFaUQsSUFBSSxNQUFLLE1BQU0sRUFBRTtnQkFDeEIsSUFBTXZELEtBQUssR0FBR1MsTUFBTSxDQUFDSCxHQUFHLENBQUNrRCxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM3QyxJQUFJLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDWCxLQUFLLEVBQUU7Z0JBQ1osSUFBTXlELFNBQVMsR0FBR3BELG1CQUFtQixDQUFDQyxHQUFHLENBQUM7Z0JBQzFDa0MsTUFBTSxDQUFDa0IsSUFBSSxDQUFBQyxhQUFBLENBQUFBLGFBQUE7a0JBQ1RDLElBQUksRUFBRSxNQUFNO2tCQUNaMUIsSUFBSSxFQUFFSixRQUFRLENBQUM5QixLQUFLLEVBQUUsYUFBYSxDQUFDO2tCQUNwQ0EsS0FBSyxFQUFMQTtnQkFBSyxHQUNEeUQsU0FBUyxHQUFHO2tCQUFFQSxTQUFTLEVBQVRBO2dCQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDOUJiLFVBQVUsSUFBSSxJQUFJLEdBQUc7a0JBQUVBLFVBQVUsRUFBVkE7Z0JBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUM3QyxDQUFDO2NBQ0osQ0FBQyxNQUFNLElBQUksQ0FBQXRDLEdBQUcsYUFBSEEsR0FBRyx1QkFBSEEsR0FBRyxDQUFFaUQsSUFBSSxNQUFLLE9BQU8sSUFBSWpELEdBQUcsQ0FBQ3VELEdBQUcsRUFBRTtnQkFDM0NyQixNQUFNLENBQUNrQixJQUFJLENBQUFDLGFBQUE7a0JBQ1RDLElBQUksRUFBRSxNQUFNO2tCQUNaMUIsSUFBSSxFQUFFLGNBQWM7a0JBQ3BCMkIsR0FBRyxFQUFFcEQsTUFBTSxDQUFDSCxHQUFHLENBQUN1RCxHQUFHO2dCQUFDLEdBQ2hCakIsVUFBVSxJQUFJLElBQUksR0FBRztrQkFBRUEsVUFBVSxFQUFWQTtnQkFBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzdDLENBQUM7Y0FDSjtZQUNGO1VBQUMsU0FBQXBCLEdBQUE7WUFBQTBCLFVBQUEsQ0FBQXpCLENBQUEsQ0FBQUQsR0FBQTtVQUFBO1lBQUEwQixVQUFBLENBQUF4QixDQUFBO1VBQUE7UUFDSDtNQUFDLFNBQUFGLEdBQUE7UUFBQXFCLFVBQUEsQ0FBQXBCLENBQUEsQ0FBQUQsR0FBQTtNQUFBO1FBQUFxQixVQUFBLENBQUFuQixDQUFBO01BQUE7SUFDSDtFQUFDLFNBQUFGLEdBQUE7SUFBQWlCLFVBQUEsQ0FBQWhCLENBQUEsQ0FBQUQsR0FBQTtFQUFBO0lBQUFpQixVQUFBLENBQUFmLENBQUE7RUFBQTtFQUNELE9BQU9jLE1BQU07QUFDZjtBQUVBLE9BQU8sU0FBU3NCLG9CQUFvQkEsQ0FDbEN0QixNQUE2QixFQUNUO0VBQ3BCLElBQU11QixPQUFPLEdBQUcsQ0FBQ3ZCLE1BQU0sSUFBSSxFQUFFLEVBQzFCd0IsTUFBTSxDQUFDLFVBQUNDLElBQUk7SUFBQSxJQUFBQyxVQUFBO0lBQUEsT0FBS0QsSUFBSSxDQUFDTCxJQUFJLEtBQUssTUFBTSxJQUFJLEVBQUFNLFVBQUEsR0FBQUQsSUFBSSxDQUFDRSxJQUFJLGNBQUFELFVBQUEsdUJBQVRBLFVBQUEsQ0FBV0UsRUFBRSxLQUFJLElBQUk7RUFBQSxFQUFDLENBQy9EQyxHQUFHLENBQUMsVUFBQ0osSUFBSTtJQUFBLElBQUFLLFdBQUE7SUFBQSxPQUFBWCxhQUFBLENBQUFBLGFBQUEsQ0FBQUEsYUFBQSxDQUFBQSxhQUFBO01BQ1JDLElBQUksRUFBRUssSUFBSSxDQUFDTCxJQUFJO01BQ2YxQixJQUFJLEVBQUUrQixJQUFJLENBQUMvQjtJQUFJLEdBQ1grQixJQUFJLENBQUNqRSxLQUFLLElBQUksSUFBSSxHQUFHO01BQUVBLEtBQUssRUFBRWlFLElBQUksQ0FBQ2pFO0lBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUMvQ2lFLElBQUksQ0FBQ1IsU0FBUyxHQUFHO01BQUVBLFNBQVMsRUFBRVEsSUFBSSxDQUFDUjtJQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDbkQsRUFBQWEsV0FBQSxHQUFBTCxJQUFJLENBQUNFLElBQUksY0FBQUcsV0FBQSx1QkFBVEEsV0FBQSxDQUFXRixFQUFFLEtBQUksSUFBSSxHQUFHO01BQUVELElBQUksRUFBRTtRQUFFQyxFQUFFLEVBQUVILElBQUksQ0FBQ0UsSUFBSSxDQUFDQztNQUFHO0lBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUMzREgsSUFBSSxDQUFDckIsVUFBVSxJQUFJLElBQUksR0FBRztNQUFFQSxVQUFVLEVBQUVxQixJQUFJLENBQUNyQjtJQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7RUFBQSxDQUNsRSxDQUFDO0VBQ0wsSUFBSSxDQUFDbUIsT0FBTyxDQUFDbEMsTUFBTSxFQUFFLE9BQU96QixTQUFTO0VBQ3JDLElBQU1tRSxLQUFLLEdBQUcsSUFBSUMsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsTUFBTSxDQUFDQyxJQUFJLENBQUNDLFNBQVMsQ0FBQ1osT0FBTyxDQUFDLENBQUM7RUFDL0QsSUFBSWEsTUFBTSxHQUFHLEVBQUU7RUFDZkwsS0FBSyxDQUFDTSxPQUFPLENBQUMsVUFBQ0MsS0FBSSxFQUFLO0lBQ3RCRixNQUFNLElBQUluRSxNQUFNLENBQUNzRSxZQUFZLENBQUNELEtBQUksQ0FBQztFQUNyQyxDQUFDLENBQUM7RUFDRixVQUFBRSxNQUFBLENBQVVwRixhQUFhLEVBQUFvRixNQUFBLENBQUdDLElBQUksQ0FBQ0wsTUFBTSxDQUFDLEVBQUFJLE1BQUEsQ0FBR25GLGFBQWE7QUFDeEQiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
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."); }
|
|
3
|
+
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; } }
|
|
4
|
+
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; }
|
|
5
|
+
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; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
7
|
+
import { collectDesignerInputs, packDesignInputNotes } from './designerInputs';
|
|
8
|
+
var groupedProduct = {
|
|
9
|
+
groupVariationFields: [{
|
|
10
|
+
id: 9
|
|
11
|
+
}]
|
|
12
|
+
};
|
|
13
|
+
var plainProduct = {
|
|
14
|
+
groupVariationFields: []
|
|
15
|
+
};
|
|
16
|
+
function drafts() {
|
|
17
|
+
return [{
|
|
18
|
+
groupIndex: 0,
|
|
19
|
+
productId: 4,
|
|
20
|
+
previews: [],
|
|
21
|
+
templateData: [{
|
|
22
|
+
templateId: 1,
|
|
23
|
+
draft: 'draft',
|
|
24
|
+
canvasPreview: 'preview',
|
|
25
|
+
canvasJson: {
|
|
26
|
+
width: 100,
|
|
27
|
+
height: 100,
|
|
28
|
+
objects: [{
|
|
29
|
+
id: 'linked',
|
|
30
|
+
type: 'text',
|
|
31
|
+
merchiFieldId: 9,
|
|
32
|
+
text: 'From the form',
|
|
33
|
+
x: 0,
|
|
34
|
+
y: 0,
|
|
35
|
+
width: 10,
|
|
36
|
+
height: 10,
|
|
37
|
+
rotation: 0,
|
|
38
|
+
scaleX: 1,
|
|
39
|
+
scaleY: 1
|
|
40
|
+
}, {
|
|
41
|
+
id: 'added',
|
|
42
|
+
type: 'text',
|
|
43
|
+
text: 'Team night',
|
|
44
|
+
fill: '#112233',
|
|
45
|
+
fontSize: 56,
|
|
46
|
+
fontFamily: 'Oswald',
|
|
47
|
+
align: 'center',
|
|
48
|
+
x: 12,
|
|
49
|
+
y: 20,
|
|
50
|
+
width: 240,
|
|
51
|
+
height: 64,
|
|
52
|
+
rotation: 0,
|
|
53
|
+
scaleX: 1,
|
|
54
|
+
scaleY: 1
|
|
55
|
+
}, {
|
|
56
|
+
id: 'logo',
|
|
57
|
+
type: 'image',
|
|
58
|
+
src: 'data:image/png;base64,aaa',
|
|
59
|
+
x: 0,
|
|
60
|
+
y: 0,
|
|
61
|
+
width: 10,
|
|
62
|
+
height: 10,
|
|
63
|
+
rotation: 0,
|
|
64
|
+
scaleX: 1,
|
|
65
|
+
scaleY: 1
|
|
66
|
+
}, {
|
|
67
|
+
id: 'fill',
|
|
68
|
+
type: 'rect',
|
|
69
|
+
fill: '#111111',
|
|
70
|
+
x: 0,
|
|
71
|
+
y: 0,
|
|
72
|
+
width: 10,
|
|
73
|
+
height: 10,
|
|
74
|
+
rotation: 0,
|
|
75
|
+
scaleX: 1,
|
|
76
|
+
scaleY: 1
|
|
77
|
+
}]
|
|
78
|
+
}
|
|
79
|
+
}]
|
|
80
|
+
}];
|
|
81
|
+
}
|
|
82
|
+
test('collectDesignerInputs keeps only text and images the customer added', function () {
|
|
83
|
+
expect(collectDesignerInputs(plainProduct, drafts())).toEqual([{
|
|
84
|
+
kind: 'text',
|
|
85
|
+
name: 'Team night',
|
|
86
|
+
value: 'Team night',
|
|
87
|
+
textStyle: {
|
|
88
|
+
colour: '#112233',
|
|
89
|
+
textSize: 56,
|
|
90
|
+
font: 'Oswald',
|
|
91
|
+
align: 'center',
|
|
92
|
+
x: 12,
|
|
93
|
+
y: 20,
|
|
94
|
+
width: 240,
|
|
95
|
+
height: 64,
|
|
96
|
+
rotation: 0,
|
|
97
|
+
scaleX: 1,
|
|
98
|
+
scaleY: 1
|
|
99
|
+
}
|
|
100
|
+
}, {
|
|
101
|
+
kind: 'file',
|
|
102
|
+
name: 'Custom image',
|
|
103
|
+
src: 'data:image/png;base64,aaa'
|
|
104
|
+
}]);
|
|
105
|
+
});
|
|
106
|
+
test('collectDesignerInputs records the variation group when the product has groups', function () {
|
|
107
|
+
var _collectDesignerInput = collectDesignerInputs(groupedProduct, drafts()),
|
|
108
|
+
_collectDesignerInput2 = _slicedToArray(_collectDesignerInput, 1),
|
|
109
|
+
text = _collectDesignerInput2[0];
|
|
110
|
+
expect(text.groupIndex).toBe(0);
|
|
111
|
+
});
|
|
112
|
+
test('packDesignInputNotes hides the checkout payload in the cart marker', function () {
|
|
113
|
+
var notes = packDesignInputNotes([{
|
|
114
|
+
kind: 'text',
|
|
115
|
+
name: 'Team night',
|
|
116
|
+
value: 'Team night',
|
|
117
|
+
textStyle: {
|
|
118
|
+
colour: '#112233',
|
|
119
|
+
textSize: 56,
|
|
120
|
+
font: 'Oswald',
|
|
121
|
+
align: 'center'
|
|
122
|
+
}
|
|
123
|
+
}, {
|
|
124
|
+
kind: 'file',
|
|
125
|
+
name: 'Custom image',
|
|
126
|
+
file: {
|
|
127
|
+
id: 'file-1'
|
|
128
|
+
}
|
|
129
|
+
}]);
|
|
130
|
+
expect(notes === null || notes === void 0 ? void 0 : notes.startsWith('[[client-design-inputs:')).toBe(true);
|
|
131
|
+
expect(notes === null || notes === void 0 ? void 0 : notes.includes('data:image')).toBe(false);
|
|
132
|
+
var encoded = notes.slice('[[client-design-inputs:'.length, -2);
|
|
133
|
+
var parsed = JSON.parse(new TextDecoder().decode(Uint8Array.from(atob(encoded), function (_char) {
|
|
134
|
+
return _char.charCodeAt(0);
|
|
135
|
+
})));
|
|
136
|
+
expect(parsed).toEqual([{
|
|
137
|
+
kind: 'text',
|
|
138
|
+
name: 'Team night',
|
|
139
|
+
value: 'Team night',
|
|
140
|
+
textStyle: {
|
|
141
|
+
colour: '#112233',
|
|
142
|
+
textSize: 56,
|
|
143
|
+
font: 'Oswald',
|
|
144
|
+
align: 'center'
|
|
145
|
+
}
|
|
146
|
+
}, {
|
|
147
|
+
kind: 'file',
|
|
148
|
+
name: 'Custom image',
|
|
149
|
+
file: {
|
|
150
|
+
id: 'file-1'
|
|
151
|
+
}
|
|
152
|
+
}]);
|
|
153
|
+
});
|
|
154
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb2xsZWN0RGVzaWduZXJJbnB1dHMiLCJwYWNrRGVzaWduSW5wdXROb3RlcyIsImdyb3VwZWRQcm9kdWN0IiwiZ3JvdXBWYXJpYXRpb25GaWVsZHMiLCJpZCIsInBsYWluUHJvZHVjdCIsImRyYWZ0cyIsImdyb3VwSW5kZXgiLCJwcm9kdWN0SWQiLCJwcmV2aWV3cyIsInRlbXBsYXRlRGF0YSIsInRlbXBsYXRlSWQiLCJkcmFmdCIsImNhbnZhc1ByZXZpZXciLCJjYW52YXNKc29uIiwid2lkdGgiLCJoZWlnaHQiLCJvYmplY3RzIiwidHlwZSIsIm1lcmNoaUZpZWxkSWQiLCJ0ZXh0IiwieCIsInkiLCJyb3RhdGlvbiIsInNjYWxlWCIsInNjYWxlWSIsImZpbGwiLCJmb250U2l6ZSIsImZvbnRGYW1pbHkiLCJhbGlnbiIsInNyYyIsInRlc3QiLCJleHBlY3QiLCJ0b0VxdWFsIiwia2luZCIsIm5hbWUiLCJ2YWx1ZSIsInRleHRTdHlsZSIsImNvbG91ciIsInRleHRTaXplIiwiZm9udCIsIl9jb2xsZWN0RGVzaWduZXJJbnB1dCIsIl9jb2xsZWN0RGVzaWduZXJJbnB1dDIiLCJfc2xpY2VkVG9BcnJheSIsInRvQmUiLCJub3RlcyIsImZpbGUiLCJzdGFydHNXaXRoIiwiaW5jbHVkZXMiLCJlbmNvZGVkIiwic2xpY2UiLCJsZW5ndGgiLCJwYXJzZWQiLCJKU09OIiwicGFyc2UiLCJUZXh0RGVjb2RlciIsImRlY29kZSIsIlVpbnQ4QXJyYXkiLCJmcm9tIiwiYXRvYiIsImNoYXIiLCJjaGFyQ29kZUF0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2Rlc2lnbmVySW5wdXRzLnRlc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY29sbGVjdERlc2lnbmVySW5wdXRzLFxuICBwYWNrRGVzaWduSW5wdXROb3Rlcyxcbn0gZnJvbSAnLi9kZXNpZ25lcklucHV0cyc7XG5pbXBvcnQgeyBEcmFmdFRlbXBsYXRlRGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBncm91cGVkUHJvZHVjdCA9IHsgZ3JvdXBWYXJpYXRpb25GaWVsZHM6IFt7IGlkOiA5IH1dIH07XG5jb25zdCBwbGFpblByb2R1Y3QgPSB7IGdyb3VwVmFyaWF0aW9uRmllbGRzOiBbXSB9O1xuXG5mdW5jdGlvbiBkcmFmdHMoKTogRHJhZnRUZW1wbGF0ZURhdGFbXSB7XG4gIHJldHVybiBbe1xuICAgIGdyb3VwSW5kZXg6IDAsXG4gICAgcHJvZHVjdElkOiA0LFxuICAgIHByZXZpZXdzOiBbXSxcbiAgICB0ZW1wbGF0ZURhdGE6IFt7XG4gICAgICB0ZW1wbGF0ZUlkOiAxLFxuICAgICAgZHJhZnQ6ICdkcmFmdCcsXG4gICAgICBjYW52YXNQcmV2aWV3OiAncHJldmlldycsXG4gICAgICBjYW52YXNKc29uOiB7XG4gICAgICAgIHdpZHRoOiAxMDAsXG4gICAgICAgIGhlaWdodDogMTAwLFxuICAgICAgICBvYmplY3RzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdsaW5rZWQnLFxuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgbWVyY2hpRmllbGRJZDogOSxcbiAgICAgICAgICAgIHRleHQ6ICdGcm9tIHRoZSBmb3JtJyxcbiAgICAgICAgICAgIHg6IDAsIHk6IDAsIHdpZHRoOiAxMCwgaGVpZ2h0OiAxMCwgcm90YXRpb246IDAsIHNjYWxlWDogMSwgc2NhbGVZOiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdhZGRlZCcsXG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICB0ZXh0OiAnVGVhbSBuaWdodCcsXG4gICAgICAgICAgICBmaWxsOiAnIzExMjIzMycsXG4gICAgICAgICAgICBmb250U2l6ZTogNTYsXG4gICAgICAgICAgICBmb250RmFtaWx5OiAnT3N3YWxkJyxcbiAgICAgICAgICAgIGFsaWduOiAnY2VudGVyJyxcbiAgICAgICAgICAgIHg6IDEyLCB5OiAyMCwgd2lkdGg6IDI0MCwgaGVpZ2h0OiA2NCwgcm90YXRpb246IDAsIHNjYWxlWDogMSwgc2NhbGVZOiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdsb2dvJyxcbiAgICAgICAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICAgICAgICBzcmM6ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsYWFhJyxcbiAgICAgICAgICAgIHg6IDAsIHk6IDAsIHdpZHRoOiAxMCwgaGVpZ2h0OiAxMCwgcm90YXRpb246IDAsIHNjYWxlWDogMSwgc2NhbGVZOiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdmaWxsJyxcbiAgICAgICAgICAgIHR5cGU6ICdyZWN0JyxcbiAgICAgICAgICAgIGZpbGw6ICcjMTExMTExJyxcbiAgICAgICAgICAgIHg6IDAsIHk6IDAsIHdpZHRoOiAxMCwgaGVpZ2h0OiAxMCwgcm90YXRpb246IDAsIHNjYWxlWDogMSwgc2NhbGVZOiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH1dLFxuICB9XTtcbn1cblxudGVzdCgnY29sbGVjdERlc2lnbmVySW5wdXRzIGtlZXBzIG9ubHkgdGV4dCBhbmQgaW1hZ2VzIHRoZSBjdXN0b21lciBhZGRlZCcsICgpID0+IHtcbiAgZXhwZWN0KGNvbGxlY3REZXNpZ25lcklucHV0cyhwbGFpblByb2R1Y3QsIGRyYWZ0cygpKSkudG9FcXVhbChbXG4gICAge1xuICAgICAga2luZDogJ3RleHQnLFxuICAgICAgbmFtZTogJ1RlYW0gbmlnaHQnLFxuICAgICAgdmFsdWU6ICdUZWFtIG5pZ2h0JyxcbiAgICAgIHRleHRTdHlsZToge1xuICAgICAgICBjb2xvdXI6ICcjMTEyMjMzJyxcbiAgICAgICAgdGV4dFNpemU6IDU2LFxuICAgICAgICBmb250OiAnT3N3YWxkJyxcbiAgICAgICAgYWxpZ246ICdjZW50ZXInLFxuICAgICAgICB4OiAxMixcbiAgICAgICAgeTogMjAsXG4gICAgICAgIHdpZHRoOiAyNDAsXG4gICAgICAgIGhlaWdodDogNjQsXG4gICAgICAgIHJvdGF0aW9uOiAwLFxuICAgICAgICBzY2FsZVg6IDEsXG4gICAgICAgIHNjYWxlWTogMSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7IGtpbmQ6ICdmaWxlJywgbmFtZTogJ0N1c3RvbSBpbWFnZScsIHNyYzogJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxhYWEnIH0sXG4gIF0pO1xufSk7XG5cbnRlc3QoJ2NvbGxlY3REZXNpZ25lcklucHV0cyByZWNvcmRzIHRoZSB2YXJpYXRpb24gZ3JvdXAgd2hlbiB0aGUgcHJvZHVjdCBoYXMgZ3JvdXBzJywgKCkgPT4ge1xuICBjb25zdCBbdGV4dF0gPSBjb2xsZWN0RGVzaWduZXJJbnB1dHMoZ3JvdXBlZFByb2R1Y3QsIGRyYWZ0cygpKTtcbiAgZXhwZWN0KHRleHQuZ3JvdXBJbmRleCkudG9CZSgwKTtcbn0pO1xuXG50ZXN0KCdwYWNrRGVzaWduSW5wdXROb3RlcyBoaWRlcyB0aGUgY2hlY2tvdXQgcGF5bG9hZCBpbiB0aGUgY2FydCBtYXJrZXInLCAoKSA9PiB7XG4gIGNvbnN0IG5vdGVzID0gcGFja0Rlc2lnbklucHV0Tm90ZXMoW1xuICAgIHtcbiAgICAgIGtpbmQ6ICd0ZXh0JyxcbiAgICAgIG5hbWU6ICdUZWFtIG5pZ2h0JyxcbiAgICAgIHZhbHVlOiAnVGVhbSBuaWdodCcsXG4gICAgICB0ZXh0U3R5bGU6IHtcbiAgICAgICAgY29sb3VyOiAnIzExMjIzMycsXG4gICAgICAgIHRleHRTaXplOiA1NixcbiAgICAgICAgZm9udDogJ09zd2FsZCcsXG4gICAgICAgIGFsaWduOiAnY2VudGVyJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7IGtpbmQ6ICdmaWxlJywgbmFtZTogJ0N1c3RvbSBpbWFnZScsIGZpbGU6IHsgaWQ6ICdmaWxlLTEnIH0gfSxcbiAgXSk7XG4gIGV4cGVjdChub3Rlcz8uc3RhcnRzV2l0aCgnW1tjbGllbnQtZGVzaWduLWlucHV0czonKSkudG9CZSh0cnVlKTtcbiAgZXhwZWN0KG5vdGVzPy5pbmNsdWRlcygnZGF0YTppbWFnZScpKS50b0JlKGZhbHNlKTtcbiAgY29uc3QgZW5jb2RlZCA9IG5vdGVzIS5zbGljZSgnW1tjbGllbnQtZGVzaWduLWlucHV0czonLmxlbmd0aCwgLTIpO1xuICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShcbiAgICBVaW50OEFycmF5LmZyb20oYXRvYihlbmNvZGVkKSwgKGNoYXIpID0+IGNoYXIuY2hhckNvZGVBdCgwKSksXG4gICkpO1xuICBleHBlY3QocGFyc2VkKS50b0VxdWFsKFtcbiAgICB7XG4gICAgICBraW5kOiAndGV4dCcsXG4gICAgICBuYW1lOiAnVGVhbSBuaWdodCcsXG4gICAgICB2YWx1ZTogJ1RlYW0gbmlnaHQnLFxuICAgICAgdGV4dFN0eWxlOiB7XG4gICAgICAgIGNvbG91cjogJyMxMTIyMzMnLFxuICAgICAgICB0ZXh0U2l6ZTogNTYsXG4gICAgICAgIGZvbnQ6ICdPc3dhbGQnLFxuICAgICAgICBhbGlnbjogJ2NlbnRlcicsXG4gICAgICB9LFxuICAgIH0sXG4gICAgeyBraW5kOiAnZmlsZScsIG5hbWU6ICdDdXN0b20gaW1hZ2UnLCBmaWxlOiB7IGlkOiAnZmlsZS0xJyB9IH0sXG4gIF0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLFNBQ0VBLHFCQUFxQixFQUNyQkMsb0JBQW9CLFFBQ2Ysa0JBQWtCO0FBR3pCLElBQU1DLGNBQWMsR0FBRztFQUFFQyxvQkFBb0IsRUFBRSxDQUFDO0lBQUVDLEVBQUUsRUFBRTtFQUFFLENBQUM7QUFBRSxDQUFDO0FBQzVELElBQU1DLFlBQVksR0FBRztFQUFFRixvQkFBb0IsRUFBRTtBQUFHLENBQUM7QUFFakQsU0FBU0csTUFBTUEsQ0FBQSxFQUF3QjtFQUNyQyxPQUFPLENBQUM7SUFDTkMsVUFBVSxFQUFFLENBQUM7SUFDYkMsU0FBUyxFQUFFLENBQUM7SUFDWkMsUUFBUSxF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
|
|
@@ -3,6 +3,10 @@ export declare function draftStorageKey(productId: number | string): string;
|
|
|
3
3
|
export declare function loadDrafts(productId: number | string): DraftTemplateData[];
|
|
4
4
|
export declare function saveDrafts(productId: number | string, drafts: DraftTemplateData[]): void;
|
|
5
5
|
export declare function clearDrafts(productId: number | string): void;
|
|
6
|
+
/** Drop every draft the browser remembered for one product. */
|
|
7
|
+
export declare function clearDraftWork(productId: number | string): void;
|
|
8
|
+
/** Drop drafts saved for every product except the one being designed now. */
|
|
9
|
+
export declare function clearOtherProductDrafts(productId: number | string): void;
|
|
6
10
|
export type ArtworkPath = 'self' | 'service';
|
|
7
11
|
export declare function artworkPathKey(productId: number | string): string;
|
|
8
12
|
export declare function loadArtworkPath(productId: number | string): ArtworkPath;
|
|
@@ -34,6 +34,39 @@ export function clearDrafts(productId) {
|
|
|
34
34
|
if (typeof window === 'undefined' || productId == null) return;
|
|
35
35
|
window.localStorage.removeItem(draftStorageKey(productId));
|
|
36
36
|
}
|
|
37
|
+
var DRAFT_WORK_PREFIXES = ['productDraftTemplate-', 'productArtworkPath-', 'productDesignMethod-', 'productTemplateUploads-'];
|
|
38
|
+
|
|
39
|
+
/** Drop every draft the browser remembered for one product. */
|
|
40
|
+
export function clearDraftWork(productId) {
|
|
41
|
+
if (typeof window === 'undefined' || productId == null) return;
|
|
42
|
+
DRAFT_WORK_PREFIXES.forEach(function (prefix) {
|
|
43
|
+
window.localStorage.removeItem("".concat(prefix).concat(productId));
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** Drop drafts saved for every product except the one being designed now. */
|
|
48
|
+
export function clearOtherProductDrafts(productId) {
|
|
49
|
+
if (typeof window === 'undefined' || productId == null) return;
|
|
50
|
+
var keep = String(productId);
|
|
51
|
+
var stale = [];
|
|
52
|
+
var _loop = function _loop() {
|
|
53
|
+
var key = window.localStorage.key(index);
|
|
54
|
+
if (!key) return 0; // continue
|
|
55
|
+
var prefix = DRAFT_WORK_PREFIXES.find(function (item) {
|
|
56
|
+
return key.startsWith(item);
|
|
57
|
+
});
|
|
58
|
+
if (!prefix) return 0; // continue
|
|
59
|
+
if (key.slice(prefix.length) !== keep) stale.push(key);
|
|
60
|
+
},
|
|
61
|
+
_ret;
|
|
62
|
+
for (var index = 0; index < window.localStorage.length; index += 1) {
|
|
63
|
+
_ret = _loop();
|
|
64
|
+
if (_ret === 0) continue;
|
|
65
|
+
}
|
|
66
|
+
stale.forEach(function (key) {
|
|
67
|
+
return window.localStorage.removeItem(key);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
37
70
|
export function artworkPathKey(productId) {
|
|
38
71
|
return "productArtworkPath-".concat(productId);
|
|
39
72
|
}
|
|
@@ -197,7 +230,7 @@ export function completeGroupCount(product, formValues, drafts) {
|
|
|
197
230
|
var independent = (formValues === null || formValues === void 0 ? void 0 : formValues.variations) || [];
|
|
198
231
|
var groups = (formValues === null || formValues === void 0 ? void 0 : formValues.variationsGroups) || [];
|
|
199
232
|
var complete = 0;
|
|
200
|
-
var
|
|
233
|
+
var _loop2 = function _loop2(groupIndex) {
|
|
201
234
|
var _groups$groupIndex2;
|
|
202
235
|
var templates = templatesForGroup(product, independent, ((_groups$groupIndex2 = groups[groupIndex]) === null || _groups$groupIndex2 === void 0 ? void 0 : _groups$groupIndex2.variations) || []);
|
|
203
236
|
var allSaved = templates.every(function (template) {
|
|
@@ -206,11 +239,11 @@ export function completeGroupCount(product, formValues, drafts) {
|
|
|
206
239
|
if (allSaved) complete += 1;
|
|
207
240
|
};
|
|
208
241
|
for (var groupIndex = 0; groupIndex < count; groupIndex += 1) {
|
|
209
|
-
|
|
242
|
+
_loop2(groupIndex);
|
|
210
243
|
}
|
|
211
244
|
return {
|
|
212
245
|
complete: complete,
|
|
213
246
|
total: count
|
|
214
247
|
};
|
|
215
248
|
}
|
|
216
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZXNpZ25Hcm91cENvdW50IiwidGVtcGxhdGVzRm9yR3JvdXAiLCJkcmFmdFN0b3JhZ2VLZXkiLCJwcm9kdWN0SWQiLCJjb25jYXQiLCJsb2FkRHJhZnRzIiwid2luZG93IiwicmF3IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInBhcnNlZCIsIkpTT04iLCJwYXJzZSIsIkFycmF5IiwiaXNBcnJheSIsIl91bnVzZWQiLCJzYXZlRHJhZnRzIiwiZHJhZnRzIiwic2V0SXRlbSIsInN0cmluZ2lmeSIsImNsZWFyRHJhZnRzIiwicmVtb3ZlSXRlbSIsImFydHdvcmtQYXRoS2V5IiwibG9hZEFydHdvcmtQYXRoIiwiX3VudXNlZDIiLCJzYXZlQXJ0d29ya1BhdGgiLCJwYXRoIiwiZGVzaWduTWV0aG9kS2V5IiwibG9hZERlc2lnbk1ldGhvZCIsIl91bnVzZWQzIiwic2F2ZURlc2lnbk1ldGhvZCIsIm1ldGhvZCIsInRlbXBsYXRlVXBsb2Fkc0tleSIsImxvYWRUZW1wbGF0ZVVwbG9hZHMiLCJmaWx0ZXIiLCJmaWxlIiwiaWQiLCJfdW51c2VkNCIsInNhdmVUZW1wbGF0ZVVwbG9hZHMiLCJmaWxlcyIsImNoZWNrb3V0Q2xpZW50RmlsZXMiLCJtYXAiLCJvYmplY3RJZCIsIlN0cmluZyIsInRlbXBsYXRlQ2hlY2tvdXRKb2IiLCJqb2JEYXRhIiwiY2xpZW50RmlsZXMiLCJuZXh0IiwiX29iamVjdFNwcmVhZCIsImxlbmd0aCIsIm93bkRyYWZ0cyIsImFjY2VwdGVkIiwiTWF0aCIsImZsb29yIiwiRGF0ZSIsIm5vdyIsImltYWdlcyIsImVudHJ5IiwicHJ1bmVEcmFmdHMiLCJncm91cENvdW50IiwiZHJhZnQiLCJncm91cEluZGV4Iiwic2F2ZWRQcmV2aWV3IiwidGVtcGxhdGVJZCIsImdyb3VwIiwiZmluZCIsInRlbXBsYXRlRGF0YSIsIml0ZW0iLCJpc1ByZXZpZXdDb21wbGV0ZSIsInByZXZpZXciLCJCb29sZWFuIiwiY2FudmFzUHJldmlldyIsInVwc2VydEdyb3VwVGVtcGxhdGVEcmFmdCIsIl90b0NvbnN1bWFibGVBcnJheSIsInByZXZpZXdzIiwicHVzaCIsImluZGV4IiwiZmluZEluZGV4IiwicmVxdWlyZWREZXNpZ25TbG90cyIsInByb2R1Y3QiLCJmb3JtVmFsdWVzIiwiY291bnQiLCJpbmRlcGVuZGVudCIsInZhcmlhdGlvbnMiLCJncm91cHMiLCJ2YXJpYXRpb25zR3JvdXBzIiwic2xvdHMiLCJfZ3JvdXBzJGdyb3VwSW5kZXgiLCJncm91cFZhcnMiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwidGVtcGxhdGUiLCJ2YWx1ZSIsImVyciIsImUiLCJmIiwibWlzc2luZ0Rlc2lnblNsb3RzIiwicHJ1bmVkIiwiX3JlZiIsImNvbXBsZXRlR3JvdXBDb3VudCIsImNvbXBsZXRlIiwiX2xvb3AiLCJfZ3JvdXBzJGdyb3VwSW5kZXgyIiwidGVtcGxhdGVzIiwiYWxsU2F2ZWQiLCJldmVyeSIsInRvdGFsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RyYWZ0U3RvcmFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEcmFmdFRlbXBsYXRlRGF0YSxcbiAgUmVuZGVyZWREcmFmdFByZXZpZXcsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgZGVzaWduR3JvdXBDb3VudCxcbiAgdGVtcGxhdGVzRm9yR3JvdXAsXG59IGZyb20gJy4vZHJhZnRUZW1wbGF0ZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZHJhZnRTdG9yYWdlS2V5KHByb2R1Y3RJZDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBwcm9kdWN0RHJhZnRUZW1wbGF0ZS0ke3Byb2R1Y3RJZH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZERyYWZ0cyhwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyk6IERyYWZ0VGVtcGxhdGVEYXRhW10ge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybiBbXTtcbiAgdHJ5IHtcbiAgICBjb25zdCByYXcgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oZHJhZnRTdG9yYWdlS2V5KHByb2R1Y3RJZCkpO1xuICAgIGlmICghcmF3KSByZXR1cm4gW107XG4gICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShyYXcpO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHBhcnNlZCkgPyBwYXJzZWQgOiBbXTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlRHJhZnRzKFxuICBwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyxcbiAgZHJhZnRzOiBEcmFmdFRlbXBsYXRlRGF0YVtdLFxuKTogdm9pZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oZHJhZnRTdG9yYWdlS2V5KHByb2R1Y3RJZCksIEpTT04uc3RyaW5naWZ5KGRyYWZ0cykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJEcmFmdHMocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm47XG4gIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShkcmFmdFN0b3JhZ2VLZXkocHJvZHVjdElkKSk7XG59XG5cbmV4cG9ydCB0eXBlIEFydHdvcmtQYXRoID0gJ3NlbGYnIHwgJ3NlcnZpY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gYXJ0d29ya1BhdGhLZXkocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYHByb2R1Y3RBcnR3b3JrUGF0aC0ke3Byb2R1Y3RJZH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFydHdvcmtQYXRoKHByb2R1Y3RJZDogbnVtYmVyIHwgc3RyaW5nKTogQXJ0d29ya1BhdGgge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybiAnc2VsZic7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShhcnR3b3JrUGF0aEtleShwcm9kdWN0SWQpKSA9PT0gJ3NlcnZpY2UnXG4gICAgICA/ICdzZXJ2aWNlJ1xuICAgICAgOiAnc2VsZic7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAnc2VsZic7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVBcnR3b3JrUGF0aChcbiAgcHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcsXG4gIHBhdGg6IEFydHdvcmtQYXRoLFxuKTogdm9pZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oYXJ0d29ya1BhdGhLZXkocHJvZHVjdElkKSwgcGF0aCk7XG59XG5cbmV4cG9ydCB0eXBlIERlc2lnbk1ldGhvZCA9ICdkZXNpZ25lcicgfCAndGVtcGxhdGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZVVwbG9hZCB7XG4gIGlkOiBudW1iZXIgfCBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdmlld1VybD86IHN0cmluZztcbiAgZG93bmxvYWRVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNpZ25NZXRob2RLZXkocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYHByb2R1Y3REZXNpZ25NZXRob2QtJHtwcm9kdWN0SWR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWREZXNpZ25NZXRob2QocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBEZXNpZ25NZXRob2Qge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybiAnZGVzaWduZXInO1xuICB0cnkge1xuICAgIHJldHVybiB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oZGVzaWduTWV0aG9kS2V5KHByb2R1Y3RJZCkpID09PSAndGVtcGxhdGVzJ1xuICAgICAgPyAndGVtcGxhdGVzJ1xuICAgICAgOiAnZGVzaWduZXInO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJ2Rlc2lnbmVyJztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZURlc2lnbk1ldGhvZChcbiAgcHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcsXG4gIG1ldGhvZDogRGVzaWduTWV0aG9kLFxuKTogdm9pZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oZGVzaWduTWV0aG9kS2V5KHByb2R1Y3RJZCksIG1ldGhvZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZVVwbG9hZHNLZXkocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYHByb2R1Y3RUZW1wbGF0ZVVwbG9hZHMtJHtwcm9kdWN0SWR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRUZW1wbGF0ZVVwbG9hZHMocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBUZW1wbGF0ZVVwbG9hZFtdIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm4gW107XG4gIHRyeSB7XG4gICAgY29uc3QgcmF3ID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRlbXBsYXRlVXBsb2Fkc0tleShwcm9kdWN0SWQpKTtcbiAgICBpZiAoIXJhdykgcmV0dXJuIFtdO1xuICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmF3KTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYXJzZWQpID8gcGFyc2VkLmZpbHRlcigoZmlsZSkgPT4gZmlsZT8uaWQgIT0gbnVsbCkgOiBbXTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlVGVtcGxhdGVVcGxvYWRzKFxuICBwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyxcbiAgZmlsZXM6IFRlbXBsYXRlVXBsb2FkW10sXG4pOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm47XG4gIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0ZW1wbGF0ZVVwbG9hZHNLZXkocHJvZHVjdElkKSwgSlNPTi5zdHJpbmdpZnkoZmlsZXMpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrb3V0Q2xpZW50RmlsZXMoZmlsZXM6IFRlbXBsYXRlVXBsb2FkW10pIHtcbiAgcmV0dXJuIChmaWxlcyB8fCBbXSlcbiAgICAuZmlsdGVyKChmaWxlKSA9PiBmaWxlPy5pZCAhPSBudWxsKVxuICAgIC5tYXAoKGZpbGUpID0+ICh7XG4gICAgICBmaWxlOiB7IGlkOiBmaWxlLmlkIH0sXG4gICAgICBvYmplY3RJZDogU3RyaW5nKGZpbGUuaWQpLFxuICAgIH0pKTtcbn1cblxuLyoqIEF0dGFjaCByZXVwbG9hZGVkIHRlbXBsYXRlcyBhcyBwcmludCBmaWxlcyBhbmQgYXMgdGhlIGpvYidzIGNsaWVudCBkcmFmdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZUNoZWNrb3V0Sm9iKGpvYkRhdGE6IGFueSwgZmlsZXM6IFRlbXBsYXRlVXBsb2FkW10pIHtcbiAgY29uc3QgY2xpZW50RmlsZXMgPSBjaGVja291dENsaWVudEZpbGVzKGZpbGVzKTtcbiAgY29uc3QgbmV4dCA9IHsgLi4uam9iRGF0YSwgY2xpZW50RmlsZXMgfTtcbiAgaWYgKCFjbGllbnRGaWxlcy5sZW5ndGgpIHtcbiAgICBkZWxldGUgbmV4dC5vd25EcmFmdHM7XG4gICAgcmV0dXJuIG5leHQ7XG4gIH1cbiAgbmV4dC5vd25EcmFmdHMgPSBbe1xuICAgIGFjY2VwdGVkOiBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKSxcbiAgICBpbWFnZXM6IGNsaWVudEZpbGVzLm1hcCgoZW50cnkpID0+ICh7IGlkOiBlbnRyeS5maWxlLmlkIH0pKSxcbiAgfV07XG4gIHJldHVybiBuZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmVEcmFmdHMoXG4gIGRyYWZ0czogRHJhZnRUZW1wbGF0ZURhdGFbXSxcbiAgZ3JvdXBDb3VudDogbnVtYmVyLFxuKTogRHJhZnRUZW1wbGF0ZURhdGFbXSB7XG4gIHJldHVybiAoZHJhZnRzIHx8IFtdKS5maWx0ZXIoKGRyYWZ0KSA9PiBkcmFmdC5ncm91cEluZGV4IDwgZ3JvdXBDb3VudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlZFByZXZpZXcoXG4gIGRyYWZ0czogRHJhZnRUZW1wbGF0ZURhdGFbXSxcbiAgZ3JvdXBJbmRleDogbnVtYmVyLFxuICB0ZW1wbGF0ZUlkOiBudW1iZXIsXG4pOiBSZW5kZXJlZERyYWZ0UHJldmlldyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGdyb3VwID0gKGRyYWZ0cyB8fCBbXSkuZmluZCgoZHJhZnQpID0+IGRyYWZ0Lmdyb3VwSW5kZXggPT09IGdyb3VwSW5kZXgpO1xuICByZXR1cm4gKGdyb3VwPy50ZW1wbGF0ZURhdGEgfHwgW10pLmZpbmQoXG4gICAgKGl0ZW0pID0+IGl0ZW0udGVtcGxhdGVJZCA9PT0gdGVtcGxhdGVJZFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcmV2aWV3Q29tcGxldGUocHJldmlldz86IFJlbmRlcmVkRHJhZnRQcmV2aWV3IHwgbnVsbCk6IGJvb2xlYW4ge1xuICByZXR1cm4gQm9vbGVhbihwcmV2aWV3Py5kcmFmdCAmJiBwcmV2aWV3Py5jYW52YXNQcmV2aWV3KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwc2VydEdyb3VwVGVtcGxhdGVEcmFmdChcbiAgZHJhZnRzOiBEcmFmdFRlbXBsYXRlRGF0YVtdLFxuICBwcm9kdWN0SWQ6IG51bWJlcixcbiAgZ3JvdXBJbmRleDogbnVtYmVyLFxuICBwcmV2aWV3OiBSZW5kZXJlZERyYWZ0UHJldmlldyxcbik6IERyYWZ0VGVtcGxhdGVEYXRhW10ge1xuICBjb25zdCBuZXh0ID0gKGRyYWZ0cyB8fCBbXSkubWFwKChkcmFmdCkgPT4gKHtcbiAgICAuLi5kcmFmdCxcbiAgICB0ZW1wbGF0ZURhdGE6IFsuLi4oZHJhZnQudGVtcGxhdGVEYXRhIHx8IFtdKV0sXG4gICAgcHJldmlld3M6IFsuLi4oZHJhZnQucHJldmlld3MgfHwgW10pXSxcbiAgfSkpO1xuICBsZXQgZ3JvdXAgPSBuZXh0LmZpbmQoKGRyYWZ0KSA9PiBkcmFmdC5ncm91cEluZGV4ID09PSBncm91cEluZGV4KTtcbiAgaWYgKCFncm91cCkge1xuICAgIGdyb3VwID0geyBncm91cEluZGV4LCBwcm9kdWN0SWQsIHRlbXBsYXRlRGF0YTogW10sIHByZXZpZXdzOiBbXSB9O1xuICAgIG5leHQucHVzaChncm91cCk7XG4gIH1cbiAgY29uc3QgaW5kZXggPSBncm91cC50ZW1wbGF0ZURhdGEuZmluZEluZGV4KFxuICAgIChpdGVtKSA9PiBpdGVtLnRlbXBsYXRlSWQgPT09IHByZXZpZXcudGVtcGxhdGVJZFxuICApO1xuICBpZiAoaW5kZXggPj0gMCkgZ3JvdXAudGVtcGxhdGVEYXRhW2luZGV4XSA9IHByZXZpZXc7XG4gIGVsc2UgZ3JvdXAudGVtcGxhdGVEYXRhLnB1c2gocHJldmlldyk7XG4gIHJldHVybiBuZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZWREZXNpZ25TbG90cyhwcm9kdWN0OiBhbnksIGZvcm1WYWx1ZXM6IGFueSkge1xuICBjb25zdCBjb3VudCA9IGRlc2lnbkdyb3VwQ291bnQocHJvZHVjdCwgZm9ybVZhbHVlcyk7XG4gIGNvbnN0IGluZGVwZW5kZW50ID0gZm9ybVZhbHVlcz8udmFyaWF0aW9ucyB8fCBbXTtcbiAgY29uc3QgZ3JvdXBzID0gZm9ybVZhbHVlcz8udmFyaWF0aW9uc0dyb3VwcyB8fCBbXTtcbiAgY29uc3Qgc2xvdHM6IHsgZ3JvdXBJbmRleDogbnVtYmVyOyB0ZW1wbGF0ZTogYW55IH1bXSA9IFtdO1xuICBmb3IgKGxldCBncm91cEluZGV4ID0gMDsgZ3JvdXBJbmRleCA8IGNvdW50OyBncm91cEluZGV4ICs9IDEpIHtcbiAgICBjb25zdCBncm91cFZhcnMgPSBncm91cHNbZ3JvdXBJbmRleF0/LnZhcmlhdGlvbnMgfHwgW107XG4gICAgZm9yIChjb25zdCB0ZW1wbGF0ZSBvZiB0ZW1wbGF0ZXNGb3JHcm91cChwcm9kdWN0LCBpbmRlcGVuZGVudCwgZ3JvdXBWYXJzKSkge1xuICAgICAgc2xvdHMucHVzaCh7IGdyb3VwSW5kZXgsIHRlbXBsYXRlIH0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc2xvdHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaXNzaW5nRGVzaWduU2xvdHMoXG4gIHByb2R1Y3Q6IGFueSxcbiAgZm9ybVZhbHVlczogYW55LFxuICBkcmFmdHM6IERyYWZ0VGVtcGxhdGVEYXRhW10sXG4pIHtcbiAgY29uc3QgcHJ1bmVkID0gcHJ1bmVEcmFmdHMoZHJhZnRzLCBkZXNpZ25Hcm91cENvdW50KHByb2R1Y3QsIGZvcm1WYWx1ZXMpKTtcbiAgcmV0dXJuIHJlcXVpcmVkRGVzaWduU2xvdHMocHJvZHVjdCwgZm9ybVZhbHVlcykuZmlsdGVyKFxuICAgICh7IGdyb3VwSW5kZXgsIHRlbXBsYXRlIH0pID0+XG4gICAgICAhaXNQcmV2aWV3Q29tcGxldGUoc2F2ZWRQcmV2aWV3KHBydW5lZCwgZ3JvdXBJbmRleCwgdGVtcGxhdGUuaWQpKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGxldGVHcm91cENvdW50KHByb2R1Y3Q6IGFueSwgZm9ybVZhbHVlczogYW55LCBkcmFmdHM6IERyYWZ0VGVtcGxhdGVEYXRhW10pIHtcbiAgY29uc3QgY291bnQgPSBkZXNpZ25Hcm91cENvdW50KHByb2R1Y3QsIGZvcm1WYWx1ZXMpO1xuICBjb25zdCBpbmRlcGVuZGVudCA9IGZvcm1WYWx1ZXM/LnZhcmlhdGlvbnMgfHwgW107XG4gIGNvbnN0IGdyb3VwcyA9IGZvcm1WYWx1ZXM/LnZhcmlhdGlvbnNHcm91cHMgfHwgW107XG4gIGxldCBjb21wbGV0ZSA9IDA7XG4gIGZvciAobGV0IGdyb3VwSW5kZXggPSAwOyBncm91cEluZGV4IDwgY291bnQ7IGdyb3VwSW5kZXggKz0gMSkge1xuICAgIGNvbnN0IHRlbXBsYXRlcyA9IHRlbXBsYXRlc0Zvckdyb3VwKFxuICAgICAgcHJvZHVjdCxcbiAgICAgIGluZGVwZW5kZW50LFxuICAgICAgZ3JvdXBzW2dyb3VwSW5kZXhdPy52YXJpYXRpb25zIHx8IFtdLFxuICAgICk7XG4gICAgY29uc3QgYWxsU2F2ZWQgPSB0ZW1wbGF0ZXMuZXZlcnkoKHRlbXBsYXRlOiBhbnkpID0+XG4gICAgICBpc1ByZXZpZXdDb21wbGV0ZShzYXZlZFByZXZpZXcoZHJhZnRzLCBncm91cEluZGV4LCB0ZW1wbGF0ZS5pZCkpXG4gICAgKTtcbiAgICBpZiAoYWxsU2F2ZWQpIGNvbXBsZXRlICs9IDE7XG4gIH1cbiAgcmV0dXJuIHsgY29tcGxldGUsIHRvdGFsOiBjb3VudCB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBSUEsU0FDRUEsZ0JBQWdCLEVBQ2hCQyxpQkFBaUIsUUFDWixrQkFBa0I7QUFFekIsT0FBTyxTQUFTQyxlQUFlQSxDQUFDQyxTQUEwQixFQUFVO0VBQ2xFLCtCQUFBQyxNQUFBLENBQStCRCxTQUFTO0FBQzFDO0FBRUEsT0FBTyxTQUFTRSxVQUFVQSxDQUFDRixTQUEwQixFQUF1QjtFQUMxRSxJQUFJLE9BQU9HLE1B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QUNwRCxVQUFBb0UsSUFBQTtJQUFBLElBQUd6QyxVQUFVLEdBQUF5QyxJQUFBLENBQVZ6QyxVQUFVO01BQUVrQyxRQUFRLEdBQUFPLElBQUEsQ0FBUlAsUUFBUTtJQUFBLE9BQ3JCLENBQUMzQixpQkFBaUIsQ0FBQ04sWUFBWSxDQUFDdUMsTUFBTSxFQUFFeEMsVUFBVSxFQUFFa0MsUUFBUSxDQUFDM0QsRUFBRSxDQUFDLENBQUM7RUFBQSxDQUNyRSxDQUFDO0FBQ0g7QUFFQSxPQUFPLFNBQVNtRSxrQkFBa0JBLENBQUN4QixPQUFZLEVBQUVDLFVBQWUsRUFBRS9ELE1BQTJCLEVBQUU7RUFDN0YsSUFBTWdFLEtBQUssR0FBR2pGLGdCQUFnQixDQUFDK0UsT0FBTyxFQUFFQyxVQUFVLENBQUM7RUFDbkQsSUFBTUUsV0FBVyxHQUFHLENBQUFGLFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUFFRyxVQUFVLEtBQUksRUFBRTtFQUNoRCxJQUFNQyxNQUFNLEdBQUcsQ0FBQUosVUFBVSxhQUFWQSxVQUFVLHVCQUFWQSxVQUFVLENBQUVLLGdCQUFnQixLQUFJLEVBQUU7RUFDakQsSUFBSW1CLFFBQVEsR0FBRyxDQUFDO0VBQUMsSUFBQUMsS0FBQSxZQUFBQSxNQUFBNUMsVUFBQSxFQUM2QztJQUFBLElBQUE2QyxtQkFBQTtJQUM1RCxJQUFNQyxTQUFTLEdBQUcxRyxpQkFBaUIsQ0FDakM4RSxPQUFPLEVBQ1BHLFdBQVcsRUFDWCxFQUFBd0IsbUJBQUEsR0FBQXRCLE1BQU0sQ0FBQ3ZCLFVBQVUsQ0FBQyxjQUFBNkMsbUJBQUEsdUJBQWxCQSxtQkFBQSxDQUFvQnZCLFVBQVUsS0FBSSxFQUNwQyxDQUFDO0lBQ0QsSUFBTXlCLFFBQVEsR0FBR0QsU0FBUyxDQUFDRSxLQUFLLENBQUMsVUFBQ2QsUUFBYTtNQUFBLE9BQzdDM0IsaUJBQWlCLENBQUNOLFlBQVksQ0FBQzdDLE1BQU0sRUFBRTRDLFVBQVUsRUFBRWtDLFFBQVEsQ0FBQzNELEVBQUUsQ0FBQyxDQUFDO0lBQUEsQ0FDbEUsQ0FBQztJQUNELElBQUl3RSxRQUFRLEVBQUVKLFFBQVEsSUFBSSxDQUFDO0VBQzdCLENBQUM7RUFWRCxLQUFLLElBQUkzQyxVQUFVLEdBQUcsQ0FBQyxFQUFFQSxVQUFVLEdBQUdvQixLQUFLLEVBQUVwQixVQUFVLElBQUksQ0FBQztJQUFBNEMsS0FBQSxDQUFBNUMsVUFBQTtFQUFBO0VBVzVELE9BQU87SUFBRTJDLFFBQVEsRUFBUkEsUUFBUTtJQUFFTSxLQUFLLEVBQUU3QjtFQUFNLENBQUM7QUFDbkMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
249
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZXNpZ25Hcm91cENvdW50IiwidGVtcGxhdGVzRm9yR3JvdXAiLCJkcmFmdFN0b3JhZ2VLZXkiLCJwcm9kdWN0SWQiLCJjb25jYXQiLCJsb2FkRHJhZnRzIiwid2luZG93IiwicmF3IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInBhcnNlZCIsIkpTT04iLCJwYXJzZSIsIkFycmF5IiwiaXNBcnJheSIsIl91bnVzZWQiLCJzYXZlRHJhZnRzIiwiZHJhZnRzIiwic2V0SXRlbSIsInN0cmluZ2lmeSIsImNsZWFyRHJhZnRzIiwicmVtb3ZlSXRlbSIsIkRSQUZUX1dPUktfUFJFRklYRVMiLCJjbGVhckRyYWZ0V29yayIsImZvckVhY2giLCJwcmVmaXgiLCJjbGVhck90aGVyUHJvZHVjdERyYWZ0cyIsImtlZXAiLCJTdHJpbmciLCJzdGFsZSIsIl9sb29wIiwia2V5IiwiaW5kZXgiLCJmaW5kIiwiaXRlbSIsInN0YXJ0c1dpdGgiLCJzbGljZSIsImxlbmd0aCIsInB1c2giLCJfcmV0IiwiYXJ0d29ya1BhdGhLZXkiLCJsb2FkQXJ0d29ya1BhdGgiLCJfdW51c2VkMiIsInNhdmVBcnR3b3JrUGF0aCIsInBhdGgiLCJkZXNpZ25NZXRob2RLZXkiLCJsb2FkRGVzaWduTWV0aG9kIiwiX3VudXNlZDMiLCJzYXZlRGVzaWduTWV0aG9kIiwibWV0aG9kIiwidGVtcGxhdGVVcGxvYWRzS2V5IiwibG9hZFRlbXBsYXRlVXBsb2FkcyIsImZpbHRlciIsImZpbGUiLCJpZCIsIl91bnVzZWQ0Iiwic2F2ZVRlbXBsYXRlVXBsb2FkcyIsImZpbGVzIiwiY2hlY2tvdXRDbGllbnRGaWxlcyIsIm1hcCIsIm9iamVjdElkIiwidGVtcGxhdGVDaGVja291dEpvYiIsImpvYkRhdGEiLCJjbGllbnRGaWxlcyIsIm5leHQiLCJfb2JqZWN0U3ByZWFkIiwib3duRHJhZnRzIiwiYWNjZXB0ZWQiLCJNYXRoIiwiZmxvb3IiLCJEYXRlIiwibm93IiwiaW1hZ2VzIiwiZW50cnkiLCJwcnVuZURyYWZ0cyIsImdyb3VwQ291bnQiLCJkcmFmdCIsImdyb3VwSW5kZXgiLCJzYXZlZFByZXZpZXciLCJ0ZW1wbGF0ZUlkIiwiZ3JvdXAiLCJ0ZW1wbGF0ZURhdGEiLCJpc1ByZXZpZXdDb21wbGV0ZSIsInByZXZpZXciLCJCb29sZWFuIiwiY2FudmFzUHJldmlldyIsInVwc2VydEdyb3VwVGVtcGxhdGVEcmFmdCIsIl90b0NvbnN1bWFibGVBcnJheSIsInByZXZpZXdzIiwiZmluZEluZGV4IiwicmVxdWlyZWREZXNpZ25TbG90cyIsInByb2R1Y3QiLCJmb3JtVmFsdWVzIiwiY291bnQiLCJpbmRlcGVuZGVudCIsInZhcmlhdGlvbnMiLCJncm91cHMiLCJ2YXJpYXRpb25zR3JvdXBzIiwic2xvdHMiLCJfZ3JvdXBzJGdyb3VwSW5kZXgiLCJncm91cFZhcnMiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwidGVtcGxhdGUiLCJ2YWx1ZSIsImVyciIsImUiLCJmIiwibWlzc2luZ0Rlc2lnblNsb3RzIiwicHJ1bmVkIiwiX3JlZiIsImNvbXBsZXRlR3JvdXBDb3VudCIsImNvbXBsZXRlIiwiX2xvb3AyIiwiX2dyb3VwcyRncm91cEluZGV4MiIsInRlbXBsYXRlcyIsImFsbFNhdmVkIiwiZXZlcnkiLCJ0b3RhbCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9kcmFmdFN0b3JhZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRHJhZnRUZW1wbGF0ZURhdGEsXG4gIFJlbmRlcmVkRHJhZnRQcmV2aWV3LFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7XG4gIGRlc2lnbkdyb3VwQ291bnQsXG4gIHRlbXBsYXRlc0Zvckdyb3VwLFxufSBmcm9tICcuL2RyYWZ0VGVtcGxhdGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRyYWZ0U3RvcmFnZUtleShwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgcHJvZHVjdERyYWZ0VGVtcGxhdGUtJHtwcm9kdWN0SWR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWREcmFmdHMocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBEcmFmdFRlbXBsYXRlRGF0YVtdIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm4gW107XG4gIHRyeSB7XG4gICAgY29uc3QgcmF3ID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKGRyYWZ0U3RvcmFnZUtleShwcm9kdWN0SWQpKTtcbiAgICBpZiAoIXJhdykgcmV0dXJuIFtdO1xuICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmF3KTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYXJzZWQpID8gcGFyc2VkIDogW107XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBbXTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZURyYWZ0cyhcbiAgcHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcsXG4gIGRyYWZ0czogRHJhZnRUZW1wbGF0ZURhdGFbXSxcbik6IHZvaWQge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybjtcbiAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKGRyYWZ0U3RvcmFnZUtleShwcm9kdWN0SWQpLCBKU09OLnN0cmluZ2lmeShkcmFmdHMpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyRHJhZnRzKHByb2R1Y3RJZDogbnVtYmVyIHwgc3RyaW5nKTogdm9pZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZHJhZnRTdG9yYWdlS2V5KHByb2R1Y3RJZCkpO1xufVxuXG5jb25zdCBEUkFGVF9XT1JLX1BSRUZJWEVTID0gW1xuICAncHJvZHVjdERyYWZ0VGVtcGxhdGUtJyxcbiAgJ3Byb2R1Y3RBcnR3b3JrUGF0aC0nLFxuICAncHJvZHVjdERlc2lnbk1ldGhvZC0nLFxuICAncHJvZHVjdFRlbXBsYXRlVXBsb2Fkcy0nLFxuXTtcblxuLyoqIERyb3AgZXZlcnkgZHJhZnQgdGhlIGJyb3dzZXIgcmVtZW1iZXJlZCBmb3Igb25lIHByb2R1Y3QuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJEcmFmdFdvcmsocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm47XG4gIERSQUZUX1dPUktfUFJFRklYRVMuZm9yRWFjaCgocHJlZml4KSA9PiB7XG4gICAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGAke3ByZWZpeH0ke3Byb2R1Y3RJZH1gKTtcbiAgfSk7XG59XG5cbi8qKiBEcm9wIGRyYWZ0cyBzYXZlZCBmb3IgZXZlcnkgcHJvZHVjdCBleGNlcHQgdGhlIG9uZSBiZWluZyBkZXNpZ25lZCBub3cuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJPdGhlclByb2R1Y3REcmFmdHMocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm47XG4gIGNvbnN0IGtlZXAgPSBTdHJpbmcocHJvZHVjdElkKTtcbiAgY29uc3Qgc3RhbGU6IHN0cmluZ1tdID0gW107XG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB3aW5kb3cubG9jYWxTdG9yYWdlLmxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGNvbnN0IGtleSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2Uua2V5KGluZGV4KTtcbiAgICBpZiAoIWtleSkgY29udGludWU7XG4gICAgY29uc3QgcHJlZml4ID0gRFJBRlRfV09SS19QUkVGSVhFUy5maW5kKChpdGVtKSA9PiBrZXkuc3RhcnRzV2l0aChpdGVtKSk7XG4gICAgaWYgKCFwcmVmaXgpIGNvbnRpbnVlO1xuICAgIGlmIChrZXkuc2xpY2UocHJlZml4Lmxlbmd0aCkgIT09IGtlZXApIHN0YWxlLnB1c2goa2V5KTtcbiAgfVxuICBzdGFsZS5mb3JFYWNoKChrZXkpID0+IHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpKTtcbn1cblxuZXhwb3J0IHR5cGUgQXJ0d29ya1BhdGggPSAnc2VsZicgfCAnc2VydmljZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBhcnR3b3JrUGF0aEtleShwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgcHJvZHVjdEFydHdvcmtQYXRoLSR7cHJvZHVjdElkfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXJ0d29ya1BhdGgocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBBcnR3b3JrUGF0aCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuICdzZWxmJztcbiAgdHJ5IHtcbiAgICByZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKGFydHdvcmtQYXRoS2V5KHByb2R1Y3RJZCkpID09PSAnc2VydmljZSdcbiAgICAgID8gJ3NlcnZpY2UnXG4gICAgICA6ICdzZWxmJztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuICdzZWxmJztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUFydHdvcmtQYXRoKFxuICBwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyxcbiAgcGF0aDogQXJ0d29ya1BhdGgsXG4pOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm47XG4gIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShhcnR3b3JrUGF0aEtleShwcm9kdWN0SWQpLCBwYXRoKTtcbn1cblxuZXhwb3J0IHR5cGUgRGVzaWduTWV0aG9kID0gJ2Rlc2lnbmVyJyB8ICd0ZW1wbGF0ZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlVXBsb2FkIHtcbiAgaWQ6IG51bWJlciB8IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB2aWV3VXJsPzogc3RyaW5nO1xuICBkb3dubG9hZFVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2lnbk1ldGhvZEtleShwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgcHJvZHVjdERlc2lnbk1ldGhvZC0ke3Byb2R1Y3RJZH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZERlc2lnbk1ldGhvZChwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyk6IERlc2lnbk1ldGhvZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuICdkZXNpZ25lcic7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShkZXNpZ25NZXRob2RLZXkocHJvZHVjdElkKSkgPT09ICd0ZW1wbGF0ZXMnXG4gICAgICA/ICd0ZW1wbGF0ZXMnXG4gICAgICA6ICdkZXNpZ25lcic7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAnZGVzaWduZXInO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlRGVzaWduTWV0aG9kKFxuICBwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyxcbiAgbWV0aG9kOiBEZXNpZ25NZXRob2QsXG4pOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm47XG4gIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShkZXNpZ25NZXRob2RLZXkocHJvZHVjdElkKSwgbWV0aG9kKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlbXBsYXRlVXBsb2Fkc0tleShwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgcHJvZHVjdFRlbXBsYXRlVXBsb2Fkcy0ke3Byb2R1Y3RJZH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZFRlbXBsYXRlVXBsb2Fkcyhwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyk6IFRlbXBsYXRlVXBsb2FkW10ge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybiBbXTtcbiAgdHJ5IHtcbiAgICBjb25zdCByYXcgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0odGVtcGxhdGVVcGxvYWRzS2V5KHByb2R1Y3RJZCkpO1xuICAgIGlmICghcmF3KSByZXR1cm4gW107XG4gICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShyYXcpO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHBhcnNlZCkgPyBwYXJzZWQuZmlsdGVyKChmaWxlKSA9PiBmaWxlPy5pZCAhPSBudWxsKSA6IFtdO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gW107XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVUZW1wbGF0ZVVwbG9hZHMoXG4gIHByb2R1Y3RJZDogbnVtYmVyIHwgc3RyaW5nLFxuICBmaWxlczogVGVtcGxhdGVVcGxvYWRbXSxcbik6IHZvaWQge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybjtcbiAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKHRlbXBsYXRlVXBsb2Fkc0tleShwcm9kdWN0SWQpLCBKU09OLnN0cmluZ2lmeShmaWxlcykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tvdXRDbGllbnRGaWxlcyhmaWxlczogVGVtcGxhdGVVcGxvYWRbXSkge1xuICByZXR1cm4gKGZpbGVzIHx8IFtdKVxuICAgIC5maWx0ZXIoKGZpbGUpID0+IGZpbGU/LmlkICE9IG51bGwpXG4gICAgLm1hcCgoZmlsZSkgPT4gKHtcbiAgICAgIGZpbGU6IHsgaWQ6IGZpbGUuaWQgfSxcbiAgICAgIG9iamVjdElkOiBTdHJpbmcoZmlsZS5pZCksXG4gICAgfSkpO1xufVxuXG4vKiogQXR0YWNoIHJldXBsb2FkZWQgdGVtcGxhdGVzIGFzIHByaW50IGZpbGVzIGFuZCBhcyB0aGUgam9iJ3MgY2xpZW50IGRyYWZ0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlbXBsYXRlQ2hlY2tvdXRKb2Ioam9iRGF0YTogYW55LCBmaWxlczogVGVtcGxhdGVVcGxvYWRbXSkge1xuICBjb25zdCBjbGllbnRGaWxlcyA9IGNoZWNrb3V0Q2xpZW50RmlsZXMoZmlsZXMpO1xuICBjb25zdCBuZXh0ID0geyAuLi5qb2JEYXRhLCBjbGllbnRGaWxlcyB9O1xuICBpZiAoIWNsaWVudEZpbGVzLmxlbmd0aCkge1xuICAgIGRlbGV0ZSBuZXh0Lm93bkRyYWZ0cztcbiAgICByZXR1cm4gbmV4dDtcbiAgfVxuICBuZXh0Lm93bkRyYWZ0cyA9IFt7XG4gICAgYWNjZXB0ZWQ6IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApLFxuICAgIGltYWdlczogY2xpZW50RmlsZXMubWFwKChlbnRyeSkgPT4gKHsgaWQ6IGVudHJ5LmZpbGUuaWQgfSkpLFxuICB9XTtcbiAgcmV0dXJuIG5leHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcnVuZURyYWZ0cyhcbiAgZHJhZnRzOiBEcmFmdFRlbXBsYXRlRGF0YVtdLFxuICBncm91cENvdW50OiBudW1iZXIsXG4pOiBEcmFmdFRlbXBsYXRlRGF0YVtdIHtcbiAgcmV0dXJuIChkcmFmdHMgfHwgW10pLmZpbHRlcigoZHJhZnQpID0+IGRyYWZ0Lmdyb3VwSW5kZXggPCBncm91cENvdW50KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVkUHJldmlldyhcbiAgZHJhZnRzOiBEcmFmdFRlbXBsYXRlRGF0YVtdLFxuICBncm91cEluZGV4OiBudW1iZXIsXG4gIHRlbXBsYXRlSWQ6IG51bWJlcixcbik6IFJlbmRlcmVkRHJhZnRQcmV2aWV3IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZ3JvdXAgPSAoZHJhZnRzIHx8IFtdKS5maW5kKChkcmFmdCkgPT4gZHJhZnQuZ3JvdXBJbmRleCA9PT0gZ3JvdXBJbmRleCk7XG4gIHJldHVybiAoZ3JvdXA/LnRlbXBsYXRlRGF0YSB8fCBbXSkuZmluZChcbiAgICAoaXRlbSkgPT4gaXRlbS50ZW1wbGF0ZUlkID09PSB0ZW1wbGF0ZUlkXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXZpZXdDb21wbGV0ZShwcmV2aWV3PzogUmVuZGVyZWREcmFmdFByZXZpZXcgfCBudWxsKTogYm9vbGVhbiB7XG4gIHJldHVybiBCb29sZWFuKHByZXZpZXc/LmRyYWZ0ICYmIHByZXZpZXc/LmNhbnZhc1ByZXZpZXcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBzZXJ0R3JvdXBUZW1wbGF0ZURyYWZ0KFxuICBkcmFmdHM6IERyYWZ0VGVtcGxhdGVEYXRhW10sXG4gIHByb2R1Y3RJZDogbnVtYmVyLFxuICBncm91cEluZGV4OiBudW1iZXIsXG4gIHByZXZpZXc6IFJlbmRlcmVkRHJhZnRQcmV2aWV3LFxuKTogRHJhZnRUZW1wbGF0ZURhdGFbXSB7XG4gIGNvbnN0IG5leHQgPSAoZHJhZnRzIHx8IFtdKS5tYXAoKGRyYWZ0KSA9PiAoe1xuICAgIC4uLmRyYWZ0LFxuICAgIHRlbXBsYXRlRGF0YTogWy4uLihkcmFmdC50ZW1wbGF0ZURhdGEgfHwgW10pXSxcbiAgICBwcmV2aWV3czogWy4uLihkcmFmdC5wcmV2aWV3cyB8fCBbXSldLFxuICB9KSk7XG4gIGxldCBncm91cCA9IG5leHQuZmluZCgoZHJhZnQpID0+IGRyYWZ0Lmdyb3VwSW5kZXggPT09IGdyb3VwSW5kZXgpO1xuICBpZiAoIWdyb3VwKSB7XG4gICAgZ3JvdXAgPSB7IGdyb3VwSW5kZXgsIHByb2R1Y3RJZCwgdGVtcGxhdGVEYXRhOiBbXSwgcHJldmlld3M6IFtdIH07XG4gICAgbmV4dC5wdXNoKGdyb3VwKTtcbiAgfVxuICBjb25zdCBpbmRleCA9IGdyb3VwLnRlbXBsYXRlRGF0YS5maW5kSW5kZXgoXG4gICAgKGl0ZW0pID0+IGl0ZW0udGVtcGxhdGVJZCA9PT0gcHJldmlldy50ZW1wbGF0ZUlkXG4gICk7XG4gIGlmIChpbmRleCA+PSAwKSBncm91cC50ZW1wbGF0ZURhdGFbaW5kZXhdID0gcHJldmlldztcbiAgZWxzZSBncm91cC50ZW1wbGF0ZURhdGEucHVzaChwcmV2aWV3KTtcbiAgcmV0dXJuIG5leHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXF1aXJlZERlc2lnblNsb3RzKHByb2R1Y3Q6IGFueSwgZm9ybVZhbHVlczogYW55KSB7XG4gIGNvbnN0IGNvdW50ID0gZGVzaWduR3JvdXBDb3VudChwcm9kdWN0LCBmb3JtVmFsdWVzKTtcbiAgY29uc3QgaW5kZXBlbmRlbnQgPSBmb3JtVmFsdWVzPy52YXJpYXRpb25zIHx8IFtdO1xuICBjb25zdCBncm91cHMgPSBmb3JtVmFsdWVzPy52YXJpYXRpb25zR3JvdXBzIHx8IFtdO1xuICBjb25zdCBzbG90czogeyBncm91cEluZGV4OiBudW1iZXI7IHRlbXBsYXRlOiBhbnkgfVtdID0gW107XG4gIGZvciAobGV0IGdyb3VwSW5kZXggPSAwOyBncm91cEluZGV4IDwgY291bnQ7IGdyb3VwSW5kZXggKz0gMSkge1xuICAgIGNvbnN0IGdyb3VwVmFycyA9IGdyb3Vwc1tncm91cEluZGV4XT8udmFyaWF0aW9ucyB8fCBbXTtcbiAgICBmb3IgKGNvbnN0IHRlbXBsYXRlIG9mIHRlbXBsYXRlc0Zvckdyb3VwKHByb2R1Y3QsIGluZGVwZW5kZW50LCBncm91cFZhcnMpKSB7XG4gICAgICBzbG90cy5wdXNoKHsgZ3JvdXBJbmRleCwgdGVtcGxhdGUgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBzbG90cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1pc3NpbmdEZXNpZ25TbG90cyhcbiAgcHJvZHVjdDogYW55LFxuICBmb3JtVmFsdWVzOiBhbnksXG4gIGRyYWZ0czogRHJhZnRUZW1wbGF0ZURhdGFbXSxcbikge1xuICBjb25zdCBwcnVuZWQgPSBwcnVuZURyYWZ0cyhkcmFmdHMsIGRlc2lnbkdyb3VwQ291bnQocHJvZHVjdCwgZm9ybVZhbHVlcykpO1xuICByZXR1cm4gcmVxdWlyZWREZXNpZ25TbG90cyhwcm9kdWN0LCBmb3JtVmFsdWVzKS5maWx0ZXIoXG4gICAgKHsgZ3JvdXBJbmRleCwgdGVtcGxhdGUgfSkgPT5cbiAgICAgICFpc1ByZXZpZXdDb21wbGV0ZShzYXZlZFByZXZpZXcocHJ1bmVkLCBncm91cEluZGV4LCB0ZW1wbGF0ZS5pZCkpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wbGV0ZUdyb3VwQ291bnQocHJvZHVjdDogYW55LCBmb3JtVmFsdWVzOiBhbnksIGRyYWZ0czogRHJhZnRUZW1wbGF0ZURhdGFbXSkge1xuICBjb25zdCBjb3VudCA9IGRlc2lnbkdyb3VwQ291bnQocHJvZHVjdCwgZm9ybVZhbHVlcyk7XG4gIGNvbnN0IGluZGVwZW5kZW50ID0gZm9ybVZhbHVlcz8udmFyaWF0aW9ucyB8fCBbXTtcbiAgY29uc3QgZ3JvdXBzID0gZm9ybVZhbHVlcz8udmFyaWF0aW9uc0dyb3VwcyB8fCBbXTtcbiAgbGV0IGNvbXBsZXRlID0gMDtcbiAgZm9yIChsZXQgZ3JvdXBJbmRleCA9IDA7IGdyb3VwSW5kZXggPCBjb3VudDsgZ3JvdXBJbmRleCArPSAxKSB7XG4gICAgY29uc3QgdGVtcGxhdGVzID0gdGVtcGxhdGVzRm9yR3JvdXAoXG4gICAgICBwcm9kdWN0LFxuICAgICAgaW5kZXBlbmRlbnQsXG4gICAgICBncm91cHNbZ3JvdXBJbmRleF0/LnZhcmlhdGlvbnMgfHwgW10sXG4gICAgKTtcbiAgICBjb25zdCBhbGxTYXZlZCA9IHRlbXBsYXRlcy5ldmVyeSgodGVtcGxhdGU6IGFueSkgPT5cbiAgICAgIGlzUHJldmlld0NvbXBsZXRlKHNhdmVkUHJldmlldyhkcmFmdHMsIGdyb3VwSW5kZXgsIHRlbXBsYXRlLmlkKSlcbiAgICApO1xuICAgIGlmIChhbGxTYXZlZCkgY29tcGxldGUgKz0gMTtcbiAgfVxuICByZXR1cm4geyBjb21wbGV0ZSwgdG90YWw6IGNvdW50IH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFJQSxTQUNFQSxnQkFBZ0IsRUFDaEJDLGlCQUFpQixRQUNaLGtCQUFrQjtBQUV6QixPQUFPLFNBQVNDLGVBQWVBLENBQUNDLFNBQTBCLEVBQVU7RUFDbEUsK0JBQUFDLE1BQUEsQ0FBK0JELFNBQVM7QUFDMUM7QUFFQSxPQUFPLFNBQVNFLFVBQVVBLENBQUNGLFNBQTBCLEVBQXVCO0VBQzFFLElBQUksT0FBT0csTUFBTSxLQUFLLFdBQVcsSUFBSUgsU0FBUyxJQUFJLElBQUksRUFBRSxPQUFPLEVBQUU7RUFDakUsSUFBSTtJQUNGLElBQU1JLEdBQUcsR0FBR0QsTUFBTSxDQUFDRSxZQUFZLENBQUNDLE9BQU8sQ0FBQ1AsZUFBZSxDQUFDQyxTQUFTLENBQUMsQ0FBQztJQUNuRSxJQUFJLENBQUNJLEdBQUcsRUFBRSxPQUFPLEVBQUU7SUFDbkIsSUFBTUcsTUFBTSxHQUFHQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0wsR0FBRyxDQUFDO0lBQzlCLE9BQU9NLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSixNQUFNLENBQUMsR0FBR0EsTUFBTSxHQUFHLEVBQUU7RUFDNUMsQ0FBQyxDQUFDLE9BQUFLLE9BQUEsRUFBTTtJQUNOLE9BQU8sRUFBRTtFQUNYO0FBQ0Y7QUFFQSxPQUFPLFNBQVNDLFVBQVVBLENBQ3hCYixTQUEwQixFQUMxQmMsTUFBMkIsRUFDckI7RUFDTixJQUFJLE9BQU9YLE1BQU0sS0FBSyxXQUFXLElBQUlILFNBQVMsSUFBSSxJQUFJLEVBQUU7RUFDeERHLE1BQU0sQ0FBQ0UsWUFBWSxDQUFDVSxPQUFPLENBQUNoQixlQUFlLENB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
|