vendor: 3,877 bytes, lines 1-96
1/*! 2 * NOTICE OF LICENSE 3 * 4 * @author 202 ecommerce <[email protected]> 5 * @author Mondial Relay 6 * @copyright Copyright (c) Mondial Relay 7 * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) 8 */ 9/******/ (function(modules) { // webpackBootstrap 10/******/ // The module cache 11/******/ var installedModules = {}; 12/******/ 13/******/ // The require function 14/******/ function __webpack_require__(moduleId) { 15/******/ 16/******/ // Check if module is in cache 17/******/ if(installedModules[moduleId]) { 18/******/ return installedModules[moduleId].exports; 19/******/ } 20/******/ // Create a new module (and put it into the cache) 21/******/ var module = installedModules[moduleId] = { 22/******/ i: moduleId, 23/******/ l: false, 24/******/ exports: {} 25/******/ }; 26/******/ 27/******/ // Execute the module function 28/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 29/******/ 30/******/ // Flag the module as loaded 31/******/ module.l = true; 32/******/ 33/******/ // Return the exports of the module 34/******/ return module.exports; 35/******/ } 36/******/ 37/******/ 38/******/ // expose the modules object (__webpack_modules__) 39/******/ __webpack_require__.m = modules; 40/******/ 41/******/ // expose the module cache 42/******/ __webpack_require__.c = installedModules; 43/******/ 44/******/ // define getter function for harmony exports 45/******/ __webpack_require__.d = function(exports, name, getter) { 46/******/ if(!__webpack_require__.o(exports, name)) { 47/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 48/******/ } 49/******/ }; 50/******/ 51/******/ // define __esModule on exports 52/******/ __webpack_require__.r = function(exports) { 53/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 54/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 55/******/ } 56/******/ Object.defineProperty(exports, '__esModule', { value: true }); 57/******/ }; 58/******/ 59/******/ // create a fake namespace object 60/******/ // mode & 1: value is a module id, require it 61/******/ // mode & 2: merge all properties of value into the ns 62/******/ // mode & 4: return value when already ns object 63/******/ // mode & 8|1: behave like require 64/******/ __webpack_require__.t = function(value, mode) { 65/******/ if(mode & 1) value = __webpack_require__(value); 66/******/ if(mode & 8) return value; 67/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 68/******/ var ns = Object.create(null); 69/******/ __webpack_require__.r(ns); 70/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 71/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 72/******/ return ns; 73/******/ }; 74/******/ 75/******/ // getDefaultExport function for compatibility with non-harmony modules 76/******/ __webpack_require__.n = function(module) { 77/******/ var getter = module && module.__esModule ? 78/******/ function getDefault() { return module['default']; } : 79/******/ function getModuleExports() { return module; }; 80/******/ __webpack_require__.d(getter, 'a', getter); 81/******/ return getter; 82/******/ }; 83/******/ 84/******/ // Object.prototype.hasOwnProperty.call 85/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 86/******/ 87/******/ // __webpack_public_path__ 88/******/ __webpack_require__.p = ""; 89/******/ 90/******/ 91/******/ // Load entry module and return exports 92/******/ return __webpack_require__(__webpack_require__.s = "./_dev/js/front/checkout/checkout-17.js"); 93/******/ }) 94/************************************************************************/ 95/******/ ({ 96
97/***/ "./_dev/js/front/checkout/checkout-17.js": 98/*!***********************************************!*\ 99 !*** ./_dev/js/front/checkout/checkout-17.js ***! 100 \***********************************************/ 101/*! no exports provided */ 102/***/ (function(module, __webpack_exports__, __webpack_require__) { 103 104"use strict"; 105__webpack_require__.r(__webpack_exports__); 106/* harmony import */ var _checkout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./checkout */ "./_dev/js/front/checkout/checkout.js"); 107/** 108 * NOTICE OF LICENSE 109 * 110 * @author 202 ecommerce <[email protected]> 111 * @author Mondial Relay 112 * @copyright Copyright (c) Mondial Relay 113 * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) 114 */ 115 116/** 117 * Javascript for PS 1.7 118 */ 119 120// modules ES6 121 122 123// The container of the whole "mondialrelay_content", as the original one is 124// badly placed 125var selectedCarrierExtraContent = null; 126 127// This will track if the page should be refreshed when changing carrier, as 128// other carriers may depend on it 129var flagPaymentStepNeedsRefresh = null; 130 131// This will track if the payment step should be reachable using the link or not 132var isPaymentStepReachable = null; 133var setSelectedCarrierExtraContent = function setSelectedCarrierExtraContent() { 134 selectedCarrierExtraContent = $('[name^="delivery_option"]:checked').closest('.delivery-option').next('.carrier-extra-content'); 135 return selectedCarrierExtraContent; 136}; 137$("#mondialrelay_save-relay").on("click", function () { 138 $('button.continue[name="confirmDeliveryOption"]').removeAttr("disabled"); 139}); 140var setProcessLocked = function setProcessLocked(lock) { 141 if (lock) { 142 // Delivery step is not complete 143 $("#checkout-delivery-step").removeClass('-complete'); 144 // Disable submit delivery button 145 $("button[name='confirmDeliveryOption']").attr('disabled', true); 146 } else { 147 // Delivery step is not complete 148 $("#checkout-delivery-step").addClass('-complete'); 149 // Enable submit delivery button 150 $("button[name='confirmDeliveryOption']").attr('disabled', false); 151 } 152}; 153var fixPrepareMondialRelay = function fixPrepareMondialRelay(id_carrier) { 154 selectedCarrierExtraContent = $('#delivery_option_' + id_carrier).closest('.delivery-option').next('.carrier-extra-content'); 155 return selectedCarrierExtraContent; 156}; 157$(document).ready(function () { 158 if (MONDIALRELAY_CARRIER_METHODS != undefined && MONDIALRELAY_CARRIER_METHODS != null && MONDIALRELAY_CARRIER_METHODS.length > 0) { 159 fixPrepareMondialRelay(MONDIALRELAY_CARRIER_METHODS[Object.keys(MONDIALRELAY_CARRIER_METHODS)[0]].id_carrier); 160 $('#mondialrelay_content').appendTo(selectedCarrierExtraContent); 161 _checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].init({ 162 ColLivMod: _checkout__WEBPACK_IMPORTED_MODULE_0__["getCarrierDeliveryMode"](MONDIALRELAY_CARRIER_METHODS[Object.keys(MONDIALRELAY_CARRIER_METHODS)[0]].id_carrier) 163 }); 164 } 165}); 166$(_checkout__WEBPACK_IMPORTED_MODULE_0__["widget"]).on('mondialrelay.ready', function () { 167 if (_checkout__WEBPACK_IMPORTED_MODULE_0__["isRelayCarrierSelected"]()) { 168 setSelectedCarrierExtraContent(); 169 170 // "Payment" step is not reachable using the link; save the previous state to 171 // restore it if carrier changes. The user MUST click the form button, 172 // otherwise the validation hook won't be triggered. 173 if (isPaymentStepReachable === null) { 174 isPaymentStepReachable = $("#checkout-payment-step").hasClass('-reachable'); 175 } 176 $("#checkout-payment-step").removeClass('-reachable').addClass('-unreachable'); 177 $("#mondialrelay_content").appendTo(selectedCarrierExtraContent); 178 if (!_checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].savedRelay) { 179 setProcessLocked(true); 180 _checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].show(); 181 } else { 182 $(_checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].summary_container).show(); 183 _checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].hide(); 184 if ($("#checkout-payment-step").hasClass('-unreachable')) { 185 $("#checkout-payment-step").removeClass('-unreachable').addClass('-reachable'); 186 } 187 } 188 _checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].init({ 189 ColLivMod: _checkout__WEBPACK_IMPORTED_MODULE_0__["getCarrierDeliveryMode"](_checkout__WEBPACK_IMPORTED_MODULE_0__["getSelectedCarrierId"]()) 190 }); 191 } 192 193 // Click events sometimes mess with PrestaShop's checkout process, so catch 194 // them and silence them 195 $(_checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].widget_container).on('click', function (ev) { 196 ev.preventDefault(); 197 ev.stopPropagation(); 198 }); 199}); 200 201// We can't submit the form if no relay was selected 202$(document).on('submit', '#js-delivery', function (ev) { 203 if (_checkout__WEBPACK_IMPORTED_MODULE_0__["isRelayCarrierSelected"]() && !_checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].savedRelay) { 204 ev.preventDefault(); 205 ev.stopPropagation(); 206 setSelectedCarrierExtraContent(); 207 $("#mondialrelay_content").appendTo(selectedCarrierExtraContent); 208 _checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].initOrUpdate({ 209 ColLivMod: _checkout__WEBPACK_IMPORTED_MODULE_0__["getCarrierDeliveryMode"](_checkout__WEBPACK_IMPORTED_MODULE_0__["getSelectedCarrierId"]()) 210 }); 211 alert(MONDIALRELAY_NO_SELECTION_ERROR); 212 return false;
213 } 214 return true; 215}); 216prestashop.on('updatedDeliveryForm', function () { 217 // Get latest data 218 _checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].savedRelay = MONDIALRELAY_SELECTED_RELAY_IDENTIFIER; 219}); 220 221// We must check this event if Mondial Relay is selected, otherwise the 222// form is reloaded immediately, and we can't check if a relay was selected; our 223// PS 1.7.2+ hook is never triggered as it requires the form to be submitted 224// with the submit button, not just when a carrier changes or a relay is 225// selected. 226$(document).on("change", '#js-delivery [name^="delivery_option"]', function (ev) { 227 // If another carrier than Mondial Relay is selected 228 if (!_checkout__WEBPACK_IMPORTED_MODULE_0__["isRelayCarrierSelected"]()) { 229 // Hide our extraContent, and set it to null 230 if (selectedCarrierExtraContent) { 231 selectedCarrierExtraContent.hide(); 232 selectedCarrierExtraContent = null; 233 } 234 setProcessLocked(false); 235 _checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].resetSelectedRelay(); 236 _checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].resetSavedRelay(true); 237 if (flagPaymentStepNeedsRefresh) { 238 // Some carriers may depend on the page refresh 239 $("#checkout-payment-step .content").append(flagPaymentStepNeedsRefresh); 240 flagPaymentStepNeedsRefresh = null; 241 } 242 if (isPaymentStepReachable !== null && isPaymentStepReachable) { 243 // "Payment" step is reachable 244 $("#checkout-payment-step").addClass('-reachable').removeClass('-unreachable'); 245 } 246 return; 247 } 248 249 // We let this event propagate. If no relay is selected, we'll see an alert or 250 // a php error and we'll stay on delivery step. 251 /*ev.preventDefault(); 252 ev.stopPropagation();*/ 253 254 // We never want a page refresh when using a carrier requiring a relay; the 255 // user MUST click the form button, otherwise the validation hook won't be 256 // triggered 257 flagPaymentStepNeedsRefresh = $('.js-cart-payment-step-refresh').clone(); 258 $('.js-cart-payment-step-refresh').remove(); 259 260 // "Payment" step is not reachable using the link; save the previous state to 261 // restore it if carrier changes 262 if (isPaymentStepReachable === null) { 263 isPaymentStepReachable = $("#checkout-payment-step").hasClass('-reachable'); 264 } 265 $("#checkout-payment-step").removeClass('-reachable').addClass('-unreachable'); 266 267 // We can't go further if we haven't selected a relay 268 if (!_checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].savedRelay) { 269 setProcessLocked(true); 270 _checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].show(); 271 } else if (!$(ev.target).is(_checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].selected_relay_input)) { 272 // If we DO have a selected relay, then we're reselecting a carrier 273 // The delivery_mode may be different though 274 _checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].hide(); 275 } 276 277 // If we switched from a Mondial Relay carrier to another, hide the previous 278 // extraContent 279 if (selectedCarrierExtraContent) { 280 selectedCarrierExtraContent.hide(); 281 } 282 283 // If we changed delivery mode, then our current relay selection is invalid 284 if (_checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].widget_current_params != null) { 285 var oldDeliveryMode = _checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].widget_current_params.ColLivMod; 286 var newDeliveryMode = _checkout__WEBPACK_IMPORTED_MODULE_0__["getCarrierDeliveryMode"](_checkout__WEBPACK_IMPORTED_MODULE_0__["getSelectedCarrierId"]()); 287 if (oldDeliveryMode != newDeliveryMode) { 288 _checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].resetSelectedRelay(); 289 _checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].resetSavedRelay(); 290 } 291 } 292 293 // Show the new extraContent, and update the widget 294 setSelectedCarrierExtraContent(); 295 $("#mondialrelay_content").appendTo(selectedCarrierExtraContent); 296 _checkout__WEBPACK_IMPORTED_MODULE_0__["widget"].initOrUpdate({ 297 ColLivMod: _checkout__WEBPACK_IMPORTED_MODULE_0__["getCarrierDeliveryMode"](_checkout__WEBPACK_IMPORTED_MODULE_0__["getSelectedCarrierId"]()) 298 }); 299}); 300 301// When selecting a PR in the list from the widget 302$('#js-delivery').on('change', '#mondialrelay_content *', function (ev) { 303 // If we selected a Mondial Relay carrier, we MUST NOT let that event 304 // propagate, or a form reload may be triggered even though we haven't 305 // selected a relay 306 ev.preventDefault(); 307 ev.stopPropagation(); 308}); 309$(_checkout__WEBPACK_IMPORTED_MODULE_0__["widget"]).on('mondialrelay.saveSelectedRelay.before', function () { 310 setProcessLocked(true); 311 // Disable delivery options change, to prevent concurrent AJAX requests 312 $("[name^='delivery_option']").attr('readonly', true).on('click.mondialrelay.lock', function (ev) { 313 ev.preventDefault(); 314 ev.stopPropagation(); 315 }); 316}); 317$(_checkout__WEBPACK_IMPORTED_MODULE_0__["widget"]).on('mondialrelay.saveSelectedRelay.success', function () { 318 setProcessLocked(false); 319 // Enable delivery options change 320 $("[name^='delivery_option']").attr('readonly', false).off('click.mondialrelay.lock'); 321}); 322$(_checkout__WEBPACK_IMPORTED_MODULE_0__["widget"]).on('mondialrelay.saveSelectedRelay.error', function () { 323 setProcessLocked(true); 324 // Enable delivery options change 325 $("[name^='delivery_option']").attr('readonly', false).off('click.mondialrelay.lock'); 326}); 327window.mondialrelayWidget = _checkout__WEBPACK_IMPORTED_MODULE_0__["widget"]; 328 329/***/ }), 330
331/***/ "./_dev/js/front/checkout/checkout.js": 332/*!********************************************!*\ 333 !*** ./_dev/js/front/checkout/checkout.js ***! 334 \********************************************/ 335/*! exports provided: removeCarrier, isRelayCarrierSelected, getSelectedCarrierId, getCarrierDeliveryMode, widget */ 336/***/ (function(module, __webpack_exports__, __webpack_require__) { 337 338"use strict"; 339__webpack_require__.r(__webpack_exports__); 340/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeCarrier", function() { return removeCarrier; }); 341/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isRelayCarrierSelected", function() { return isRelayCarrierSelected; }); 342/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSelectedCarrierId", function() { return getSelectedCarrierId; }); 343/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCarrierDeliveryMode", function() { return getCarrierDeliveryMode; }); 344/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "widget", function() { return widget; }); 345/* harmony import */ var _mondialrelay_widget__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mondialrelay_widget */ "./_dev/js/mondialrelay_widget.js"); 346function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } 347function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } 348function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } 349function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } 350function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } 351function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } 352/** 353 * NOTICE OF LICENSE 354 * 355 * @author 202 ecommerce <[email protected]> 356 * @author Mondial Relay 357 * @copyright Copyright (c) Mondial Relay 358 * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) 359 */ 360 361// modules ES6 362 363var removeCarrier = function removeCarrier() { 364 for (var _i = 0, _Object$entries = Object.entries(MONDIALRELAY_CARRIER_METHODS); _i < _Object$entries.length; _i++) { 365 var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), 366 id_carrier = _Object$entries$_i[0], 367 carrier = _Object$entries$_i[1]; 368 if (['ES', 'IT', 'PT'].includes(MONDIALRELAY_COUNTRY_ISO) && carrier.delivery_type !== "IP" || !['ES', 'IT', 'PT'].includes(MONDIALRELAY_COUNTRY_ISO) && carrier.delivery_type !== "MR" || !MONDIALRELAY_ADDRESS_OPC) { 369 if (carrier = $('[name^="delivery_option"][value="' + id_carrier + ',"]')[0]) { 370 pointCarrier(carrier, remove); 371 } 372 } 373 } 374}; 375var pointCarrier = function pointCarrier(carrier, callback) { 376 var deliveryOption; 377 if (deliveryOption = carrier.closest('.delivery-option') || carrier.closest('.delivery_option')) { 378 callback(deliveryOption); 379 } 380}; 381var remove = function remove(deliveryOption) { 382 deliveryOption.remove(); 383}; 384var widget = _mondialrelay_widget__WEBPACK_IMPORTED_MODULE_0__["widget"]; 385var isRelayCarrierSelected = function isRelayCarrierSelected() { 386 return MONDIALRELAY_NATIVE_RELAY_CARRIERS_IDS.includes(getSelectedCarrierId()); 387}; 388var getSelectedCarrierId = function getSelectedCarrierId() { 389 var id = $('[name^="delivery_option"]:checked').val(); 390 if (typeof id !== 'undefined') { 391 var new_id = id.split(','); 392 id = new_id[0]; 393 } 394 return id ? id : false;
395}; 396var getCarrierDeliveryMode = function getCarrierDeliveryMode(id_carrier) { 397 return MONDIALRELAY_CARRIER_METHODS[id_carrier]['delivery_mode']; 398}; 399$(document).ready(function () { 400 removeCarrier(); 401}); 402$(document).on('click', widget.save_button, function (ev) { 403 ev.preventDefault(); 404 ev.stopPropagation(); 405 widget.displayErrors(null); 406 $(widget.summary_container).empty().show(); 407 widget.addLoader(widget.summary_container); 408 $(widget).trigger('mondialrelay.saveSelectedRelay.before'); 409 var params = { 410 ajax: true, 411 action: 'saveSelectedRelay', 412 mondialrelay_selectedRelay: MONDIALRELAY_SELECTED_RELAY_IDENTIFIER ? MONDIALRELAY_SELECTED_RELAY_IDENTIFIER : 0, 413 id_carrier: getSelectedCarrierId() 414 }; 415 $.ajax({ 416 type: 'POST', 417 url: MONDIALRELAY_AJAX_CHECKOUT_URL, 418 data: params, 419 dataType: 'json', 420 success: function success(response) { 421 if (!response) { 422 this.error(response); 423 return; 424 } 425 if (response.status == 'ok') { 426 widget.savedRelay = MONDIALRELAY_SELECTED_RELAY_IDENTIFIER; 427 $(widget.summary_container).html(response.content.relaySummary); 428 widget.hide(); 429 $(widget.save_container).hide(); 430 $(widget.widget_container).slideUp(); 431 $(widget.save_container).slideUp(); 432 } else { 433 widget.savedRelay = null; 434 if (response.error.length) { 435 widget.displayErrors(response.error); 436 } 437 widget.removeLoader($(widget.summary_container)); 438 $(widget).trigger('mondialrelay.saveSelectedRelay.error'); 439 return; 440 } 441 $(widget).trigger('mondialrelay.saveSelectedRelay.success'); 442 }, 443 error: function error(response) { 444 widget.savedRelay = null; 445 alert(MONDIALRELAY_SAVE_RELAY_ERROR); 446 $(widget).trigger('mondialrelay.saveSelectedRelay.error'); 447 widget.removeLoader($(widget.summary_container)); 448 } 449 }); 450 return false; 451}); 452 453 454/***/ }), 455
456/***/ "./_dev/js/mondialrelay_widget.js": 457/*!****************************************!*\ 458 !*** ./_dev/js/mondialrelay_widget.js ***! 459 \****************************************/ 460/*! exports provided: widget */ 461/***/ (function(module, __webpack_exports__, __webpack_require__) { 462 463"use strict"; 464__webpack_require__.r(__webpack_exports__); 465/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "widget", function() { return widget; }); 466/** 467 * NOTICE OF LICENSE 468 * 469 * @author 202 ecommerce <[email protected]> 470 * @author Mondial Relay 471 * @copyright Copyright (c) Mondial Relay 472 * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) 473 */ 474 475var widget = { 476 'url': '//widget.mondialrelay.com/parcelshop-picker/jquery.plugin.mondialrelay.parcelshoppicker.min.js', 477 'loaded': false, 478 'initialized': false, 479 'widget_container': '#mondialrelay_widget', 480 'save_container': '#mondialrelay_save-container', 481 'error_container': '#mondialrelay_errors', 482 'summary_container': '#mondialrelay_summary', 483 'save_button': '#mondialrelay_save-relay', 484 'change_button': '#mondialrelay_change-relay', 485 'selected_relay_input': '#mondialrelay_selected-relay', 486 'widget_search_zipcode_input': '#mondialrelay_widget .MRW-Search .Arg2', 487 'widget_search_country_input': '#mondialrelay_widget .MRW-Search .Arg1', 488 'savedRelay': null, 489 // This is basically read-only; it's used to check the widget's current state 490 'widget_current_params': null 491}; 492var loadJs = function loadJs(url, callback) { 493 var script = document.createElement('script'); 494 script.onload = callback; 495 script.src = url; 496 document.head.appendChild(script); 497}; 498widget.load = function (callback) { 499 loadJs(widget.url, function () { 500 widget.loaded = true; 501 callback(); 502 }); 503}; 504widget.init = function (params) { 505 // Access to the page may be completely blocked if the configuration isn't 506 // done, so this variable may not always be defined. 507 if (typeof MONDIALRELAY_BAD_CONFIGURATION != 'undefined' && MONDIALRELAY_BAD_CONFIGURATION) { 508 return; 509 } 510 if (widget.savedRelay) { 511 $(widget.summary_container).slideDown(); 512 } 513 if (!widget.loaded) { 514 widget.addLoader(widget.widget_container); 515 widget.load(function () { 516 // No need to remove the loader; it will be replaced by the 517 // widget's content 518 widget.init(params); 519 }); 520 return; 521 } 522 var defaultParams = { 523 // Where to store the selected relay's ID 524 Target: widget.selected_relay_input, 525 Brand: MONDIALRELAY_ENSEIGNE, 526 // iso code, 2 letters 527 Country: MONDIALRELAY_COUNTRY_ISO, 528 // Postcode for default search 529 PostCode: MONDIALRELAY_POSTCODE, 530 // Delivery mode; carrier dependent (Standard [24R], XL [24L], XXL [24X], Drive [DRI]) 531 // Here for information, but don't set a default value; we should always set 532 // one directly 533 // ColLivMod: '24R', 534 // Wether to display the relays on a map or as a list 535 ShowResultsOnMap: MONDIALRELAY_DISPLAY_MAP == true, 536 // Nombre de Point Relais à afficher 537 NbResults: "7", 538 Responsive: true, 539 OnParcelShopSelected: function OnParcelShopSelected(relayData) { 540 $(widget.save_container).show(); 541 widget.setSelectedRelay(null, relayData); 542 } 543 }; 544 defaultParams['Theme'] = ['ES', 'IT', 'PT'].includes(MONDIALRELAY_COUNTRY_ISO) ? 'inpost' : 'mondialrelay'; 545 if (params) { 546 $.extend(defaultParams, params); 547 } 548 widget.widget_current_params = defaultParams; 549 $(widget.widget_container).MR_ParcelShopPicker(defaultParams); 550 widget.initialized = true; 551}; 552widget.show = function () { 553 $(widget.widget_container).show(); 554}; 555widget.hide = function () { 556 $(widget.widget_container).hide(); 557}; 558widget.update = function (params) { 559 $(widget.widget_container).trigger("MR_SetParams", params); 560 widget.widget_current_params = $.extend(widget.widget_current_params, params); 561 widget.doSearch(); 562}; 563widget.initOrUpdate = function (params) { 564 if (widget.initialized) { 565 widget.update(params); 566 } else { 567 widget.init(params); 568 } 569}; 570widget.setSelectedRelay = function (relayIdentifier, relayData) { 571 if (typeof relayIdentifier == 'undefined' || !relayIdentifier) { 572 relayIdentifier = $(widget.selected_relay_input).val(); 573 } 574 if (relayIdentifier != $(widget.selected_relay_input).val()) { 575 // @TODO : select relay on map... if we can 576 return; 577 } 578 579 // This can happen sometimes; we don't want to trigger a change if the value 580 // didn't actually change 581 if (MONDIALRELAY_SELECTED_RELAY_IDENTIFIER != relayIdentifier) { 582 var oldRelay = MONDIALRELAY_SELECTED_RELAY_IDENTIFIER; 583 MONDIALRELAY_SELECTED_RELAY_IDENTIFIER = relayIdentifier; 584 $(widget).trigger('mondialrelay.selectedRelay', { 585 oldRelay: oldRelay, 586 relayData: relayData 587 }); 588 } 589}; 590widget.resetSelectedRelay = function () { 591 var oldRelay = MONDIALRELAY_SELECTED_RELAY_IDENTIFIER; 592 MONDIALRELAY_SELECTED_RELAY_IDENTIFIER = null; 593 $(widget).trigger('mondialrelay.selectedRelay', { 594 oldRelay: oldRelay, 595 relayData: null 596 }); 597}; 598widget.resetSavedRelay = function (hideWidget) { 599 widget.savedRelay = null; 600 if (typeof hideWidget === 'undefined' || !hideWidget) { 601 $(widget.summary_container).slideUp(); 602 $(widget.widget_container).slideDown(); 603 $(widget.save_container).slideDown(); 604 } 605}; 606widget.doSearch = function (zipcode, country_iso) { 607 var searchCriteria = [typeof zipcode !== 'undefined' && zipcode ? zipcode : $(widget.widget_search_zipcode_input).val(), typeof country_iso !== 'undefined' && country_iso ? country_iso : $(widget.widget_search_country_input).val()]; 608 $(widget.widget_container).trigger('MR_DoSearch', searchCriteria); 609};
610widget.displayErrors = function (messages) { 611 var box = $(widget.error_container); 612 if (box.length == 0) { 613 return; 614 } 615 box.stop(true); 616 if (box.children().length) { 617 box.fadeOut(function () { 618 $(this).empty(); 619 }); 620 } 621 if (typeof messages == 'undefined' || !messages) { 622 return; 623 } 624 625 // Either the queue is already going with .fadeOut(), either it will be 626 // launched by .fadeIn() 627 box.queue(function () { 628 var errors = []; 629 $.each(messages, function (k, m) { 630 errors.push($("<div/>").addClass("alert alert-danger").text(m)); 631 }); 632 $(this).append(errors); 633 $(this).dequeue(); 634 }); 635 box.fadeIn(); 636}; 637widget.addLoader = function (container) { 638 if ($(container).length == 0) { 639 return; 640 } 641 if ($(container).children('.mondialrelay_loader').length > 0) { 642 return; 643 } 644 $("#mondialrelay_loader-template").clone().attr('id', null).show().appendTo(container); 645}; 646widget.removeLoader = function (container) { 647 $(container).children('.mondialrelay_loader').remove(); 648}; 649$(document).ready(function () { 650 widget.savedRelay = MONDIALRELAY_SELECTED_RELAY_IDENTIFIER; 651 $(widget).trigger('mondialrelay.ready'); 652}); 653$(document).on('click', widget.change_button, function (ev) { 654 widget.show(); 655}); 656$(document).on('click', '.MRW-ShowList', function (ev) { 657 ev.preventDefault(); 658 ev.stopPropagation(); 659}); 660 661// Selecting a city from the autocomplete list may trigger things 662$(document).on('click', '.PR-City', function (ev) { 663 ev.preventDefault(); 664 ev.stopPropagation(); 665}); 666 667 668/***/ })
668 669 670/******/ }); 671//# sourceMappingURL=checkout-17.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.