UNPKG

@progress/kendo-vue-buttons

Version:
9 lines (8 loc) 1.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"});let u=function(e){return e.single="single",e.multiple="multiple",e.none="none",e}({}),n=function(e){return e.toggle="toggle",e.remove="remove",e}({});const o=(e,r)=>{switch(r.selection){case u.single:switch(r.type){case n.toggle:{if(!Array.isArray(e)||e===null)return r.payload===e?null:r.payload;throw new Error("State cannot be an array in single selection")}case n.remove:return r.payload===e?null:e;default:return e}case u.multiple:switch(r.type){case n.toggle:{if(Array.isArray(e))return e.some(l=>l===r.payload)?e.filter(l=>l!==r.payload):[...e,r.payload];if(e===null)return[r.payload];throw new Error("State cannot be non-array in multiple selection")}case n.remove:return Array.isArray(e)?e.some(l=>l===r.payload)?e.filter(l=>l!==r.payload):[...e,r.payload]:e;default:return e}case u.none:return null;default:return e}};exports.SELECTION_ACTION=n;exports.SELECTION_TYPE=u;exports.selectionReducer=o;