{"version":3,"file":"functions.min.js","names":["signupStatus","signinStatus","signinStatusMessage","PAGE_ROOT","API_BASE_URL","PHOTOLIBITEMS_DOWNLOAD_BASE_URL","emailPattern","BASE_URL","pathArray","window","location","pathname","split","includes","getAllUrlParams","url","queryString","search","slice","obj","arr","i","length","a","paramName","paramValue","toLowerCase","match","key","replace","index","exec","push","searchForm","document","getElementById","addEventListener","event","console","log","checkValidity","classList","add","preventDefault","stopPropagation","remove","VUETIFY_OPTIONS","theme","themes","dark","light","primary","pfs_primary","pfs_primary_hover","pfs_primary_light","pfs_white","pfs_grey_lighter","pfs_grey_light","pfs_grey_middle","pfs_black","pfs_cyan","pfs_cyan_light","pfs_green","pfs_green_light","pfs_red","pfs_red_dark","pfs_red_light","pfs_orange","pfs_orange_dark","pfs_orange_light","pfs_yellow","VUE_LOAD_PAGES","stringTranslation","stringVar","e_mail_is_required","e_mail_must_be_valid","password_is_required","min_8_characters_with_at_least_one_capital_letter_a_number_and_a_special_character","the_password_confirmation_does_not_match","terms_of_service__is_required","first_name_is_required","surname_is_required","position_is_required","type_of_restaurant_is_required","address__is_required","this_field_is_required","only_numbers","must_be_","_characters","restaurant_type_is_required","restaurant_name_is_required","restaurant_address_is_required","postal_code_is_required","name_is_required","your_position_is_required","phone_number_is_required","min_8_characters","there_seems_to_be_some_technical_error","message_is_required","we_apologize_something_went_wrong_please_try_again_later","file_extension_must_be_png","eval","downloadFile","title","size","link","createElement","href","body","appendChild","click","removeChild","forEach","item","fn","DeletableCardComponent","props","data","delete_dropdown_id","show","computed","apiUrl","API_DELETE_PATH","methods","handleDeleteDropdown","id","deleteItem","fetch","method","headers","then","response","ok","$emit","Error","statusText","json","status","message","catch","error","getDataMixin","isLoading","created","getData","reset","itemList","Results","totalResults","TotalResults","totalPages","TotalPages","currentlyLoaded","progress_percent","toFixed","page","hide_paginator","updateProgressbar","PFS_pagesListMenu","Vue","el","items","text","type","vuetify","Vuetify","PFS_registrationConfirmPage","PFS_loginFormV2","isInForm","step","isStepValid_1","email","emailRules","v","test","showPass1","password","passRules","required","nextStep","signUpStep","_this","jQuery","ajax","page_data__sign_up_url","dataType","done","fail","err","always","setTimeout","watch","handler","val","oldVal","PFS_loginForm","valid","show_password","server_error","server_error_msg","rules","value","min","validEmail","loginUser","$refs","loginForm","validate","url_postlogin","username","isLoggedIn","Item1","url_afterlogin","PFS_forgotPasswordForm","isSuccess","errorMessage","showPass2","passwordConfirm","characters","pattern","confirmPassword","tos","tosRules","firstName","lastName","position","restaurantType","address","restaurantName","zip","pepsicoUserObj","UserID","$","Password","url_resetpasswordconfirm","PFS_passwordResetRequest","submitForm","_self","Email","url_resetpasswordrequest","PFS_registrationForm","isLoaded","direction","siretNumberLength","cancelRegistrationDialog","isStepValid_2","isStepValid_3","isStepValid_4","firstNameRules","lastNameRules","positionRules","restaurantTypes","page_data__restaurant_types","restaurantTypeRules","addressRules","siretNumber","siretNumberRules","numeric","numLength","restaurantNameRules","restaurantZipRules","idPepsicoEmail","domain","substring","lastIndexOf","prevStep","Name","SurName","UserName","ProfileType","attr","YourEstablishment","SiretNumber","TypeOfRestaurant","FacilityName","PostalCode","url_postsignup","cancelRegistration","resetSteps","nextStepNoValidation","googleMapAutocomplete","inputElement","origin__vuetify","input","autocomplete","google","maps","places","Autocomplete","componentRestrictions","country","fields","types","addListener","place","getPlace","name","j","address_components","k","short_name","deep","mounted","$nextTick","PFS_recipe_actions_box","isSavedRecipe","saveOrDeleteRecipe","recipe_api_base_path","recipeActionPath","recipeId","Success","ErrorMessage","PFS_serves_counter","ingredients","ingredient_list_html","reference_amount","serves_amount_reference_value","ingredient_list","ingredientAmount","serves","decreaseAmount","vm","amount","Math","round","increaseAmount","beforeMount","PFS_profileForm","editAccountMode","editRestaurantMode","page_data__menu_list","account_valid","password_valid","restaurant_valid","page_data__first_name","page_data__last_name","nameRules","page_data__email","page_data__position","positions","page_data__positions","page_data__restaurant_name","restaurantAddress","page_data__restaurant_address","restaurantAddressRules","restaurantZip","page_data__restaurant_zip","restaurantPhone","page_data__restaurant_phone","restaurantPhoneRules","page_data__siret_number","_this6","page_data__restaurant_type","restaurantAdditionalType","page_data__restaurant_additional_type","showRestaurantAdditionalType","editAccount","changePassword","responseMessage","page_data__password_url","reload","html","editRestaurant","saveAccount","UserProfile","ProfileTypes","TypeOfRestaurantAdditional","PhoneNumber","ProfileActivityLink","IsMyAccount","IsMyRestaurant","page_data__account_url","userModifyResponse","roleModifyResponse","profielModifyResponse","saveRestaurant","page_data__restaurant_url","restaurantTypeEither","isEither","PFS_recipeListing","filterSettings","sort","search_string","brand","dishTypes","restaurant_type","filter_sort_values","filter_food_type","filter_brand","filter_restaurant_type","mixins","recipesList","getSort","by","order","sortArray","onFilterChange","showMore","PFS_searchResults","getSearchQueryFromUrl","query","PFS_productListing","productList","PFS_newsListing","newsType","newsList","PFS_brandListing","brandList","PFS_equipmentListing","CATEGORY_ID","PFS_savedRecipes","showErrorSnackbar","deleteErrorMsg","SAVED_CONTENT_API_PATH","components","isItemDeleted","PFS_savedMenus","PFS_popupPermissions","popupPermissionsDialog","isPopupPermissionAccepted","acceptPopupPermission","is_accepted","url_popup_permissions","errorMessages","is_popup_permissions_accepted","component","post","image_thumbnail","Thumbnail","imageId","ImageId","thumbnail","platform","filter_platform","resizeType","ResizeOptions","isResizable","checkIfResizable","handleFileDownload","downloadImageUrl","PFS_photoLibraryListing","type_of_visuals","filter_category","filter_type_of_visuals","photoLibraryListing","encodeURIComponent","PFS_ContactForm","contact_success","contact_success_msg","isContactFormValid","messageRules","contactFromData","Message","page_data__contact_path","updated","PFS_SecondaryContactForm","first_name","last_name","postal_code","restaurant_name","activity_type","selected_activity_type","newsletter","contactOptIn","postalCodeRules","activityTypeRules","FirstName","LastName","RestaurantName","ActivityType","Newsletter","ContactOptIn","PFS_Contest","model","Venue","PurchasedFrom","InvoiceImage","Subscribed","contest_success","contest_success_msg","siretNumberPattern","phoneNumberPattern","isContestFormValid","surnameRules","phoneNumberRules","regex","requiredRules","invoiceImageRules","validateFileExtension","antiforgerytoken","querySelector","FormData","append","contest_api_path","enctype","processType","processData","contentType","image","allowedExtensions","ext","calculateProgress","total","loaded","isEmailExist","url_isEmailExist","emailId","validateEmail","re"],"sources":["functions.js"],"sourcesContent":["var signupStatus = \"\";\r\nvar signinStatus = \"\";\r\nvar signinStatusMessage = \"\";\r\n\r\nlet PAGE_ROOT = \"/\";\r\n\r\nvar API_BASE_URL;\r\nvar PHOTOLIBITEMS_DOWNLOAD_BASE_URL;\r\n\r\nvar emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/;\r\n\r\nif (typeof BASE_URL !== \"undefined\" && BASE_URL !== \"\") {\r\n API_BASE_URL = BASE_URL + \"/api/content\";\r\n PHOTOLIBITEMS_DOWNLOAD_BASE_URL = BASE_URL + \"/api\";\r\n} else {\r\n API_BASE_URL = \"/api/content\";\r\n PHOTOLIBITEMS_DOWNLOAD_BASE_URL = \"/api\";\r\n}\r\n\r\nvar pathArray = window.location.pathname.split(\"/\");\r\n\r\n// check if on local or on dev server\r\nif (pathArray.includes(\"pepsi_fsf\")) {\r\n PAGE_ROOT = \"/pepsi_fsf/\";\r\n} else {\r\n PAGE_ROOT = \"/\";\r\n}\r\n\r\nfunction getAllUrlParams(url) {\r\n // get query string from url (optional) or window\r\n var queryString = url ? url.split(\"?\")[1] : window.location.search.slice(1);\r\n\r\n // we'll store the parameters here\r\n var obj = {};\r\n\r\n // if query string exists\r\n if (queryString) {\r\n // stuff after # is not part of query string, so get rid of it\r\n queryString = queryString.split(\"#\")[0];\r\n\r\n // split our query string into its component parts\r\n var arr = queryString.split(\"&\");\r\n\r\n for (var i = 0; i < arr.length; i++) {\r\n // separate the keys and the values\r\n var a = arr[i].split(\"=\");\r\n\r\n // set parameter name and value (use 'true' if empty)\r\n var paramName = a[0];\r\n var paramValue = typeof a[1] === \"undefined\" ? true : a[1];\r\n\r\n // (optional) keep case consistent\r\n paramName = paramName.toLowerCase();\r\n if (typeof paramValue === \"string\") paramValue = paramValue.toLowerCase();\r\n\r\n // if the paramName ends with square brackets, e.g. colors[] or colors[2]\r\n if (paramName.match(/\\[(\\d+)?\\]$/)) {\r\n // create key if it doesn't exist\r\n var key = paramName.replace(/\\[(\\d+)?\\]/, \"\");\r\n if (!obj[key]) obj[key] = [];\r\n\r\n // if it's an indexed array e.g. colors[2]\r\n if (paramName.match(/\\[\\d+\\]$/)) {\r\n // get the index value and add the entry at the appropriate position\r\n var index = /\\[(\\d+)\\]/.exec(paramName)[1];\r\n obj[key][index] = paramValue;\r\n } else {\r\n // otherwise add the value to the end of the array\r\n obj[key].push(paramValue);\r\n }\r\n } else {\r\n // we're dealing with a string\r\n if (!obj[paramName]) {\r\n // if it doesn't exist, create property\r\n obj[paramName] = paramValue;\r\n } else if (obj[paramName] && typeof obj[paramName] === \"string\") {\r\n // if property does exist and it's a string, convert it to an array\r\n obj[paramName] = [obj[paramName]];\r\n obj[paramName].push(paramValue);\r\n } else {\r\n // otherwise add the property\r\n obj[paramName].push(paramValue);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return obj;\r\n}\r\n\r\n(function () {\r\n // Validation for search form in header\r\n var searchForm = document.getElementById(\"js-search-form\");\r\n if (searchForm) {\r\n searchForm.addEventListener(\r\n \"submit\",\r\n function (event) {\r\n console.log(\"Event added\");\r\n // console.log(\"form.checkValidity() :>> \", searchForm.checkValidity());\r\n if (!searchForm.checkValidity()) {\r\n searchForm.classList.add(\"dm-not-valid-form\");\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n searchForm.classList.add(\"dm-was-validated\");\r\n searchForm.classList.remove(\"dm-not-valid-form\");\r\n\r\n // ToDo\r\n // redirect on search page\r\n // SEARCH_PAGE_SLUG is slug to search page\r\n },\r\n false\r\n );\r\n }\r\n})();\r\n\r\nconst VUETIFY_OPTIONS = {\r\n theme: {\r\n themes: {\r\n dark: false,\r\n light: {\r\n // primary: \"#004C97\",\r\n primary: \"#101010\",\r\n pfs_primary: \"#004C97\",\r\n pfs_primary_hover: \"#005DB8\",\r\n pfs_primary_light: \"#E6EEF5\",\r\n pfs_white: \"#FFFFFF\",\r\n pfs_grey_lighter: \"#F8F8F8\",\r\n pfs_grey_light: \"#EFEFEF\",\r\n pfs_grey_middle: \"#848484\",\r\n pfs_black: \"#101010\",\r\n pfs_cyan: \"#0085CA\",\r\n pfs_cyan_light: \"#00A9E0\",\r\n pfs_green: \"#009639\",\r\n pfs_green_light: \"#78BE20\",\r\n pfs_red: \"#BC272C\",\r\n pfs_red_dark: \"#A6181C\",\r\n pfs_red_light: \"#F6E8E8\",\r\n pfs_orange: \"#EE6530\",\r\n pfs_orange_dark: \"#E62D36\",\r\n pfs_orange_light: \"#F5913B\",\r\n pfs_yellow: \"#F7CD5A\",\r\n },\r\n },\r\n },\r\n};\r\n\r\n// Naming pattern - EVERY Vuetify component should be wrapped in a CLASS. The class name should have the \"PFS_\" prefix\r\nconst VUE_LOAD_PAGES = [\r\n \"PFS_loginForm\",\r\n \"PFS_featuredArticle\",\r\n \"PFS_recipeListing\",\r\n \"PFS_productListing\",\r\n \"PFS_ContactForm\",\r\n \"PFS_SecondaryContactForm\",\r\n \"PFS_profileForm\",\r\n \"PFS_photoLibraryListing\",\r\n \"PFS_newsListing\",\r\n \"PFS_brandListing\",\r\n \"PFS_savedRecipes\",\r\n \"PFS_savedMenus\",\r\n \"PFS_serves_counter\",\r\n \"PFS_recipe_actions_box\",\r\n \"PFS_registrationForm\",\r\n \"PFS_registrationConfirmPage\",\r\n \"PFS_forgotPasswordForm\",\r\n \"PFS_pagesListMenu\",\r\n \"PFS_passwordResetRequest\",\r\n \"PFS_loginFormV2\",\r\n \"PFS_searchResults\",\r\n \"PFS_popupPermissions\",\r\n \"PFS_Contest\",\r\n \"PFS_equipmentListing\",\r\n];\r\n\r\nfunction stringTranslation(stringVar) {\r\n // var e_mail_is_required = 'E-mail is required.'\r\n // var e_mail_must_be_valid = 'E-mail must be valid.'\r\n // var password_is_required = 'Password is required.'\r\n // var min_8_characters_with_at_least_one_capital_letter_a_number_and_a_special_character = 'Min. 8 characters with at least one capital letter, a number and a special character.'\r\n // var the_password_confirmation_does_not_match = 'The password confirmation does not match.'\r\n // var terms_of_service__is_required = 'Terms of Service is required.'\r\n // var first_name_is_required = 'First name is required.'\r\n // var surname_is_required = 'Surname is required.'\r\n // var position_is_required = 'Position is required.'\r\n // var type_of_restaurant_is_required = 'Type of Restaurant is required.'\r\n // var address__is_required = 'Address is required.'\r\n // var this_field_is_required = 'This field is required.'\r\n // var only_numbers = 'Only numbers.'\r\n // var must_be_ = 'Must be '\r\n // var _characters = ' characters'\r\n // var restaurant_type_is_required = 'Restaurant Type is required.'\r\n // var restaurant_name_is_required = 'Restaurant Name is required.'\r\n // var restaurant_address_is_required = 'Restaurant address is required.'\r\n // var postal_code_is_required = 'Postal code is required.'\r\n // var name_is_required = 'Name is required.'\r\n // var your_position_is_required = 'Your position is required.'\r\n // var phone_number_is_required = 'Phone Number is required.'\r\n // var min_8_characters = 'Min 8 characters.'\r\n // var message_is_required = 'Message is required.'\r\n // var we_apologize_something_went_wrong_please_try_again_later = 'We apologize, something went wrong. Please try again later'\r\n\r\n var e_mail_is_required = \"Adresse e-mail requise.\";\r\n var e_mail_must_be_valid = \"L'adresse e-mail doit-être valide.\";\r\n var password_is_required = \"Mot de passe requis.\";\r\n var min_8_characters_with_at_least_one_capital_letter_a_number_and_a_special_character =\r\n \"Min. 8 caractères avec au moins une lettre en capitale, un chiffre et un caractère spécial.\";\r\n var the_password_confirmation_does_not_match =\r\n \"La confirmation du mot de passe ne correspond pas.\";\r\n var terms_of_service__is_required =\r\n \"Acceptation des Conditions Générales d'Utilisations requise.\";\r\n var first_name_is_required = \"Nom requis.\";\r\n var surname_is_required = \"Prénom requis.\";\r\n var position_is_required = \"Profession requise.\";\r\n var type_of_restaurant_is_required = \"Type de restauration requis.\";\r\n var address__is_required = \"Adresse requise.\";\r\n var this_field_is_required = \"Ce champs est requis.\";\r\n var only_numbers = \"Chiffre uniquement\";\r\n var must_be_ = \"Doit être \";\r\n var _characters = \" caractères\";\r\n var restaurant_type_is_required = \"Type de restauration requis.\";\r\n var restaurant_name_is_required = \"Nom de l'établissement requis.\";\r\n var restaurant_address_is_required =\r\n \"L'adresse de l'établissement est requise.\";\r\n var postal_code_is_required = \"Le code postal est requis.\";\r\n var name_is_required = \"Nom requis.\";\r\n var your_position_is_required = \"Votre profession est requise.\";\r\n var phone_number_is_required = \"Numéro de téléphone requis.\";\r\n var min_8_characters = \"Min. 8 caractères.\";\r\n var there_seems_to_be_some_technical_error =\r\n \"Une erreur technique est survenue.\";\r\n var message_is_required = \"Le message est requis\";\r\n var we_apologize_something_went_wrong_please_try_again_later =\r\n \"Nous sommes désolé, une erreur est survenue. Merci de réessayer plus tard.\";\r\n var file_extension_must_be_png =\r\n \"Le fichier uploadé doit être au format .png, .jpg ou .jpeg\";\r\n\r\n return eval(stringVar);\r\n}\r\n\r\nfunction downloadFile(url, title, size) {\r\n if (title == \"\") {\r\n title = \"logo\";\r\n }\r\n var link = document.createElement(\"a\");\r\n link.href = url;\r\n // link.download = title + '-' + size;\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n VUE_LOAD_PAGES.forEach((item) => {\r\n if (document.getElementById(item) !== null) {\r\n // console.log(item);\r\n // find object\r\n var fn = window[item];\r\n\r\n // is object a function?\r\n if (typeof fn === \"function\") fn();\r\n }\r\n });\r\n});\r\n\r\n// Component for displaying card with delete functionality\r\n// Used in profile-saved-menu.html & profile-saved-recipes.html\r\n// HTML variables API_DELETE_PATH are required\r\nvar DeletableCardComponent = {\r\n props: [\"id\", \"name\", \"text\", \"thumbnail\", \"url\"],\r\n data() {\r\n return {\r\n delete_dropdown_id: null,\r\n show: true,\r\n };\r\n },\r\n computed: {\r\n apiUrl: function () {\r\n return BASE_URL + API_DELETE_PATH;\r\n // return 'http://localhost/pepsico-fsf-frontend/api/delete.php'\r\n },\r\n },\r\n methods: {\r\n handleDeleteDropdown(id) {\r\n if (id === this.delete_dropdown_id) {\r\n this.delete_dropdown_id = null;\r\n } else {\r\n this.delete_dropdown_id = id;\r\n }\r\n },\r\n deleteItem(id) {\r\n if (typeof API_DELETE_PATH !== \"undefined\") {\r\n // the API_DELETE_PATH is defined\r\n fetch(this.apiUrl, {\r\n method: \"POST\",\r\n body: \"{ id: \" + id + \" }\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n })\r\n .then((response) => {\r\n if (!response.ok) {\r\n this.$emit(\"item-deleted\", false);\r\n this.delete_dropdown_id = null;\r\n throw Error(response.statusText);\r\n }\r\n\r\n return response.json();\r\n })\r\n .then((data) => {\r\n if (data.status != \"Success\") {\r\n this.$emit(\"item-deleted\", false);\r\n this.delete_dropdown_id = null;\r\n throw Error(data.message);\r\n }\r\n\r\n this.$emit(\"item-deleted\", true);\r\n // Hide deleted item\r\n this.show = false;\r\n })\r\n .catch((error) => {\r\n this.$emit(\"item-deleted\", false);\r\n this.delete_dropdown_id = null;\r\n console.log(error);\r\n });\r\n } else {\r\n console.log(\"Delete path is missing\");\r\n }\r\n },\r\n },\r\n};\r\n\r\nvar getDataMixin = {\r\n data() {\r\n return {\r\n isLoading: false,\r\n };\r\n },\r\n created: function () {\r\n this.getData(this.apiUrl, true);\r\n },\r\n methods: {\r\n getData(url, reset) {\r\n this.isLoading = true;\r\n fetch(url)\r\n .then((response) => {\r\n if (!response.ok) throw Error(response.statusText);\r\n return response.json();\r\n })\r\n .then((data) => {\r\n if (reset) {\r\n this.itemList = data.Results;\r\n } else {\r\n for (var i of data.Results) {\r\n this.itemList.push(i);\r\n }\r\n }\r\n this.totalResults = data.TotalResults;\r\n this.totalPages = data.TotalPages;\r\n this.currentlyLoaded = this.itemList.length;\r\n this.progress_percent = (\r\n (this.currentlyLoaded / this.totalResults) *\r\n 100\r\n ).toFixed();\r\n\r\n if (this.totalResults > this.size) {\r\n if (this.page == this.totalPages) {\r\n this.hide_paginator = true;\r\n } else {\r\n this.hide_paginator = false;\r\n }\r\n } else {\r\n this.progress_percent = 100;\r\n this.hide_paginator = true;\r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n },\r\n updateProgressbar() {\r\n if (this.currentlyLoaded > 0) {\r\n this.currentlyLoaded--;\r\n this.totalResults--;\r\n }\r\n this.progress_percent = (\r\n (this.currentlyLoaded / this.totalResults) *\r\n 100\r\n ).toFixed();\r\n },\r\n },\r\n};\r\n\r\nfunction PFS_pagesListMenu() {\r\n new Vue({\r\n el: \"#PFS_pagesListMenu\",\r\n data: () => ({\r\n items: [\r\n { text: \"Index\", link: \"index\" },\r\n { text: \"Photo library\", link: \"photo-library\" },\r\n { text: \"Search results\", link: \"search-results\" },\r\n { text: \"Contact\", link: \"contact\" },\r\n { text: \"Coming soon\", link: \"coming-soon\" },\r\n { text: \"Menu generator intro\", link: \"menu-generator-intro\" },\r\n { text: \"Simple text\", link: \"simple-text\" },\r\n\r\n { type: \"spacer\", text: \"User links\" },\r\n { text: \"Login\", link: \"login\" },\r\n { text: \"Forgot password\", link: \"forgot-password-form\" },\r\n { text: \"Registration\", link: \"registration\" },\r\n { text: \"Menu generator\", link: \"menu-generator\" },\r\n { text: \"Profile\", link: \"profile\" },\r\n { text: \"Profile saved menu\", link: \"profile-saved-menu\" },\r\n { text: \"Profile saved recipes\", link: \"profile-saved-recipes\" },\r\n\r\n { type: \"spacer\", text: \"Recette links\" },\r\n { text: \"Recipe listing\", link: \"recipe-listing\" },\r\n { text: \"Recipe detail\", link: \"recipe-detail\" },\r\n { text: \"Recette -Doritos Nuggets\", link: \"Recette--Doritos-Nuggets\" },\r\n {\r\n text: \"Recette -Doritos Loaded Fries\",\r\n link: \"Recette--Doritos-Loaded-Fries\",\r\n },\r\n {\r\n text: \"Recette -Doritos Hot Nachos\",\r\n link: \"Recette--Doritos-Hot-Nachos\",\r\n },\r\n { text: \"Recette -Doritos Burger\", link: \"Recette--Doritos-Burger\" },\r\n {\r\n text: \"Recette -Doritos Bolognaise\",\r\n link: \"Recette--Doritos-Bolognaise\",\r\n },\r\n {\r\n text: \"Recette Alvalle -TARTINABLE METRO\",\r\n link: \"Recette--Alvalle--TARTINABLE-METRO\",\r\n },\r\n {\r\n text: \"Recette Alvalle -PANNACOTTA METRO\",\r\n link: \"Recette--Alvalle--PANNACOTTA-METRO\",\r\n },\r\n {\r\n text: \"Recette Alvalle -GARNITURES METRO\",\r\n link: \"Recette--Alvalle--GARNITURES-METRO\",\r\n },\r\n {\r\n text: \"Recette Alvalle -BURRATA METRO\",\r\n link: \"Recette--Alvalle--BURRATA-METRO\",\r\n },\r\n\r\n { type: \"spacer\", text: \"Brand links\" },\r\n { text: \"Brand listing\", link: \"brand-listing\" },\r\n { text: \"Brand detail\", link: \"brand-detail\" },\r\n { text: \"Brand detail - Alvalle\", link: \"brand-detail--alvalle\" },\r\n { text: \"Brand detail - Doritos 404\", link: \"brand-detail--doritos\" },\r\n { text: \"Brand detail - Lay’s 404\", link: \"brand-detail--lays\" },\r\n { text: \"Brand detail - Quaker 404\", link: \"brand-detail--quaker\" },\r\n {\r\n text: \"Brand detail - Tropicana 404\",\r\n link: \"brand-detail--tropicana\",\r\n },\r\n { text: \"Brand detail - Pepsi 404\", link: \"brand-detail--pepsi\" },\r\n { text: \"Brand detail - Lipton 404\", link: \"brand-detail--lipton\" },\r\n { text: \"Brand detail - 7UP 404\", link: \"brand-detail--7up\" },\r\n\r\n { type: \"spacer\", text: \"News links\" },\r\n { text: \"More content\", link: \"more-content\" },\r\n { text: \"News listing\", link: \"news-listing\" },\r\n { text: \"News detail\", link: \"news-detail\" },\r\n { text: \"News detail 1\", link: \"news-detail-1\" },\r\n\r\n { type: \"spacer\", text: \"Product links\" },\r\n { text: \"Product listing\", link: \"product-listing\" },\r\n // { text: \"Product detail\", link: \"product-detail\" },\r\n {\r\n text: \"Product detail - Doritos Nature 454G\",\r\n link: \"product-detail--Doritos-Nature-454G\",\r\n },\r\n {\r\n text: \"Product detail - Sauce Doritos Salsa 1,2KG\",\r\n link: \"product-detail--Sauce-Doritos-Salsa-1-2KG\",\r\n },\r\n {\r\n text: \"Product detail - Sauce Doritos Nacho Cheese 1,2KG\",\r\n link: \"product-detail--Sauce-Doritos-Nacho-Cheese-1-2KG\",\r\n },\r\n {\r\n text: \"Product detail - Toutes nos tortillas Doritos\",\r\n link: \"product-detail--Toutes-nos-tortillas-Doritos\",\r\n },\r\n ],\r\n }),\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_registrationConfirmPage() {\r\n new Vue({\r\n el: \"#PFS_registrationConfirmPage\",\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_loginFormV2() {\r\n new Vue({\r\n el: \"#PFS_loginFormV2\",\r\n data() {\r\n return {\r\n isInForm: false,\r\n isLoading: false,\r\n step: 0,\r\n isStepValid_1: false,\r\n\r\n email: null,\r\n emailRules: [\r\n (v) => !!v || stringTranslation(\"e_mail_is_required\"),\r\n (v) => /.+@.+/.test(v) || stringTranslation(\"e_mail_must_be_valid\"),\r\n ],\r\n\r\n showPass1: false,\r\n password: \"\",\r\n passRules: {\r\n required: (v) => !!v || stringTranslation(\"password_is_required\"),\r\n },\r\n };\r\n },\r\n methods: {\r\n nextStep() {\r\n this.step++;\r\n },\r\n\r\n signUpStep() {\r\n this.isLoading = true;\r\n const _this = this;\r\n const data = {\r\n email: this.email,\r\n password: this.password,\r\n };\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: window.page_data__sign_up_url,\r\n data: data,\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 signUpStep\");\r\n setTimeout(function () {\r\n _this.nextStep();\r\n _this.isLoading = false;\r\n }, 2000);\r\n });\r\n },\r\n },\r\n watch: {\r\n step: {\r\n handler: function (val, oldVal) {\r\n this.isInForm = val > 0;\r\n },\r\n },\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_loginForm() {\r\n new Vue({\r\n el: \"#PFS_loginForm\",\r\n data: function () {\r\n return {\r\n valid: false,\r\n show_password: false,\r\n password: \"\",\r\n email: \"\",\r\n isLoading: false,\r\n server_error: false,\r\n server_error_msg: \"\",\r\n rules: {\r\n required: (value) =>\r\n !!value || stringTranslation(\"this_field_is_required\"),\r\n min: (v) => v.length >= 8 || stringTranslation(\"min_8_characters\"),\r\n validEmail: (v) =>\r\n /.+@.+/.test(v) || stringTranslation(\"e_mail_must_be_valid\"),\r\n },\r\n };\r\n },\r\n methods: {\r\n loginUser: function loginUser() {\r\n this.$refs.loginForm.validate();\r\n\r\n var email = this.email;\r\n var password = this.password;\r\n var _this = this;\r\n\r\n if (this.valid) {\r\n this.isLoading = true;\r\n\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: url_postlogin,\r\n data: { username: email, password: password },\r\n dataType: \"json\",\r\n })\r\n .done(function (data) {\r\n if (data.isLoggedIn == false) {\r\n _this.server_error = true;\r\n _this.server_error_msg = data.Item1;\r\n } else {\r\n // Reset server error\r\n _this.server_error = false;\r\n _this.server_error_msg = \"\";\r\n\r\n window.location.replace(url_afterlogin);\r\n }\r\n _this.isLoading = false;\r\n })\r\n .fail(function (err) {\r\n _this.server_error = true;\r\n _this.server_error_msg = \"Erreur inconnue\";\r\n _this.isLoading = false;\r\n console.log(\"error: \", err);\r\n });\r\n }\r\n },\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_forgotPasswordForm() {\r\n new Vue({\r\n el: \"#PFS_forgotPasswordForm\",\r\n data() {\r\n return {\r\n el: \"#PFS_forgotPasswordForm\",\r\n isInForm: false,\r\n isLoading: false,\r\n step: 0,\r\n isSuccess: true,\r\n errorMessage: \"\",\r\n isStepValid_1: false,\r\n\r\n // Step 4\r\n showPass1: false,\r\n showPass2: false,\r\n\r\n password: \"\",\r\n passwordConfirm: \"\",\r\n passRules: {\r\n required: (v) => !!v || stringTranslation(\"password_is_required\"),\r\n characters: (v) => {\r\n const pattern =\r\n /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})/;\r\n return (\r\n pattern.test(v) ||\r\n stringTranslation(\r\n \"min_8_characters_with_at_least_one_capital_letter_a_number_and_a_special_character\"\r\n )\r\n );\r\n },\r\n confirmPassword: (v) =>\r\n v === this.password ||\r\n stringTranslation(\"the_password_confirmation_does_not_match\"),\r\n },\r\n\r\n tos: 1,\r\n tosRules: [\r\n (v) => !!v || stringTranslation(\"terms_of_service__is_required\"),\r\n ],\r\n };\r\n },\r\n methods: {\r\n nextStep() {\r\n this.step++;\r\n },\r\n\r\n signUpStep() {\r\n this.isLoading = true;\r\n const _this = this;\r\n const data = {\r\n firstName: this.firstName,\r\n lastName: this.lastName,\r\n email: this.email,\r\n position: this.position,\r\n restaurantType: this.restaurantType,\r\n address: this.address,\r\n restaurantName: this.restaurantName,\r\n zip: this.zip,\r\n };\r\n\r\n var pepsicoUserObj = {\r\n UserID: $(\"#hdnUserId\").val(),\r\n Password: this.password,\r\n };\r\n\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n //url: window.page_data__sign_up_url,\r\n //data: data,\r\n url: url_resetpasswordconfirm,\r\n data: pepsicoUserObj,\r\n dataType: \"json\",\r\n })\r\n .done(function (data) {\r\n if (data == \"Success\") {\r\n console.log(\"Success\");\r\n _this.isSuccess = true;\r\n } else {\r\n _this.isSuccess = false;\r\n _this.errorMessage = data;\r\n }\r\n })\r\n .fail(function (err) {\r\n console.log(\"error: \", err);\r\n _this.isSuccess = false;\r\n _this.errorMessage = err;\r\n })\r\n .always(function () {\r\n console.log(\"finished signUpStep\");\r\n setTimeout(function () {\r\n _this.nextStep();\r\n\r\n _this.isLoading = false;\r\n }, 2000);\r\n });\r\n },\r\n },\r\n watch: {\r\n step: {\r\n handler: function (val, oldVal) {\r\n this.isInForm = val > 0;\r\n },\r\n },\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_passwordResetRequest() {\r\n new Vue({\r\n el: \"#PFS_passwordResetRequest\",\r\n data() {\r\n return {\r\n el: \"#PFS_passwordResetRequest\",\r\n isInForm: false,\r\n isLoading: false,\r\n email: \"\",\r\n step: 0,\r\n isSuccess: true,\r\n errorMessage: \"\",\r\n isStepValid_1: false,\r\n emailRules: {\r\n required: (v) => !!v || stringTranslation(\"e_mail_is_required\"),\r\n valid: (v) =>\r\n /.+@.+/.test(v) || stringTranslation(\"e_mail_must_be_valid\"),\r\n },\r\n };\r\n },\r\n methods: {\r\n submitForm() {\r\n var _self = this;\r\n\r\n var pepsicoUserObj = {\r\n Email: this.email,\r\n };\r\n\r\n this.isLoading = true;\r\n setTimeout(function () {\r\n _self.step = 1;\r\n\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: url_resetpasswordrequest,\r\n data: pepsicoUserObj,\r\n dataType: \"json\",\r\n })\r\n .done(function (data) {\r\n if (data == \"Success\") {\r\n console.log(\"Success\");\r\n _self.isSuccess = true;\r\n } else {\r\n _self.isSuccess = false;\r\n _self.errorMessage = data;\r\n }\r\n })\r\n .fail(function (err) {\r\n console.log(\"error: \", err);\r\n _self.isSuccess = false;\r\n _self.errorMessage = data;\r\n })\r\n .always(function () {\r\n console.log(\"finished password Reset\");\r\n _self.isLoading = false;\r\n });\r\n }, 1000);\r\n },\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_registrationForm() {\r\n new Vue({\r\n el: \"#PFS_registrationForm\",\r\n\r\n data() {\r\n return {\r\n isLoaded: false,\r\n direction: \"slide-left\",\r\n isInForm: false,\r\n isLoading: false,\r\n step: 1,\r\n siretNumberLength: 14,\r\n cancelRegistrationDialog: false,\r\n isStepValid_1: false,\r\n isStepValid_2: false,\r\n isStepValid_3: false,\r\n isStepValid_4: false,\r\n server_error: false,\r\n server_error_msg: \"\",\r\n // Step 0\r\n firstName: null,\r\n firstNameRules: [\r\n (v) => !!v || stringTranslation(\"first_name_is_required\"),\r\n ],\r\n\r\n lastName: null,\r\n lastNameRules: [(v) => !!v || stringTranslation(\"surname_is_required\")],\r\n\r\n email: null,\r\n emailRules: [\r\n (v) => !!v || stringTranslation(\"e_mail_is_required\"),\r\n (v) => /.+@.+/.test(v) || stringTranslation(\"e_mail_must_be_valid\"),\r\n ],\r\n\r\n // Step 2\r\n position: null,\r\n positionRules: [\r\n (v) => !!v || stringTranslation(\"position_is_required\"),\r\n ],\r\n\r\n // Step 3\r\n restaurantTypes: window.page_data__restaurant_types,\r\n restaurantTypeRules: [\r\n (v) => {\r\n return !!v || stringTranslation(\"type_of_restaurant_is_required\");\r\n },\r\n ],\r\n\r\n address: null,\r\n addressRules: [(v) => !!v || stringTranslation(\"address__is_required\")],\r\n\r\n siretNumber: null,\r\n siretNumberRules: {\r\n required: (v) => !!v || stringTranslation(\"this_field_is_required\"),\r\n numeric: (v) => {\r\n const pattern = /^[0-9]{14}/;\r\n return pattern.test(v) || stringTranslation(\"only_numbers\");\r\n },\r\n numLength: (v) =>\r\n (!!v && v.length === this.siretNumberLength) ||\r\n stringTranslation(\"must_be_\") +\r\n this.siretNumberLength +\r\n stringTranslation(\"_characters\"),\r\n },\r\n restaurantType: null,\r\n restaurantTypeRules: [\r\n (v) => !!v || stringTranslation(\"restaurant_type_is_required\"),\r\n ],\r\n restaurantName: null,\r\n restaurantNameRules: [\r\n (v) => !!v || stringTranslation(\"restaurant_name_is_required\"),\r\n ],\r\n zip: null,\r\n restaurantZipRules: [\r\n (v) => !!v || stringTranslation(\"postal_code_is_required\"),\r\n ],\r\n\r\n // Step 4\r\n showPass1: false,\r\n showPass2: false,\r\n\r\n password: \"\",\r\n passwordConfirm: \"\",\r\n passRules: {\r\n required: (v) => !!v || stringTranslation(\"password_is_required\"),\r\n characters: (v) => {\r\n const pattern =\r\n /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@\\-\\_\\(\\)\\[\\]\\+\\=\\{\\}\\'\\\"\\;\\:\\.\\<\\>\\,\\?\\/\\|\\\\#\\$%\\^&\\*])(?=.{8,})/;\r\n return (\r\n pattern.test(v) ||\r\n stringTranslation(\r\n \"min_8_characters_with_at_least_one_capital_letter_a_number_and_a_special_character\"\r\n )\r\n );\r\n },\r\n confirmPassword: (v) =>\r\n v === this.password ||\r\n stringTranslation(\"the_password_confirmation_does_not_match\"),\r\n },\r\n\r\n tos: 1,\r\n tosRules: [\r\n (v) => !!v || stringTranslation(\"terms_of_service__is_required\"),\r\n ],\r\n };\r\n },\r\n\r\n methods: {\r\n idPepsicoEmail(email) {\r\n const domain = email.substring(email.lastIndexOf(\"@\") + 1);\r\n return domain === \"pepsico.com\";\r\n },\r\n\r\n nextStep() {\r\n this.direction = \"slide-left\";\r\n\r\n // Fro pepsico users\r\n if (this.step === 1 && this.idPepsicoEmail(this.email)) {\r\n this.position = 2;\r\n this.step = 4;\r\n } else {\r\n this.step++;\r\n }\r\n },\r\n prevStep() {\r\n this.direction = \"slide-right\";\r\n this.step--;\r\n },\r\n signUpStep() {\r\n this.isLoading = true;\r\n const _this = this;\r\n $(\"#sign_status\").text(\"\");\r\n\r\n const data = {\r\n firstName: this.firstName,\r\n lastName: this.lastName,\r\n email: this.email,\r\n position: this.position,\r\n restaurantType: this.restaurantType,\r\n address: this.address,\r\n restaurantName: this.restaurantName,\r\n siretNumber: this.siretNumber,\r\n zip: this.zip,\r\n };\r\n\r\n var pepsicoUserObj = {\r\n Name: this.firstName,\r\n SurName: this.lastName,\r\n Email: this.email,\r\n UserName: this.email,\r\n Password: this.password,\r\n ProfileType: $(\r\n \".position-radio-btn [value=\" + this.position + \"]\"\r\n ).attr(\"value-text\"),\r\n YourEstablishment: $(\".your-eastablishment input\").val(),\r\n SiretNumber: this.siretNumber,\r\n TypeOfRestaurant: this.restaurantType,\r\n FacilityName: this.restaurantName,\r\n PostalCode: this.zip,\r\n };\r\n\r\n // console.log(pepsicoUserObj);\r\n\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: url_postsignup,\r\n data: pepsicoUserObj,\r\n dataType: \"json\",\r\n })\r\n .done(function (data) {\r\n if (data.Item1 == \"Success\") {\r\n _this.server_error = false;\r\n _this.server_error_msg = \"\";\r\n _this.isLoading = false;\r\n _this.nextStep();\r\n } else {\r\n _this.server_error = true;\r\n _this.server_error_msg = data.Item1;\r\n _this.isLoading = false;\r\n }\r\n })\r\n .fail(function (err) {\r\n console.log(\"error: \", err);\r\n signupStatus = err;\r\n });\r\n },\r\n cancelRegistration() {\r\n this.cancelRegistrationDialog = true;\r\n },\r\n resetSteps() {\r\n this.cancelRegistrationDialog = false;\r\n this.step = 1;\r\n window.location.replace(\"/\");\r\n },\r\n nextStepNoValidation() {\r\n this.step++;\r\n console.log(\"From nextStepNoValidation\");\r\n },\r\n\r\n googleMapAutocomplete() {\r\n let inputElement = this.$refs.origin__vuetify.$refs.input;\r\n const autocomplete = new google.maps.places.Autocomplete(inputElement, {\r\n componentRestrictions: { country: \"fr\" },\r\n fields: [\r\n \"address_components\",\r\n \"geometry\",\r\n \"icon\",\r\n \"name\",\r\n \"place_id\",\r\n \"formatted_address\",\r\n ],\r\n types: [\"establishment\"],\r\n });\r\n\r\n autocomplete.addListener(\"place_changed\", () => {\r\n const place = autocomplete.getPlace();\r\n this.restaurantName = place.name;\r\n\r\n for (var j = 0; j < place.address_components.length; j++) {\r\n for (var k = 0; k < place.address_components[j].types.length; k++) {\r\n if (place.address_components[j].types[k] == \"postal_code\") {\r\n this.zip = place.address_components[j].short_name;\r\n }\r\n }\r\n }\r\n });\r\n },\r\n },\r\n watch: {\r\n step: {\r\n handler: function (val, oldVal) {\r\n this.isInForm = val > 0;\r\n },\r\n deep: true,\r\n },\r\n },\r\n\r\n mounted() {\r\n this.isInForm = this.step > 0;\r\n\r\n this.$nextTick(function () {\r\n this.isLoaded = true;\r\n this.googleMapAutocomplete();\r\n // Code that will run only after the\r\n // entire view has been rendered\r\n });\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_recipe_actions_box() {\r\n new Vue({\r\n el: \"#PFS_recipe_actions_box\",\r\n data() {\r\n return {\r\n isSavedRecipe: window.isSavedRecipe,\r\n };\r\n },\r\n methods: {\r\n saveOrDeleteRecipe(id) {\r\n this.isSavedRecipe = !this.isSavedRecipe;\r\n var recipe_api_base_path = \"/pepsicoapi/recipes\";\r\n var recipeActionPath = \"/pepsicoapi/recipes/delete\";\r\n if (this.isSavedRecipe) {\r\n recipeActionPath = recipe_api_base_path + \"/save\";\r\n }\r\n\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: recipeActionPath,\r\n data: { recipeId: id },\r\n dataType: \"json\",\r\n })\r\n .done(function (data) {\r\n if (data.Success) {\r\n console.log(\"Success\");\r\n } else {\r\n //error handling ?\r\n console.log(data.ErrorMessage);\r\n this.isSavedRecipe = !this.isSavedRecipe; //revert back state\r\n }\r\n })\r\n .fail(function (err) {\r\n //error handling, or if user is not authorized ?\r\n this.isSavedRecipe = !this.isSavedRecipe; //revert back state\r\n })\r\n .always(function () {\r\n //todo error handling, show user some message ?\r\n console.log(\"Save recipe..\");\r\n });\r\n },\r\n },\r\n });\r\n}\r\n\r\nfunction PFS_serves_counter() {\r\n var ingredients = window.ingredient_list_html;\r\n var reference_amount = window.serves_amount_reference_value;\r\n\r\n new Vue({\r\n el: \"#PFS_serves_counter\",\r\n data() {\r\n return {\r\n ingredient_list: [],\r\n ingredientAmount: [],\r\n serves: reference_amount,\r\n };\r\n },\r\n methods: {\r\n decreaseAmount() {\r\n const vm = this;\r\n if (this.serves > reference_amount) {\r\n this.serves -= reference_amount;\r\n const _this = this;\r\n\r\n this.ingredient_list.forEach(function (item, index) {\r\n if (item.amount) {\r\n item.amount -= _this.ingredientAmount[index];\r\n item.amount = Math.round(item.amount * 100) / 100;\r\n }\r\n });\r\n }\r\n },\r\n increaseAmount() {\r\n this.serves += reference_amount;\r\n const _this = this;\r\n\r\n this.ingredient_list.forEach(function (item, index) {\r\n if (item.amount) {\r\n // item.amount += _this.ingredientAmount[index];\r\n item.amount +=\r\n Math.round(_this.ingredientAmount[index] * 100) / 100;\r\n\r\n item.amount = Math.round(item.amount * 100) / 100;\r\n }\r\n });\r\n },\r\n },\r\n beforeMount() {\r\n var _this = this;\r\n\r\n this.ingredient_list = ingredients;\r\n\r\n this.ingredient_list.forEach((el) => {\r\n _this.ingredientAmount.push(el.amount);\r\n });\r\n },\r\n });\r\n}\r\n\r\nfunction PFS_profileForm() {\r\n new Vue({\r\n el: \"#PFS_profileForm\",\r\n data() {\r\n return {\r\n editAccountMode: false,\r\n editRestaurantMode: false,\r\n\r\n // Menu list\r\n items: window.page_data__menu_list,\r\n // Account Fields\r\n showPass1: false,\r\n showPass2: false,\r\n\r\n account_valid: false,\r\n password_valid: false,\r\n restaurant_valid: false,\r\n siretNumberLength: 14,\r\n firstName: window.page_data__first_name,\r\n lastName: window.page_data__last_name,\r\n nameRules: [(v) => !!v || stringTranslation(\"name_is_required\")],\r\n\r\n email: window.page_data__email,\r\n emailRules: [\r\n (v) => !!v || stringTranslation(\"e_mail_is_required\"),\r\n (v) => /.+@.+/.test(v) || stringTranslation(\"e_mail_must_be_valid\"),\r\n ],\r\n\r\n position: window.page_data__position,\r\n positions: window.page_data__positions,\r\n positionRules: [\r\n (v) => v.length > 0 || stringTranslation(\"your_position_is_required\"),\r\n ],\r\n\r\n password: \"\",\r\n passwordConfirm: \"\",\r\n passRules: {\r\n required: (v) => !!v || stringTranslation(\"password_is_required\"),\r\n characters: (v) => {\r\n const pattern =\r\n /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})/;\r\n return (\r\n pattern.test(v) ||\r\n stringTranslation(\r\n \"min_8_characters_with_at_least_one_capital_letter_a_number_and_a_special_character\"\r\n )\r\n );\r\n },\r\n confirmPassword: (v) =>\r\n v === this.password ||\r\n stringTranslation(\"the_password_confirmation_does_not_match\"),\r\n },\r\n\r\n // Restaurant fields\r\n restaurantName: window.page_data__restaurant_name,\r\n restaurantNameRules: [\r\n (v) => !!v || stringTranslation(\"restaurant_name_is_required\"),\r\n ],\r\n\r\n restaurantAddress: window.page_data__restaurant_address,\r\n restaurantAddressRules: [\r\n (v) => !!v || stringTranslation(\"restaurant_address_is_required\"),\r\n ],\r\n\r\n restaurantZip: window.page_data__restaurant_zip,\r\n restaurantZipRules: [\r\n (v) => !!v || stringTranslation(\"postal_code_is_required\"),\r\n ],\r\n\r\n restaurantPhone: window.page_data__restaurant_phone,\r\n restaurantPhoneRules: [\r\n (v) => !!v || stringTranslation(\"phone_number_is_required\"),\r\n ],\r\n siretNumber: window.page_data__siret_number,\r\n siretNumberRules: {\r\n required: function required(v) {\r\n return !!v || stringTranslation(\"this_field_is_required\");\r\n },\r\n numeric: function numeric(v) {\r\n var pattern = /^[0-9]{14}/;\r\n return pattern.test(v) || stringTranslation(\"only_numbers\");\r\n },\r\n numLength: function numLength(v) {\r\n return (\r\n (!!v && v.length === _this6.siretNumberLength) ||\r\n stringTranslation(\"must_be_\") +\r\n _this6.siretNumberLength +\r\n stringTranslation(\"_characters\")\r\n );\r\n },\r\n },\r\n restaurantType: window.page_data__restaurant_type,\r\n restaurantTypes: window.page_data__restaurant_types,\r\n restaurantTypeRules: [\r\n (v) => {\r\n // console.log(\"v :>> \", v);\r\n return !!v || stringTranslation(\"type_of_restaurant_is_required\");\r\n },\r\n ],\r\n\r\n restaurantAdditionalType: window.page_data__restaurant_additional_type,\r\n showRestaurantAdditionalType: false,\r\n };\r\n },\r\n\r\n methods: {\r\n editAccount() {\r\n this.editAccountMode = !this.editAccountMode;\r\n },\r\n changePassword() {\r\n const data = { password: this.password };\r\n\r\n var pepsicoUserObj = {\r\n UserID: $(\"#hdnUserId\").val(),\r\n Password: this.password,\r\n };\r\n\r\n var responseMessage = \"\";\r\n\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: window.page_data__password_url,\r\n /*data: data,*/\r\n data: pepsicoUserObj,\r\n dataType: \"json\",\r\n })\r\n .done(function (data) {\r\n console.log(\" success\");\r\n responseMessage = data;\r\n })\r\n .fail(function (err) {\r\n console.log(\"error: \", err);\r\n responseMessage = err;\r\n })\r\n .always(function () {\r\n console.log(\"finished changePassword\");\r\n //alert(\"Password Reset : \" + responseMessage);\r\n\r\n if (responseMessage == \"Success\") {\r\n //$(\".my-account-message\").html('
' + responseMessage + '
');\r\n //alert(responseMessage);\r\n setTimeout(window.location.reload(), 5000);\r\n } else {\r\n $(\".change-password-message\").html(\r\n '
' +\r\n responseMessage +\r\n \"
\"\r\n );\r\n\r\n //alert(responseMessage);\r\n }\r\n });\r\n },\r\n editRestaurant() {\r\n console.log(\"editRestaurant\");\r\n },\r\n saveAccount() {\r\n const data = {\r\n restaurantName: this.restaurantName,\r\n restaurantAddress: this.restaurantAddress,\r\n restaurantZip: this.restaurantZip,\r\n restaurantPhone: this.restaurantPhone,\r\n restaurantType: this.restaurantType,\r\n restaurantAdditionalType: this.restaurantAdditionalType,\r\n };\r\n\r\n var UserProfile = {\r\n UserID: $(\"#hdnUserId\").val(),\r\n Name: this.firstName,\r\n SurName: this.lastName,\r\n Email: this.email,\r\n UserName: \"\",\r\n Password: \"\",\r\n ProfileType: \"\",\r\n ProfileTypes: this.position,\r\n SiretNumber: this.siretNumber,\r\n YourEstablishment: this.restaurantAddress,\r\n TypeOfRestaurant: this.restaurantType,\r\n TypeOfRestaurantAdditional: this.restaurantAdditionalType,\r\n FacilityName: this.restaurantName,\r\n PostalCode: this.restaurantZip,\r\n PhoneNumber: this.restaurantPhone,\r\n ProfileActivityLink: \"\",\r\n IsMyAccount: true,\r\n IsMyRestaurant: false,\r\n };\r\n\r\n var responseMessage = \"\";\r\n var response = \"\";\r\n\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: window.page_data__account_url,\r\n /*data: data,*/\r\n data: UserProfile,\r\n dataType: \"json\",\r\n })\r\n .done(function (data) {\r\n if (data.response == \"Success\") {\r\n response = \"Success\";\r\n responseMessage = \"Updated Successfully \";\r\n if (data.userModifyResponse != \"Success\") {\r\n responseMessage += data.userModifyResponse;\r\n }\r\n if (data.roleModifyResponse != \"Success\") {\r\n responseMessage += data.roleModifyResponse;\r\n }\r\n if (data.profielModifyResponse != \"Success\") {\r\n responseMessage += data.profielModifyResponse;\r\n }\r\n console.log(\"success\");\r\n } else {\r\n responseMessage = data.response;\r\n }\r\n })\r\n .fail(function (err) {\r\n console.log(\"error: \", err);\r\n responseMessage = err;\r\n })\r\n .always(function () {\r\n console.log(\"finished saveAccount\");\r\n if (response == \"Success\") {\r\n //$(\".my-account-message\").html('
' + responseMessage + '
');\r\n //alert(responseMessage);\r\n\r\n setTimeout(window.location.reload(), 5000);\r\n } else {\r\n $(\".my-account-message\").html(\r\n '
' +\r\n responseMessage +\r\n \"
\"\r\n );\r\n\r\n //alert(responseMessage);\r\n }\r\n });\r\n },\r\n editRestaurant() {\r\n this.editRestaurantMode = !this.editRestaurantMode;\r\n },\r\n saveRestaurant() {\r\n const data = {\r\n firstName: this.firstName,\r\n lastName: this.lastName,\r\n email: this.email,\r\n position: this.position,\r\n };\r\n\r\n var UserProfile = {\r\n UserID: $(\"#hdnUserId\").val(),\r\n Name: this.firstName,\r\n SurName: this.lastName,\r\n Email: this.email,\r\n UserName: \"\",\r\n Password: \"\",\r\n ProfileType: \"\",\r\n ProfileTypes: this.position,\r\n SiretNumber: this.siretNumber,\r\n YourEstablishment: this.restaurantAddress,\r\n TypeOfRestaurant: this.restaurantType,\r\n TypeOfRestaurantAdditional: this.restaurantAdditionalType,\r\n FacilityName: this.restaurantName,\r\n PostalCode: this.restaurantZip,\r\n PhoneNumber: this.restaurantPhone,\r\n ProfileActivityLink: \"\",\r\n IsMyAccount: false,\r\n IsMyRestaurant: true,\r\n };\r\n\r\n var responseMessage = \"\";\r\n var response = \"\";\r\n\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: window.page_data__restaurant_url,\r\n /*data: data,*/\r\n data: UserProfile,\r\n dataType: \"json\",\r\n })\r\n .done(function (data) {\r\n if (data.response == \"Success\") {\r\n response = \"Success\";\r\n responseMessage = \"Updated Successfully\";\r\n if (data.userModifyResponse != \"Success\") {\r\n responseMessage += data.userModifyResponse;\r\n }\r\n if (data.roleModifyResponse != \"Success\") {\r\n responseMessage += data.roleModifyResponse;\r\n }\r\n if (data.profielModifyResponse != \"Success\") {\r\n responseMessage += data.profielModifyResponse;\r\n }\r\n console.log(\"success\");\r\n } else {\r\n responseMessage = data.response;\r\n }\r\n })\r\n .fail(function (err) {\r\n console.log(\"error: \", err);\r\n responseMessage = err;\r\n })\r\n .always(function () {\r\n console.log(\"finished saveRestaurant\");\r\n\r\n if (response == \"Success\") {\r\n //$(\".resturant-message\").html('
' + responseMessage + '
');\r\n //alert(responseMessage);\r\n setTimeout(window.location.reload(), 5000);\r\n } else {\r\n $(\".resturant-message\").html(\r\n '
' +\r\n responseMessage +\r\n \"
\"\r\n );\r\n\r\n //alert(responseMessage);\r\n }\r\n });\r\n },\r\n },\r\n computed: {\r\n restaurantTypeEither: function () {\r\n let isEither = false;\r\n if (!!this.restaurantAdditionalType) {\r\n isEither = true;\r\n } else if (this.restaurantType.length > 0) {\r\n isEither = true;\r\n } else {\r\n isEither = false;\r\n }\r\n return isEither;\r\n },\r\n },\r\n\r\n watch: {\r\n restaurantType: {\r\n handler: function (val, oldVal) {\r\n // console.log(val);\r\n this.showRestaurantAdditionalType = val === \"Autre\";\r\n\r\n deep: true;\r\n },\r\n\r\n // async handler() {\r\n // await this.$nextTick();\r\n // this.$refs.restaurant_form.validate();\r\n // }\r\n },\r\n // restaurantAdditionalType: {\r\n // async handler() {\r\n // await this.$nextTick();\r\n // this.$refs.restaurant_form.validate();\r\n // }\r\n // }\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_recipeListing() {\r\n new Vue({\r\n el: \"#PFS_recipeListing\",\r\n data() {\r\n return {\r\n itemList: [],\r\n filterSettings: {\r\n sort: \"\",\r\n search_string: \"\",\r\n brand: [],\r\n dishTypes: [],\r\n restaurant_type: [],\r\n },\r\n\r\n filter_sort_values: window.filter_sort_values,\r\n filter_food_type: window.filter_food_type,\r\n filter_brand: window.filter_brand,\r\n filter_restaurant_type: window.filter_restaurant_type,\r\n\r\n currentlyLoaded: 0,\r\n progress_percent: 10,\r\n totalPages: 0,\r\n totalResults: 0,\r\n page: 1,\r\n size: 4,\r\n hide_paginator: false,\r\n };\r\n },\r\n\r\n mixins: [getDataMixin],\r\n computed: {\r\n recipesList: function () {\r\n return this.itemList;\r\n },\r\n\r\n apiUrl: function () {\r\n return (\r\n API_BASE_URL +\r\n \"/recipes?page=\" +\r\n this.page +\r\n \"&size=\" +\r\n this.size +\r\n \"&brands=\" +\r\n this.filterSettings.brand +\r\n \"&dishTypes=\" +\r\n this.filterSettings.dishTypes +\r\n \"&sortBy=\" +\r\n this.getSort().by +\r\n \"&restaurantTypes=\" +\r\n this.filterSettings.restaurant_type +\r\n \"&sortOrder=\" +\r\n this.getSort().order +\r\n \"&query=\" +\r\n this.filterSettings.search_string\r\n );\r\n },\r\n },\r\n methods: {\r\n getSort() {\r\n const sortArray = this.filterSettings.sort.split(\" \");\r\n return { by: sortArray[0], order: sortArray[1] };\r\n },\r\n onFilterChange() {\r\n this.page = 1;\r\n this.getData(this.apiUrl, true);\r\n },\r\n showMore() {\r\n this.page++;\r\n this.getData(this.apiUrl, false);\r\n },\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_searchResults() {\r\n new Vue({\r\n el: \"#PFS_searchResults\",\r\n data() {\r\n return {\r\n itemList: [],\r\n currentlyLoaded: 0,\r\n progress_percent: 10,\r\n totalPages: 0,\r\n totalResults: 0,\r\n page: 1,\r\n size: 6,\r\n\r\n hide_paginator: false,\r\n };\r\n },\r\n mixins: [getDataMixin],\r\n methods: {\r\n getSearchQueryFromUrl() {},\r\n showMore() {\r\n this.page++;\r\n this.getData(this.apiUrl, false);\r\n },\r\n },\r\n computed: {\r\n // Used for displaying searched term to user i page title\r\n queryString: function () {\r\n return getAllUrlParams().query;\r\n },\r\n apiUrl: function () {\r\n return (\r\n API_BASE_URL +\r\n \"/search?query=\" +\r\n getAllUrlParams().query +\r\n \"&size=\" +\r\n this.size +\r\n \"&page=\" +\r\n this.page\r\n );\r\n },\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_productListing() {\r\n new Vue({\r\n el: \"#PFS_productListing\",\r\n data() {\r\n return {\r\n itemList: [],\r\n filterSettings: {\r\n search_string: \"\",\r\n brand: [],\r\n },\r\n filter_brand: window.filter_brand,\r\n\r\n currentlyLoaded: 0,\r\n progress_percent: 10,\r\n totalPages: 0,\r\n totalResults: 0,\r\n page: 1,\r\n size: 4,\r\n hide_paginator: false,\r\n };\r\n },\r\n mixins: [getDataMixin],\r\n methods: {\r\n onFilterChange() {\r\n this.page = 1;\r\n this.getData(this.apiUrl, true);\r\n },\r\n showMore() {\r\n this.page++;\r\n this.getData(this.apiUrl, false);\r\n },\r\n },\r\n computed: {\r\n productList: function () {\r\n return this.itemList;\r\n },\r\n apiUrl: function () {\r\n return (\r\n API_BASE_URL +\r\n \"/products?page=\" +\r\n this.page +\r\n \"&size=\" +\r\n this.size +\r\n \"&brands=\" +\r\n this.filterSettings.brand +\r\n \"&query=\" +\r\n this.filterSettings.search_string\r\n );\r\n },\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_newsListing() {\r\n new Vue({\r\n el: \"#PFS_newsListing\",\r\n data() {\r\n return {\r\n itemList: [],\r\n newsType: window.newsType,\r\n currentlyLoaded: 0,\r\n progress_percent: 10,\r\n totalPages: 0,\r\n totalResults: 0,\r\n page: 1,\r\n size: 1,\r\n hide_paginator: false,\r\n };\r\n },\r\n mixins: [getDataMixin],\r\n\r\n computed: {\r\n newsList: function () {\r\n return this.itemList;\r\n },\r\n apiUrl: function () {\r\n return (\r\n API_BASE_URL +\r\n \"/news?type=\" +\r\n this.newsType +\r\n \"&page=\" +\r\n this.page +\r\n \"&size=\" +\r\n this.size\r\n );\r\n },\r\n },\r\n methods: {\r\n showMore() {\r\n this.page++;\r\n this.getData(this.apiUrl);\r\n },\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_brandListing() {\r\n new Vue({\r\n el: \"#PFS_brandListing\",\r\n data() {\r\n return {\r\n brandList: [],\r\n currentlyLoaded: 0,\r\n progress_percent: 10,\r\n totalPages: 0,\r\n totalResults: 0,\r\n page: 1,\r\n size: 100,\r\n hide_paginator: false,\r\n };\r\n },\r\n created: function () {\r\n this.getData(this.apiUrl);\r\n },\r\n computed: {\r\n apiUrl: function () {\r\n return (\r\n API_BASE_URL + \"/brands?page=\" + this.page + \"&size=\" + this.size\r\n );\r\n },\r\n },\r\n methods: {\r\n getData(url) {\r\n // Fetch Brands\r\n fetch(url)\r\n .then((response) => {\r\n if (!response.ok) throw Error(response.statusText);\r\n return response.json();\r\n })\r\n .then((data) => {\r\n for (var i of data.Results) {\r\n this.brandList.push(i);\r\n }\r\n this.totalResults = data.TotalResults;\r\n this.totalPages = data.TotalPages;\r\n this.currentlyLoaded = this.brandList.length;\r\n this.progress_percent = (\r\n (this.currentlyLoaded / this.totalResults) *\r\n 100\r\n ).toFixed();\r\n if (this.page == this.totalPages) {\r\n this.hide_paginator = true;\r\n } else {\r\n this.hide_paginator = false;\r\n }\r\n });\r\n },\r\n showMore() {\r\n this.page++;\r\n this.getData(this.apiUrl);\r\n },\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_equipmentListing() {\r\n new Vue({\r\n el: \"#PFS_equipmentListing\",\r\n data() {\r\n return {\r\n itemList: [],\r\n filterSettings: {\r\n search_string: \"\",\r\n brand: [],\r\n },\r\n filter_brand: window.filter_brand,\r\n\r\n currentlyLoaded: 0,\r\n progress_percent: 10,\r\n totalPages: 0,\r\n totalResults: 0,\r\n page: 1,\r\n size: 4,\r\n hide_paginator: false,\r\n };\r\n },\r\n mixins: [getDataMixin],\r\n methods: {\r\n onFilterChange() {\r\n this.page = 1;\r\n this.getData(this.apiUrl, true);\r\n },\r\n showMore() {\r\n this.page++;\r\n this.getData(this.apiUrl, false);\r\n },\r\n },\r\n computed: {\r\n productList: function () {\r\n console.log(this.itemList)\r\n return this.itemList;\r\n },\r\n apiUrl: function () {\r\n return (\r\n \r\n \"/api/equipments?uid=\" + CATEGORY_ID + \"&page=\" +\r\n this.page +\r\n \"&size=\" +\r\n this.size +\r\n \"&brands=\" +\r\n this.filterSettings.brand +\r\n \"&query=\" +\r\n this.filterSettings.search_string\r\n );\r\n },\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\n\r\nfunction PFS_savedRecipes() {\r\n new Vue({\r\n el: \"#PFS_savedRecipes\",\r\n data() {\r\n return {\r\n itemList: [],\r\n currentlyLoaded: 0,\r\n progress_percent: 0,\r\n totalPages: 0,\r\n totalResults: 0,\r\n page: 1,\r\n size: 4,\r\n hide_paginator: false,\r\n showErrorSnackbar: false,\r\n deleteErrorMsg: stringTranslation(\r\n \"there_seems_to_be_some_technical_error\"\r\n ),\r\n };\r\n },\r\n mixins: [getDataMixin],\r\n computed: {\r\n recipesList: function () {\r\n // TODO\r\n // remove dummy id-s from item list\r\n //////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n // this.itemList.map((item, index) => {\r\n // console.log(this.itemList[index]);\r\n // return this.itemList[index].Id = this.page + '' + index\r\n // })\r\n // console.log('this.itemList :>> ', this.itemList);\r\n //////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n return this.itemList;\r\n },\r\n\r\n apiUrl: function () {\r\n return (\r\n BASE_URL +\r\n SAVED_CONTENT_API_PATH +\r\n \"?page=\" +\r\n this.page +\r\n \"&size=\" +\r\n this.size\r\n );\r\n },\r\n },\r\n components: {\r\n \"deletable-card-component\": DeletableCardComponent,\r\n },\r\n\r\n methods: {\r\n isItemDeleted(value) {\r\n this.showErrorSnackbar = !value;\r\n if (value) {\r\n this.updateProgressbar(); // from mixin\r\n }\r\n },\r\n showMore() {\r\n this.page++;\r\n this.getData(this.apiUrl, false);\r\n },\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_savedMenus() {\r\n new Vue({\r\n el: \"#PFS_savedMenus\",\r\n data() {\r\n return {\r\n itemList: [],\r\n // delete_dropdown_id: null,\r\n currentlyLoaded: 0,\r\n progress_percent: 0,\r\n totalPages: 0,\r\n totalResults: 0,\r\n page: 1,\r\n size: 4,\r\n hide_paginator: false,\r\n showErrorSnackbar: false,\r\n deleteErrorMsg: stringTranslation(\r\n \"there_seems_to_be_some_technical_error\"\r\n ),\r\n };\r\n },\r\n mixins: [getDataMixin],\r\n computed: {\r\n recipesList: function () {\r\n // TODO\r\n // remove dummy id-s from item list\r\n //////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n // this.itemList.map((item, index) => {\r\n // console.log(this.itemList[index]);\r\n // return this.itemList[index].Id = this.page + '' + index\r\n // })\r\n // console.log('this.itemList :>> ', this.itemList);\r\n //////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n return this.itemList;\r\n },\r\n\r\n apiUrl: function () {\r\n return (\r\n BASE_URL +\r\n SAVED_CONTENT_API_PATH +\r\n \"?page=\" +\r\n this.page +\r\n \"&size=\" +\r\n this.size\r\n );\r\n },\r\n },\r\n components: {\r\n \"deletable-card-component\": DeletableCardComponent,\r\n },\r\n methods: {\r\n isItemDeleted(value) {\r\n this.showErrorSnackbar = !value;\r\n if (value) {\r\n this.updateProgressbar(); // from mixin\r\n }\r\n },\r\n showMore() {\r\n this.page++;\r\n this.getData(this.apiUrl, false);\r\n },\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_popupPermissions() {\r\n console.log(\"Frpm PFS_popupPermissions\");\r\n new Vue({\r\n el: \"#PFS_popupPermissions\",\r\n data() {\r\n return {\r\n popupPermissionsDialog: false,\r\n isPopupPermissionAccepted: false,\r\n };\r\n },\r\n methods: {\r\n acceptPopupPermission() {\r\n const data = { is_accepted: this.isPopupPermissionAccepted };\r\n var _this = this;\r\n _this.isPopupPermissionAccepted = false;\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: window.url_popup_permissions,\r\n data: data,\r\n dataType: \"json\",\r\n })\r\n .done(function (data) {\r\n if (data.status === \"success\") {\r\n _this.popupPermissionsDialog = false;\r\n } else {\r\n console.log(\"error: \", data.errorMessages);\r\n }\r\n })\r\n .fail(function (err) {\r\n console.log(\"error: \", err);\r\n })\r\n .always(function () {\r\n _this.isPopupPermissionAccepted = true;\r\n // console.log(\"finished Popup Permission\");\r\n });\r\n },\r\n },\r\n mounted() {\r\n // Open dialog if Permission is not already accepted\r\n this.popupPermissionsDialog = !window.is_popup_permissions_accepted;\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\n// Old Photo library card\r\n// Vue.component('photo_library_card', {\r\n// props: ['post'],\r\n// data: function () {\r\n// return {\r\n// title: this.post.Name,\r\n// image_thumbnail: this.post.Thumbnail,\r\n// downloadSize: null,\r\n// link: null,\r\n// isLink: false,\r\n// size: null,\r\n// }\r\n// },\r\n// watch: {\r\n// downloadSize: {\r\n// handler: function (val, oldVal) {\r\n//\r\n// window.dataLayer = window.dataLayer || [];\r\n// window.dataLayer.push({\r\n// 'dlv.action': 'Download',\r\n// 'dlv.type': 'Phototeque',\r\n// 'dlv.asset': this.post.Name\r\n// });\r\n//\r\n// this.size = val;\r\n// if (this.downloadSize) {\r\n// this.isLink = true\r\n// }\r\n//\r\n// if (val === 'small') {\r\n// this.link = this.post.LogoSmall\r\n// } else {\r\n// this.link = this.post.LogoBig\r\n// }\r\n// },\r\n// deep: true\r\n// },\r\n//\r\n// },\r\n// methods: {\r\n// handleFileDownload() {\r\n//\r\n// downloadFile(this.link, this.title, this.size)\r\n//\r\n// this.downloadSize = null\r\n// this.link = null\r\n// this.isLink = false\r\n// this.size = null\r\n// }\r\n// }\r\n// })\r\n\r\n// ==============================================================================================================================\r\n// Photo Library card with Platform\r\n// ------------------------------------------------------------------------------------------------------------------------------\r\nVue.component(\"photo_library_card\", {\r\n props: [\"post\"],\r\n data: function () {\r\n return {\r\n title: this.post.Name,\r\n image_thumbnail: this.post.Thumbnail,\r\n imageId: this.post.ImageId,\r\n thumbnail: \"false\",\r\n platform: window.filter_platform[0].value,\r\n resizeType: this.post.ResizeOptions,\r\n isResizable: false,\r\n filter_platform: window.filter_platform,\r\n };\r\n },\r\n\r\n methods: {\r\n checkIfResizable() {\r\n if (!this.resizeType || this.resizeType === \"NoResize\") {\r\n this.isResizable = false;\r\n } else {\r\n this.isResizable = true;\r\n }\r\n },\r\n\r\n handleFileDownload() {\r\n // Create link to image\r\n const downloadImageUrl =\r\n PHOTOLIBITEMS_DOWNLOAD_BASE_URL +\r\n \"/image/format?\" +\r\n \"imageId=\" +\r\n this.imageId +\r\n \"&thumbnail=\" +\r\n this.thumbnail +\r\n \"&platform=\" +\r\n this.platform +\r\n \"&resizeType=\" +\r\n this.resizeType;\r\n\r\n // console.log(\"downloadImageUrl >> \", downloadImageUrl)\r\n\r\n // Download image\r\n downloadFile(downloadImageUrl, this.title, \"\");\r\n },\r\n },\r\n mounted() {\r\n // For every card check is resizable and show/hide platform select options\r\n this.checkIfResizable();\r\n },\r\n});\r\n\r\n// ------------------------------------------------------------------------------------------------------------------------------\r\n\r\nfunction PFS_photoLibraryListing() {\r\n new Vue({\r\n el: \"#PFS_photoLibraryListing\",\r\n data() {\r\n return {\r\n itemList: [],\r\n filterSettings: {\r\n sort: \"\",\r\n search_string: \"\",\r\n brand: [],\r\n type_of_visuals: [],\r\n },\r\n\r\n filter_sort_values: window.filter_sort_values,\r\n filter_category: window.filter_category,\r\n filter_brand: window.filter_brand,\r\n filter_type_of_visuals: window.filter_type_of_visuals,\r\n\r\n currentlyLoaded: 0,\r\n progress_percent: 10,\r\n totalPages: 0,\r\n totalResults: 0,\r\n page: 1,\r\n size: 4,\r\n hide_paginator: false,\r\n };\r\n },\r\n mixins: [getDataMixin],\r\n methods: {\r\n getSort() {\r\n const sortArray = this.filterSettings.sort.split(\" \");\r\n return { by: sortArray[0], order: sortArray[1] };\r\n },\r\n onFilterChange() {\r\n this.page = 1;\r\n this.getData(this.apiUrl, true);\r\n },\r\n showMore() {\r\n this.page++;\r\n this.getData(this.apiUrl);\r\n },\r\n },\r\n computed: {\r\n photoLibraryListing: function () {\r\n return this.itemList;\r\n },\r\n apiUrl: function () {\r\n return (\r\n API_BASE_URL +\r\n \"/photolibitems?page=\" +\r\n this.page +\r\n \"&size=\" +\r\n this.size +\r\n \"&brands=\" +\r\n this.filterSettings.brand +\r\n \"&typeOfVisuals=\" +\r\n encodeURIComponent(this.filterSettings.type_of_visuals) +\r\n \"&sortBy=\" +\r\n this.getSort().by +\r\n \"&sortOrder=\" +\r\n this.getSort().order +\r\n \"&query=\" +\r\n this.filterSettings.search_string\r\n );\r\n },\r\n },\r\n\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_ContactForm() {\r\n new Vue({\r\n el: \"#PFS_ContactForm\",\r\n data() {\r\n return {\r\n email: \"\",\r\n message: \"\",\r\n name: \"\",\r\n isLoading: false,\r\n server_error: false,\r\n server_error_msg: \"\",\r\n\r\n contact_success: false,\r\n contact_success_msg: \"\",\r\n\r\n isContactFormValid: false,\r\n\r\n nameRules: [(v) => !!v || stringTranslation(\"name_is_required\")],\r\n messageRules: [(v) => !!v || stringTranslation(\"message_is_required\")],\r\n emailRules: [\r\n (v) => !!v || stringTranslation(\"e_mail_is_required\"),\r\n (v) =>\r\n emailPattern.test(v) || stringTranslation(\"e_mail_must_be_valid\"),\r\n ],\r\n };\r\n },\r\n methods: {\r\n submitForm() {\r\n const _this = this;\r\n _this.isLoading = true;\r\n var contactFromData = {\r\n Email: this.email,\r\n Message: this.message,\r\n Name: this.name,\r\n };\r\n\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: window.page_data__contact_path,\r\n data: contactFromData,\r\n dataType: \"json\",\r\n })\r\n .done(function (data) {\r\n if (data.status == \"Success\") {\r\n _this.contact_success = true;\r\n } else {\r\n _this.contact_success = false;\r\n _this.server_error_msg = data.message;\r\n _this.server_error = true;\r\n }\r\n })\r\n .fail(function (err) {\r\n console.log(\"error: \", err);\r\n _this.server_error_msg = stringTranslation(\r\n \"we_apologize_something_went_wrong_please_try_again_later\"\r\n );\r\n _this.server_error = true;\r\n })\r\n .always(function () {\r\n _this.isLoading = false;\r\n });\r\n },\r\n },\r\n updated: function () {\r\n this.$nextTick(function () {\r\n if (\r\n this.email !== \"\" &&\r\n emailPattern.test(this.email) &&\r\n this.name !== \"\" &&\r\n this.message !== \"\"\r\n ) {\r\n this.isContactFormValid = true;\r\n } else {\r\n this.isContactFormValid = false;\r\n }\r\n });\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_SecondaryContactForm() {\r\n new Vue({\r\n el: \"#PFS_SecondaryContactForm\",\r\n data() {\r\n return {\r\n email: \"\",\r\n message: \"\",\r\n first_name: \"\",\r\n last_name: \"\",\r\n postal_code: \"\",\r\n restaurant_name: \"\",\r\n activity_type: window.activity_type,\r\n selected_activity_type: \"\",\r\n isLoading: false,\r\n server_error: false,\r\n server_error_msg: \"\",\r\n newsletter: false,\r\n contactOptIn: false,\r\n\r\n contact_success: false,\r\n contact_success_msg: \"\",\r\n\r\n isContactFormValid: false,\r\n\r\n nameRules: [(v) => !!v || stringTranslation(\"name_is_required\")],\r\n lastNameRules: [(v) => !!v || stringTranslation(\"surname_is_required\")],\r\n postalCodeRules: [(v) => !!v || stringTranslation(\"postal_code_is_required\")],\r\n restaurantNameRules: [(v) => !!v || stringTranslation(\"restaurant_name_is_required\")],\r\n messageRules: [(v) => !!v || stringTranslation(\"message_is_required\")],\r\n activityTypeRules: [(v) => !!v || stringTranslation(\"this_field_is_required\")],\r\n emailRules: [\r\n (v) => !!v || stringTranslation(\"e_mail_is_required\"),\r\n (v) =>\r\n emailPattern.test(v) || stringTranslation(\"e_mail_must_be_valid\"),\r\n ],\r\n // newsletterRules: [(v) => !!v || stringTranslation(\"this_field_is_required\")],\r\n // contactOptInRules: [(v) => !!v || stringTranslation(\"this_field_is_required\")],\r\n };\r\n },\r\n methods: {\r\n submitForm() {\r\n const _this = this;\r\n _this.isLoading = true;\r\n var contactFromData = {\r\n Email: this.email,\r\n Message: this.message,\r\n FirstName: this.first_name,\r\n LastName: this.last_name,\r\n PostalCode: this.postal_code,\r\n RestaurantName: this.restaurant_name,\r\n ActivityType: this.selected_activity_type,\r\n Newsletter: this.newsletter,\r\n ContactOptIn: this.contactOptIn,\r\n \r\n };\r\n\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: window.page_data__contact_path,\r\n data: contactFromData,\r\n dataType: \"json\",\r\n })\r\n .done(function (data) {\r\n if (data.status == \"Success\") {\r\n _this.contact_success = true;\r\n } else {\r\n _this.contact_success = false;\r\n _this.server_error_msg = data.message;\r\n _this.server_error = true;\r\n }\r\n })\r\n .fail(function (err) {\r\n console.log(\"error: \", err);\r\n _this.server_error_msg = stringTranslation(\r\n \"we_apologize_something_went_wrong_please_try_again_later\"\r\n );\r\n _this.server_error = true;\r\n })\r\n .always(function () {\r\n _this.isLoading = false;\r\n });\r\n },\r\n },\r\n updated: function () {\r\n this.$nextTick(function () {\r\n if (\r\n this.email !== \"\" &&\r\n emailPattern.test(this.email) &&\r\n this.first_name !== \"\" &&\r\n this.message !== \"\" &&\r\n this.last_name !== \"\" &&\r\n this.postal_code !== \"\" &&\r\n this.restaurant_name !== \"\" &&\r\n this.selected_activity_type !== \"\"\r\n ) {\r\n this.isContactFormValid = true;\r\n } else {\r\n this.isContactFormValid = false;\r\n }\r\n });\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\nfunction PFS_Contest() {\r\n new Vue({\r\n el: \"#PFS_Contest\",\r\n data() {\r\n return {\r\n FirstName: window.model.FirstName,\r\n LastName: window.model.LastName,\r\n Email: window.model.Email,\r\n PhoneNumber: window.model.PhoneNumber,\r\n Venue: window.model.Venue,\r\n SiretNumber: window.model.SiretNumber,\r\n PurchasedFrom: \"\",\r\n InvoiceImage: null,\r\n tos: false,\r\n Subscribed: false,\r\n message: \"\",\r\n isLoading: false,\r\n server_error: false,\r\n server_error_msg: [],\r\n\r\n contest_success: false,\r\n contest_success_msg: \"\",\r\n siretNumberLength: 14,\r\n siretNumberPattern: /^[0-9]{14}/,\r\n phoneNumberPattern: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/,\r\n\r\n isContestFormValid: false,\r\n\r\n firstNameRules: [\r\n (v) => !!v || stringTranslation(\"first_name_is_required\"),\r\n ],\r\n surnameRules: [(v) => !!v || stringTranslation(\"surname_is_required\")],\r\n phoneNumberRules: {\r\n required: (v) => !!v || stringTranslation(\"phone_number_is_required\"),\r\n regex: (v) => {\r\n return (\r\n this.phoneNumberPattern.test(v) ||\r\n stringTranslation(\"phone_number_is_required\")\r\n );\r\n },\r\n },\r\n requiredRules: [\r\n (v) => !!v || stringTranslation(\"this_field_is_required\"),\r\n ],\r\n tosRules: [\r\n (v) => !!v || stringTranslation(\"terms_of_service__is_required\"),\r\n ],\r\n emailRules: [\r\n (v) => !!v || stringTranslation(\"e_mail_is_required\"),\r\n (v) =>\r\n emailPattern.test(v) || stringTranslation(\"e_mail_must_be_valid\"),\r\n ],\r\n invoiceImageRules: [\r\n (v) => !!v || stringTranslation(\"this_field_is_required\"),\r\n // v => v && v.type === 'image/png' || stringTranslation('file_extension_must_be_png')\r\n (v) =>\r\n this.validateFileExtension(v) ||\r\n stringTranslation(\"file_extension_must_be_png\"),\r\n ],\r\n siretNumberRules: {\r\n required: (v) => !!v || stringTranslation(\"this_field_is_required\"),\r\n numeric: (v) => {\r\n return (\r\n this.siretNumberPattern.test(v) ||\r\n stringTranslation(\"only_numbers\")\r\n );\r\n },\r\n numLength: (v) =>\r\n (!!v && v.length === this.siretNumberLength) ||\r\n stringTranslation(\"must_be_\") +\r\n this.siretNumberLength +\r\n stringTranslation(\"_characters\"),\r\n },\r\n };\r\n },\r\n methods: {\r\n submitForm() {\r\n const _this = this;\r\n _this.isLoading = true;\r\n\r\n let antiforgerytoken = null;\r\n\r\n if (document.querySelector('[name=\"__RequestVerificationToken\"]')) {\r\n antiforgerytoken = document.querySelector(\r\n '[name=\"__RequestVerificationToken\"]'\r\n ).value;\r\n }\r\n\r\n let body = new FormData();\r\n body.append(\"Email\", this.Email);\r\n body.append(\"Venue\", this.Venue);\r\n body.append(\"LastName\", this.LastName);\r\n body.append(\"FirstName\", this.FirstName);\r\n body.append(\"PhoneNumber\", this.PhoneNumber);\r\n body.append(\"SiretNumber\", this.SiretNumber);\r\n body.append(\"InvoiceImage\", this.InvoiceImage);\r\n body.append(\"Subscribed\", this.Subscribed);\r\n body.append(\"PurchasedFrom\", this.PurchasedFrom);\r\n if (antiforgerytoken) {\r\n body.append(\"__RequestVerificationToken\", antiforgerytoken);\r\n }\r\n\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: window.contest_api_path,\r\n data: body,\r\n enctype: \"multipart/form-data\",\r\n processType: false,\r\n processData: false,\r\n contentType: false,\r\n })\r\n .done(function (data) {\r\n if (data.status == \"success\") {\r\n _this.contest_success = true;\r\n } else {\r\n _this.contest_success = false;\r\n _this.server_error_msg = data.errorMessages;\r\n _this.server_error = true;\r\n }\r\n })\r\n .fail(function (err) {\r\n console.log(\"error: \", err);\r\n _this.server_error_msg = [\r\n stringTranslation(\r\n \"we_apologize_something_went_wrong_please_try_again_later\"\r\n ),\r\n ];\r\n _this.server_error = true;\r\n })\r\n .always(function () {\r\n _this.isLoading = false;\r\n });\r\n },\r\n validateFileExtension(image) {\r\n if (!image) {\r\n return false;\r\n }\r\n const allowedExtensions = [\"png\", \"jpg\", \"jpeg\"];\r\n const ext = image.type.split(\"/\")[1].toLowerCase();\r\n\r\n if (allowedExtensions.includes(ext)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n },\r\n updated: function () {\r\n this.$nextTick(function () {\r\n if (\r\n this.Email !== \"\" &&\r\n emailPattern.test(this.Email) &&\r\n this.FirstName !== \"\" &&\r\n this.LastName !== \"\" &&\r\n this.Venue !== \"\" &&\r\n this.PhoneNumber !== \"\" &&\r\n this.phoneNumberPattern.test(this.PhoneNumber) &&\r\n this.SiretNumber !== \"\" &&\r\n this.SiretNumber.length === this.siretNumberLength &&\r\n this.siretNumberPattern.test(this.SiretNumber) &&\r\n this.InvoiceImage &&\r\n this.validateFileExtension(this.InvoiceImage) &&\r\n this.tos\r\n ) {\r\n this.isContestFormValid = true;\r\n } else {\r\n this.isContestFormValid = false;\r\n }\r\n });\r\n },\r\n vuetify: new Vuetify(VUETIFY_OPTIONS),\r\n });\r\n}\r\n\r\n// Shared functions\r\n\r\nfunction calculateProgress(total, loaded) {\r\n return Math.round((loaded / total) * 100);\r\n}\r\n\r\nfunction isEmailExist(email) {\r\n var isEmailExist = true;\r\n jQuery\r\n .ajax({\r\n type: \"POST\",\r\n url: url_isEmailExist,\r\n data: { emailId: email },\r\n dataType: \"json\",\r\n })\r\n .done(function (data) {\r\n console.log(\"success\");\r\n isEmailExist = data.Item1;\r\n })\r\n .fail(function (err) {})\r\n .always(function () {\r\n return isEmailExist;\r\n });\r\n\r\n return true;\r\n}\r\n\r\nfunction validateEmail(email) {\r\n var re =\r\n /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return re.test(email);\r\n}\r\n"],"mappings":"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"}