@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) • 1.97 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 c=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 i=Object.getOwnPropertyDescriptor(e,l);Object.defineProperty(t,l,i.get?i:{enumerable:!0,get:()=>e[l]})}}return t.default=e,Object.freeze(t)}const f=B(c),O=(e,{timezone:t},{groups:l,ranges:i})=>{const o=[];return A.orderBy(e,[{field:"start",dir:"asc"},{field:"end",dir:"desc"},{field:"isAllDay",dir:"desc"}]).forEach(a=>{l.forEach(s=>{const d=l.length===1?j(a,s):s;u(a,d)&&i.forEach(n=>{if(m(a,n)){const p=f.createRef(),D=f.createRef(),y=n.end<a.end,R=a.start<n.start,b=r.ZonedDate.fromLocalDate(a.start,t),v=r.ZonedDate.fromLocalDate(a.end,t),I={...a,_ref:D,itemRef:p,head:y,tail:R,order:null,zonedStart:b,zonedEnd:v,group:d,range:n,slots:[],isRecurring:!!a.recurrenceRule,isException:!a.recurrenceRule&&a.recurrenceId!==null&&a.recurrenceId!==void 0,isAllDay:!!a.isAllDay};o.push(I)}})})}),o},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(i=>l[l.valueField]===i):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;