@merchi/product-form 1.19.34 → 1.19.36
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/Variations.js +28 -5
- package/lib/styles/globals.css +10 -1
- package/lib/styles/globals.css.map +1 -1
- package/lib/styles/globals.scss +11 -1
- package/lib/utils/quantityAdjustedCosts.d.ts +41 -0
- package/lib/utils/quantityAdjustedCosts.js +141 -0
- package/lib/utils/quantityAdjustedCosts.test.js +159 -0
- package/package.json +1 -1
|
@@ -15,8 +15,10 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
15
15
|
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; }
|
|
16
16
|
import * as React from 'react';
|
|
17
17
|
import DynamicVariationInput from './DynamicVariationInput';
|
|
18
|
-
import { useFieldArray } from 'react-hook-form';
|
|
18
|
+
import { useFieldArray, useWatch } from 'react-hook-form';
|
|
19
19
|
import { useMerchiFormContext } from '../context/MerchiProductFormProvider';
|
|
20
|
+
import { productHasGroups } from '../utils/products';
|
|
21
|
+
import { displayQuantity, groupIndexFromVariationName, withQuantityAdjustedDisplayCosts } from '../utils/quantityAdjustedCosts';
|
|
20
22
|
import { shouldHideSingleOptionSelection } from '../utils/singleOptionVariation';
|
|
21
23
|
import { clampVariationColumns, variationLayoutSpan } from '../utils/variationLayout';
|
|
22
24
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -77,6 +79,7 @@ function Variations(_ref) {
|
|
|
77
79
|
var _useMerchiFormContext = useMerchiFormContext(),
|
|
78
80
|
control = _useMerchiFormContext.control,
|
|
79
81
|
hookForm = _useMerchiFormContext.hookForm,
|
|
82
|
+
pricingRules = _useMerchiFormContext.pricingRules,
|
|
80
83
|
product = _useMerchiFormContext.product;
|
|
81
84
|
var watch = hookForm.watch;
|
|
82
85
|
var _useFieldArray = useFieldArray({
|
|
@@ -85,6 +88,25 @@ function Variations(_ref) {
|
|
|
85
88
|
name: name
|
|
86
89
|
}),
|
|
87
90
|
fields = _useFieldArray.fields;
|
|
91
|
+
var groupIndex = groupIndexFromVariationName(name);
|
|
92
|
+
var hasGroups = productHasGroups(product);
|
|
93
|
+
var watchedQuantity = useWatch({
|
|
94
|
+
control: control,
|
|
95
|
+
name: groupIndex != null ? "variationsGroups.".concat(groupIndex, ".quantity") : 'quantity',
|
|
96
|
+
disabled: groupIndex == null && hasGroups
|
|
97
|
+
});
|
|
98
|
+
var watchedGroups = useWatch({
|
|
99
|
+
control: control,
|
|
100
|
+
name: 'variationsGroups',
|
|
101
|
+
disabled: groupIndex != null || !hasGroups
|
|
102
|
+
});
|
|
103
|
+
var quantity = displayQuantity({
|
|
104
|
+
groupIndex: groupIndex,
|
|
105
|
+
groupQuantity: watchedQuantity,
|
|
106
|
+
groups: watchedGroups,
|
|
107
|
+
jobQuantity: watchedQuantity,
|
|
108
|
+
hasGroups: hasGroups
|
|
109
|
+
});
|
|
88
110
|
var currentVariations = watch(name) || [];
|
|
89
111
|
// Group fields can be gated by independent options (and vice versa is rare).
|
|
90
112
|
// Mirror the server: group selected_options = group.variations + job.variations.
|
|
@@ -119,8 +141,9 @@ function Variations(_ref) {
|
|
|
119
141
|
if (!isDynamicVariationVisible(variation, selectedOptionIds)) {
|
|
120
142
|
return null;
|
|
121
143
|
}
|
|
122
|
-
var
|
|
123
|
-
var
|
|
144
|
+
var pricedVariation = withQuantityAdjustedDisplayCosts(variation, pricingRules, quantity);
|
|
145
|
+
var hideSelection = shouldHideSingleOptionSelection(pricedVariation);
|
|
146
|
+
var span = variationLayoutSpan(layoutSpanForVariation(pricedVariation, product), columnCount);
|
|
124
147
|
return /*#__PURE__*/_jsx("fieldset", {
|
|
125
148
|
className: hideSelection ? undefined : containerClass,
|
|
126
149
|
name: "".concat(name, "[").concat(index, "]"),
|
|
@@ -132,11 +155,11 @@ function Variations(_ref) {
|
|
|
132
155
|
disabled: disabled,
|
|
133
156
|
index: index,
|
|
134
157
|
name: name,
|
|
135
|
-
variation:
|
|
158
|
+
variation: pricedVariation
|
|
136
159
|
})
|
|
137
160
|
}, fieldItem[keyName]);
|
|
138
161
|
})
|
|
139
162
|
});
|
|
140
163
|
}
|
|
141
164
|
export default Variations;
|
|
142
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwiZiIsImEiLCJ1IiwibmV4dCIsInRvU3RyaW5nIiwic2xpY2UiLCJuYW1lIiwidGVzdCIsIlJlYWN0IiwiRHluYW1pY1ZhcmlhdGlvbklucHV0IiwidXNlRmllbGRBcnJheSIsInVzZU1lcmNoaUZvcm1Db250ZXh0Iiwic2hvdWxkSGlkZVNpbmdsZU9wdGlvblNlbGVjdGlvbiIsImNsYW1wVmFyaWF0aW9uQ29sdW1ucyIsInZhcmlhdGlvbkxheW91dFNwYW4iLCJqc3giLCJfanN4IiwiZ2V0U2VsZWN0ZWRPcHRpb25JZHMiLCJ2YXJpYXRpb25zIiwiaWRzIiwiU2V0IiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJ2YXJpYXRpb24iLCJzcGxpdCIsImlkIiwicGFyc2VkIiwicGFyc2VJbnQiLCJ0cmltIiwiaXNOYU4iLCJhZGQiLCJlcnIiLCJhc0xheW91dFNwYW4iLCJ1bmRlZmluZWQiLCJpc0Zpbml0ZSIsImxheW91dFNwYW5Gb3JWYXJpYXRpb24iLCJwcm9kdWN0IiwiX3ZhcmlhdGlvbiR2YXJpYXRpb25GIiwiX3ZhcmlhdGlvbiR2YXJpYXRpb25GMiIsImRpcmVjdCIsInZhcmlhdGlvbkZpZWxkIiwibGF5b3V0U3BhbiIsImZpZWxkcyIsImNvbmNhdCIsImluZGVwZW5kZW50VmFyaWF0aW9uRmllbGRzIiwiZ3JvdXBWYXJpYXRpb25GaWVsZHMiLCJmaWVsZCIsImZpbmQiLCJpdGVtIiwiaXNEeW5hbWljVmFyaWF0aW9uVmlzaWJsZSIsInNlbGVjdGVkT3B0aW9uSWRzIiwiX3ZhcmlhdGlvbiR2YXJpYXRpb25GMyIsInNlbGVjdGVkQnkiLCJzb21lIiwib3B0IiwiaGFzIiwiVmFyaWF0aW9ucyIsIl9yZWYiLCJjb250YWluZXJDbGFzcyIsImNvbHVtbnMiLCJkaXNhYmxlZCIsIl9yZWYkbmFtZSIsIl9yZWYka2V5TmFtZSIsImtleU5hbWUiLCJfdXNlTWVyY2hpRm9ybUNvbnRleHQiLCJjb250cm9sIiwiaG9va0Zvcm0iLCJ3YXRjaCIsIl91c2VGaWVsZEFycmF5IiwiY3VycmVudFZhcmlhdGlvbnMiLCJpbmRlcGVuZGVudFZhcmlhdGlvbnMiLCJjb2x1bW5Db3VudCIsImluZGVwZW5kZW50VmFyaWF0aW9uQ29sdW1ucyIsImdyb3VwVmFyaWF0aW9uQ29sdW1ucyIsImdyaWRTdHlsZSIsImRpc3BsYXkiLCJjbGFzc05hbWUiLCJzdHlsZSIsImNoaWxkcmVuIiwibWFwIiwiZmllbGRJdGVtIiwiaW5kZXgiLCJfY3VycmVudCR2YWx1ZSIsIl9jdXJyZW50JHZhcmlhdGlvbkZpbCIsIl9jdXJyZW50JG9uY2VPZmZDb3N0IiwiX2N1cnJlbnQkdW5pdENvc3QiLCJfY3VycmVudCRjb3N0IiwiX2N1cnJlbnQkc2VsZWN0YWJsZU9wIiwiX2ZpZWxkSXRlbSR2YXJpYXRpb25GIiwiY3VycmVudCIsInZhcmlhdGlvbkZpbGVzIiwib25jZU9mZkNvc3QiLCJ1bml0Q29zdCIsImNvc3QiLCJzZWxlY3RhYmxlT3B0aW9ucyIsImhpZGVTZWxlY3Rpb24iLCJzcGFuIiwiaGlkZGVuIiwiZ3JpZENvbHVtbiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL1ZhcmlhdGlvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBEeW5hbWljVmFyaWF0aW9uSW5wdXQgZnJvbSAnLi9EeW5hbWljVmFyaWF0aW9uSW5wdXQnO1xuaW1wb3J0IHsgdXNlRmllbGRBcnJheSB9IGZyb20gJ3JlYWN0LWhvb2stZm9ybSc7XG5pbXBvcnQgeyB1c2VNZXJjaGlGb3JtQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQvTWVyY2hpUHJvZHVjdEZvcm1Qcm92aWRlcic7XG5pbXBvcnQgeyBzaG91bGRIaWRlU2luZ2xlT3B0aW9uU2VsZWN0aW9uIH0gZnJvbSAnLi4vdXRpbHMvc2luZ2xlT3B0aW9uVmFyaWF0aW9uJztcbmltcG9ydCB7XG4gIGNsYW1wVmFyaWF0aW9uQ29sdW1ucyxcbiAgdmFyaWF0aW9uTGF5b3V0U3Bhbixcbn0gZnJvbSAnLi4vdXRpbHMvdmFyaWF0aW9uTGF5b3V0JztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgY29udGFpbmVyQ2xhc3M/OiBzdHJpbmc7XG4gIGNvbHVtbnM/OiBudW1iZXI7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbiAga2V5TmFtZT86IHN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0U2VsZWN0ZWRPcHRpb25JZHModmFyaWF0aW9uczogYW55W10pOiBTZXQ8bnVtYmVyPiB7XG4gIGNvbnN0IGlkcyA9IG5ldyBTZXQ8bnVtYmVyPigpO1xuICBmb3IgKGNvbnN0IHZhcmlhdGlvbiBvZiB2YXJpYXRpb25zKSB7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gdmFyaWF0aW9uO1xuICAgIGlmICghdmFsdWUpIGNvbnRpbnVlO1xuICAgIFN0cmluZyh2YWx1ZSkuc3BsaXQoJywnKS5mb3JFYWNoKChpZDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUludChpZC50cmltKCksIDEwKTtcbiAgICAgIGlmICghaXNOYU4ocGFyc2VkKSkgaWRzLmFkZChwYXJzZWQpO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBpZHM7XG59XG5cbmZ1bmN0aW9uIGFzTGF5b3V0U3Bhbih2YWx1ZTogdW5rbm93bik6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQge1xuICBpZiAodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IHBhcnNlZCA9IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyB2YWx1ZSA6IE51bWJlcih2YWx1ZSk7XG4gIHJldHVybiBOdW1iZXIuaXNGaW5pdGUocGFyc2VkKSA/IHBhcnNlZCA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gbGF5b3V0U3BhbkZvclZhcmlhdGlvbihcbiAgdmFyaWF0aW9uOiBhbnksXG4gIHByb2R1Y3Q6IGFueSxcbik6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQge1xuICBjb25zdCBkaXJlY3QgPSBhc0xheW91dFNwYW4odmFyaWF0aW9uPy52YXJpYXRpb25GaWVsZD8ubGF5b3V0U3Bhbik7XG4gIGlmIChkaXJlY3QgIT0gbnVsbCkgcmV0dXJuIGRpcmVjdDtcbiAgY29uc3QgaWQgPSBOdW1iZXIodmFyaWF0aW9uPy52YXJpYXRpb25GaWVsZD8uaWQpO1xuICBpZiAoIU51bWJlci5pc0Zpbml0ZShpZCkpIHJldHVybiBkaXJlY3Q7XG4gIGNvbnN0IGZpZWxkcyA9IFtcbiAgICAuLi4ocHJvZHVjdD8uaW5kZXBlbmRlbnRWYXJpYXRpb25GaWVsZHMgfHwgW10pLFxuICAgIC4uLihwcm9kdWN0Py5ncm91cFZhcmlhdGlvbkZpZWxkcyB8fCBbXSksXG4gIF07XG4gIGNvbnN0IGZpZWxkID0gZmllbGRzLmZpbmQoKGl0ZW06IGFueSkgPT4gTnVtYmVyKGl0ZW0/LmlkKSA9PT0gaWQpO1xuICByZXR1cm4gYXNMYXlvdXRTcGFuKGZpZWxkPy5sYXlvdXRTcGFuKTtcbn1cblxuZnVuY3Rpb24gaXNEeW5hbWljVmFyaWF0aW9uVmlzaWJsZShcbiAgdmFyaWF0aW9uOiBhbnksXG4gIHNlbGVjdGVkT3B0aW9uSWRzOiBTZXQ8bnVtYmVyPixcbik6IGJvb2xlYW4ge1xuICBjb25zdCBzZWxlY3RlZEJ5OiBhbnlbXSA9IHZhcmlhdGlvbj8udmFyaWF0aW9uRmllbGQ/LnNlbGVjdGVkQnk7XG4gIGlmICghc2VsZWN0ZWRCeSB8fCBzZWxlY3RlZEJ5Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWU7XG4gIHJldHVybiBzZWxlY3RlZEJ5LnNvbWUoKG9wdDogYW55KSA9PiBvcHQuaWQgJiYgc2VsZWN0ZWRPcHRpb25JZHMuaGFzKG9wdC5pZCkpO1xufVxuXG5mdW5jdGlvbiBWYXJpYXRpb25zKHtcbiAgY29udGFpbmVyQ2xhc3MsXG4gIGNvbHVtbnMsXG4gIGRpc2FibGVkLFxuICBuYW1lID0gJ3ZhcmlhdGlvbnMnLFxuICBrZXlOYW1lID0gJ3ZhcmlhdGlvbkFycmF5RmllbGRJZCcsXG59OiBQcm9wcykge1xuICBjb25zdCB7IGNvbnRyb2wsIGhvb2tGb3JtLCBwcm9kdWN0IH0gPSB1c2VNZXJjaGlGb3JtQ29udGV4dCgpO1xuICBjb25zdCB7IHdhdGNoIH0gPSBob29rRm9ybTtcbiAgY29uc3QgeyBmaWVsZHMgfSA9IHVzZUZpZWxkQXJyYXkoeyBjb250cm9sLCBrZXlOYW1lLCBuYW1lIH0pO1xuICBjb25zdCBjdXJyZW50VmFyaWF0aW9uczogYW55W10gPSB3YXRjaChuYW1lKSB8fCBbXTtcbiAgLy8gR3JvdXAgZmllbGRzIGNhbiBiZSBnYXRlZCBieSBpbmRlcGVuZGVudCBvcHRpb25zIChhbmQgdmljZSB2ZXJzYSBpcyByYXJlKS5cbiAgLy8gTWlycm9yIHRoZSBzZXJ2ZXI6IGdyb3VwIHNlbGVjdGVkX29wdGlvbnMgPSBncm91cC52YXJpYXRpb25zICsgam9iLnZhcmlhdGlvbnMuXG4gIGNvbnN0IGluZGVwZW5kZW50VmFyaWF0aW9uczogYW55W10gPVxuICAgIG5hbWUgPT09ICd2YXJpYXRpb25zJyA/IFtdIDogd2F0Y2goJ3ZhcmlhdGlvbnMnKSB8fCBbXTtcbiAgY29uc3Qgc2VsZWN0ZWRPcHRpb25JZHMgPSBnZXRTZWxlY3RlZE9wdGlvbklkcyhbXG4gICAgLi4uaW5kZXBlbmRlbnRWYXJpYXRpb25zLFxuICAgIC4uLmN1cnJlbnRWYXJpYXRpb25zLFxuICBdKTtcbiAgY29uc3QgY29sdW1uQ291bnQgPSBjbGFtcFZhcmlhdGlvbkNvbHVtbnMoXG4gICAgY29sdW1ucyA/P1xuICAgICAgKG5hbWUgPT09ICd2YXJpYXRpb25zJ1xuICAgICAgICA/IHByb2R1Y3Q/LmluZGVwZW5kZW50VmFyaWF0aW9uQ29sdW1uc1xuICAgICAgICA6IHByb2R1Y3Q/Lmdyb3VwVmFyaWF0aW9uQ29sdW1ucyksXG4gICk7XG4gIGlmICghZmllbGRzLmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gIC8vIE9uZSBjb2x1bW4ga2VlcHMgdGhlIGZpZWxkcyBpbiB0aGUgcGFyZW50IHN0YWNrLiBBIGdyaWQgd3JhcHBlciB3b3VsZFxuICAvLyBzdGlsbCB0YWtlIGEgZmxleCBzbG90IHdoZW4gZXZlcnkgZmllbGQgaXMgaGlkZGVuLlxuICBjb25zdCBncmlkU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSBjb2x1bW5Db3VudCA+IDFcbiAgICA/IHsgWyctLW1lcmNoaS12YXJpYXRpb24tY29sdW1ucycgYXMgc3RyaW5nXTogU3RyaW5nKGNvbHVtbkNvdW50KSB9XG4gICAgOiB7IGRpc3BsYXk6ICdjb250ZW50cycgfTtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9XCJtZXJjaGktZW1iZWQtZm9ybV92YXJpYXRpb24tZ3JpZFwiXG4gICAgICBzdHlsZT17Z3JpZFN0eWxlfVxuICAgID5cbiAgICAgIHtmaWVsZHMubWFwKChmaWVsZEl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gY3VycmVudFZhcmlhdGlvbnNbaW5kZXhdO1xuICAgICAgICAvLyBGaWVsZC1hcnJheSBpdGVtcyBhcmUgdGhlIHNvdXJjZSBvZiB0cnV0aCBmb3IgdmFyaWF0aW9uRmllbGQgL1xuICAgICAgICAvLyBzZWxlY3RhYmxlT3B0aW9ucy4gV2F0Y2hlZCB2YWx1ZXMgY2FuIG9taXQgdGhvc2UgYWZ0ZXIgYSB2YWx1ZS1vbmx5XG4gICAgICAgIC8vIHVwZGF0ZTsgbmV2ZXIgbGV0IHRoYXQgc3RyaXAgbWV0YWRhdGEgb3IgdGhlIGlucHV0IHRyZWUgY3Jhc2hlcyBhbmRcbiAgICAgICAgLy8gdGhlIGZvcm0gY29sbGFwc2VzLlxuICAgICAgICBjb25zdCB2YXJpYXRpb24gPSB7XG4gICAgICAgICAgLi4uZmllbGRJdGVtLFxuICAgICAgICAgIHZhbHVlOiBjdXJyZW50Py52YWx1ZSA/PyBmaWVsZEl0ZW0udmFsdWUsXG4gICAgICAgICAgdmFyaWF0aW9uRmlsZXM6IGN1cnJlbnQ/LnZhcmlhdGlvbkZpbGVzID8/IGZpZWxkSXRlbS52YXJpYXRpb25GaWxlcyxcbiAgICAgICAgICBvbmNlT2ZmQ29zdDogY3VycmVudD8ub25jZU9mZkNvc3QgPz8gZmllbGRJdGVtLm9uY2VPZmZDb3N0LFxuICAgICAgICAgIHVuaXRDb3N0OiBjdXJyZW50Py51bml0Q29zdCA/PyBmaWVsZEl0ZW0udW5pdENvc3QsXG4gICAgICAgICAgY29zdDogY3VycmVudD8uY29zdCA/PyBmaWVsZEl0ZW0uY29zdCxcbiAgICAgICAgICBzZWxlY3RhYmxlT3B0aW9uczpcbiAgICAgICAgICAgIGN1cnJlbnQ/LnNlbGVjdGFibGVPcHRpb25zID8/IGZpZWxkSXRlbS5zZWxlY3RhYmxlT3B0aW9ucyxcbiAgICAgICAgICB2YXJpYXRpb25GaWVsZDogZmllbGRJdGVtLnZhcmlhdGlvbkZpZWxkID8/IGN1cnJlbnQ/LnZhcmlhdGlvbkZpZWxkLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoIWlzRHluYW1pY1ZhcmlhdGlvblZpc2libGUodmFyaWF0aW9uLCBzZWxlY3RlZE9wdGlvbklkcykpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBoaWRlU2VsZWN0aW9uID0gc2hvdWxkSGlkZVNpbmdsZU9wdGlvblNlbGVjdGlvbih2YXJpYXRpb24pO1xuICAgICAgICBjb25zdCBzcGFuID0gdmFyaWF0aW9uTGF5b3V0U3BhbihcbiAgICAgICAgICBsYXlvdXRTcGFuRm9yVmFyaWF0aW9uKHZhcmlhdGlvbiwgcHJvZHVjdCksXG4gICAgICAgICAgY29sdW1uQ291bnQsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGZpZWxkc2V0XG4gICAgICAgICAgICBjbGFzc05hbWU9e2hpZGVTZWxlY3Rpb24gPyB1bmRlZmluZWQgOiBjb250YWluZXJDbGFzc31cbiAgICAgICAgICAgIGtleT17ZmllbGRJdGVtW2tleU5hbWVdfVxuICAgICAgICAgICAgbmFtZT17YCR7bmFtZX1bJHtpbmRleH1dYH1cbiAgICAgICAgICAgIGhpZGRlbj17aGlkZVNlbGVjdGlvbn1cbiAgICAgICAgICAgIHN0eWxlPXtoaWRlU2VsZWN0aW9uID8gdW5kZWZpbmVkIDogeyBncmlkQ29sdW1uOiBgc3BhbiAke3NwYW59YCB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxEeW5hbWljVmFyaWF0aW9uSW5wdXRcbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgIHZhcmlhdGlvbj17dmFyaWF0aW9ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFZhcmlhdGlvbnM7XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFYLENBQUEsR0FBQVMsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQVAsQ0FBQSxHQUFBQSxDQUFBLENBQUFZLE1BQUEsV0FBQUwsQ0FBQSxXQUFBRSxNQUFBLENBQUFJLHdCQUFBLENBQUFQLENBQUEsRUFBQUMsQ0FBQSxFQUFBTyxVQUFBLE9BQUFOLENBQUEsQ0FBQU8sSUFBQSxDQUFBQyxLQUFBLENBQUFSLENBQUEsRUFBQVIsQ0FBQSxZQUFBUSxDQUFBO0FBQUEsU0FBQVMsY0FBQVgsQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVcsU0FBQSxDQUFBQyxNQUFBLEVBQUFaLENBQUEsVUFBQUMsQ0FBQSxXQUFBVSxTQUFBLENBQUFYLENBQUEsSUFBQVcsU0FBQSxDQUFBWCxDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFBSSxNQUFB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
|
|
165
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwiZiIsImEiLCJ1IiwibmV4dCIsInRvU3RyaW5nIiwic2xpY2UiLCJuYW1lIiwidGVzdCIsIlJlYWN0IiwiRHluYW1pY1ZhcmlhdGlvbklucHV0IiwidXNlRmllbGRBcnJheSIsInVzZVdhdGNoIiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJwcm9kdWN0SGFzR3JvdXBzIiwiZGlzcGxheVF1YW50aXR5IiwiZ3JvdXBJbmRleEZyb21WYXJpYXRpb25OYW1lIiwid2l0aFF1YW50aXR5QWRqdXN0ZWREaXNwbGF5Q29zdHMiLCJzaG91bGRIaWRlU2luZ2xlT3B0aW9uU2VsZWN0aW9uIiwiY2xhbXBWYXJpYXRpb25Db2x1bW5zIiwidmFyaWF0aW9uTGF5b3V0U3BhbiIsImpzeCIsIl9qc3giLCJnZXRTZWxlY3RlZE9wdGlvbklkcyIsInZhcmlhdGlvbnMiLCJpZHMiLCJTZXQiLCJfaXRlcmF0b3IiLCJfc3RlcCIsInZhcmlhdGlvbiIsInNwbGl0IiwiaWQiLCJwYXJzZWQiLCJwYXJzZUludCIsInRyaW0iLCJpc05hTiIsImFkZCIsImVyciIsImFzTGF5b3V0U3BhbiIsInVuZGVmaW5lZCIsImlzRmluaXRlIiwibGF5b3V0U3BhbkZvclZhcmlhdGlvbiIsInByb2R1Y3QiLCJfdmFyaWF0aW9uJHZhcmlhdGlvbkYiLCJfdmFyaWF0aW9uJHZhcmlhdGlvbkYyIiwiZGlyZWN0IiwidmFyaWF0aW9uRmllbGQiLCJsYXlvdXRTcGFuIiwiZmllbGRzIiwiY29uY2F0IiwiaW5kZXBlbmRlbnRWYXJpYXRpb25GaWVsZHMiLCJncm91cFZhcmlhdGlvbkZpZWxkcyIsImZpZWxkIiwiZmluZCIsIml0ZW0iLCJpc0R5bmFtaWNWYXJpYXRpb25WaXNpYmxlIiwic2VsZWN0ZWRPcHRpb25JZHMiLCJfdmFyaWF0aW9uJHZhcmlhdGlvbkYzIiwic2VsZWN0ZWRCeSIsInNvbWUiLCJvcHQiLCJoYXMiLCJWYXJpYXRpb25zIiwiX3JlZiIsImNvbnRhaW5lckNsYXNzIiwiY29sdW1ucyIsImRpc2FibGVkIiwiX3JlZiRuYW1lIiwiX3JlZiRrZXlOYW1lIiwia2V5TmFtZSIsIl91c2VNZXJjaGlGb3JtQ29udGV4dCIsImNvbnRyb2wiLCJob29rRm9ybSIsInByaWNpbmdSdWxlcyIsIndhdGNoIiwiX3VzZUZpZWxkQXJyYXkiLCJncm91cEluZGV4IiwiaGFzR3JvdXBzIiwid2F0Y2hlZFF1YW50aXR5Iiwid2F0Y2hlZEdyb3VwcyIsInF1YW50aXR5IiwiZ3JvdXBRdWFudGl0eSIsImdyb3VwcyIsImpvYlF1YW50aXR5IiwiY3VycmVudFZhcmlhdGlvbnMiLCJpbmRlcGVuZGVudFZhcmlhdGlvbnMiLCJjb2x1bW5Db3VudCIsImluZGVwZW5kZW50VmFyaWF0aW9uQ29sdW1ucyIsImdyb3VwVmFyaWF0aW9uQ29sdW1ucyIsImdyaWRTdHlsZSIsImRpc3BsYXkiLCJjbGFzc05hbWUiLCJzdHlsZSIsImNoaWxkcmVuIiwibWFwIiwiZmllbGRJdGVtIiwiaW5kZXgiLCJfY3VycmVudCR2YWx1ZSIsIl9jdXJyZW50JHZhcmlhdGlvbkZpbCIsIl9jdXJyZW50JG9uY2VPZmZDb3N0IiwiX2N1cnJlbnQkdW5pdENvc3QiLCJfY3VycmVudCRjb3N0IiwiX2N1cnJlbnQkc2VsZWN0YWJsZU9wIiwiX2ZpZWxkSXRlbSR2YXJpYXRpb25GIiwiY3VycmVudCIsInZhcmlhdGlvbkZpbGVzIiwib25jZU9mZkNvc3QiLCJ1bml0Q29zdCIsImNvc3QiLCJzZWxlY3RhYmxlT3B0aW9ucyIsInByaWNlZFZhcmlhdGlvbiIsImhpZGVTZWxlY3Rpb24iLCJzcGFuIiwiaGlkZGVuIiwiZ3JpZENvbHVtbiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL1ZhcmlhdGlvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBEeW5hbWljVmFyaWF0aW9uSW5wdXQgZnJvbSAnLi9EeW5hbWljVmFyaWF0aW9uSW5wdXQnO1xuaW1wb3J0IHsgdXNlRmllbGRBcnJheSwgdXNlV2F0Y2ggfSBmcm9tICdyZWFjdC1ob29rLWZvcm0nO1xuaW1wb3J0IHsgdXNlTWVyY2hpRm9ybUNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0L01lcmNoaVByb2R1Y3RGb3JtUHJvdmlkZXInO1xuaW1wb3J0IHsgcHJvZHVjdEhhc0dyb3VwcyB9IGZyb20gJy4uL3V0aWxzL3Byb2R1Y3RzJztcbmltcG9ydCB7XG4gIGRpc3BsYXlRdWFudGl0eSxcbiAgZ3JvdXBJbmRleEZyb21WYXJpYXRpb25OYW1lLFxuICB3aXRoUXVhbnRpdHlBZGp1c3RlZERpc3BsYXlDb3N0cyxcbn0gZnJvbSAnLi4vdXRpbHMvcXVhbnRpdHlBZGp1c3RlZENvc3RzJztcbmltcG9ydCB7IHNob3VsZEhpZGVTaW5nbGVPcHRpb25TZWxlY3Rpb24gfSBmcm9tICcuLi91dGlscy9zaW5nbGVPcHRpb25WYXJpYXRpb24nO1xuaW1wb3J0IHtcbiAgY2xhbXBWYXJpYXRpb25Db2x1bW5zLFxuICB2YXJpYXRpb25MYXlvdXRTcGFuLFxufSBmcm9tICcuLi91dGlscy92YXJpYXRpb25MYXlvdXQnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBjb250YWluZXJDbGFzcz86IHN0cmluZztcbiAgY29sdW1ucz86IG51bWJlcjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBuYW1lPzogc3RyaW5nO1xuICBrZXlOYW1lPzogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBnZXRTZWxlY3RlZE9wdGlvbklkcyh2YXJpYXRpb25zOiBhbnlbXSk6IFNldDxudW1iZXI+IHtcbiAgY29uc3QgaWRzID0gbmV3IFNldDxudW1iZXI+KCk7XG4gIGZvciAoY29uc3QgdmFyaWF0aW9uIG9mIHZhcmlhdGlvbnMpIHtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSB2YXJpYXRpb247XG4gICAgaWYgKCF2YWx1ZSkgY29udGludWU7XG4gICAgU3RyaW5nKHZhbHVlKS5zcGxpdCgnLCcpLmZvckVhY2goKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlSW50KGlkLnRyaW0oKSwgMTApO1xuICAgICAgaWYgKCFpc05hTihwYXJzZWQpKSBpZHMuYWRkKHBhcnNlZCk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGlkcztcbn1cblxuZnVuY3Rpb24gYXNMYXlvdXRTcGFuKHZhbHVlOiB1bmtub3duKTogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gIGlmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09PSAnJykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgcGFyc2VkID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVlIDogTnVtYmVyKHZhbHVlKTtcbiAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShwYXJzZWQpID8gcGFyc2VkIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBsYXlvdXRTcGFuRm9yVmFyaWF0aW9uKFxuICB2YXJpYXRpb246IGFueSxcbiAgcHJvZHVjdDogYW55LFxuKTogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRpcmVjdCA9IGFzTGF5b3V0U3Bhbih2YXJpYXRpb24/LnZhcmlhdGlvbkZpZWxkPy5sYXlvdXRTcGFuKTtcbiAgaWYgKGRpcmVjdCAhPSBudWxsKSByZXR1cm4gZGlyZWN0O1xuICBjb25zdCBpZCA9IE51bWJlcih2YXJpYXRpb24/LnZhcmlhdGlvbkZpZWxkPy5pZCk7XG4gIGlmICghTnVtYmVyLmlzRmluaXRlKGlkKSkgcmV0dXJuIGRpcmVjdDtcbiAgY29uc3QgZmllbGRzID0gW1xuICAgIC4uLihwcm9kdWN0Py5pbmRlcGVuZGVudFZhcmlhdGlvbkZpZWxkcyB8fCBbXSksXG4gICAgLi4uKHByb2R1Y3Q/Lmdyb3VwVmFyaWF0aW9uRmllbGRzIHx8IFtdKSxcbiAgXTtcbiAgY29uc3QgZmllbGQgPSBmaWVsZHMuZmluZCgoaXRlbTogYW55KSA9PiBOdW1iZXIoaXRlbT8uaWQpID09PSBpZCk7XG4gIHJldHVybiBhc0xheW91dFNwYW4oZmllbGQ/LmxheW91dFNwYW4pO1xufVxuXG5mdW5jdGlvbiBpc0R5bmFtaWNWYXJpYXRpb25WaXNpYmxlKFxuICB2YXJpYXRpb246IGFueSxcbiAgc2VsZWN0ZWRPcHRpb25JZHM6IFNldDxudW1iZXI+LFxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IHNlbGVjdGVkQnk6IGFueVtdID0gdmFyaWF0aW9uPy52YXJpYXRpb25GaWVsZD8uc2VsZWN0ZWRCeTtcbiAgaWYgKCFzZWxlY3RlZEJ5IHx8IHNlbGVjdGVkQnkubGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuIHNlbGVjdGVkQnkuc29tZSgob3B0OiBhbnkpID0+IG9wdC5pZCAmJiBzZWxlY3RlZE9wdGlvbklkcy5oYXMob3B0LmlkKSk7XG59XG5cbmZ1bmN0aW9uIFZhcmlhdGlvbnMoe1xuICBjb250YWluZXJDbGFzcyxcbiAgY29sdW1ucyxcbiAgZGlzYWJsZWQsXG4gIG5hbWUgPSAndmFyaWF0aW9ucycsXG4gIGtleU5hbWUgPSAndmFyaWF0aW9uQXJyYXlGaWVsZElkJyxcbn06IFByb3BzKSB7XG4gIGNvbnN0IHsgY29udHJvbCwgaG9va0Zvcm0sIHByaWNpbmdSdWxlcywgcHJvZHVjdCB9ID0gdXNlTWVyY2hpRm9ybUNvbnRleHQoKTtcbiAgY29uc3QgeyB3YXRjaCB9ID0gaG9va0Zvcm07XG4gIGNvbnN0IHsgZmllbGRzIH0gPSB1c2VGaWVsZEFycmF5KHsgY29udHJvbCwga2V5TmFtZSwgbmFtZSB9KTtcbiAgY29uc3QgZ3JvdXBJbmRleCA9IGdyb3VwSW5kZXhGcm9tVmFyaWF0aW9uTmFtZShuYW1lKTtcbiAgY29uc3QgaGFzR3JvdXBzID0gcHJvZHVjdEhhc0dyb3Vwcyhwcm9kdWN0KTtcbiAgY29uc3Qgd2F0Y2hlZFF1YW50aXR5ID0gdXNlV2F0Y2goe1xuICAgIGNvbnRyb2wsXG4gICAgbmFtZTpcbiAgICAgIGdyb3VwSW5kZXggIT0gbnVsbFxuICAgICAgICA/IGB2YXJpYXRpb25zR3JvdXBzLiR7Z3JvdXBJbmRleH0ucXVhbnRpdHlgXG4gICAgICAgIDogJ3F1YW50aXR5JyxcbiAgICBkaXNhYmxlZDogZ3JvdXBJbmRleCA9PSBudWxsICYmIGhhc0dyb3VwcyxcbiAgfSk7XG4gIGNvbnN0IHdhdGNoZWRHcm91cHMgPSB1c2VXYXRjaCh7XG4gICAgY29udHJvbCxcbiAgICBuYW1lOiAndmFyaWF0aW9uc0dyb3VwcycsXG4gICAgZGlzYWJsZWQ6IGdyb3VwSW5kZXggIT0gbnVsbCB8fCAhaGFzR3JvdXBzLFxuICB9KTtcbiAgY29uc3QgcXVhbnRpdHkgPSBkaXNwbGF5UXVhbnRpdHkoe1xuICAgIGdyb3VwSW5kZXgsXG4gICAgZ3JvdXBRdWFudGl0eTogd2F0Y2hlZFF1YW50aXR5LFxuICAgIGdyb3Vwczogd2F0Y2hlZEdyb3VwcyxcbiAgICBqb2JRdWFudGl0eTogd2F0Y2hlZFF1YW50aXR5LFxuICAgIGhhc0dyb3VwcyxcbiAgfSk7XG4gIGNvbnN0IGN1cnJlbnRWYXJpYXRpb25zOiBhbnlbXSA9IHdhdGNoKG5hbWUpIHx8IFtdO1xuICAvLyBHcm91cCBmaWVsZHMgY2FuIGJlIGdhdGVkIGJ5IGluZGVwZW5kZW50IG9wdGlvbnMgKGFuZCB2aWNlIHZlcnNhIGlzIHJhcmUpLlxuICAvLyBNaXJyb3IgdGhlIHNlcnZlcjogZ3JvdXAgc2VsZWN0ZWRfb3B0aW9ucyA9IGdyb3VwLnZhcmlhdGlvbnMgKyBqb2IudmFyaWF0aW9ucy5cbiAgY29uc3QgaW5kZXBlbmRlbnRWYXJpYXRpb25zOiBhbnlbXSA9XG4gICAgbmFtZSA9PT0gJ3ZhcmlhdGlvbnMnID8gW10gOiB3YXRjaCgndmFyaWF0aW9ucycpIHx8IFtdO1xuICBjb25zdCBzZWxlY3RlZE9wdGlvbklkcyA9IGdldFNlbGVjdGVkT3B0aW9uSWRzKFtcbiAgICAuLi5pbmRlcGVuZGVudFZhcmlhdGlvbnMsXG4gICAgLi4uY3VycmVudFZhcmlhdGlvbnMsXG4gIF0pO1xuICBjb25zdCBjb2x1bW5Db3VudCA9IGNsYW1wVmFyaWF0aW9uQ29sdW1ucyhcbiAgICBjb2x1bW5zID8/XG4gICAgICAobmFtZSA9PT0gJ3ZhcmlhdGlvbnMnXG4gICAgICAgID8gcHJvZHVjdD8uaW5kZXBlbmRlbnRWYXJpYXRpb25Db2x1bW5zXG4gICAgICAgIDogcHJvZHVjdD8uZ3JvdXBWYXJpYXRpb25Db2x1bW5zKSxcbiAgKTtcbiAgaWYgKCFmaWVsZHMubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgLy8gT25lIGNvbHVtbiBrZWVwcyB0aGUgZmllbGRzIGluIHRoZSBwYXJlbnQgc3RhY2suIEEgZ3JpZCB3cmFwcGVyIHdvdWxkXG4gIC8vIHN0aWxsIHRha2UgYSBmbGV4IHNsb3Qgd2hlbiBldmVyeSBmaWVsZCBpcyBoaWRkZW4uXG4gIGNvbnN0IGdyaWRTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IGNvbHVtbkNvdW50ID4gMVxuICAgID8geyBbJy0tbWVyY2hpLXZhcmlhdGlvbi1jb2x1bW5zJyBhcyBzdHJpbmddOiBTdHJpbmcoY29sdW1uQ291bnQpIH1cbiAgICA6IHsgZGlzcGxheTogJ2NvbnRlbnRzJyB9O1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT1cIm1lcmNoaS1lbWJlZC1mb3JtX3ZhcmlhdGlvbi1ncmlkXCJcbiAgICAgIHN0eWxlPXtncmlkU3R5bGV9XG4gICAgPlxuICAgICAge2ZpZWxkcy5tYXAoKGZpZWxkSXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBjdXJyZW50VmFyaWF0aW9uc1tpbmRleF07XG4gICAgICAgIC8vIEZpZWxkLWFycmF5IGl0ZW1zIGFyZSB0aGUgc291cmNlIG9mIHRydXRoIGZvciB2YXJpYXRpb25GaWVsZCAvXG4gICAgICAgIC8vIHNlbGVjdGFibGVPcHRpb25zLiBXYXRjaGVkIHZhbHVlcyBjYW4gb21pdCB0aG9zZSBhZnRlciBhIHZhbHVlLW9ubHlcbiAgICAgICAgLy8gdXBkYXRlOyBuZXZlciBsZXQgdGhhdCBzdHJpcCBtZXRhZGF0YSBvciB0aGUgaW5wdXQgdHJlZSBjcmFzaGVzIGFuZFxuICAgICAgICAvLyB0aGUgZm9ybSBjb2xsYXBzZXMuXG4gICAgICAgIGNvbnN0IHZhcmlhdGlvbiA9IHtcbiAgICAgICAgICAuLi5maWVsZEl0ZW0sXG4gICAgICAgICAgdmFsdWU6IGN1cnJlbnQ/LnZhbHVlID8/IGZpZWxkSXRlbS52YWx1ZSxcbiAgICAgICAgICB2YXJpYXRpb25GaWxlczogY3VycmVudD8udmFyaWF0aW9uRmlsZXMgPz8gZmllbGRJdGVtLnZhcmlhdGlvbkZpbGVzLFxuICAgICAgICAgIG9uY2VPZmZDb3N0OiBjdXJyZW50Py5vbmNlT2ZmQ29zdCA/PyBmaWVsZEl0ZW0ub25jZU9mZkNvc3QsXG4gICAgICAgICAgdW5pdENvc3Q6IGN1cnJlbnQ/LnVuaXRDb3N0ID8/IGZpZWxkSXRlbS51bml0Q29zdCxcbiAgICAgICAgICBjb3N0OiBjdXJyZW50Py5jb3N0ID8/IGZpZWxkSXRlbS5jb3N0LFxuICAgICAgICAgIHNlbGVjdGFibGVPcHRpb25zOlxuICAgICAgICAgICAgY3VycmVudD8uc2VsZWN0YWJsZU9wdGlvbnMgPz8gZmllbGRJdGVtLnNlbGVjdGFibGVPcHRpb25zLFxuICAgICAgICAgIHZhcmlhdGlvbkZpZWxkOiBmaWVsZEl0ZW0udmFyaWF0aW9uRmllbGQgPz8gY3VycmVudD8udmFyaWF0aW9uRmllbGQsXG4gICAgICAgIH07XG4gICAgICAgIGlmICghaXNEeW5hbWljVmFyaWF0aW9uVmlzaWJsZSh2YXJpYXRpb24sIHNlbGVjdGVkT3B0aW9uSWRzKSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByaWNlZFZhcmlhdGlvbiA9IHdpdGhRdWFudGl0eUFkanVzdGVkRGlzcGxheUNvc3RzKFxuICAgICAgICAgIHZhcmlhdGlvbixcbiAgICAgICAgICBwcmljaW5nUnVsZXMsXG4gICAgICAgICAgcXVhbnRpdHlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaGlkZVNlbGVjdGlvbiA9IHNob3VsZEhpZGVTaW5nbGVPcHRpb25TZWxlY3Rpb24ocHJpY2VkVmFyaWF0aW9uKTtcbiAgICAgICAgY29uc3Qgc3BhbiA9IHZhcmlhdGlvbkxheW91dFNwYW4oXG4gICAgICAgICAgbGF5b3V0U3BhbkZvclZhcmlhdGlvbihwcmljZWRWYXJpYXRpb24sIHByb2R1Y3QpLFxuICAgICAgICAgIGNvbHVtbkNvdW50LFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxmaWVsZHNldFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtoaWRlU2VsZWN0aW9uID8gdW5kZWZpbmVkIDogY29udGFpbmVyQ2xhc3N9XG4gICAgICAgICAgICBrZXk9e2ZpZWxkSXRlbVtrZXlOYW1lXX1cbiAgICAgICAgICAgIG5hbWU9e2Ake25hbWV9WyR7aW5kZXh9XWB9XG4gICAgICAgICAgICBoaWRkZW49e2hpZGVTZWxlY3Rpb259XG4gICAgICAgICAgICBzdHlsZT17aGlkZVNlbGVjdGlvbiA/IHVuZGVmaW5lZCA6IHsgZ3JpZENvbHVtbjogYHNwYW4gJHtzcGFufWAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8RHluYW1pY1ZhcmlhdGlvbklucHV0XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICB2YXJpYXRpb249e3ByaWNlZFZhcmlhdGlvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgKTtcbiAgICAgIH0pfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBWYXJpYXRpb25zO1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQUFDLFNBQUFBLFFBQUFDLENBQUEsc0NBQUFELE9BQUEsd0JBQUFFLE1BQUEsdUJBQUFBLE1BQUEsQ0FBQUMsUUFBQSxhQUFBRixDQUFBLGtCQUFBQSxDQUFBLGdCQUFBQSxDQUFBLFdBQUFBLENBQUEseUJBQUFDLE1BQUEsSUFBQUQsQ0FBQSxDQUFBRyxXQUFBLEtBQUFGLE1BQUEsSUFBQUQsQ0FBQSxLQUFBQyxNQUFBLENBQUFHLFNBQUEscUJBQUFKLENBQUEsS0FBQUQsT0FBQSxDQUFBQyxDQUFBO0FBQUEsU0FBQUssUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBWCxD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
|
package/lib/styles/globals.css
CHANGED
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
background: #f2f4fb;
|
|
454
454
|
border-top: 1px solid white;
|
|
455
455
|
border-left: 1px solid white;
|
|
456
|
-
margin: 0
|
|
456
|
+
margin: 0 !important;
|
|
457
457
|
}
|
|
458
458
|
.merchi-embed-form {
|
|
459
459
|
/* product groups */
|
|
@@ -1740,5 +1740,14 @@
|
|
|
1740
1740
|
flex: 1 1 calc(50% - 0.4rem);
|
|
1741
1741
|
}
|
|
1742
1742
|
}
|
|
1743
|
+
.animate_spin {
|
|
1744
|
+
animation: merchi-product-form-spin 0.8s linear infinite;
|
|
1745
|
+
}
|
|
1746
|
+
|
|
1747
|
+
@keyframes merchi-product-form-spin {
|
|
1748
|
+
to {
|
|
1749
|
+
transform: rotate(360deg);
|
|
1750
|
+
}
|
|
1751
|
+
}
|
|
1743
1752
|
|
|
1744
1753
|
/*# sourceMappingURL=globals.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../src/styles/globals.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAGC;AAEC;;AAEE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAbL;AAiBC;;AACA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EAZF;IAaI;;EAEA;IACE;;;AAKN;AAAA;EAGE;EACA;EACA;EACA;;AApDH;AAuDC;;AACA;EACE;;AAEA;EAHF;IAII;;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAzEL;AA6EC;;AAKI;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAvGL;AA2GC;;AAEE;EACE;EACA;;AA/GL;AAmHC;;AAEE;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAtIL;AA0IC;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAtMP;AA2MC;;AAEE;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAEA;EAJF;IAKI;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAnQP;AAwQC;;AAEE;EACE;EACA;EACA;;AAEA;EALF;IAMI;;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;AArUP;AA0UC;;AAEE;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAIF;EACE;;AAIF;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAtcL;AA0cC;;AAEE;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AA1eL;AA+eC;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAvgBH;AA0gBC;;AAEE;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EANF;IAOI;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAEA;EAHF;IAII;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;;AAplBH;AAulBC;;AAIE;EACE;EACA;EACA;;;AAKN;AAAA;AAAA;AAIA;AACA;EACE;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;;AAKN;AAEA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAKF;EAEE;;AAGF;EAEE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;EAEE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;AAAA;IAEE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;;;AAIJ;EACE;IACE","file":"globals.css"}
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../src/styles/globals.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAGC;AAEC;;AAEE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAbL;AAiBC;;AACA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EAZF;IAaI;;EAEA;IACE;;;AAKN;AAAA;EAGE;EACA;EACA;EACA;;AApDH;AAuDC;;AACA;EACE;;AAEA;EAHF;IAII;;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAzEL;AA6EC;;AAKI;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAvGL;AA2GC;;AAEE;EACE;EACA;;AA/GL;AAmHC;;AAEE;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAtIL;AA0IC;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAtMP;AA2MC;;AAEE;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAEA;EAJF;IAKI;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAnQP;AAwQC;;AAEE;EACE;EACA;EACA;;AAEA;EALF;IAMI;;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;AArUP;AA0UC;;AAEE;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAIF;EACE;;AAIF;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAtcL;AA0cC;;AAEE;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AA1eL;AA+eC;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAvgBH;AA0gBC;;AAEE;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EANF;IAOI;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAEA;EAHF;IAII;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;;AAplBH;AAulBC;;AAIE;EACE;EACA;EACA;;;AAKN;AAAA;AAAA;AAIA;AACA;EACE;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;;AAKN;AAEA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAKF;EAEE;;AAGF;EAEE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;EAEE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;AAAA;IAEE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;;;AAIJ;EACE;IACE;;;AAIJ;EACE;;;AAGF;EACE;IACE","file":"globals.css"}
|
package/lib/styles/globals.scss
CHANGED
|
@@ -520,7 +520,7 @@
|
|
|
520
520
|
background: #f2f4fb;
|
|
521
521
|
border-top: 1px solid white;
|
|
522
522
|
border-left: 1px solid white;
|
|
523
|
-
margin: 0
|
|
523
|
+
margin: 0 !important;
|
|
524
524
|
}
|
|
525
525
|
|
|
526
526
|
/* product groups */
|
|
@@ -1852,3 +1852,13 @@
|
|
|
1852
1852
|
flex: 1 1 calc(50% - 0.4rem);
|
|
1853
1853
|
}
|
|
1854
1854
|
}
|
|
1855
|
+
|
|
1856
|
+
.animate_spin {
|
|
1857
|
+
animation: merchi-product-form-spin 0.8s linear infinite;
|
|
1858
|
+
}
|
|
1859
|
+
|
|
1860
|
+
@keyframes merchi-product-form-spin {
|
|
1861
|
+
to {
|
|
1862
|
+
transform: rotate(360deg);
|
|
1863
|
+
}
|
|
1864
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quantity-adjusted once-off and per-unit costs for select options and field labels.
|
|
3
|
+
*
|
|
4
|
+
* The server sets these in Variations.generate_variation_option by pricing each
|
|
5
|
+
* option with get_variation_cost([quantity]) and get_variation_unit_cost([quantity]).
|
|
6
|
+
* One quantity means both restricted and unrestricted discounts use that quantity.
|
|
7
|
+
* Independent fields use the job quantity (the sum of the groups). A group field
|
|
8
|
+
* uses that group's quantity.
|
|
9
|
+
*
|
|
10
|
+
* The discount step matches @merchi/sdk pricing applyDiscount / variationUnitCosts.
|
|
11
|
+
*/
|
|
12
|
+
interface DiscountTier {
|
|
13
|
+
lowerLimit: number;
|
|
14
|
+
amount: number;
|
|
15
|
+
}
|
|
16
|
+
interface DiscountGroup {
|
|
17
|
+
discounts?: DiscountTier[];
|
|
18
|
+
}
|
|
19
|
+
interface CostSource {
|
|
20
|
+
variationCost?: number;
|
|
21
|
+
variationUnitCost?: number;
|
|
22
|
+
variationCostDiscountGroup?: DiscountGroup | null;
|
|
23
|
+
variationUnitCostDiscountGroup?: DiscountGroup | null;
|
|
24
|
+
}
|
|
25
|
+
export declare function costsAtQuantity(source: CostSource, quantity: number): {
|
|
26
|
+
onceOffCost: number;
|
|
27
|
+
unitCost: number;
|
|
28
|
+
};
|
|
29
|
+
export declare function groupIndexFromVariationName(name: string): number | null;
|
|
30
|
+
export declare function displayQuantity(options: {
|
|
31
|
+
groupIndex: number | null;
|
|
32
|
+
groupQuantity: unknown;
|
|
33
|
+
groups?: Array<{
|
|
34
|
+
quantity?: unknown;
|
|
35
|
+
}> | null;
|
|
36
|
+
jobQuantity: unknown;
|
|
37
|
+
hasGroups: boolean;
|
|
38
|
+
}): number;
|
|
39
|
+
/** Replace stale base rates on a variation with the costs for `quantity`. */
|
|
40
|
+
export declare function withQuantityAdjustedDisplayCosts(variation: any, rules: any, quantity: number): any;
|
|
41
|
+
export {};
|
|
@@ -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 _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
8
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
+
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; } }
|
|
10
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
11
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
12
|
+
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; }
|
|
13
|
+
import { FieldType } from './types';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Quantity-adjusted once-off and per-unit costs for select options and field labels.
|
|
17
|
+
*
|
|
18
|
+
* The server sets these in Variations.generate_variation_option by pricing each
|
|
19
|
+
* option with get_variation_cost([quantity]) and get_variation_unit_cost([quantity]).
|
|
20
|
+
* One quantity means both restricted and unrestricted discounts use that quantity.
|
|
21
|
+
* Independent fields use the job quantity (the sum of the groups). A group field
|
|
22
|
+
* uses that group's quantity.
|
|
23
|
+
*
|
|
24
|
+
* The discount step matches @merchi/sdk pricing applyDiscount / variationUnitCosts.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
function roundHalfEven(value, dp) {
|
|
28
|
+
if (!Number.isFinite(value)) return value;
|
|
29
|
+
var factor = Math.pow(10, dp);
|
|
30
|
+
var scaled = value * factor;
|
|
31
|
+
var floor = Math.floor(scaled);
|
|
32
|
+
var diff = scaled - floor;
|
|
33
|
+
var EPS = 1e-9;
|
|
34
|
+
var rounded;
|
|
35
|
+
if (Math.abs(diff - 0.5) < EPS) {
|
|
36
|
+
rounded = floor % 2 === 0 ? floor : floor + 1;
|
|
37
|
+
} else {
|
|
38
|
+
rounded = Math.round(scaled);
|
|
39
|
+
}
|
|
40
|
+
return rounded / factor;
|
|
41
|
+
}
|
|
42
|
+
function applyDiscount(price, qty, group) {
|
|
43
|
+
var tiers = (group === null || group === void 0 ? void 0 : group.discounts) || [];
|
|
44
|
+
if (!tiers.length) return roundHalfEven(price, 3);
|
|
45
|
+
var applicable = tiers.filter(function (tier) {
|
|
46
|
+
return tier.lowerLimit <= qty;
|
|
47
|
+
}).sort(function (a, b) {
|
|
48
|
+
return b.lowerLimit - a.lowerLimit;
|
|
49
|
+
});
|
|
50
|
+
var amount = applicable.length ? applicable[0].amount : 0;
|
|
51
|
+
return roundHalfEven(price * (1 - amount / 100), 3);
|
|
52
|
+
}
|
|
53
|
+
export function costsAtQuantity(source, quantity) {
|
|
54
|
+
var qty = Number(quantity);
|
|
55
|
+
var safeQty = Number.isFinite(qty) ? qty : 0;
|
|
56
|
+
var setupBase = Number(source.variationCost);
|
|
57
|
+
var unitBase = Number(source.variationUnitCost);
|
|
58
|
+
var onceOffBase = Number.isFinite(setupBase) ? setupBase : 0;
|
|
59
|
+
var unitStart = Number.isFinite(unitBase) ? unitBase : 0;
|
|
60
|
+
var onceOffCost = source.variationCostDiscountGroup ? applyDiscount(onceOffBase, safeQty, source.variationCostDiscountGroup) : roundHalfEven(onceOffBase, 3);
|
|
61
|
+
var unitCost = source.variationUnitCostDiscountGroup ? roundHalfEven(applyDiscount(unitStart, safeQty, source.variationUnitCostDiscountGroup), 3) : roundHalfEven(unitStart, 3);
|
|
62
|
+
return {
|
|
63
|
+
onceOffCost: onceOffCost,
|
|
64
|
+
unitCost: unitCost
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function sameId(left, right) {
|
|
68
|
+
var a = Number(left);
|
|
69
|
+
var b = Number(right);
|
|
70
|
+
return Number.isFinite(a) && a === b;
|
|
71
|
+
}
|
|
72
|
+
function findPricingField(rules, fieldId) {
|
|
73
|
+
var fields = [].concat(_toConsumableArray((rules === null || rules === void 0 ? void 0 : rules.fields) || []), _toConsumableArray((rules === null || rules === void 0 ? void 0 : rules.groupFields) || []));
|
|
74
|
+
return fields.find(function (field) {
|
|
75
|
+
return sameId(field === null || field === void 0 ? void 0 : field.id, fieldId) || sameId(field === null || field === void 0 ? void 0 : field.originalId, fieldId);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function findPricingOption(field, optionId) {
|
|
79
|
+
return ((field === null || field === void 0 ? void 0 : field.options) || []).find(function (option) {
|
|
80
|
+
return sameId(option === null || option === void 0 ? void 0 : option.id, optionId) || sameId(option === null || option === void 0 ? void 0 : option.originalId, optionId);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
export function groupIndexFromVariationName(name) {
|
|
84
|
+
var match = /^variationsGroups\[(\d+)\]/.exec(name || '');
|
|
85
|
+
return match ? Number(match[1]) : null;
|
|
86
|
+
}
|
|
87
|
+
export function displayQuantity(options) {
|
|
88
|
+
var toQty = function toQty(value) {
|
|
89
|
+
var n = Number(value);
|
|
90
|
+
return Number.isFinite(n) ? n : 0;
|
|
91
|
+
};
|
|
92
|
+
if (options.groupIndex != null) return toQty(options.groupQuantity);
|
|
93
|
+
if (options.hasGroups) {
|
|
94
|
+
return (options.groups || []).reduce(function (sum, group) {
|
|
95
|
+
return sum + toQty(group === null || group === void 0 ? void 0 : group.quantity);
|
|
96
|
+
}, 0);
|
|
97
|
+
}
|
|
98
|
+
return toQty(options.jobQuantity);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/** Replace stale base rates on a variation with the costs for `quantity`. */
|
|
102
|
+
export function withQuantityAdjustedDisplayCosts(variation, rules, quantity) {
|
|
103
|
+
var _variation$variationF, _field$fieldType, _variation$variationF2;
|
|
104
|
+
if (!rules || rules.unsupported || !variation) return variation;
|
|
105
|
+
var field = findPricingField(rules, variation === null || variation === void 0 || (_variation$variationF = variation.variationField) === null || _variation$variationF === void 0 ? void 0 : _variation$variationF.id);
|
|
106
|
+
if (!field) return variation;
|
|
107
|
+
var fieldType = Number((_field$fieldType = field.fieldType) !== null && _field$fieldType !== void 0 ? _field$fieldType : variation === null || variation === void 0 || (_variation$variationF2 = variation.variationField) === null || _variation$variationF2 === void 0 ? void 0 : _variation$variationF2.fieldType);
|
|
108
|
+
if (fieldType === FieldType.AREA) return variation;
|
|
109
|
+
if (field.isSelectable && Array.isArray(variation.selectableOptions) && variation.selectableOptions.length) {
|
|
110
|
+
var changed = false;
|
|
111
|
+
var selectableOptions = variation.selectableOptions.map(function (option) {
|
|
112
|
+
var _option$optionId;
|
|
113
|
+
var pricingOption = findPricingOption(field, (_option$optionId = option === null || option === void 0 ? void 0 : option.optionId) !== null && _option$optionId !== void 0 ? _option$optionId : option === null || option === void 0 ? void 0 : option.id);
|
|
114
|
+
if (!pricingOption) return option;
|
|
115
|
+
var costs = costsAtQuantity(pricingOption, quantity);
|
|
116
|
+
if (Number(option.onceOffCost) === costs.onceOffCost && Number(option.unitCost) === costs.unitCost) {
|
|
117
|
+
return option;
|
|
118
|
+
}
|
|
119
|
+
changed = true;
|
|
120
|
+
return _objectSpread(_objectSpread({}, option), {}, {
|
|
121
|
+
onceOffCost: costs.onceOffCost,
|
|
122
|
+
unitCost: costs.unitCost,
|
|
123
|
+
currency: option.currency || rules.currency
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
return changed ? _objectSpread(_objectSpread({}, variation), {}, {
|
|
127
|
+
selectableOptions: selectableOptions
|
|
128
|
+
}) : variation;
|
|
129
|
+
}
|
|
130
|
+
if (field.isSelectable) return variation;
|
|
131
|
+
var costs = costsAtQuantity(field, quantity);
|
|
132
|
+
if (Number(variation.onceOffCost) === costs.onceOffCost && Number(variation.unitCost) === costs.unitCost) {
|
|
133
|
+
return variation;
|
|
134
|
+
}
|
|
135
|
+
return _objectSpread(_objectSpread({}, variation), {}, {
|
|
136
|
+
onceOffCost: costs.onceOffCost,
|
|
137
|
+
unitCost: costs.unitCost,
|
|
138
|
+
currency: variation.currency || rules.currency
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWVsZFR5cGUiLCJyb3VuZEhhbGZFdmVuIiwidmFsdWUiLCJkcCIsIk51bWJlciIsImlzRmluaXRlIiwiZmFjdG9yIiwiTWF0aCIsInBvdyIsInNjYWxlZCIsImZsb29yIiwiZGlmZiIsIkVQUyIsInJvdW5kZWQiLCJhYnMiLCJyb3VuZCIsImFwcGx5RGlzY291bnQiLCJwcmljZSIsInF0eSIsImdyb3VwIiwidGllcnMiLCJkaXNjb3VudHMiLCJsZW5ndGgiLCJhcHBsaWNhYmxlIiwiZmlsdGVyIiwidGllciIsImxvd2VyTGltaXQiLCJzb3J0IiwiYSIsImIiLCJhbW91bnQiLCJjb3N0c0F0UXVhbnRpdHkiLCJzb3VyY2UiLCJxdWFudGl0eSIsInNhZmVRdHkiLCJzZXR1cEJhc2UiLCJ2YXJpYXRpb25Db3N0IiwidW5pdEJhc2UiLCJ2YXJpYXRpb25Vbml0Q29zdCIsIm9uY2VPZmZCYXNlIiwidW5pdFN0YXJ0Iiwib25jZU9mZkNvc3QiLCJ2YXJpYXRpb25Db3N0RGlzY291bnRHcm91cCIsInVuaXRDb3N0IiwidmFyaWF0aW9uVW5pdENvc3REaXNjb3VudEdyb3VwIiwic2FtZUlkIiwibGVmdCIsInJpZ2h0IiwiZmluZFByaWNpbmdGaWVsZCIsInJ1bGVzIiwiZmllbGRJZCIsImZpZWxkcyIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsImdyb3VwRmllbGRzIiwiZmluZCIsImZpZWxkIiwiaWQiLCJvcmlnaW5hbElkIiwiZmluZFByaWNpbmdPcHRpb24iLCJvcHRpb25JZCIsIm9wdGlvbnMiLCJvcHRpb24iLCJncm91cEluZGV4RnJvbVZhcmlhdGlvbk5hbWUiLCJuYW1lIiwibWF0Y2giLCJleGVjIiwiZGlzcGxheVF1YW50aXR5IiwidG9RdHkiLCJuIiwiZ3JvdXBJbmRleCIsImdyb3VwUXVhbnRpdHkiLCJoYXNHcm91cHMiLCJncm91cHMiLCJyZWR1Y2UiLCJzdW0iLCJqb2JRdWFudGl0eSIsIndpdGhRdWFudGl0eUFkanVzdGVkRGlzcGxheUNvc3RzIiwidmFyaWF0aW9uIiwiX3ZhcmlhdGlvbiR2YXJpYXRpb25GIiwiX2ZpZWxkJGZpZWxkVHlwZSIsIl92YXJpYXRpb24kdmFyaWF0aW9uRjIiLCJ1bnN1cHBvcnRlZCIsInZhcmlhdGlvbkZpZWxkIiwiZmllbGRUeXBlIiwiQVJFQSIsImlzU2VsZWN0YWJsZSIsIkFycmF5IiwiaXNBcnJheSIsInNlbGVjdGFibGVPcHRpb25zIiwiY2hhbmdlZCIsIm1hcCIsIl9vcHRpb24kb3B0aW9uSWQiLCJwcmljaW5nT3B0aW9uIiwiY29zdHMiLCJfb2JqZWN0U3ByZWFkIiwiY3VycmVuY3kiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvcXVhbnRpdHlBZGp1c3RlZENvc3RzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFF1YW50aXR5LWFkanVzdGVkIG9uY2Utb2ZmIGFuZCBwZXItdW5pdCBjb3N0cyBmb3Igc2VsZWN0IG9wdGlvbnMgYW5kIGZpZWxkIGxhYmVscy5cbiAqXG4gKiBUaGUgc2VydmVyIHNldHMgdGhlc2UgaW4gVmFyaWF0aW9ucy5nZW5lcmF0ZV92YXJpYXRpb25fb3B0aW9uIGJ5IHByaWNpbmcgZWFjaFxuICogb3B0aW9uIHdpdGggZ2V0X3ZhcmlhdGlvbl9jb3N0KFtxdWFudGl0eV0pIGFuZCBnZXRfdmFyaWF0aW9uX3VuaXRfY29zdChbcXVhbnRpdHldKS5cbiAqIE9uZSBxdWFudGl0eSBtZWFucyBib3RoIHJlc3RyaWN0ZWQgYW5kIHVucmVzdHJpY3RlZCBkaXNjb3VudHMgdXNlIHRoYXQgcXVhbnRpdHkuXG4gKiBJbmRlcGVuZGVudCBmaWVsZHMgdXNlIHRoZSBqb2IgcXVhbnRpdHkgKHRoZSBzdW0gb2YgdGhlIGdyb3VwcykuIEEgZ3JvdXAgZmllbGRcbiAqIHVzZXMgdGhhdCBncm91cCdzIHF1YW50aXR5LlxuICpcbiAqIFRoZSBkaXNjb3VudCBzdGVwIG1hdGNoZXMgQG1lcmNoaS9zZGsgcHJpY2luZyBhcHBseURpc2NvdW50IC8gdmFyaWF0aW9uVW5pdENvc3RzLlxuICovXG5cbmludGVyZmFjZSBEaXNjb3VudFRpZXIge1xuICBsb3dlckxpbWl0OiBudW1iZXI7XG4gIGFtb3VudDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgRGlzY291bnRHcm91cCB7XG4gIGRpc2NvdW50cz86IERpc2NvdW50VGllcltdO1xufVxuXG5pbnRlcmZhY2UgQ29zdFNvdXJjZSB7XG4gIHZhcmlhdGlvbkNvc3Q/OiBudW1iZXI7XG4gIHZhcmlhdGlvblVuaXRDb3N0PzogbnVtYmVyO1xuICB2YXJpYXRpb25Db3N0RGlzY291bnRHcm91cD86IERpc2NvdW50R3JvdXAgfCBudWxsO1xuICB2YXJpYXRpb25Vbml0Q29zdERpc2NvdW50R3JvdXA/OiBEaXNjb3VudEdyb3VwIHwgbnVsbDtcbn1cblxuZnVuY3Rpb24gcm91bmRIYWxmRXZlbih2YWx1ZTogbnVtYmVyLCBkcDogbnVtYmVyKTogbnVtYmVyIHtcbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodmFsdWUpKSByZXR1cm4gdmFsdWU7XG4gIGNvbnN0IGZhY3RvciA9IE1hdGgucG93KDEwLCBkcCk7XG4gIGNvbnN0IHNjYWxlZCA9IHZhbHVlICogZmFjdG9yO1xuICBjb25zdCBmbG9vciA9IE1hdGguZmxvb3Ioc2NhbGVkKTtcbiAgY29uc3QgZGlmZiA9IHNjYWxlZCAtIGZsb29yO1xuICBjb25zdCBFUFMgPSAxZS05O1xuICBsZXQgcm91bmRlZDogbnVtYmVyO1xuICBpZiAoTWF0aC5hYnMoZGlmZiAtIDAuNSkgPCBFUFMpIHtcbiAgICByb3VuZGVkID0gZmxvb3IgJSAyID09PSAwID8gZmxvb3IgOiBmbG9vciArIDE7XG4gIH0gZWxzZSB7XG4gICAgcm91bmRlZCA9IE1hdGgucm91bmQoc2NhbGVkKTtcbiAgfVxuICByZXR1cm4gcm91bmRlZCAvIGZhY3Rvcjtcbn1cblxuZnVuY3Rpb24gYXBwbHlEaXNjb3VudChcbiAgcHJpY2U6IG51bWJlcixcbiAgcXR5OiBudW1iZXIsXG4gIGdyb3VwOiBEaXNjb3VudEdyb3VwIHwgbnVsbCB8IHVuZGVmaW5lZFxuKTogbnVtYmVyIHtcbiAgY29uc3QgdGllcnMgPSBncm91cD8uZGlzY291bnRzIHx8IFtdO1xuICBpZiAoIXRpZXJzLmxlbmd0aCkgcmV0dXJuIHJvdW5kSGFsZkV2ZW4ocHJpY2UsIDMpO1xuICBjb25zdCBhcHBsaWNhYmxlID0gdGllcnNcbiAgICAuZmlsdGVyKCh0aWVyKSA9PiB0aWVyLmxvd2VyTGltaXQgPD0gcXR5KVxuICAgIC5zb3J0KChhLCBiKSA9PiBiLmxvd2VyTGltaXQgLSBhLmxvd2VyTGltaXQpO1xuICBjb25zdCBhbW91bnQgPSBhcHBsaWNhYmxlLmxlbmd0aCA/IGFwcGxpY2FibGVbMF0uYW1vdW50IDogMDtcbiAgcmV0dXJuIHJvdW5kSGFsZkV2ZW4ocHJpY2UgKiAoMSAtIGFtb3VudCAvIDEwMCksIDMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29zdHNBdFF1YW50aXR5KFxuICBzb3VyY2U6IENvc3RTb3VyY2UsXG4gIHF1YW50aXR5OiBudW1iZXJcbik6IHsgb25jZU9mZkNvc3Q6IG51bWJlcjsgdW5pdENvc3Q6IG51bWJlciB9IHtcbiAgY29uc3QgcXR5ID0gTnVtYmVyKHF1YW50aXR5KTtcbiAgY29uc3Qgc2FmZVF0eSA9IE51bWJlci5pc0Zpbml0ZShxdHkpID8gcXR5IDogMDtcbiAgY29uc3Qgc2V0dXBCYXNlID0gTnVtYmVyKHNvdXJjZS52YXJpYXRpb25Db3N0KTtcbiAgY29uc3QgdW5pdEJhc2UgPSBOdW1iZXIoc291cmNlLnZhcmlhdGlvblVuaXRDb3N0KTtcbiAgY29uc3Qgb25jZU9mZkJhc2UgPSBOdW1iZXIuaXNGaW5pdGUoc2V0dXBCYXNlKSA/IHNldHVwQmFzZSA6IDA7XG4gIGNvbnN0IHVuaXRTdGFydCA9IE51bWJlci5pc0Zpbml0ZSh1bml0QmFzZSkgPyB1bml0QmFzZSA6IDA7XG4gIGNvbnN0IG9uY2VPZmZDb3N0ID0gc291cmNlLnZhcmlhdGlvbkNvc3REaXNjb3VudEdyb3VwXG4gICAgPyBhcHBseURpc2NvdW50KG9uY2VPZmZCYXNlLCBzYWZlUXR5LCBzb3VyY2UudmFyaWF0aW9uQ29zdERpc2NvdW50R3JvdXApXG4gICAgOiByb3VuZEhhbGZFdmVuKG9uY2VPZmZCYXNlLCAzKTtcbiAgY29uc3QgdW5pdENvc3QgPSBzb3VyY2UudmFyaWF0aW9uVW5pdENvc3REaXNjb3VudEdyb3VwXG4gICAgPyByb3VuZEhhbGZFdmVuKFxuICAgICAgICBhcHBseURpc2NvdW50KHVuaXRTdGFydCwgc2FmZVF0eSwgc291cmNlLnZhcmlhdGlvblVuaXRDb3N0RGlzY291bnRHcm91cCksXG4gICAgICAgIDNcbiAgICAgIClcbiAgICA6IHJvdW5kSGFsZkV2ZW4odW5pdFN0YXJ0LCAzKTtcbiAgcmV0dXJuIHsgb25jZU9mZkNvc3QsIHVuaXRDb3N0IH07XG59XG5cbmZ1bmN0aW9uIHNhbWVJZChsZWZ0OiB1bmtub3duLCByaWdodDogdW5rbm93bik6IGJvb2xlYW4ge1xuICBjb25zdCBhID0gTnVtYmVyKGxlZnQpO1xuICBjb25zdCBiID0gTnVtYmVyKHJpZ2h0KTtcbiAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShhKSAmJiBhID09PSBiO1xufVxuXG5mdW5jdGlvbiBmaW5kUHJpY2luZ0ZpZWxkKHJ1bGVzOiBhbnksIGZpZWxkSWQ6IHVua25vd24pIHtcbiAgY29uc3QgZmllbGRzID0gWy4uLihydWxlcz8uZmllbGRzIHx8IFtdKSwgLi4uKHJ1bGVzPy5ncm91cEZpZWxkcyB8fCBbXSldO1xuICByZXR1cm4gZmllbGRzLmZpbmQoXG4gICAgKGZpZWxkOiBhbnkpID0+IHNhbWVJZChmaWVsZD8uaWQsIGZpZWxkSWQpIHx8IHNhbWVJZChmaWVsZD8ub3JpZ2luYWxJZCwgZmllbGRJZClcbiAgKTtcbn1cblxuZnVuY3Rpb24gZmluZFByaWNpbmdPcHRpb24oZmllbGQ6IGFueSwgb3B0aW9uSWQ6IHVua25vd24pIHtcbiAgcmV0dXJuIChmaWVsZD8ub3B0aW9ucyB8fCBbXSkuZmluZChcbiAgICAob3B0aW9uOiBhbnkpID0+XG4gICAgICBzYW1lSWQob3B0aW9uPy5pZCwgb3B0aW9uSWQpIHx8IHNhbWVJZChvcHRpb24/Lm9yaWdpbmFsSWQsIG9wdGlvbklkKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBJbmRleEZyb21WYXJpYXRpb25OYW1lKG5hbWU6IHN0cmluZyk6IG51bWJlciB8IG51bGwge1xuICBjb25zdCBtYXRjaCA9IC9edmFyaWF0aW9uc0dyb3Vwc1xcWyhcXGQrKVxcXS8uZXhlYyhuYW1lIHx8ICcnKTtcbiAgcmV0dXJuIG1hdGNoID8gTnVtYmVyKG1hdGNoWzFdKSA6IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwbGF5UXVhbnRpdHkob3B0aW9uczoge1xuICBncm91cEluZGV4OiBudW1iZXIgfCBudWxsO1xuICBncm91cFF1YW50aXR5OiB1bmtub3duO1xuICBncm91cHM/OiBBcnJheTx7IHF1YW50aXR5PzogdW5rbm93biB9PiB8IG51bGw7XG4gIGpvYlF1YW50aXR5OiB1bmtub3duO1xuICBoYXNHcm91cHM6IGJvb2xlYW47XG59KTogbnVtYmVyIHtcbiAgY29uc3QgdG9RdHkgPSAodmFsdWU6IHVua25vd24pID0+IHtcbiAgICBjb25zdCBuID0gTnVtYmVyKHZhbHVlKTtcbiAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKG4pID8gbiA6IDA7XG4gIH07XG4gIGlmIChvcHRpb25zLmdyb3VwSW5kZXggIT0gbnVsbCkgcmV0dXJuIHRvUXR5KG9wdGlvbnMuZ3JvdXBRdWFudGl0eSk7XG4gIGlmIChvcHRpb25zLmhhc0dyb3Vwcykge1xuICAgIHJldHVybiAob3B0aW9ucy5ncm91cHMgfHwgW10pLnJlZHVjZShcbiAgICAgIChzdW0sIGdyb3VwKSA9PiBzdW0gKyB0b1F0eShncm91cD8ucXVhbnRpdHkpLFxuICAgICAgMFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHRvUXR5KG9wdGlvbnMuam9iUXVhbnRpdHkpO1xufVxuXG4vKiogUmVwbGFjZSBzdGFsZSBiYXNlIHJhdGVzIG9uIGEgdmFyaWF0aW9uIHdpdGggdGhlIGNvc3RzIGZvciBgcXVhbnRpdHlgLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhRdWFudGl0eUFkanVzdGVkRGlzcGxheUNvc3RzKFxuICB2YXJpYXRpb246IGFueSxcbiAgcnVsZXM6IGFueSxcbiAgcXVhbnRpdHk6IG51bWJlclxuKSB7XG4gIGlmICghcnVsZXMgfHwgcnVsZXMudW5zdXBwb3J0ZWQgfHwgIXZhcmlhdGlvbikgcmV0dXJuIHZhcmlhdGlvbjtcbiAgY29uc3QgZmllbGQgPSBmaW5kUHJpY2luZ0ZpZWxkKHJ1bGVzLCB2YXJpYXRpb24/LnZhcmlhdGlvbkZpZWxkPy5pZCk7XG4gIGlmICghZmllbGQpIHJldHVybiB2YXJpYXRpb247XG4gIGNvbnN0IGZpZWxkVHlwZSA9IE51bWJlcihmaWVsZC5maWVsZFR5cGUgPz8gdmFyaWF0aW9uPy52YXJpYXRpb25GaWVsZD8uZmllbGRUeXBlKTtcbiAgaWYgKGZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkFSRUEpIHJldHVybiB2YXJpYXRpb247XG5cbiAgaWYgKFxuICAgIGZpZWxkLmlzU2VsZWN0YWJsZSAmJlxuICAgIEFycmF5LmlzQXJyYXkodmFyaWF0aW9uLnNlbGVjdGFibGVPcHRpb25zKSAmJlxuICAgIHZhcmlhdGlvbi5zZWxlY3RhYmxlT3B0aW9ucy5sZW5ndGhcbiAgKSB7XG4gICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICBjb25zdCBzZWxlY3RhYmxlT3B0aW9ucyA9IHZhcmlhdGlvbi5zZWxlY3RhYmxlT3B0aW9ucy5tYXAoKG9wdGlvbjogYW55KSA9PiB7XG4gICAgICBjb25zdCBwcmljaW5nT3B0aW9uID0gZmluZFByaWNpbmdPcHRpb24oZmllbGQsIG9wdGlvbj8ub3B0aW9uSWQgPz8gb3B0aW9uPy5pZCk7XG4gICAgICBpZiAoIXByaWNpbmdPcHRpb24pIHJldHVybiBvcHRpb247XG4gICAgICBjb25zdCBjb3N0cyA9IGNvc3RzQXRRdWFudGl0eShwcmljaW5nT3B0aW9uLCBxdWFudGl0eSk7XG4gICAgICBpZiAoXG4gICAgICAgIE51bWJlcihvcHRpb24ub25jZU9mZkNvc3QpID09PSBjb3N0cy5vbmNlT2ZmQ29zdCAmJlxuICAgICAgICBOdW1iZXIob3B0aW9uLnVuaXRDb3N0KSA9PT0gY29zdHMudW5pdENvc3RcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgICAgfVxuICAgICAgY2hhbmdlZCA9IHRydWU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIG9uY2VPZmZDb3N0OiBjb3N0cy5vbmNlT2ZmQ29zdCxcbiAgICAgICAgdW5pdENvc3Q6IGNvc3RzLnVuaXRDb3N0LFxuICAgICAgICBjdXJyZW5jeTogb3B0aW9uLmN1cnJlbmN5IHx8IHJ1bGVzLmN1cnJlbmN5LFxuICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gY2hhbmdlZCA/IHsgLi4udmFyaWF0aW9uLCBzZWxlY3RhYmxlT3B0aW9ucyB9IDogdmFyaWF0aW9uO1xuICB9XG5cbiAgaWYgKGZpZWxkLmlzU2VsZWN0YWJsZSkgcmV0dXJuIHZhcmlhdGlvbjtcbiAgY29uc3QgY29zdHMgPSBjb3N0c0F0UXVhbnRpdHkoZmllbGQsIHF1YW50aXR5KTtcbiAgaWYgKFxuICAgIE51bWJlcih2YXJpYXRpb24ub25jZU9mZkNvc3QpID09PSBjb3N0cy5vbmNlT2ZmQ29zdCAmJlxuICAgIE51bWJlcih2YXJpYXRpb24udW5pdENvc3QpID09PSBjb3N0cy51bml0Q29zdFxuICApIHtcbiAgICByZXR1cm4gdmFyaWF0aW9uO1xuICB9XG4gIHJldHVybiB7XG4gICAgLi4udmFyaWF0aW9uLFxuICAgIG9uY2VPZmZDb3N0OiBjb3N0cy5vbmNlT2ZmQ29zdCxcbiAgICB1bml0Q29zdDogY29zdHMudW5pdENvc3QsXG4gICAgY3VycmVuY3k6IHZhcmlhdGlvbi5jdXJyZW5jeSB8fCBydWxlcy5jdXJyZW5jeSxcbiAgfTtcbn1c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
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { costsAtQuantity, displayQuantity, groupIndexFromVariationName, withQuantityAdjustedDisplayCosts } from './quantityAdjustedCosts';
|
|
2
|
+
var smallDiscounts = {
|
|
3
|
+
discounts: [{
|
|
4
|
+
amount: 30.25,
|
|
5
|
+
lowerLimit: 20
|
|
6
|
+
}, {
|
|
7
|
+
amount: 33.61,
|
|
8
|
+
lowerLimit: 30
|
|
9
|
+
}, {
|
|
10
|
+
amount: 38.66,
|
|
11
|
+
lowerLimit: 40
|
|
12
|
+
}, {
|
|
13
|
+
amount: 43.7,
|
|
14
|
+
lowerLimit: 50
|
|
15
|
+
}, {
|
|
16
|
+
amount: 45.38,
|
|
17
|
+
lowerLimit: 60
|
|
18
|
+
}]
|
|
19
|
+
};
|
|
20
|
+
var mediumDiscounts = {
|
|
21
|
+
discounts: [{
|
|
22
|
+
amount: 8.33,
|
|
23
|
+
lowerLimit: 10
|
|
24
|
+
}, {
|
|
25
|
+
amount: 27.78,
|
|
26
|
+
lowerLimit: 20
|
|
27
|
+
}, {
|
|
28
|
+
amount: 31.25,
|
|
29
|
+
lowerLimit: 30
|
|
30
|
+
}, {
|
|
31
|
+
amount: 34.72,
|
|
32
|
+
lowerLimit: 40
|
|
33
|
+
}, {
|
|
34
|
+
amount: 38.19,
|
|
35
|
+
lowerLimit: 50
|
|
36
|
+
}, {
|
|
37
|
+
amount: 39.58,
|
|
38
|
+
lowerLimit: 60
|
|
39
|
+
}]
|
|
40
|
+
};
|
|
41
|
+
var embroideryRules = {
|
|
42
|
+
currency: 'AUD',
|
|
43
|
+
fields: [{
|
|
44
|
+
id: 399949,
|
|
45
|
+
fieldType: 2,
|
|
46
|
+
isSelectable: true,
|
|
47
|
+
variationCost: 0,
|
|
48
|
+
variationUnitCost: 0,
|
|
49
|
+
options: [{
|
|
50
|
+
id: 1133340,
|
|
51
|
+
variationCost: 40,
|
|
52
|
+
variationUnitCost: 8.92,
|
|
53
|
+
variationCostDiscountGroup: null,
|
|
54
|
+
variationUnitCostDiscountGroup: smallDiscounts
|
|
55
|
+
}, {
|
|
56
|
+
id: 1133341,
|
|
57
|
+
variationCost: 40,
|
|
58
|
+
variationUnitCost: 10.8,
|
|
59
|
+
variationCostDiscountGroup: null,
|
|
60
|
+
variationUnitCostDiscountGroup: mediumDiscounts
|
|
61
|
+
}]
|
|
62
|
+
}],
|
|
63
|
+
groupFields: []
|
|
64
|
+
};
|
|
65
|
+
test('applies the quantity tier to an option unit cost', function () {
|
|
66
|
+
expect(costsAtQuantity({
|
|
67
|
+
variationCost: 40,
|
|
68
|
+
variationUnitCost: 8.92,
|
|
69
|
+
variationUnitCostDiscountGroup: smallDiscounts
|
|
70
|
+
}, 50)).toEqual({
|
|
71
|
+
onceOffCost: 40,
|
|
72
|
+
unitCost: 5.022
|
|
73
|
+
});
|
|
74
|
+
expect(costsAtQuantity({
|
|
75
|
+
variationCost: 40,
|
|
76
|
+
variationUnitCost: 10.8,
|
|
77
|
+
variationUnitCostDiscountGroup: mediumDiscounts
|
|
78
|
+
}, 50)).toEqual({
|
|
79
|
+
onceOffCost: 40,
|
|
80
|
+
unitCost: 6.675
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
test('keeps the base unit cost below the first discount tier', function () {
|
|
84
|
+
expect(costsAtQuantity({
|
|
85
|
+
variationCost: 40,
|
|
86
|
+
variationUnitCost: 8.92,
|
|
87
|
+
variationUnitCostDiscountGroup: smallDiscounts
|
|
88
|
+
}, 1)).toEqual({
|
|
89
|
+
onceOffCost: 40,
|
|
90
|
+
unitCost: 8.92
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
test('rewrites select option costs used by labels', function () {
|
|
94
|
+
var variation = {
|
|
95
|
+
variationField: {
|
|
96
|
+
id: 399949,
|
|
97
|
+
fieldType: 2
|
|
98
|
+
},
|
|
99
|
+
selectableOptions: [{
|
|
100
|
+
optionId: 1133340,
|
|
101
|
+
value: 'Small (5 x 5cm)',
|
|
102
|
+
onceOffCost: 40,
|
|
103
|
+
unitCost: 8.92,
|
|
104
|
+
currency: 'AUD'
|
|
105
|
+
}, {
|
|
106
|
+
optionId: 1133341,
|
|
107
|
+
value: 'Medium (7.5 x 5cm)',
|
|
108
|
+
onceOffCost: 40,
|
|
109
|
+
unitCost: 10.8,
|
|
110
|
+
currency: 'AUD'
|
|
111
|
+
}]
|
|
112
|
+
};
|
|
113
|
+
var priced = withQuantityAdjustedDisplayCosts(variation, embroideryRules, 50);
|
|
114
|
+
expect(priced.selectableOptions.map(function (option) {
|
|
115
|
+
return option.unitCost;
|
|
116
|
+
})).toEqual([5.022, 6.675]);
|
|
117
|
+
expect(priced.selectableOptions[0].onceOffCost).toBe(40);
|
|
118
|
+
expect(priced.selectableOptions[0].value).toBe('Small (5 x 5cm)');
|
|
119
|
+
});
|
|
120
|
+
test('leaves options alone when pricing rules are missing', function () {
|
|
121
|
+
var variation = {
|
|
122
|
+
variationField: {
|
|
123
|
+
id: 399949
|
|
124
|
+
},
|
|
125
|
+
selectableOptions: [{
|
|
126
|
+
optionId: 1133340,
|
|
127
|
+
onceOffCost: 40,
|
|
128
|
+
unitCost: 8.92
|
|
129
|
+
}]
|
|
130
|
+
};
|
|
131
|
+
expect(withQuantityAdjustedDisplayCosts(variation, null, 50)).toBe(variation);
|
|
132
|
+
});
|
|
133
|
+
test('prices an independent field from the summed group quantity', function () {
|
|
134
|
+
expect(groupIndexFromVariationName('variations')).toBeNull();
|
|
135
|
+
expect(groupIndexFromVariationName('variationsGroups[1].variations')).toBe(1);
|
|
136
|
+
expect(displayQuantity({
|
|
137
|
+
groupIndex: null,
|
|
138
|
+
groupQuantity: 0,
|
|
139
|
+
groups: [{
|
|
140
|
+
quantity: 20
|
|
141
|
+
}, {
|
|
142
|
+
quantity: '30'
|
|
143
|
+
}],
|
|
144
|
+
jobQuantity: 1,
|
|
145
|
+
hasGroups: true
|
|
146
|
+
})).toBe(50);
|
|
147
|
+
expect(displayQuantity({
|
|
148
|
+
groupIndex: 1,
|
|
149
|
+
groupQuantity: '30',
|
|
150
|
+
groups: [{
|
|
151
|
+
quantity: 20
|
|
152
|
+
}, {
|
|
153
|
+
quantity: 30
|
|
154
|
+
}],
|
|
155
|
+
jobQuantity: 50,
|
|
156
|
+
hasGroups: true
|
|
157
|
+
})).toBe(30);
|
|
158
|
+
});
|
|
159
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3N0c0F0UXVhbnRpdHkiLCJkaXNwbGF5UXVhbnRpdHkiLCJncm91cEluZGV4RnJvbVZhcmlhdGlvbk5hbWUiLCJ3aXRoUXVhbnRpdHlBZGp1c3RlZERpc3BsYXlDb3N0cyIsInNtYWxsRGlzY291bnRzIiwiZGlzY291bnRzIiwiYW1vdW50IiwibG93ZXJMaW1pdCIsIm1lZGl1bURpc2NvdW50cyIsImVtYnJvaWRlcnlSdWxlcyIsImN1cnJlbmN5IiwiZmllbGRzIiwiaWQiLCJmaWVsZFR5cGUiLCJpc1NlbGVjdGFibGUiLCJ2YXJpYXRpb25Db3N0IiwidmFyaWF0aW9uVW5pdENvc3QiLCJvcHRpb25zIiwidmFyaWF0aW9uQ29zdERpc2NvdW50R3JvdXAiLCJ2YXJpYXRpb25Vbml0Q29zdERpc2NvdW50R3JvdXAiLCJncm91cEZpZWxkcyIsInRlc3QiLCJleHBlY3QiLCJ0b0VxdWFsIiwib25jZU9mZkNvc3QiLCJ1bml0Q29zdCIsInZhcmlhdGlvbiIsInZhcmlhdGlvbkZpZWxkIiwic2VsZWN0YWJsZU9wdGlvbnMiLCJvcHRpb25JZCIsInZhbHVlIiwicHJpY2VkIiwibWFwIiwib3B0aW9uIiwidG9CZSIsInRvQmVOdWxsIiwiZ3JvdXBJbmRleCIsImdyb3VwUXVhbnRpdHkiLCJncm91cHMiLCJxdWFudGl0eSIsImpvYlF1YW50aXR5IiwiaGFzR3JvdXBzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3F1YW50aXR5QWRqdXN0ZWRDb3N0cy50ZXN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNvc3RzQXRRdWFudGl0eSxcbiAgZGlzcGxheVF1YW50aXR5LFxuICBncm91cEluZGV4RnJvbVZhcmlhdGlvbk5hbWUsXG4gIHdpdGhRdWFudGl0eUFkanVzdGVkRGlzcGxheUNvc3RzLFxufSBmcm9tICcuL3F1YW50aXR5QWRqdXN0ZWRDb3N0cyc7XG5cbmNvbnN0IHNtYWxsRGlzY291bnRzID0ge1xuICBkaXNjb3VudHM6IFtcbiAgICB7IGFtb3VudDogMzAuMjUsIGxvd2VyTGltaXQ6IDIwIH0sXG4gICAgeyBhbW91bnQ6IDMzLjYxLCBsb3dlckxpbWl0OiAzMCB9LFxuICAgIHsgYW1vdW50OiAzOC42NiwgbG93ZXJMaW1pdDogNDAgfSxcbiAgICB7IGFtb3VudDogNDMuNywgbG93ZXJMaW1pdDogNTAgfSxcbiAgICB7IGFtb3VudDogNDUuMzgsIGxvd2VyTGltaXQ6IDYwIH0sXG4gIF0sXG59O1xuXG5jb25zdCBtZWRpdW1EaXNjb3VudHMgPSB7XG4gIGRpc2NvdW50czogW1xuICAgIHsgYW1vdW50OiA4LjMzLCBsb3dlckxpbWl0OiAxMCB9LFxuICAgIHsgYW1vdW50OiAyNy43OCwgbG93ZXJMaW1pdDogMjAgfSxcbiAgICB7IGFtb3VudDogMzEuMjUsIGxvd2VyTGltaXQ6IDMwIH0sXG4gICAgeyBhbW91bnQ6IDM0LjcyLCBsb3dlckxpbWl0OiA0MCB9LFxuICAgIHsgYW1vdW50OiAzOC4xOSwgbG93ZXJMaW1pdDogNTAgfSxcbiAgICB7IGFtb3VudDogMzkuNTgsIGxvd2VyTGltaXQ6IDYwIH0sXG4gIF0sXG59O1xuXG5jb25zdCBlbWJyb2lkZXJ5UnVsZXMgPSB7XG4gIGN1cnJlbmN5OiAnQVVEJyxcbiAgZmllbGRzOiBbXG4gICAge1xuICAgICAgaWQ6IDM5OTk0OSxcbiAgICAgIGZpZWxkVHlwZTogMixcbiAgICAgIGlzU2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgIHZhcmlhdGlvbkNvc3Q6IDAsXG4gICAgICB2YXJpYXRpb25Vbml0Q29zdDogMCxcbiAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAxMTMzMzQwLFxuICAgICAgICAgIHZhcmlhdGlvbkNvc3Q6IDQwLFxuICAgICAgICAgIHZhcmlhdGlvblVuaXRDb3N0OiA4LjkyLFxuICAgICAgICAgIHZhcmlhdGlvbkNvc3REaXNjb3VudEdyb3VwOiBudWxsLFxuICAgICAgICAgIHZhcmlhdGlvblVuaXRDb3N0RGlzY291bnRHcm91cDogc21hbGxEaXNjb3VudHMsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogMTEzMzM0MSxcbiAgICAgICAgICB2YXJpYXRpb25Db3N0OiA0MCxcbiAgICAgICAgICB2YXJpYXRpb25Vbml0Q29zdDogMTAuOCxcbiAgICAgICAgICB2YXJpYXRpb25Db3N0RGlzY291bnRHcm91cDogbnVsbCxcbiAgICAgICAgICB2YXJpYXRpb25Vbml0Q29zdERpc2NvdW50R3JvdXA6IG1lZGl1bURpc2NvdW50cyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSxcbiAgZ3JvdXBGaWVsZHM6IFtdLFxufTtcblxudGVzdCgnYXBwbGllcyB0aGUgcXVhbnRpdHkgdGllciB0byBhbiBvcHRpb24gdW5pdCBjb3N0JywgKCkgPT4ge1xuICBleHBlY3QoXG4gICAgY29zdHNBdFF1YW50aXR5KFxuICAgICAge1xuICAgICAgICB2YXJpYXRpb25Db3N0OiA0MCxcbiAgICAgICAgdmFyaWF0aW9uVW5pdENvc3Q6IDguOTIsXG4gICAgICAgIHZhcmlhdGlvblVuaXRDb3N0RGlzY291bnRHcm91cDogc21hbGxEaXNjb3VudHMsXG4gICAgICB9LFxuICAgICAgNTBcbiAgICApXG4gICkudG9FcXVhbCh7IG9uY2VPZmZDb3N0OiA0MCwgdW5pdENvc3Q6IDUuMDIyIH0pO1xuICBleHBlY3QoXG4gICAgY29zdHNBdFF1YW50aXR5KFxuICAgICAge1xuICAgICAgICB2YXJpYXRpb25Db3N0OiA0MCxcbiAgICAgICAgdmFyaWF0aW9uVW5pdENvc3Q6IDEwLjgsXG4gICAgICAgIHZhcmlhdGlvblVuaXRDb3N0RGlzY291bnRHcm91cDogbWVkaXVtRGlzY291bnRzLFxuICAgICAgfSxcbiAgICAgIDUwXG4gICAgKVxuICApLnRvRXF1YWwoeyBvbmNlT2ZmQ29zdDogNDAsIHVuaXRDb3N0OiA2LjY3NSB9KTtcbn0pO1xuXG50ZXN0KCdrZWVwcyB0aGUgYmFzZSB1bml0IGNvc3QgYmVsb3cgdGhlIGZpcnN0IGRpc2NvdW50IHRpZXInLCAoKSA9PiB7XG4gIGV4cGVjdChcbiAgICBjb3N0c0F0UXVhbnRpdHkoXG4gICAgICB7XG4gICAgICAgIHZhcmlhdGlvbkNvc3Q6IDQwLFxuICAgICAgICB2YXJpYXRpb25Vbml0Q29zdDogOC45MixcbiAgICAgICAgdmFyaWF0aW9uVW5pdENvc3REaXNjb3VudEdyb3VwOiBzbWFsbERpc2NvdW50cyxcbiAgICAgIH0sXG4gICAgICAxXG4gICAgKVxuICApLnRvRXF1YWwoeyBvbmNlT2ZmQ29zdDogNDAsIHVuaXRDb3N0OiA4LjkyIH0pO1xufSk7XG5cbnRlc3QoJ3Jld3JpdGVzIHNlbGVjdCBvcHRpb24gY29zdHMgdXNlZCBieSBsYWJlbHMnLCAoKSA9PiB7XG4gIGNvbnN0IHZhcmlhdGlvbiA9IHtcbiAgICB2YXJpYXRpb25GaWVsZDogeyBpZDogMzk5OTQ5LCBmaWVsZFR5cGU6IDIgfSxcbiAgICBzZWxlY3RhYmxlT3B0aW9uczogW1xuICAgICAgeyBvcHRpb25JZDogMTEzMzM0MCwgdmFsdWU6ICdTbWFsbCAoNSB4IDVjbSknLCBvbmNlT2ZmQ29zdDogNDAsIHVuaXRDb3N0OiA4LjkyLCBjdXJyZW5jeTogJ0FVRCcgfSxcbiAgICAgIHsgb3B0aW9uSWQ6IDExMzMzNDEsIHZhbHVlOiAnTWVkaXVtICg3LjUgeCA1Y20pJywgb25jZU9mZkNvc3Q6IDQwLCB1bml0Q29zdDogMTAuOCwgY3VycmVuY3k6ICdBVUQnIH0sXG4gICAgXSxcbiAgfTtcblxuICBjb25zdCBwcmljZWQgPSB3aXRoUXVhbnRpdHlBZGp1c3RlZERpc3BsYXlDb3N0cyh2YXJpYXRpb24sIGVtYnJvaWRlcnlSdWxlcywgNTApO1xuXG4gIGV4cGVjdChwcmljZWQuc2VsZWN0YWJsZU9wdGlvbnMubWFwKChvcHRpb246IGFueSkgPT4gb3B0aW9uLnVuaXRDb3N0KSkudG9FcXVhbChbXG4gICAgNS4wMjIsXG4gICAgNi42NzUsXG4gIF0pO1xuICBleHBlY3QocHJpY2VkLnNlbGVjdGFibGVPcHRpb25zWzBdLm9uY2VPZmZDb3N0KS50b0JlKDQwKTtcbiAgZXhwZWN0KHByaWNlZC5zZWxlY3RhYmxlT3B0aW9uc1swXS52YWx1ZSkudG9CZSgnU21hbGwgKDUgeCA1Y20pJyk7XG59KTtcblxudGVzdCgnbGVhdmVzIG9wdGlvbnMgYWxvbmUgd2hlbiBwcmljaW5nIHJ1bGVzIGFyZSBtaXNzaW5nJywgKCkgPT4ge1xuICBjb25zdCB2YXJpYXRpb24gPSB7XG4gICAgdmFyaWF0aW9uRmllbGQ6IHsgaWQ6IDM5OTk0OSB9LFxuICAgIHNlbGVjdGFibGVPcHRpb25zOiBbeyBvcHRpb25JZDogMTEzMzM0MCwgb25jZU9mZkNvc3Q6IDQwLCB1bml0Q29zdDogOC45MiB9XSxcbiAgfTtcbiAgZXhwZWN0KHdpdGhRdWFudGl0eUFkanVzdGVkRGlzcGxheUNvc3RzKHZhcmlhdGlvbiwgbnVsbCwgNTApKS50b0JlKHZhcmlhdGlvbik7XG59KTtcblxudGVzdCgncHJpY2VzIGFuIGluZGVwZW5kZW50IGZpZWxkIGZyb20gdGhlIHN1bW1lZCBncm91cCBxdWFudGl0eScsICgpID0+IHtcbiAgZXhwZWN0KGdyb3VwSW5kZXhGcm9tVmFyaWF0aW9uTmFtZSgndmFyaWF0aW9ucycpKS50b0JlTnVsbCgpO1xuICBleHBlY3QoZ3JvdXBJbmRleEZyb21WYXJpYXRpb25OYW1lKCd2YXJpYXRpb25zR3JvdXBzWzFdLnZhcmlhdGlvbnMnKSkudG9CZSgxKTtcbiAgZXhwZWN0KFxuICAgIGRpc3BsYXlRdWFudGl0eSh7XG4gICAgICBncm91cEluZGV4OiBudWxsLFxuICAgICAgZ3JvdXBRdWFudGl0eTogMCxcbiAgICAgIGdyb3VwczogW3sgcXVhbnRpdHk6IDIwIH0sIHsgcXVhbnRpdHk6ICczMCcgfV0sXG4gICAgICBqb2JRdWFudGl0eTogMSxcbiAgICAgIGhhc0dyb3VwczogdHJ1ZSxcbiAgICB9KVxuICApLnRvQmUoNTApO1xuICBleHBlY3QoXG4gICAgZGlzcGxheVF1YW50aXR5KHtcbiAgICAgIGdyb3VwSW5kZXg6IDEsXG4gICAgICBncm91cFF1YW50aXR5OiAnMzAnLFxuICAgICAgZ3JvdXBzOiBbeyBxdWFudGl0eTogMjAgfSwgeyBxdWFudGl0eTogMzAgfV0sXG4gICAgICBqb2JRdWFudGl0eTogNTAsXG4gICAgICBoYXNHcm91cHM6IHRydWUsXG4gICAgfSlcbiAgKS50b0JlKDMwKTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSxlQUFlLEVBQ2ZDLGVBQWUsRUFDZkMsMkJBQTJCLEVBQzNCQyxnQ0FBZ0MsUUFDM0IseUJBQXlCO0FBRWhDLElBQU1DLGNBQWMsR0FBRztFQUNyQkMsU0FBUyxFQUFFLENBQ1Q7SUFBRUMsTUFBTSxFQUFFLEtBQUs7SUFBRUMsVUFBVSxFQUFFO0VBQUcsQ0FBQyxFQUNqQztJQUFFRCxNQUFNLEVBQUUsS0FBSztJQUFFQyxVQUFVLEVBQUU7RUFBRyxDQUFDLEVBQ2pDO0lBQUVELE1BQU0sRUFBRSxLQUFLO0lBQUVDLFVBQVUsRUFBRTtFQUFHLENBQUMsRUFDakM7SUFBRUQsTUFBTSxFQUFFLElBQUk7SUFBRUMsVUFBVSxFQUFFO0VBQUcsQ0FBQyxFQUNoQztJQUFFRCxNQUFNLEVBQUUsS0FBSztJQUFFQyxVQUFVLEVBQUU7RUFBRyxDQUFDO0FBRXJDLENBQUM7QUFFRCxJQUFNQyxlQUFlLEdBQUc7RUFDdEJILFNBQVMsRUFBRSxDQUNUO0lBQUVDLE1BQU0sRUFBRSxJQUFJO0lBQUVDLFVBQVUsRUFBRTtFQUFHLENBQUMsRUFDaEM7SUFBRUQsTUFBTSxFQUFFLEtBQUs7SUFBRUMsVUFBVSxFQUFFO0VBQUcsQ0FBQyxFQUNqQztJQUFFRCxNQUFNLEVBQUUsS0FBSztJQUFFQyxVQUFVLEVBQUU7RUFBRyxDQUFDLEVBQ2pDO0lBQUVELE1BQU0sRUFBRSxLQUFLO0lBQUVDLFVBQVUsRUFBRTtFQUFHLENBQUMsRUFDakM7SUFBRUQsTUFBTSxFQUFFLEtBQUs7SUFBRUMsVUFBVSxFQUFFO0VBQUcsQ0FBQyxFQUNqQztJQUFFRCxNQUFNLEVBQUUsS0FBSztJQUFFQyxVQUFVLEVBQUU7RUFBRyxDQUFDO0FB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
|