@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) • 6.02 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2026 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"});require("@progress/kendo-date-math");const f=require("../views/common/utils.js"),D=require("@progress/kendo-react-common"),I=require("@progress/kendo-data-query"),x=e=>e[0],F=e=>e[e.length-1],A=e=>{const r=new Set;return e.forEach(n=>{r.add(n.field)}),r.size===e.length};function S(e,r,n,o,t="all day"){const s={skeleton:"yMMMMEEEEdhm"},i={skeleton:"yMMMMEEEEd"},l="t",u=r.getFullYear()===n.getFullYear()&&r.getMonth()===n.getMonth()&&r.getDate()===n.getDate();if(o){const c=n.getHours()===0&&n.getMinutes()===0&&n.getSeconds()===0&&n.getTime()-r.getTime()===864e5;return u||c?`${e.formatDate(r,i)} (${t})`:`${e.formatDate(r,i)} to ${e.formatDate(n,i)} (${t})`}return u?`${e.formatDate(r,s)}–${e.formatDate(n,l)}`:`${e.formatDate(r,s)}-${e.formatDate(n,s)}`}const M=(e,r,n,o=0)=>{if(o===n)return null;let t=null;const s=document.elementFromPoint(e,r);if(!s)return t;if(s.getAttribute("data-slot")==="true")return s;const l=s.style.pointerEvents;return s.style.pointerEvents="none",t=M(e,r,n,o+1),s.style.pointerEvents=l,t},d=(e,r)=>D.getter(r)(e),v=(e,r,n)=>{if(r)return D.setter(r)(e,n)},R=e=>e!=null;function H(e){return new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()))}const $=(e,r,n)=>{const o=h(e,r)?d(e,r.id):d(e,r.recurrenceId);return n.find(t=>d(t,r.id)===o)},h=(e,r)=>{const n=d(e,r.id),o=d(e,r.recurrenceId),t=d(e,r.recurrenceRule);return!!(n&&t&&o==null)},m=(e,r)=>Math.max(e.getTime(),r.getTime()),y=(e,r)=>Math.min(e.getTime(),r.getTime()),p=(e,r,n,o,t=!1)=>t?m(r,o)-y(e,n)<=r.getTime()-e.getTime()+(o.getTime()-n.getTime()):m(r,o)-y(e,n)<r.getTime()-e.getTime()+(o.getTime()-n.getTime()),T={id:"id",start:"start",startTimezone:"startTimezone",originalStart:"originalStart",end:"end",endTimezone:"endTimezone",isAllDay:"isAllDay",title:"title",description:"description",recurrenceRule:"recurrenceRule",recurrenceId:"recurrenceId",recurrenceExceptions:"recurrenceExceptions"},N=e=>({fields:{...T,...e}}),O=(e,r,n)=>(r.getHours()<e.getHours()||r.getHours()===e.getHours()&&r.getMinutes()<=e.getMinutes())&&(e.getHours()<n.getHours()||n.getHours()===e.getHours()&&e.getMinutes()<n.getMinutes()),P=(e,r,n)=>r<n?r<=e&&e<=n:e<=n||r<=e,k=(e,r)=>{const n=f.toGroupResources(e,r),o=f.toFlatGroupResources(n);return o.length===1?[{index:0,resources:(r||[]).reduce((t,s)=>[...t,...s.data.map(i=>({...i,field:s.field,valueField:s.valueField,colorField:s.colorField,multiple:s.multiple}))],[])}]:o.map((t,s)=>({index:s,resources:t}))},E=e=>e==null,G=e=>E(e)||e.trim&&e.trim().length===0,g=e=>{let r=0;const n=e.slice();return n.sort((o,t)=>o-t).forEach((o,t)=>{n[t]===t&&(r=t+1)}),r},_=(e,r,n,o=!1)=>{let t;return n.forEach(s=>{const i=[];r.sort((u,c)=>u.props.start.getTime()-c.props.start.getTime()).forEach(u=>{if((o||u.props.isAllDay===s.current.props.isAllDay)&&u.props.range.index===s.current.props.range.index&&u.props.group.index===s.current.props.group.index&&p(u.props.start,u.props.end,s.current.props.start,s.current.props.end)){const a=g(i);u===e&&t===void 0&&(t=a),i.splice(a,0,a)}})}),t},b=(e,r)=>{const n=new Set;return r.forEach(t=>{t._order!==void 0&&t._order!==null&&n.add(t._order)}),g(Array.from(n))},z=(e,r,n=!1)=>{e.forEach(t=>{t.order=null}),r.forEach(t=>t.items.splice(0,t.items.length));const o=[...e].sort((t,s)=>t.start.getTime()-s.start.getTime());r.forEach(t=>{const s=[];o.forEach(i=>{if((n||i.isAllDay===t.isAllDay)&&i.range.index===t.range.index&&(i.range.isAllDay===void 0||t.range.isAllDay===void 0||i.range.isAllDay===t.range.isAllDay)&&i.group.index===t.group.index&&p(i.start,i.end,t.start,t.end)){if(i.order!==null&&i.order!==void 0)s.includes(i.order)||(s.push(i.order),s.sort((u,c)=>u-c));else{const u=g(s);i.order=u,s.push(u),s.sort((c,a)=>c-a)}t.items.push(i)}})})},q=(e,r,n=!1)=>{e.forEach(o=>o.slots.splice(0,o.slots.length)),e.forEach(o=>{r.forEach(t=>{(n||o.isAllDay===t.isAllDay)&&o.range.index===t.range.index&&(o.range.isAllDay===void 0||t.range.isAllDay===void 0||o.range.isAllDay===t.range.isAllDay)&&o.group.index===t.group.index&&p(o.start,o.end,t.start,t.end)&&o.slots.push(t)})})},B=(...e)=>{},C=e=>{const r=e.props.items.find(n=>n.order===0)||e.props.items[0];return r&&r._ref.current},w=(e,r,n=!1,o=!1)=>{const t=e.current;if(!t||!r)return null;const s=r.filter(c=>c.current!==null&&c.current.element!==null),i=I.orderBy(s,[{field:"current.props.group.index",dir:"asc"},{field:"current.props.range.index",dir:"asc"},n?{field:""}:{field:"current.props.isAllDay",dir:"desc"},{field:"current.props.start",dir:"asc"}]),l=i.findIndex(c=>c.current!==null&&!!(c.current.props.uid===t.props.uid&&(c.current.props.occurrenceId===void 0||c.current.props.occurrenceId===t.props.occurrenceId)&&c.current.props.group.index===t.props.group.index&&c.current.props.range.index===t.props.range.index&&(n||c.current.props.isAllDay===t.props.isAllDay)));return i[l+(o?-1:1)]},U=(e,r)=>(e.order||0)-(r.order||0);exports.calculateOrder=_;exports.calculateProportionalOrder=b;exports.defaultModelFields=T;exports.findFirstItem=C;exports.findMaster=$;exports.findMissing=g;exports.findNextItem=w;exports.first=x;exports.formatEventTime=S;exports.getField=d;exports.getModelFields=N;exports.intersects=p;exports.isBlank=E;exports.isGroupped=A;exports.isInDaysRange=P;exports.isInTimeRange=O;exports.isMaster=h;exports.isNullOrEmptyString=G;exports.isPresent=R;exports.last=F;exports.mapItemsToSlots=q;exports.mapSlotsToItems=z;exports.noop=B;exports.orderSort=U;exports.setField=v;exports.slotDive=M;exports.toSchedulerGroups=k;exports.toUTCDateTime=H;