{"version":3,"file":"swapTemplate-yobew85b.js","sources":["../../../node_modules/lodash-es/compact.js","../../../node_modules/lodash-es/findIndex.js","../../../app/javascript/utils/swapTemplate.js"],"sourcesContent":["/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default compact;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n","import { compact, findIndex } from \"lodash-es\";\nimport Photo from \"./photo\";\n\nfunction generateFabricString({ removeCaptions }, template) {\n if (removeCaptions) {\n const json = JSON.parse(template.fabric);\n json.objects = json.objects.filter(obj => obj.type !== \"papierbox\");\n return JSON.stringify(json);\n }\n return template.fabric;\n}\n\nfunction reinsertExtractedImages(canvas, images, { recenter, selectImage }) {\n canvas.imageObjects().forEach((object, index) => {\n if (images[index]) {\n const { image, imageOptions, userRotation } = images[index];\n canvas.setImageframeImage(object, image.url, image, {\n recenter,\n selectImage,\n imageOptions,\n userRotation\n });\n canvas.checkObjectEdited(object);\n }\n });\n}\n\nfunction reinsertExtractedCaptions(canvas, captions) {\n canvas.textObjects().forEach((object, index) => {\n if (captions[index]) {\n canvas.setActiveObject(object);\n canvas.selectedTextbox = object;\n captions[index].forEach(caption => {\n canvas.updatePredefinedString(caption);\n const i = findIndex(\n object.predefinedStrings,\n string => string.key === caption.key\n );\n caption.style = object.predefinedStrings[i].style;\n caption.textBox = object;\n object.predefinedStrings[i] = caption;\n });\n canvas.checkObjectEdited(object);\n }\n });\n}\n\nexport default {\n swapTemplate(canvas, template, options) {\n const images = options.images || this.extractImages(canvas);\n const captions = template.text_only_photobook_inside\n ? null\n : options.captions || this.extractCaptions(canvas);\n\n const fabricString = generateFabricString(options, template);\n\n canvas.load(fabricString, fabricString, () => {\n reinsertExtractedImages(canvas, images, options);\n if (captions) {\n reinsertExtractedCaptions(canvas, captions);\n }\n canvas.fireEvent(\"sheet-edited\");\n canvas.selectedObject = null;\n canvas.selectedTextbox = null;\n canvas.hoveredObject = null;\n canvas.selectedImage = null;\n window.setTimeout(() => {\n canvas.clearSelection();\n if (\n !options.responsiveMode &&\n options.selectImage &&\n canvas.imageObjects().length\n ) {\n canvas.imageObjects()[0].select();\n }\n }, 100);\n });\n },\n extractImages(canvas) {\n return compact(\n canvas.imageObjects().map(obj => {\n if (!obj.imageUrl || obj.stockImage) return null;\n if (obj.imageUrl) {\n const handle = obj.imageUrl.split(\"/\").reverse()[0];\n obj.filestackImage = new Photo({ handle });\n }\n return {\n image: obj.filestackImage,\n imageOptions: obj.imageOptions,\n userRotation: obj.userRotation\n };\n })\n );\n },\n extractCaptions(canvas) {\n return canvas.textObjects().map(obj => obj.predefinedStrings);\n }\n};\n"],"names":["compact","array","index","length","resIndex","result","value","findIndex","predicate","fromIndex","baseFindIndex","baseIteratee","generateFabricString","removeCaptions","template","json","obj","reinsertExtractedImages","canvas","images","recenter","selectImage","object","image","imageOptions","userRotation","reinsertExtractedCaptions","captions","caption","i","string","swapper","options","fabricString","handle","Photo"],"mappings":"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","x_google_ignoreList":[0,1]}