UNPKG

@progress/kendo-react-dateinputs

Version:

React DateInput is a perfect input component for handling quick and efficient date values. KendoReact Date Inputs package

9 lines (8 loc) 3.27 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("@progress/kendo-date-math"),o=require("../models/NavigationAction.js"),R=require("../models/SelectionRange.js"),u=require("../../utils.js"),T=[[]],E=4,q=3,V={[o.Action.Left]:n=>r.addDecades(n,-1),[o.Action.Up]:n=>r.addDecades(n,-5),[o.Action.Right]:n=>r.addDecades(n,1),[o.Action.Down]:n=>r.addDecades(n,5),[o.Action.PrevView]:n=>r.addCenturies(n,-1),[o.Action.NextView]:n=>r.addCenturies(n,1),[o.Action.FirstInView]:n=>r.firstDecadeOfCentury(n),[o.Action.LastInView]:n=>r.lastDecadeOfCentury(n)};class v{addToDate(e,t){return r.addCenturies(e,t)}datesList(e,t){return u.range(0,t).map(i=>r.addCenturies(e,i))}data(e){const{cellUID:t,focusedDate:i,isActiveView:c,max:a,min:l,selectedDate:d,selectionRange:f=R.EMPTY_SELECTIONRANGE,viewDate:g}=e;if(!g)return T;const h=u.range(0,E),D=r.firstDecadeOfCentury(g),S=r.lastDecadeOfCentury(g),A=u.getToday();return u.range(0,q).map(I=>{const F=r.addDecades(D,I*E);return h.map(O=>{const s=this.normalize(r.addDecades(F,O),l,a),y=this.isEqual(s,f.start),C=this.isEqual(s,f.end),Y=!y&&!C&&u.isInSelectionRange(s,f),w=c&&(Array.isArray(d)?this.isSelectedFromArray(s,d,l,a):u.isInRange(d,l,a)&&this.isEqual(s,d));return u.intersects(s,D,S)?{formattedValue:this.value(s),id:`${t}${s.getTime()}`,isFocused:this.isEqual(s,i),isSelected:w,isWeekend:!1,isInRange:u.isInRange(s,l,a),isRangeStart:y,isRangeMid:Y,isRangeEnd:C,isRangeSplitEnd:Y&&this.isEqual(s,S),isRangeSplitStart:Y&&this.isEqual(s,D),isToday:this.isEqual(s,A),title:this.cellTitle(s),value:s}:null})})}isSelectedFromArray(e,t,i,c){let a=!1;return t.forEach(l=>{u.isInRange(e,i,c)&&this.isEqual(e,l)&&(a=!0)}),a}isEqual(e,t){return!e||!t?!1:r.firstYearOfDecade(e).getFullYear()===r.firstYearOfDecade(t).getFullYear()}isInArray(e,t){if(!t.length)return!1;const i=e.getFullYear();return t[0].getFullYear()<=i&&i<=t[t.length-1].getFullYear()+99}isInRange(e,t,i){const c=r.firstYearOfDecade(e).getFullYear(),a=!t||r.firstYearOfDecade(t).getFullYear()<=c,l=!i||c<=r.firstYearOfDecade(i).getFullYear();return a&&l}isInSameView(e,t){return r.durationInCenturies(e,t)===0}isRangeStart(e){return e.getFullYear()%1e3===0}move(e,t){const i=V[t];return i?i(e):e}cellTitle(e){return r.firstYearOfDecade(e).getFullYear().toString()}navigationTitle(e){return e?r.firstDecadeOfCentury(e).getFullYear().toString():""}title(e){return e?`${r.firstDecadeOfCentury(e).getFullYear()} - ${r.lastDecadeOfCentury(e).getFullYear()}`:""}rowLength(e){return E}skip(e,t){return r.durationInCenturies(t,e)}total(e,t){return r.durationInCenturies(e,t)+1}value(e){return e?r.firstYearOfDecade(e).getFullYear().toString():""}viewDate(e,t,i=1){return r.durationInCenturies(e,t)<i?r.addCenturies(e,-1):e}normalize(e,t,i){return e<t&&this.isEqual(e,t)?r.cloneDate(t):e>i&&this.isEqual(e,i)?r.cloneDate(i):e}}exports.CenturyViewService=v;