UNPKG

@progress/kendo-ui

Version:

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

1 lines 14.3 kB
module.exports=function(s){var i={};function n(e){if(i[e])return i[e].exports;var t=i[e]={exports:{},id:e,loaded:!1};return s[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}return n.m=s,n.c=i,n.p="",n(0)}({0:function(e,t,s){e.exports=s(1479)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1051:function(e,t){e.exports=require("./kendo.core")},1311:function(e,t){e.exports=require("./kendo.progressbar")},1479:function(e,t,s){var i;s(3),s=[s(1051),s(1311)],void 0===(t="function"==typeof(i=function(){var e={id:"stepper",name:"Stepper",category:"web",description:"The Stepper widget displays navigation steps.",depends:["core","progressbar"]},a=window.kendo.jQuery,d=void 0,l=window.kendo,i=l.ui.Widget,p=l.keys,h=a.extend,t=".kendoStepper",o="click",_="activate",v="select",g="keydown",b="focusout",c=".",s=" ",f="vertical",n="tabindex",k="aria-current",S="aria-disabled",m="aria-invalid",w="aria-hidden",u={step:"k-step",firstStep:"k-step-first",lastStep:"k-step-last",doneStep:"k-step-done",successStep:"k-step-success",errorStep:"k-step-error",currentStep:"k-step-current",focusStep:"k-step-focus",disabledStep:"k-step-disabled",stepLink:"k-step-link",stepIndicator:"k-step-indicator",stepLabel:"k-step-label"},r={widget:"k-widget k-stepper",stepperLinear:"k-stepper-linear",stepList:"k-step-list",stepListHorizontal:"k-step-list-horizontal",stepListVertical:"k-step-list-vertical"},x=l.Class.extend({init:function(e){this.options=h({},this.options,e);this._render()},options:{label:"",icon:"",successIcon:"",iconTemplate:"",enabled:true,error:false,selected:false,isFirstStep:false,isLastStep:false,indicatorVisible:true,labelVisible:true,index:0,previous:false,selectable:true},_indicatorTemplate:'<span class="k-step-indicator" aria-hidden="true">'+"#if(successIcon && previous && !error) {#"+'<span class="k-step-indicator-icon k-icon k-i-#: successIcon #"></span>'+"#} else if(icon) {#"+'<span class="k-step-indicator-icon k-icon k-i-#: icon #"></span>'+"#} else if(previous && !error) {#"+'<span class="k-step-indicator-icon k-icon k-i-check"></span>'+"#} else {#"+'<span class="k-step-indicator-text">#: index + 1 #</span>'+"#}#"+"</span>",_labelTemplate:'<span class="k-step-label">'+'<span class="k-step-text">'+"#: label #"+"</span>"+" "+"#if(error || (!indicatorVisible && !error && previous)) {#"+'<span class="k-icon'+"#if(previous && !error){# k-i-check#}#"+"#if(error){# k-i-warning#}#"+'" aria-hidden="true"></span>'+"#}#"+"</span>",deselect:function(){this.options.selected=false;this._link();this._stepClasses()},enable:function(e){if(this.options.enabled!==e){this.options.enabled=e;this.options.selectable=e;this._link();this._stepClasses()}},select:function(){this.options.selected=true;this._link();this._stepClasses()},getEnabled:function(){return this.options.enabled},getIndex:function(){return this.options.index},setPrevious:function(e){this.options.previous=e;this._link();this._stepClasses()},getSelectable:function(){return this.options.selectable},getSelected:function(){return this.options.selected},setValid:function(e){if(this.options.error===e){this.options.error=!e;this._link();this._stepClasses()}},_indicator:function(){var e=this.options,t;if(!!e.iconTemplate){t=a("<span>").addClass(u.stepIndicator).attr(w,"true");t.append(l.template(e.iconTemplate)(e))}else t=l.template(this._indicatorTemplate)(e);this.element.find(c+u.stepLink).append(t)},_label:function(){var e=l.template(this._labelTemplate)(this.options);this.element.find(c+u.stepLink).append(e)},_link:function(){var e=this.options;this.element.find(c+u.stepLink).empty();this._linkAttributes();if(e.indicatorVisible)this._indicator();if(e.labelVisible)this._label()},_linkAttributes:function(){var e=this.options,t=this.element.find(c+u.stepLink);t.removeAttr(S+s+m+s+k+s+n);if(!e.selected)t.attr(n,"-1");else t.attr(k,"true");if(!e.enabled||!e.selectable)t.attr(S,"true");if(e.error)t.attr(m,"true")},_render:function(){var e=a("<a href='#'>").addClass(u.stepLink).attr("title",this.options.label);this.element=a("<li>").append(e);this._link();this._stepClasses()},_stepClasses:function(){var e=this.options,t=u.step;if(e.isFirstStep)t+=s+u.firstStep;if(e.isLastStep)t+=s+u.lastStep;if(!e.enabled)t+=s+u.disabledStep;if(e.error)t+=s+u.errorStep;if(e.previous){t+=s+u.doneStep;if(!e.error)t+=s+u.successStep}else if(e.selected){t+=s+u.currentStep;t+=s+u.focusStep}this.element.removeClass().addClass(t)}}),L=i.extend({init:function(e,t){var s=this;t=t||{};i.fn.init.call(s,e,t);s._indicatorAndLabel();s._wrapper();if(t.steps&&t.steps.length){s._processSteps(t.steps);s._progressBar()}s._attachEvents();s._resizeHandler=l.onResize(function(){s.resize()})},options:{orientation:"horizontal",linear:true,indicator:true,label:true,selectOnFocus:false,steps:null,name:"Stepper"},events:[_,v,"kendoKeydown"],destroy:function(){var e=this;if(e.progressBar)i.fn.destroy.call(e.progressBar);i.fn.destroy.call(e);l.unbindResize(e._resizeHandler);e.wrapper.off(t)},setOptions:function(e){var t=this;i.fn.setOptions.call(t,e);if(t.progressBar)i.fn.destroy.call(t.progressBar);t._indicatorAndLabel();t._addStepList();if(t.options.steps&&t.options.steps.length){t._processSteps(t.options.steps);t._progressBar()}},enable:function(s){var e=this.steps(),i=this.options.steps;var t=function(e,t){e.enable(s);i[t]=e.options};if(s)this.wrapper.removeAttr(S);else this.wrapper.attr(S,"true");this.progressBar.enable(s);e.forEach(t)},insertAt:function(e,t){var s=this.options.steps,i;var n=function(e){if(e.selected)i=e};if(!t||isNaN(e))return;if(e<0)e=s.length+e;if(e<0)return;if(!s)s=[];if(s.length===0||e>=s.length)e=s.length;s.forEach(n);if(t.selected===true)i.selected=false;s.splice(e,0,t);this._createSteps();this._renderSteps();this._resetProgressBar();this._calculateDimensions()},next:function(){if(!this._steps||this._steps.length<=1)return;var e=this.selectedStep;var t=e.getIndex();if(t+1===this._steps.length)return;else this._select(t+1)},previous:function(){if(!this._steps||this._steps.length<=1)return;var e=this.selectedStep;var t=e.getIndex();if(t===0)return;else this._select(t-1)},removeAt:function(e){var t=this.options.steps,s,i,n;if(isNaN(e)||!t||t.length<2||e>=t.length)return;if(e<0)e=t.length+e;if(e<0)return;s=t.splice(e,1)[0];if(s.selected===true&&t.length>0){if(e>0)n=e-1;else n=0;i=t[n];if(typeof i==="string"){i={label:i};t[n]=i}i.selected=true;i.previous=false}this._createSteps();this._renderSteps();this._resetProgressBar();this._calculateDimensions()},resize:function(){this._calculateDimensions()},select:function(e){var t=this;if(e===d||e===null||isNaN(e))return t.selectedStep;if(e>=t._steps.length||e<0)return;e=Number(e);t._select(e)},steps:function(e){if(e===d)return this._steps;this._processSteps(e);this._resetProgressBar();this._calculateDimensions()},_processSteps:function(e){var t=this,s;var i=function(e){if(e.selected)s=e};e.forEach(i);if(!s){if(typeof e[0]==="string")e[0]={label:e[0]};e[0].selected=true}t.options.steps=e;t._createSteps();t._renderSteps()},_addStepList:function(){var e=this;e.wrapper.empty().append(a("<ol />").addClass(r.stepList));e._stepList=e.wrapper.find(c+r.stepList);if(e.options.orientation===f)e._stepList.addClass(r.stepListVertical);else e._stepList.addClass(r.stepListHorizontal)},_attachEvents:function(){var e=this;e.wrapper.on(o+t,c+u.step,e._selectClickHandler.bind(e)).on(o+t,e._wrapperClickHandler.bind(e)).on(b+t,e._focusout.bind(e)).on(g+t,e,e._keydown.bind(e))},_calculateDimensions:function(){var e=this.options.orientation,t=this._steps.length,s=this._stepList,i=s.find(c+u.step),n=s.width()/t,r=s.height()/t,o=this.progressBar.element,a="margin-left",p={};if(e===f){i.css("max-height",100/t+"%");o.css({"margin-top":-1*(s.height()-16),height:r*(t-1)})}else{i.css("max-width",100/t+"%");if(l.support.isRtl(this.wrapper))a="margin-right";p[a]=n/2;p.width=n*(t-1);o.css(p)}},_createStep:function(e,t,s){var i=this,n=t===0,r=i.options,o=r.indicator,a=r.label;e=h({},e,{enabled:e.enabled===false?false:true});e=h({},e,{isFirstStep:n,isLastStep:s,indicatorVisible:o,labelVisible:a,index:t});return new x(e)},_createSteps:function(){var e=this,t=e.options.steps,s=false,i,n,r,o;e._steps=[];for(n=0;n<t.length;n++){o=t[n];if(typeof o==="string")o={label:o};if(o!==d){r=n===t.length-1;if(o.selected)s=true;else o=e._selectablePreviousState(o,s,n);i=e._createStep(o,n,r);e._steps.push(i);if(i.getSelected())e.selectedStep=i}}},_indicatorAndLabel:function(){if(!this.options.indicator&&!this.options.label){this.options.indicator=true;this.options.label=true}},_focusout:function(e){var t=this;if(!t.wrapper.get(0).contains(e.relatedTarget))setTimeout(function(){t._leaveStepper()})},_focusStep:function(e){var t=this.wrapper.find(c+u.focusStep),s=this.wrapper.find(c+u.stepLink);if(e.length>0){t.removeClass(u.focusStep);s.attr(n,"-1");e.find(c+u.stepLink).removeAttr(n)[0].focus()}},_focusNextStep:function(){var e=a(document.activeElement).closest(c+u.step),t=e.next();this._focusStep(t)},_focusPreviousStep:function(){var e=a(document.activeElement).closest(c+u.step),t=e.prev();this._focusStep(t)},_focusFirstStep:function(){var e=this.wrapper,t=e.find(c+u.firstStep);this._focusStep(t)},_focusLastStep:function(){var e=this.wrapper,t=e.find(c+u.lastStep);this._focusStep(t)},_keydown:function(e){var t=this,s=e.keyCode,i=a(document.activeElement).closest(c+u.step),n=i.index(),r=t.steps().length;if(s===p.TAB){if(e.shiftKey&&n>0){e.preventDefault();t._tabKey(e,-1)}else if(!e.shiftKey&&n<r-1){e.preventDefault();t._tabKey(e,+1)}}else if(s>34&&s<41){e.preventDefault();t._navKeys(e)}else if(s===p.ENTER||s===p.SPACEBAR){e.preventDefault();t._selectHandler(e,a(document.activeElement).closest(c+u.step))}else e.preventDefault()},_leaveStepper:function(){var e=this.wrapper.find(c+u.currentStep),t=this.wrapper.find(c+u.stepLink);t.removeClass(u.focusStep).attr(n,"-1");e.addClass(u.focusStep);e.find(c+u.stepLink).removeAttr(n)},_navKeys:function(e){var t=this.options.selectOnFocus;if(t)this._navKeysSelect(e);else this._navKeysFocus(e)},_navKeysFocus:function(e){var t=e.keyCode,s=l.support.isRtl(this.wrapper),i=this.options.orientation;switch(t){case p.DOWN:if(s&&i!==f)this._focusPreviousStep();else this._focusNextStep();break;case p.RIGHT:if(s)this._focusPreviousStep();else this._focusNextStep();break;case p.UP:if(s&&i!==f)this._focusNextStep();else this._focusPreviousStep();break;case p.LEFT:if(s)this._focusNextStep();else this._focusPreviousStep();break;case p.HOME:this._focusFirstStep();break;case p.END:this._focusLastStep();break}},_navKeysSelect:function(e){var t=e.keyCode,s=a(document.activeElement).closest(c+u.step).index(),i=l.support.isRtl(this.wrapper),n=this.steps(),r=this.options.orientation,o;switch(t){case p.DOWN:if(i&&r!==f)o=n[s-1];else o=n[s+1];break;case p.RIGHT:if(i)o=n[s-1];else o=n[s+1];break;case p.UP:if(i&&r!==f)o=n[s+1];else o=n[s-1];break;case p.LEFT:if(i)o=n[s+1];else o=n[s-1];break;case p.HOME:o=n[0];break;case p.END:o=n[n.length-1];break}if(o){this._focusStep(o.element);this._selectHandlerOnKey(e,o.element)}},_progressBar:function(){var e=this.wrapper,t=this._progressOptions();this.progressBar=a("<div>").kendoProgressBar(t).getKendoProgressBar();this.progressBar.element.addClass("k-pos-absolute k-overflow-hidden");this.progressBar.element.css("position","absolute");this._calculateDimensions();e.append(this.progressBar.element)},_progressOptions:function(){var e=this.options,t=e.orientation,s=e.steps,i,n;if(!s||s.length===0)return;else i=s.length;n={max:i-1,value:this.select().getIndex(),orientation:t,showStatus:false};if(t===f)n.reverse=true;return n},_resetProgressBar:function(){var e=this.progressBar,t;if(!e)return;t=this._progressOptions();e.setOptions(t)},_renderSteps:function(){var e=this._steps,t=this._stepList,s,i;t.empty();for(i=0;i<e.length;i++){s=e[i];t.append(s.element)}},_resetStep:function(e,t,s){var i=this._steps[e];if(!s&&e<t)i.options.selectable=true;else if(e===t){i.options.previous=false;i.options.selected=true;i.options.selectable=true}else if(s&&e>t)i.options.selectable=true;else{i.options.selected=false;i.options.previous=s}if(this.options.linear&&(e<t-1||e>t+1))i.options.selectable=false;i._link();i._stepClasses();this.options.steps[e]=i.options},_select:function(e){var t=this.options,s=t.linear,c=this.select(),i=c.getIndex(),n=t.steps,r=this._steps[e],o,a,p,l;if(!r||!r.getEnabled())return;if(e>i){o=true;if(s){p=Math.max(i-1,0);l=Math.min(e+1,n.length-1)}else{p=i;l=e}}else{o=false;if(s){p=Math.max(e-1,0);l=Math.min(i+1,n.length-1)}else{p=e;l=i}}for(a=p;a<=l;a++)this._resetStep(a,e,o);this.selectedStep=r;this.progressBar.value(e)},_selectablePreviousState:function(e,t,s){var i=this.options.steps,n=this.options.linear;if(!t){e.previous=true;if(n&&!i[s+1].selected)e.selectable=false;else e.selectable=true}else if(n&&!i[s-1].selected)e.selectable=false;else e.selectable=true;return e},_selectClickHandler:function(e){var t=a(e.target).closest(c+u.step);e.preventDefault();this._preventWrapperClick=true;this._selectHandler(e,t)},_selectHandler:function(e,t){var s=this,i=s._steps[t.index()],n=this.select();if(!i||i.getIndex()===n.getIndex()||!i.getEnabled()||!i.getSelectable()){s._focusStep(n.element);return}if(!s.trigger(v,{sender:s,originalEvent:e,step:i})){s._select(i.getIndex());t.find(c+u.stepLink)[0].focus();s.trigger(_,{sender:s,originalEvent:e,step:i})}},_selectHandlerOnKey:function(e,t){var s=this,i=s._steps[t.index()];if(!i.getEnabled()||!i.getSelectable())return;if(!s.trigger(v,{sender:s,originalEvent:e,step:i})){s._select(i.getIndex());t.find(c+u.stepLink)[0].focus();s.trigger(_,{sender:s,originalEvent:e,step:i})}},_tabKey:function(e,t){var s=this.options.selectOnFocus,i=a(document.activeElement).closest(c+u.step),n=i.index(),r=a(i.parent().find(c+u.step)[n+t]);this._focusStep(r);if(s)this._selectHandlerOnKey(e,r)},_wrapper:function(){var e=this,t=e.element;e.wrapper=t;e.wrapper.addClass(r.widget);if(e.options.linear)e.wrapper.addClass(r.stepperLinear);this._addStepList()},_wrapperClickHandler:function(e){var t=this.select();if(!this._preventWrapperClick){e.preventDefault();this._focusStep(t.element)}else this._preventWrapperClick=false}});return l.stepper={Step:x},l.ui.plugin(L),window.kendo})?i.apply(t,s):i)||(e.exports=t)}});