@merchi/product-form 1.19.21 → 1.19.23

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.
@@ -7,6 +7,25 @@ export type ArtworkPath = 'self' | 'service';
7
7
  export declare function artworkPathKey(productId: number | string): string;
8
8
  export declare function loadArtworkPath(productId: number | string): ArtworkPath;
9
9
  export declare function saveArtworkPath(productId: number | string, path: ArtworkPath): void;
10
+ export type DesignMethod = 'designer' | 'templates';
11
+ export interface TemplateUpload {
12
+ id: number | string;
13
+ name: string;
14
+ viewUrl?: string;
15
+ downloadUrl?: string;
16
+ }
17
+ export declare function designMethodKey(productId: number | string): string;
18
+ export declare function loadDesignMethod(productId: number | string): DesignMethod;
19
+ export declare function saveDesignMethod(productId: number | string, method: DesignMethod): void;
20
+ export declare function templateUploadsKey(productId: number | string): string;
21
+ export declare function loadTemplateUploads(productId: number | string): TemplateUpload[];
22
+ export declare function saveTemplateUploads(productId: number | string, files: TemplateUpload[]): void;
23
+ export declare function checkoutClientFiles(files: TemplateUpload[]): {
24
+ file: {
25
+ id: string | number;
26
+ };
27
+ objectId: string;
28
+ }[];
10
29
  export declare function pruneDrafts(drafts: DraftTemplateData[], groupCount: number): DraftTemplateData[];
11
30
  export declare function savedPreview(drafts: DraftTemplateData[], groupIndex: number, templateId: number): RenderedDraftPreview | undefined;
12
31
  export declare function isPreviewComplete(preview?: RenderedDraftPreview | null): boolean;
@@ -49,6 +49,53 @@ export function saveArtworkPath(productId, path) {
49
49
  if (typeof window === 'undefined' || productId == null) return;
50
50
  window.localStorage.setItem(artworkPathKey(productId), path);
51
51
  }
