{"version":3,"file":"menu-generator.min.js","names":["MenuGenerator","MenuformatVal","MenuformatPerY","OutPutFormatVal","isResolutionChangeVal","MenuImageSrc","menuGenSliderOptions","index","options","infinite","slidesToShow","slidesToScroll","initialSlide","rows","responsive","breakpoint","settings","arrows","stringTranslation","stringVar","only_numbers","eval","resizeBoxEl","el","logoTextBoxEl","$","menuPriceBoxEl","wrapperWidth","width","wrapper_initial_width","newElWidth","css","transform","getSlidIndexBySlideId","slideId","slideList","i","length","id","document","ready","slick","startSliders","jQueryMarkSelectedImage","sliderId","removeClass","classList","add","ids","elId","slideStartIndex","backgoundImageId","backgoundImageList","surfaceImageId","surfaceImageList","dishId","dishList","snackId","snackList","drinkId","drinkList","logoId","logoList","secondLogoId","downloadFile","url","fileExtension","link","createElement","href","download","body","appendChild","click","removeChild","menuGeneratorVue","Vue","mixins","dragResizeElementsMixin","subCategoriesFilteringMixin","data","tab","window","selectedBackgroundImageURL","selectedSurfaceImageURL","selectedDishImageURL","selectedDishName","selectedDrinkImageURL","selectedDrinkName","selectedSnackImageURL","selectedSnackName","selectedLogoImageURL","selectedSecondLogoImageURL","format","formatMask","menuHeadline","menuText","menuPrice","menuPriceRules","numeric","v","pattern","test","includeMenuDescription","fileType","mealSnackbar","fileForDownload","isLoading","menuName","openNameDialog","menuNameRules","isFormValid","saveDraftErrorMsg","showErrorSnackbar","isDraftSaveActive","isInitialCalculateFormat","methods","selectBackground","e","markSelectedImage","currentTarget","selectSurface","selectDish","selectSnack","selectDrink","selectLogo","selectSecondLogo","typeId","dataId","requiredIdsList","dataValue","dataset","$refs","custom_logo_input","includes","getSelectedImageURL","list","elString","image","JSON","parse","stringify","find","obj","parseInt","prev_url","getSelectedElementName","element","name","markAsActiveElementById","prefix","refString","startInTabSliders","formatCalc","a","b","calculateFormat","formatVal","val","resetTextBoxPositionSize","resetPriceBoxPosition","$nextTick","callDragResizeJS","setStartPositionForAllDraggableResizableElements","dataForSending","textBoxPositionSize","textBox","priceBoxPosition","priceBox","printDownload","_this","jQuery","ajax","type","print_download_url","contentType","dataType","done","console","log","fail","err","always","setTimeout","saveDraft","save_draft_url","res","status","dataForSendingSaveDraft","MenuName","Format","BackgoundImageID","SurfaceImageID","DishImageID","SnackImageID","DrinkImageID","LogoImageID","Headline","Text","Price","IncludeMenuDescription","UserID","Json","S3ImageUrl","TextBoxPositionSize","PriceBoxPosition","printDownloadCropImage","uiResizableHandle","getElementsByClassName","dataLayer","push","getFilenameFromPath","menuCrop","getElementById","date","Date","timestamp","getFullYear","toString","getMonth","padLeft","getDate","getMinutes","getSeconds","kendo","drawing","drawDOM","scale","GetScaleFactor","offsetWidth","offsetHeight","then","group","exportImage","saveAs","dataURI","fileName","remove","exportPDF","paperSize","saveDraftNew","dataMenu","menuPriceVal","saveDraftMessage","Id","url_savedraftmenu","menugenerator","isMenuUpdate","location","replace","updateDraft","url_updatedraftmenu","mounted","watch","handler","oldVal","deep","Boolean","vuetify","Vuetify","VUETIFY_OPTIONS","maxOutputWidth","maxOutputHeight","height","Number","prototype","base","chr","len","String","Array","join","str","substring","lastIndexOf","split","calculateMenuPreview","menuPreview","menuPreviewHeight","outerHeight","menuPreviewWidth","h","w","calculateHelperSquare","helperSquare","helperSquareWidthHeight","menuPreviewMeasures"],"sources":["menu-generator.js"],"sourcesContent":["//Custom Code Injected Start---//\r\n\r\nvar MenuGenerator = \"\";\r\nvar MenuformatVal = \"menuboard_16-9\";\r\nvar MenuformatPerY = 56.25;\r\nvar OutPutFormatVal = \"JPG\";\r\nvar isResolutionChangeVal = true;\r\nvar MenuImageSrc = \"\";\r\n\r\n//Custom Code Injected End---//\r\n\r\nfunction menuGenSliderOptions(index) {\r\n var options = {\r\n infinite: false,\r\n slidesToShow: 3,\r\n slidesToScroll: 1,\r\n initialSlide: index,\r\n rows: 0,\r\n responsive: [\r\n {\r\n breakpoint: 1200,\r\n settings: {\r\n arrows: false,\r\n },\r\n },\r\n ],\r\n };\r\n // console.log(\"options :>> \", options);\r\n return options;\r\n}\r\n\r\nfunction stringTranslation(stringVar) {\r\n var only_numbers = \"Chiffre uniquement\";\r\n\r\n return eval(stringVar);\r\n}\r\n\r\nfunction resizeBoxEl(el) {\r\n var logoTextBoxEl = $(\".logo-text-box\");\r\n var menuPriceBoxEl = $(\".menu-price-box\");\r\n // var wrapperWidth = $('.format-display-val').width();\r\n var wrapperWidth = $(\".menu-preview-box\").width();\r\n var wrapper_initial_width = 710;\r\n\r\n var newElWidth = wrapperWidth / wrapper_initial_width;\r\n if (el === \"print_a4\" || el === \"just_eat_1-1\") {\r\n newElWidth = newElWidth * 1.5;\r\n }\r\n if (wrapperWidth < 600) {\r\n logoTextBoxEl.css({\r\n transform: \"scale(\" + newElWidth + \")\",\r\n });\r\n }\r\n}\r\n\r\nfunction getSlidIndexBySlideId(slideId, slideList) {\r\n var el;\r\n\r\n for (let i = 0; i < slideList.length; i++) {\r\n if (slideList[i].id === slideId) {\r\n el = slideList[i];\r\n el.index = i;\r\n break;\r\n }\r\n }\r\n\r\n return el.index;\r\n}\r\n\r\n$(document).ready(function () {\r\n resizeBoxEl();\r\n\r\n // Initialize all sliders\r\n $(\"#background-image-slider\").slick(menuGenSliderOptions(5));\r\n $(\"#surface-image-slider\").slick(menuGenSliderOptions(0));\r\n $(\"#dish-image-slider\").slick(menuGenSliderOptions(1));\r\n $(\"#snack-image-slider\").slick(menuGenSliderOptions(1));\r\n $(\"#drink-image-slider\").slick(menuGenSliderOptions(1));\r\n $(\"#logo-image-slider\").slick(menuGenSliderOptions(1));\r\n $(\"#second-logo-image-slider\").slick(menuGenSliderOptions(1));\r\n\r\n startSliders([\"background-image-slider\", \"surface-image-slider\"]);\r\n});\r\n\r\nfunction jQueryMarkSelectedImage(el, sliderId) {\r\n $(\"#\" + sliderId + \" .bis-item\").removeClass(\"active\");\r\n el.classList.add(\"active\");\r\n}\r\n\r\nfunction startSliders(ids) {\r\n for (var i = 0; i < ids.length; i++) {\r\n var elId = ids[i];\r\n var slideStartIndex;\r\n\r\n // unslick / destroy a each slick instance\r\n $(\"#\" + elId).slick(\"unslick\");\r\n\r\n\r\n switch (elId) {\r\n case \"background-image-slider\":\r\n slideStartIndex = getSlidIndexBySlideId(backgoundImageId, backgoundImageList);\r\n break;\r\n case \"surface-image-slider\":\r\n slideStartIndex = getSlidIndexBySlideId(surfaceImageId, surfaceImageList);\r\n break;\r\n case \"dish-image-slider\":\r\n // -1 because first element in array is empty/delete-image\r\n slideStartIndex = getSlidIndexBySlideId(dishId, dishList) - 1;\r\n break;\r\n case \"snack-image-slider\":\r\n // -1 because first element in array is empty/delete-image\r\n slideStartIndex = getSlidIndexBySlideId(snackId, snackList) - 1;\r\n break;\r\n case \"drink-image-slider\":\r\n // -1 because first element in array is empty/delete-image\r\n slideStartIndex = getSlidIndexBySlideId(drinkId, drinkList) - 1;\r\n break;\r\n case \"logo-image-slider\":\r\n // -2 because first element in array is empty/delete-image and second element is upload custom logo\r\n slideStartIndex = getSlidIndexBySlideId(logoId, logoList) - 2;\r\n break;\r\n case \"second-logo-image-slider\":\r\n slideStartIndex = getSlidIndexBySlideId(secondLogoId, logoList) - 2;\r\n break;\r\n default:\r\n slideStartIndex = 0;\r\n }\r\n\r\n // initiate each slick instance with updated settings - initialSlide\r\n $(\"#\" + elId).slick(menuGenSliderOptions(slideStartIndex));\r\n }\r\n}\r\n\r\nfunction downloadFile(url, fileExtension) {\r\n var link = document.createElement(\"a\");\r\n link.href = url;\r\n link.download = \"menu.\" + fileExtension;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n}\r\n\r\nvar menuGeneratorVue = new Vue({\r\n el: \"#PFS_menuGenerator\",\r\n mixins: [dragResizeElementsMixin, subCategoriesFilteringMixin],\r\n\r\n data() {\r\n return {\r\n tab: \"subscribe\",\r\n\r\n // Background images\r\n backgoundImageList: window.backgoundImageList,\r\n backgoundImageId: window.backgoundImageId,\r\n selectedBackgroundImageURL: null,\r\n\r\n // Surface images\r\n surfaceImageList: window.surfaceImageList,\r\n surfaceImageId: window.surfaceImageId,\r\n selectedSurfaceImageURL: null,\r\n\r\n // Dish images\r\n dishList: window.dishList,\r\n dishId: window.dishId,\r\n selectedDishImageURL: null,\r\n selectedDishName: null,\r\n\r\n // Drink images\r\n drinkList: window.drinkList,\r\n drinkId: window.drinkId,\r\n selectedDrinkImageURL: null,\r\n selectedDrinkName: null,\r\n\r\n // Snack images\r\n snackList: window.snackList,\r\n snackId: window.snackId,\r\n selectedSnackImageURL: null,\r\n selectedSnackName: null,\r\n\r\n // Logo images\r\n logoList: window.logoList,\r\n logoId: window.logoId,\r\n secondLogoId: window.secondLogoId,\r\n selectedLogoImageURL: null,\r\n selectedSecondLogoImageURL: null,\r\n\r\n format: window.format,\r\n formatMask: null,\r\n\r\n menuHeadline: window.menuHeadline,\r\n menuText: window.menuText,\r\n menuPrice: window.menuPrice,\r\n menuPriceRules: {\r\n numeric: function numeric(v) {\r\n const pattern = /^[0-9.,]*$/;\r\n return pattern.test(v) || stringTranslation(\"only_numbers\");\r\n },\r\n },\r\n includeMenuDescription: window.includeMenuDescription,\r\n\r\n fileType: window.fileType,\r\n\r\n mealSnackbar: false,\r\n fileForDownload: null,\r\n isLoading: false,\r\n\r\n menuName: window.menuName,\r\n openNameDialog: false,\r\n menuNameRules: [(v) => !!v || \"Menu name is required\"],\r\n isFormValid: true,\r\n saveDraftErrorMsg: \"\",\r\n showErrorSnackbar: false,\r\n isDraftSaveActive: false,\r\n\r\n isInitialCalculateFormat: true,\r\n };\r\n },\r\n\r\n methods: {\r\n selectBackground(e) {\r\n this.markSelectedImage(e.currentTarget, \"background-image-slider\", \"backgoundImageId\", \"backgroundImageId\");\r\n },\r\n selectSurface(e) {\r\n this.markSelectedImage(e.currentTarget, \"surface-image-slider\", \"surfaceImageId\", \"surfaceImageId\");\r\n },\r\n selectDish(e) {\r\n this.markSelectedImage(e.currentTarget, \"dish-image-slider\", \"dishId\", \"dishImageId\");\r\n },\r\n selectSnack(e) {\r\n this.markSelectedImage(e.currentTarget, \"snack-image-slider\", \"snackId\", \"snackImageId\");\r\n },\r\n selectDrink(e) {\r\n this.markSelectedImage(e.currentTarget, \"drink-image-slider\", \"drinkId\", \"drinkImageId\");\r\n },\r\n selectLogo(e) {\r\n this.markSelectedImage(e.currentTarget, \"logo-image-slider\", \"logoId\", \"logoImageId\");\r\n },\r\n selectSecondLogo(e) {\r\n this.markSelectedImage(e.currentTarget, \"second-logo-image-slider\", \"secondLogoId\", \"secondLogoImageId\");\r\n },\r\n\r\n markSelectedImage(el, sliderId, typeId, dataId) {\r\n const requiredIdsList = [this.dishId, this.drinkId, this.snackId];\r\n const dataValue = el.dataset[dataId];\r\n\r\n if (dataValue === \"upload_custom_logo_2\") {\r\n // Mark clicked item\r\n jQueryMarkSelectedImage(el, sliderId);\r\n\r\n this.selectedSecondLogoImageURL = dataValue;\r\n\r\n // Click on hidden upload input form\r\n // this.$refs.custom_logo_input.click();\r\n } else if (dataValue === \"upload_custom_logo\") {\r\n // Mark clicked item\r\n jQueryMarkSelectedImage(el, sliderId);\r\n\r\n // Click on hidden upload input form\r\n this.$refs.custom_logo_input.click();\r\n } else if (dataValue === \"0\") {\r\n if (sliderId === 'second-logo-image-slider') {\r\n this.selectedSecondLogoImageURL = null;\r\n }\r\n\r\n if (!requiredIdsList.includes(\"0\")) {\r\n jQueryMarkSelectedImage(el, sliderId);\r\n this[typeId] = dataValue;\r\n } else {\r\n // Hide logo independently from rest of elements\r\n if (typeId === \"logoId\") {\r\n this[typeId] = dataValue;\r\n }\r\n this.mealSnackbar = true;\r\n }\r\n } else {\r\n jQueryMarkSelectedImage(el, sliderId);\r\n this[typeId] = dataValue;\r\n }\r\n },\r\n getSelectedImageURL(list, id, elString) {\r\n const image = JSON.parse(JSON.stringify(list)).find((obj) => {\r\n return parseInt(obj.id) === parseInt(id);\r\n });\r\n this[elString] = image.prev_url;\r\n },\r\n getSelectedElementName(list, id, elString) {\r\n const element = JSON.parse(JSON.stringify(list)).find((obj) => {\r\n return parseInt(obj.id) === parseInt(id);\r\n });\r\n\r\n this[elString] = element.name;\r\n },\r\n\r\n markAsActiveElementById(prefix, id) {\r\n const refString = prefix + id;\r\n\r\n this.$refs[refString].classList.add(\"active\");\r\n },\r\n\r\n startInTabSliders(ids) {\r\n startSliders(ids);\r\n },\r\n formatCalc(a, b) {\r\n return (b / a) * 100;\r\n },\r\n calculateFormat(formatVal) {\r\n\r\n let val = 0;\r\n MenuformatVal = formatVal; //Custom Code Injected---//\r\n switch (formatVal) {\r\n case \"print_a4\":\r\n val = this.formatCalc(1, 1.4142);\r\n break;\r\n case \"menuboard_16-9\":\r\n val = this.formatCalc(16, 9);\r\n break;\r\n case \"deliveroo_hero_image_16-9\":\r\n val = this.formatCalc(16, 9);\r\n break;\r\n case \"deliveroo_product_image_4-3\":\r\n val = this.formatCalc(4, 3);\r\n break;\r\n case \"just_eat_1-1\":\r\n val = this.formatCalc(1, 1);\r\n break;\r\n case \"uber_eats_6-4\":\r\n val = this.formatCalc(6, 4);\r\n break;\r\n case \"instagram_size_4-5\":\r\n val = this.formatCalc(4, 5);\r\n break;\r\n default:\r\n this.formatMask = 0;\r\n }\r\n MenuformatPerY = val; //Custom Code Injected---//\r\n this.formatMask = val + \"%\";\r\n\r\n // ----------------------------------------------------------------------------------------------------------------\r\n // Text box position and size\r\n // ----------------------------------------------------------------------------------------------------------------\r\n // On every format change reset text box position and size\r\n this.resetTextBoxPositionSize();\r\n this.resetPriceBoxPosition();\r\n\r\n // After format is calculated and view is changed - prepare for jQuery UI\r\n this.$nextTick(function () {\r\n // Function from mixin - menu-generator-drag-resize-element-mixin.js\r\n this.callDragResizeJS();\r\n });\r\n // ----------------------------------------------------------------------------------------------------------------\r\n\r\n this.setStartPositionForAllDraggableResizableElements();\r\n this.isInitialCalculateFormat = false;\r\n\r\n // Helper square\r\n // setTimeout(function () {\r\n // calculateHelperSquare()\r\n // }, 300)\r\n\r\n },\r\n setStartPositionForAllDraggableResizableElements() {\r\n // Set absolute position on objects on next format change\r\n if (!this.isInitialCalculateFormat) {\r\n setStartPositionForAllDraggableResizableElements();\r\n }\r\n },\r\n dataForSending() {\r\n return {\r\n fileType: this.fileType,\r\n backgoundImageId: this.backgoundImageId,\r\n surfaceImageId: this.surfaceImageId,\r\n dishId: this.dishId,\r\n snackId: this.snackId,\r\n drinkId: this.drinkId,\r\n format: this.format,\r\n logoId: this.logoId,\r\n secondLogoId: this.secondLogoId,\r\n menuHeadline: this.menuHeadline,\r\n menuText: this.menuText,\r\n menuPrice: this.menuPrice,\r\n menuName: this.menuName,\r\n includeMenuDescription: this.includeMenuDescription,\r\n textBoxPositionSize: this.textBox,\r\n priceBoxPosition: this.priceBox,\r\n };\r\n },\r\n\r\n printDownload() {\r\n const data = JSON.stringify(this.dataForSending());\r\n this.isLoading = true;\r\n const _this = this;\r\n\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: window.print_download_url,\r\n data: data,\r\n contentType: \"application/json; charset=utf-8\",\r\n dataType: \"json\",\r\n })\r\n .done(function () {\r\n console.log(\" success\");\r\n })\r\n .fail(function (err) {\r\n console.log(\"error: \", err);\r\n })\r\n .always(function () {\r\n console.log(\"finished printDownload\");\r\n setTimeout(function () {\r\n _this.isLoading = false;\r\n _this.fileForDownload = \"assets/menu-generator/file-to-download.jpg\";\r\n downloadFile(_this.fileForDownload, this.fileType);\r\n }, 2000);\r\n });\r\n },\r\n\r\n saveDraft() {\r\n const data = JSON.stringify(this.dataForSending());\r\n const _this = this;\r\n // _this.isDraftSaved = false;\r\n _this.isDraftSaveActive = false;\r\n // :disabled=\"!menuName\"\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: window.save_draft_url,\r\n data: data,\r\n contentType: \"application/json; charset=utf-8\",\r\n dataType: \"json\",\r\n })\r\n .done(function (res) {\r\n if (res.status === \"success\") {\r\n _this.openNameDialog = false;\r\n } else {\r\n _this.isDraftSaveActive = true;\r\n }\r\n })\r\n .fail(function (err) {\r\n console.log(\"error dd: \", err);\r\n })\r\n .always(function () {\r\n console.log(\"finished saveDraft\");\r\n _this.isDraftSaveActive = true;\r\n });\r\n },\r\n\r\n //--Custom code Injected Start\r\n\r\n dataForSendingSaveDraft() {\r\n return (MenuGenerator = {\r\n MenuName: this.menuName,\r\n Format: this.format,\r\n BackgoundImageID: $(\"#hdnBackgroundImageId\").val(),\r\n SurfaceImageID: $(\"#hdnSurfaceImageId\").val(),\r\n DishImageID: $(\"#hdnDishImageId\").val(),\r\n SnackImageID: $(\"#hdnSnackImageId\").val(),\r\n DrinkImageID: $(\"#hdnDrinkImageId\").val(),\r\n LogoImageID: $(\"#hdnLogoImageId\").val(),\r\n Headline: this.menuHeadline,\r\n Text: this.menuText,\r\n Price: this.menuPrice,\r\n IncludeMenuDescription: this.includeMenuDescription,\r\n UserID: $(\"#hdnUserId\").val(),\r\n Json: \"\",\r\n S3ImageUrl: MenuImageSrc,\r\n TextBoxPositionSize: JSON.stringify(this.textBox),\r\n PriceBoxPosition: JSON.stringify(this.priceBox)\r\n // Text\r\n });\r\n },\r\n\r\n //--Custom code Injected Start\r\n\r\n // dataForSendingSaveDraft() {\r\n // return (MenuGenerator = {\r\n // MenuName: this.menuName,\r\n // Format: this.format,\r\n // BackgoundImageID: $(\"#hdnBackgroundImageId\").val(),\r\n // SurfaceImageID: $(\"#hdnSurfaceImageId\").val(),\r\n // DishImageID: $(\"#hdnDishImageId\").val(),\r\n // SnackImageID: $(\"#hdnSnackImageId\").val(),\r\n // DrinkImageID: $(\"#hdnDrinkImageId\").val(),\r\n // LogoImageID: $(\"#hdnLogoImageId\").val(),\r\n // Headline: this.menuHeadline,\r\n // Text: this.menuText,\r\n // Price: this.menuPrice,\r\n // IncludeMenuDescription: this.includeMenuDescription,\r\n // UserID: $(\"#hdnUserId\").val(),\r\n // Json: \"\",\r\n // S3ImageUrl: MenuImageSrc,\r\n // TextBoxPositionSize: JSON.stringify(this.textBox),\r\n // PriceBoxPosition: JSON.stringify(this.priceBox)\r\n // });\r\n // },\r\n printDownloadCropImage() {\r\n this.isLoading = true;\r\n var _this = this;\r\n\r\n let uiResizableHandle = document.getElementsByClassName(\"ui-resizable-handle\");\r\n\r\n // Hide .ui-resizable-handle before printing image/pdf\r\n uiResizableHandle[0].classList.add(\"hidden\");\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'gtm.linkClick',\r\n 'dlv.action': 'Download',\r\n 'dlv.type': 'Menu Generator',\r\n 'dlv.title': this.menuHeadline,\r\n 'dlv.snack': getFilenameFromPath(this.selectedSnackImageURL),\r\n 'dlv.drink': getFilenameFromPath(this.selectedDrinkImageURL),\r\n 'dlv.brand': getFilenameFromPath(this.selectedLogoImageURL),\r\n });\r\n\r\n let menuCrop = document.getElementById(\"menu-crop\");\r\n // let menuCrop = document.getElementById(\"menu_preview\");\r\n\r\n\r\n let date = new Date();\r\n let timestamp =\r\n date.getFullYear().toString() +\r\n (date.getMonth() + 1).padLeft() +\r\n date.getDate().toString() +\r\n \"_\" +\r\n date.getMinutes().toString() +\r\n date.getSeconds().toString();\r\n\r\n if (this.fileType == \"jpg\") {\r\n\r\n kendo.drawing\r\n .drawDOM(\"#menu-crop\", {\r\n scale: GetScaleFactor(2000, 2000, menuCrop.offsetWidth, menuCrop.offsetHeight),\r\n })\r\n .then(function (group) {\r\n return kendo.drawing.exportImage(group);\r\n })\r\n .done(function (data) {\r\n // Save the image file\r\n kendo.saveAs({\r\n contentType: \"image/png\",\r\n dataURI: data,\r\n fileName: \"Menu_\" + timestamp + \".png\",\r\n });\r\n\r\n // Show .ui-resizable-handle after printing image/pdf\r\n uiResizableHandle[0].classList.remove(\"hidden\");\r\n _this.isLoading = false;\r\n\r\n });\r\n } else {\r\n kendo.drawing\r\n .drawDOM(\"#menu-crop\", {\r\n scale: GetScaleFactor(2000, 2000, menuCrop.offsetWidth, menuCrop.offsetHeight),\r\n })\r\n .then(function (group) {\r\n // Render the result as a PDF file\r\n return kendo.drawing.exportPDF(group, {\r\n paperSize: \"auto\",\r\n });\r\n })\r\n .done(function (data) {\r\n // Save the PDF file\r\n kendo.saveAs({\r\n dataURI: data,\r\n fileName: \"Menu_\" + timestamp + \".pdf\",\r\n });\r\n // Show .ui-resizable-handle after printing image/pdf\r\n uiResizableHandle[0].classList.remove(\"hidden\");\r\n _this.isLoading = false;\r\n });\r\n }\r\n // Backup closing loader after 5 sec\r\n setTimeout(function () {\r\n _this.isLoading = false;\r\n }, 5000)\r\n\r\n },\r\n\r\n saveDraftNew: function saveDraftNew() {\r\n this.isLoading = true;\r\n var _this = this;\r\n this.openNameDialog = false;\r\n\r\n var dataMenu = this.dataForSendingSaveDraft();\r\n var menuPriceVal = this.menuPrice;\r\n var saveDraftMessage = \"Success\";\r\n let menuCrop = document.getElementById(\"menu-crop\");\r\n\r\n let uiResizableHandle = document.getElementsByClassName(\"ui-resizable-handle\");\r\n\r\n // Hide .ui-resizable-handle before printing image/pdf\r\n uiResizableHandle[0].classList.add(\"hidden\");\r\n\r\n var _this = this;\r\n\r\n kendo.drawing\r\n .drawDOM(\"#menu-crop\", {\r\n scale: GetScaleFactor(400, 400, menuCrop.offsetWidth, menuCrop.offsetHeight),\r\n })\r\n .then(function (group) {\r\n return kendo.drawing.exportImage(group);\r\n })\r\n .done(function (data) {\r\n dataMenu.S3ImageUrl = data;\r\n\r\n // Show .ui-resizable-handle after printing image/pdf\r\n uiResizableHandle[0].classList.remove(\"hidden\");\r\n\r\n if ($(\"#hdnIsMenuUpdate\").val() == \"true\") {\r\n dataMenu.Id = $(\"#hdnMenuId\").val();\r\n }\r\n\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: url_savedraftmenu,\r\n data: {\r\n menugenerator: dataMenu,\r\n menuPrice: menuPriceVal,\r\n isMenuUpdate: $(\"#hdnIsMenuUpdate\").val(),\r\n },\r\n dataType: \"json\",\r\n })\r\n .done(function (data) {\r\n if (data.data != \"Success\") {\r\n _this.saveDraftErrorMsg = data.data;\r\n _this.showErrorSnackbar = true;\r\n } else {\r\n window.location.replace($(\"#hdnsavedrafturl\").val());\r\n }\r\n })\r\n .fail(function (err) {\r\n console.log(\"error: \", err);\r\n _this.saveDraftErrorMsg = \"Une erreur technique est survenue.\";\r\n _this.showErrorSnackbar = true;\r\n })\r\n .always(function () {\r\n console.log(\"finished saveDraft\");\r\n _this.isLoading = false;\r\n this.openNameDialog = false;\r\n // if (saveDraftMessage == \"Success\") {\r\n // $(\".menu-generator-message\").html('
' + saveDraftMessage + '
');\r\n // window.location.replace($(\"#hdnsavedrafturl\").val());\r\n // }\r\n // else {\r\n // $(\".menu-generator-message\").html('
' + saveDraftMessage + '
');\r\n // }\r\n });\r\n });\r\n },\r\n updateDraft: function updateDraft() {\r\n this.isLoading = true;\r\n var _this = this;\r\n this.openNameDialog = false;\r\n\r\n var data = this.dataForSendingSaveDraft();\r\n var menuPriceVal = this.menuPrice;\r\n data.Id = $(\"#hdnMenuId\").val();\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: url_updatedraftmenu,\r\n data: {menugenerator: data, menuPrice: menuPriceVal},\r\n dataType: \"json\",\r\n })\r\n .done(function () {\r\n console.log(\"success\");\r\n window.location.replace($(\"#hdnsavedrafturl\").val());\r\n })\r\n .fail(function (err) {\r\n console.log(\"error: \", err);\r\n })\r\n .always(function () {\r\n console.log(\"finished saveDraft\");\r\n _this.isLoading = false;\r\n });\r\n },\r\n\r\n //--Custom code Injected End\r\n },\r\n\r\n mounted() {\r\n // Background image\r\n this.getSelectedImageURL(this.backgoundImageList, this.backgoundImageId, \"selectedBackgroundImageURL\");\r\n\r\n // Surface image\r\n this.getSelectedImageURL(this.surfaceImageList, this.surfaceImageId, \"selectedSurfaceImageURL\");\r\n\r\n // Dish Image\r\n this.getSelectedImageURL(this.dishList, this.dishId, \"selectedDishImageURL\");\r\n this.getSelectedElementName(this.dishList, this.dishId, \"selectedDishName\");\r\n\r\n // Snack Image\r\n this.getSelectedImageURL(this.snackList, this.snackId, \"selectedSnackImageURL\");\r\n this.getSelectedElementName(this.snackList, this.snackId, \"selectedSnackName\");\r\n\r\n // Drink Image\r\n this.getSelectedImageURL(this.drinkList, this.drinkId, \"selectedDrinkImageURL\");\r\n this.getSelectedElementName(this.drinkList, this.drinkId, \"selectedDrinkName\");\r\n\r\n // Logo Image\r\n this.getSelectedImageURL(this.logoList, this.logoId, \"selectedLogoImageURL\");\r\n\r\n // Second Logo Image\r\n this.getSelectedImageURL(this.logoList, this.secondLogoId, \"selectedSecondLogoImageURL\");\r\n\r\n this.$nextTick(() => {\r\n this.markAsActiveElementById(\"background_image__\", this.backgoundImageId);\r\n this.markAsActiveElementById(\"surface_image__\", this.surfaceImageId);\r\n this.markAsActiveElementById(\"dish_image__\", this.dishId);\r\n this.markAsActiveElementById(\"snack_image__\", this.snackId);\r\n this.markAsActiveElementById(\"drink_image__\", this.drinkId);\r\n this.markAsActiveElementById(\"logo_image__\", this.logoId);\r\n this.markAsActiveElementById(\"second_logo_image__\", this.secondLogoId);\r\n });\r\n\r\n this.calculateFormat(window.format);\r\n\r\n },\r\n watch: {\r\n backgoundImageId: {\r\n handler: function (val, oldVal) {\r\n this.getSelectedImageURL(this.backgoundImageList, val, \"selectedBackgroundImageURL\");\r\n },\r\n deep: true,\r\n },\r\n // surfaceImageId: {\r\n // handler: function (val, oldVal) {\r\n // this.getSelectedImageURL(this.surfaceImageList, val, \"selectedSurfaceImageURL\");\r\n // },\r\n // deep: true,\r\n // },\r\n // dishId: {\r\n // handler: function (val, oldVal) {\r\n // this.getSelectedImageURL(this.dishList, val, \"selectedDishImageURL\");\r\n // this.getSelectedElementName(this.dishList, this.dishId, \"selectedDishName\");\r\n // },\r\n // deep: true,\r\n // },\r\n // snackId: {\r\n // handler: function (val, oldVal) {\r\n // this.getSelectedImageURL(this.snackList, val, \"selectedSnackImageURL\");\r\n // this.getSelectedElementName(this.snackList, this.snackId, \"selectedSnackName\");\r\n // },\r\n // deep: true,\r\n // },\r\n // drinkId: {\r\n // handler: function (val, oldVal) {\r\n // this.getSelectedImageURL(this.drinkList, val, \"selectedDrinkImageURL\");\r\n // this.getSelectedElementName(this.drinkList, this.drinkId, \"selectedDrinkName\");\r\n // },\r\n // deep: true,\r\n // },\r\n // logoId: {\r\n // handler: function (val, oldVal) {\r\n // this.getSelectedImageURL(this.logoList, val, \"selectedLogoImageURL\");\r\n // },\r\n // deep: true,\r\n // },\r\n // format: {\r\n // handler: function (val, oldVal) {\r\n // this.calculateFormat(val);\r\n // resizeBoxEl(val);\r\n // },\r\n // },\r\n menuName: {\r\n handler: function (val, oldVal) {\r\n this.isDraftSaveActive = Boolean(val);\r\n },\r\n deep: true,\r\n },\r\n surfaceImageId: {\r\n handler: function (val, oldVal) {\r\n this.getSelectedImageURL(this.surfaceImageList, val, \"selectedSurfaceImageURL\");\r\n },\r\n deep: true,\r\n },\r\n dishId: {\r\n handler: function (val, oldVal) {\r\n this.getSelectedImageURL(this.dishList, val, \"selectedDishImageURL\");\r\n this.getSelectedElementName(this.dishList, this.dishId, \"selectedDishName\");\r\n },\r\n deep: true,\r\n },\r\n snackId: {\r\n handler: function (val, oldVal) {\r\n this.getSelectedImageURL(this.snackList, val, \"selectedSnackImageURL\");\r\n this.getSelectedElementName(this.snackList, this.snackId, \"selectedSnackName\");\r\n },\r\n deep: true,\r\n },\r\n drinkId: {\r\n handler: function (val, oldVal) {\r\n this.getSelectedImageURL(this.drinkList, val, \"selectedDrinkImageURL\");\r\n this.getSelectedElementName(this.drinkList, this.drinkId, \"selectedDrinkName\");\r\n },\r\n deep: true,\r\n },\r\n logoId: {\r\n handler: function (val, oldVal) {\r\n this.getSelectedImageURL(this.logoList, val, \"selectedLogoImageURL\");\r\n this.getSelectedElementName(this.logoList, this.logoId, \"selectedLogoName\");\r\n },\r\n deep: true,\r\n },\r\n secondLogoId: {\r\n handler: function (val, oldVal) {\r\n this.getSelectedImageURL(this.logoList, val, \"selectedSecondLogoImageURL\");\r\n this.getSelectedElementName(this.logoList, this.secondLogoId, \"selectedLogoName\");\r\n },\r\n deep: true,\r\n },\r\n format: {\r\n handler: function (val, oldVal) {\r\n this.calculateFormat(val);\r\n resizeBoxEl(val);\r\n },\r\n },\r\n openNameDialog: {\r\n handler: function (val, oldVal) {\r\n if (this.menuName) {\r\n this.isDraftSaveActive = true;\r\n }\r\n },\r\n },\r\n },\r\n\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n});\r\n\r\nfunction GetScaleFactor(maxOutputWidth, maxOutputHeight, width, height) {\r\n let scale = 1;\r\n\r\n if (width > height) {\r\n scale = maxOutputWidth / width;\r\n } else {\r\n scale = maxOutputHeight / height;\r\n }\r\n\r\n return scale;\r\n}\r\n\r\nNumber.prototype.padLeft = function (base, chr) {\r\n var len = String(base || 10).length - String(this).length + 1;\r\n return len > 0 ? new Array(len).join(chr || \"0\") + this : this;\r\n};\r\n\r\nvar getFilenameFromPath = function (str) {\r\n var res\r\n if (str) {\r\n res = str.substring(str.lastIndexOf(\"/\") + 1).split(\"?\")[0];\r\n } else {\r\n res = \"\"\r\n }\r\n return res;\r\n};\r\n\r\n// Helper square\r\nfunction calculateMenuPreview() {\r\n var menuPreview = $('#menu_preview')\r\n var menuPreviewHeight = menuPreview.outerHeight()\r\n var menuPreviewWidth = menuPreview.width()\r\n // check orientation fo menu_preview\r\n console.log(\"menuPreviewHeight: \", menuPreviewHeight)\r\n console.log(\"menuPreviewWidth: \", menuPreviewWidth)\r\n\r\n return {h: menuPreviewHeight, w: menuPreviewWidth}\r\n}\r\n\r\nfunction calculateHelperSquare() {\r\n var helperSquare = $('#helper_square')\r\n\r\n var helperSquareWidthHeight;\r\n var menuPreviewMeasures = calculateMenuPreview()\r\n console.log(\"menuPreviewMeasures.h: \", menuPreviewMeasures.h)\r\n console.log(\"menuPreviewMeasures.w: \", menuPreviewMeasures.w)\r\n if (menuPreviewMeasures.h > menuPreviewMeasures.w) {\r\n helperSquareWidthHeight = menuPreviewMeasures.w\r\n } else {\r\n helperSquareWidthHeight = menuPreviewMeasures.h\r\n }\r\n helperSquare.height(helperSquareWidthHeight - 10)\r\n helperSquare.width(helperSquareWidthHeight - 10)\r\n // console.log(\"helperSquareWidthHeight: \", helperSquareWidthHeight)\r\n}\r\n\r\n// $(document).ready(function () {\r\n// // calculateHelperSquare()\r\n// });\r\n\r\n"],"mappings":"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"}