@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) • 3.43 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 x=require("react"),z=require("react-dom"),A=require("@progress/kendo-react-common"),R=require("@progress/kendo-react-buttons"),N=require("@progress/kendo-react-form"),D=require("@progress/kendo-react-dialogs"),H=require("@progress/kendo-react-intl"),K=require("../editors/SchedulerFormEditor.js"),a=require("../messages/index.js"),E=require("@progress/kendo-svg-icons"),U=require("../context/SchedulerContext.js");function F(r){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const s in r)if(s!=="default"){const l=Object.getOwnPropertyDescriptor(r,s);Object.defineProperty(c,s,l.get?l:{enumerable:!0,get:()=>r[s]})}}return c.default=r,Object.freeze(c)}const e=F(x),W=F(z),y=e.forwardRef((r,c)=>{const{onCancel:s,onClose:l,onSubmit:u,editor:I,dialog:O=b.dialog,validator:C=b.validator,...T}=r,d=e.useRef(null);e.useImperativeHandle(d,()=>({props:r})),e.useImperativeHandle(c,()=>d.current);const i=H.useLocalization(),n=U.useSchedulerFieldsContext(),f=e.useMemo(()=>i.toLanguageString(a.editorValidationRequired,a.messages[a.editorValidationRequired]),[i]),k=e.useMemo(()=>i.toLanguageString(a.editorValidationEnd,a.messages[a.editorValidationEnd]),[i]),p=e.useMemo(()=>i.toLanguageString(a.editorSave,a.messages[a.editorSave]),[i]),L=e.useMemo(()=>i.toLanguageString(a.editorCancel,a.messages[a.editorCancel]),[i]),V=e.useMemo(()=>i.toLanguageString(a.editorTitle,a.messages[a.editorTitle]),[i]),M=e.useMemo(()=>i.toLanguageString(a.editorValidationStart,a.messages[a.editorValidationStart]),[i]),B=e.useCallback(t=>{s&&s.call(void 0,{value:null,syntheticEvent:t,target:d.current})},[s]),j=e.useCallback(({syntheticEvent:t})=>{l&&l.call(void 0,{value:null,syntheticEvent:t,target:d.current})},[l]),_=e.useCallback((t,o)=>{u&&u.call(void 0,{value:t,syntheticEvent:o,target:d.current})},[u]),h=e.useCallback((t,o)=>t&&o(n.end)&&t.getTime()>o(n.end).getTime()?M:void 0,[n,M]),q=e.useCallback((t,o)=>t&&o(n.start)&&t.getTime()<o(n.start).getTime()?k:void 0,[n,k]),g=e.useCallback(t=>t?void 0:f,[f]),P=e.useCallback((t,o)=>{const m={};m[n.start]=[g(o(n.start)),h(o(n.start),o)].filter(Boolean).reduce((S,v)=>S||v,""),m[n.end]=[g(o(n.start)),q(o(n.start),o)].filter(Boolean).reduce((S,v)=>S||v,"");const w=C(t,o);return{...m,...w}},[q,n.end,n.start,g,h,C]);return A.canUseDOM?W.createPortal(e.createElement(N.Form,{initialValues:r.dataItem,onSubmit:_,validator:P,render:t=>e.createElement(O,{title:V,minWidth:400,onClose:j,className:"k-scheduler-edit-dialog"},e.createElement(K.SchedulerFormEditor,{...t,as:I}),e.createElement(D.DialogActionsBar,{layout:"start"},e.createElement(R.Button,{themeColor:"primary",disabled:!t.allowSubmit,onClick:t.onSubmit,icon:"save",svgIcon:E.saveIcon},p),e.createElement(R.Button,{onClick:B,icon:"cancel",svgIcon:E.cancelIcon},L))),...T}),document&&document.body):null}),b={dialog:D.Dialog,validator:()=>({})};y.displayName="KendoReactSchedulerForm";exports.SchedulerForm=y;exports.schedulerFormDefaultProps=b;