52
+ export function designMethodKey(productId) {
53
+ return "productDesignMethod-".concat(productId);
54
+ }
55
+ export function loadDesignMethod(productId) {
56
+ if (typeof window === 'undefined' || productId == null) return 'designer';
57
+ try {
58
+ return window.localStorage.getItem(designMethodKey(productId)) === 'templates' ? 'templates' : 'designer';
59
+ } catch (_unused3) {
60
+ return 'designer';
61
+ }
62
+ }
63
+ export function saveDesignMethod(productId, method) {
64
+ if (typeof window === 'undefined' || productId == null) return;
65
+ window.localStorage.setItem(designMethodKey(productId), method);
66
+ }
67
+ export function templateUploadsKey(productId) {
68
+ return "productTemplateUploads-".concat(productId);
69
+ }
70
+ export function loadTemplateUploads(productId) {
71
+ if (typeof window === 'undefined' || productId == null) return [];
72
+ try {
73
+ var raw = window.localStorage.getItem(templateUploadsKey(productId));
74
+ if (!raw) return [];
75
+ var parsed = JSON.parse(raw);
76
+ return Array.isArray(parsed) ? parsed.filter(function (file) {
77
+ return (file === null || file === void 0 ? void 0 : file.id) != null;
78
+ }) : [];
79
+ } catch (_unused4) {
80
+ return [];
81
+ }
82
+ }
83
+ export function saveTemplateUploads(productId, files) {
84
+ if (typeof window === 'undefined' || productId == null) return;
85
+ window.localStorage.setItem(templateUploadsKey(productId), JSON.stringify(files));
86
+ }
87
+ export function checkoutClientFiles(files) {
88
+ return (files || []).filter(function (file) {
89
+ return (file === null || file === void 0 ? void 0 : file.id) != null;
90
+ }).map(function (file) {
91
+ return {
92
+ file: {
93
+ id: file.id
94
+ },
95
+ objectId: String(file.id)
96
+ };
97
+ });
98
+ }
52
99
  export function pruneDrafts(drafts, groupCount) {
53
100
  return (drafts || []).filter(function (draft) {
54
101
  return draft.groupIndex < groupCount;
@@ -145,4 +192,4 @@ export function completeGroupCount(product, formValues, drafts) {
145
192
  total: count
146
193
  };
147
194
  }
148
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZXNpZ25Hcm91cENvdW50IiwidGVtcGxhdGVzRm9yR3JvdXAiLCJkcmFmdFN0b3JhZ2VLZXkiLCJwcm9kdWN0SWQiLCJjb25jYXQiLCJsb2FkRHJhZnRzIiwid2luZG93IiwicmF3IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInBhcnNlZCIsIkpTT04iLCJwYXJzZSIsIkFycmF5IiwiaXNBcnJheSIsIl91bnVzZWQiLCJzYXZlRHJhZnRzIiwiZHJhZnRzIiwic2V0SXRlbSIsInN0cmluZ2lmeSIsImNsZWFyRHJhZnRzIiwicmVtb3ZlSXRlbSIsImFydHdvcmtQYXRoS2V5IiwibG9hZEFydHdvcmtQYXRoIiwiX3VudXNlZDIiLCJzYXZlQXJ0d29ya1BhdGgiLCJwYXRoIiwicHJ1bmVEcmFmdHMiLCJncm91cENvdW50IiwiZmlsdGVyIiwiZHJhZnQiLCJncm91cEluZGV4Iiwic2F2ZWRQcmV2aWV3IiwidGVtcGxhdGVJZCIsImdyb3VwIiwiZmluZCIsInRlbXBsYXRlRGF0YSIsIml0ZW0iLCJpc1ByZXZpZXdDb21wbGV0ZSIsInByZXZpZXciLCJCb29sZWFuIiwiY2FudmFzUHJldmlldyIsInVwc2VydEdyb3VwVGVtcGxhdGVEcmFmdCIsIm5leHQiLCJtYXAiLCJfb2JqZWN0U3ByZWFkIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwicHJldmlld3MiLCJwdXNoIiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJyZXF1aXJlZERlc2lnblNsb3RzIiwicHJvZHVjdCIsImZvcm1WYWx1ZXMiLCJjb3VudCIsImluZGVwZW5kZW50IiwidmFyaWF0aW9ucyIsImdyb3VwcyIsInZhcmlhdGlvbnNHcm91cHMiLCJzbG90cyIsIl9ncm91cHMkZ3JvdXBJbmRleCIsImdyb3VwVmFycyIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJzIiwibiIsImRvbmUiLCJ0ZW1wbGF0ZSIsInZhbHVlIiwiZXJyIiwiZSIsImYiLCJtaXNzaW5nRGVzaWduU2xvdHMiLCJwcnVuZWQiLCJfcmVmIiwiaWQiLCJjb21wbGV0ZUdyb3VwQ291bnQiLCJjb21wbGV0ZSIsIl9sb29wIiwiX2dyb3VwcyRncm91cEluZGV4MiIsInRlbXBsYXRlcyIsImFsbFNhdmVkIiwiZXZlcnkiLCJ0b3RhbCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9kcmFmdFN0b3JhZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRHJhZnRUZW1wbGF0ZURhdGEsXG4gIFJlbmRlcmVkRHJhZnRQcmV2aWV3LFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7XG4gIGRlc2lnbkdyb3VwQ291bnQsXG4gIHRlbXBsYXRlc0Zvckdyb3VwLFxufSBmcm9tICcuL2RyYWZ0VGVtcGxhdGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRyYWZ0U3RvcmFnZUtleShwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgcHJvZHVjdERyYWZ0VGVtcGxhdGUtJHtwcm9kdWN0SWR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWREcmFmdHMocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBEcmFmdFRlbXBsYXRlRGF0YVtdIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm4gW107XG4gIHRyeSB7XG4gICAgY29uc3QgcmF3ID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKGRyYWZ0U3RvcmFnZUtleShwcm9kdWN0SWQpKTtcbiAgICBpZiAoIXJhdykgcmV0dXJuIFtdO1xuICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmF3KTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYXJzZWQpID8gcGFyc2VkIDogW107XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBbXTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZURyYWZ0cyhcbiAgcHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcsXG4gIGRyYWZ0czogRHJhZnRUZW1wbGF0ZURhdGFbXSxcbik6IHZvaWQge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybjtcbiAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKGRyYWZ0U3RvcmFnZUtleShwcm9kdWN0SWQpLCBKU09OLnN0cmluZ2lmeShkcmFmdHMpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyRHJhZnRzKHByb2R1Y3RJZDogbnVtYmVyIHwgc3RyaW5nKTogdm9pZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZHJhZnRTdG9yYWdlS2V5KHByb2R1Y3RJZCkpO1xufVxuXG5leHBvcnQgdHlwZSBBcnR3b3JrUGF0aCA9ICdzZWxmJyB8ICdzZXJ2aWNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFydHdvcmtQYXRoS2V5KHByb2R1Y3RJZDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBwcm9kdWN0QXJ0d29ya1BhdGgtJHtwcm9kdWN0SWR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBcnR3b3JrUGF0aChwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyk6IEFydHdvcmtQYXRoIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm4gJ3NlbGYnO1xuICB0cnkge1xuICAgIHJldHVybiB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oYXJ0d29ya1BhdGhLZXkocHJvZHVjdElkKSkgPT09ICdzZXJ2aWNlJ1xuICAgICAgPyAnc2VydmljZSdcbiAgICAgIDogJ3NlbGYnO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJ3NlbGYnO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlQXJ0d29ya1BhdGgoXG4gIHByb2R1Y3RJZDogbnVtYmVyIHwgc3RyaW5nLFxuICBwYXRoOiBBcnR3b3JrUGF0aCxcbik6IHZvaWQge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybjtcbiAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKGFydHdvcmtQYXRoS2V5KHByb2R1Y3RJZCksIHBhdGgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmVEcmFmdHMoXG4gIGRyYWZ0czogRHJhZnRUZW1wbGF0ZURhdGFbXSxcbiAgZ3JvdXBDb3VudDogbnVtYmVyLFxuKTogRHJhZnRUZW1wbGF0ZURhdGFbXSB7XG4gIHJldHVybiAoZHJhZnRzIHx8IFtdKS5maWx0ZXIoKGRyYWZ0KSA9PiBkcmFmdC5ncm91cEluZGV4IDwgZ3JvdXBDb3VudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlZFByZXZpZXcoXG4gIGRyYWZ0czogRHJhZnRUZW1wbGF0ZURhdGFbXSxcbiAgZ3JvdXBJbmRleDogbnVtYmVyLFxuICB0ZW1wbGF0ZUlkOiBudW1iZXIsXG4pOiBSZW5kZXJlZERyYWZ0UHJldmlldyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGdyb3VwID0gKGRyYWZ0cyB8fCBbXSkuZmluZCgoZHJhZnQpID0+IGRyYWZ0Lmdyb3VwSW5kZXggPT09IGdyb3VwSW5kZXgpO1xuICByZXR1cm4gKGdyb3VwPy50ZW1wbGF0ZURhdGEgfHwgW10pLmZpbmQoXG4gICAgKGl0ZW0pID0+IGl0ZW0udGVtcGxhdGVJZCA9PT0gdGVtcGxhdGVJZFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcmV2aWV3Q29tcGxldGUocHJldmlldz86IFJlbmRlcmVkRHJhZnRQcmV2aWV3IHwgbnVsbCk6IGJvb2xlYW4ge1xuICByZXR1cm4gQm9vbGVhbihwcmV2aWV3Py5kcmFmdCAmJiBwcmV2aWV3Py5jYW52YXNQcmV2aWV3KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwc2VydEdyb3VwVGVtcGxhdGVEcmFmdChcbiAgZHJhZnRzOiBEcmFmdFRlbXBsYXRlRGF0YVtdLFxuICBwcm9kdWN0SWQ6IG51bWJlcixcbiAgZ3JvdXBJbmRleDogbnVtYmVyLFxuICBwcmV2aWV3OiBSZW5kZXJlZERyYWZ0UHJldmlldyxcbik6IERyYWZ0VGVtcGxhdGVEYXRhW10ge1xuICBjb25zdCBuZXh0ID0gKGRyYWZ0cyB8fCBbXSkubWFwKChkcmFmdCkgPT4gKHtcbiAgICAuLi5kcmFmdCxcbiAgICB0ZW1wbGF0ZURhdGE6IFsuLi4oZHJhZnQudGVtcGxhdGVEYXRhIHx8IFtdKV0sXG4gICAgcHJldmlld3M6IFsuLi4oZHJhZnQucHJldmlld3MgfHwgW10pXSxcbiAgfSkpO1xuICBsZXQgZ3JvdXAgPSBuZXh0LmZpbmQoKGRyYWZ0KSA9PiBkcmFmdC5ncm91cEluZGV4ID09PSBncm91cEluZGV4KTtcbiAgaWYgKCFncm91cCkge1xuICAgIGdyb3VwID0geyBncm91cEluZGV4LCBwcm9kdWN0SWQsIHRlbXBsYXRlRGF0YTogW10sIHByZXZpZXdzOiBbXSB9O1xuICAgIG5leHQucHVzaChncm91cCk7XG4gIH1cbiAgY29uc3QgaW5kZXggPSBncm91cC50ZW1wbGF0ZURhdGEuZmluZEluZGV4KFxuICAgIChpdGVtKSA9PiBpdGVtLnRlbXBsYXRlSWQgPT09IHByZXZpZXcudGVtcGxhdGVJZFxuICApO1xuICBpZiAoaW5kZXggPj0gMCkgZ3JvdXAudGVtcGxhdGVEYXRhW2luZGV4XSA9IHByZXZpZXc7XG4gIGVsc2UgZ3JvdXAudGVtcGxhdGVEYXRhLnB1c2gocHJldmlldyk7XG4gIHJldHVybiBuZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZWREZXNpZ25TbG90cyhwcm9kdWN0OiBhbnksIGZvcm1WYWx1ZXM6IGFueSkge1xuICBjb25zdCBjb3VudCA9IGRlc2lnbkdyb3VwQ291bnQocHJvZHVjdCwgZm9ybVZhbHVlcyk7XG4gIGNvbnN0IGluZGVwZW5kZW50ID0gZm9ybVZhbHVlcz8udmFyaWF0aW9ucyB8fCBbXTtcbiAgY29uc3QgZ3JvdXBzID0gZm9ybVZhbHVlcz8udmFyaWF0aW9uc0dyb3VwcyB8fCBbXTtcbiAgY29uc3Qgc2xvdHM6IHsgZ3JvdXBJbmRleDogbnVtYmVyOyB0ZW1wbGF0ZTogYW55IH1bXSA9IFtdO1xuICBmb3IgKGxldCBncm91cEluZGV4ID0gMDsgZ3JvdXBJbmRleCA8IGNvdW50OyBncm91cEluZGV4ICs9IDEpIHtcbiAgICBjb25zdCBncm91cFZhcnMgPSBncm91cHNbZ3JvdXBJbmRleF0/LnZhcmlhdGlvbnMgfHwgW107XG4gICAgZm9yIChjb25zdCB0ZW1wbGF0ZSBvZiB0ZW1wbGF0ZXNGb3JHcm91cChwcm9kdWN0LCBpbmRlcGVuZGVudCwgZ3JvdXBWYXJzKSkge1xuICAgICAgc2xvdHMucHVzaCh7IGdyb3VwSW5kZXgsIHRlbXBsYXRlIH0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc2xvdHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaXNzaW5nRGVzaWduU2xvdHMoXG4gIHByb2R1Y3Q6IGFueSxcbiAgZm9ybVZhbHVlczogYW55LFxuICBkcmFmdHM6IERyYWZ0VGVtcGxhdGVEYXRhW10sXG4pIHtcbiAgY29uc3QgcHJ1bmVkID0gcHJ1bmVEcmFmdHMoZHJhZnRzLCBkZXNpZ25Hcm91cENvdW50KHByb2R1Y3QsIGZvcm1WYWx1ZXMpKTtcbiAgcmV0dXJuIHJlcXVpcmVkRGVzaWduU2xvdHMocHJvZHVjdCwgZm9ybVZhbHVlcykuZmlsdGVyKFxuICAgICh7IGdyb3VwSW5kZXgsIHRlbXBsYXRlIH0pID0+XG4gICAgICAhaXNQcmV2aWV3Q29tcGxldGUoc2F2ZWRQcmV2aWV3KHBydW5lZCwgZ3JvdXBJbmRleCwgdGVtcGxhdGUuaWQpKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGxldGVHcm91cENvdW50KHByb2R1Y3Q6IGFueSwgZm9ybVZhbHVlczogYW55LCBkcmFmdHM6IERyYWZ0VGVtcGxhdGVEYXRhW10pIHtcbiAgY29uc3QgY291bnQgPSBkZXNpZ25Hcm91cENvdW50KHByb2R1Y3QsIGZvcm1WYWx1ZXMpO1xuICBjb25zdCBpbmRlcGVuZGVudCA9IGZvcm1WYWx1ZXM/LnZhcmlhdGlvbnMgfHwgW107XG4gIGNvbnN0IGdyb3VwcyA9IGZvcm1WYWx1ZXM/LnZhcmlhdGlvbnNHcm91cHMgfHwgW107XG4gIGxldCBjb21wbGV0ZSA9IDA7XG4gIGZvciAobGV0IGdyb3VwSW5kZXggPSAwOyBncm91cEluZGV4IDwgY291bnQ7IGdyb3VwSW5kZXggKz0gMSkge1xuICAgIGNvbnN0IHRlbXBsYXRlcyA9IHRlbXBsYXRlc0Zvckdyb3VwKFxuICAgICAgcHJvZHVjdCxcbiAgICAgIGluZGVwZW5kZW50LFxuICAgICAgZ3JvdXBzW2dyb3VwSW5kZXhdPy52YXJpYXRpb25zIHx8IFtdLFxuICAgICk7XG4gICAgY29uc3QgYWxsU2F2ZWQgPSB0ZW1wbGF0ZXMuZXZlcnkoKHRlbXBsYXRlOiBhbnkpID0+XG4gICAgICBpc1ByZXZpZXdDb21wbGV0ZShzYXZlZFByZXZpZXcoZHJhZnRzLCBncm91cEluZGV4LCB0ZW1wbGF0ZS5pZCkpXG4gICAgKTtcbiAgICBpZiAoYWxsU2F2ZWQpIGNvbXBsZXRlICs9IDE7XG4gIH1cbiAgcmV0dXJuIHsgY29tcGxldGUsIHRvdGFsOiBjb3VudCB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBSUEsU0FDRUEsZ0JBQWdCLEVBQ2hCQyxpQkFBaUIsUUFDWixrQkFBa0I7QUFFekIsT0FBTyxTQUFTQyxlQUFlQSxDQUFDQyxTQUEwQixFQUFVO0VBQ2xFLCtCQUFBQyxNQUFBLENBQStCRCxTQUFTO0FBQzFDO0FBRUEsT0FBTyxTQUFTRSxVQUFVQSxDQUFDRixTQUEwQixFQUF1QjtFQUMxRSxJQUFJLE9BQU9HLE1BQU0sS0FBSyxXQUFXLElBQUlILFNBQVMsSUFBSSxJQUFJLEVBQUUsT0FBTyxFQUFFO0VBQ2pFLElBQUk7SUFDRixJQUFN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
195
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZXNpZ25Hcm91cENvdW50IiwidGVtcGxhdGVzRm9yR3JvdXAiLCJkcmFmdFN0b3JhZ2VLZXkiLCJwcm9kdWN0SWQiLCJjb25jYXQiLCJsb2FkRHJhZnRzIiwid2luZG93IiwicmF3IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInBhcnNlZCIsIkpTT04iLCJwYXJzZSIsIkFycmF5IiwiaXNBcnJheSIsIl91bnVzZWQiLCJzYXZlRHJhZnRzIiwiZHJhZnRzIiwic2V0SXRlbSIsInN0cmluZ2lmeSIsImNsZWFyRHJhZnRzIiwicmVtb3ZlSXRlbSIsImFydHdvcmtQYXRoS2V5IiwibG9hZEFydHdvcmtQYXRoIiwiX3VudXNlZDIiLCJzYXZlQXJ0d29ya1BhdGgiLCJwYXRoIiwiZGVzaWduTWV0aG9kS2V5IiwibG9hZERlc2lnbk1ldGhvZCIsIl91bnVzZWQzIiwic2F2ZURlc2lnbk1ldGhvZCIsIm1ldGhvZCIsInRlbXBsYXRlVXBsb2Fkc0tleSIsImxvYWRUZW1wbGF0ZVVwbG9hZHMiLCJmaWx0ZXIiLCJmaWxlIiwiaWQiLCJfdW51c2VkNCIsInNhdmVUZW1wbGF0ZVVwbG9hZHMiLCJmaWxlcyIsImNoZWNrb3V0Q2xpZW50RmlsZXMiLCJtYXAiLCJvYmplY3RJZCIsIlN0cmluZyIsInBydW5lRHJhZnRzIiwiZ3JvdXBDb3VudCIsImRyYWZ0IiwiZ3JvdXBJbmRleCIsInNhdmVkUHJldmlldyIsInRlbXBsYXRlSWQiLCJncm91cCIsImZpbmQiLCJ0ZW1wbGF0ZURhdGEiLCJpdGVtIiwiaXNQcmV2aWV3Q29tcGxldGUiLCJwcmV2aWV3IiwiQm9vbGVhbiIsImNhbnZhc1ByZXZpZXciLCJ1cHNlcnRHcm91cFRlbXBsYXRlRHJhZnQiLCJuZXh0IiwiX29iamVjdFNwcmVhZCIsIl90b0NvbnN1bWFibGVBcnJheSIsInByZXZpZXdzIiwicHVzaCIsImluZGV4IiwiZmluZEluZGV4IiwicmVxdWlyZWREZXNpZ25TbG90cyIsInByb2R1Y3QiLCJmb3JtVmFsdWVzIiwiY291bnQiLCJpbmRlcGVuZGVudCIsInZhcmlhdGlvbnMiLCJncm91cHMiLCJ2YXJpYXRpb25zR3JvdXBzIiwic2xvdHMiLCJfZ3JvdXBzJGdyb3VwSW5kZXgiLCJncm91cFZhcnMiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwidGVtcGxhdGUiLCJ2YWx1ZSIsImVyciIsImUiLCJmIiwibWlzc2luZ0Rlc2lnblNsb3RzIiwicHJ1bmVkIiwiX3JlZiIsImNvbXBsZXRlR3JvdXBDb3VudCIsImNvbXBsZXRlIiwiX2xvb3AiLCJfZ3JvdXBzJGdyb3VwSW5kZXgyIiwidGVtcGxhdGVzIiwiYWxsU2F2ZWQiLCJldmVyeSIsInRvdGFsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RyYWZ0U3RvcmFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEcmFmdFRlbXBsYXRlRGF0YSxcbiAgUmVuZGVyZWREcmFmdFByZXZpZXcsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgZGVzaWduR3JvdXBDb3VudCxcbiAgdGVtcGxhdGVzRm9yR3JvdXAsXG59IGZyb20gJy4vZHJhZnRUZW1wbGF0ZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZHJhZnRTdG9yYWdlS2V5KHByb2R1Y3RJZDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBwcm9kdWN0RHJhZnRUZW1wbGF0ZS0ke3Byb2R1Y3RJZH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZERyYWZ0cyhwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyk6IERyYWZ0VGVtcGxhdGVEYXRhW10ge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybiBbXTtcbiAgdHJ5IHtcbiAgICBjb25zdCByYXcgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oZHJhZnRTdG9yYWdlS2V5KHByb2R1Y3RJZCkpO1xuICAgIGlmICghcmF3KSByZXR1cm4gW107XG4gICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShyYXcpO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHBhcnNlZCkgPyBwYXJzZWQgOiBbXTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlRHJhZnRzKFxuICBwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyxcbiAgZHJhZnRzOiBEcmFmdFRlbXBsYXRlRGF0YVtdLFxuKTogdm9pZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oZHJhZnRTdG9yYWdlS2V5KHByb2R1Y3RJZCksIEpTT04uc3RyaW5naWZ5KGRyYWZ0cykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJEcmFmdHMocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm47XG4gIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShkcmFmdFN0b3JhZ2VLZXkocHJvZHVjdElkKSk7XG59XG5cbmV4cG9ydCB0eXBlIEFydHdvcmtQYXRoID0gJ3NlbGYnIHwgJ3NlcnZpY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gYXJ0d29ya1BhdGhLZXkocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYHByb2R1Y3RBcnR3b3JrUGF0aC0ke3Byb2R1Y3RJZH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFydHdvcmtQYXRoKHByb2R1Y3RJZDogbnVtYmVyIHwgc3RyaW5nKTogQXJ0d29ya1BhdGgge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybiAnc2VsZic7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShhcnR3b3JrUGF0aEtleShwcm9kdWN0SWQpKSA9PT0gJ3NlcnZpY2UnXG4gICAgICA/ICdzZXJ2aWNlJ1xuICAgICAgOiAnc2VsZic7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAnc2VsZic7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVBcnR3b3JrUGF0aChcbiAgcHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcsXG4gIHBhdGg6IEFydHdvcmtQYXRoLFxuKTogdm9pZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oYXJ0d29ya1BhdGhLZXkocHJvZHVjdElkKSwgcGF0aCk7XG59XG5cbmV4cG9ydCB0eXBlIERlc2lnbk1ldGhvZCA9ICdkZXNpZ25lcicgfCAndGVtcGxhdGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZVVwbG9hZCB7XG4gIGlkOiBudW1iZXIgfCBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdmlld1VybD86IHN0cmluZztcbiAgZG93bmxvYWRVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNpZ25NZXRob2RLZXkocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYHByb2R1Y3REZXNpZ25NZXRob2QtJHtwcm9kdWN0SWR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWREZXNpZ25NZXRob2QocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBEZXNpZ25NZXRob2Qge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybiAnZGVzaWduZXInO1xuICB0cnkge1xuICAgIHJldHVybiB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oZGVzaWduTWV0aG9kS2V5KHByb2R1Y3RJZCkpID09PSAndGVtcGxhdGVzJ1xuICAgICAgPyAndGVtcGxhdGVzJ1xuICAgICAgOiAnZGVzaWduZXInO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJ2Rlc2lnbmVyJztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZURlc2lnbk1ldGhvZChcbiAgcHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcsXG4gIG1ldGhvZDogRGVzaWduTWV0aG9kLFxuKTogdm9pZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oZGVzaWduTWV0aG9kS2V5KHByb2R1Y3RJZCksIG1ldGhvZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZVVwbG9hZHNLZXkocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYHByb2R1Y3RUZW1wbGF0ZVVwbG9hZHMtJHtwcm9kdWN0SWR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRUZW1wbGF0ZVVwbG9hZHMocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBUZW1wbGF0ZVVwbG9hZFtdIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm4gW107XG4gIHRyeSB7XG4gICAgY29uc3QgcmF3ID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRlbXBsYXRlVXBsb2Fkc0tleShwcm9kdWN0SWQpKTtcbiAgICBpZiAoIXJhdykgcmV0dXJuIFtdO1xuICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmF3KTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYXJzZWQpID8gcGFyc2VkLmZpbHRlcigoZmlsZSkgPT4gZmlsZT8uaWQgIT0gbnVsbCkgOiBbXTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlVGVtcGxhdGVVcGxvYWRzKFxuICBwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyxcbiAgZmlsZXM6IFRlbXBsYXRlVXBsb2FkW10sXG4pOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm47XG4gIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0ZW1wbGF0ZVVwbG9hZHNLZXkocHJvZHVjdElkKSwgSlNPTi5zdHJpbmdpZnkoZmlsZXMpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrb3V0Q2xpZW50RmlsZXMoZmlsZXM6IFRlbXBsYXRlVXBsb2FkW10pIHtcbiAgcmV0dXJuIChmaWxlcyB8fCBbXSlcbiAgICAuZmlsdGVyKChmaWxlKSA9PiBmaWxlPy5pZCAhPSBudWxsKVxuICAgIC5tYXAoKGZpbGUpID0+ICh7XG4gICAgICBmaWxlOiB7IGlkOiBmaWxlLmlkIH0sXG4gICAgICBvYmplY3RJZDogU3RyaW5nKGZpbGUuaWQpLFxuICAgIH0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBydW5lRHJhZnRzKFxuICBkcmFmdHM6IERyYWZ0VGVtcGxhdGVEYXRhW10sXG4gIGdyb3VwQ291bnQ6IG51bWJlcixcbik6IERyYWZ0VGVtcGxhdGVEYXRhW10ge1xuICByZXR1cm4gKGRyYWZ0cyB8fCBbXSkuZmlsdGVyKChkcmFmdCkgPT4gZHJhZnQuZ3JvdXBJbmRleCA8IGdyb3VwQ291bnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZWRQcmV2aWV3KFxuICBkcmFmdHM6IERyYWZ0VGVtcGxhdGVEYXRhW10sXG4gIGdyb3VwSW5kZXg6IG51bWJlcixcbiAgdGVtcGxhdGVJZDogbnVtYmVyLFxuKTogUmVuZGVyZWREcmFmdFByZXZpZXcgfCB1bmRlZmluZWQge1xuICBjb25zdCBncm91cCA9IChkcmFmdHMgfHwgW10pLmZpbmQoKGRyYWZ0KSA9PiBkcmFmdC5ncm91cEluZGV4ID09PSBncm91cEluZGV4KTtcbiAgcmV0dXJuIChncm91cD8udGVtcGxhdGVEYXRhIHx8IFtdKS5maW5kKFxuICAgIChpdGVtKSA9PiBpdGVtLnRlbXBsYXRlSWQgPT09IHRlbXBsYXRlSWRcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJldmlld0NvbXBsZXRlKHByZXZpZXc/OiBSZW5kZXJlZERyYWZ0UHJldmlldyB8IG51bGwpOiBib29sZWFuIHtcbiAgcmV0dXJuIEJvb2xlYW4ocHJldmlldz8uZHJhZnQgJiYgcHJldmlldz8uY2FudmFzUHJldmlldyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cHNlcnRHcm91cFRlbXBsYXRlRHJhZnQoXG4gIGRyYWZ0czogRHJhZnRUZW1wbGF0ZURhdGFbXSxcbiAgcHJvZHVjdElkOiBudW1iZXIsXG4gIGdyb3VwSW5kZXg6IG51bWJlcixcbiAgcHJldmlldzogUmVuZGVyZWREcmFmdFByZXZpZXcsXG4pOiBEcmFmdFRlbXBsYXRlRGF0YVtdIHtcbiAgY29uc3QgbmV4dCA9IChkcmFmdHMgfHwgW10pLm1hcCgoZHJhZnQpID0+ICh7XG4gICAgLi4uZHJhZnQsXG4gICAgdGVtcGxhdGVEYXRhOiBbLi4uKGRyYWZ0LnRlbXBsYXRlRGF0YSB8fCBbXSldLFxuICAgIHByZXZpZXdzOiBbLi4uKGRyYWZ0LnByZXZpZXdzIHx8IFtdKV0sXG4gIH0pKTtcbiAgbGV0IGdyb3VwID0gbmV4dC5maW5kKChkcmFmdCkgPT4gZHJhZnQuZ3JvdXBJbmRleCA9PT0gZ3JvdXBJbmRleCk7XG4gIGlmICghZ3JvdXApIHtcbiAgICBncm91cCA9IHsgZ3JvdXBJbmRleCwgcHJvZHVjdElkLCB0ZW1wbGF0ZURhdGE6IFtdLCBwcmV2aWV3czogW10gfTtcbiAgICBuZXh0LnB1c2goZ3JvdXApO1xuICB9XG4gIGNvbnN0IGluZGV4ID0gZ3JvdXAudGVtcGxhdGVEYXRhLmZpbmRJbmRleChcbiAgICAoaXRlbSkgPT4gaXRlbS50ZW1wbGF0ZUlkID09PSBwcmV2aWV3LnRlbXBsYXRlSWRcbiAgKTtcbiAgaWYgKGluZGV4ID49IDApIGdyb3VwLnRlbXBsYXRlRGF0YVtpbmRleF0gPSBwcmV2aWV3O1xuICBlbHNlIGdyb3VwLnRlbXBsYXRlRGF0YS5wdXNoKHByZXZpZXcpO1xuICByZXR1cm4gbmV4dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVkRGVzaWduU2xvdHMocHJvZHVjdDogYW55LCBmb3JtVmFsdWVzOiBhbnkpIHtcbiAgY29uc3QgY291bnQgPSBkZXNpZ25Hcm91cENvdW50KHByb2R1Y3QsIGZvcm1WYWx1ZXMpO1xuICBjb25zdCBpbmRlcGVuZGVudCA9IGZvcm1WYWx1ZXM/LnZhcmlhdGlvbnMgfHwgW107XG4gIGNvbnN0IGdyb3VwcyA9IGZvcm1WYWx1ZXM/LnZhcmlhdGlvbnNHcm91cHMgfHwgW107XG4gIGNvbnN0IHNsb3RzOiB7IGdyb3VwSW5kZXg6IG51bWJlcjsgdGVtcGxhdGU6IGFueSB9W10gPSBbXTtcbiAgZm9yIChsZXQgZ3JvdXBJbmRleCA9IDA7IGdyb3VwSW5kZXggPCBjb3VudDsgZ3JvdXBJbmRleCArPSAxKSB7XG4gICAgY29uc3QgZ3JvdXBWYXJzID0gZ3JvdXBzW2dyb3VwSW5kZXhdPy52YXJpYXRpb25zIHx8IFtdO1xuICAgIGZvciAoY29uc3QgdGVtcGxhdGUgb2YgdGVtcGxhdGVzRm9yR3JvdXAocHJvZHVjdCwgaW5kZXBlbmRlbnQsIGdyb3VwVmFycykpIHtcbiAgICAgIHNsb3RzLnB1c2goeyBncm91cEluZGV4LCB0ZW1wbGF0ZSB9KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNsb3RzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWlzc2luZ0Rlc2lnblNsb3RzKFxuICBwcm9kdWN0OiBhbnksXG4gIGZvcm1WYWx1ZXM6IGFueSxcbiAgZHJhZnRzOiBEcmFmdFRlbXBsYXRlRGF0YVtdLFxuKSB7XG4gIGNvbnN0IHBydW5lZCA9IHBydW5lRHJhZnRzKGRyYWZ0cywgZGVzaWduR3JvdXBDb3VudChwcm9kdWN0LCBmb3JtVmFsdWVzKSk7XG4gIHJldHVybiByZXF1aXJlZERlc2lnblNsb3RzKHByb2R1Y3QsIGZvcm1WYWx1ZXMpLmZpbHRlcihcbiAgICAoeyBncm91cEluZGV4LCB0ZW1wbGF0ZSB9KSA9PlxuICAgICAgIWlzUHJldmlld0NvbXBsZXRlKHNhdmVkUHJldmlldyhwcnVuZWQsIGdyb3VwSW5kZXgsIHRlbXBsYXRlLmlkKSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBsZXRlR3JvdXBDb3VudChwcm9kdWN0OiBhbnksIGZvcm1WYWx1ZXM6IGFueSwgZHJhZnRzOiBEcmFmdFRlbXBsYXRlRGF0YVtdKSB7XG4gIGNvbnN0IGNvdW50ID0gZGVzaWduR3JvdXBDb3VudChwcm9kdWN0LCBmb3JtVmFsdWVzKTtcbiAgY29uc3QgaW5kZXBlbmRlbnQgPSBmb3JtVmFsdWVzPy52YXJpYXRpb25zIHx8IFtdO1xuICBjb25zdCBncm91cHMgPSBmb3JtVmFsdWVzPy52YXJpYXRpb25zR3JvdXBzIHx8IFtdO1xuICBsZXQgY29tcGxldGUgPSAwO1xuICBmb3IgKGxldCBncm91cEluZGV4ID0gMDsgZ3JvdXBJbmRleCA8IGNvdW50OyBncm91cEluZGV4ICs9IDEpIHtcbiAgICBjb25zdCB0ZW1wbGF0ZXMgPSB0ZW1wbGF0ZXNGb3JHcm91cChcbiAgICAgIHByb2R1Y3QsXG4gICAgICBpbmRlcGVuZGVudCxcbiAgICAgIGdyb3Vwc1tncm91cEluZGV4XT8udmFyaWF0aW9ucyB8fCBbXSxcbiAgICApO1xuICAgIGNvbnN0IGFsbFNhdmVkID0gdGVtcGxhdGVzLmV2ZXJ5KCh0ZW1wbGF0ZTogYW55KSA9PlxuICAgICAgaXNQcmV2aWV3Q29tcGxldGUoc2F2ZWRQcmV2aWV3KGRyYWZ0cywgZ3JvdXBJbmRleCwgdGVtcGxhdGUuaWQpKVxuICAgICk7XG4gICAgaWYgKGFsbFNhdmVkKSBjb21wbGV0ZSArPSAxO1xuICB9XG4gIHJldHVybiB7IGNvbXBsZXRlLCB0b3RhbDogY291bnQgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUlBLFNBQ0VBLGdCQUFnQixFQUNoQkMsaUJBQWlCLFFBQ1osa0JBQWtCO0FBRXpCLE9BQU8sU0FBU0MsZUFBZUEsQ0FBQ0MsU0FBMEIsRUFBVTtFQUNsRSwrQkFBQUMsTUFBQSxDQUErQkQsU0FBUztBQUMxQztBQUVBLE9BQU8sU0FBU0UsVUFBVUEsQ0FBQ0YsU0FBMEIsRUFBdUI7RUFDMUUsSUFBSSxPQUFPRyxNQUFNLEtBQUssV0FBVyxJQUFJSCxTQUFTLElBQUksSUFBSSxFQUFFLE9BQU8sRUFBRTtFQUNqRSxJQUFJO0lBQ0YsSUFBTUksR0FBRyxHQUFHRCxNQUFNLENBQUNFLFlBQVksQ0FBQ0MsT0FBTyxDQUFDUCxlQUFlLENBQUNDLFNBQVMsQ0FBQyxDQUFDO0lBQ25FLElBQUksQ0FBQ0ksR0FBRyxFQUFFLE9BQU8sRUFBRTtJQUNuQixJQUFNRyxNQUFNLEdBQUdDLElBQUksQ0FBQ0MsS0FBSyxDQUFDTCxHQUFHLENBQUM7SUFDOUIsT0FBT00sS0FBSyxDQUFDQyxPQUFPLENBQUNKLE1BQU0sQ0FBQyxHQUFHQSxNQUFNLEdBQUcsRUFBRTtFQUM1QyxDQUFDLENBQUMsT0FBQUssT0FBQSxFQUFNO0lBQ04sT0FBTyxFQUFFO0VBQ1g7QUFDRjtBQUVBLE9BQU8sU0FBU0MsVUFBVUEsQ0FDeEJiLFNBQTBCLEVBQzFCYyxNQUEyQixFQUNyQjtFQUNOLElBQUksT0FBT1gsTUFBTSxLQUFLLFdBQVcsSUFBSUgsU0FBUyxJQUFJLElBQUksRUFBRTtFQUN4REcsTUFBTSxDQUFDRSxZQUFZLENBQUNVLE9BQU8sQ0FBQ2hCLGVBQWUsQ0FBQ0MsU0FBUyxDQUFDLEVBQUVRLElBQUksQ0FBQ1EsU0FBUyxDQUFDRixNQUFNLENBQUMsQ0FBQztBQUNqRjtBQUVBLE9BQU8sU0FBU0csV0FBV0EsQ0FBQ2pCLFNBQTBCLEVBQVE7RUFDNUQs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
@@ -4,7 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
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
5
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
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
- import { artworkPathKey, clearDrafts, completeGroupCount, draftStorageKey, isPreviewComplete, loadArtworkPath, loadDrafts, missingDesignSlots, pruneDrafts, requiredDesignSlots, savedPreview, saveArtworkPath, saveDrafts, upsertGroupTemplateDraft } from './draftStorage';
7
+ import { artworkPathKey, clearDrafts, completeGroupCount, draftStorageKey, isPreviewComplete, checkoutClientFiles, loadArtworkPath, loadDesignMethod, loadDrafts, loadTemplateUploads, missingDesignSlots, pruneDrafts, requiredDesignSlots, savedPreview, saveArtworkPath, saveDesignMethod, saveDrafts, saveTemplateUploads, upsertGroupTemplateDraft } from './draftStorage';
8
8
  import { FieldType } from './types';
9
9
  var product = {
10
10
  needsDrafting: true,
@@ -42,6 +42,30 @@ test('artwork path defaults to self and can switch to the free design service',
42
42
  saveArtworkPath(44, 'self');
43
43
  expect(loadArtworkPath(44)).toBe('self');
44
44
  });
45
+ test('template uploads are remembered and shaped for checkout', function () {
46
+ if (typeof window === 'undefined' || !window.localStorage) return;
47
+ expect(loadDesignMethod(44)).toBe('designer');
48
+ saveDesignMethod(44, 'templates');
49
+ expect(loadDesignMethod(44)).toBe('templates');
50
+ saveTemplateUploads(44, [{
51
+ id: 9,
52
+ name: 'front.png',
53
+ viewUrl: 'https://cdn.example/front.png'
54
+ }]);
55
+ expect(loadTemplateUploads(44)).toEqual([{
56
+ id: 9,
57
+ name: 'front.png',
58
+ viewUrl: 'https://cdn.example/front.png'
59
+ }]);
60
+ expect(checkoutClientFiles(loadTemplateUploads(44))).toEqual([{
61
+ file: {
62
+ id: 9
63
+ },
64
+ objectId: '9'
65
+ }]);
66
+ saveTemplateUploads(44, []);
67
+ saveDesignMethod(44, 'designer');
68
+ });
45
69
  test('upsert and prune keep per-group template drafts', function () {
46
70
  var _savedPreview;
47
71
  var drafts = upsertGroupTemplateDraft([], 44, 0, {
@@ -122,4 +146,4 @@ test('gated templates drop out of required slots', function () {
122
146
  }, []);
123
147
  expect(shown[0].template.id).toBe(2);
124
148
  });
125
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcnR3b3JrUGF0aEtleSIsImNsZWFyRHJhZnRzIiwiY29tcGxldGVHcm91cENvdW50IiwiZHJhZnRTdG9yYWdlS2V5IiwiaXNQcmV2aWV3Q29tcGxldGUiLCJsb2FkQXJ0d29ya1BhdGgiLCJsb2FkRHJhZnRzIiwibWlzc2luZ0Rlc2lnblNsb3RzIiwicHJ1bmVEcmFmdHMiLCJyZXF1aXJlZERlc2lnblNsb3RzIiwic2F2ZWRQcmV2aWV3Iiwic2F2ZUFydHdvcmtQYXRoIiwic2F2ZURyYWZ0cyIsInVwc2VydEdyb3VwVGVtcGxhdGVEcmFmdCIsIkZpZWxkVHlwZSIsInByb2R1Y3QiLCJuZWVkc0RyYWZ0aW5nIiwiYWxsb3dDbGllbnREcmFmdENvbnRyaWJ1dGlvbiIsImdyb3VwVmFyaWF0aW9uRmllbGRzIiwiaWQiLCJkcmFmdFRlbXBsYXRlcyIsInNlbGVjdGVkQnlWYXJpYXRpb25GaWVsZE9wdGlvbnMiLCJlZGl0ZWRCeVZhcmlhdGlvbkZpZWxkcyIsInRlc3QiLCJleHBlY3QiLCJ0b0JlIiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ3JvdXBJbmRleCIsInByb2R1Y3RJZCIsInRlbXBsYXRlRGF0YSIsInByZXZpZXdzIiwidG9IYXZlTGVuZ3RoIiwidG9FcXVhbCIsInJlbW92ZUl0ZW0iLCJfc2F2ZWRQcmV2aWV3IiwiZHJhZnRzIiwidGVtcGxhdGVJZCIsImRyYWZ0IiwiY2FudmFzUHJldmlldyIsImZvcm1WYWx1ZXMiLCJ2YXJpYXRpb25zIiwidmFyaWF0aW9uc0dyb3VwcyIsInNhdmVkIiwiY29tcGxldGUiLCJ0b3RhbCIsImdhdGVkIiwiX29iamVjdFNwcmVhZCIsImZpZWxkVHlwZSIsIlRFWFRfSU5QVVQiLCJoaWRkZW4iLCJ0ZW1wbGF0ZSIsInNob3duIiwidmFsdWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZHJhZnRTdG9yYWdlLnRlc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXJ0d29ya1BhdGhLZXksXG4gIGNsZWFyRHJhZnRzLFxuICBjb21wbGV0ZUdyb3VwQ291bnQsXG4gIGRyYWZ0U3RvcmFnZUtleSxcbiAgaXNQcmV2aWV3Q29tcGxldGUsXG4gIGxvYWRBcnR3b3JrUGF0aCxcbiAgbG9hZERyYWZ0cyxcbiAgbWlzc2luZ0Rlc2lnblNsb3RzLFxuICBwcnVuZURyYWZ0cyxcbiAgcmVxdWlyZWREZXNpZ25TbG90cyxcbiAgc2F2ZWRQcmV2aWV3LFxuICBzYXZlQXJ0d29ya1BhdGgsXG4gIHNhdmVEcmFmdHMsXG4gIHVwc2VydEdyb3VwVGVtcGxhdGVEcmFmdCxcbn0gZnJvbSAnLi9kcmFmdFN0b3JhZ2UnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IHByb2R1Y3QgPSB7XG4gIG5lZWRzRHJhZnRpbmc6IHRydWUsXG4gIGFsbG93Q2xpZW50RHJhZnRDb250cmlidXRpb246IHRydWUsXG4gIGdyb3VwVmFyaWF0aW9uRmllbGRzOiBbeyBpZDogOSB9XSxcbiAgZHJhZnRUZW1wbGF0ZXM6IFtcbiAgICB7IGlkOiAxLCBzZWxlY3RlZEJ5VmFyaWF0aW9uRmllbGRPcHRpb25zOiBbXSwgZWRpdGVkQnlWYXJpYXRpb25GaWVsZHM6IFtdIH0sXG4gIF0sXG59O1xuXG50ZXN0KCdkcmFmdFN0b3JhZ2VLZXkgaXMgcGVyIHByb2R1Y3QnLCAoKSA9PiB7XG4gIGV4cGVjdChkcmFmdFN0b3JhZ2VLZXkoNDQpKS50b0JlKCdwcm9kdWN0RHJhZnRUZW1wbGF0ZS00NCcpO1xufSk7XG5cbnRlc3QoJ2NsZWFyRHJhZnRzIHJlbW92ZXMgc2F2ZWQgYXJ0d29yayBmb3IgYSBwcm9kdWN0JywgKCkgPT4ge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgIXdpbmRvdy5sb2NhbFN0b3JhZ2UpIHJldHVybjtcbiAgc2F2ZURyYWZ0cyg0NCwgW3sgZ3JvdXBJbmRleDogMCwgcHJvZHVjdElkOiA0NCwgdGVtcGxhdGVEYXRhOiBbXSwgcHJldmlld3M6IFtdIH1dKTtcbiAgZXhwZWN0KGxvYWREcmFmdHMoNDQpKS50b0hhdmVMZW5ndGgoMSk7XG4gIGNsZWFyRHJhZnRzKDQ0KTtcbiAgZXhwZWN0KGxvYWREcmFmdHMoNDQpKS50b0VxdWFsKFtdKTtcbn0pO1xuXG50ZXN0KCdhcnR3b3JrIHBhdGggZGVmYXVsdHMgdG8gc2VsZiBhbmQgY2FuIHN3aXRjaCB0byB0aGUgZnJlZSBkZXNpZ24gc2VydmljZScsICgpID0+IHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF3aW5kb3cubG9jYWxTdG9yYWdlKSByZXR1cm47XG4gIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShhcnR3b3JrUGF0aEtleSg0NCkpO1xuICBleHBlY3QobG9hZEFydHdvcmtQYXRoKDQ0KSkudG9CZSgnc2VsZicpO1xuICBzYXZlQXJ0d29ya1BhdGgoNDQsICdzZXJ2aWNlJyk7XG4gIGV4cGVjdChsb2FkQXJ0d29ya1BhdGgoNDQpKS50b0JlKCdzZXJ2aWNlJyk7XG4gIHNhdmVBcnR3b3JrUGF0aCg0NCwgJ3NlbGYnKTtcbiAgZXhwZWN0KGxvYWRBcnR3b3JrUGF0aCg0NCkpLnRvQmUoJ3NlbGYnKTtcbn0pO1xuXG50ZXN0KCd1cHNlcnQgYW5kIHBydW5lIGtlZXAgcGVyLWdyb3VwIHRlbXBsYXRlIGRyYWZ0cycsICgpID0+IHtcbiAgbGV0IGRyYWZ0cyA9IHVwc2VydEdyb3VwVGVtcGxhdGVEcmFmdChbXSwgNDQsIDAsIHtcbiAgICB0ZW1wbGF0ZUlkOiAxLFxuICAgIGRyYWZ0OiAnZGF0YTphJyxcbiAgICBjYW52YXNQcmV2aWV3OiAnZGF0YTpiJyxcbiAgfSk7XG4gIGRyYWZ0cyA9IHVwc2VydEdyb3VwVGVtcGxhdGVEcmFmdChkcmFmdHMsIDQ0LCAxLCB7XG4gICAgdGVtcGxhdGVJZDogMSxcbiAgICBkcmFmdDogJ2RhdGE6YycsXG4gICAgY2FudmFzUHJldmlldzogJ2RhdGE6ZCcsXG4gIH0pO1xuICBleHBlY3QoZHJhZnRzKS50b0hhdmVMZW5ndGgoMik7XG4gIGV4cGVjdChzYXZlZFByZXZpZXcoZHJhZnRzLCAxLCAxKT8uZHJhZnQpLnRvQmUoJ2RhdGE6YycpO1xuICBleHBlY3QocHJ1bmVEcmFmdHMoZHJhZnRzLCAxKSkudG9IYXZlTGVuZ3RoKDEpO1xufSk7XG5cbnRlc3QoJ21pc3NpbmdEZXNpZ25TbG90cyByZXBvcnRzIHVuc2F2ZWQgZ3JvdXAgdGVtcGxhdGVzJywgKCkgPT4ge1xuICBjb25zdCBmb3JtVmFsdWVzID0ge1xuICAgIHZhcmlhdGlvbnM6IFtdLFxuICAgIHZhcmlhdGlvbnNHcm91cHM6IFt7IHZhcmlhdGlvbnM6IFtdIH0sIHsgdmFyaWF0aW9uczogW10gfV0sXG4gIH07XG4gIGV4cGVjdChyZXF1aXJlZERlc2lnblNsb3RzKHByb2R1Y3QsIGZvcm1WYWx1ZXMpKS50b0hhdmVMZW5ndGgoMik7XG4gIGV4cGVjdChtaXNzaW5nRGVzaWduU2xvdHMocHJvZHVjdCwgZm9ybVZhbHVlcywgW10pKS50b0hhdmVMZW5ndGgoMik7XG4gIGNvbnN0IHNhdmVkID0gdXBzZXJ0R3JvdXBUZW1wbGF0ZURyYWZ0KFtdLCAxLCAwLCB7XG4gICAgdGVtcGxhdGVJZDogMSxcbiAgICBkcmFmdDogJ3gnLFxuICAgIGNhbnZhc1ByZXZpZXc6ICd5JyxcbiAgfSk7XG4gIGV4cGVjdChtaXNzaW5nRGVzaWduU2xvdHMocHJvZHVjdCwgZm9ybVZhbHVlcywgc2F2ZWQpKS50b0hhdmVMZW5ndGgoMSk7XG4gIGV4cGVjdChjb21wbGV0ZUdyb3VwQ291bnQocHJvZHVjdCwgZm9ybVZhbHVlcywgc2F2ZWQpKS50b0VxdWFsKHtcbiAgICBjb21wbGV0ZTogMSxcbiAgICB0b3RhbDogMixcbiAgfSk7XG59KTtcblxudGVzdCgnaXNQcmV2aWV3Q29tcGxldGUgcmVxdWlyZXMgYm90aCBwbmdzJywgKCkgPT4ge1xuICBleHBlY3QoaXNQcmV2aWV3Q29tcGxldGUoeyB0ZW1wbGF0ZUlkOiAxLCBkcmFmdDogJycsIGNhbnZhc1ByZXZpZXc6ICdhJyB9KSkudG9CZShmYWxzZSk7XG4gIGV4cGVjdChpc1ByZXZpZXdDb21wbGV0ZSh7IHRlbXBsYXRlSWQ6IDEsIGRyYWZ0OiAnYScsIGNhbnZhc1ByZXZpZXc6ICdiJyB9KSkudG9CZSh0cnVlKTtcbn0pO1xuXG50ZXN0KCdnYXRlZCB0ZW1wbGF0ZXMgZHJvcCBvdXQgb2YgcmVxdWlyZWQgc2xvdHMnLCAoKSA9PiB7XG4gIGNvbnN0IGdhdGVkID0ge1xuICAgIC4uLnByb2R1Y3QsXG4gICAgZHJhZnRUZW1wbGF0ZXM6IFt7XG4gICAgICBpZDogMixcbiAgICAgIHNlbGVjdGVkQnlWYXJpYXRpb25GaWVsZE9wdGlvbnM6IFt7IGlkOiA3NyB9XSxcbiAgICAgIGVkaXRlZEJ5VmFyaWF0aW9uRmllbGRzOiBbeyBpZDogMywgZmllbGRUeXBlOiBGaWVsZFR5cGUuVEVYVF9JTlBVVCB9XSxcbiAgICB9XSxcbiAgfTtcbiAgY29uc3QgaGlkZGVuID0gbWlzc2luZ0Rlc2lnblNsb3RzKGdhdGVkLCB7XG4gICAgdmFyaWF0aW9uczogW10sXG4gICAgdmFyaWF0aW9uc0dyb3VwczogW3sgdmFyaWF0aW9uczogW10gfV0sXG4gIH0sIFtdKTtcbiAgZXhwZWN0KGhpZGRlblswXS50ZW1wbGF0ZS5pZCkudG9CZSgwKTtcbiAgY29uc3Qgc2hvd24gPSBtaXNzaW5nRGVzaWduU2xvdHMoZ2F0ZWQsIHtcbiAgICB2YXJpYXRpb25zOiBbeyB2YWx1ZTogJzc3JyB9XSxcbiAgICB2YXJpYXRpb25zR3JvdXBzOiBbeyB2YXJpYXRpb25zOiBbXSB9XSxcbiAgfSwgW10pO1xuICBleHBlY3Qoc2hvd25bMF0udGVtcGxhdGUuaWQpLnRvQmUoMik7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsU0FDRUEsY0FBYyxFQUNkQyxXQUFXLEVBQ1hDLGtCQUFrQixFQUNsQkMsZUFBZSxFQUNmQyxpQkFBaUIsRUFDakJDLGVBQWUsRUFDZkMsVUFBVSxFQUNWQyxrQkFBa0IsRUFDbEJDLFdBQVcsRUFDWEMsbUJBQW1CLEVBQ25CQyxZQUFZLEVBQ1pD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QUFNLENBQUNwQixpQkFBaUIsQ0FBQztJQUFFaUMsVUFBVSxFQUFFLENBQUM7SUFBRUMsS0FBSyxFQUFFLEVBQUU7SUFBRUMsYUFBYSxFQUFFO0VBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQztFQUN2RkQsTUFBTSxDQUFDcEIsaUJBQWlCLENBQUM7SUFBRWlDLFVBQVUsRUFBRSxDQUFDO0lBQUVDLEtBQUssRUFBRSxHQUFHO0lBQUVDLGFBQWEsRUFBRTtFQUFJLENBQUMsQ0FBQyxDQUFDLENBQUNkLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDekYsQ0FBQyxDQUFDO0FBRUZGLElBQUksQ0FBQyw0Q0FBNEMsRUFBRSxZQUFNO0VBQ3ZELElBQU11QixLQUFLLEdBQUFDLGFBQUEsQ0FBQUEsYUFBQSxLQUNOaEMsT0FBTztJQUNWSyxjQUFjLEVBQUUsQ0FBQztNQUNmRCxFQUFFLEVBQUUsQ0FBQztNQUNMRSwrQkFBK0IsRUFBRSxDQUFDO1FBQUVGLEVBQUUsRUFBRTtNQUFHLENBQUMsQ0FBQztNQUM3Q0csdUJBQXVCLEVBQUUsQ0FBQztRQUFFSCxFQUFFLEVBQUUsQ0FBQztRQUFFNkIsU0FBUyxFQUFFbEMsU0FBUyxDQUFDbUM7TUFBVyxDQUFDO0lBQ3RFLENBQUM7RUFBQyxFQUNIO0VBQ0QsSUFBTUMsTUFBTSxHQUFHM0Msa0JBQWtCLENBQUN1QyxLQUFLLEVBQUU7SUFDdkNMLFVBQVUsRUFBRSxFQUFFO0lBQ2RDLGdCQUFnQixFQUFFLENBQUM7TUFBRUQsVUFBVSxFQUFFO0lBQUcsQ0FBQztFQUN2QyxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBQ05qQixNQUFNLENBQUMwQixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQ2hDLEVBQUUsQ0FBQyxDQUFDTSxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ3JDLElBQU0yQixLQUFLLEdBQUc3QyxrQkFBa0IsQ0FBQ3VDLEtBQUssRUFBRTtJQUN0Q0wsVUFBVSxFQUFFLENBQUM7TUFBRVksS0FBSyxFQUFFO0lBQUssQ0FBQyxDQUFDO0lBQzdCWCxnQkFBZ0IsRUFBRSxDQUFDO01BQUVELFVBQVUsRUFBRTtJQUFHLENBQUM7RUFDdkMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUNOakIsTUFBTSxDQUFDNEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDRCxRQUFRLENBQUNoQyxFQUFFLENBQUMsQ0FBQ00sSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
149
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcnR3b3JrUGF0aEtleSIsImNsZWFyRHJhZnRzIiwiY29tcGxldGVHcm91cENvdW50IiwiZHJhZnRTdG9yYWdlS2V5IiwiaXNQcmV2aWV3Q29tcGxldGUiLCJjaGVja291dENsaWVudEZpbGVzIiwibG9hZEFydHdvcmtQYXRoIiwibG9hZERlc2lnbk1ldGhvZCIsImxvYWREcmFmdHMiLCJsb2FkVGVtcGxhdGVVcGxvYWRzIiwibWlzc2luZ0Rlc2lnblNsb3RzIiwicHJ1bmVEcmFmdHMiLCJyZXF1aXJlZERlc2lnblNsb3RzIiwic2F2ZWRQcmV2aWV3Iiwic2F2ZUFydHdvcmtQYXRoIiwic2F2ZURlc2lnbk1ldGhvZCIsInNhdmVEcmFmdHMiLCJzYXZlVGVtcGxhdGVVcGxvYWRzIiwidXBzZXJ0R3JvdXBUZW1wbGF0ZURyYWZ0IiwiRmllbGRUeXBlIiwicHJvZHVjdCIsIm5lZWRzRHJhZnRpbmciLCJhbGxvd0NsaWVudERyYWZ0Q29udHJpYnV0aW9uIiwiZ3JvdXBWYXJpYXRpb25GaWVsZHMiLCJpZCIsImRyYWZ0VGVtcGxhdGVzIiwic2VsZWN0ZWRCeVZhcmlhdGlvbkZpZWxkT3B0aW9ucyIsImVkaXRlZEJ5VmFyaWF0aW9uRmllbGRzIiwidGVzdCIsImV4cGVjdCIsInRvQmUiLCJ3aW5kb3ciLCJsb2NhbFN0b3JhZ2UiLCJncm91cEluZGV4IiwicHJvZHVjdElkIiwidGVtcGxhdGVEYXRhIiwicHJldmlld3MiLCJ0b0hhdmVMZW5ndGgiLCJ0b0VxdWFsIiwicmVtb3ZlSXRlbSIsIm5hbWUiLCJ2aWV3VXJsIiwiZmlsZSIsIm9iamVjdElkIiwiX3NhdmVkUHJldmlldyIsImRyYWZ0cyIsInRlbXBsYXRlSWQiLCJkcmFmdCIsImNhbnZhc1ByZXZpZXciLCJmb3JtVmFsdWVzIiwidmFyaWF0aW9ucyIsInZhcmlhdGlvbnNHcm91cHMiLCJzYXZlZCIsImNvbXBsZXRlIiwidG90YWwiLCJnYXRlZCIsIl9vYmplY3RTcHJlYWQiLCJmaWVsZFR5cGUiLCJURVhUX0lOUFVUIiwiaGlkZGVuIiwidGVtcGxhdGUiLCJzaG93biIsInZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RyYWZ0U3RvcmFnZS50ZXN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFydHdvcmtQYXRoS2V5LFxuICBjbGVhckRyYWZ0cyxcbiAgY29tcGxldGVHcm91cENvdW50LFxuICBkcmFmdFN0b3JhZ2VLZXksXG4gIGlzUHJldmlld0NvbXBsZXRlLFxuICBjaGVja291dENsaWVudEZpbGVzLFxuICBsb2FkQXJ0d29ya1BhdGgsXG4gIGxvYWREZXNpZ25NZXRob2QsXG4gIGxvYWREcmFmdHMsXG4gIGxvYWRUZW1wbGF0ZVVwbG9hZHMsXG4gIG1pc3NpbmdEZXNpZ25TbG90cyxcbiAgcHJ1bmVEcmFmdHMsXG4gIHJlcXVpcmVkRGVzaWduU2xvdHMsXG4gIHNhdmVkUHJldmlldyxcbiAgc2F2ZUFydHdvcmtQYXRoLFxuICBzYXZlRGVzaWduTWV0aG9kLFxuICBzYXZlRHJhZnRzLFxuICBzYXZlVGVtcGxhdGVVcGxvYWRzLFxuICB1cHNlcnRHcm91cFRlbXBsYXRlRHJhZnQsXG59IGZyb20gJy4vZHJhZnRTdG9yYWdlJztcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBwcm9kdWN0ID0ge1xuICBuZWVkc0RyYWZ0aW5nOiB0cnVlLFxuICBhbGxvd0NsaWVudERyYWZ0Q29udHJpYnV0aW9uOiB0cnVlLFxuICBncm91cFZhcmlhdGlvbkZpZWxkczogW3sgaWQ6IDkgfV0sXG4gIGRyYWZ0VGVtcGxhdGVzOiBbXG4gICAgeyBpZDogMSwgc2VsZWN0ZWRCeVZhcmlhdGlvbkZpZWxkT3B0aW9uczogW10sIGVkaXRlZEJ5VmFyaWF0aW9uRmllbGRzOiBbXSB9LFxuICBdLFxufTtcblxudGVzdCgnZHJhZnRTdG9yYWdlS2V5IGlzIHBlciBwcm9kdWN0JywgKCkgPT4ge1xuICBleHBlY3QoZHJhZnRTdG9yYWdlS2V5KDQ0KSkudG9CZSgncHJvZHVjdERyYWZ0VGVtcGxhdGUtNDQnKTtcbn0pO1xuXG50ZXN0KCdjbGVhckRyYWZ0cyByZW1vdmVzIHNhdmVkIGFydHdvcmsgZm9yIGEgcHJvZHVjdCcsICgpID0+IHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF3aW5kb3cubG9jYWxTdG9yYWdlKSByZXR1cm47XG4gIHNhdmVEcmFmdHMoNDQsIFt7IGdyb3VwSW5kZXg6IDAsIHByb2R1Y3RJZDogNDQsIHRlbXBsYXRlRGF0YTogW10sIHByZXZpZXdzOiBbXSB9XSk7XG4gIGV4cGVjdChsb2FkRHJhZnRzKDQ0KSkudG9IYXZlTGVuZ3RoKDEpO1xuICBjbGVhckRyYWZ0cyg0NCk7XG4gIGV4cGVjdChsb2FkRHJhZnRzKDQ0KSkudG9FcXVhbChbXSk7XG59KTtcblxudGVzdCgnYXJ0d29yayBwYXRoIGRlZmF1bHRzIHRvIHNlbGYgYW5kIGNhbiBzd2l0Y2ggdG8gdGhlIGZyZWUgZGVzaWduIHNlcnZpY2UnLCAoKSA9PiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCAhd2luZG93LmxvY2FsU3RvcmFnZSkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYXJ0d29ya1BhdGhLZXkoNDQpKTtcbiAgZXhwZWN0KGxvYWRBcnR3b3JrUGF0aCg0NCkpLnRvQmUoJ3NlbGYnKTtcbiAgc2F2ZUFydHdvcmtQYXRoKDQ0LCAnc2VydmljZScpO1xuICBleHBlY3QobG9hZEFydHdvcmtQYXRoKDQ0KSkudG9CZSgnc2VydmljZScpO1xuICBzYXZlQXJ0d29ya1BhdGgoNDQsICdzZWxmJyk7XG4gIGV4cGVjdChsb2FkQXJ0d29ya1BhdGgoNDQpKS50b0JlKCdzZWxmJyk7XG59KTtcblxudGVzdCgndGVtcGxhdGUgdXBsb2FkcyBhcmUgcmVtZW1iZXJlZCBhbmQgc2hhcGVkIGZvciBjaGVja291dCcsICgpID0+IHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF3aW5kb3cubG9jYWxTdG9yYWdlKSByZXR1cm47XG4gIGV4cGVjdChsb2FkRGVzaWduTWV0aG9kKDQ0KSkudG9CZSgnZGVzaWduZXInKTtcbiAgc2F2ZURlc2lnbk1ldGhvZCg0NCwgJ3RlbXBsYXRlcycpO1xuICBleHBlY3QobG9hZERlc2lnbk1ldGhvZCg0NCkpLnRvQmUoJ3RlbXBsYXRlcycpO1xuICBzYXZlVGVtcGxhdGVVcGxvYWRzKDQ0LCBbeyBpZDogOSwgbmFtZTogJ2Zyb250LnBuZycsIHZpZXdVcmw6ICdodHRwczovL2Nkbi5leGFtcGxlL2Zyb250LnBuZycgfV0pO1xuICBleHBlY3QobG9hZFRlbXBsYXRlVXBsb2Fkcyg0NCkpLnRvRXF1YWwoW1xuICAgIHsgaWQ6IDksIG5hbWU6ICdmcm9udC5wbmcnLCB2aWV3VXJsOiAnaHR0cHM6Ly9jZG4uZXhhbXBsZS9mcm9udC5wbmcnIH0sXG4gIF0pO1xuICBleHBlY3QoY2hlY2tvdXRDbGllbnRGaWxlcyhsb2FkVGVtcGxhdGVVcGxvYWRzKDQ0KSkpLnRvRXF1YWwoW1xuICAgIHsgZmlsZTogeyBpZDogOSB9LCBvYmplY3RJZDogJzknIH0sXG4gIF0pO1xuICBzYXZlVGVtcGxhdGVVcGxvYWRzKDQ0LCBbXSk7XG4gIHNhdmVEZXNpZ25NZXRob2QoNDQsICdkZXNpZ25lcicpO1xufSk7XG5cbnRlc3QoJ3Vwc2VydCBhbmQgcHJ1bmUga2VlcCBwZXItZ3JvdXAgdGVtcGxhdGUgZHJhZnRzJywgKCkgPT4ge1xuICBsZXQgZHJhZnRzID0gdXBzZXJ0R3JvdXBUZW1wbGF0ZURyYWZ0KFtdLCA0NCwgMCwge1xuICAgIHRlbXBsYXRlSWQ6IDEsXG4gICAgZHJhZnQ6ICdkYXRhOmEnLFxuICAgIGNhbnZhc1ByZXZpZXc6ICdkYXRhOmInLFxuICB9KTtcbiAgZHJhZnRzID0gdXBzZXJ0R3JvdXBUZW1wbGF0ZURyYWZ0KGRyYWZ0cywgNDQsIDEsIHtcbiAgICB0ZW1wbGF0ZUlkOiAxLFxuICAgIGRyYWZ0OiAnZGF0YTpjJyxcbiAgICBjYW52YXNQcmV2aWV3OiAnZGF0YTpkJyxcbiAgfSk7XG4gIGV4cGVjdChkcmFmdHMpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgZXhwZWN0KHNhdmVkUHJldmlldyhkcmFmdHMsIDEsIDEpPy5kcmFmdCkudG9CZSgnZGF0YTpjJyk7XG4gIGV4cGVjdChwcnVuZURyYWZ0cyhkcmFmdHMsIDEpKS50b0hhdmVMZW5ndGgoMSk7XG59KTtcblxudGVzdCgnbWlzc2luZ0Rlc2lnblNsb3RzIHJlcG9ydHMgdW5zYXZlZCBncm91cCB0ZW1wbGF0ZXMnLCAoKSA9PiB7XG4gIGNvbnN0IGZvcm1WYWx1ZXMgPSB7XG4gICAgdmFyaWF0aW9uczogW10sXG4gICAgdmFyaWF0aW9uc0dyb3VwczogW3sgdmFyaWF0aW9uczogW10gfSwgeyB2YXJpYXRpb25zOiBbXSB9XSxcbiAgfTtcbiAgZXhwZWN0KHJlcXVpcmVkRGVzaWduU2xvdHMocHJvZHVjdCwgZm9ybVZhbHVlcykpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgZXhwZWN0KG1pc3NpbmdEZXNpZ25TbG90cyhwcm9kdWN0LCBmb3JtVmFsdWVzLCBbXSkpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgY29uc3Qgc2F2ZWQgPSB1cHNlcnRHcm91cFRlbXBsYXRlRHJhZnQoW10sIDEsIDAsIHtcbiAgICB0ZW1wbGF0ZUlkOiAxLFxuICAgIGRyYWZ0OiAneCcsXG4gICAgY2FudmFzUHJldmlldzogJ3knLFxuICB9KTtcbiAgZXhwZWN0KG1pc3NpbmdEZXNpZ25TbG90cyhwcm9kdWN0LCBmb3JtVmFsdWVzLCBzYXZlZCkpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgZXhwZWN0KGNvbXBsZXRlR3JvdXBDb3VudChwcm9kdWN0LCBmb3JtVmFsdWVzLCBzYXZlZCkpLnRvRXF1YWwoe1xuICAgIGNvbXBsZXRlOiAxLFxuICAgIHRvdGFsOiAyLFxuICB9KTtcbn0pO1xuXG50ZXN0KCdpc1ByZXZpZXdDb21wbGV0ZSByZXF1aXJlcyBib3RoIHBuZ3MnLCAoKSA9PiB7XG4gIGV4cGVjdChpc1ByZXZpZXdDb21wbGV0ZSh7IHRlbXBsYXRlSWQ6IDEsIGRyYWZ0OiAnJywgY2FudmFzUHJldmlldzogJ2EnIH0pKS50b0JlKGZhbHNlKTtcbiAgZXhwZWN0KGlzUHJldmlld0NvbXBsZXRlKHsgdGVtcGxhdGVJZDogMSwgZHJhZnQ6ICdhJywgY2FudmFzUHJldmlldzogJ2InIH0pKS50b0JlKHRydWUpO1xufSk7XG5cbnRlc3QoJ2dhdGVkIHRlbXBsYXRlcyBkcm9wIG91dCBvZiByZXF1aXJlZCBzbG90cycsICgpID0+IHtcbiAgY29uc3QgZ2F0ZWQgPSB7XG4gICAgLi4ucHJvZHVjdCxcbiAgICBkcmFmdFRlbXBsYXRlczogW3tcbiAgICAgIGlkOiAyLFxuICAgICAgc2VsZWN0ZWRCeVZhcmlhdGlvbkZpZWxkT3B0aW9uczogW3sgaWQ6IDc3IH1dLFxuICAgICAgZWRpdGVkQnlWYXJpYXRpb25GaWVsZHM6IFt7IGlkOiAzLCBmaWVsZFR5cGU6IEZpZWxkVHlwZS5URVhUX0lOUFVUIH1dLFxuICAgIH1dLFxuICB9O1xuICBjb25zdCBoaWRkZW4gPSBtaXNzaW5nRGVzaWduU2xvdHMoZ2F0ZWQsIHtcbiAgICB2YXJpYXRpb25zOiBbXSxcbiAgICB2YXJpYXRpb25zR3JvdXBzOiBbeyB2YXJpYXRpb25zOiBbXSB9XSxcbiAgfSwgW10pO1xuICBleHBlY3QoaGlkZGVuWzBdLnRlbXBsYXRlLmlkKS50b0JlKDApO1xuICBjb25zdCBzaG93biA9IG1pc3NpbmdEZXNpZ25TbG90cyhnYXRlZCwge1xuICAgIHZhcmlhdGlvbnM6IFt7IHZhbHVlOiAnNzcnIH1dLFxuICAgIHZhcmlhdGlvbnNHcm91cHM6IFt7IHZhcmlhdGlvbnM6IFtdIH1dLFxuICB9LCBbXSk7XG4gIGV4cGVjdChzaG93blswXS50ZW1wbGF0ZS5pZCkudG9CZSgyKTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUNFQSxjQUFjLEVBQ2RDLFdBQVcsRUFDWEMsa0JBQWtCLEVBQ2xCQyxlQUFlLEVBQ2ZDLGlCQUFpQixFQUNqQkMsbUJBQW1CLEVBQ25CQyxl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
@@ -17,6 +17,8 @@ export declare function blankTemplate(product?: any): {
17
17
  selectedByVariationFieldOptions: any[];
18
18
  };
19
19
  export declare function templatesForGroup(product: any, independentVariations: any[], groupVariations: any[]): any[];
20
+ /** Blank templates the customer can download for the options currently selected. */
21
+ export declare function downloadableDraftTemplates(product: any, formValues: any): any[];
20
22
  export declare function canvasKindForFieldType(fieldType: any): DraftCanvasObjectType | null;
21
23
  export declare function variationCanvasContent(variation: any): {
22
24
  kind: DraftCanvasObjectType | null;