{"version":3,"sources":["../../../../../Foundation/JavascriptCommon/code/scripts/common/alertMessage.js","../../../../../Foundation/JavascriptCommon/code/scripts/common/formUtils.js","../../../../../Foundation/JavascriptCommon/code/scripts/common/spinner.js","OrderSummary/orderSummary.js","OrderSummary/main.js"],"names":["define","show","messageText","okCallback","setIcon","setButtons","displayAlert","info","warning","error","displayDefaultMessage","CP","Messages","yesNoQuestion","yesCallback","noCallback","iconName","$","alertSelector","addClass","removeClass","buttons","callback1","callback2","allButtonsSelector","buttonSelector","ok","off","yes","no","on","hideAndCallback","empty","html","alertModal","alertElement","document","querySelector","bootstrap","Modal","getOrCreateInstance","backdrop","keyboard","console","log","callback","one","hide","clearInvalidFeedback","formId","startsWith","displayInvalidFeedback","invalidFields","forEach","fieldMessage","field","FieldName","siblings","append","MessageText","collectFormData","disabledFields","find","prop","serializedData","serializeArray","formData","data","name","value","each","index","element","populateFormWithData","type","undefined","val","toString","disableFields","enableFields","initializeFloatingLabels","useToken","token","__RequestVerificationToken","spinnerSelector","image","length","attr","spinnerShownAt","Date","now","callbackWhenHidden","waitTime","setTimeout","getSpinnerHtml","spinnerId","alertMessage","formUtils","spinner","refreshSummaryValues","sendData","ajax","url","dataType","success","status","orderSummaryValuesSelector","content","message","jq","errorThrown","complete","orderSummarySelector","require","orderSummary"],"mappings":"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","file":"OrderSummary.js","sourcesContent":["define('common/alertMessage',[\r\n],\r\n function () {\r\n\r\n const alertSelector = \"#alertMessage\";\r\n const allButtonsSelector = alertSelector + \" .modal-footer button\";\r\n const buttonSelector = {\r\n ok: allButtonsSelector + \".ok\",\r\n yes: allButtonsSelector + \".yes\",\r\n no: allButtonsSelector + \".no\"\r\n };\r\n\r\n function show(messageText, okCallback) {\r\n setIcon();\r\n setButtons(\"ok\", okCallback);\r\n displayAlert(messageText);\r\n }\r\n\r\n function info(messageText, okCallback) {\r\n setIcon(\"info\");\r\n setButtons(\"ok\", okCallback);\r\n displayAlert(messageText);\r\n }\r\n\r\n function warning(messageText, okCallback) {\r\n setIcon(\"warning\");\r\n setButtons(\"ok\", okCallback);\r\n displayAlert(messageText);\r\n }\r\n \r\n function error(messageText, okCallback, displayDefaultMessage) {\r\n setIcon(\"error\");\r\n setButtons(\"ok\", okCallback); \r\n if (typeof messageText === 'undefined' || messageText === null) messageText = \"\";\r\n if (typeof displayDefaultMessage === 'undefined') displayDefaultMessage = true;\r\n if (displayDefaultMessage || messageText === \"\") {\r\n messageText = CP.Messages[\"General/Default Error Message\"] + messageText;\r\n }\r\n displayAlert(messageText);\r\n }\r\n\r\n function yesNoQuestion(messageText, yesCallback, noCallback) {\r\n setIcon(\"question\");\r\n setButtons(\"yes-no\", yesCallback, noCallback);\r\n displayAlert(messageText);\r\n }\r\n\r\n function setIcon(iconName) {\r\n $(alertSelector + \" .icons\").addClass(\"d-none\");\r\n $(alertSelector + \" i\").addClass(\"d-none\");\r\n if (iconName) {\r\n $(alertSelector + \" .icons\").removeClass(\"d-none\");\r\n $(alertSelector + \" i.\" + iconName).removeClass(\"d-none\");\r\n }\r\n }\r\n\r\n function setButtons(buttons, callback1, callback2) {\r\n $(allButtonsSelector).addClass(\"d-none\");\r\n $(buttonSelector.ok).off(\"click\");\r\n $(buttonSelector.yes).off(\"click\");\r\n $(buttonSelector.no).off(\"click\");\r\n if (buttons === \"yes-no\") {\r\n $(buttonSelector.yes).removeClass(\"d-none\");\r\n $(buttonSelector.no).removeClass(\"d-none\");\r\n $(buttonSelector.yes).on(\"click\", function () { hideAndCallback(callback1); });\r\n $(buttonSelector.no).on(\"click\", function () { hideAndCallback(callback2); });\r\n }\r\n else {\r\n $(buttonSelector.ok).removeClass(\"d-none\");\r\n $(buttonSelector.ok).on(\"click\", function () { hideAndCallback(callback1); });\r\n }\r\n }\r\n\r\n var alertModal;\r\n\r\n function displayAlert(messageText) {\r\n $(alertSelector + \" .alert-text\").empty().html(messageText);\r\n if (!alertModal) {\r\n // initializing alertModal\r\n var alertElement = document.querySelector(alertSelector);\r\n if (alertElement) {\r\n alertModal = bootstrap.Modal.getOrCreateInstance(alertElement, { backdrop: \"static\", keyboard: false });\r\n if (!alertModal) console.log(\"Alert modal not initialized for \" + alertSelector);\r\n }\r\n else console.log(\"There's no alert modal with selector \" + alertSelector);\r\n }\r\n if (alertModal) alertModal.show();\r\n }\r\n\r\n function hideAndCallback(callback) {\r\n if (callback) $(alertSelector).one(\"hidden.bs.modal\", callback);\r\n if (alertModal) alertModal.hide();\r\n }\r\n\r\n return {\r\n show: show,\r\n info: info,\r\n warning: warning,\r\n error: error,\r\n yesNoQuestion: yesNoQuestion\r\n };\r\n });\r\n\n","define('common/formUtils',[\r\n],\r\n function () {\r\n\r\n // Clears and deactivates all invalid feedback text on form fields\r\n function clearInvalidFeedback(formId) {\r\n if (!formId.startsWith(\"#\")) formId = \"#\" + formId;\r\n $(formId + \" .is-invalid\").removeClass(\"is-invalid\");\r\n $(formId + \" .invalid-feedback\").empty();\r\n }\r\n\r\n // Fills in and activates invalid feedback text on form fields\r\n function displayInvalidFeedback(invalidFields, formId) {\r\n if (!formId.startsWith(\"#\")) formId = \"#\" + formId;\r\n if (invalidFields) {\r\n invalidFields.forEach(function (fieldMessage) {\r\n var field = $(formId + \" [name='\" + fieldMessage.FieldName + \"']\");\r\n field.addClass(\"is-invalid\");\r\n field.siblings(\".invalid-feedback\").append(fieldMessage.MessageText);\r\n });\r\n }\r\n }\r\n\r\n // Collects the data from all form fields and returns them as object,\r\n // using \"name\" attribute values from form fields as object property names.\r\n function collectFormData(formId) {\r\n if (!formId.startsWith(\"#\")) formId = \"#\" + formId;\r\n // the serializeArray() jQuery method doesn't take the values from disabled fields, so first I'll\r\n // temporarily enable all disabled fields, and then disable them again\r\n var disabledFields = $(formId).find(\":input:disabled\").prop(\"disabled\", false);\r\n var serializedData = $(formId).serializeArray();\r\n disabledFields.prop(\"disabled\", true);\r\n var formData = {};\r\n serializedData.forEach(function (data) {\r\n formData[data.name] = data.value;\r\n });\r\n // serializeArray does not return anything for unchecked checkboxes, so we'll add them now with value false\r\n $(formId + \" input[type='checkbox']:not(:checked)\").each(function (index, element) {\r\n formData[element.name] = false;\r\n });\r\n // serializeArray returns \"on\" for checked checkboxes, so we'll set them to true now\r\n $(formId + \" input[type='checkbox']:checked\").each(function (index, element) {\r\n formData[element.name] = true;\r\n });\r\n return formData;\r\n }\r\n\r\n // Goes through all input elements on the form and fills them with data from the\r\n // given object, matching \"name\" attribute of the input element with object property name.\r\n function populateFormWithData(formId, data) {\r\n if (!formId.startsWith(\"#\")) formId = \"#\" + formId;\r\n $(formId + \" :input\").each(function (index, element) { \r\n if (element.type === \"radio\" ||\r\n element.type === \"checkbox\")\r\n {\r\n if (data[element.name] !== undefined)\r\n $(element).prop(\"checked\", $(element).val().toString() === data[element.name].toString());\r\n }\r\n else if (element.type === \"text\" ||\r\n element.type === \"email\" ||\r\n element.type === \"tel\" ||\r\n element.type === \"password\" ||\r\n element.type === \"textarea\" ||\r\n element.type === \"select-one\")\r\n {\r\n if (data[element.name] !== undefined)\r\n $(element).val(data[element.name]);\r\n else\r\n $(element).val(null);\r\n }\r\n });\r\n }\r\n\r\n function disableFields(formId) {\r\n if (!formId.startsWith(\"#\")) formId = \"#\" + formId;\r\n $(formId + \" :input\").prop(\"disabled\", true);\r\n }\r\n\r\n function enableFields(formId) {\r\n if (!formId.startsWith(\"#\")) formId = \"#\" + formId;\r\n $(formId + \" :input\").prop(\"disabled\", false);\r\n }\r\n\r\n function initializeFloatingLabels(formId) {\r\n if (!formId.startsWith(\"#\")) formId = \"#\" + formId;\r\n $(formId + \" .floating-label-container\").each(function (index, element) {\r\n var inputElement = $(element).find(\":input\")[0];\r\n if (inputElement.value) $(element).addClass(\"active\");\r\n else $(element).removeClass(\"active\");\r\n });\r\n }\r\n\r\n //adds the form token to the object for use with [ValidateAntiforgeryToken] attribute\r\n function useToken(data) { \r\n var token = $('input[name=\"__RequestVerificationToken\"]').val();\r\n data.__RequestVerificationToken = token;\r\n }\r\n\r\n return {\r\n clearInvalidFeedback: clearInvalidFeedback,\r\n displayInvalidFeedback: displayInvalidFeedback,\r\n collectFormData: collectFormData,\r\n populateFormWithData: populateFormWithData,\r\n disableFields: disableFields,\r\n enableFields: enableFields,\r\n initializeFloatingLabels: initializeFloatingLabels,\r\n useToken: useToken\r\n };\r\n });\r\n\n","define('common/spinner',[\r\n],\r\n function () {\r\n\r\n var spinnerShownAt = {};\r\n\r\n function show(spinnerSelector) {\r\n $(spinnerSelector).removeClass(\"d-none\");\r\n var image = $(spinnerSelector).find(\"img\");\r\n if (image.length) {\r\n var alt = $(image).attr(\"alt\");\r\n if (!alt)\r\n $(image).attr(\"alt\", \"Spinner\");\r\n }\r\n // mark the time when this spinner was displayed\r\n spinnerShownAt[spinnerSelector] = Date.now();\r\n }\r\n\r\n function hide(spinnerSelector, callbackWhenHidden) {\r\n // This logic ensures that the spinner is displayed for at least 500ms.\r\n // Otherwise it just flickers and that doesn't look good for the user.\r\n var waitTime = 500 - (Date.now() - spinnerShownAt[spinnerSelector]);\r\n if (waitTime > 0) {\r\n setTimeout(function () {\r\n $(spinnerSelector).addClass(\"d-none\");\r\n if (callbackWhenHidden) callbackWhenHidden();\r\n }, waitTime);\r\n }\r\n else {\r\n $(spinnerSelector).addClass(\"d-none\");\r\n if (callbackWhenHidden) callbackWhenHidden();\r\n }\r\n }\r\n\r\n function getSpinnerHtml(spinnerId) {\r\n return '
';\r\n }\r\n\r\n return {\r\n show: show,\r\n hide: hide,\r\n getSpinnerHtml: getSpinnerHtml\r\n };\r\n });\r\n\n","define('orderSummary/orderSummary',[\r\n \"common/alertMessage\",\r\n \"common/formUtils\",\r\n \"common/spinner\"\r\n],\r\n function (alertMessage, formUtils, spinner) {\r\n\r\n const orderSummarySelector = \".order-summary\";\r\n const orderSummaryValuesSelector = orderSummarySelector + \" .order-summary-values\";\r\n const spinnerSelector = orderSummarySelector + \" .values-spinner\";\r\n\r\n function refreshSummaryValues() {\r\n spinner.show(spinnerSelector);\r\n\r\n var sendData = {};\r\n formUtils.useToken(sendData);\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/customapi/Order/GetOrderSummaryValues\",\r\n dataType: \"json\",\r\n data: sendData,\r\n success: function (data) {\r\n if (data.status === \"OK\") {\r\n $(orderSummaryValuesSelector).empty().html(data.content);\r\n } else if (data.status === \"ERROR\") {\r\n // Something's not right.\r\n // Display the error messages (if any), and stay on the page.\r\n $(orderSummaryValuesSelector).empty().html(data.message);\r\n }\r\n },\r\n error: function (jq, status, errorThrown) {\r\n alertMessage.error(status + \": \" + errorThrown);\r\n },\r\n complete: function () {\r\n spinner.hide(spinnerSelector);\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n return {\r\n refreshSummaryValues: refreshSummaryValues\r\n };\r\n });\r\n\n","require([\r\n \"orderSummary/orderSummary\"\r\n],\r\nfunction (orderSummary) {\r\n\r\n orderSummary.refreshSummaryValues();\r\n\r\n});\r\n\ndefine(\"OrderSummary/main\", function(){});\n\n"]}