define(['uiComponent','Magento_Customer/js/customer-data','jquery','Magento_Ui/js/modal/modal','mage/tabs','list','mage/translate','ko','rjsResolver','modalOverlay','mage/cookies','gorillaUtilities'],function(Component,customerData,$,modal,tabs,List,$t,ko,resolver,modalOverlay){'use strict';return Component.extend({defaults:{template:'Sivantos_BuyingGroup/selector/shipping_address',shippingAddresses:ko.observableArray([]),selectedShippingAddressId:null,selectedBuyingGroupId:null,checkedMedicaidGroupId:null,businessPartnerId:null,visibleSection:'',submitUrl:'',formKey:'',modalDisplayed:true,modal:null,modalConfirm:null,tabs:null,addressLoadUrl:'',shouldShowSearch:false,placeholder:$t('Search'),addressesLoaded:false,addressesLoadedTry:0,loaderActive:false,self:this,lastAddressItem:null,lastAddressItemArr:[],startPage:0,DefaultAddressTln:$t('Default Address'),rateTln:$t('Standard Rate'),rateStdTln:$t('Standard Rate - STD'),DropShipTln:$t('Drop Ship Address'),ShipHereTln:$t('Ship Here'),NotesTln:$t('Notes'),InternalNotesTln:$t('Internal Notes'),ExternalNotesTln:$t('External Notes'),PrintAckTln:$t('Print Ack'),PrintDnTln:$t('Print Dn'),PrintInvTln:$t('Print Inv'),PrintIntTln:$t('Print Int'),StandardNotesTln:$t('Standard Notes'),EditedNotesTln:$t('Edited Notes'),EnterTextTln:$t('Enter Text'),ClarificationGroupTln:$t('Clarification Group'),DepartmentCodeTln:$t('Department Code'),ChooseDepartmentTln:$t('Choose a department...'),BacktoCartTln:$t('Back to Cart'),ReviewPaymentsTln:$t('Review & Payments'),SelectTln:$t('Select'),HaveDiscountTln:$t('Have a discount code?'),EnterDiscountTln:$t('SelecEnter discount codet'),ApplyDiscountTln:$t('Apply Discount'),CancelCouponTln:$t('Cancel Discount'),ChooseOneorMoreTln:$t('Choose one or more of the locations below (if applicable) by holding CTRL and selecting the locations:'),SelectUserTln:$t('Please Select User or Group'),SelectUserFirstTln:$t('Please select a User or Group first.'),ShowAllTln:$t('Show All Users'),ShowActiveTln:$t('Show Active Users Only'),ShowInActiveTln:$t('Show Inactive Users Only'),filterData:'',keyFlag:0,globalTimeout:null,searchAddress:[],initAddressCollection:[],searchStatus:0,BusinessAdminTln:$t('Business Administrator'),BusinessAdminNPTln:$t('Business Administrator (no price)'),DefaultUserTln:$t('Default User'),NoOrderTln:$t('No Order'),NoOrderNoPriceTln:$t('No Order No Price'),NoPriceTln:$t('No Price'),EnterPOTln:$t('Enter PO Number (Ex:'),YourPOTln:$t('Your PO Number :'),TaxCalculationinprogressTln:$t('TAX calculation in progress...'),selectedCompanyId:'',companyDetails:ko.observableArray([]),keyFlagCompany:0,filterDataCompany:'',searchCompanyStatus:0,startPageCompany:0,companyDefaultShippingAddresses:[],companiesLoaded:false,companyLoaderActive:false,shouldShowCompanySearch:false,shouldShowCompanyTab:false,lastCompanyItem:null,initCompanyCollection:[],latestshiptoselection:[],loadedshipToLength:[]},initialize:function(){this._super();this.self=this;this.config=customerData.get('buying_group');this.selectedBuyingGroupId(this.config()['selected_buying_group_id']);this.selectedShippingAddressId(this.config()['selected_shipping_address_id']);this.checkedMedicaidGroupId(this.config()['selected_medicaid_group_id']);this.businessPartnerId(this.config()['business_partner_id']);if(typeof this.config()['selected_company_id']!='undefined'){this.selectedCompanyId(this.config()['selected_company_id']);} this.config.subscribe(function(data){this.selectedBuyingGroupId(data['selected_buying_group_id']);this.selectedShippingAddressId(data['selected_shipping_address_id']);this.checkedMedicaidGroupId(data['selected_medicaid_group_id']);if(typeof this.config()['selected_company_id']!='undefined'){this.selectedCompanyId(this.config()['selected_company_id']);} this.globalChangeShipTo();}.bind(this));ko.bindingHandlers.stickyNav={init:function(){var detachPoint=parseInt($('.header__content').outerHeight(true)),$stickyBuyingGroup=$('.buying-group-shipto-wrap');Gorilla.utilities.fixedNav($stickyBuyingGroup,detachPoint,100);}};this.globalComponentTranslation();resolver(function(){this.bindEventandMethods();if(typeof customerData.get('buying_group')()['selected_shipping_address_id']==='undefined'){var sections=['buying_group','customer','company','company_authorization','consignment_dashboard','default_charger','directory-data','is_company_user','negotiable_quote','warranty','business_logo'];customerData.invalidate(sections);customerData.reload(sections,true);}},this);},initObservable:function(){this._super().observe(['selectedShippingAddressId','selectedBuyingGroupId','checkedMedicaidGroupId','businessPartnerId','visibleSection','modalDisplayed','shouldShowSearch','shouldShowCompanySearch','shouldShowCompanyTab','placeholder','NotesTln','BacktoCartTln','selectedCompanyId']);return this;},getAddressText:function(){var text=this.config()['address_text'];return text?text:""},getbPartnerId:function(){var text=this.config()['ship_to_business_partner_id'];return text?text:""},getMedicaid:function(){var text=this.config()['selected_medicaid_group_id'];if(text){$('.product-add-form:not(.ServiceOrdergroup) .product-options-wrapper .product-custom-option').addClass('required');$('.product-add-form:not(.ServiceOrdergroup) .product-options-wrapper .product-custom-option').parent().prev().parent().addClass('required');$('.accessories_tab .product-options-wrapper .product-custom-option').addClass('required');$('.accessories_tab .product-options-wrapper .product-custom-option').parent().prev().parent().addClass('required');} return text?true:false},getGroupName:function(){var name=customerData.get('buying_group')()['group_description'];return name?name:""},bindEventandMethods:function(){$('.mystore').on('click',function(e){$('.myservicec').hide();$('.mystorec').show();$('.mystore').addClass('active');$('.myservice').removeClass('active');});$('.myservice').on('click',function(e){$('.mystorec').hide();$('.myservicec').show();$('.myservice').addClass('active');$('.mystore').removeClass('active');});this.groupingProducts();this.globalCurrentMenu();this.globalAdmin();this.isViewPriceAllowed();if(!this.loaderActive){this.removeLoader();} this.checkIfMiniSearchEnabled();},globalComponentTranslation:function(){window.DefaultAddressTln=this.DefaultAddressTln;window.rateTln=this.rateTln;window.rateStdTln=this.rateStdTln;window.DropShipTln=this.DropShipTln;window.ShipHereTln=this.ShipHereTln;window.BacktoCartTln=this.BacktoCartTln;window.NotesTln=this.NotesTln;window.InternalNotesTln=this.InternalNotesTln;window.ExternalNotesTln=this.ExternalNotesTln;window.PrintAckTln=this.PrintAckTln;window.PrintDnTln=this.PrintDnTln;window.PrintInvTln=this.PrintInvTln;window.PrintIntTln=this.PrintIntTln;window.StandardNotesTln=this.StandardNotesTln;window.EditedNotesTln=this.EditedNotesTln;window.EnterTextTln=this.EnterTextTln;window.ClarificationGroupTln=this.ClarificationGroupTln;window.DepartmentCodeTln=this.DepartmentCodeTln;window.ChooseDepartmentTln=this.ChooseDepartmentTln;window.ReviewPaymentsTln=this.ReviewPaymentsTln;window.SelectTln=this.SelectTln;window.HaveDiscountTln=this.HaveDiscountTln;window.EnterDiscountTln=this.EnterDiscountTln;window.ApplyDiscountTln=this.ApplyDiscountTln;window.CancelCouponTln=this.CancelCouponTln;window.ChooseOneorMoreTln=this.ChooseOneorMoreTln;window.SelectUserTln=this.SelectUserTln;window.SelectUserFirstTln=this.SelectUserFirstTln;window.ShowAllTln=this.ShowAllTln;window.ShowActiveTln=this.ShowActiveTln;window.ShowInActiveTln=this.ShowInActiveTln;window.BusinessAdminTln=this.BusinessAdminTln;window.BusinessAdminNPTln=this.BusinessAdminNPTln;window.DefaultUserTln=this.DefaultUserTln;window.NoOrderTln=this.NoOrderTln;window.NoOrderNoPriceTln=this.NoOrderNoPriceTln;window.NoPriceTln=this.NoPriceTln;window.EnterPOTln=this.EnterPOTln;window.YourPOTln=this.YourPOTln;window.TaxCalculationinprogressTln=this.TaxCalculationinprogressTln;if($('.available_addresses .control > div').hasClass('multiselect__message')===false&&typeof window.ChooseOneorMoreTln!='undefined'){$('
').insertBefore('select.multiselect, select[multiple="multiple"]');}},groupingProducts:function(){var i=0;var itseven;$('#shopping-cart-table tbody.cart .first-item').parent().addClass('groupit');$('#shopping-cart-table tbody.cart .mid-item').parent().addClass('groupit');$('#shopping-cart-table tbody.cart .last-item').parent().addClass('groupit');$('#shopping-cart-table > tbody').each(function(i){if(i%2){$(this).addClass('even');}else{$(this).addClass('odd');}});},globalCurrentMenu:function(){var isAccountNav=$('body').hasClass('account'),orderHistoryNav=$('body').hasClass('sales-order-history'),warrantyListNav=$('body').hasClass('sivantos_bte_registration-index-warrantylist'),orderViewNav=$('body').hasClass('sales-order-view'),draftOrderNav=$('body').hasClass('draftquote-index-index'),cururl=window.location.href,hash=window.location.hash.substr(1);if(window.location.href.indexOf("#")>-1){cururl=cururl.slice(0,-1);} if(cururl&&!$('body').hasClass('cms-home')){$(".myservicec li").each(function(){$(this).removeClass("active");});if(cururl!=""){if(window.location.pathname=='/company'){$('.businessstructure').addClass('active');}else{$(".myservicec li a[href*='"+cururl+"']").parents("li").addClass("active");} $(".mystorec li a[href*='"+cururl+"']").parents("li").addClass("active");$(".navigation li a[href*='"+cururl+"']").closest('.level-top').addClass('active');$(".navigation li a[href*='"+cururl+"']").closest('.menu-dropdown-icon').addClass('active');if($('.myservicec li').hasClass('active')){if($('div .navbars').hasClass('widex-shopxp')){if($('li.nav-1.first.level-top.mydevices.parent.menu-dropdown-icon > ul > li').length>0){$("li.nav-1.first.level-top.mydevices.parent.menu-dropdown-icon").show();}}else{$(".myservicec").addClass("showservices");$('.myservice').addClass('active');} $('.mystore').removeClass('active');}}} if(isAccountNav){$(".myservicec").addClass("showservices");$('.myservice').addClass('active');$('.mystore').removeClass('active');} if(orderHistoryNav||orderViewNav||draftOrderNav){$(".myservicec").removeClass("showservices");$('.myservice').removeClass('active');$('.mystore').addClass('active');} if(warrantyListNav){$('.mydevices').addClass('active');$('.mydevices ul li:first-child').addClass('active');} if($(".myservicec").hasClass("showservices")){$('.myservicec').show();$('.mystorec').hide();}else{$('.mystorec').show();$('.myservicec').hide();}},globalAdmin:function(){var adminData=customerData.get('is_logged_in_as_admin');var isAdmin=adminData&&adminData()['is_logged_in_as_admin'];if(isAdmin==false||typeof isAdmin=='undefined'){$('.isloggedasadmin').remove();$('.page-wrapper').addClass('notloggedasadmin');}},globalChangeShipTo:function(){var self=this,date=new Date();date.setTime(date.getTime()+86400000);var options={secure:window.cookiesConfig?window.cookiesConfig.secure:false,expires:date,samesite:'none'};if($('body').hasClass('loginascustomer-login-proceed')||$('body').hasClass('customer-account-login')){$.mage.cookies.clear('show_shipto');}else{var cData=customerData.get('customer'),dataid=$.mage.cookies.get('form_key'),showshipto=$.mage.cookies.get('show_shipto'),isLogin=typeof $('.loginascustomer-login-proceed').html()!=='undefined';if(showshipto!=dataid&&$('.buying-group__text').html()!==undefined&&!isLogin){$.mage.cookies.clear('show_shipto');if($.mage.cookies.get('show_shipto')){$.mage.cookies.clear('show_shipto');} if($.mage.cookies.get('show_shipto')&&$.cookie.defaults.domain[0]=='.'){$.mage.cookies.clear('show_shipto');} $.mage.cookies.set('show_shipto',dataid,options);if(self.companyModuleEnabled()){$('.company .buying-group__edit').trigger('click');}else{$('.ship-to .buying-group__edit').trigger('click');}}}},isViewPriceAllowed:function(){var companyuser=customerData.get('is_company_user'),isb2buser=companyuser()['is_company_user'],view_price=companyuser()['view_price'],invoices_list=companyuser()['invoices_list'],pay_invoices=companyuser()['pay_invoices'],view_statements=companyuser()['view_statements'],users_edit=companyuser()['users_list'],roles_edit=companyuser()['roles_list'],company_edit=companyuser()['company_edit'],eligible_for_statements=companyuser()['eligible_for_statements'],eligible_for_payment_menus=companyuser()['eligible_for_payment_menus'],eligible_for_communication_preference=companyuser()['eligible_for_communication_preference'],eligible_for_communication_setting=companyuser()['eligible_for_communication_setting'];if(isb2buser){$('.viewstatements, .invoicelist, .payinvoices, .companyusers, .rolesandpermissions, .businessstructure').removeClass('hide');if(!eligible_for_statements){$('.viewstatements').addClass('hide');} if(eligible_for_payment_menus){if(!eligible_for_statements){$('.makepayment').addClass('hide');$('.mypayments').addClass('hide');}} if(view_price&&view_statements&&company_edit){$('.viewprice').removeClass('hide');$('.viewprice').addClass('show');} if(!pay_invoices&&!view_statements&&!invoices_list){$('.viewprice').addClass('hide');$('.viewprice').removeClass('show');} if(!invoices_list){$('.invoicelist').addClass('hide');} if(!pay_invoices){$('.payinvoices').addClass('hide');} if(!view_statements){$('.viewprice').removeClass('show');$('.viewprice').addClass('hide');$('.viewstatements').addClass('hide');$('.invoicelist').addClass('hide');$('.payinvoices').addClass('hide');} if(!users_edit){$('.companyusers').addClass('hide');} if(!roles_edit){$('.rolesandpermissions').addClass('hide');} if(!company_edit){$('.businessstructure').addClass('hide');} if(!eligible_for_communication_preference){$('.communicationpreference').addClass('hide');} if(!eligible_for_communication_setting){$('.communicationsettings').addClass('hide');} if((!view_statements)&&($('.viewprice').hasClass('showInvoiceList'))&&invoices_list){$('.viewprice').removeClass('hide').addClass('show');$('.invoicelist').removeClass('hide').addClass('show');}}else{$('.viewprice').addClass('show');}},checkIfMiniSearchEnabled:function(){var adminData=customerData.get('is_logged_in_as_admin');var isAdmin=adminData&&adminData()['is_logged_in_as_admin'];var internalMinisearch=window.checkIfInternalSearchEnabled;var externalMinisearch=window.checkIfExternalSearchEnabled;if((isAdmin&&internalMinisearch)||(!isAdmin&&externalMinisearch)){$('.minisearch').removeClass('hidden');}else{$('.minisearch').addClass('hidden');}},isAllowed:function(resource){var authorization=customerData.get('company_authorization');var resources=authorization().resources;return _.isObject(resources)&&resources[resource];},submitForm:function(){var self=this,date=new Date();date.setTime(date.getTime()+86400000);var options={secure:window.cookiesConfig?window.cookiesConfig.secure:false,expires:date,samesite:'none'};var data={'company_id':self.selectedCompanyId(),'shipping_address':self.selectedShippingAddressId(),'buying_group':self.selectedBuyingGroupId(),'form_key':$.mage.cookies.get('form_key')};if(self.checkedMedicaidGroupId()>0){data.medicaid_group=self.getCurrentMedicaidGroupId();} var dataid=$.mage.cookies.get('form_key');$.mage.cookies.set('show_shipto',dataid,options);$.ajax({url:this.submitUrl,data:data,async:false,type:'post',beforeSend:function(){$('body').trigger('processStart');self.closeConfirm();self.closeModal();}}).done(function(response){var msg=[],isPunchout=customerData.get('buying_group')()['is_punchout'];if(!!response.message){var type=response.success==='true'?'success':'error';msg.push({type:type,text:response.message});} $.cookieStorage.set('mage-messages',msg);if(isPunchout==true){document.location.href=document.location.href;}else{setTimeout(function(){location.reload();},3000);}})},updateFormKeys:function(){$.mage.formKey();},resetMedicaid:function(){this.checkedMedicaidGroupId(null);return true;},selectAddress:function(){try{this.tabs.tabs("activate",-1);}catch(e){this.tabs.tabs("option","active",-1);}},setVisibleAddresses:function(){try{this.tabs.tabs("activate",0);}catch(e){this.tabs.tabs("option","active",0);}},getBuyingGroups:function(){var address;if(this.selectedShippingAddressId()===this.config()['selected_shipping_address_id']){var shipping=this.config()['shipping_addresses'];for(address in shipping){if(shipping.hasOwnProperty(address)){return shipping[address]['buying_groups'];}}} address=this.getShippingAddressById(parseInt(this.selectedShippingAddressId()));return address['buying_groups'];},getAllBuyingGroups:function(){var groups=[];var shipping=this.shippingAddresses();var shippingInStorage=this.config()['shipping_addresses'];if(shipping&&shipping.length===0&&shippingInStorage&&shippingInStorage.length>0){shipping=shippingInStorage;} for(var address in shipping){if(shipping.hasOwnProperty(address)){groups=groups.concat(shipping[address]['buying_groups']);}} return groups;},getBuyingGroupById:function(id){var groups=this.getBuyingGroups();for(var increment in groups){if(groups.hasOwnProperty(increment)&&parseInt(groups[increment]['group_id'])===id){return groups[increment];}} return{};},getShippingAddressById:function(id){var shipping=this.shippingAddresses();for(var address in shipping){if(shipping.hasOwnProperty(address)&&parseInt(shipping[address]['address_id'])===id){return shipping[address];}} return{};},hasCurrentGroupMedicaid:function(){var group=this.getBuyingGroupById(parseInt(this.selectedBuyingGroupId()));if(group['medicaid_available']){$('.header__content').addClass('medicaid');$('.medicaid_line').show();}else{$('.header__content').removeClass('medicaid');$('.medicaid_line').hide();} if(this.selectedCompanyName()!=''){$('.header__content').addClass('company');}else{$('.header__content').removeClass('company');} return group['medicaid_available'];},resetAddress:function(){this.closeModal();var currentAddressId=this.config()['selected_shipping_address_id'];var currentBuyingGroupId=this.config()['selected_buying_group_id'];this.selectedShippingAddressId(currentAddressId);this.selectedBuyingGroupId(currentBuyingGroupId);if(this.selectedCompanyId()&&this.selectedCompanyId()!=this.config()['selected_company_id']){this.selectedCompanyId(this.config()['selected_company_id']);this.selectCompany();}},getCurrentMedicaidGroupId:function(){return this.getBuyingGroupById(parseInt(this.selectedBuyingGroupId()))['medicaid_group_id'];},initModal:function(){var options={type:'popup',responsive:false,innerScroll:false,buttons:[],modalClass:'buying-group-modal mobile-full-screen inline-header full-width-content'};this.modal=$('#js-buying-group-modal').modal(options);},showModal:function(tabIndex){var self=this,companyuser=customerData.get('is_company_user'),notificationPopup=companyuser()['notification_popup'];if(!!this.tabs&&!!this.modal){try{this.tabs.tabs("activate",tabIndex);}catch(e){this.tabs.tabs("option","active",tabIndex);} this.modal.modal('openModal');self.loadAddresses(false);if(notificationPopup){modalOverlay.call().openModalOverlayModal();}}},loadAddresses:function(isAsync){var self=this;if(self.selectedCompanyId()!=''&&self.searchStatus===0&&typeof self.searchAddress[self.selectedCompanyId()]!='undefined'){return;}else if(self.addressesLoaded&&self.searchStatus===0){return;} $.ajax({url:self.addressLoadUrl,async:isAsync,data:{searchKey:self.filterData,companyId:self.selectedCompanyId()},beforeSend:function(){self.addLoader()}}).done(function(data){if(data.data===undefined){self.addressesLoaded=false;++self.addressesLoadedTry;if(self.addressesLoadedTry===1){self.loadAddresses(false);}else{self.removeLoader();} return;} setTimeout(function(){$('#buying-group-dataset').removeClass('shipto-loader');},600);if(self.selectedCompanyId()!=''){if(typeof data.data.items[self.selectedCompanyId()]['addresses']=='undefined'){self.removeLoader();return;} var companyAddresses=data.data.items[self.selectedCompanyId()]['addresses'];self.setAddresses(companyAddresses);if(!companyAddresses){self.removeLoader();return;} self.lastAddressItemArr[self.selectedCompanyId()]=companyAddresses[companyAddresses.length-1];if(self.filterData.length===0&&self.keyFlag==0){self.searchAddress[self.selectedCompanyId()]=companyAddresses;self.initAddressCollection[self.selectedCompanyId()]=companyAddresses;} if(typeof data.data.items[self.selectedCompanyId()]['default_shipping']!='undefined'){self.companyDefaultShippingAddresses[self.selectedCompanyId()]=data.data.items[self.selectedCompanyId()]['default_shipping']}}else{self.lastAddressItem=data.data.items[data.data.items.length-1];self.searchAddress=data.data.items;self.setAddresses(data.data.items);self.addressesLoaded=true;self.searchStatus=0;if(self.filterData.length===0&&self.keyFlag==0){self.initAddressCollection=data.data.items;}} if(!data.data.items.length||!isAsync){self.removeLoader();}});},setAddresses:function(addresses){var self=this,scrollTop,listedAddress=$('#buying-group-dataset > li'),selectedIndex=parseInt($('#shipping_address_'+self.latestshiptoselection[self.selectedCompanyId()]).parent().attr('dataIndex')),selectedShipTo=typeof self.latestshiptoselection[self.selectedCompanyId()]!='undefined'?selectedIndex*listedAddress.innerHeight():0,loadedLength=self.loadedshipToLength[self.selectedCompanyId]?self.loadedshipToLength[self.selectedCompanyId]:listedAddress.length,startValue=loadedLength?loadedLength:0;self.shippingAddresses(addresses.slice(0,startValue+50));scrollTop=selectedShipTo||0;$("#buying-group-dataset").scrollTop(scrollTop);if(addresses.length>4){self.shouldShowSearch(true);}},showMore:function(data,event){var self=this;if(this.selectedCompanyId()){var addresses=this.initAddressCollection[this.selectedCompanyId()];}else{var addresses=this.initAddressCollection;} if(!addresses){return;} var elem=event.target;if(elem.scrollTop>(elem.scrollHeight-elem.offsetHeight-200)){this.startPage=this.startPage+50;this.offset=this.startPage+50;for(var j=this.startPage;j