1Web.define("Web.Extension.Redwood.BasketExpress.Controller.AddToBasketBySku",{extend:"Web.Core.Controller",statics:{forcePageReload:!1},featureEvents:{"Web.Extension.Redwood.BasketExpress.Feature.AddToBasketBySku":"Web.Extension.Redwood.BasketExpress.Feature.AddToBasketBySku.Initialize"},listeners:{"Web.Extension.Redwood.BasketExpress.Feature.AddToBasketBySku.Initialize":function(n,t){var i=this;this.view=Web.create("Web.Extension.Redwood.BasketExpress.View.AddToBasketBySku",{feature:n,el:t,controller:i})},"Web.Core.Event.Form.Validation.Valid":function(n){return $(n).attr("data-id")==="AddToBasketBySkuForm"&&$(n).attr("data-option-page-reload")==="False"?this.onSubmitForm(this,arguments):!0}},onSubmitForm:function(n){if(this.statics.forcePageReload)return!0;var t=this.view.getSku(),i=this.view.getQuantity(),r=this.view.onSuccessCallback,u=this.view.onErrorCallback;return this.view.mask(),this.addItemToBasket(t,i,_.bind(r,n),_.bind(u,n)),!1},addItemToBasket:function(n,t,i,r){var u={Sku:n,Quantity:parseInt(t||1)};Web.Core.Server.post({url:"{$baseFolder}/{$language}/AddToBasketBySku/AddItems",data:JSON.stringify(u),contentType:"application/json",headers:{"X-Allow-Messages":!0},success:i||null,error:r||null})}});Web.define("Web.Extension.Redwood.BasketExpress.Controller.AddToBasketBySuggest",{extend:"Web.Core.Controller",featureEvents:{"Web.Extension.Redwood.BasketExpress.Feature.AddToBasketBySuggest":"Web.Extension.Redwood.BasketExpress.Feature.AddToBasketBySuggest.Initialize"},listeners:{"Web.Extension.Redwood.BasketExpress.Feature.AddToBasketBySuggest.Initialize":function(n,t){var i=this;Web.create("Web.Extension.Redwood.BasketExpress.View.AddToBasketBySuggest",{feature:n,el:t,controller:i})}},getSuggest:function(n,t,i){var r=Web.get("Web.Core.Server");r&&r.get("{$baseFolder}/AddToBasketBySuggest/GetArticlesBySkuOrSuggest",{searchTerm:n},t,i)}});Web.define("Web.Extension.Redwood.BasketExpress.View.AddToBasketBySku",{extend:"Web.Core.View",initialize:function(n){this.controller=n.controller},onSuccessCallback:function(n){n&&n.Messages&&!_.isEmpty(n.Messages)&&_.each(n.Messages,function(n){Web.fireEvent("Web.Core.Event.Home.Message.Show",n.Level,n.Message)});n.HasError||($(this.view.el).find("[data-article-sku]").val(""),Web.fireEvent("Web.Core.Event.Basket.Update"));this.view.$el.unmask()},getSku:function(){return $(this.$el).find("[data-article-sku]").val()},getQuantity:function(){return $(this.$el).find("[data-article-quantity]").val()},onErrorCallback:function(){this.statics.forcePageReload=!0;this.view.$el.unmask();var n=this.view.$el.find("form");n.submit()},mask:function(){this.$el.mask("")}});Web.define("Web.Extension.Redwood.BasketExpress.View.AddToBasketBySuggest",{extend:"Web.Core.View",query:null,queryReplacement:null,resultBoxContent:null,waitBeforeSend:200,minLength:3,waitTimer:null,canAddToBasket:!1,events:{'focus input[data-id="SuggestInput"]':"render",'keydown input[data-id="SuggestInput"]':"onKeyDown",'input [data-id="SuggestInput"]':"onChangeInput",'click [data-id="SuggestToBasketResults"] li':"onClick"},initialize:function(n){var t=this;t.controller=n.controller},prepareForAddingToBasket:function(n){var t=this;n.length>0&&(t.canAddToBasket=!0,$(t.$el).find('[data-id="ExpressOrderGroup"]').removeClass("disabled").prop("disabled",!1),t.queryReplacement=n.data("text"),$(t.$el).find('[data-id="SuggestInput"]').val(t.queryReplacement),$(t.$el).find('[data-id="ArticleIdInput"]').val(n.data("resultId")))},preventAddingToBasket:function(){var n=this;n.canAddToBasket=!1;$(n.$el).find('[data-id="ExpressOrderGroup"]').addClass("disabled").prop("disabled",!0);$(n.$el).find('[data-id="ArticleIdInput"]').val("")},onChangeInput:function(n){var t=this,i=$(n.currentTarget).val();i!==t.queryReplacement&&(t.query=i,t.preventAddingToBasket(),t.query.length>=t.minLength&&(clearTimeout(t.waitTimer),t.waitTimer=setTimeout(function(){t.controller.getSuggest(i,_.bind(t.onSuccessCallback,t),_.bind(t.onErrorCallback,t))},t.waitBeforeSend)))},onSuccessCallback:function(n){var t=this;t.resultBoxContent=n.Refresh;t.render(t.resultBoxContent);n.HasSkuMatch&&t.prepareForAddingToBasket(t.$el.find('[data-id="SkuToBasketResult"] li'))},render:function(){$("body").off(".addToBasketBySuggest").on("click.addToBasketBySuggest touchstart.addToBasketBySuggest",$.proxy(this.closeAddToBasketBySuggest,this));var n=this;n.resultBoxContent!=null&&Web.get("Web.Core.Controller.Refresh").getInstance().refresh(n.resultBoxContent)},onErrorCallback:function(){},onClick:function(n){var t=this,i=$(n.currentTarget);n.preventDefault();t.$el.find('[data-id="SkuToBasketResult"] li').removeClass("active");t.$el.find('[data-id="SuggestToBasketResults"] li').removeClass("active");i.addClass("active");t.$el.find('[data-id="SuggestInput"]').focus();t.prepareForAddingToBasket(i)},onKeyDown:function(n){var t=this,f={up:38,down:40,enter:13,esc:27},i=this.$el.find('[data-id="ResultsContainer"] [data-id="Result"]'),u=i.filter(".active"),o=i.index(u),r=0,e;if(i.length===0){this.$el.find('[data-id="ResultsContainer"]').empty();return}switch(n.keyCode){case f.down:u.length!==0?(r=(o+1)%i.length,e=i.eq(r),u.removeClass("active")):e=i.first();e.addClass("active");t.canAddToBasket&&t.preventAddingToBasket();t.$el.find('[data-id="SuggestInput"]').val(t.query);break;case f.up:u.length!==0?(r=o-1,r=r<0?r+i.length:r,i.eq(r).addClass("active"),u.removeClass("active")):i.last().addClass("active");t.canAddToBasket&&t.preventAddingToBasket();t.$el.find('[data-id="SuggestInput"]').val(t.query);break;case f.enter:n.preventDefault();t.canAddToBasket||t.prepareForAddingToBasket(u);break;case f.esc:t.$el.find('[data-id="ResultsContainer"]').html("");t.$el.find('[data-id="SuggestInput"]').val(t.query)}},closeAddToBasketBySuggest:function(n){if(n){var t=this.$el.find('[data-id="SuggestInput"]');t.is(n.target)||t.has(n.target).length!==0||(clearTimeout(this.waitTimer),this.$el.find('[data-id="ResultsContainer"]').empty(),$("body").off(".addToBasketBySuggest"))}}})
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.