define(["jquery","lodash","global/Core","global/EventManager","global/Logger","global/Constants","handlebars","./Modal","plugins/toastr","plugins/jquery.blockUI","../../../../dist/templates","../GoogleMapsLoader","plugins/magnific-popup","plugins/jquery.addresscomplete","plugins/jquery.ziplookup","plugins/jquery.binarytransport"],function(e,t,r,o,n,s,a,i,l,c,d,u){"use strict";function p(t,r){e("html,body").animate({scrollTop:e(t).offset().top+r},"fast")}function m(r,o,n){e(document).off(r,o).on(r,o,t.debounce(n,300))}function g(t,r){re=re||{};var o=e.Deferred(),s="assets/src/templates/"+t+".html";if(oe===!0)n.debug("Get Precompiled Template: ",t),o.resolve(d[s](r));else if(re[t]&&"function"==typeof re[t])n.debug("Cached Template: ",t),o.resolve(re[t](r));else{n.debug("Get Fresh Template:",t);var i=ne+"/"+t+".html",l="";e.ajax({url:i,method:"GET",async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",success:function(e){l=e,re[t]=a.compile(l),o.resolve(re[t](r))},fail:function(){o.reject("Unable to load template: "+t)}})}return o.promise()}function b(t,r){re=re||{};var o="assets/src/templates/"+t+".html";if(oe===!0)re[t]=d[o],n.debug("Get Precompiled Template [rs]: ",t);else if(!re[t]||"function"!=typeof re[t]){n.debug("Get Fresh Template [rs]:",t);var s=ne+"/"+t+".html",i="";e.ajax({url:s,method:"GET",async:!1,contentType:"application/x-www-form-urlencoded; charset=UTF-8",success:function(e){i=e,re[t]=a.compile(i)},fail:function(){n.debug("Unable to load template: "+t)}})}return re[t](r)}function h(e,t,r){var o;return/^#/.test(e)&&(e=e.substring(1)),o=r===!0?b(e,t):g(e,t)}function v(t,r,n,a){var i=e.Deferred();return h(t,r,a).then(function(e){n.html(e),o.notify(s.events.templates.RENDER_FORM_COMPLETED,{templateName:t,outputContainer:n,renderedTemplate:e}),i.resolve()}),i.promise()}function y(e,t){return n.warn("templateV2() has been deprecated. Should utilize template() instead."),h(e,t,!0)}function C(t){var r=e("#"+t+"-country"),o=e("#"+t+"-region-wrapper"),n=e("#"+t+"-state-wrapper");"US"===r.val()||"CA"===r.val()?(n.show(),o.hide(),e("#"+t+"-region").val(""),n.find("[data-country]").hide(),n.find("[data-country="+r.val()+"]").show()):(n.hide(),o.show())}function E(t){var r="#"+t+"-country",o="change.core-countryChangeEvt";e(document).off(o,r).on(o,r,function(){var r=e(this).val();e("#"+t+"-state").val(""),C(t),k(t,null,r),S(t,null,r)})}function T(t,r){u.loadApi().then(function(){e(t).addresscomplete(r)})}function F(t){u.loadApi().then(function(){e(t).disableAddressComplete()})}function w(t,r){u.loadApi().then(function(){e(t).ziplookup(r)})}function k(e,t,r){window.RocConfig.google.enableAddressAutocomplete===!0&&(r=r||window.RocConfig.defaultCountryCode,T("#"+e+"-address1",{country:r,callback:t,autopopulate:!0,fieldsMapping:{STREET_ADDRESS_AND_NUMBER:"#"+e+"-address1",COUNTRY:"#"+e+"-country",ZIP:"#"+e+"-zip",CITY:"#"+e+"-city",COUNTY:"#"+e+"-county",STATE_OR_REGION:"US"===r||"CA"===r?"#"+e+"-state":"#"+e+"-region"},validation:{componentsToValidate:["street_number"],onValidationFailed:function(e){W("Unable to determine street number. Please verify your address is correct.")}}}))}function S(e,t,r){window.RocConfig.google.enableAddressAutocomplete===!0&&(r=r||window.RocConfig.defaultCountryCode,w("#"+e+"-zip",{country:r,callback:t,fieldsMapping:{CITY:"#"+e+"-city",COUNTY:"#"+e+"-county",STATE_OR_REGION:"US"===r||"CA"===r?"#"+e+"-state":"#"+e+"-region"}}))}function M(e,t,r){E(e),k(e,t),S(e,r)}function U(t,r,o){var n,s=e(r);n="undefined"!=typeof o?r?s.closest(o).find("."+t.btnSelected.cssClass):e(o).find("."+t.btnSelected.cssClass):e("."+t.btnSelected.cssClass),h("btnChecked-Tmp",t.btnSelected).then(function(t){e(r).replaceWith(t)}),h("btnUseThis-Tmp",t.btnUseThis).then(function(e){n.replaceWith(e)})}function R(t,r,o){var n=t.btnUseThis.cssClass,s=t.btnSelected.cssClass,a="."+n;e(document).off("click",a).on("click",a,function(){var n=e(this);if(!n.hasClass(s)){var a=this,i=A(a),l=n.closest(".item");U(t,a,o),"function"==typeof r&&r(i,l)}})}function A(t){return e(t).closest(".item").attr("data-id")}function I(t){e(t).collapse({toggle:!1}),e(t).collapse("hide")}function N(t){e(t).collapse({toggle:!1}),e(t).collapse("show")}function O(t,r){e(document).on("hidden.bs.collapse",t,function(){"function"==typeof r&&r(this)})}function x(t,r){e(document).on("shown.bs.collapse",t,function(){"function"==typeof r&&r(this)})}function P(t){t.listSelector&&t.emptyResultsSelector&&(e(t.listSelector+" .item").length>0?e(t.emptyResultsSelector).hide():e(t.emptyResultsSelector).show())}function D(t,r){r.listSelector&&r.btns&&e(r.listSelector+" .item[data-id="+t+"]").hide("slow",function(){var t=e(this).find(".btn."+r.btns.btnSelected.cssClass).length>0;e(this).remove(),P(r),t&&U(r.btns,r.listSelector+" .item:first ."+r.btns.btnUseThis.cssClass)})}function j(t){var r=e(t);if(1===r.length&&null!==r.attr("maxlength")){var o=r.attr("maxlength"),s=o-parseInt(r.val().replace(/(\r\n|\n|\r)/gm,"\r\n").length);return s}return n.warn("UI.countCharactersLeft: Element ("+t+") wasn't found or is missing maxlength attribute"),null}function _(e){var t=e.find("[data-roc-error]");return 0===t.length&&(t=e.prepend('<div data-roc-error="true">').find("[data-roc-error]")),t}function q(t){var r=e(t.Field),o="describe-"+r[0].id;switch(t.Type){case"Text":case"Textarea":case"Select":case"Range":r.addClass(se).attr("aria-describedby",o),e("label[for="+e(t.Field).attr("id")+"]").addClass(se),void 0!==t.ErrorMsg&&(r.closest(".formee-group, .roc-form-group").length>0?r.closest(".formee-group, .roc-form-group").after(e('<p class="'+ae+'" data-for="'+t.Field+'">'+t.ErrorMsg+"</p>")):e('<p id="'+o+'" class="'+ae+'" data-for="'+t.Field+'">'+t.ErrorMsg+"</p>").insertAfter(t.Field));break;case"Rating":r.addClass(se).attr("aria-describedby",o),e("label[for="+e(t.Field).attr("id")+"]").addClass(se);break;case"Radiolist":r.addClass(se),r.closest("fieldset").find("input + label").addClass(se);break;case"Hidden":void 0!==t.ErrorMsg&&r.parent("."+le).find("."+ie).append(t.ErrorMsg)}}function G(r){e(r.Fields[0].Field).closest("."+le).find("."+ie).remove(),t(r.Fields).forEach(function(t){e(t.Field).removeClass(se).removeAttr("aria-describedby"),e("label[for="+e(t.Field).attr("id")+"]").removeClass(se),e("."+ae+'[data-for="'+t.Field+'"]').remove()})}function B(t){e(t.Fields[0].Field).closest("."+le).find("."+ie).remove()}function L(r){B(r);var o=[];if(t.forEach(r.Fields,function(e){e.isValid||e.ExcludeFromErrorSummary===!0||e.ErrorMsg&&o.push({id:e.Field,error:e.ErrorMsg})}),o.length>0){var n=e(o[0].id).closest(".formee"),s=_(n);h("formErrorSummary-Tmp",{errors:o}).then(function(t){var r=0;s.prepend(t),s.length>0&&(r=s.eq(0).offset().top-75),e("html, body").scrollTop(r)})}}function Y(r){G(r);var o=[],n=e(f.Field);t.forEach(r.Fields,function(e){if(!e.isValid){var t={};e.ErrorMsg&&(o.push(e.ErrorMsg),t=y("#formErrorInlineMsg-Tmp",{errorText:e.ErrorMsg})),"Select"===e.Type?0===n.addClass(se).parent().parent().find("label").length?n.parent().parent().parent().find("label").addClass(se).append(t):n.parent().parent().find("label").addClass(se).append(t):n.addClass(se).parent().find("label").addClass(se).append(t)}})}function z(e,t){l.info(e,t)}function V(e,t){l.error(e,t)}function W(e,t){l.warning(e,t)}function J(e,t){l.success(e,t)}function H(t){var r='<div class="roc-waiting-content" id="roc-waiting-content" role="alert" aria-live="polite">';r+=" Please Wait...",r+=' <span class="visually-hidden">updating content</span>',r+=' <div class="loading-squares">',r+=" <span></span><span></span><span></span><span></span><span></span>",r+=" </div>",r+="</div>";var o={message:r,css:{},centerX:!1,centerY:!1,blockMsgClass:"blockMsg roc-waiting"};if("undefined"==typeof t||null===t)e.blockUI(o);else{var s=e(t);0===s.length?(n.debug("Function Roc.UI.block: Target selector doesn't exist in DOM. Blocking page instead"),e.blockUI(o)):(s.wrap('<div class="roc-block-container"></div>'),s.parent(".roc-block-container").block(o))}}function Z(t){if("undefined"==typeof t||null===t)e.unblockUI();else{var r=e(t),o=r.parent();o.is(".roc-block-container")&&o.unblock({onUnblock:function(){r.unwrap()}})}}function X(t,r,o){o||(o=function(){}),"string"==typeof t?e.confirm({title:"Delete Confirmation",message:t,buttons:{Yes:{"class":"btn btnAction",action:r},No:{"class":"btn",action:o}}}):e.confirm(t)}function K(e,t){X({title:t||"Oops!",message:e||"Internal system error. Please try again later.",buttons:{Ok:{"class":"btn btnDefault"}}})}function Q(t){var r=t.message||"There seems to be a problem",o="";t.errors&&t.errors.length>0&&e.each(t.errors,function(e,t){o+=t.relatedFieldName?"<br />"+t.relatedFieldName+": "+t.errorMessage:"<br />"+t.errorMessage}),K(o,r)}function $(t,o,n){if(t.errors&&t.errors.length>0)return void Q(t);var s=o||"Errors occurred during your request. Please try again.";if(!o&&500!==t.status){var a=t.responseJSON||{};if(a.exceptionMessage&&"string"==typeof a.exceptionMessage)s=a.exceptionMessage;else if(a.message)if(r.isJson(a.message))a=JSON.parse(a.message),s="<b>"+a.Message+"</b>",a.Errors&&a.Errors.length>0&&e.each(a.Errors,function(e,t){s+="<br />"+t.ErrorCode+": "+t.ErrorMessage});else if(s="<b>"+a.message+"</b>",a.errors&&a.errors.length>0&&e.each(a.errors,function(e,t){s+=t.relatedFieldName?"<br />"+t.relatedFieldName+": "+t.errorMessage:"<br />"+t.errorMessage}),a.modelState)for(var i in a.modelState)a.modelState.hasOwnProperty(i)&&(s+="<br />"+i+": "+a.modelState[i][0])}K(s,n)}function ee(e){if(!e||!e.firstName&&!e.lastName&&!e.city)return"";var t=((e.firstName||"")+" "+(e.lastName||"")).trim();return e.city&&(t.length>0?t+=" - "+e.city:t=e.city),t}var te=e("body");te.on("click",'[data-roc-lock="true"], .btnCompareItems',function(e){r.lockButton(e.currentTarget)}),e.confirm=function(t){if(!e("#confirmOverlay").length){var r="";e.each(t.buttons,function(e,t){r+="<button class='"+t["class"]+"' type='button'>"+e+"</button> ",t.action||(t.action=function(){})});var o=["<div id='confirmOverlay' class='white-popup'>","<div class='modal-header'>","<h2 class='title'>",t.title,"</h2>","</div>","<div id='confirmBox' class='modal-body'>","<p>",t.message,"</p>","</div>","<div id='confirmButtons' class='modal-footer'>",r,"</div></div>"].join("");i.open(o,void 0,!0);var n=e("#confirmButtons button"),s=0;e.each(t.buttons,function(t,r){r.autoClose=void 0===r.autoClose?!0:r.autoClose,n.eq(s++).click(function(){return r.action(),r.autoClose&&e.confirm.hide(),!1})})}},e.confirm.hide=function(){e.magnificPopup.close(),e("#confirmOverlay").remove()},d=d||{},a.templates=d,a.partials=d;var re={},oe=r.checkSiteMode(),ne="/ResourcePackages/Roc/assets/src/templates",se="formee-error",ae="formee-msg-error",ie="errorSummary",le="formee";e.blockUI.defaults.css={};var ce={template:h,renderFormTemplate:v,templateV2:y,updateRegionStateDisplay:C,countryChangeEvt:E,bindAddressAutoCompleteEvt:k,bindZipCodeLookUpEvt:S,bindAddressFormEvents:M,swapButtons:U,btnUseThisClickEvt:R,getItemId:A,closeForm:I,openForm:N,onCloseFormEvt:O,onOpenFormEvt:x,removeItemFromUi:D,checkEmptyResultsDisplay:P,countCharactersLeft:j,formatRecipientLabel:ee,addresscomplete:T,disableAddressComplete:F,ziplookup:w,showFormFieldError:q,clearFormErrors:G,showFormErrorSummary:L,showFormErrorInlineMsgs:Y,getErrorSummaryWrapper:_,info:z,error:V,warning:W,success:J,block:H,unblock:Z,confirm:X,displayErrorPopup:K,displayApiErrorPopup:Q,ajaxErrorPopup:$,scrollTo:p,siteBody:te,attachEventHandler:m};return n.debug("UI.js Loaded:",ce),ce}); //# sourceMappingURL=Core.js.map