@progress/kendo-react-scheduler
Version:
React Scheduler brings the functionality of Outlook's Calendar to a single UI component. KendoReact Scheduler package
9 lines (8 loc) • 2.02 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const I=require("react"),h=require("../utils/index.js"),A=require("@progress/kendo-data-query"),r=require("@progress/kendo-date-math");function B(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const l in e)if(l!=="default"){const a=Object.getOwnPropertyDescriptor(e,l);Object.defineProperty(t,l,a.get?a:{enumerable:!0,get:()=>e[l]})}}return t.default=e,Object.freeze(t)}const f=B(I),O=(e,{timezone:t},{groups:l,ranges:a})=>{const n=[];return A.orderBy(e,[{field:"start",dir:"asc"},{field:"end",dir:"desc"},{field:"isAllDay",dir:"desc"},{field:"title",dir:"asc"},{field:"uid",dir:"asc"}]).forEach(i=>{l.forEach(o=>{const s=l.length===1?j(i,o):o;u(i,s)&&a.forEach(d=>{if(m(i,d)){const p=f.createRef(),D=f.createRef(),y=d.end<i.end,R=i.start<d.start,c=r.ZonedDate.fromLocalDate(i.start,t),b=r.ZonedDate.fromLocalDate(i.end,t),v={...i,_ref:D,itemRef:p,head:y,tail:R,order:null,zonedStart:c,zonedEnd:b,group:s,range:d,slots:[],isRecurring:!!i.recurrenceRule,isException:!i.recurrenceRule&&i.recurrenceId!==null&&i.recurrenceId!==void 0,isAllDay:!!i.isAllDay};n.push(v)}})})}),n},j=(e,t)=>({index:0,resources:t.resources.filter(l=>E(e,l))}),E=(e,t)=>t.multiple?(e.dataItem[t.field]||[]).some(l=>t[t.valueField]===l):e.dataItem[t.field]===t[t.valueField],u=(e,t)=>!t.resources.some(l=>l.multiple?!e.dataItem[l.field].some(a=>l[l.valueField]===a):e.dataItem[l.field]!==l[l.valueField]),m=(e,t)=>h.intersects(t.start,t.end,e.start,e.end)&&(t.isAllDay===void 0||!!e.isAllDay==!!t.isAllDay);exports.inGroup=u;exports.inRange=m;exports.toItems=O;