UNPKG

@progress/kendo-ui

Version:

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

3 lines 13.3 kB
/* @license */ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`kendo.timeselector.min.js`),require(`kendo.icons.min.js`)):typeof define==`function`&&define.amd?define([`exports`,`kendo.timeselector.min`,`kendo.icons.min`],t):(e=typeof globalThis<`u`?globalThis:e||self,t((e.kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Timedurationpicker={}),e.kendo._globals.Timeselector,e.kendo._globals.Icons))})(this,function(e,t,n){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let r={id:`timedurationpicker`,name:`TimeDurationPicker`,category:`web`,description:`The TimeDurationPicker widget allows the end user to select a time range stored in milliseconds.`,docsCategory:`editors`,depends:[`timeselector`]};(function(e,t){var n=window.kendo,r=n.ui,i=r.Widget,a=n.html,o=e.map,s=e.extend,c=n.mediaQuery,l=`open`,u=`focus`,d=`close`,f=`change`,p=`click`,m=`<span></span>`,h=`keydown`,g=`focusout`,_=`k-focus`,v=`mouseup`,y=`mousedown`,b=`paste`,x=`.kendoTimeDurationPicker`,S=`aria-expanded`,C=`mouseenter`+x+` mouseleave`+x,w=`string`,T=`input`,E=`k-hover`,D=`k-disabled`,O=`aria-hidden`,k=`aria-disabled`,A=`aria-readonly`,A=`aria-readonly`,j=`disabled`,M=`readonly`,N=`k-invalid`,P=`_`,F=n.caret,I=n.keys,x=`.kendoTimeDurationPicker`;a=n.html;var L={hours:{name:`hours`,format:`## hours`,divider:36e5,min:0,max:23,step:1},minutes:{name:`minutes`,format:`## mins`,divider:6e4,min:0,max:59,step:1},seconds:{name:`seconds`,format:`## sec`,divider:1e3,min:0,max:59,step:1},milliseconds:{name:`milliseconds`,format:`### msec`,min:0,max:999,step:1},days:{format:`### days`,name:`days`,divider:864e5,min:0,max:365,step:1}};function R(e){return(e.days||0)*864e5+(e.hours||0)*36e5+(e.minutes||0)*6e4+(e.seconds||0)*1e3+(e.milliseconds||0)}function z(e){var t,n=Math.floor(e/864e5);t=e%864e5;var r=Math.floor(t/36e5);t=e%36e5;var i=Math.floor(t/6e4);t=e%6e4;var a=Math.floor(t/1e3);return t=e%1e3,{days:n,hours:r,minutes:i,seconds:a,milliseconds:t}}function B(e){return o(e,function(e){e=typeof e===w?{name:e}:e;var t=s(!0,{},L[e.name],e);return t.selectorFormat=`{0:`+`0`.repeat(t.format.match(/#/g).length)+`}`,t})}var V=i.extend({init:function(r,a){var o=this;a||={},i.fn.init.call(o,r,a),o._columns=B(a.columns),o.options.columns=o._columns,o.options.readonly=a.readonly===t?!!o.element.attr(`readonly`):a.readonly,o.options.enable=a.enable===t?!(o.element.is(`[disabled]`)||e(r).parents(`fieldset`).is(`:disabled`)):a.enable,o.options.inputMode=a.inputMode||o.element.attr(`inputmode`)||`text`,o.bigScreenMQL=c(`large`),o.options.adaptiveMode==`auto`&&o.bigScreenMQL.onChange(()=>{o._timeSelector&&=(o._timeSelector.popup&&o._timeSelector.popup.wrapper&&o._timeSelector.popup.wrapper.remove(),o._timeSelector.destroy(),null),o._popupView()}),o._wrapper(),o._button(),o._applyCssClasses(),o._input(),o._popupView(),o._buildMask(),o._validation(),o._editable({readonly:o.options.readonly,disable:!o.options.enable}),o._ariaLabel(o._timeSelector._listsContainer),o.options.value&&(o.value(a.value),o._old=o._maskedInput.val()),o._canUpdateLast=!0,n.notify(o)},options:{name:`TimeDurationPicker`,columns:[],separator:`,`,shortcuts:[],value:null,adaptiveMode:`none`,adaptiveTitle:null,adaptiveSubtitle:null,size:t,fillMode:t,rounded:t,messages:{set:`Set`,cancel:`Cancel`,days:`Days`,hours:`Hours`,minutes:`Minutes`,milliseconds:`Milliseconds`,seconds:`Seconds`}},events:[l,d,f],destroy:function(){var e=this;e.wrapper.off(x),e._maskedInput.off(x),e._timeSelector&&=(e._timeSelector.destroy(),null),e.bigScreenMQL&&e.bigScreenMQL.destroy()},value:function(e){var n=this;if(e===t)return n._value;e=typeof e==`number`?parseInt(e):null,n._value=e,n.element.val(n._value),n._timeSelector._value=n._value,n._updateValueFromTimeSelector()},_toggleHover:function(t){e(t.currentTarget).toggleClass(E,t.type===`mouseenter`)},_editable:function(e){var t=this,n=e.disable,r=e.readonly,i=t._maskedInput.add(t.element).off(x),a=t.wrapper.off(x);!r&&!n?(a.removeClass(D).on(C,t._toggleHover),i&&i.length&&(i.removeAttr(j),i.removeAttr(M)),i.attr(k,!1).attr(A,!1),t._attachHandlers()):(a.addClass(n?D:``).removeClass(n?``:D),i.attr(j,n).attr(M,r).attr(k,n).attr(A,r))},readonly:function(e){this._editable({readonly:e===t?!0:e,disable:!1})},enable:function(e){this._editable({readonly:!1,disable:!(e=e===t?!0:e)})},_popupView:function(){var e=this,t=e.options;e._timeSelector||=new n.ui.TimeSelector(e._maskedInput,{id:e.element.attr(`id`)+`_timeSelector`,anchor:e.wrapper,adaptiveMode:t.adaptiveMode,adaptiveTitle:t.adaptiveTitle,adaptiveSubtitle:t.adaptiveSubtitle,columns:t.columns,shortcuts:t.shortcuts,value:t.value,size:t.adaptiveMode!=`auto`||e.bigScreenMQL.mediaQueryList.matches?t.size:`large`,fillMode:t.fillMode,rounded:t.rounded,messages:t.messages,focus:function(){e._maskedInput.trigger(`focus`),e._selectNearestSection(e._lastCaret||0)},close:function(t){e.trigger(d)?t.preventDefault():(e._maskedInput.attr(S,!1),e._timeSelector._listsContainer.attr(O,!0))},open:function(t){e.trigger(l)?t.preventDefault():(e._maskedInput.attr(S,!0),e._timeSelector._listsContainer.attr(O,!1),e._lastCaret=F(e._maskedInput)[0],e._lastCaret===e._maskedInput.val().length&&(e._lastCaret=0))},change:function(t){e._value=t,e._updateValueFromTimeSelector(),e._removeInvalidState(),e.trigger(f)}})},_button:function(){var t=this,n=t.element,r=t.options,i=n.next(`button.k-input-button`);i[0]||(i=e(a.renderButton(`<button unselectable="on" tabindex="-1" class="k-input-button" aria-label="select"></button>`,{icon:`clock-arrow-rotate`,size:r.size,fillMode:r.fillMode,shape:`none`})).insertAfter(n)),t._button=i.attr({role:`button`})},_buildMask:function(){var e=this.options.columns,t,n=``,r,i=0;this._emtpyMask=``,this._maskParts=[];for(var a=0;a<e.length;a++)r={},t=e[a].format,a&&(n=this.options.separator),n+=t.replace(/#/g,`_`),this._emtpyMask+=n,r.end=this._emtpyMask.length-1,r.mask=t.replace(/#/g,`_`),r.symbolsLength=r.mask.match(/_/g).length,r.start=this._emtpyMask.indexOf(r.mask,i),r.numberEnd=this._emtpyMask.lastIndexOf(P)+1,r.numberStart=this._emtpyMask.indexOf(P,r.start),i+=r.mask.length,this._maskParts.push(r);this._old=this._emtpyMask,this._maskedInput.val(this._emtpyMask)},_input:function(){var t=this;t._maskedInput=e(`<input />`).attr(n.attr(`validate`),`false`).attr({role:`combobox`,"aria-expanded":!1,"aria-controls":t.element.attr(`id`)+`_timeSelector`,autocomplete:`off`,inputmode:t.options}).addClass(`k-input-inner`).insertBefore(t.element);let r=t.options.inputMode;r&&t._maskedInput.attr(`inputmode`,r),t.element.hide()},_wrapper:function(){var e=this,t=e.element,n=t.parents(`.k-timedurationpicker`);n[0]||(n=t.wrap(m).parent()),e.wrapper=n.addClass(`k-timedurationpicker k-input`)},_attachHandlers:function(){var e=this;e._maskedInput.on(h+x,e._keydown.bind(e)).on(T+x,e._inputHandler.bind(e)).on(u+x,e._focus.bind(e)).on(g+x,e._focusout.bind(e)).on(b+x,e._paste.bind(e)).on(y+x,e._mouseDown.bind(e)).on(v+x,e._mouseUp.bind(e)),e.wrapper.on(p+x,`.k-input-button`,e._click.bind(e))},_mouseDown:function(){this._mouseOnInput=!0},_mouseUp:function(){var e=F(this._maskedInput[0]),t=this._maskedInput[0].value;e[0]===e[1]&&this._selectNearestSection(e[1]==t.length?t.length-1:e[1])},_triggerChange:function(){(this._lastValue==t&&this._value||this._lastValue!=this._value)&&(this._lastValue=this._value,this.trigger(f))},_focusout:function(){this._updateValueFromInput(),this._triggerChange(),this._canUpdateLast=!0,this.wrapper.removeClass(_)},_focus:function(){var e=this;e._mouseOnInput||setTimeout(function(){e._selectNearestSection(0)},10),e._mouseOnInput=!1,e.wrapper.addClass(_)},_selectNearestSection:function(e){for(var t,n=0;n<this._maskParts.length;n++)t=this._maskParts[n],e>=t.start&&e<=t.end&&F(this._maskedInput[0],t.numberStart,t.numberEnd)},_getPartValue:function(e,t){var n=this.options.separator,r=e.indexOf(n,t),i=e.lastIndexOf(n,t);return e.substring(i<0?0:i+1,r<0?e.length:r)},_getEmptyPart:function(e){return this._getPartValue(this._emtpyMask,e)},_fillParts:function(e){var t=this._emtpyMask.split(this.options.separator),n;e+=``;for(var r=0;r<t.length;r++)n=t[r].match(/_/g).length,n>e.length?t[r]=t[r].replace(P.repeat(n),`0`.repeat(n-e.length)+e):(t[r]=t[r].replace(P.repeat(n),e.substring(0,n)),e=e.substring(n,n.length));return t.join(this.options.separator)},_clearParts:function(e,t,n){for(var r=e.split(this.options.separator),i=0,a,o=0;o<r.length;o++)a=i+r[o].length,(i<=t&&a>=t||i<=n&&a>=n)&&(r[o]=this._getEmptyPart(i)),i+=r[o].length+1;return r.join(this.options.separator)},_updatePart:function(e,t){var r=this._getEmptyPart(this._old.indexOf(e)),i=e.substring(r.indexOf(P),r.lastIndexOf(P)+1),a=`{0:`+`0`.repeat(i.length)+`}`;return i.indexOf(P)>=0||e[e.search(/[0-9]/)]!==`0`||t.length>1?e.replace(i,n.format(a,parseInt(t))):e.replace(i,n.format(a,parseInt(i+t)))},_replacePart:function(e,t,n){return e.replace(this._getPartValue(e,n),t)},_click:function(){var e=this;e._timeSelector&&e._timeSelector.toggle()},_switchPart:function(e){var n=this.options.separator,r=e.caret==t?F(this._maskedInput[0])[0]:e.caret,i=this._maskedInput.val(),a;e.next?(a=i.indexOf(n,r),a<0?a=i.length-1:a++):(a=i.lastIndexOf(n,r),a<0?a=0:a--),this._selectNearestSection(a)},_keydown:function(e){var t=e.keyCode,n=this.options.separator,r,i,a,o,s;if(this._backward=t===I.BACKSPACE,t==I.LEFT||t==I.RIGHT){if(e.preventDefault(),r=F(this._maskedInput[0])[0],i=this._maskedInput.val(),o=i.indexOf(n,r),s=i.lastIndexOf(n,r),o<0&&t==I.RIGHT||s<0&&t==I.LEFT)return;a=t==I.LEFT?s-1:o+1,this._selectNearestSection(a),t==I.LEFT&&(this._canUpdateLast=!0)}else this._timeSelector.popup.visible()?this._timeSelector._scrollerKeyDownHandler(e):t==I.UP||t==I.DOWN?(e.preventDefault(),e.altKey&&this._timeSelector.toggle()):t==I.ENTER&&(this._updateValueFromInput(),this._triggerChange())},_updateValueFromTimeSelector:function(){for(var e=this,t=z(e._value),n=``,r=this._columns[s],i,a,o,s=0;s<this._columns.length;s++){if(r=this._columns[s],a=t[r.name]+``,i=this._maskParts[s],s&&(n+=e.options.separator),!t[r.name]){n+=i.mask;continue}o=i.symbolsLength-a.length,n+=i.mask.replace(P.repeat(i.symbolsLength),`0`.repeat(o<0?0:o)+a)}e._maskedInput.val(n),e._old=n},_validation:function(){var t=this,r=t.element;t._validationIcon=e(n.ui.icon({icon:`exclamation-circle`,iconClass:`k-input-validation-icon k-hidden`})).insertAfter(r)},_addInvalidState:function(){this.wrapper.addClass(N),this._validationIcon.removeClass(`k-hidden`)},_removeInvalidState:function(){this.wrapper.removeClass(N),this._validationIcon.addClass(`k-hidden`)},_updateValueFromInput:function(){for(var e=this._maskedInput.val(),t={},r=!0,i,a,o,s=0;s<this._columns.length;s++)if(i=this._columns[s],a=this._maskParts[s],o=e.substring(a.numberStart,a.numberEnd).replace(/_/g,``),o=n.parseInt(o||0),o>=i.min&&o<=i.max)t[i.name]=o;else{r=!1;break}r?(this._value=R(t),this.element.val(this._value||``),this._timeSelector._value=this._value,this._removeInvalidState()):this._addInvalidState()},_paste:function(e){this._isPasted=!0,this._pasted=(e.clipboardData||e.originalEvent.clipboardData).getData(`Text`);var t,n=F(this._maskedInput);this._maskedInput.val().length==n[1]&&!n[0]?this._replaceEntire=!0:(t=this._getEmptyPart(n[0]),this._pasted=this._pasted.substring(0,t.match(/_/g).length))},_inputHandler:function(){if(n._activeElement()===this._maskedInput[0]){var e=this,t=e._old,r=e.options.separator,i=e._maskedInput[0].value,a=F(e._maskedInput)[0],o=t.length-i.length,s=e._isPasted?e._pasted:i.substring(a-1,a),c=/\d/.test(s),l,u,d,f,p,m,h,g,_;if(e._isPasted&&e._replaceEntire&&c){e._old=e._fillParts(parseInt(s)),e._maskedInput.val(e._old),e._selectNearestSection(0),e._isPasted=e._replaceEntire=!1;return}if(e._isPasted&&(o=0),e._isPasted=!1,s===r&&!e._backward){e._maskedInput.val(e._old),e._switchPart({caret:a,next:!0});return}if(!i&&e._backward){e._old=e._emtpyMask,e._maskedInput.val(e._old),e._selectNearestSection(a);return}if(!c&&!e._backward){e._maskedInput.val(e._old),e._selectNearestSection(a);return}if(!o||o>0){if(u=i.substring(a,i.length),d=i.substring(0,a),f=e._emtpyMask.substring(d.length,t.indexOf(u)),h=d+f+u,g=e._getPartValue(e._old,a),_=e._old.indexOf(r,e._old.indexOf(g)+1),e._backward){if(f.split(r).length>1)e._old=this._clearParts(h,a,a+f.length);else{if(p=this._getEmptyPart(a),p==g){e._maskedInput.val(e._old),e._switchPart({caret:a});return}e._old=e._replacePart(h,p,a)}e._maskedInput.val(e._old),e._selectNearestSection(a);return}if(_<0&&g.indexOf(P)===-1&&!e._canUpdateLast){e._maskedInput.val(e._old),e._selectNearestSection(a);return}c&&(l=e._updatePart(g,s),m=l[l.search(/[0-9]/)]===`0`,h=e._replacePart(h,l,a),e._maskedInput.val(h),_>0&&!m?e._selectNearestSection(_+1,!0):e._selectNearestSection(a),e._canUpdateLast=!(_<0&&!m)),e._old=h}else o<0&&(e._maskedInput.val(e._old),e._selectNearestSection(e._old.length-1))}}});n.cssProperties.registerPrefix(`TimeDurationPicker`,`k-input-`),n.cssProperties.registerValues(`TimeDurationPicker`,[{prop:`rounded`,values:n.cssProperties.roundedValues.concat([[`full`,`full`]])}]),r.plugin(V)})(window.kendo.jQuery);var i=kendo;e.__meta__=r,e.default=i}); //# sourceMappingURL=kendo.timedurationpicker.min.js.map