UNPKG

@progress/kendo-vue-buttons

Version:
52 lines (51 loc) 1.71 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ let u = /* @__PURE__ */ function(r) { return r.single = "single", r.multiple = "multiple", r.none = "none", r; }({}), n = /* @__PURE__ */ function(r) { return r.toggle = "toggle", r.remove = "remove", r; }({}); const o = (r, e) => { switch (e.selection) { case u.single: switch (e.type) { case n.toggle: { if (!Array.isArray(r) || r === null) return e.payload === r ? null : e.payload; throw new Error("State cannot be an array in single selection"); } case n.remove: return e.payload === r ? null : r; default: return r; } case u.multiple: switch (e.type) { case n.toggle: { if (Array.isArray(r)) return r.some((l) => l === e.payload) ? r.filter((l) => l !== e.payload) : [...r, e.payload]; if (r === null) return [e.payload]; throw new Error("State cannot be non-array in multiple selection"); } case n.remove: return Array.isArray(r) ? r.some((l) => l === e.payload) ? r.filter((l) => l !== e.payload) : [...r, e.payload] : r; default: return r; } case u.none: return null; default: return r; } }; export { n as SELECTION_ACTION, u as SELECTION_TYPE, o as selectionReducer };