define(["knockout","ccRestClient","ccConstants","pubsub","spinner","notifier","pageLayout/product","ccResourceLoader!global/frigelarGlobalUtils"],function(e,t,n,r,i,s,o,u){"use strict";function a(e){return e instanceof Function?e():e}return{WIDGET_ID:"frigelarWarrantySidemenu",showErrorMessage:e.observable(!1),currentSelectedWarranty:e.observable(null),availableWarranties:e.observableArray([]),stockState:e.observable(),product:e.observable(null),showPropertiesBlock:e.observable(!1),showServiceBlock:e.observable(!1),showExtendedWarrantyBlock:e.observable(!1),tension:e.observable(null),ciclo:e.observable(null),hasWarranties:e.observable(!1),previousSelectedAddOn:e.observable(null),isEditMode:!1,addOnProducts:[],productsList:e.observableArray(),additionalProductsToCart:e.observable(null),fromUpdateCartItemQuantity:e.observable(!1),productIsOutlet:e.observable(!1),beforeAppear:function(e){var t=this;t.additionalProductsToCart(null)},onLoad:function(e){$.Topic("ADDITIONAL_PRODUCTS_TO_CART").subscribe(function(t){e.additionalProductsToCart(t)}),$.Topic("OPEN_WARRANTY_MODAL").subscribe(function(){e.openWarrantyModal(this,e)}),$.Topic(r.topicNames.CART_ADD_SUCCESS).subscribe(function(t){e.closeModal(),i.destroy({customSelector:"#frigelar-warranty-sidemenu .modal-dialog"}),e.pageContext().pageType.name!=="cart"&&window.minicart.showCart()}),$.Topic(r.topicNames.CART_UPDATE_QUANTITY_SUCCESS).subscribe(function(t){e.fromUpdateCartItemQuantity()&&(e.fromUpdateCartItemQuantity(!1),e.closeModal(),i.destroy({customSelector:"#frigelar-warranty-sidemenu .modal-dialog"}),e.pageContext().pageType.name!=="cart"&&window.minicart.showCart())})},getAvailableWarrantiesStr:function(e){var t="";return e.addOnProducts.length>0&&e.addOnProducts.forEach(function(e){e.addOnOptions[0].product.active&&(t+=e.addOnOptions[0].product.repositoryId+",")}),t},getAvailableWarranties:function(e,r){var i=e.getAvailableWarrantiesStr(r);if(i){var s={productIds:i};t.request(n.ENDPOINT_PRODUCTS_LIST_PRODUCTS,s,function(t){var n=t.map(function(e){return new o(e)});e.availableWarranties(n);if(e.previousSelectedAddOn()!=null){var r=e.availableWarranties().find(function(t){return t.id()==e.previousSelectedAddOn().productData().id});e.currentSelectedWarranty(r)}e.hasWarranties(n.length>0)},function(t){e.hasWarranties(!1)})}else e.hasWarranties(!1),e.availableWarranties.removeAll()},openWarrantyModal:function(e,t){var n=e.product?e.product:e;t.addOnProducts=n.addOnProducts;if(e.product)this.isEditMode=!0,this.currentSelectedWarranty("no-warranty"),this.previousSelectedAddOn(e.selectedAddOn);else{this.isEditMode=!1,this.currentSelectedWarranty("no-warranty"),this.previousSelectedAddOn(null);var r=t.cart().items().find(function(e){return e.catRefId===n.childSKUs[0].repositoryId});r&&r.childItems&&r.childItems.length>0&&r.childItems[0]&&(this.isEditMode=!0,this.previousSelectedAddOn(r.childItems[0]))}t.product(n),this.getAvailableWarranties(t,n),this.showPropertiesBlock(this.showProp("tension")||this.showProp("ciclo")||this.showProp("voltagem"));const i=t.additionalProductsToCart(),s=i&&i.length>0?i.filter(function(e){return e.x_tipodeservico==="servico_garantia_estendida"}).length>0:!1,o=n.x_tipodeservico==="servico_garantia_estendida";this.showServiceBlock(n.type.toLowerCase()==="servicos"&&!o),this.showExtendedWarrantyBlock(o||s),this.productIsOutlet(u.productIsOutlet(n.parentCategories)),$("#warrantyModal").modal()},closeModal:function(){$("#warrantyModal").modal("hide")},generateClone:function(t){var n=this;if(typeof t=="object"){var r={};for(var i in t)t.hasOwnProperty(i)&&(e.isObservable(t[i])?r[i]=t[i]()||"":r[i]=t[i]||"");return r}},addItemToCart:function(e,t,n){var s=this;if(e){i.create({customSelector:"#frigelar-warranty-sidemenu .modal-dialog"});var o=$.extend(!0,{},e);o.orderQuantity=n?Math.round(n):1,o.catRefId=e.childSKUs[0].repositoryId,o.selectedAddOnProducts=[];if(t){var u=e.addOnProducts.find(function(e){return e.addOnOptions[0].product.repositoryId==t.repositoryId});u&&(u.addOnOptions[0].product=t,u.addOnOptions[0].quantity=1,o.selectedAddOnProducts.push(u))}if(s.additionalProductsToCart()){var a=[],f=[];f.push(o),a=f.concat(s.additionalProductsToCart()),s.cart().addItemsToCart(a,function(e){s.closeModal(),i.destroy({customSelector:"#frigelar-warranty-sidemenu .modal-dialog"}),s.pageContext().pageType.name!=="cart"&&window.minicart.showCart()},function(e){console.error(e)},!0)}else $.Topic(r.topicNames.CART_ADD).publishWith(o,[{message:"success"}])}},updateCartItemQuantity:function(e){var t=this;if(e){var n=Number(e.quantity())+1;if(n>e.orderableQuantity)s.sendMessage("addToCart","Quantidade máxima do estoque do produto atingida","error",!0),t.pageContext().pageType.name==="searchResults"&&$("html,body").scrollTop(0),i.destroy({customSelector:"#frigelar-warranty-sidemenu .modal-dialog"}),t.closeModal();else{e.updatableQuantity(n);if(t.additionalProductsToCart()){var o=$.extend(!0,{},e.productData());o.orderQuantity=1,o.catRefId=e.productData().childSKUs[0].repositoryId;var u=[],a=[];a.push(o),u=a.concat(t.additionalProductsToCart()),t.cart().addItemsToCart(u,function(e){t.closeModal(),i.destroy({customSelector:"#frigelar-warranty-sidemenu .modal-dialog"}),t.pageContext().pageType.name!=="cart"&&window.minicart.showCart()},function(e){console.error(e)},!0)}else $.Topic(r.topicNames.CART_UPDATE_QUANTITY).publishWith(e.productData(),[{message:"success",commerceItemId:e.commerceItemId}]),t.fromUpdateCartItemQuantity(!0),s.sendMessage("addToCart","Produto adicionado ao carrinho","success",!0,!1),i.destroy({customSelector:"#frigelar-warranty-sidemenu .modal-dialog"}),t.closeModal(),i.destroy({customSelector:"#frigelar-warranty-sidemenu .modal-dialog"})}}else i.destroy({customSelector:"#frigelar-warranty-sidemenu .modal-dialog"})},changeChildItemOfCartItem:function(t,n,i){var s=this,o=e.mapping.toJSON(i.quantity());s.productsList.push({addOn:t,product:n,productQuantity:o});var u=$.Topic(r.topicNames.CART_UPDATED).subscribe(function(){if(s.productsList()&&s.productsList().length>0){var e=s.productsList.shift();setTimeout(function(){s.addItemToCart(e.product,e.addOn,e.productQuantity)},1500)}u.unsubscribe()});i&&($.Topic("GTM_CART_REMOVE").publish(i.productData()),$.Topic(r.topicNames.CART_REMOVE).publishWith(i.productData(),[{message:"success",commerceItemId:i.commerceItemId,shippingGroup:null}]))},handleAddToCart:function(e){var t=this;if(e){var n=t.currentSelectedWarranty()&&t.currentSelectedWarranty()!="no-warranty"?t.currentSelectedWarranty().product:{repositoryId:"no-warranty"},r=t.cart().items().find(function(t){return t.catRefId===e.childSKUs[0].repositoryId});if(r){i.create({customSelector:"#frigelar-warranty-sidemenu .modal-dialog"});var s=r.childItems&&r.childItems.length>0?r.childItems[0]:null,o=s?s.productId:"no-warranty";n&&n.repositoryId==o?t.updateCartItemQuantity(r):t.changeChildItemOfCartItem(n,e,r)}else t.addItemToCart(e,n)}},showProp:function(e){var t=this,n="x_"+e,r=t.product()&&t.product().hasOwnProperty(n),i=!1,s=null;if(r){var s=u.getValue(t.product()[n]);i=s&&s.length>0}return n=="x_voltagem"?(e="tension",t[e]()?null:t[e](s)):t[e](s),t[e](s),i},getProductImage:function(){return this.product().smallImageURLs[0]}}})