| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- /*!
 
-  * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
 
-  * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
 
-  * v1.0.0-beta.82
 
-  */
 
- import { forceUpdate } from "@stencil/core";
 
- import { SLOTS as ACTION_MENU_SLOTS } from "../action-menu/resources";
 
- import { SLOTS as ACTION_GROUP_SLOTS } from "../action-group/resources";
 
- export const overflowActionsDebounceInMs = 150;
 
- const groupBufferHeight = 2;
 
- const getMaxActionCount = ({ height, actionHeight, groupCount }) => {
 
-   return Math.floor((height - groupCount * groupBufferHeight) / actionHeight);
 
- };
 
- export const getOverflowCount = ({ actionCount, actionHeight, height, groupCount }) => {
 
-   return Math.max(actionCount - getMaxActionCount({ height, actionHeight, groupCount }), 0);
 
- };
 
- export const queryActions = (el) => {
 
-   return Array.from(el.querySelectorAll("calcite-action")).filter((action) => action.closest("calcite-action-menu") ? action.slot === ACTION_MENU_SLOTS.trigger : true);
 
- };
 
- export const overflowActions = ({ actionGroups, expanded, overflowCount }) => {
 
-   let needToSlotCount = overflowCount;
 
-   actionGroups.reverse().forEach((group) => {
 
-     let slottedWithinGroupCount = 0;
 
-     const groupActions = queryActions(group).reverse();
 
-     groupActions.forEach((groupAction) => {
 
-       if (groupAction.slot === ACTION_GROUP_SLOTS.menuActions) {
 
-         groupAction.removeAttribute("slot");
 
-         groupAction.textEnabled = expanded;
 
-       }
 
-     });
 
-     if (needToSlotCount > 0) {
 
-       groupActions.some((groupAction) => {
 
-         const unslottedActions = groupActions.filter((action) => !action.slot);
 
-         if (unslottedActions.length > 1 && groupActions.length > 2 && !groupAction.closest("calcite-action-menu")) {
 
-           groupAction.textEnabled = true;
 
-           groupAction.setAttribute("slot", ACTION_GROUP_SLOTS.menuActions);
 
-           slottedWithinGroupCount++;
 
-           if (slottedWithinGroupCount > 1) {
 
-             needToSlotCount--;
 
-           }
 
-         }
 
-         return needToSlotCount < 1;
 
-       });
 
-     }
 
-     forceUpdate(group);
 
-   });
 
- };
 
 
  |