UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

3 lines (2 loc) 14.4 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("kendo.stepper.js"),require("kendo.button.js"),require("kendo.form.js")):"function"==typeof define&&define.amd?define(["exports","kendo.stepper","kendo.button","kendo.form"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).kendo=t.kendo||{},t.kendo._globals=t.kendo._globals||{},t.kendo._globals.Wizard={}))}(this,(function(t){!function(t,e){var n=window.kendo,r=n.ui.Widget,i=t.extend,s=n.htmlEncode,o=".kendoWizard",a="click",p="activate",d="select",l="reset",u="submit",c="previous",h="next",f="done",m="error",g="contentLoad",_="formValidateFailed",v="k-hidden",b="k-step-link",w="aria-selected",k="aria-hidden",S="aria-label",x="bottom",C="right",z="left",y=".",B="id",E="role",A="data-wizard-",j="k-wizard",F="k-wizard-horizontal",T="k-wizard-vertical",I="k-wizard-right",N="k-wizard-left",D="k-wizard-steps",W="k-wizard-step",H="k-wizard-content",K="k-wizard-buttons",L="k-wizard-buttons-left",O="k-wizard-buttons-right",P="k-wizard-pager",U=n.Class.extend({init:function(t){this.options=i({},this.options,t),this.options.actionBar&&this._processButtons(),this._render()},options:{name:"WizardStep",index:0,content:"",contentUrl:null,contentId:null,markupContainer:null,form:null,actionBar:!0,buttons:[],pager:!0,selected:!1,enabled:!0,className:"",totalSteps:1,wizardId:"wizard",formTag:"form",messages:{}},_defaultButtonsConfiguration:{first:[l,h],middle:[l,c,h],last:[l,c,f]},_pagerTemplate:({step:t,currentStep:e,of:n,totalSteps:r})=>`<span class="k-wizard-pager">${s(t)} ${s(e)} ${s(n)} ${s(r)}</span>`,buttons:function(){return this._buttons},load:function(){this.options.contentUrl&&this._ajaxRequest()},resetButtons:function(){var t=this.element.find(y+K);n.destroy(t),t.remove(),this.options.buttons=[],this._processButtons(),this._buttonsContainer()},_ajaxRequest:function(e,r){var i=this,s=i.options.contentUrl,o=i.element,a={type:"GET",cache:!1,url:s,dataType:"html",data:{},error:function(t,n){e&&e._triggerError(t,n,i)},complete:function(){e&&r&&e._triggerActivate(i)},success:function(t){var r=o.find(y+H);try{n.destroy(r),r.html(t),e&&e._triggerContentLoad(i)}catch(t){this.error(this.xhr,"error")}}};"object"==typeof s&&(a=t.extend(!0,{},a,s)),t.ajax(a)},_ariaAttributes:function(){var t=this.element,e=this.options,n=e.messages,r=n.step+" "+(e.index+1)+" "+n.of+" "+e.totalSteps;t.attr(E,"tabpanel").attr("tabindex",0).attr(B,e.wizardId+"-"+e.index).attr(S,r)},_buttonFactory:function(e){var n=t("<button type='button'><span></span></button>").kendoButton({themeColor:e.primary?"primary":"base"}).getKendoButton(),r=n.element;r.attr(A+e.name,""),r.find("span").text(e.text),e.click&&n.bind(a,e.click),!1===e.enabled&&n.enable(!1),e.position===z?this._leftButtonsContainer.append(r):this._rightButtonsContainer.append(r),"done"===e.name&&"form"!==this.options.formTag&&n.element.attr("type",u),this._buttons.push(n)},_buttonsContainer:function(){var e=t("<div>").addClass(K);this._leftButtonsContainer=t("<span>").addClass(L),this._rightButtonsContainer=t("<span>").addClass(O),e.append(this._leftButtonsContainer),e.append(this._rightButtonsContainer),this.element.append(e),this._buttons=[],this.options.buttons.map(this._buttonFactory.bind(this)),this.options.pager&&this._pager()},_content:function(){var e=this.options,r=!!e.contentUrl,i=t("<div>").addClass(H);!r&&e.contentId?i.html(t("#"+e.contentId).html()):!r&&e.content&&i.append(e.content),e.markupContainer&&(r||e.contentId||e.content||i.append(e.markupContainer.html()),n.destroy(e.markupContainer),e.markupContainer.remove()),this.element.prepend(i)},_form:function(){var e="<"+this.options.formTag+">",n=t(e).hide(),r=t("<div>").addClass(H),i=this.options.form;t("body").append(n),this.element.prepend(r),i.buttonsTemplate=i.buttonsTemplate||(()=>""),this.form=n.kendoForm(i).getKendoForm(),r.append(n.show())},_iterateButton:function(t){var e=this.options.messages;return"string"==typeof t&&(t={name:t}),t.text||(t.text=e[t.name]||t.name.charAt(0).toUpperCase()+t.name.slice(1)),!1===t.primary||t.name!==f&&t.name!==h||(t.primary=!0),t.position||t.name!==l?t.position||(t.position=C):t.position=z,t},_pager:function(){var t=this.options,e=t.messages,r={step:e.step,currentStep:t.index+1,of:e.of,totalSteps:t.totalSteps},i=n.template(this._pagerTemplate)(r);this._leftButtonsContainer.append(i)},_processButtons:function(){var t=this.options,e=t.buttons,n=this._defaultButtonsConfiguration;e&&e.length&&0!==e.length||(this.options.defaultButtons=!0,e=0===t.index?n.first:t.index+1===t.totalSteps?n.last:n.middle),this.options.buttons=e.map(this._iterateButton.bind(this))},_render:function(){this.element=t("<div>").addClass(W),this.options.className&&this.element.addClass(this.options.className),this._ariaAttributes(),this.options.selected||(this.element.addClass(v),this.element.attr(k,!0)),this.options.actionBar&&this._buttonsContainer(),this.options.form?this._form():this._content()}}),q=r.extend({init:function(t,e){var n=this;e=e||{},r.fn.init.call(n,t,e),n._wrapper(),n._createSteps(),n._stepper(),n._attachEvents()},options:{name:"Wizard",contentPosition:x,actionBar:!0,pager:!0,loadOnDemand:!1,reloadOnSelect:!1,validateForms:!0,stepper:{},steps:[],messages:{reset:"Reset",previous:"Previous",next:"Next",done:"Done",step:"Step",of:"of"}},events:[p,d,l,f,m,g,_],destroy:function(){var t=this;r.fn.destroy.call(t.stepper),r.fn.destroy.call(t),t.wrapper.off(o)},activeStep:function(){return this.currentStep},enableStep:function(t,n){var r,i=this;t===e||null===t||isNaN(t)||t>=i._steps.length||t<0||(t=Number(t),(r=i._steps[t]).options.enabled!==n&&(r.options.enabled=n,i.stepper.steps()[t].enable(n)))},insertAt:function(t,n){var r,i,s,o=this._steps,a=o.length,p=this.options.messages;null===t||t===e||isNaN(t)||t<0||t>a||n&&(i=this._mapStepForStepper(n),this.stepper.insertAt(t,i),n.totalSteps=a+1,n.messages=p,n.index=t,n.formTag=this.wrapper.is("form")?"div":"form",!1===this.options.pager&&!0!==n.pager&&(n.pager=!1),r=new U(n),o.forEach((function(e,n){var r;n>=t&&(e.options.index+=1),e.options.totalSteps+=1,e.element.find(y+P).remove(),e._pager(),r=p.step+" "+(e.options.index+1)+" "+p.of+" "+(a+1),e.element.attr(S,r)})),o.splice(t,0,r),0!==t&&t!==a||(s=o[0===t?1:a-1]).options.defaultButtons&&s.resetButtons(),this._insertStepElementAtIndex(t,r.element),this._stepperAriaAttributes(),this._steps.forEach(this._iterateAriaStep))},next:function(){var t=this,e=t._steps.length,n=t.currentStep.options.index;n+1!==e&&t.steps()[n+1].options.enabled&&(t._select(n+1),t._selectStepper(n+1))},previous:function(){var t=this,e=t.currentStep.options.index;0!==e&&t.steps()[e-1].options.enabled&&(t._select(e-1),t._selectStepper(e-1))},removeAt:function(r){var i,s,o,a,p,d=this._steps,l=d.length,u=t(this.element.find(y+W).get(r)),c=this.options.messages;if(!(null===r||r===e||isNaN(r)||r<0||r>l||1===l)){for(this.stepper.removeAt(r),d.splice(r,1)[0],u.hasClass(v)||(i=0===r?0:r-1,this.select(i)),n.destroy(u),u.remove(),o=0;o<l-1;o+=1)(a=d[o]).options.index=o,a.options.totalSteps=l-1,a.element.find(y+P).remove(),a._pager(),p=c.step+" "+(o+1)+" "+c.of+" "+(l-1),a.element.attr(S,p);0!==r&&r!==l-1||(s=d[0===r?0:l-2]).options.defaultButtons&&s.resetButtons(),this._stepperAriaAttributes(),this._steps.forEach(this._iterateAriaStep)}},select:function(t){var n=this;t===e||null===t||isNaN(t)||t>=n._steps.length||t<0||(t=Number(t),n._steps[t].options.enabled&&(n._select(t),n._selectStepper(t)))},steps:function(){return this._steps},_attachEvents:function(){var t=this,e=function(){t._doneClicked=!0};t.stepper.bind(d,t._stepperSelectHandler.bind(t)),t.wrapper.on(a+o,"["+A+l+"]",t._resetClickHandler.bind(t)).on(a+o,"["+A+c+"]",t._previousClickHandler.bind(t)).on(a+o,"["+A+h+"]",t._nextClickHandler.bind(t)),t.wrapper.is("form")?(t.wrapper.on(a+o,"["+A+f+"]",e),t.wrapper.on(u+o,t._doneHandler.bind(t))):(t.wrapper.on(a+o,"["+A+f+"]",e),t.wrapper.on(a+o,"["+A+f+"]",t._doneHandler.bind(t)))},_changeStep:function(t){var e=this.wrapper.find(y+W);this.currentStep=t,e.addClass(v),e.attr(k,!0),t.element.removeClass(v),t.element.removeAttr(k)},_createStep:function(e,n,r,s){var o=this.wrapper,a=this.wrapper.children("ol, ul").children("li");return"string"==typeof e&&(e={title:e}),e.totalSteps=s,e.messages=this.options.messages,e.index=n,e.formTag=this.wrapper.is("form")?"div":"form",0===n&&(e.selected=!0),!1===this.options.actionBar&&(e.actionBar=!1),r.length>0&&r[n]&&(e.markupContainer=t(r[n]),e.title||(e.title=a[n]?a[n].textContent:(n+1).toString(),this.options.steps||(this.options.steps=[]))),o.attr(B)&&(e.wizardId=o.attr(B)),!1===this.options.pager&&!0!==e.pager&&(e.pager=!1),this.options.steps[n]=i(!0,{},e),new U(e)},_createSteps:function(){var e,r,i,s,o=this,a=o.wrapper,p=o.options.steps,d=a.children("div");if(e=t("<div>").addClass(D),o._steps=[],!p||0===p.length)for(p=[],r=0;r<d.length;r+=1)p.push({});for(r=0;r<p.length;r+=1)i=p[r],s=o._createStep(i,r,d,p.length),!i.contentUrl||0!==r&&o.options.loadOnDemand||(n.ui.progress(o.wrapper,!0),s._ajaxRequest(o)),e.append(s.element),o._steps.push(s);a.children("ol, ul").remove(),a.empty(),a.append(e),o._refreshEditorWidgets(),o.currentStep=o._steps[0]},_doneHandler:function(e){var n,r,i=this._steps,s=this.currentStep,o=[];if(this._doneClicked){if(this._doneClicked=!1,this.options.validateForms&&s.form&&!s.form.validator.validate())return e.preventDefault(),void this.trigger(_,{sender:this,step:s,form:s.form});for(r=0;r<i.length;r+=1)(n=i[r].form)&&o.push(n);this.trigger(f,{sender:this,forms:o,originalEvent:e,button:t(e.target).getKendoButton()})}},_insertStepElementAtIndex:function(t,e){var n=this.wrapper.find(y+D);0===t?n.prepend(e):n.find(y+W+":nth-child("+t+")").after(e)},_isEmpty:function(t){return!n.trim(t.html())},_iterateAriaStep:function(t){t._ariaAttributes()},_mapStepForStepper:function(t){var e=i(!0,{},t);return e.label=e.title,delete e.buttons,delete e.pager,delete e.content,delete e.contentUrl,delete e.contentId,delete e.formTag,delete e.wizardId,delete e.messages,e},_select:function(t){var e=this._steps[t],r=this.options;e.options.contentUrl&&(r.reloadOnSelect||r.loadOnDemand&&this._isEmpty(e.element.find(y+H)))?(this.ajaxLoad=!0,n.ui.progress(this.wrapper,!0),e._ajaxRequest(this,!0)):this._changeStep(e)},_nextClickHandler:function(e){var n=this,r=n._steps,i=n._steps.length,s=n.currentStep,o=s.options.index,a=t(e.target).getKendoButton(),l=r[o+1];i!==o+1&&l.options.enabled&&(n.options.validateForms&&s.form&&!s.form.validator.validate()?n.trigger(_,{sender:n,step:s,form:s.form}):n.trigger(d,{sender:n,originalEvent:e.originalEvent,step:l,button:a})||(n._select(o+1),n._selectStepper(o+1),n.ajaxLoad||n.trigger(p,{sender:n,step:l}),n.ajaxLoad=!1))},_previousClickHandler:function(e){var n=this,r=n.options.validateForms,i=n._steps,s=n.currentStep,o=s.options.index,a=t(e.target).getKendoButton(),l=i[o-1];0!==o&&l.options.enabled&&(r&&!1!==r.validateOnPrevious&&s.form&&!s.form.validator.validate()?n.trigger(_,{sender:n,step:s,form:s.form}):n.trigger(d,{sender:n,originalEvent:e.originalEvent,step:l,button:a})||(n._select(o-1),n._selectStepper(o-1),n.ajaxLoad||n.trigger(p,{sender:n,step:l}),n.ajaxLoad=!1))},_refreshEditorWidgets:function(){var e,n=this.wrapper.find("[data-role='editor']");for(e=0;e<n.length;e+=1)t(n[e]).getKendoEditor().refresh()},_resetClickHandler:function(e){this.trigger(l,{sender:this,originalEvent:e,button:t(e.target).getKendoButton()})},_selectStepper:function(t){var e=this.stepper,n=e.steps()[t].element.find(y+b);e.select(t),e.wrapper.find(y+b).attr(w,!1),n.attr(w,!0).trigger("focus")},_stepper:function(){var e=this.wrapper,r=t("<div>").prependTo(e),i=this.options,s=i.stepper,o=i.steps.map(this._mapStepForStepper);s.steps=o,s.orientation=i.contentPosition===x?"horizontal":"vertical",s.selectOnFocus=!0,s.kendoKeydown=function(t){t.keyCode===n.keys.TAB&&(t.preventKendoKeydown=!0)},this.stepper=r.kendoStepper(s).getKendoStepper(),this._stepperAriaAttributes()},_stepperAriaAttributes:function(){var t,e,n=this.stepper,r=this.wrapper.attr(B)||"wizard",i=n.steps();if(i)for(n.element.find(".k-step-list").attr(E,"tablist"),e=0;e<i.length;e+=1)t=!1,0===e&&(t=!0),i[e].element.attr(E,"none").find("a").attr(E,"tab").attr("aria-controls",r+"-"+e).attr(w,t)},_stepperSelectHandler:function(t){var e=this,n=e.options.validateForms,r=t.sender,i=t.step,s=e.currentStep.options.index,o=i.getIndex(),a=e._steps[o],l=e.currentStep;return o>s&&n&&l.form&&!l.form.validator.validate()||o<s&&n&&!1!==n.validateOnPrevious&&l.form&&!l.form.validator.validate()?(t.preventDefault(),void e.trigger(_,{sender:e,step:l,form:l.form})):void(e.trigger(d,{sender:e,originalEvent:t.originalEvent,step:a,stepper:r})?t.preventDefault():(e._select(o),r.wrapper.find(y+b).attr(w,!1),i.element.find(y+b).attr(w,!0),e.ajaxLoad||e.trigger(p,{sender:e,step:a}),e.ajaxLoad=!1))},_triggerActivate:function(t){this._changeStep(t),this.trigger(p,{sender:this,step:t})},_triggerError:function(t,e,r){n.ui.progress(this.wrapper,!1),this.trigger(m,{sender:this,xhr:t,status:e,step:r})},_triggerContentLoad:function(t){n.ui.progress(this.wrapper,!1),this.trigger(g,{sender:this,step:t})},_wrapper:function(){var t=this,e=t.element,n=t.options.contentPosition;t.wrapper=e,t.wrapper.addClass(j),n===C?t.wrapper.addClass(T+" "+I):n===z?t.wrapper.addClass(T+" "+N):t.wrapper.addClass(F)}});n.wizard={Step:U},n.ui.plugin(q)}(window.kendo.jQuery);var e=kendo;t.__meta__={id:"wizard",name:"Wizard",category:"web",description:"The Wizard widget serves as a container of stepped process.",depends:["stepper","button","form"],features:[{id:"wizard-form-dropdowns",name:"DropDowns",description:"Support for DropDown editors in Wizard From",depends:["autocomplete","combobox","multiselect","dropdowntree","multicolumncombobox"]},{id:"wizard-form-datepickers",name:"DatePickers",description:"Support for DatePicker editors in Wizard From",depends:["dateinput","datepicker","datetimepicker","timepicker"]},{id:"wizard-form-inputs",name:"Inputs",description:"Support for Input editors in Wizard From",depends:["numerictextbox","maskedtextbox","switch","rating","slider","colorpicker"]},{id:"wizard-form-editor",name:"Editor",description:"Support for Editor editor in Wizard From",depends:["editor"]}]},t.default=e,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.wizard.min.js.map