{"version":3,"file":"MenuButton.stories.jsx","sourceRoot":"","sources":["../../../src/core/MenuButton/MenuButton.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Meta, StoryFn } from '@storybook/react';\nimport { useState, useMemo, useEffect } from 'react';\n\nimport { Avatar, Button, Flex, MenuButton, menuHelpers } from '@pega/cosmos-react-core';\nimport type { MenuButtonProps, MenuItemProps, MenuProps } from '@pega/cosmos-react-core';\n\nexport default {\n  title: 'Core/MenuButton',\n  component: MenuButton,\n  args: {\n    variant: 'secondary',\n    showIcon: true,\n    iconOnly: false,\n    showArrow: false,\n    showItemVisual: true,\n    showItemSecondary: true,\n    showItemCount: true\n  },\n  argTypes: {\n    text: { control: { type: 'text' } },\n    variant: {\n      options: ['primary', 'secondary', 'simple', 'link', 'text'],\n      control: { type: 'select' }\n    },\n    showIcon: { control: { type: 'boolean' } },\n    iconOnly: { control: { type: 'boolean' } },\n    showArrow: {\n      control: { type: 'boolean' },\n      if: { arg: 'iconOnly', truthy: true }\n    },\n    showItemVisual: { control: { type: 'boolean' } },\n    showItemSecondary: { control: { type: 'boolean' } },\n    showItemCount: { control: { type: 'boolean' } }\n  }\n} as Meta;\n\ntype MenuButtonStoryProps = MenuButtonProps & {\n  showIcon?: boolean;\n  showItemVisual?: boolean;\n  showItemSecondary?: boolean;\n  showItemCount?: boolean;\n  onItemClick?: () => void;\n};\n\nexport const MenuButtonAction: StoryFn<MenuButtonStoryProps> = (args: MenuButtonStoryProps) => {\n  const [items, setItems] = useState<MenuProps['items']>(() =>\n    Array.from({ length: 10 }, (_, i) => {\n      return {\n        id: `${i}`,\n        primary: `Item ${i + 1}`,\n        secondary: ['Meta A', 'Meta B', 'Meta C'],\n        items: i === 2 ? [{ id: 'sub', primary: 'SubItem' }] : undefined\n      };\n    })\n  );\n\n  const itemsToRender = useMemo(() => {\n    return menuHelpers.mapTree(items, item => {\n      return {\n        ...item,\n        visual: args.showItemVisual ? <Avatar name={item.primary} /> : undefined,\n        secondary: args.showItemSecondary ? item.secondary : undefined\n      };\n    });\n  }, [items, args.showItemVisual, args.showItemSecondary]);\n\n  useEffect(() => {\n    setItems(cur => {\n      return menuHelpers.mapTree(cur, item => {\n        return { ...item, count: args.showItemCount ? Math.ceil(Math.random() * 10) : undefined };\n      });\n    });\n  }, [args.showItemCount]);\n\n  return (\n    <MenuButton\n      text={args.text}\n      variant={args.variant}\n      icon={args.showIcon ? 'user-list-solid' : undefined}\n      iconOnly={args.iconOnly}\n      showArrow={args.showArrow}\n      menu={{\n        mode: 'action',\n        items: itemsToRender,\n        onItemClick: () => {}\n      }}\n    />\n  );\n};\n\nMenuButtonAction.args = {\n  text: 'Actions'\n};\n\nexport const MenuButtonSingleSelect: StoryFn<MenuButtonStoryProps> = (\n  args: MenuButtonStoryProps\n) => {\n  const [items, setItems] = useState<MenuProps['items']>(() =>\n    Array.from({ length: 10 }, (_, i) => {\n      return {\n        id: `${i}`,\n        primary: `Item ${i + 1}`,\n        secondary: ['Meta A', 'Meta B', 'Meta C'],\n        selected: false\n      };\n    })\n  );\n  const handleMenuItemClick = (id: MenuItemProps['id']) => {\n    setItems(cur => menuHelpers.toggleSelected(cur, id, 'single-select'));\n  };\n\n  const itemsToRender = useMemo(() => {\n    return menuHelpers.mapTree(items, item => {\n      return {\n        ...item,\n        visual: args.showItemVisual ? <Avatar name={item.primary} /> : undefined,\n        secondary: args.showItemSecondary ? item.secondary : undefined\n      };\n    });\n  }, [items, args.showItemVisual, args.showItemSecondary]);\n\n  const buttonText = useMemo(() => {\n    const selected = menuHelpers.getSelected(items)[0];\n    return selected ? selected.primary : args.text;\n  }, [items]);\n\n  useEffect(() => {\n    setItems(cur => {\n      return menuHelpers.mapTree(cur, item => {\n        return { ...item, count: args.showItemCount ? Math.ceil(Math.random() * 10) : undefined };\n      });\n    });\n  }, [args.showItemCount]);\n\n  return (\n    <MenuButton\n      text={buttonText}\n      variant={args.variant}\n      icon={args.showIcon ? 'user-list-solid' : undefined}\n      iconOnly={args.iconOnly}\n      showArrow={args.showArrow}\n      menu={{\n        mode: 'single-select',\n        items: itemsToRender,\n        onItemClick: handleMenuItemClick\n      }}\n    />\n  );\n};\n\nMenuButtonSingleSelect.args = {\n  text: 'Select an item'\n};\n\nexport const MenuButtonMultiSelect: StoryFn<MenuButtonStoryProps> = (\n  args: MenuButtonStoryProps\n) => {\n  const [items, setItems] = useState<MenuProps['items']>(() =>\n    Array.from({ length: 10 }, (_, i) => {\n      return {\n        id: `${i}`,\n        primary: `Item ${i + 1}`,\n        secondary: ['Meta A', 'Meta B', 'Meta C'],\n        selected: false\n      };\n    })\n  );\n\n  const handleMenuItemClick = (id: MenuItemProps['id']) => {\n    setItems(cur => menuHelpers.toggleSelected(cur, id, 'multi-select'));\n  };\n\n  const itemsToRender = useMemo(() => {\n    return menuHelpers.mapTree(items, item => {\n      return {\n        ...item,\n        visual: args.showItemVisual ? <Avatar name={item.primary} /> : undefined,\n        secondary: args.showItemSecondary ? item.secondary : undefined\n      };\n    });\n  }, [items, args.showItemVisual, args.showItemSecondary]);\n\n  const selectionCount = useMemo(() => menuHelpers.getSelected(items).length, [items]);\n\n  useEffect(() => {\n    setItems(cur => {\n      return menuHelpers.mapTree(cur, item => {\n        return { ...item, count: args.showItemCount ? Math.ceil(Math.random() * 10) : undefined };\n      });\n    });\n  }, [args.showItemCount]);\n\n  return (\n    <MenuButton\n      text={args.text}\n      variant={args.variant}\n      icon={args.showIcon ? 'user-list-solid' : undefined}\n      iconOnly={args.iconOnly}\n      showArrow={args.showArrow}\n      count={selectionCount}\n      menu={{\n        mode: 'multi-select',\n        items: itemsToRender,\n        onItemClick: handleMenuItemClick,\n        footer: (\n          <Flex container={{ justify: 'center' }}>\n            <Button\n              variant='link'\n              disabled={selectionCount <= 0}\n              onClick={() => {\n                setItems(cur => {\n                  return menuHelpers.mapTree(cur, item => {\n                    return {\n                      ...item,\n                      selected: false\n                    };\n                  });\n                });\n              }}\n            >\n              Clear\n            </Button>\n          </Flex>\n        )\n      }}\n    />\n  );\n};\n\nMenuButtonMultiSelect.args = {\n  text: 'Select items'\n};\n\nexport const MenuButtonDisabledItems: StoryFn<MenuButtonStoryProps> = (\n  args: MenuButtonStoryProps\n) => {\n  const [items, setItems] = useState<MenuProps['items']>(() =>\n    Array.from({ length: 10 }, (_, i) => {\n      return {\n        id: `${i}`,\n        primary: `Item ${i + 1}`,\n        secondary: ['Meta A', 'Meta B', 'Meta C'],\n        selected: false\n      };\n    })\n  );\n\n  const itemsToRender = useMemo(() => {\n    return menuHelpers.mapTree(items, (item, index) => {\n      return {\n        ...item,\n        visual: args.showItemVisual ? <Avatar name={item.primary} /> : undefined,\n        secondary: args.showItemSecondary ? item.secondary : undefined,\n        disabled: (index + 1) % 2 === 0\n      };\n    });\n  }, [items, args.showItemVisual, args.showItemSecondary]);\n\n  useEffect(() => {\n    setItems(cur => {\n      return menuHelpers.mapTree(cur, item => {\n        return { ...item, count: args.showItemCount ? Math.ceil(Math.random() * 10) : undefined };\n      });\n    });\n  }, [args.showItemCount]);\n\n  return (\n    <MenuButton\n      text={args.text}\n      variant={args.variant}\n      icon={args.showIcon ? 'user-list-solid' : undefined}\n      iconOnly={args.iconOnly}\n      showArrow={args.showArrow}\n      menu={{\n        mode: 'action',\n        items: itemsToRender,\n        onItemClick: args.onItemClick\n      }}\n    />\n  );\n};\n\nMenuButtonDisabledItems.args = {\n  text: 'Actions'\n};\n"]}