UNPKG

merchi_product_form

Version:
153 lines (152 loc) 27.1 kB
'use client'; 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); } 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; } 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; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } 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); } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } 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."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } import * as React from 'react'; import { useController } from 'react-hook-form'; import { isBoolean } from 'lodash'; import VariationOptionColour from './VariationOptionColour'; import VariationOptionImage from './VariationOptionImage'; import VariationError from './VariationError'; import VariationLabel from './VariationLabel'; import { useMerchiFormContext } from '../context/MerchiProductFormProvider'; import { jsx as _jsx } from "react/jsx-runtime"; import { Fragment as _Fragment } from "react/jsx-runtime"; import { jsxs as _jsxs } from "react/jsx-runtime"; function determineBoolean(value) { return isBoolean(value) ? value : value === 'true' ? true : false; } function optionType(variation) { var _variation$variationF = variation.variationField, multipleSelect = _variation$variationF.multipleSelect, sellerProductEditable = _variation$variationF.sellerProductEditable; return determineBoolean(multipleSelect) || determineBoolean(sellerProductEditable) ? 'checkbox' : 'radio'; } function VariationFieldOptionElement(_ref) { var disabled = _ref.disabled, index = _ref.index, inputType = _ref.inputType, name = _ref.name, option = _ref.option, variation = _ref.variation; var _useMerchiFormContext = useMerchiFormContext(), control = _useMerchiFormContext.control, getQuote = _useMerchiFormContext.getQuote; var _useController = useController({ name: "".concat(name, ".value"), control: control }), field = _useController.field; var optionName = "".concat(name, ".options[").concat(index, "]"); var selectableOptions = variation.selectableOptions, variationField = variation.variationField; var sellerProductEditable = variationField.sellerProductEditable; var id = option.id; var inputId = "".concat(name, ".options.id-").concat(id); var activeIds = field.value ? field.value.split(',') : []; var isActive = activeIds.includes(String(id)); var isAvailable = selectableOptions[index] ? selectableOptions[index].available : true; var optionInputType = optionType(variation); var doClick = function doClick() { var updatedIds = _toConsumableArray(activeIds); if (sellerProductEditable || optionInputType === 'checkbox') { // Checkbox Logic if (!updatedIds.includes(String(id))) { updatedIds.push(String(id)); } else { updatedIds = updatedIds.filter(function (existingId) { return existingId !== String(id); }); } } else if (optionInputType === 'radio') { // Radio Logic updatedIds = [String(id)]; } field.onChange(updatedIds.length ? updatedIds.join(',') : ''); getQuote(); }; return /*#__PURE__*/_jsxs(_Fragment, { children: [/*#__PURE__*/_jsx("input", { style: { display: 'none' }, checked: isActive, value: id, type: optionInputType, id: inputId, name: "".concat(name, ".value"), onChange: function onChange() { return true; }, disabled: disabled }), inputType === 'image' ? /*#__PURE__*/_jsx(VariationOptionImage, { doClick: doClick, isChecked: isActive, isAvailable: isAvailable, name: "".concat(optionName, ".variationField.options[").concat(index, "]"), option: option, sellerProductEditable: sellerProductEditable }) : /*#__PURE__*/_jsx(VariationOptionColour, { doClick: doClick, isChecked: isActive, isAvailable: isAvailable, name: "".concat(optionName, ".variationField.options[").concat(index, "]"), option: option, sellerProductEditable: sellerProductEditable })] }); } export var VariationSelectElements = function VariationSelectElements(_ref2) { var disabled = _ref2.disabled, _ref2$inputType = _ref2.inputType, inputType = _ref2$inputType === void 0 ? 'image' : _ref2$inputType, name = _ref2.name, variation = _ref2.variation; var variationField = variation.variationField; var _variationField$optio = variationField.options, options = _variationField$optio === void 0 ? [] : _variationField$optio; var isImage = inputType === 'image'; return /*#__PURE__*/_jsxs("div", { className: isImage ? 'merchi-image-select-container' : '', children: [/*#__PURE__*/_jsx(VariationLabel, { forceHideCost: true, variationClassName: "merchi-embed-form_input".concat(isImage ? '-image' : '', "-select"), name: name, variation: variation }), /*#__PURE__*/_jsx("div", { className: isImage ? 'merchi-embed-form_image-select-option-container' : 'merchi-embed-form_color-select-container', children: options.map(function (option, index) { return /*#__PURE__*/_jsx(VariationFieldOptionElement, { disabled: disabled, index: index, inputType: inputType, name: name, option: option, variation: variation }, "variation-option-".concat(name, "-").concat(index)); }) }), /*#__PURE__*/_jsx(VariationError, { name: name })] }); }; export var VariationSelectImage = function VariationSelectImage(props) { return /*#__PURE__*/_jsx(VariationSelectElements, _objectSpread(_objectSpread({}, props), {}, { inputType: "image" })); }; export var VariationSelectColour = function VariationSelectColour(props) { return /*#__PURE__*/_jsx(VariationSelectElements, _objectSpread(_objectSpread({}, props), {}, { inputType: "colour" })); }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJvYmoiLCJrZXkiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiTnVtYmVyIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIm1pbkxlbiIsIl9hcnJheUxpa2VUb0FycmF5IiwibiIsInRvU3RyaW5nIiwic2xpY2UiLCJuYW1lIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsIml0ZXIiLCJpc0FycmF5IiwibGVuIiwiYXJyMiIsIlJlYWN0IiwidXNlQ29udHJvbGxlciIsImlzQm9vbGVhbiIsIlZhcmlhdGlvbk9wdGlvbkNvbG91ciIsIlZhcmlhdGlvbk9wdGlvbkltYWdlIiwiVmFyaWF0aW9uRXJyb3IiLCJWYXJpYXRpb25MYWJlbCIsInVzZU1lcmNoaUZvcm1Db250ZXh0IiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiZGV0ZXJtaW5lQm9vbGVhbiIsIm9wdGlvblR5cGUiLCJ2YXJpYXRpb24iLCJfdmFyaWF0aW9uJHZhcmlhdGlvbkYiLCJ2YXJpYXRpb25GaWVsZCIsIm11bHRpcGxlU2VsZWN0Iiwic2VsbGVyUHJvZHVjdEVkaXRhYmxlIiwiVmFyaWF0aW9uRmllbGRPcHRpb25FbGVtZW50IiwiX3JlZiIsImRpc2FibGVkIiwiaW5kZXgiLCJpbnB1dFR5cGUiLCJvcHRpb24iLCJfdXNlTWVyY2hpRm9ybUNvbnRleHQiLCJjb250cm9sIiwiZ2V0UXVvdGUiLCJfdXNlQ29udHJvbGxlciIsImNvbmNhdCIsImZpZWxkIiwib3B0aW9uTmFtZSIsInNlbGVjdGFibGVPcHRpb25zIiwiaWQiLCJpbnB1dElkIiwiYWN0aXZlSWRzIiwic3BsaXQiLCJpc0FjdGl2ZSIsImluY2x1ZGVzIiwiaXNBdmFpbGFibGUiLCJhdmFpbGFibGUiLCJvcHRpb25JbnB1dFR5cGUiLCJkb0NsaWNrIiwidXBkYXRlZElkcyIsImV4aXN0aW5nSWQiLCJvbkNoYW5nZSIsImpvaW4iLCJjaGlsZHJlbiIsInN0eWxlIiwiZGlzcGxheSIsImNoZWNrZWQiLCJ0eXBlIiwiaXNDaGVja2VkIiwiVmFyaWF0aW9uU2VsZWN0RWxlbWVudHMiLCJfcmVmMiIsIl9yZWYyJGlucHV0VHlwZSIsIl92YXJpYXRpb25GaWVsZCRvcHRpbyIsIm9wdGlvbnMiLCJpc0ltYWdlIiwiY2xhc3NOYW1lIiwiZm9yY2VIaWRlQ29zdCIsInZhcmlhdGlvbkNsYXNzTmFtZSIsIm1hcCIsIlZhcmlhdGlvblNlbGVjdEltYWdlIiwicHJvcHMiLCJWYXJpYXRpb25TZWxlY3RDb2xvdXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9WYXJpYXRpb25TZWxlY3RFbGVtZW50cy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlciB9IGZyb20gJ3JlYWN0LWhvb2stZm9ybSc7XG5pbXBvcnQgeyBpc0Jvb2xlYW4gfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFZhcmlhdGlvbk9wdGlvbkNvbG91ciBmcm9tICcuL1ZhcmlhdGlvbk9wdGlvbkNvbG91cic7XG5pbXBvcnQgVmFyaWF0aW9uT3B0aW9uSW1hZ2UgZnJvbSAnLi9WYXJpYXRpb25PcHRpb25JbWFnZSc7XG5pbXBvcnQgVmFyaWF0aW9uRXJyb3IgZnJvbSAnLi9WYXJpYXRpb25FcnJvcic7XG5pbXBvcnQgVmFyaWF0aW9uTGFiZWwgZnJvbSAnLi9WYXJpYXRpb25MYWJlbCc7XG5pbXBvcnQgeyB1c2VNZXJjaGlGb3JtQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQvTWVyY2hpUHJvZHVjdEZvcm1Qcm92aWRlcic7XG5cbmZ1bmN0aW9uIGRldGVybWluZUJvb2xlYW4odmFsdWU6IGFueSkge1xuICByZXR1cm4gaXNCb29sZWFuKHZhbHVlKSA/IHZhbHVlIDogdmFsdWUgPT09ICd0cnVlJyA/IHRydWUgOiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gb3B0aW9uVHlwZSh2YXJpYXRpb246IGFueSkge1xuICBjb25zdCB7IG11bHRpcGxlU2VsZWN0LCBzZWxsZXJQcm9kdWN0RWRpdGFibGUgfSA9IHZhcmlhdGlvbi52YXJpYXRpb25GaWVsZDtcbiAgcmV0dXJuIGRldGVybWluZUJvb2xlYW4obXVsdGlwbGVTZWxlY3QpIHx8XG4gICAgZGV0ZXJtaW5lQm9vbGVhbihzZWxsZXJQcm9kdWN0RWRpdGFibGUpXG4gICAgPyAnY2hlY2tib3gnXG4gICAgOiAncmFkaW8nO1xufVxuXG5pbnRlcmZhY2UgT3B0aW9uUHJvcHMge1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGluZGV4OiBudW1iZXI7XG4gIGlucHV0VHlwZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIG9wdGlvbjogYW55O1xuICB2YXJpYXRpb246IGFueTtcbn1cblxuZnVuY3Rpb24gVmFyaWF0aW9uRmllbGRPcHRpb25FbGVtZW50KHtcbiAgZGlzYWJsZWQsXG4gIGluZGV4LFxuICBpbnB1dFR5cGUsXG4gIG5hbWUsXG4gIG9wdGlvbixcbiAgdmFyaWF0aW9uLFxufTogT3B0aW9uUHJvcHMpIHtcbiAgY29uc3QgeyBjb250cm9sLCBnZXRRdW90ZSB9ID0gdXNlTWVyY2hpRm9ybUNvbnRleHQoKTtcbiAgY29uc3QgeyBmaWVsZCB9ID0gdXNlQ29udHJvbGxlcih7IG5hbWU6IGAke25hbWV9LnZhbHVlYCwgY29udHJvbCB9KTtcbiAgY29uc3Qgb3B0aW9uTmFtZSA9IGAke25hbWV9Lm9wdGlvbnNbJHtpbmRleH1dYDtcbiAgY29uc3QgeyBzZWxlY3RhYmxlT3B0aW9ucywgdmFyaWF0aW9uRmllbGQgfSA9IHZhcmlhdGlvbjtcbiAgY29uc3QgeyBzZWxsZXJQcm9kdWN0RWRpdGFibGUgfSA9IHZhcmlhdGlvbkZpZWxkO1xuICBjb25zdCB7IGlkIH0gPSBvcHRpb247XG4gIGNvbnN0IGlucHV0SWQgPSBgJHtuYW1lfS5vcHRpb25zLmlkLSR7aWR9YDtcbiAgY29uc3QgYWN0aXZlSWRzID0gZmllbGQudmFsdWUgPyBmaWVsZC52YWx1ZS5zcGxpdCgnLCcpIDogW107XG4gIGNvbnN0IGlzQWN0aXZlID0gYWN0aXZlSWRzLmluY2x1ZGVzKFN0cmluZyhpZCkpO1xuICBjb25zdCBpc0F2YWlsYWJsZSA9IHNlbGVjdGFibGVPcHRpb25zW2luZGV4XVxuICAgID8gc2VsZWN0YWJsZU9wdGlvbnNbaW5kZXhdLmF2YWlsYWJsZVxuICAgIDogdHJ1ZTtcbiAgY29uc3Qgb3B0aW9uSW5wdXRUeXBlID0gb3B0aW9uVHlwZSh2YXJpYXRpb24pO1xuICBjb25zdCBkb0NsaWNrID0gKCkgPT4ge1xuICAgIGxldCB1cGRhdGVkSWRzID0gWy4uLmFjdGl2ZUlkc107XG5cbiAgICBpZiAoc2VsbGVyUHJvZHVjdEVkaXRhYmxlIHx8IG9wdGlvbklucHV0VHlwZSA9PT0gJ2NoZWNrYm94Jykge1xuICAgICAgLy8gQ2hlY2tib3ggTG9naWNcbiAgICAgIGlmICghdXBkYXRlZElkcy5pbmNsdWRlcyhTdHJpbmcoaWQpKSkge1xuICAgICAgICB1cGRhdGVkSWRzLnB1c2goU3RyaW5nKGlkKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1cGRhdGVkSWRzID0gdXBkYXRlZElkcy5maWx0ZXIoXG4gICAgICAgICAgKGV4aXN0aW5nSWQpID0+IGV4aXN0aW5nSWQgIT09IFN0cmluZyhpZClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG9wdGlvbklucHV0VHlwZSA9PT0gJ3JhZGlvJykge1xuICAgICAgLy8gUmFkaW8gTG9naWNcbiAgICAgIHVwZGF0ZWRJZHMgPSBbU3RyaW5nKGlkKV07XG4gICAgfVxuICAgIGZpZWxkLm9uQ2hhbmdlKHVwZGF0ZWRJZHMubGVuZ3RoID8gdXBkYXRlZElkcy5qb2luKCcsJykgOiAnJyk7XG5cbiAgICBnZXRRdW90ZSgpO1xuICB9O1xuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogJ25vbmUnIH19XG4gICAgICAgIGNoZWNrZWQ9e2lzQWN0aXZlfVxuICAgICAgICB2YWx1ZT17aWR9XG4gICAgICAgIHR5cGU9e29wdGlvbklucHV0VHlwZX1cbiAgICAgICAgaWQ9e2lucHV0SWR9XG4gICAgICAgIG5hbWU9e2Ake25hbWV9LnZhbHVlYH1cbiAgICAgICAgb25DaGFuZ2U9eygpID0+IHRydWV9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIC8+XG4gICAgICB7aW5wdXRUeXBlID09PSAnaW1hZ2UnID8gKFxuICAgICAgICA8VmFyaWF0aW9uT3B0aW9uSW1hZ2VcbiAgICAgICAgICBkb0NsaWNrPXtkb0NsaWNrfVxuICAgICAgICAgIGlzQ2hlY2tlZD17aXNBY3RpdmV9XG4gICAgICAgICAgaXNBdmFpbGFibGU9e2lzQXZhaWxhYmxlfVxuICAgICAgICAgIG5hbWU9e2Ake29wdGlvbk5hbWV9LnZhcmlhdGlvbkZpZWxkLm9wdGlvbnNbJHtpbmRleH1dYH1cbiAgICAgICAgICBvcHRpb249e29wdGlvbn1cbiAgICAgICAgICBzZWxsZXJQcm9kdWN0RWRpdGFibGU9e3NlbGxlclByb2R1Y3RFZGl0YWJsZX1cbiAgICAgICAgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxWYXJpYXRpb25PcHRpb25Db2xvdXJcbiAgICAgICAgICBkb0NsaWNrPXtkb0NsaWNrfVxuICAgICAgICAgIGlzQ2hlY2tlZD17aXNBY3RpdmV9XG4gICAgICAgICAgaXNBdmFpbGFibGU9e2lzQXZhaWxhYmxlfVxuICAgICAgICAgIG5hbWU9e2Ake29wdGlvbk5hbWV9LnZhcmlhdGlvbkZpZWxkLm9wdGlvbnNbJHtpbmRleH1dYH1cbiAgICAgICAgICBvcHRpb249e29wdGlvbn1cbiAgICAgICAgICBzZWxsZXJQcm9kdWN0RWRpdGFibGU9e3NlbGxlclByb2R1Y3RFZGl0YWJsZX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC8+XG4gICk7XG59XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaW5wdXRUeXBlPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhcmlhdGlvbjogYW55O1xufVxuXG5leHBvcnQgY29uc3QgVmFyaWF0aW9uU2VsZWN0RWxlbWVudHM6IFJlYWN0LkZDPFByb3BzPiA9ICh7XG4gIGRpc2FibGVkLFxuICBpbnB1dFR5cGUgPSAnaW1hZ2UnLFxuICBuYW1lLFxuICB2YXJpYXRpb24sXG59KSA9PiB7XG4gIGNvbnN0IHsgdmFyaWF0aW9uRmllbGQgfSA9IHZhcmlhdGlvbjtcbiAgY29uc3QgeyBvcHRpb25zID0gW10gfSA9IHZhcmlhdGlvbkZpZWxkO1xuICBjb25zdCBpc0ltYWdlID0gaW5wdXRUeXBlID09PSAnaW1hZ2UnO1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtpc0ltYWdlID8gJ21lcmNoaS1pbWFnZS1zZWxlY3QtY29udGFpbmVyJyA6ICcnfT5cbiAgICAgIDxWYXJpYXRpb25MYWJlbFxuICAgICAgICBmb3JjZUhpZGVDb3N0PXt0cnVlfVxuICAgICAgICB2YXJpYXRpb25DbGFzc05hbWU9e2BtZXJjaGktZW1iZWQtZm9ybV9pbnB1dCR7XG4gICAgICAgICAgaXNJbWFnZSA/ICctaW1hZ2UnIDogJydcbiAgICAgICAgfS1zZWxlY3RgfVxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICB2YXJpYXRpb249e3ZhcmlhdGlvbn1cbiAgICAgIC8+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgaXNJbWFnZVxuICAgICAgICAgICAgPyAnbWVyY2hpLWVtYmVkLWZvcm1faW1hZ2Utc2VsZWN0LW9wdGlvbi1jb250YWluZXInXG4gICAgICAgICAgICA6ICdtZXJjaGktZW1iZWQtZm9ybV9jb2xvci1zZWxlY3QtY29udGFpbmVyJ1xuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIHtvcHRpb25zLm1hcCgob3B0aW9uOiBhbnksIGluZGV4OiBudW1iZXIpID0+IChcbiAgICAgICAgICA8VmFyaWF0aW9uRmllbGRPcHRpb25FbGVtZW50XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICBpbnB1dFR5cGU9e2lucHV0VHlwZX1cbiAgICAgICAgICAgIGtleT17YHZhcmlhdGlvbi1vcHRpb24tJHtuYW1lfS0ke2luZGV4fWB9XG4gICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgb3B0aW9uPXtvcHRpb259XG4gICAgICAgICAgICB2YXJpYXRpb249e3ZhcmlhdGlvbn1cbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPFZhcmlhdGlvbkVycm9yIG5hbWU9e25hbWV9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5pbnRlcmZhY2UgRmllbGRQcm9wcyB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICB2YXJpYXRpb246IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IFZhcmlhdGlvblNlbGVjdEltYWdlID0gKHByb3BzOiBGaWVsZFByb3BzKSA9PiAoXG4gIDxWYXJpYXRpb25TZWxlY3RFbGVtZW50cyB7Li4ucHJvcHN9IGlucHV0VHlwZT0naW1hZ2UnIC8+XG4pO1xuZXhwb3J0IGNvbnN0IFZhcmlhdGlvblNlbGVjdENvbG91ciA9IChwcm9wczogRmllbGRQcm9wcykgPT4gKFxuICA8VmFyaWF0aW9uU2VsZWN0RWxlbWVudHMgey4uLnByb3BzfSBpbnB1dFR5cGU9J2NvbG91cicgLz5cbik7XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFYLENBQUEsR0FBQVMsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQVAsQ0FBQSxHQUFBQSxDQUFBLENBQUFZLE1BQUEsV0FBQUwsQ0FBQSxXQUFBRSxNQUFBLENBQUFJLHdCQUFBLENBQUFQLENBQUEsRUFBQUMsQ0FBQSxFQUFBTyxVQUFBLE9BQUFOLENBQUEsQ0FBQU8sSUFBQSxDQUFBQyxLQUFBLENBQUFSLENBQUEsRUFBQVIsQ0FBQSxZQUFBUSxDQUFBO0FBQUEsU0FBQVMsY0FBQVgsQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVcs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