{"version":3,"file":"design-D2_5bkYP.js","sources":["../../../node_modules/lodash-es/assignIn.js","../../../node_modules/lodash-es/_baseRange.js","../../../node_modules/lodash-es/_createRange.js","../../../node_modules/lodash-es/range.js","../../../app/javascript/api/savedBundle.js","../../../app/javascript/store/modules/design/merge.js","../../../app/javascript/store/modules/design/navigation.js","../../../app/javascript/store/modules/design/pricing.js","../../../app/javascript/store/modules/design/tips.js","../../../app/javascript/store/modules/design/variations.js","../../../app/javascript/api/savedDynamicBundle.js","../../../app/javascript/store/modules/design.js"],"sourcesContent":["import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\nvar assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n});\n\nexport default assignIn;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n","import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n","import createRange from './_createRange.js';\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nexport default range;\n","import api from \"./index\";\n\nexport default {\n async createOrUpdate(\n id,\n designables,\n bundleId,\n justSave,\n templatedPreviewImage\n ) {\n try {\n if (id) {\n const response = await api.put(`/saved_bundles/${id}`, {\n design: {\n designables\n },\n just_save: justSave,\n templated_preview_image: templatedPreviewImage\n });\n return response;\n }\n const response = await api.post(\"/saved_bundles\", {\n design: {\n designables\n },\n bundle_id: bundleId,\n just_save: justSave,\n templated_preview_image: templatedPreviewImage\n });\n return response;\n } catch (error) {\n return false;\n }\n }\n};\n","/* eslint no-shadow: [\"error\", { \"allow\": [\"state\", \"getters\"] }] */\nimport { clone, extend, range } from \"lodash-es\";\n\nconst state = {\n currentMergeStringIndex: 0,\n mergeAlertModalShowing: false,\n currentMergeKey: null,\n originalSizes: {},\n blankMergeObject: {}\n};\nconst getters = {\n nonBlankMergeStrings: (state, getters, rootState) => {\n if (rootState.design.flow !== \"merge_flow\") return [];\n return rootState.design.activeDesignable.merge_strings.filter(\n (stringSet, index) =>\n index < rootState.design.activeDesignable.qty &&\n Object.values(stringSet).join(\"\").length > 0\n );\n },\n doneMergeInputsCount: (state, getters, rootState) => {\n if (rootState.design.flow !== \"merge_flow\") return 0;\n return Math.min(\n rootState.design.activeDesignable.qty,\n getters.nonBlankMergeStrings.length\n );\n },\n blankMergeInputsCount: (state, getters, rootState) => {\n if (rootState.design.flow !== \"merge_flow\") return 0;\n return Math.max(\n 0,\n rootState.design.activeDesignable.qty -\n getters.nonBlankMergeStrings.length\n );\n },\n textbox: (state, getters, rootState) =>\n rootState.design.canvas.selectedTextbox,\n currentPredefinedString: (state, getters) => {\n const key = state.currentMergeKey || getters.availableKeys[0];\n return getters.textbox.predefinedStrings.find(string => string.key === key);\n },\n currentStyle: (state, getters) => getters.currentPredefinedString.style,\n currentFontFamily: (state, getters, rootState) =>\n rootState.options.fonts.filter(\n font =>\n Object.keys(font.weights).filter(\n weight =>\n font.weights[weight].name === getters.currentStyle.fontFamily\n ).length > 0\n )[0],\n showsStyle: (state, getters) =>\n getters.textbox.predefinedStrings.length === 1,\n availableKeys: (state, getters) =>\n getters.textbox.predefinedStrings.map(string => string.key),\n quantityOptions: (state, getters, rootState) =>\n range(0, rootState.design.activeDesignable.qty),\n stringForKeyAtIndex: (state, getters, rootState) => (key, index) => {\n if (rootState.design.activeDesignable.merge_strings[index]) {\n return rootState.design.activeDesignable.merge_strings[index][key];\n }\n return \"\";\n },\n currentMergeStringText: (state, getters) =>\n getters.stringForKeyAtIndex(\n state.currentMergeKey,\n state.currentMergeStringIndex\n ),\n translationKeyForKey: () => key => {\n const translationKey = key.replace(\" \", \"_\").toLowerCase();\n return `predefined_strings.labels.${translationKey}`;\n },\n predefinedStringBoundToOriginalSizes: (state, getters) => {\n const style = extend(\n {},\n getters.currentPredefinedString.style,\n state.originalSizes[state.currentMergeKey]\n );\n const cloned = clone(getters.currentPredefinedString);\n cloned.style = style;\n return cloned;\n },\n maxLengthForString: (state, getters) => key =>\n parseInt(\n getters.textbox.predefinedStrings.find(string => string.key === key)\n .maxLength,\n 10\n ) || 0\n};\n\nconst actions = {\n setUpFirstMergeInput({ rootState, getters, commit }) {\n if (!rootState.design.activeDesignable.merge_strings[0]) {\n const strings = {};\n getters.textbox.predefinedStrings.forEach(string => {\n strings[string.key] = string.text;\n });\n commit(\n \"design/setActiveDesignableMergeStringsAtIndex\",\n {\n index: 0,\n strings\n },\n { root: true }\n );\n }\n },\n fixMergeToCurrentIndex({ rootState, dispatch }) {\n if (\n rootState.design.activeDesignable.merge_strings &&\n rootState.design.activeDesignable.merge_strings.length\n ) {\n dispatch(\"resetMerge\", state.currentMergeStringIndex);\n }\n },\n setActiveDesignableMergeStrings({ commit, dispatch, rootState }, strings) {\n let stringsToSet;\n\n if (!rootState.design.initialQty) {\n stringsToSet = strings;\n } else if (\n // If the user changes the qty from within the PDP the below will equal\n // false so we want to revert to using the activeDesignable.qty\n rootState.design.activeDesignable.qty === rootState.design.initialQty\n ) {\n stringsToSet = strings.splice(0, rootState.design.initialQty);\n } else {\n stringsToSet = strings.splice(0, rootState.design.activeDesignable.qty);\n }\n\n dispatch(\"adjustActiveDesignableQty\", stringsToSet.length);\n commit(\"design/setActiveDesignableMergeStrings\", stringsToSet, {\n root: true\n });\n dispatch(\"resetMerge\");\n },\n adjustActiveDesignableQty(\n { rootState, commit, rootGetters },\n newStringsCount\n ) {\n if (\n newStringsCount > rootState.design.activeDesignable.qty &&\n !rootState.design.isB2BFlow\n ) {\n const bestQty = Math.min(\n ...rootGetters[\"design/pricing/availableQuantitiesForDesignable\"](\n rootState.design.activeDesignable\n ).filter(qty => qty >= newStringsCount)\n );\n commit(\"design/setActiveDesignableQty\", bestQty, { root: true });\n }\n },\n resetMerge({ rootState, commit }, index = 0) {\n commit(\"setCurrentMergeStringIndex\", index);\n rootState.design.canvas.resetPredefinedStrings(\n rootState.design.activeDesignable.merge_strings[index]\n );\n },\n setUpOriginalSizes({ commit, getters }) {\n const sizes = {};\n getters.textbox.predefinedStrings.forEach(string => {\n sizes[string.key] = {\n fontSize: string.style.fontSize,\n lineHeight: string.style.lineHeight\n };\n });\n commit(\"setUpOriginalSizes\", sizes);\n },\n setUpBlankMergeObject({ commit, getters }) {\n const object = {};\n getters.availableKeys.forEach(key => {\n object[key] = \"\";\n });\n commit(\"setUpBlankMergeObject\", object);\n },\n setMergeStyle({ rootState, getters }, style) {\n const string = clone(getters.predefinedStringBoundToOriginalSizes);\n string.text = getters.currentMergeStringText;\n rootState.design.canvas.updatePredefinedString(string, style);\n },\n refreshString(\n { rootState, state, dispatch, getters, commit },\n { index, value, key, updateAll }\n ) {\n commit(\"setCurrentMergeStringIndex\", index);\n const strings = clone(\n rootState.design.activeDesignable.merge_strings[index] ||\n state.blankMergeObject\n );\n strings[key] = value;\n commit(\n \"design/setActiveDesignableMergeStringsAtIndex\",\n {\n index,\n strings\n },\n { root: true }\n );\n if (updateAll) {\n dispatch(\"updateAllInputs\", strings);\n } else {\n const string = clone(getters.predefinedStringBoundToOriginalSizes);\n string.text = value;\n rootState.design.canvas.updatePredefinedString(string);\n }\n },\n updateAllInputs({ state, getters, rootState, commit }, strings) {\n const originalKey = clone(state.currentMergeKey);\n getters.availableKeys.forEach(key => {\n commit(\"setCurrentMergeKey\", key);\n const string = clone(getters.predefinedStringBoundToOriginalSizes);\n string.text = strings[key];\n rootState.design.canvas.updatePredefinedString(string);\n });\n commit(\"setCurrentMergeKey\", originalKey);\n }\n};\nconst mutations = {\n setMergeAlertModalShowing(state, flag) {\n state.mergeAlertModalShowing = flag;\n },\n setCurrentMergeStringIndex(state, index) {\n state.currentMergeStringIndex = index;\n },\n setCurrentMergeKey(state, key) {\n state.currentMergeKey = key;\n },\n setUpOriginalSizes(state, sizes) {\n state.originalSizes = sizes;\n },\n setUpBlankMergeObject(state, object) {\n state.blankMergeObject = object;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n};\n","/* eslint no-shadow: [\"error\", { \"allow\": [\"state\", \"getters\"] }] */\nimport { flatten } from \"lodash-es\";\n\nconst state = {};\nconst getters = {\n navigationItems(state, getters, rootState) {\n const sheets = flatten(\n rootState.design.designables.map(designable =>\n designable.designable_sheets\n .filter(sheet => !sheet.hidden)\n .map(sheet => ({\n type: \"sheet\",\n item: sheet,\n designable\n }))\n )\n );\n const stockItems = rootState.design.bundleStockItems.map(stockItem => ({\n type: \"stockItem\",\n item: stockItem\n }));\n return flatten([sheets, stockItems]);\n },\n navigationIndex(state, getters, rootState) {\n if (rootState.design.activeStockItem) {\n return getters.navigationItems\n .map(item => item.item)\n .indexOf(rootState.design.activeStockItem);\n }\n\n return getters.navigationItems.findIndex(({ item }) => {\n return (\n item.id === rootState.design.activeSheet.id &&\n item.repetition_key === rootState.design.activeSheet.repetition_key\n );\n });\n },\n canShowNext(state, getters) {\n return getters.navigationIndex !== getters.navigationItems.length - 1;\n },\n canShowPrevious(state, getters) {\n return getters.navigationIndex !== 0;\n },\n activeType(state, getters) {\n return getters.navigationItems[getters.navigationIndex].type;\n }\n};\nconst actions = {\n next({ dispatch, getters }) {\n const item = getters.navigationItems[getters.navigationIndex + 1];\n dispatch(\"navigate\", item);\n },\n previous({ dispatch, getters }) {\n const item = getters.navigationItems[getters.navigationIndex - 1];\n dispatch(\"navigate\", item);\n },\n navigate({ dispatch }, { item, type, designable }) {\n if (type === \"sheet\") {\n dispatch(\"design/clearSelection\", null, { root: true });\n dispatch(\n \"design/setActiveDesignable\",\n { designable, sheet: item },\n { root: true }\n );\n } else if (type === \"stockItem\") {\n dispatch(\"design/setActiveStockItem\", item, { root: true });\n }\n }\n};\nconst mutations = {};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n};\n","/* eslint no-shadow: [\"error\", { \"allow\": [\"state\", \"getters\", \"rootState\"] }] */\n\nconst state = {\n fixedPrice: null,\n currencySymbol: null\n};\nconst getters = {\n designablePrice: (state, getters) => designable =>\n getters\n .currentDesignablePricingValues(designable)\n .filter(value => value.qty === designable.qty)[0].price * designable.qty,\n designableBasePrice: (state, getters) => designable =>\n getters\n .currentDesignablePricingValues(designable)\n .filter(value => value.qty === designable.qty)[0].base_price *\n designable.qty,\n maximumQuantityForActiveDesignable: (state, getters, rooState) =>\n Math.max(\n ...getters.availableQuantitiesForDesignable(\n rooState.design.activeDesignable\n )\n ),\n availableQuantitiesForDesignable: (state, getters) => designable =>\n getters\n .currentDesignableVisiblePricingValues(designable)\n .map(value => value.qty),\n currentDesignableVisiblePricingValues: (state, getters) => designable =>\n // we want the qtys that are visible,\n // but also we want to include any hidden qty if that is what\n // the designable is already set to\n getters\n .currentDesignablePricingValues(designable)\n .filter(value => value.visible || value.qty === designable.qty),\n currentDesignablePricingValues: () => designable => {\n const key = designable.thick ? \"thick\" : \"normal\";\n return designable.pricing_values[key];\n },\n priceDifference: () => designable => {\n const thickPricingValues = designable.pricing_values.thick;\n const normalPricingValues = designable.pricing_values.normal;\n\n const thickPrice = thickPricingValues.find(\n item => item.qty === designable.qty\n );\n const standardPrice = normalPricingValues.find(\n item => item.qty === designable.qty\n );\n\n return (thickPrice.price - standardPrice.price).toFixed(2);\n },\n totalDesignablesPrice: (state, getters, rootState, rootGetters) =>\n rootGetters[\"design/includedDesignables\"]\n .map(designable => getters.designablePrice(designable))\n .reduce((a, b) => a + b, 0),\n totalDesignablesBasePrice: (state, getters, rootState, rootGetters) =>\n rootGetters[\"design/includedDesignables\"]\n .map(designable => getters.designableBasePrice(designable))\n .reduce((a, b) => a + b, 0),\n totalPrice: (state, getters, rootState) => {\n if (state.fixedPrice) {\n return state.fixedPrice + (rootState.design.injectedGiftcardAmount || 0);\n }\n return (\n getters.totalDesignablesPrice +\n (rootState.design.injectedGiftcardAmount || 0)\n );\n },\n totalBasePrice: (state, getters, rootState) => {\n if (state.fixedPrice) {\n return state.fixedPrice + (rootState.design.injectedGiftcardAmount || 0);\n }\n return (\n getters.totalDesignablesBasePrice +\n (rootState.design.injectedGiftcardAmount || 0)\n );\n }\n};\nconst actions = {};\nconst mutations = {\n setFixedPrice(state, price) {\n state.fixedPrice = price;\n },\n setCurrencySymbol(state, symbol) {\n state.currencySymbol = symbol;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n};\n","/* eslint no-shadow: [\"error\", { \"allow\": [\"state\", \"getters\", \"rootState\"] }] */\nconst state = {\n unpersonalisedVariantPath: null,\n unpersonalisedVariantAnalyticsId: null,\n disableClearText: false\n};\nconst getters = {\n currentTips: (state, getters, rootState) => {\n const tips = [];\n if (getters.canShowClearTextTip) {\n tips.push({\n title: \"editor.tips.clear-text.heading\",\n description: \"editor.tips.clear-text.description\",\n cta: \"editor.tips.clear-text.cta\",\n actionPath: \"design/clearText\",\n class: \"bg-duck-egg\",\n buttonClass: \"btn-link cursor-pointer\",\n hideOnClick: true,\n dismissable: true,\n dismissClass: \"hover:bg-duck-egg-1\",\n analyticsEvent: \"Clicked Leave Blank\",\n analyticsProperties: {\n product_id: rootState.design.product.prefixed_analytics_id\n }\n });\n }\n\n if (state.unpersonalisedVariantPath) {\n tips.push({\n title: \"editor.tips.get-unpersonalised.heading\",\n description: \"editor.tips.get-unpersonalised.description\",\n cta: \"editor.tips.get-unpersonalised.cta\",\n actionPath: \"design/tips/goToUnpersonalisedVariant\",\n class: \"bg-pink\",\n buttonClass: \"btn-link cursor-pointer\",\n hideOnClick: false\n });\n }\n\n return tips;\n },\n canShowClearTextTip: (state, getters, rootState) => {\n return (\n !state.disableClearText &&\n rootState.design.activeSheet &&\n rootState.design.activeSheet.can_clear_text &&\n !rootState.design.activeStockItem &&\n !rootState.design.activeEnvelopes &&\n !rootState.design.activeDesignable.optionallyHidden &&\n rootState.design.canvas?.editable &&\n !!rootState.design.canvas.textObjects().length &&\n rootState.design.canvas.textObjects().some(textObject => {\n return textObject.text !== \"\";\n })\n );\n }\n};\nconst actions = {\n goToUnpersonalisedVariant({ state }) {\n analytics.track(\"Selected Unpersonalised Variant From Editor\", {\n stockItemId: state.unpersonalisedVariantAnalyticsId\n });\n window.location.href = state.unpersonalisedVariantPath;\n }\n};\nconst mutations = {\n setUnpersonalisedVariantPath(state, url) {\n state.unpersonalisedVariantPath = url;\n },\n setUnpersonalisedVariantAnalyticsId(state, id) {\n state.unpersonalisedVariantAnalyticsId = id;\n },\n setDisableClearText(state, flag) {\n state.disableClearText = flag;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n};\n","/* eslint no-shadow: [\"error\", { \"allow\": [\"state\", \"getters\", \"rootState\"] }] */\nimport { clone } from \"lodash-es\";\nimport swapper from \"../../../utils/swapTemplate\";\n\nconst state = {\n variationAttributes: []\n};\nconst getters = {\n showVariationsPanel: state => state.variationAttributes.length > 0,\n visibleOptionsForAttribute: () => (attribute, currentVariation) =>\n // go through each of the attribute's options\n attribute.options.filter(option =>\n // we need to check the for the other attributes of the option (i.e. not the attribute we are looking at)\n // if the other attributes for the option are the same as the current variation in the editor\n // then we include the option. We ignore the current attribute.\n Object.keys(currentVariation.variationInfo).every(\n key =>\n parseInt(key, 10) === attribute.id ||\n currentVariation.variationInfo[key] ===\n option.product.variationInfo[key]\n )\n ),\n getFabricFromDesignables: () => designables => {\n const designable = designables.find(des => !des.optionallyHidden);\n return designable.designable_sheets.find(sheet => !sheet.hidden);\n },\n getImageFrames: () => fabricObject =>\n JSON.parse(fabricObject)\n .objects.filter(obj => obj.type === \"imageframe\")\n .map(obj =>\n (({ top, left, width, height }) => ({ top, left, width, height }))(obj)\n ),\n shouldRecenterImage: (state, getters) => (oldFabric, newFabric) => {\n const oldImageFrames = getters.getImageFrames(oldFabric);\n const newImageFrames = getters.getImageFrames(newFabric);\n return !(JSON.stringify(oldImageFrames) === JSON.stringify(newImageFrames));\n }\n};\nconst actions = {\n selectOption(\n { getters, commit, rootState, dispatch },\n { product, designables }\n ) {\n commit(\"design/setProduct\", clone(product), { root: true });\n const recenter = getters.shouldRecenterImage(\n rootState.design.canvas.jsonRepresentation(),\n getters.getFabricFromDesignables(designables).fabric\n );\n const images = swapper.extractImages(rootState.design.canvas);\n const captions = swapper.extractCaptions(rootState.design.canvas);\n const callback = canvas => {\n swapper.swapTemplate(\n canvas,\n getters.getFabricFromDesignables(designables),\n {\n recenter,\n removeCaptions: false,\n selectImage: !rootState.responsiveMode && recenter,\n images,\n captions\n }\n );\n dispatch(\n \"design/setSheetEdited\",\n {\n sheet: getters.getFabricFromDesignables(designables),\n edited: canvas.uneditedEditableObjects().length === 0\n },\n { root: true }\n );\n };\n commit(\"design/setVariationsSwapCallback\", callback, { root: true });\n commit(\"design/setOriginalDesignables\", designables, { root: true });\n commit(\"design/setDesignables\", designables, { root: true });\n if (!rootState.design.designId) {\n window.history.replaceState(\n { product },\n product.name,\n product.customisePath\n );\n }\n }\n};\nconst mutations = {\n setVariationAttributes(state, variationAttributes) {\n state.variationAttributes = variationAttributes;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n};\n","import api from \"./index\";\n\nexport default {\n async createOrUpdate(\n id,\n designables,\n baseProductId,\n productIds,\n justSave,\n templatedPreviewImage\n ) {\n try {\n if (id) {\n const response = await api.put(`/saved_dynamic_bundles/${id}`, {\n design: {\n designables\n },\n dynamic_bundle_id: baseProductId,\n dynamic_bundle_product_ids: productIds,\n just_save: justSave,\n dynamic_bundle_templated_preview_image: templatedPreviewImage\n });\n return response;\n }\n const response = await api.post(\"/saved_dynamic_bundles\", {\n design: {\n designables\n },\n dynamic_bundle_id: baseProductId,\n dynamic_bundle_product_ids: productIds,\n just_save: justSave,\n dynamic_bundle_templated_preview_image: templatedPreviewImage\n });\n return response;\n } catch (error) {\n return false;\n }\n }\n};\n","/* eslint no-shadow: [\"error\", { \"allow\": [\"state\", \"getters\"] }] */\nimport { Brut } from \"@/components/brut/src/index.ts\";\nimport savedDesign from \"../../api/savedDesign\";\nimport savedBundle from \"../../api/savedBundle\";\n\nimport images from \"./design/images\";\nimport merge from \"./design/merge\";\nimport navigation from \"./design/navigation\";\nimport pricing from \"./design/pricing\";\nimport tips from \"./design/tips\";\nimport variations from \"./design/variations\";\nimport savedDynamicBundle from \"../../api/savedDynamicBundle\";\n\nconst state = {\n id: null,\n isInCart: false,\n isInCartAsSample: false,\n designables: [],\n originalDesignables: [],\n activeDesignable: null,\n activeStockItem: null,\n activeSheet: null,\n bundleStockItems: [],\n designId: null,\n product: {},\n newText: \"\",\n guestCheckoutEnabled: false,\n itemsPanelVisibility: true,\n customiseAlertModalShowing: false,\n imageMenuOpen: false,\n flow: null,\n maxRepetitionsPerDesign: 3,\n showUnedited: false,\n hasSeenCustomiseAlertModal: false,\n activeImageTab: \"photosTab\",\n variationsSwapCallback: null,\n isB2BFlow: false,\n initialQty: null,\n designableAppeared: false,\n photos: null,\n hasInteractedWithThicknessRadioButtons: false,\n hasSeenLeaveBlankModal: false,\n alreadyInCart: false,\n allowInjectedCredit: false,\n injectedGiftcardAmount: false,\n giftcardObject: null,\n addingQrCode: false,\n showMobileStickersMessage: false,\n isWeddingItem: false,\n hasUnsavedChanges: false,\n layerDragging: false,\n isPlaceCard: false,\n previewPath: null,\n quickAddIds: [],\n baseProductId: null,\n productIds: null\n};\n\nconst getters = {\n undoRedoAvailable: state =>\n state.canvas?.history?.undoAvailable ||\n state.canvas?.history?.redoAvailable,\n showFlexibleEditorPanel: state =>\n state.isWeddingItem && state.flow !== \"merge_flow\" && !state.isPlaceCard,\n isSimpleFlow: state => state.flow === \"simple_flow\",\n activeDesignableIndex: state =>\n state.designables.indexOf(state.activeDesignable),\n designableHasThickness: state => state.designables.some(des => des.thick),\n showOrderSample: state =>\n !state.designables[0].optionallyHidden && state.product.sample.enabled,\n visibleSheets: state =>\n state.activeDesignable\n ? state.activeDesignable.designable_sheets.filter(sheet => !sheet.hidden)\n : [],\n isDynamicBundle: state => state.product.type === \"DynamicBundle\",\n allVisibleSheets: state =>\n state.designables\n .flatMap(designable => designable.designable_sheets)\n .filter(sheet => !sheet.hidden),\n excludedDesignables: state =>\n state.designables.filter(designable => designable.optionallyHidden),\n includedDesignables: state =>\n state.designables.filter(designable => !designable.optionallyHidden),\n abilityToHideEnabled: (state, getters) =>\n getters.includedDesignables.length > 1,\n customisedAndIncludedDesignables: (state, getters) =>\n getters.includedDesignables.filter(designable => designable.customised),\n allDesignablesCustomised: (state, getters) =>\n getters.customisedAndIncludedDesignables.length ===\n getters.includedDesignables.length,\n firstUncustomisedData: (state, getters) => {\n const [designable] = getters.includedDesignables.filter(\n des => !des.customised\n );\n return {\n designable,\n sheet: designable.designable_sheets.filter(\n sheet => !sheet.hidden && !sheet.edited\n )[0]\n };\n },\n designableCounts(state) {\n return state.designables.reduce((counts, designable) => {\n if (!designable.optionallyHidden) {\n const typeId = designable.designable_type_id;\n counts[typeId] = (counts[typeId] || 0) + 1;\n }\n return counts;\n }, {});\n },\n usesHugeLayout: state => state.activeSheet.width > 700,\n productId: state => {\n if (state.product.type === \"Product\") {\n return state.product.id;\n }\n return `${state.product.type.toUpperCase()}-${state.product.id}`;\n },\n prefixedAnalyticsId(state) {\n return state.product.prefixed_analytics_id;\n },\n designablesForSave: state =>\n state.designables.map(\n ({ canvases, baseDesignable, ...designable }) => designable\n ),\n saveParams: (state, getters) => ({\n designables: getters.designablesForSave\n }),\n eventParams: (state, getters) => ({\n analytics_id: getters.prefixedAnalyticsId,\n name: state.product.name\n }),\n repetitionsOfDesignable: state => designable =>\n state.designables.filter(des => des.id === designable.id).length,\n excludedRepetitionsOfDesignable: (state, getters) => designable =>\n getters.excludedDesignables.filter(des => des.id === designable.id).length,\n includedRepetitionsOfDesignable: (state, getters) => designable =>\n getters.includedDesignables.filter(des => des.id === designable.id).length,\n highestRepetitionKey: state =>\n Math.max(\n 0,\n ...state.designables\n .filter(des => !!des.repetition_key)\n .map(des => des.repetition_key)\n ),\n showDesignableOverlay: state =>\n state.activeDesignable.optionallyHidden && !state.activeStockItem,\n isMergeFlow: state => state.flow === \"merge_flow\",\n isMultipleFlow: state => state.flow === \"multiple_flow\",\n allSheets: state =>\n state.designables.map(designable => designable.designable_sheets).flat(),\n allowAddToCart: (state, _getters, rootState) => {\n if (state.alreadyInCart) return true;\n if (rootState.loggedIn) return true;\n\n return state.guestCheckoutEnabled;\n },\n shouldShowInjectableGiftcard: (state, getters) => {\n // The second visible sheet is either the inside of the card\n // or the inside left of the card depending on whether or not\n // the giftcard is injected.\n if (!state.allowInjectedCredit) return false;\n\n return state.activeSheet.id === getters.visibleSheets[1].id;\n }\n};\n\nconst actions = {\n setSheetPreview({ getters, state }) {\n getters.visibleSheets.forEach(sheet => {\n if (!sheet.preview && state.activeDesignable.canvases[sheet.id]) {\n sheet.preview =\n state.activeDesignable.canvases[sheet.id].imageRepresentation();\n }\n });\n },\n preloadCanvases({ getters }, element) {\n getters.allVisibleSheets.forEach(sheet => {\n /* eslint-disable no-param-reassign */\n element.width = sheet.width;\n element.height = sheet.height;\n const renderer = new Brut(element, {});\n renderer.init();\n renderer.loadOffscreen(sheet.fabric, () => {\n sheet.preview = sheet.preview || renderer.imageRepresentation();\n sheet.svg = sheet.svg || renderer.svgRepresentation();\n sheet.skodix_svg =\n sheet.skodix_svg || renderer.skodixSvgRepresentation();\n renderer.dispose();\n });\n });\n },\n async setActiveSheet({ state, commit, dispatch }, data) {\n if (\n !state.activeSheet ||\n state.activeSheet.id !== data.sheet.id ||\n state.activeSheet.repetition_key !== data.sheet.repetition_key\n ) {\n await commit(\"saveActiveSheet\");\n commit(\"setActiveSheet\", data.sheet);\n if (\n state.activeDesignable.merge_strings &&\n state.activeDesignable.merge_strings.length\n ) {\n dispatch(\"merge/resetMerge\");\n }\n if (\n state.hasSeenCustomiseAlertModal &&\n !data.designable.optionallyHidden\n ) {\n dispatch(\"flashShowUnedited\");\n }\n }\n },\n setActiveDesignable({ commit, dispatch }, data) {\n commit(\"setActiveDesignable\", data.designable);\n commit(\"setActiveStockItem\", null);\n if (data.sheet) {\n dispatch(\"setActiveSheet\", data);\n } else {\n const [newActiveSheet] = data.designable.designable_sheets.filter(\n sheet => !sheet.hidden\n );\n dispatch(\"setActiveSheet\", {\n designable: data.designable,\n sheet: newActiveSheet\n });\n }\n },\n async setActiveStockItem({ commit, state }, item) {\n if (state.activeSheet) {\n await commit(\"saveActiveSheet\");\n }\n commit(\"setActiveStockItem\", item);\n },\n startAgain({ state, dispatch, rootState }) {\n if (\n window.confirm(\n \"Do you really want to start again? This will reset the text and/or images on this sheet to defaults\"\n )\n ) {\n state.canvas.startAgain();\n if (!state.designId) {\n dispatch(\"setSheetEdited\", { sheet: state.activeSheet, edited: false });\n }\n if (state.flow === \"card_flow\" && rootState.responsiveMode) {\n state.canvas.setMobileCardMessage();\n }\n }\n },\n async setSheetEdited({ commit, getters }, data) {\n commit(\"setSheetEdited\", data);\n commit(\n \"setCustomised\",\n getters.visibleSheets.filter(sheet => !sheet.edited).length === 0\n );\n },\n setHasUnsavedChanges({ commit, rootState }, hasUnsavedChanges) {\n if (hasUnsavedChanges && !rootState.responsiveMode) {\n window.onbeforeunload = () => true;\n } else {\n window.onbeforeunload = null;\n }\n commit(\"setHasUnsavedChanges\", hasUnsavedChanges);\n },\n async readyToSend({ dispatch, commit, getters }, force = false) {\n await commit(\"saveActiveSheet\");\n if (force || getters.allDesignablesCustomised) {\n analytics.track(\"Submitted Design\", getters.eventParams);\n commit(\"setLoading\", true, { root: true });\n if (this.state.loggedIn) {\n await dispatch(\"addSavedDesignToCart\");\n } else {\n window.localStorage.setItem(\"addingCard\", true);\n await dispatch(\"saveDesign\");\n }\n } else {\n commit(\"setCustomiseAlertModalShowing\", true);\n throw new Error(\"Not all customised yet\");\n }\n },\n async addToCart({ dispatch, commit, getters }, { force = false } = {}) {\n if (!force && !getters.allDesignablesCustomised) {\n dispatch(\"setSheetPreview\");\n commit(\"setCustomiseAlertModalShowing\", true);\n throw new Error(\"Not all customised yet\");\n }\n\n dispatch(\"merge/resetMerge\");\n await commit(\"saveActiveSheet\");\n\n analytics.track(\"Submitted Design\", getters.eventParams);\n commit(\"setCustomiseAlertModalShowing\", false);\n commit(\"merge/setMergeAlertModalShowing\", false);\n commit(\"setLoading\", true, { root: true });\n if (state.product.type === \"Product\") {\n if (force || getters[\"merge/blankMergeInputsCount\"] === 0) {\n await dispatch(\"addSavedDesignToCart\");\n } else {\n dispatch(\"merge/fixMergeToCurrentIndex\");\n commit(\"merge/setMergeAlertModalShowing\", true);\n commit(\"setLoading\", false, { root: true });\n throw new Error(\"Some inputs are still blank.\");\n }\n } else if (getters.isDynamicBundle) {\n await dispatch(\"addSavedDynamicBundleToCart\");\n } else {\n await dispatch(\"addSavedBundleToCart\");\n }\n },\n async addSavedDesignToCart({ dispatch, commit, getters, rootState }) {\n dispatch(\"merge/fixMergeToCurrentIndex\");\n await dispatch(\"preview/generateTemplatedPreviewImage\", null, {\n root: true\n });\n\n const response = await savedDesign.createOrUpdate(\n this.state.design.designId,\n getters.saveParams,\n this.state.design.product.id,\n false,\n rootState.directSend.postcardAddressId,\n rootState.preview.templatedPreviewImage\n );\n if (response) {\n if (getters.allowAddToCart) {\n if (\n state.hasInteractedWithThicknessRadioButtons &&\n getters.designableHasThickness\n ) {\n analytics.track(\"Double Thickness Added From Editor\", {\n product_id: `PRODUCT-${this.state.design.product.analytics_id}`\n });\n }\n commit(\"setDesignId\", response.data.design_id);\n dispatch(\"setHasUnsavedChanges\", false);\n window.history.replaceState(\n null,\n null,\n `${window.countryCode}/saved_designs/${response.data.design_id}`\n );\n if (\n this.state.design.flow === \"card_flow\" &&\n !this.state.design.isInCart\n ) {\n commit(\"setLoading\", false, { root: true });\n if (rootState.directSend.indirectSendAvailable) {\n commit(\"directSend/setCardModalShowing\", true, { root: true });\n } else {\n commit(\"directSend/setSendToThemModalShowing\", true, {\n root: true\n });\n }\n } else if (state.quickAddIds) {\n const queryString = state.quickAddIds\n .map(id => {\n return `quick_add_ids[]=${id}`;\n })\n .join(\"&\");\n\n window.location = `${window.countryCode}/saved_designs/${response.data.design_id}/review?${queryString}`;\n } else {\n window.location = `${window.countryCode}/saved_designs/${response.data.design_id}/review`;\n }\n } else {\n dispatch(\"setHasUnsavedChanges\", false);\n const showLoginModalEvent = new CustomEvent(\"showLoginModal\");\n window.dispatchEvent(showLoginModalEvent);\n analytics.track(\"Prompted Login\", getters.eventParams);\n commit(\"setLoading\", false, { root: true });\n }\n } else {\n // Handle error\n }\n },\n async addSavedBundleToCart({ commit, getters, dispatch, rootState }) {\n await dispatch(\"preview/generateTemplatedPreviewImage\", null, {\n root: true\n });\n const response = await savedBundle.createOrUpdate(\n this.state.design.designId,\n this.state.design.designables,\n this.state.design.product.id,\n false,\n rootState.preview.templatedPreviewImage\n );\n if (response) {\n if (getters.allowAddToCart) {\n commit(\"setDesignId\", response.data.design_id);\n dispatch(\"setHasUnsavedChanges\", false);\n window.history.replaceState(\n null,\n null,\n `${window.countryCode}/saved_bundles/${response.data.design_id}`\n );\n window.location = `${window.countryCode}/saved_bundles/${response.data.design_id}/review`;\n } else {\n dispatch(\"setHasUnsavedChanges\", false);\n const showLoginModalEvent = new Event(\"showLoginModal\");\n window.dispatchEvent(showLoginModalEvent);\n analytics.track(\"Prompted Login\", getters.eventParams);\n commit(\"setLoading\", false, { root: true });\n }\n } else {\n // Handle error\n }\n },\n async addSavedDynamicBundleToCart({ commit, dispatch, rootState }) {\n await dispatch(\"preview/generateTemplatedPreviewImage\", null, {\n root: true\n });\n const response = await savedDynamicBundle.createOrUpdate(\n this.state.design.designId,\n this.state.design.designables,\n this.state.design.baseProductId,\n this.state.design.productIds,\n false,\n rootState.preview.templatedPreviewImage\n );\n if (response) {\n commit(\"setDesignId\", response.data.design_id);\n dispatch(\"setHasUnsavedChanges\", false);\n window.history.replaceState(\n null,\n null,\n `${window.countryCode}/saved_dynamic_bundles/${response.data.design_id}`\n );\n window.location = `${window.countryCode}/saved_dynamic_bundles/${response.data.design_id}/review`;\n }\n },\n async showSampleModal({ commit }) {\n await commit(\"saveActiveSheet\");\n commit(\"setSampleModalOpen\", true, { root: true });\n },\n async addSample({ getters, commit, dispatch, rootState }) {\n analytics.track(\"Added Sample\", getters.eventParams);\n commit(\"setLoading\", true, { root: true });\n await commit(\"saveActiveSheet\");\n await dispatch(\"preview/generateTemplatedPreviewImage\", null, {\n root: true\n });\n const response = await savedDesign.createOrUpdate(\n this.state.design.designId,\n getters.saveParams,\n this.state.design.product.id,\n true,\n rootState.directSend.postcardAddressId,\n rootState.preview.templatedPreviewImage\n );\n\n dispatch(\"setHasUnsavedChanges\", false);\n if (getters.allowAddToCart) {\n await savedDesign.addSample(response.data.design_id);\n window.location = `${window.countryCode}/basket`;\n } else {\n window.localStorage.addingSample = true;\n const showLoginModalEvent = new Event(\"showLoginModal\");\n window.dispatchEvent(showLoginModalEvent);\n analytics.track(\"Prompted Login\", getters.eventParams);\n commit(\"setLoading\", false, { root: true });\n }\n },\n async saveDesign({ dispatch, commit, getters }, share = false) {\n dispatch(\"setSheetPreview\");\n\n analytics.track(\"Saved Design\", getters.eventParams);\n await commit(\"saveActiveSheet\");\n commit(\"setLoading\", true, { root: true });\n if (state.product.type === \"Product\") {\n await dispatch(\"saveSavedDesign\", share);\n } else {\n await dispatch(\"saveSavedBundle\");\n }\n },\n async saveSavedDesign(\n { commit, getters, dispatch, rootState },\n share = false\n ) {\n dispatch(\"merge/fixMergeToCurrentIndex\");\n await dispatch(\"preview/generateTemplatedPreviewImage\", null, {\n root: true\n });\n const response = await savedDesign.createOrUpdate(\n this.state.design.designId,\n getters.saveParams,\n this.state.design.product.id,\n true,\n rootState.directSend.postcardAddressId,\n rootState.preview.templatedPreviewImage\n );\n if (response) {\n if (this.state.loggedIn) {\n commit(\"setDesignId\", response.data.design_id);\n commit(\"setPreviewPath\", response.data.preview_path);\n\n dispatch(\"setHasUnsavedChanges\", false);\n window.history.replaceState(\n null,\n null,\n `${window.countryCode}/saved_designs/${response.data.design_id}`\n );\n dispatch(\n \"flashMessages/showFlashMessage\",\n {\n message: share\n ? \"editor.flash.preview-link-copied\"\n : \"editor.flash.design-saved\",\n type: \"success\",\n hideable: false,\n messageProps: share\n ? null\n : {\n link: `${window.countryCode}/account/saved_designs`,\n linkTitle: \"editor.flash.view-saved-designs\"\n }\n },\n { root: true }\n );\n commit(\"setLoading\", false, { root: true });\n } else {\n dispatch(\"setHasUnsavedChanges\", false);\n const showLoginModalEvent = new Event(\"showLoginModal\");\n window.dispatchEvent(showLoginModalEvent);\n analytics.track(\"Prompted Login\", getters.eventParams);\n commit(\"setLoading\", false, { root: true });\n }\n } else {\n // Handle error\n }\n },\n async saveSavedBundle({ dispatch, commit, getters, rootState }) {\n await dispatch(\"preview/generateTemplatedPreviewImage\", null, {\n root: true\n });\n const response = await savedBundle.createOrUpdate(\n this.state.design.designId,\n this.state.design.designables,\n this.state.design.product.id,\n true,\n rootState.preview.templatedPreviewImage\n );\n if (response) {\n if (this.state.loggedIn) {\n commit(\"setDesignId\", response.data.design_id);\n dispatch(\"setHasUnsavedChanges\", false);\n window.history.replaceState(\n null,\n null,\n `${window.countryCode}/saved_bundles/${response.data.design_id}`\n );\n commit(\"setLoading\", false, { root: true });\n } else {\n dispatch(\"setHasUnsavedChanges\", false);\n const showLoginModalEvent = new Event(\"showLoginModal\");\n window.dispatchEvent(showLoginModalEvent);\n analytics.track(\"Prompted Login\", getters.eventParams);\n commit(\"setLoading\", false, { root: true });\n }\n } else {\n // Handle error\n }\n },\n setCustomiseAlertModalShowing({ commit, getters, dispatch }, flag) {\n commit(\"setCustomiseAlertModalShowing\", flag);\n analytics.track(\"Clicked Show Me Unedited Areas\", {\n product_id: getters.prefixedAnalyticsId\n });\n if (!flag) {\n dispatch(\"setActiveDesignable\", getters.firstUncustomisedData);\n dispatch(\"flashShowUnedited\");\n commit(\"setShowItemsPanelWarnings\", true, { root: true });\n commit(\"setActiveStockItem\", null);\n commit(\"setItemsPanelVisibility\", false);\n }\n },\n flashShowUnedited({ commit }) {\n setTimeout(() => {\n commit(\"setShowUnedited\", true);\n setTimeout(() => commit(\"setShowUnedited\", false), 1500);\n }, 500);\n },\n resizeTextToFit() {\n state.canvas.resizeTextToFit();\n },\n setDesignableHidden(\n { state, commit, getters, dispatch },\n { designable, hidden }\n ) {\n commit(\"setDesignableHidden\", { designable, hidden });\n if (!hidden) {\n // i.e, we are adding a designable\n dispatch(\"setActiveDesignable\", { designable });\n commit(\"setObjectOverlaysAreFlashing\", \"true\", { root: true });\n } else if (designable === state.activeDesignable) {\n // i.e. we are hiding the active designable\n dispatch(\"setActiveDesignable\", {\n designable: getters.includedDesignables[0]\n });\n }\n if (designable.repeatable) {\n const action = hidden ? \"removeExtraCopy\" : \"addExtraCopy\";\n dispatch(action, designable);\n }\n },\n addExtraCopy({ state, commit, getters }, designable) {\n // we only want to add another option to repeat\n // the designable if we have less than the maximum already in the panel\n if (\n getters.repetitionsOfDesignable(designable) ===\n state.maxRepetitionsPerDesign\n )\n return;\n\n const newDesignable = JSON.parse(designable.baseDesignable);\n newDesignable.baseDesignable = designable.baseDesignable;\n newDesignable.repetition_key =\n getters.highestRepetitionKey + 1 ||\n getters.repetitionsOfDesignable(designable);\n newDesignable.designable_sheets.forEach(sheet => {\n sheet.repetition_key =\n getters.highestRepetitionKey + 1 ||\n getters.repetitionsOfDesignable(designable);\n });\n newDesignable.canvases = {};\n\n commit(\"addExtraCopyOfDesignable\", newDesignable);\n },\n removeExtraCopy({ commit, getters }, designable) {\n // We only ever want to show one extra copy of a repeatable\n // designable, so if we have more than one, delete the last\n // one\n if (getters.excludedRepetitionsOfDesignable(designable) > 1) {\n commit(\"removeDesignable\", designable);\n }\n },\n clearSelection({ state }) {\n state.canvas.clearSelection();\n },\n clearText({ state }) {\n if (\n window.confirm(\n \"Are you sure you want to clear the text from this page? You should do this if you want to write this part by hand\"\n )\n ) {\n state.canvas.clearText();\n }\n },\n addQrCode({ state }, { url, foregroundColour, boundingBox }) {\n state.canvas.addQrCode({ url, foregroundColour, boundingBox });\n },\n insertPostcardAddress({ state }, address) {\n state.canvas.addPostcardAddress(address);\n },\n setInitialDesignableQty({ state, commit }) {\n if (state.initialQty) {\n commit(\"setActiveDesignableQty\", state.initialQty);\n }\n },\n setInjectedGiftcardAmount({ state, commit, dispatch }, amount) {\n const adding = amount && !state.injectedGiftcardAmount;\n commit(\"setGiftcardProperties\", amount);\n commit(\"setInjectedGiftcardAmount\", amount);\n if (adding) {\n dispatch(\"addDefaultGiftcardSheet\");\n } else {\n state.giftcardObject.setAmount(amount);\n }\n },\n async addDefaultGiftcardSheet({ state, dispatch, getters }) {\n // eslint-disable-next-line no-unused-vars\n const [_front, insideLeft, inside] = getters.visibleSheets;\n\n insideLeft.name += \" (Gift credit)\";\n inside.name += \" (Your message)\";\n\n const amendedFabric = JSON.parse(inside.fabric);\n amendedFabric.objects = amendedFabric.objects.filter(\n object => object.type === \"image\"\n );\n\n insideLeft.fabric = JSON.stringify(amendedFabric);\n\n await dispatch(\"setActiveSheet\", {\n designable: state.activeDesignable,\n sheet: insideLeft\n });\n },\n async removeGiftcard({ state, commit, dispatch, getters }) {\n const [frontSheet, insideLeft, inside] = getters.visibleSheets;\n\n insideLeft.name = insideLeft.name.replace(\" (Gift credit)\", \"\");\n inside.name = inside.name.replace(\" (Your message)\", \"\");\n\n state.giftcardObject.remove();\n\n dispatch(\n \"flashMessages/showFlashMessage\",\n {\n message: \"editor.mobile-editor.gift-credit.mobile-modal.delete-flash\",\n type: \"success\"\n },\n { root: true }\n );\n\n await dispatch(\"setActiveSheet\", {\n designable: state.activeDesignable,\n sheet: frontSheet\n });\n commit(\"setInjectedGiftcardAmount\", null);\n commit(\"setGiftcardProperties\", null);\n commit(\"setGiftcardObject\", null);\n }\n};\n\nconst mutations = {\n setImageMenu(state, flag) {\n state.imageMenuOpen = flag;\n },\n setDesignables(state, designables) {\n state.designables = designables.map(designable => {\n /* eslint-disable no-param-reassign */\n designable.canvases = {};\n return designable;\n });\n [state.activeDesignable] = state.designables.filter(\n designable => !designable.optionallyHidden\n );\n [state.activeSheet] = state.activeDesignable.designable_sheets.filter(\n sheet => !sheet.hidden\n );\n state.activeDesignable.qty = state.initialQty || state.activeDesignable.qty;\n const showItemsPanel =\n state.flow === \"merge_flow\" || state.designables.length > 1;\n state.itemsPanelVisibility = showItemsPanel;\n },\n setOriginalDesignables(state, designables) {\n state.originalDesignables = designables;\n },\n setDesignId(state, designId) {\n state.designId = designId;\n },\n setPreviewPath(state, previewPath) {\n state.previewPath = previewPath;\n },\n setIsInCart(state, isInCart) {\n state.isInCart = isInCart;\n },\n setIsInCartAsSample(state, isInCartAsSample) {\n state.isInCartAsSample = isInCartAsSample;\n },\n setActiveDesignable(state, designable) {\n state.activeDesignable = designable;\n state.activeStockItem = null;\n },\n setActiveDesignableQty(state, qty) {\n state.activeDesignable.qty = qty;\n },\n setActiveStockItem(state, item) {\n state.activeStockItem = item;\n },\n setActiveSheet(state, sheet) {\n state.activeSheet = sheet;\n state.activeStockItem = null;\n if (state.activeDesignable.canvases[sheet.id]) {\n state.canvas = state.activeDesignable.canvases[sheet.id];\n }\n },\n async saveActiveSheet(state) {\n if (\n !state.activeStockItem &&\n state.canvas.imageRepresentation &&\n state.canvas.getObjects().length > 0\n ) {\n state.activeSheet.preview = state.canvas.imageRepresentation();\n state.activeSheet.fabric = state.canvas.jsonRepresentation();\n state.activeSheet.svg = state.canvas.svgRepresentation();\n state.activeSheet.skodix_svg = state.canvas.skodixSvgRepresentation();\n state.activeSheet.images = state.canvas.imageArrayRepresentation();\n\n if (\n state.activeDesignable.merge_strings &&\n state.activeDesignable.merge_strings.length\n ) {\n state.activeSheet.merge_svgs = state.activeDesignable.merge_strings.map(\n string => {\n state.canvas.resetPredefinedStrings(string);\n return state.canvas.svgRepresentation();\n }\n );\n\n state.activeSheet.merge_skodix_svgs =\n state.activeDesignable.merge_strings.map(string => {\n state.canvas.resetPredefinedStrings(string);\n return state.canvas.skodixSvgRepresentation();\n });\n }\n\n if (state.flow === \"merge_flow\") {\n state.activeSheet.svg = state.canvas.snapBlankPredefinedStringSvg();\n }\n }\n },\n setCanvasForSheet(state, data) {\n state.activeDesignable.canvases[data.sheet.id] = data.canvas;\n if (state.activeSheet === data.sheet) {\n state.canvas = state.activeDesignable.canvases[data.sheet.id];\n if (state.variationsSwapCallback) {\n state.variationsSwapCallback(state.canvas);\n state.variationsSwapCallback = null;\n }\n }\n },\n setCustomised(state, flag) {\n state.activeDesignable.customised = flag;\n },\n setBundleStockItems(state, bundleStockItems) {\n state.bundleStockItems = bundleStockItems;\n },\n setGuestCheckoutEnabled(state, guestCheckoutEnabled) {\n state.guestCheckoutEnabled = guestCheckoutEnabled;\n },\n setProduct(state, product) {\n state.product = product;\n },\n setSheetEdited(state, data) {\n const sheetCopy = data.sheet;\n sheetCopy.edited = data.edited;\n },\n setHasUnsavedChanges(state, flag) {\n state.hasUnsavedChanges = flag;\n },\n setItemsPanelVisibility(state, itemsPanelVisibility) {\n state.itemsPanelVisibility = itemsPanelVisibility;\n },\n setNewText(state, newText) {\n state.newText = newText;\n },\n setCustomiseAlertModalShowing(state, flag) {\n state.customiseAlertModalShowing = flag;\n // if we are closing the modal (i.e. looking at unedited issues)\n // queue force add to cart button to show\n // after a short delay (after modal closes)\n if (!flag) {\n setTimeout(() => {\n state.hasSeenCustomiseAlertModal = true;\n }, 2000);\n }\n },\n setDesignableHidden(state, { designable, hidden }) {\n state.designables.filter(des => designable === des)[0].optionallyHidden =\n hidden;\n },\n setFlow(state, flow) {\n state.flow = flow;\n },\n setIsB2BFlow(state, flag) {\n state.isB2BFlow = flag;\n },\n setInitialQty(state, qty) {\n state.initialQty = qty;\n },\n addExtraCopyOfDesignable(state, designable) {\n const index =\n state.designables.map(des => des.id).lastIndexOf(designable.id) + 1;\n state.designables.splice(index, 0, designable);\n },\n removeDesignable(state, designable) {\n state.designables.splice(state.designables.indexOf(designable), 1);\n },\n setShowUnedited(state, flag) {\n state.showUnedited = flag;\n },\n setActiveImageTab(state, tab) {\n state.activeImageTab = tab;\n },\n setActiveDesignableMergeStrings(state, strings) {\n state.activeDesignable.merge_strings = strings;\n },\n setActiveDesignableMergeStringsAtIndex(state, { index, strings }) {\n state.activeDesignable.merge_strings[index] = strings;\n },\n setVariationsSwapCallback(state, callback) {\n state.variationsSwapCallback = callback;\n },\n setDesignableAppeared(state, flag) {\n state.designableAppeared = flag;\n },\n setPhotos(state, photos) {\n state.photos = photos;\n },\n setHasSeenLeaveBlankModal(state, flag) {\n state.hasSeenLeaveBlankModal = flag;\n },\n setAlreadyInCart(state, flag) {\n state.alreadyInCart = flag;\n },\n setAllowInjectedCredit(state, flag) {\n state.allowInjectedCredit = flag;\n },\n setGiftcardProperties(state, amount) {\n state.activeDesignable.designable_sheets[2].giftcard_amount = amount;\n state.activeDesignable.designable_sheets[2].hidden = !amount;\n },\n setInjectedGiftcardAmount(state, amount) {\n state.injectedGiftcardAmount = amount;\n },\n setGiftcardObject(state, object) {\n state.giftcardObject = object;\n },\n setAddingQrCode(state, flag) {\n state.addingQrCode = flag;\n },\n setShowMobileStickersMessage(state, flag) {\n state.showMobileStickersMessage = flag;\n },\n setIsWeddingItem(state, flag) {\n state.isWeddingItem = flag;\n },\n setIsPlaceCard(state, flag) {\n state.isPlaceCard = flag;\n },\n setLayerDragging(state, dragging) {\n state.layerDragging = dragging;\n },\n setThicknessForDesignable(state, { designable, thickness }) {\n const index = state.designables.map(des => des.id).indexOf(designable.id);\n state.designables[index].thick = thickness;\n state.hasInteractedWithThicknessRadioButtons = true;\n },\n setQuickAddIds(state, quickAddIds) {\n state.quickAddIds = quickAddIds;\n },\n setBaseProductId(state, baseProductId) {\n state.baseProductId = baseProductId;\n },\n setProductIds(state, productIds) {\n state.productIds = productIds;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n modules: {\n images,\n merge,\n navigation,\n pricing,\n tips,\n variations\n }\n};\n"],"names":["assignIn","createAssigner","object","source","copyObject","keysIn","nativeCeil","nativeMax","baseRange","start","end","step","fromRight","index","length","result","createRange","isIterateeCall","toFinite","range","savedBundle","id","designables","bundleId","justSave","templatedPreviewImage","api","state","getters","rootState","stringSet","key","string","font","weight","style","extend","cloned","clone","actions","commit","strings","dispatch","stringsToSet","rootGetters","newStringsCount","bestQty","qty","sizes","value","updateAll","originalKey","mutations","flag","merge","sheets","flatten","designable","sheet","stockItems","stockItem","item","type","navigation","rooState","thickPricingValues","normalPricingValues","thickPrice","standardPrice","a","b","price","symbol","pricing","tips","_a","textObject","url","attribute","currentVariation","option","des","fabricObject","obj","top","left","width","height","oldFabric","newFabric","oldImageFrames","newImageFrames","product","recenter","images","swapper","captions","canvas","variationAttributes","variations","savedDynamicBundle","baseProductId","productIds","_b","_d","_c","counts","typeId","canvases","baseDesignable","_getters","element","renderer","Brut","data","newActiveSheet","hasUnsavedChanges","force","response","savedDesign","queryString","showLoginModalEvent","share","hidden","newDesignable","foregroundColour","boundingBox","address","amount","adding","_front","insideLeft","inside","amendedFabric","frontSheet","showItemsPanel","designId","previewPath","isInCart","isInCartAsSample","bundleStockItems","guestCheckoutEnabled","sheetCopy","itemsPanelVisibility","newText","flow","tab","callback","photos","dragging","thickness","quickAddIds","designStore"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}