@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 © 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 me=require("react"),l=require("@progress/kendo-react-common"),_=require("@progress/kendo-react-intl"),F=require("@progress/kendo-svg-icons"),K=require("../messages/index.js"),ke=require("../utils/index.js"),be=require("../hooks/useSchedulerItem.js"),fe=require("../hooks/useEditable.js");function ve(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const c=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(o,r,c.get?c:{enumerable:!0,get:()=>e[r]})}}return o.default=e,Object.freeze(o)}const t=ve(me),$=t.forwardRef((e,o)=>{const{onFocus:r,onBlur:c,onMouseDown:k,onClick:b,onMouseUp:f,onMouseOut:v,onMouseOver:z,onMouseEnter:h,onMouseLeave:C,onDoubleClick:D,onRemoveClick:R,onKeyUp:E,onKeyDown:M,onKeyPress:y,onPress:I,onDrag:S,onRelease:N,onResizePress:P,onResizeEndDrag:x,onResizeRelease:H,onResizeStartDrag:q}=e,{item:a,element:O}=be.useSchedulerItem(e,o),w=l.useDir(O),L=t.useRef(null),U=t.useRef(null),j=t.useRef(null),A=t.useRef(null),s=fe.useEditable(e.editable),u=_.useInternationalization(),T=_.useLocalization().toLanguageString(K.deleteTitle,K.messages[K.deleteTitle]),d=e.group.resources.find(n=>!!(n.colorField&&n[n.colorField]!==""&&n[n.colorField]!==void 0)),i=d&&d.colorField&&d[d.colorField],G=e.tabIndex!==void 0?e.tabIndex===null?void 0:e.tabIndex:e.selected?0:-1,J=t.useMemo(()=>l.classNames({"k-event":!e.resizeHint,"k-selected":e.selected&&s.select,"k-event-drag-hint":e.dragHint,"k-scheduler-marquee":e.resizeHint,"k-marquee":e.resizeHint,"k-first":e.resizeHint&&!e.tail,"k-last":e.resizeHint&&!e.head},e.className),[e.resizeHint,e.selected,e.dragHint,e.tail,e.head,e.className,s.select]),Q=t.useMemo(()=>`${ke.formatEventTime(u,e.zonedStart,e.zonedEnd,e.isAllDay)}, ${e.title}`,[u,e.isAllDay,e.title,e.zonedEnd,e.zonedStart]),V=t.useMemo(()=>({cursor:"pointer",userSelect:"none",borderColor:e.resizeHint?void 0:i,backgroundColor:e.resizeHint?void 0:i,touchAction:"none",...e.style}),[i,e.style,e.resizeHint]),X=t.useCallback(n=>{r&&r.call(void 0,{syntheticEvent:n,target:a.current})},[r,a]),Y=t.useCallback(n=>{c&&c.call(void 0,{syntheticEvent:n,target:a.current})},[c,a]),Z=t.useCallback(n=>{k&&k.call(void 0,{syntheticEvent:n,target:a.current})},[k,a]),p=t.useCallback(n=>{b&&b.call(void 0,{syntheticEvent:n,target:a.current})},[b,a]),ee=t.useCallback(n=>{f&&f.call(void 0,{syntheticEvent:n,target:a.current})},[f,a]),te=t.useCallback(n=>{z&&z.call(void 0,{syntheticEvent:n,target:a.current})},[z,a]),ne=t.useCallback(n=>{v&&v.call(void 0,{syntheticEvent:n,target:a.current})},[v,a]),ae=t.useCallback(n=>{h&&h.call(void 0,{syntheticEvent:n,target:a.current})},[h,a]),le=t.useCallback(n=>{C&&C.call(void 0,{syntheticEvent:n,target:a.current})},[C,a]),re=t.useCallback(n=>{D&&D.call(void 0,{syntheticEvent:n,target:a.current})},[D,a]),ce=t.useCallback(n=>{R&&R.call(void 0,{syntheticEvent:n,target:a.current})},[R,a]),oe=t.useCallback(n=>{M&&M.call(void 0,{syntheticEvent:n,target:a.current})},[M,a]),se=t.useCallback(n=>{y&&y.call(void 0,{syntheticEvent:n,target:a.current})},[y,a]),ie=t.useCallback(n=>{E&&E.call(void 0,{syntheticEvent:n,target:a.current})},[E,a]),ue=t.useCallback(n=>{I&&I.call(void 0,{dragEvent:n,target:a.current})},[I,a]),de=t.useCallback(n=>{S&&S.call(void 0,{dragEvent:n,target:a.current})},[S,a]),ge=t.useCallback(n=>{N&&N.call(void 0,{dragEvent:n,target:a.current})},[N,a]),g=t.useCallback(n=>{P&&P.call(void 0,{dragEvent:n,target:a.current})},[P,a]),B=t.useCallback(n=>{q&&q.call(void 0,{dragEvent:n,target:a.current})},[q,a]),W=t.useCallback(n=>{x&&x.call(void 0,{dragEvent:n,target:a.current})},[x,a]),m=t.useCallback(n=>{H&&H.call(void 0,{dragEvent:n,target:a.current})},[H,a]);return l.useDraggable(O,{onPress:ue,onDrag:de,onRelease:ge}),l.useDraggable(L,{onPress:g,onDrag:W,onRelease:m}),l.useDraggable(U,{onPress:g,onDrag:B,onRelease:m}),l.useDraggable(j,{onPress:g,onDrag:B,onRelease:m}),l.useDraggable(A,{onPress:g,onDrag:W,onRelease:m}),t.createElement("div",{ref:O,id:e.id,style:V,tabIndex:G,className:J,role:"button","aria-label":Q,onFocus:X,onBlur:Y,onMouseUp:ee,onMouseDown:Z,onClick:p,onMouseOver:te,onMouseOut:ne,onMouseEnter:ae,onMouseLeave:le,onDoubleClick:re,onKeyDown:oe,onKeyPress:se,onKeyUp:ie,"data-group-index":e.group.index,"data-range-index":e.range.index},e.children,!e.resizeHint&&t.createElement("span",{className:"k-event-actions"},s.remove&&t.createElement("a",{tabIndex:-1,"aria-hidden":"true",className:"k-link k-event-delete",title:T,"aria-label":T,onClick:ce},t.createElement(l.IconWrap,{name:"x",icon:F.xIcon})),e.head&&t.createElement(l.IconWrap,{name:w==="rtl"?"caret-alt-left":"caret-alt-right",icon:w==="rtl"?F.caretAltLeftIcon:F.caretAltRightIcon})),s.resize&&e.vertical&&t.createElement(t.Fragment,null,t.createElement("span",{className:"k-resize-handle k-resize-n",ref:j}),t.createElement("span",{className:"k-resize-handle k-resize-s",ref:A})),s.resize&&!e.vertical&&t.createElement(t.Fragment,null,t.createElement("span",{className:"k-resize-handle k-resize-w",ref:U}),t.createElement("span",{className:"k-resize-handle k-resize-e",ref:L})),e.resizeHint&&t.createElement(t.Fragment,null,t.createElement("div",{className:"k-marquee-color",style:{borderColor:i,backgroundColor:i}}),t.createElement("div",{className:"k-marquee-text"},!e.tail&&t.createElement("div",{className:"k-label-top"},u.formatDate(e.zonedStart,e.format)),!e.head&&t.createElement("div",{className:"k-label-bottom"},u.formatDate(e.zonedEnd,e.format)))))});$.displayName="KendoReactSchedulerItem";exports.SchedulerItem=$;