UNPKG

@progress/kendo-vue-dateinputs

Version:
9 lines (8 loc) 3.11 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"),y=require("../models/SelectionRange.js"),c=require("../../utils.js"),O=[[]],Y=4,V=3,m={[o.Action.Left]:i=>r.addYears(i,-1),[o.Action.Up]:i=>r.addYears(i,-4),[o.Action.Right]:i=>r.addYears(i,1),[o.Action.Down]:i=>r.addYears(i,4),[o.Action.PrevView]:i=>r.addDecades(i,-1),[o.Action.NextView]:i=>r.addDecades(i,1),[o.Action.FirstInView]:i=>r.firstYearOfDecade(i),[o.Action.LastInView]:i=>r.lastYearOfDecade(i)};class v{addToDate(e,t){return r.addDecades(e,t)}datesList(e,t){return c.range(0,t).map(a=>r.addDecades(r.firstYearOfDecade(e),a))}data(e){const{cellUID:t,focusedDate:a,isActiveView:u,max:s,min:l,selectedDate:d,selectionRange:g=y.EMPTY_SELECTIONRANGE,viewDate:f}=e;if(!f)return O;const A=c.range(0,Y),h=r.firstYearOfDecade(f),S=r.lastYearOfDecade(f),w=c.getToday();return c.range(0,V).map(F=>{const R=r.addYears(h,F*Y);return A.map(T=>{const n=this.normalize(r.addYears(R,T),l,s);if(!this.isInSameView(n,S))return null;const E=this.isEqual(n,g.start),I=this.isEqual(n,g.end),D=!E&&!I&&c.isInSelectionRange(n,g),q=u&&(Array.isArray(d)?this.isSelectedFromArray(n,d,l,s):c.isInRange(d,l,s)&&this.isEqual(n,d));return{formattedValue:this.value(n),id:`${t}${n.getTime()}`,isFocused:this.isEqual(n,a),isSelected:q,isWeekend:!1,isInRange:c.isInRange(n,l,s),isRangeStart:E,isRangeMid:D,isRangeEnd:I,isRangeSplitEnd:D&&this.isEqual(n,S),isRangeSplitStart:D&&this.isEqual(n,h),isToday:this.isEqual(n,w),title:this.cellTitle(n),value:n}})})}isSelectedFromArray(e,t,a,u){let s=!1;return t.forEach(l=>{c.isInRange(e,a,u)&&this.isEqual(e,l)&&(s=!0)}),s}isEqual(e,t){return!e||!t?!1:e.getFullYear()===t.getFullYear()}isInArray(e,t){if(!t.length)return!1;const a=e.getFullYear();return t[0].getFullYear()<=a&&a<=t[t.length-1].getFullYear()+9}isInRange(e,t,a){const u=e.getFullYear(),s=!t||t.getFullYear()<=u,l=!a||u<=a.getFullYear();return s&&l}isRangeStart(e){return e.getFullYear()%100===0}isInSameView(e,t){return r.durationInDecades(e,t)===0}move(e,t){const a=m[t];return a?a(e):e}cellTitle(e){return e.getFullYear().toString()}navigationTitle(e){return e?r.firstYearOfDecade(e).getFullYear().toString():""}title(e){return e?`${r.firstYearOfDecade(e).getFullYear()} - ${r.lastYearOfDecade(e).getFullYear()}`:""}rowLength(e){return Y}skip(e,t){return r.durationInDecades(t,e)}total(e,t){return r.durationInDecades(e,t)+1}value(e){return e?e.getFullYear().toString():""}viewDate(e,t,a=1){return r.durationInDecades(e,t)<a?r.addDecades(e,-1):e}normalize(e,t,a){return e<t&&this.isEqual(e,t)?r.cloneDate(t):e>a&&this.isEqual(e,a)?r.cloneDate(a):e}}exports.DecadeViewService=v;