define(["jquery","global/all","global/UI/A11yRadioGroup","modules/Product/Selections","modules/Product/ProductAddToCart","modules/Product/ProductImage","modules/Product/ProductPrice","modules/Product/UnitsOfMeasure","modules/Product/ProductOutOfStockService","modules/Upcharges/UpchargeService","modules/Upcharges/UpchargeRegistrationService","modules/Delivery/PriceAndDeliveryOptionsService","modules/Cart/CartManager","global/RocAnalytics","plugins/magnific-popup","plugins/jquery.matchHeight"],function(t,e,i,n,o,r,u,c,a,d,l,s,p,f){"use strict";function v(t){if(t.outOfStockNotificationEmail=a.getCurrentEmailAddress(),l.preRenderQuickView(t),"Group"!==t.product.productType&&t.product.canAddProduct&&t.product.fulfillmentInventory&&0===t.product.fulfillmentInventory.qtyAvailable&&"BackOrder"!==t.product.fulfillmentInventory.inventoryAction?t.limitedPickupStoreAvailability=!0:t.limitedPickupStoreAvailability=!1,t.product.unitsOfMeasure&&t.product.unitsOfMeasure.selectedUomId&&t.product.unitsOfMeasure.unitsOfMeasure){var e=_.find(t.product.unitsOfMeasure.unitsOfMeasure,function(e){return e.id===t.product.unitsOfMeasure.selectedUomId});e&&(t.product.fulfillmentInventory.notEnough=e.quantityInBaseUnit*t.product.minInventoryQtyOutOfStockThreshold>=t.product.fulfillmentInventory.qtyAvailable)}k=t}function m(t){var e={id:t.product.id,sku:t.product.sku,name:t.product.name};t.product.deliveryOptions.isClearance?e.value=t.product.deliveryOptions.clearancePrice:e.value=t.product.deliveryOptions.price,f.recordProductImpressionDetailed(e)}function g(o){function r(r){e.UI.Modal.open(r,{open:function(){function e(){t(".pdp-qty-add").click(function(){t(this).prev().val()<1e3&&t(this).prev().val(+t(this).prev().val()+1)}),t(".pdp-qty-sub").click(function(){t(this).next().val()>1&&t(this).next().val()>1&&t(this).next().val(+t(this).next().val()-1)})}if(l.bindUpchargeEvents(),"Group"===o.product.productType){n.init(A,o.product.selectableAttributes);var r=t(this.content).find(".selections");r.on("click",'[id^="deselect_"]',function(e){var i=t(e.currentTarget).data("attributeId");n.DeselectAttributeValue(i)}),r.find(".detailsRow").each(function(e){if("dropdown"===t(this).data("selectionType"))t("select",this).change(function(e){var i=t(e.currentTarget).attr("id"),o=t("option:selected",this).hasClass("disabled");0===t(this).val().length?n.DeselectAttributeValue(i):n.SelectAttributeValue(t(this).val(),o)});else{var o=t(".selectionList",this);new i(o.attr("id")),o.on("rocDisabled",function(e){var i=t(e.currentActive);n.UnavailableSelection(i.attr("id"))}),o.on("rocAfterActive",function(e){var i=(t(e.delegateTarget).attr("id"),t(e.currentActive)),o=i.attr("id"),r=i.hasClass("disabled");n.SelectAttributeValue(o,r)})}})}e()},close:function(){k=null}})}v(o),m(o),e.UI.template("quickView-Tmp",o).then(function(t){r(t)})}function y(i,n){n=n||{};var o=t.ajax(A+"/api/product/"+i+"/");t.ajax(A+"/api/product/"+i+"/selections/");e.UI.block(),t.when(o,s.getDeliveryOptionsForSingleItem(i),p.getSummary()).then(function(t,o,r){var u={product:t[0],productId:i};u.product.unitsOfMeasure=c.getUnitsOfMeasureInfoForProduct(u.product),u.product.deliveryOptions=o[0],u.cart=r[0],u.options={action:n.action||e.Enums.quickViewAction.ADD_TO_CART,buttonLabel:n.actionLabel,initialQuantity:n.initialQuantity},"Group"===u.product.productType&&(u.groupContextId=u.product.id),U=n.callback||null,e.UI.unblock(),g(u)},function(){e.UI.unblock(),e.UI.displayErrorPopup("There was an error when loading product data")})}function h(i){e.UI.template("quickViewAddToCart-Tmp",i).then(function(e){t("#quickview-modal .itemCheckoutBox").html(e)})}function I(){e.UI.siteBody.off("click","#qvEditItemBtn").on("click","#qvEditItemBtn",function(t){t.preventDefault();try{var i=o.getValidatedRequestData("#qvEditItemBtn","#updatedQuantity",e.Enums.quickViewAction.EDIT);e.UI.Modal.close(),null!==U&&"function"==typeof U&&U(i)}catch(n){e.UI.displayErrorPopup(n.msg,n.title)}}),e.EventManager.bind(e.Events.products.SELECTIONS_UPDATE,function(t){k&&(e.UI.block(),k.product=t,k.product.unitsOfMeasure=c.getUnitsOfMeasureInfoForProduct(k.product),v(k),h(k),e.UI.unblock())})}function b(){o.initForQuickView(),r.init(),r.initMainProductImage(),u.init(),c.init(),I()}var k,A=window.RocConfig.api.baseRocApiUrl,U=null,O={init:b,getProduct:y};return e.Logger.debug("QuickView.js Loaded:",O),b(),O});
//# sourceMappingURL=QuickView.js.map