{"version":3,"file":"PreviewContent-D4HtaGYW.js","sources":["../../../app/javascript/components/shared/NavigationButton.vue","../../../app/javascript/components/shared/PreviewContent.vue"],"sourcesContent":["<template>\n <a\n href=\"#\"\n class=\"navigation-button\"\n @click.prevent=\"$emit('navigate')\">\n <svg-icon\n :name=\"iconName\"\n class=\"block\" />\n </a>\n</template>\n\n<script>\nimport SvgIcon from \"./SvgIcon.vue\";\n\nexport default {\n name: \"NavigationButton\",\n components: {\n SvgIcon\n },\n props: {\n isNextButton: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"navigate\"],\n computed: {\n iconName() {\n return this.isNextButton ? \"rightarrow\" : \"leftarrow\";\n }\n }\n};\n</script>\n<style lang=\"scss\">\n.navigation-button {\n height: 32px;\n width: 32px;\n background: var(--paper-1);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 4px 0 rgba(0, 12, 27, 0.08);\n\n @media screen and (min-width: $screen-md-min) {\n height: 42px;\n width: 42px;\n }\n}\n\n.navigation-button.previous {\n left: 0;\n}\n\n.navigation-button.next {\n right: 0;\n}\n</style>\n","<template>\n <a\n v-if=\"showZoomButton && currentObject.type !== 'flickthrough'\"\n class=\"button btn-large btn-secondary cursor-pointer absolute top-4 left-4 z-3 flex items-center\"\n @click=\"zoomImages\">\n <svg-icon\n name=\"zoom\"\n class=\"self-start mr-3\"\n height=\"20px\"\n width=\"20px\" />\n {{ t(\"cart.item.preview.zoom\") }}\n </a>\n <fade-transition>\n <overlay\n v-if=\"loading\"\n key=\"loader\"\n absolutely-positioned />\n <div\n v-else\n key=\"preview\"\n class=\"flex flex-col h-full sm:pb-3\">\n <div\n v-if=\"!loading\"\n class=\"flex flex-col h-full min-height-0 justify-center\">\n <div\n :class=\"imagePreviewContainerClasses\"\n class=\"flex items-center justify-center h-auto min-height-0 relative\">\n <fade-transition>\n <navigation-button\n v-show=\"canShowPrevious\"\n class=\"navigation-button previous absolute z-2 ml-2\"\n :class=\"{ 'pointer-events-none': !canShowPrevious }\"\n data-cy=\"previous-button-on-preview-modal\"\n @navigate=\"previous\" />\n </fade-transition>\n <div\n v-if=\"isGiftcard\"\n class=\"disable-link-click mx-3 md:mx-0\"\n v-html=\"currentObject.data\"></div>\n <div\n v-else-if=\"currentObject.type === 'image'\"\n :style=\"imageContainerStyles\"\n class=\"image-container relative block mx-3 md:mx-0\">\n <img\n :src=\"currentObject.data\"\n class=\"preview-image\" />\n <img\n v-if=\"currentObject.backing_image\"\n :src=\"currentObject.backing_image.url\"\n :style=\"backingImageStyle\"\n class=\"modal-backing-image\" />\n </div>\n <div\n v-else-if=\"currentObject.type === 'flickthrough'\"\n class=\"mx-3 md:mx-0 pointer-events-none br-1 book-cover\"\n :style=\"coverStyles\">\n <div\n class=\"image-container relative block book-cover-inner-preview\">\n <div class=\"flex h-full w-full\">\n <img\n :src=\"currentObject.data\"\n class=\"w-1/2 flickthrough-image\" />\n <img\n :src=\"objects[currentObjectIndex + 1].data\"\n class=\"w-1/2 flickthrough-image\" />\n </div>\n <img\n :src=\"bookOverlay\"\n class=\"overlay-image absolute\" />\n </div>\n </div>\n <div\n v-else\n class=\"h-full\"\n :class=\"[\n photobookCoverClass,\n { 'w-4/5 md:w-2/3': !contentForModal && currentObject.photobook }\n ]\"\n :style=\"photobookCoverStyles\">\n <div class=\"flex items-center h-full photobook-preview-inner\">\n <div\n v-for=\"(image, index) in canvasPreviewImages\"\n :key=\"index\"\n class=\"image-container md:mx-0\"\n :class=\"imageClasses\">\n <img\n :src=\"image\"\n class=\"preview-image\"\n data-cs-mask />\n </div>\n </div>\n </div>\n <fade-transition>\n <navigation-button\n v-show=\"canShowNext\"\n is-next-button\n class=\"navigation-button next z-2 absolute mr-2\"\n :class=\"[{ 'pointer-events-none': !canShowNext }]\"\n data-cy=\"next-button-on-preview-modal\"\n @navigate=\"next\" />\n </fade-transition>\n </div>\n <div class=\"inline-flex items-center justify-center my-6\">\n <a\n href=\"#\"\n class=\"flex mr-4 w-4 h-4 text-ink-3 hover:text-ink\"\n :class=\"{\n 'navigation-disabled': !shouldShowFirstSheetButton\n }\"\n @click.prevent=\"goToFirstSheet\">\n <svg-icon\n name=\"double-leftarrow\"\n class=\"m-auto\"\n height=\"10px\"\n width=\"10px\" />\n </a>\n <div class=\"text-center\">\n <div\n v-if=\"currentObject.name\"\n class=\"typeset-6 mr-2\">\n {{ currentObject.name }}\n </div>\n ({{ currentObjectIndex + 1 }}\n <span v-if=\"canvasPreviewImages.length > 1\">\n & {{ currentObjectIndex + 2 }}\n </span>\n <span class=\"mx-2\">/</span>\n {{ objects.length }})\n </div>\n <a\n href=\"#\"\n class=\"flex ml-4 w-4 h-4 text-ink-3 hover:text-ink\"\n :class=\"{ 'navigation-disabled': !shouldShowLastSheetButton }\"\n @click.prevent=\"goToLastSheet\">\n <svg-icon\n name=\"double-rightarrow\"\n class=\"m-auto\"\n height=\"10px\"\n width=\"10px\" />\n </a>\n </div>\n </div>\n </div>\n </fade-transition>\n <div class=\"off-screen-container\">\n <canvas\n ref=\"previewCanvas\"\n width=\"500\"\n height=\"500\"></canvas>\n </div>\n</template>\n\n<script>\nimport { Brut } from \"@/components/brut/src/index.ts\";\nimport { TextBox } from \"@/components/brut/src/objects/textBox/textBox.ts\";\nimport defaults from \"@/app/javascript/utils/admin/design/defaultCanvasObjects\";\nimport bookOverlay from \"@/app/javascript/images/flickthrough/overlay.png\";\nimport FadeTransition from \"../transitions/FadeTransition.vue\";\nimport NavigationButton from \"./NavigationButton.vue\";\nimport Overlay from \"./Overlay.vue\";\nimport SvgIcon from \"./SvgIcon.vue\";\n\nexport default {\n name: \"PreviewContent\",\n components: {\n FadeTransition,\n NavigationButton,\n Overlay,\n SvgIcon\n },\n props: {\n objects: {\n type: Array,\n default: () => []\n },\n objectIndex: {\n type: Number,\n default: 0\n },\n admin: {\n type: Boolean,\n default: false\n },\n showZoomButton: {\n type: Boolean,\n default: false\n },\n photobookCoverImage: {\n type: String,\n default: null\n },\n contentForModal: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"closed\"],\n data() {\n return {\n currentObjectIndex: 0,\n canvasPreviewImages: [],\n loading: true,\n bookOverlay,\n hasViewed3d: false,\n showPhotobookCoverSpread: false,\n togglePhotobookCoverSpreadStatus: false\n };\n },\n computed: {\n coverStyles() {\n if (!this.currentObject.cover) return {};\n\n return {\n backgroundImage: `url(${this.currentObject.cover})`\n };\n },\n imagePreviewContainerClasses() {\n if (!this.contentForModal && !this.currentObject.photobook) {\n return null;\n }\n if (!this.contentForModal && this.currentObject.photobook) {\n return \"py-5\";\n }\n if (this.currentObject.backing_image) {\n return \"p-7\";\n }\n return \"pt-7 px-5 pb-5\";\n },\n isGiftcard() {\n return this.currentObject.type === \"html\";\n },\n isPhotobookCover() {\n const isFirstPage = this.currentObjectIndex === 0;\n const isLastPage = this.currentObjectIndex === this.objects.length - 1;\n return (isFirstPage || isLastPage) && this.currentObject.photobook;\n },\n photobookCoverClass() {\n if (this.currentObject.photobook && this.photobookCoverImage) {\n return {\n \"photobook-cover-spread\": this.showPhotobookCoverSpread\n };\n }\n return null;\n },\n previewModalSize() {\n return this.isGiftcard ? \"\" : \"fullscreen\";\n },\n currentObject() {\n return this.objects[this.currentObjectIndex];\n },\n nextObject() {\n return this.objects[this.currentObjectIndex + 1];\n },\n canShowPrevious() {\n return this.currentObjectIndex > 0;\n },\n canShowNext() {\n return this.currentObjectIndex < this.objects.length - 1;\n },\n imageContainerStyles() {\n if (!this.currentObject.backing_image) return null;\n const { width } = this.currentObject.backing_image;\n const { height } = this.currentObject.backing_image;\n return {\n maxWidth: `${width}px`,\n maxHeight: `${height}px`\n };\n },\n imageClasses() {\n return {\n \"photobook-page\": this.currentObject.photobook\n };\n },\n photobookCoverStyles() {\n if (this.currentObject.photobook && this.photobookCoverImage) {\n return {\n backgroundImage: `url(${this.photobookCoverImage})`\n };\n }\n return null;\n },\n backingImageStyle() {\n const widthRatio = this.currentObject.backing_image.width_ratio * 100;\n const heightRatio = this.currentObject.backing_image.height_ratio * 100;\n return {\n width: `${widthRatio}%`,\n height: `${heightRatio}%`\n };\n },\n formattedReturnAddress() {\n return address => {\n return [\n address.line_1,\n address.line_2,\n address.line_3,\n address.line_4,\n address.line_5,\n address.line_6\n ]\n .filter(Boolean)\n .join(\"\\n\");\n };\n },\n shouldShowFirstSheetButton() {\n return this.objects.length > 4 && this.currentObjectIndex > 0;\n },\n shouldShowLastSheetButton() {\n return (\n this.objects.length > 4 &&\n this.currentObjectIndex < this.objects.length - 1\n );\n },\n nonFlickthroughObjects() {\n return this.objects.filter(obj => obj.type !== \"flickthrough\");\n },\n isCentralPage() {\n if (\n this.currentObjectIndex === 0 ||\n this.currentObjectIndex === this.objects.length - 1\n ) {\n return false;\n }\n\n return true;\n }\n },\n watch: {\n isPhotobookCover() {\n this.togglePhotobookCoverSpreadStatus = true;\n },\n currentObject(object) {\n this.setUpCanvas(object);\n }\n },\n mounted() {\n this.currentObjectIndex = this.objectIndex;\n this.setUpCanvas(this.currentObject);\n },\n methods: {\n previous() {\n if (this.currentObject.photobook) {\n if (this.currentObjectIndex === 1) {\n this.currentObjectIndex -= 1;\n } else {\n this.currentObjectIndex -= 2;\n }\n } else if (\n this.objects[this.currentObjectIndex - 1].type === \"flickthrough\"\n ) {\n this.currentObjectIndex -= 2;\n } else {\n this.currentObjectIndex -= 1;\n }\n },\n next() {\n if (this.currentObject.photobook) {\n if (this.currentObjectIndex === 0) {\n this.currentObjectIndex += 1;\n } else {\n this.currentObjectIndex += 2;\n }\n } else if (\n this.currentObject.type === \"flickthrough\" &&\n this.objects[this.currentObjectIndex + 1].type === \"flickthrough\"\n ) {\n this.currentObjectIndex += 2;\n } else {\n this.currentObjectIndex += 1;\n }\n },\n async setUpCanvas({ type, data, photobook = false }) {\n const vm = this;\n const stagedImages = [];\n if ([\"sheet\", \"merge\"].includes(type)) {\n const image = await this.loadStandardCanvas(data, type);\n stagedImages.push(image);\n\n // only load the secondary sheet if it's a photobook and we're on the central page\n if (photobook && this.isCentralPage) {\n const sisterImage = await this.loadStandardCanvas(\n this.nextObject.data,\n this.nextObject.type\n );\n stagedImages.push(sisterImage);\n }\n if (this.togglePhotobookCoverSpreadStatus) {\n this.showPhotobookCoverSpread = !this.showPhotobookCoverSpread;\n this.togglePhotobookCoverSpreadStatus = false;\n }\n this.canvasPreviewImages = stagedImages;\n } else if (type === \"preview_template\") {\n this.loadPreviewTemplateCanvas(data);\n } else {\n vm.loading = false;\n }\n },\n loadStandardCanvas(data, type) {\n return new Promise(resolve => {\n this.$refs.previewCanvas.width = data.width;\n this.$refs.previewCanvas.height = data.height;\n const offScreenCanvas = new Brut(this.$refs.previewCanvas, {\n offscreen: true,\n foilCanvasRequired: true\n });\n offScreenCanvas.init();\n offScreenCanvas.loadOffscreen(data.fabric, () => {\n if (type === \"merge\") {\n offScreenCanvas.resetPredefinedStrings(data.strings);\n }\n if (data.return_address || data.recipient_address) {\n const envelopeDefaults = data.return_address\n ? defaults.returnEnvelopeTextBox()\n : defaults.recipientEnvelopeTextBox();\n\n const text = new TextBox(offScreenCanvas, envelopeDefaults);\n\n text.init();\n if (data.return_address) {\n text.insertString(\n this.formattedReturnAddress(data.return_address)\n );\n }\n if (data.recipient_address) {\n text.insertString(\n this.formattedReturnAddress(data.recipient_address)\n );\n }\n offScreenCanvas.insertAt(text, 1).then(() => {\n offScreenCanvas.refreshObjects();\n offScreenCanvas.renderAll();\n });\n }\n const image = offScreenCanvas.imageRepresentation();\n offScreenCanvas.dispose();\n this.loading = false;\n resolve(image);\n });\n });\n },\n loadPreviewTemplateCanvas(data) {\n this.$refs.previewCanvas.width = data.width;\n this.$refs.previewCanvas.height = data.height;\n const offScreenCanvas = new Brut(this.$refs.previewCanvas, {\n offscreen: true,\n foilCanvasRequired: true,\n perspectiveCanvasRequired: true\n });\n offScreenCanvas.init();\n offScreenCanvas.loadOffscreen(data.fabric, async () => {\n const [perspectiveImage] = offScreenCanvas.perspectiveImages();\n if (perspectiveImage) {\n await perspectiveImage.setImageUrl(data.image);\n }\n const image = offScreenCanvas.imageRepresentation(null, true);\n this.canvasPreviewImages = [image];\n offScreenCanvas.dispose();\n this.loading = false;\n });\n },\n goToFirstSheet() {\n this.currentObjectIndex = 0;\n },\n goToLastSheet() {\n this.currentObjectIndex = this.objects.length - 1;\n },\n zoomImages() {\n const imageIndex = this.nonFlickthroughObjects.findIndex(\n obj => obj.data === this.currentObject.data\n );\n window.dispatchEvent(\n new CustomEvent(\"clickedImage\", {\n detail: imageIndex\n })\n );\n }\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.preview-image {\n max-width: 100%;\n\n @media (min-width: $screen-sm-min) {\n margin-left: 50%;\n transform: translateX(-50%);\n max-width: 100%;\n max-height: 100%;\n }\n}\n\n.editor-preview {\n .preview-image {\n @media (min-width: $screen-sm-min) {\n max-height: 70vh;\n }\n }\n}\n\n.modal-backing-image {\n @media (min-width: $screen-sm-min) {\n transform: translate(-50%, -50%);\n }\n}\n\n.overlay-image {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n\n &.spiral {\n top: -1px;\n }\n}\n\n.min-height-0 {\n min-height: 0;\n}\n\n.navigation-disabled {\n opacity: 0;\n pointer-events: none;\n}\n\n.image-container,\n.book-cover {\n height: 100%;\n}\n\n.book-cover {\n aspect-ratio: 750 / 520;\n background-size: cover;\n transform: scaleX(-1);\n padding: 3px 8px;\n position: relative;\n border-radius: 2px;\n box-shadow:\n 5px 5px 10px rgba(0, 0, 0, 0.3),\n -5px 0 10px rgba(0, 0, 0, 0.3);\n\n @media screen and (min-width: 768px) {\n padding: 5px 15px;\n }\n\n .book-cover-inner-preview {\n transform: scaleX(-1);\n }\n\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-shadow: inset 0px 0px 10px rgba(0, 0, 0, 0.4); /* Inner shadow */\n z-index: 0;\n }\n}\n\n.photobook-cover-spread {\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n padding: 0.75%;\n box-shadow:\n 5px 5px 10px rgba(0, 0, 0, 0.3),\n -5px 0 10px rgba(0, 0, 0, 0.3);\n border-radius: 2px;\n background-size: cover;\n transform: scaleX(-1);\n\n .photobook-preview-inner {\n transform: scaleX(-1);\n }\n\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: -1;\n border-radius: 10px;\n border-radius: inherit;\n background-image: inherit;\n background-size: cover;\n background-position: center;\n }\n}\n\n.photobook-page {\n position: relative;\n box-shadow:\n 5px 5px 10px #0000004d,\n -5px 0 10px #0000004d;\n\n &:after {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 5;\n }\n}\n</style>\n"],"names":["_sfc_main","SvgIcon","_createElementBlock","_cache","_withModifiers","_ctx","_createVNode","_component_svg_icon","$options","FadeTransition","NavigationButton","Overlay","bookOverlay","isFirstPage","isLastPage","width","height","widthRatio","heightRatio","address","obj","object","type","data","photobook","vm","stagedImages","image","sisterImage","resolve","offScreenCanvas","Brut","envelopeDefaults","defaults","text","TextBox","perspectiveImage","imageIndex","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_17","_openBlock","_Fragment","$props","args","_createTextVNode","_createCommentVNode","_component_fade_transition","_withCtx","$data","_createBlock","_component_overlay","_hoisted_1","_hoisted_2","_createElementVNode","_normalizeClass","_component_navigation_button","_normalizeStyle","_renderList","index","_hoisted_15","_toDisplayString","_hoisted_16","_hoisted_18"],"mappings":"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"}