{"version":3,"sources":["webpack:///./LeLab.Gcv.Web/src/controller/ctrl-product-search-form/ctrl-product-search-form.chunk.js"],"names":["$","require","cookies","AjaxRefresh","Logger","ProductSearchForm","element","that","$container","refreshElement","GetRefreshElement","cookie_name","data","lastRefresh","on","ev","args","updateCookie","StartDate","date","refresh","NumberOfChildren","setFilterValue","NumberOfAdults","$filterHotel","FilterHotelHandler","filterHotelHandler","setManualValues","find","each","TicketDateHandler","invalidatePrices","name","value","$el","format","$dataNumber","text","replace","split","$dataText","cancel","css","visibility","AjaxRefreshUi","document","trigger","newData","cookieRetentionDays","cookieJson","read","cookie","JSON","parse","Object","assign","cookieValue","stringify","Log","create","init","off"],"mappings":"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","file":"ctrl-product-search-form.js","sourcesContent":["const $ = require(\"jquery\");\r\nconst cookies = require('utils/cookies-utils');\r\nconst AjaxRefresh = require(\"utils/ajax-refresh\");\r\nconst Logger = require(\"utils/log-utils\");\r\n\r\nclass ProductSearchForm {\r\n constructor(element) {\r\n var that = this;\r\n\r\n this.$container = $(element);\r\n this.refreshElement = AjaxRefresh.GetRefreshElement(this.$container);\r\n this.cookie_name = this.$container.data(\"search-cookie\");\r\n\r\n let lastRefresh;\r\n\r\n this.$container.on(\"dateChanged\", (ev, args) => {\r\n that.updateCookie({StartDate: args.date});\r\n that.refresh();\r\n });\r\n\r\n // Évènement reçu du pour mettre à jour le cookie de recherche et l'interface.\r\n // Actuellement appelé par le popup de confirmation de l'ajout d'une chambre (\\LeLab.Gcv.Web\\src\\atomic\\molecule\\m-lodging-confirmation\\m-lodging-confirmation.chunk.js)\r\n this.$container.on(\"set-manual-values\", (ev, args) => {\r\n\r\n /*\r\n Exemple de valeur de args :\r\n { \r\n \"NumberOfChildren\": 2,\r\n \"NumberOfAdults\": 1,\r\n \"ChildrenAges\": [1,2]\r\n };\r\n */\r\n\r\n that.updateCookie(args);\r\n\r\n if (typeof args.NumberOfChildren !== 'undefined') {\r\n that.setFilterValue(\"NumberOfChilds\", args.NumberOfChildren);\r\n }\r\n\r\n if (typeof args.NumberOfAdults !== 'undefined') {\r\n that.setFilterValue(\"NumberOfAdults\", args.NumberOfAdults);\r\n }\r\n\r\n // On met à jour également les valeur dans le popup\r\n let $filterHotel = $(\".m-filter-hotel\")[0];\r\n if ($filterHotel && $filterHotel.FilterHotelHandler) {\r\n let filterHotelHandler = $filterHotel.FilterHotelHandler;\r\n filterHotelHandler.setManualValues(args);\r\n }\r\n\r\n });\r\n\r\n this.$container.on(\"params-selected\", (ev, args) => {\r\n that.updateCookie(args);\r\n\r\n if (typeof args.NumberOfChildren !== 'undefined') {\r\n that.setFilterValue(\"NumberOfChilds\", args.NumberOfChildren);\r\n }\r\n\r\n if (typeof args.NumberOfAdults !== 'undefined') {\r\n that.setFilterValue(\"NumberOfAdults\", args.NumberOfAdults);\r\n }\r\n\r\n that.$container.find(\".o-ticket-date\").each(function () {\r\n this.TicketDateHandler.invalidatePrices();\r\n });\r\n\r\n that.refresh();\r\n });\r\n }\r\n\r\n setFilterValue(name, value) {\r\n const $el = this.$container.find(`[data-filter-value=\"${name}\"]`);\r\n\r\n if (!$el) {\r\n return;\r\n }\r\n\r\n const format = value > 1\r\n ? $el.data(\"plural\")\r\n : $el.data(\"singular\");\r\n\r\n let $dataNumber = $el.find(\"[data-number]\");\r\n if ($dataNumber) {\r\n $dataNumber.text(format.replace(\"{0}\", value).split(\" \")[0]);\r\n }\r\n\r\n let $dataText = $el.find(\"[data-text]\");\r\n if ($dataText) {\r\n $dataText.text(format.replace(\"{0}\", value).split(\" \")[1]);\r\n }\r\n }\r\n\r\n refresh() {\r\n if (this.lastRefresh) {\r\n this.lastRefresh.cancel();\r\n }\r\n\r\n this.$container.find(\".js-refresh-target\").css({visibility: \"hidden\"});\r\n this.lastRefresh = AjaxRefresh.AjaxRefreshUi([this.refreshElement], 60, () => $(document).trigger(\"jsInitAllScripts\"));\r\n }\r\n\r\n updateCookie(newData) {\r\n\r\n /*\r\n Exemple de valeur :\r\n { \r\n \"StartDate\":\"2019-10-01 00:00:00\",\r\n \"NumberOfNights\":1,\r\n \"NumberOfChildren\":2,\r\n \"NumberOfAdults\":2,\r\n \"ChildrenAges\":[ \r\n 6,\r\n 7\r\n ],\r\n \"NumberOfRooms\":1\r\n }\r\n */\r\n\r\n const cookieRetentionDays = 1;\r\n const cookieJson = cookies.read(this.cookie_name);\r\n let cookie = JSON.parse(cookieJson);\r\n\r\n if (cookie)\r\n Object.assign(cookie, newData);\r\n else\r\n cookie = newData;\r\n\r\n var cookieValue = JSON.stringify(cookie);\r\n\r\n Logger.Log('ctrl-product-search-form.chunk.js updateCookie', cookieValue);\r\n\r\n cookies.create(this.cookie_name, cookieValue, cookieRetentionDays);\r\n }\r\n}\r\n\r\nfunction init() {\r\n $('[data-controller=\"product-search-form\"]').each(function () {\r\n if (this.ProductSearchForm) return;\r\n this.ProductSearchForm = new ProductSearchForm(this);\r\n });\r\n}\r\n\r\n$(document).off('jsInitAllScripts.product-search-form');\r\n$(document).on('jsInitAllScripts.product-search-form', function () {\r\n init();\r\n});\n\n\n// WEBPACK FOOTER //\n// ./LeLab.Gcv.Web/src/controller/ctrl-product-search-form/ctrl-product-search-form.chunk.js"],"sourceRoot":""}