UNPKG

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