UNPKG

@progress/kendo-ui

Version:

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

3 lines 15.3 kB
/* @license */ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`kendo.stepper.min.js`),require(`kendo.button.min.js`),require(`kendo.form.min.js`)):typeof define==`function`&&define.amd?define([`exports`,`kendo.stepper.min`,`kendo.button.min`,`kendo.form.min`],t):(e=typeof globalThis<`u`?globalThis:e||self,t((e.kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Wizard={}),e.kendo._globals.Stepper,e.kendo._globals.Button,e.kendo._globals.Form))})(this,function(e,t,n,r){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let i={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`]}]};(function(e,t){var n=window.kendo,r=n.ui.Widget,i=e.extend,a=n.htmlEncode,o=`.kendoWizard`,s=`click`,c=`activate`,l=`select`,u=`reset`,d=`submit`,f=`previous`,p=`next`,m=`done`,h=`error`,g=`contentLoad`,_=`formValidateFailed`,v=`k-hidden`,y=`k-step-list`,b=`k-step-link`,x=`aria-selected`,S=`aria-controls`,C=`aria-hidden`,w=`aria-label`,T=`vertical`,E=`horizontal`,D=`bottom`,O=`right`,k=`left`,A=`.`,j=` `,M=`-`,N=`id`,P=`tabindex`,F=`role`,I=`data-wizard-`,L={wizard:`k-wizard`,horizontalWizard:`k-wizard-horizontal`,verticalWizard:`k-wizard-vertical`,rightWizard:`k-wizard-right`,leftWizard:`k-wizard-left`,wizardStepsContainer:`k-wizard-steps`,wizardStep:`k-wizard-step`,wizardContent:`k-wizard-content`,wizardButtons:`k-wizard-buttons`,wizardLeftButtons:`k-wizard-buttons-left`,wizardRightButtons:`k-wizard-buttons-right`,wizardPager:`k-wizard-pager`},R=n.Class.extend({init:function(e){this.options=i({},this.options,e),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:[u,p],middle:[u,f,p],last:[u,f,m]},_pagerTemplate:({step:e,currentStep:t,of:n,totalSteps:r})=>`<span class="k-wizard-pager">${a(e)} ${a(t)} ${a(n)} ${a(r)}</span>`,buttons:function(){return this._buttons},load:function(){this.options.contentUrl&&this._ajaxRequest()},resetButtons:function(){var e=this.element.find(A+L.wizardButtons);n.destroy(e),e.remove(),this.options.buttons=[],this._processButtons(),this._buttonsContainer()},_ajaxRequest:function(t,r){var i=this,a=i.options.contentUrl,o={},s=i.element,c={type:`GET`,cache:!1,url:a,dataType:`html`,data:o,error:function(e,n){t&&t._triggerError(e,n,i)},complete:function(){t&&r&&t._triggerActivate(i)},success:function(e){var r=s.find(A+L.wizardContent);try{n.destroy(r),r.html(e),t&&t._triggerContentLoad(i)}catch{this.error(this.xhr,`error`)}}};typeof a==`object`&&(c=e.extend(!0,{},c,a)),e.ajax(c)},_ariaAttributes:function(){var e=this.element,t=this.options,n=t.messages,r=n.step+` `+(t.index+1)+` `+n.of+` `+t.totalSteps;e.attr(F,`tabpanel`).attr(P,0).attr(N,t.wizardId+M+t.index).attr(w,r)},_buttonFactory:function(n){var r=e(`<button type='button'><span></span></button>`).kendoButton({themeColor:n.primary?`primary`:t}).getKendoButton(),i=r.element;i.attr(I+n.name,``),i.find(`span`).text(n.text),n.click&&r.bind(s,n.click),n.enabled===!1&&r.enable(!1),n.position===k?this._leftButtonsContainer.append(i):this._rightButtonsContainer.append(i),n.name===`done`&&this.options.formTag!==`form`&&r.element.attr(`type`,d),this._buttons.push(r)},_buttonsContainer:function(){var t=e(`<div>`).addClass(L.wizardButtons);this._leftButtonsContainer=e(`<span>`).addClass(L.wizardLeftButtons),this._rightButtonsContainer=e(`<span>`).addClass(L.wizardRightButtons),t.append(this._leftButtonsContainer),t.append(this._rightButtonsContainer),this.element.append(t),this._buttons=[],this.options.buttons.map(this._buttonFactory.bind(this)),this.options.pager&&this._pager()},_content:function(){var t=this.options,r=!!t.contentUrl,i=e(`<div>`).addClass(L.wizardContent);!r&&t.contentId?i.html(e(`#`+t.contentId).html()):!r&&t.content&&i.append(t.content),t.markupContainer&&(!r&&!t.contentId&&!t.content&&i.append(t.markupContainer.html()),n.destroy(t.markupContainer),t.markupContainer.remove()),this.element.prepend(i)},_form:function(){var t=e(`<`+this.options.formTag+`>`).hide(),n=e(`<div>`).addClass(L.wizardContent),r=this.options.form;e(`body`).append(t),this.element.prepend(n),r.buttonsTemplate=r.buttonsTemplate||(()=>``),this.form=t.kendoForm(r).getKendoForm(),n.append(t.show())},_iterateButton:function(e){var t=this.options.messages;return typeof e==`string`&&(e={name:e}),e.text||=t[e.name]||e.name.charAt(0).toUpperCase()+e.name.slice(1),e.primary!==!1&&(e.name===m||e.name===p)&&(e.primary=!0),!e.position&&e.name===u?e.position=k:e.position||=O,e},_pager:function(){var e=this.options,t=e.messages,r={step:t.step,currentStep:e.index+1,of:t.of,totalSteps:e.totalSteps},i=n.template(this._pagerTemplate)(r);this._leftButtonsContainer.append(i)},_processButtons:function(){var e=this.options,t=e.buttons,n=this._defaultButtonsConfiguration;(!t||!t.length||t.length===0)&&(this.options.defaultButtons=!0,t=e.index===0?n.first:e.index+1===e.totalSteps?n.last:n.middle),this.options.buttons=t.map(this._iterateButton.bind(this))},_render:function(){this.element=e(`<div>`).addClass(L.wizardStep),this.options.className&&this.element.addClass(this.options.className),this._ariaAttributes(),this.options.selected||(this.element.addClass(v),this.element.attr(C,!0)),this.options.actionBar&&this._buttonsContainer(),this.options.form?this._form():this._content()}}),z=r.extend({init:function(e,t){var n=this;t||={},r.fn.init.call(n,e,t),n._wrapper(),n._createSteps(),n._stepper(),n._attachEvents()},options:{name:`Wizard`,contentPosition:D,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:[c,l,u,m,h,g,_],destroy:function(){var e=this;r.fn.destroy.call(e.stepper),r.fn.destroy.call(e),e.wrapper.off(o)},setOptions:function(e){var t=this;t.destroy(),t.wrapper.empty(),n.deepExtend(t.options,e),t.init(t.element,e)},activeStep:function(){return this.currentStep},enableStep:function(e,n){var r=this,i;e===t||e===null||isNaN(e)||e>=r._steps.length||e<0||(e=Number(e),i=r._steps[e],i.options.enabled!==n&&(i.options.enabled=n,r.stepper.steps()[e].enable(n)))},insertAt:function(e,n){var r=this._steps,i=r.length,a=this.options.messages,o,s,c,l;e===null||e===t||isNaN(e)||e<0||e>i||n&&(s=this._mapStepForStepper(n),this.stepper.insertAt(e,s),n.totalSteps=i+1,n.messages=a,n.index=e,n.formTag=this.wrapper.is(`form`)?`div`:`form`,this.options.pager===!1&&n.pager!==!0&&(n.pager=!1),o=new R(n),r.forEach(function(t,n){var r;n>=e&&(t.options.index+=1),t.options.totalSteps+=1,t.element.find(A+L.wizardPager).remove(),t._pager(),r=a.step+` `+(t.options.index+1)+` `+a.of+` `+(i+1),t.element.attr(w,r)}),r.splice(e,0,o),(e===0||e===i)&&(c=e===0?1:i-1,l=r[c],l.options.defaultButtons&&l.resetButtons()),this._insertStepElementAtIndex(e,o.element),this._stepperAriaAttributes(),this._steps.forEach(this._iterateAriaStep))},next:function(){var e=this,t=e._steps.length,n=e.currentStep.options.index;if(n+1!==t)if(e.steps()[n+1].options.enabled)e._select(n+1),e._selectStepper(n+1);else return},previous:function(){var e=this,t=e.currentStep.options.index;if(t!==0)if(e.steps()[t-1].options.enabled)e._select(t-1),e._selectStepper(t-1);else return},removeAt:function(r){var i=this._steps,a=i.length,o=e(this.element.find(A+L.wizardStep).get(r)),s,c,l,u,d,f,p=this.options.messages;if(!(r===null||r===t||isNaN(r)||r<0||r>a||a===1)){for(this.stepper.removeAt(r),i.splice(r,1)[0],o.hasClass(v)||(s=r===0?0:r-1,this.select(s)),n.destroy(o),o.remove(),u=0;u<a-1;u+=1)d=i[u],d.options.index=u,d.options.totalSteps=a-1,d.element.find(A+L.wizardPager).remove(),d._pager(),f=p.step+` `+(u+1)+` `+p.of+` `+(a-1),d.element.attr(w,f);(r===0||r===a-1)&&(c=r===0?0:a-2,l=i[c],l.options.defaultButtons&&l.resetButtons()),this._stepperAriaAttributes(),this._steps.forEach(this._iterateAriaStep)}},select:function(e){var n=this,r;e===t||e===null||isNaN(e)||e>=n._steps.length||e<0||(e=Number(e),r=n._steps[e],r.options.enabled&&(n._select(e),n._selectStepper(e)))},steps:function(){return this._steps},_attachEvents:function(){var e=this,t=function(){e._doneClicked=!0};e.stepper.bind(l,e._stepperSelectHandler.bind(e)),e.wrapper.on(s+o,`[`+I+u+`]`,e._resetClickHandler.bind(e)).on(s+o,`[`+I+f+`]`,e._previousClickHandler.bind(e)).on(s+o,`[`+I+p+`]`,e._nextClickHandler.bind(e)),e.wrapper.is(`form`)?(e.wrapper.on(s+o,`[`+I+m+`]`,t),e.wrapper.on(d+o,e._doneHandler.bind(e))):(e.wrapper.on(s+o,`[`+I+m+`]`,t),e.wrapper.on(s+o,`[`+I+m+`]`,e._doneHandler.bind(e)))},_changeStep:function(e){var t=this.wrapper.find(A+L.wizardStep);this.currentStep=e,t.addClass(v),t.attr(C,!0),e.element.removeClass(v),e.element.removeAttr(C)},_createStep:function(t,n,r,a){var o=this.wrapper,s=this.wrapper.children(`ol, ul`).children(`li`);return typeof t==`string`&&(t={title:t}),t.totalSteps=a,t.messages=this.options.messages,t.index=n,t.formTag=this.wrapper.is(`form`)?`div`:`form`,n===0&&(t.selected=!0),this.options.actionBar===!1&&(t.actionBar=!1),r.length>0&&r[n]&&(t.markupContainer=e(r[n]),t.title||(t.title=s[n]?s[n].textContent:(n+1).toString(),this.options.steps||(this.options.steps=[]))),o.attr(N)&&(t.wizardId=o.attr(N)),this.options.pager===!1&&t.pager!==!0&&(t.pager=!1),this.options.steps[n]=i(!0,{},t),new R(t)},_createSteps:function(){var t=this,r=t.wrapper,i=t.options.steps,a=r.children(`div`),o=e(`<div>`).addClass(L.wizardStepsContainer),s,c,l;if(t._steps=[],!i||i.length===0)for(i=[],s=0;s<a.length;s+=1)i.push({});for(s=0;s<i.length;s+=1)c=i[s],l=t._createStep(c,s,a,i.length),c.contentUrl&&(s===0||!t.options.loadOnDemand)&&(n.ui.progress(t.wrapper,!0),l._ajaxRequest(t)),o.append(l.element),t._steps.push(l);r.children(`ol, ul`).remove(),r.empty(),r.append(o),t._refreshEditorWidgets(),t.currentStep=t._steps[0]},_doneHandler:function(t){var n=this._steps,r=this.currentStep,i=[],a,o;if(this._doneClicked){if(this._doneClicked=!1,this.options.validateForms&&r.form&&!r.form.validator.validate()){t.preventDefault(),this.trigger(_,{sender:this,step:r,form:r.form});return}for(o=0;o<n.length;o+=1)a=n[o].form,a&&i.push(a);this.trigger(m,{sender:this,forms:i,originalEvent:t,button:e(t.currentTarget).getKendoButton()})}},_insertStepElementAtIndex:function(e,t){var n=this.wrapper.find(A+L.wizardStepsContainer);e===0?n.prepend(t):n.find(A+L.wizardStep+`:nth-child(`+e+`)`).after(t)},_isEmpty:function(e){return!n.trim(e.html())},_iterateAriaStep:function(e){e._ariaAttributes()},_mapStepForStepper:function(e){var t=i(!0,{},e);return t.label=t.title,delete t.buttons,delete t.pager,delete t.content,delete t.contentUrl,delete t.contentId,delete t.formTag,delete t.wizardId,delete t.messages,t},_select:function(e){var t=this._steps[e],r=this.options;t.options.contentUrl&&(r.reloadOnSelect||r.loadOnDemand&&this._isEmpty(t.element.find(A+L.wizardContent)))?(this.ajaxLoad=!0,n.ui.progress(this.wrapper,!0),t._ajaxRequest(this,!0)):this._changeStep(t)},_nextClickHandler:function(t){var n=this,r=n._steps,i=n._steps.length,a=n.currentStep,o=a.options.index,s=e(t.target).getKendoButton(),u=r[o+1];if(!(i===o+1||!u.options.enabled)){if(n.options.validateForms&&a.form&&!a.form.validator.validate()){n.trigger(_,{sender:n,step:a,form:a.form});return}n.trigger(l,{sender:n,originalEvent:t.originalEvent,step:u,button:s})||(n._select(o+1),n._selectStepper(o+1),n.ajaxLoad||n.trigger(c,{sender:n,step:u}),n.ajaxLoad=!1)}},_previousClickHandler:function(t){var n=this,r=n.options.validateForms,i=n._steps,a=n.currentStep,o=a.options.index,s=e(t.target).getKendoButton(),u=i[o-1];if(!(o===0||!u.options.enabled)){if(r&&r.validateOnPrevious!==!1&&a.form&&!a.form.validator.validate()){n.trigger(_,{sender:n,step:a,form:a.form});return}n.trigger(l,{sender:n,originalEvent:t.originalEvent,step:u,button:s})||(n._select(o-1),n._selectStepper(o-1),n.ajaxLoad||n.trigger(c,{sender:n,step:u}),n.ajaxLoad=!1)}},_refreshEditorWidgets:function(){var t=this.wrapper.find(`[data-role='editor']`),n,r;for(n=0;n<t.length;n+=1)r=e(t[n]),r.getKendoEditor().refresh()},_resetClickHandler:function(t){this.trigger(u,{sender:this,originalEvent:t,button:e(t.target).getKendoButton()})},_selectStepper:function(e){var t=this.stepper,n=t.steps()[e].element.find(A+b);t.select(e),t.wrapper.find(A+b).attr(x,!1),n.attr(x,!0).trigger(`focus`)},_stepper:function(){var t=this.wrapper,r=e(`<div>`).prependTo(t),i=this.options,a=i.stepper;a.steps=i.steps.map(this._mapStepForStepper),a.orientation=i.contentPosition===D?E:T,a.selectOnFocus=!0,a.kendoKeydown=function(e){e.keyCode===n.keys.TAB&&(e.preventKendoKeydown=!0)},this.stepper=r.kendoStepper(a).getKendoStepper(),this._stepperAriaAttributes()},_stepperAriaAttributes:function(){var e=this.stepper,t=this.wrapper.attr(N)||`wizard`,n=e.steps(),r,i,a;if(n)for(e.element.find(A+y).attr(F,`tablist`),a=0;a<n.length;a+=1)r=!1,a===0&&(r=!0),i=n[a],i.element.attr(F,`none`).find(`a`).attr(F,`tab`).attr(S,t+M+a).attr(x,r)},_stepperSelectHandler:function(e){var t=this,n=t.options.validateForms,r=e.sender,i=e.step,a=t.currentStep.options.index,o=i.getIndex(),s=t._steps[o],u=t.currentStep;if(o>a&&n&&u.form&&!u.form.validator.validate()){e.preventDefault(),t.trigger(_,{sender:t,step:u,form:u.form});return}if(o<a&&n&&n.validateOnPrevious!==!1&&u.form&&!u.form.validator.validate()){e.preventDefault(),t.trigger(_,{sender:t,step:u,form:u.form});return}t.trigger(l,{sender:t,originalEvent:e.originalEvent,step:s,stepper:r})?e.preventDefault():(t._select(o),r.wrapper.find(A+b).attr(x,!1),i.element.find(A+b).attr(x,!0),t.ajaxLoad||t.trigger(c,{sender:t,step:s}),t.ajaxLoad=!1)},_triggerActivate:function(e){this._changeStep(e),this.trigger(c,{sender:this,step:e})},_triggerError:function(e,t,r){n.ui.progress(this.wrapper,!1),this.trigger(h,{sender:this,xhr:e,status:t,step:r})},_triggerContentLoad:function(e){n.ui.progress(this.wrapper,!1),this.trigger(g,{sender:this,step:e})},_wrapper:function(){var e=this,t=e.element,n=e.options.contentPosition;e.wrapper=t,e.wrapper.addClass(L.wizard),n===O?e.wrapper.addClass(L.verticalWizard+j+L.rightWizard):n===k?e.wrapper.addClass(L.verticalWizard+j+L.leftWizard):e.wrapper.addClass(L.horizontalWizard)}});n.wizard={Step:R},n.ui.plugin(z)})(window.kendo.jQuery);var a=kendo;e.__meta__=i,e.default=a}); //# sourceMappingURL=kendo.wizard.min.js.map