@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.76 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 i=require("react"),u=require("../utils/index.js");function f(e){const E=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const S=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(E,r,S.get?S:{enumerable:!0,get:()=>e[r]})}}return E.default=e,Object.freeze(E)}const n=f(i);var c=(e=>(e.select="ITEMS_SELECT_SELECT",e.selectNext="ITEMS_SELECT_SELECT_NEXT",e.selectPrev="ITEMS_SELECT_SELECT_PREV",e.reset="ITEMS_SELECT_RESET",e.add="ITEMS_SELECT_ADD",e.remove="ITEMS_SELECT_REMOVE",e))(c||{});const T=e=>{const[E,r]=n.useState([]),S=n.useCallback((t,l)=>{switch(t.type){case"ITEMS_SELECT_SELECT":if(!t.item)return;r([t.item]);break;case"ITEMS_SELECT_SELECT_NEXT":{if(!t.item||!t.item.current||!e)return;const s=u.findNextItem(t.item,e,t.ignoreIsAllDay,!1);s&&(l.preventDefault(),r([s]));break}case"ITEMS_SELECT_SELECT_PREV":{if(!t.item||!t.item.current||!e)return;const s=u.findNextItem(t.item,e,t.ignoreIsAllDay,!0);s&&(l.preventDefault(),r([s]));break}case"ITEMS_SELECT_RESET":r([]);break;case"ITEMS_SELECT_ADD":if(!t.item)return;E.some(s=>s===t.item)||r([...E,t.item]);break;case"ITEMS_SELECT_REMOVE":if(!t.item)return;r([...E.filter(s=>s!==t.item)]);break}},[e,E]);return[E,S]};exports.ITEMS_SELECT_ACTION=c;exports.useItemsSelection=T;