{"version":3,"file":"SummaryList.stories.jsx","sourceRoot":"","sources":["../../../src/core/SummaryList/SummaryList.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Meta, StoryFn } from '@storybook/react';\nimport { useMemo, useState } from 'react';\n\nimport {\n  icons,\n  Modal,\n  SummaryList,\n  ViewAll,\n  createStringMatcher,\n  useModalManager\n} from '@pega/cosmos-react-core';\nimport type { OmitStrict, SummaryListProps } from '@pega/cosmos-react-core';\n\nimport { useMockListData } from './SummaryList.mocks';\n\nexport default {\n  title: 'Core/SummaryList',\n  component: SummaryList,\n  parameters: {\n    layout: 'centered'\n  },\n  args: {\n    name: 'People',\n    icon: 'users-solid',\n    count: 5,\n    loading: false,\n    showSecondary: true,\n    showVisual: true,\n    showActions: true,\n    noItems: false,\n    noItemsText: 'No items'\n  },\n  argTypes: {\n    name: { control: { type: 'text' } },\n    icon: { options: [...icons], control: { type: 'select', icons: true } },\n    count: { control: { type: 'number' } },\n    loading: { control: { type: 'boolean' } },\n    showSecondary: { control: { type: 'boolean' } },\n    showVisual: { control: { type: 'boolean' } },\n    showActions: { control: { type: 'boolean' } },\n    noItems: { control: { type: 'boolean' } },\n    noItemsText: { control: { type: 'text' } }\n  }\n} as Meta;\n\ninterface SummaryListStoryProps extends OmitStrict<SummaryListProps, 'items'> {\n  showSecondary?: boolean;\n  showVisual?: boolean;\n  showActions?: boolean;\n  noItems?: boolean;\n}\n\nexport const SummaryListDemo: StoryFn<SummaryListStoryProps> = (args: SummaryListStoryProps) => {\n  const { create: createModal } = useModalManager();\n  const [loading, setLoading] = useState(true);\n\n  const [items] = useMockListData(\n    () => {\n      setLoading(false);\n    },\n    { count: args.count }\n  );\n\n  const itemsToRender = items.map(item => {\n    return {\n      ...item,\n      secondary: args.showSecondary ? item.secondary : undefined,\n      visual: args.showVisual ? item.visual : undefined,\n      actions: args.showActions\n        ? ['Action 1', 'Action 2', 'Action 3'].map(text => ({\n            text,\n            id: text\n          }))\n        : undefined\n    };\n  });\n\n  return (\n    <SummaryList\n      name={args.name}\n      icon={args.icon}\n      count={args.loading || loading ? undefined : args.count}\n      items={args.noItems ? [] : itemsToRender}\n      loading={args.loading || loading}\n      noItemsText={args.noItemsText}\n      actions={[\n        {\n          text: 'Add',\n          id: `${args.name}:addNew`,\n          icon: 'plus',\n          onClick() {\n            createModal(() => {\n              return (\n                <Modal heading={`Add new ${args.name}`}>\n                  {`Content for adding new ${args.name} goes here…`}\n                </Modal>\n              );\n            });\n          }\n        }\n      ]}\n    />\n  );\n};\n\nexport const SummaryListViewAll: StoryFn<SummaryListStoryProps> = (args: SummaryListStoryProps) => {\n  const SummaryListViewAllModal = ({\n    name,\n    count,\n    loading\n  }: OmitStrict<SummaryListProps, 'items'>) => {\n    const [search, setSearch] = useState('');\n    const [modalLoading, setModalLoading] = useState(true);\n\n    const [items] = useMockListData(\n      () => {\n        setModalLoading(false);\n      },\n      {\n        count\n      }\n    );\n\n    const itemsToRender = useMemo(() => {\n      if (search.trim()) {\n        const filterRegex = createStringMatcher(search, 'boundary');\n        return items.filter(({ primary }) => filterRegex.test(primary));\n      }\n\n      return items;\n    }, [items, search]);\n\n    return (\n      <Modal heading={args.name}>\n        <ViewAll\n          loading={loading || modalLoading}\n          items={itemsToRender}\n          actions={[\n            {\n              id: 'addNew',\n              text: `Add ${name}`\n            }\n          ]}\n          searchInputProps={{ onSearchChange: setSearch }}\n        />\n      </Modal>\n    );\n  };\n\n  const { create: createModal } = useModalManager();\n  const [loading, setLoading] = useState(true);\n\n  const [items] = useMockListData(\n    () => {\n      setLoading(false);\n    },\n    { count: 3 }\n  );\n\n  const itemsToRender = items.map(item => {\n    return {\n      ...item,\n      secondary: args.showSecondary ? item.secondary : undefined,\n      visual: args.showVisual ? item.visual : undefined,\n      actions: args.showActions\n        ? ['Action 1', 'Action 2', 'Action 3'].map(text => ({\n            text,\n            id: text\n          }))\n        : undefined\n    };\n  });\n\n  return (\n    <SummaryList\n      name={args.name}\n      icon={args.icon}\n      count={args.loading || loading ? undefined : args.count}\n      items={args.noItems ? [] : itemsToRender}\n      loading={args.loading || loading}\n      noItemsText={args.noItemsText}\n      actions={[\n        {\n          text: 'Add',\n          id: `${args.name}:addNew`,\n          icon: 'plus',\n          onClick() {\n            createModal(() => {\n              return (\n                <Modal heading={`Add new ${args.name}`}>\n                  {`Content for adding new ${args.name} goes here…`}\n                </Modal>\n              );\n            });\n          }\n        }\n      ]}\n      onViewAll={() => {\n        createModal(SummaryListViewAllModal, {\n          name: args.name,\n          count: args.count,\n          loading: args.loading\n        });\n      }}\n    />\n  );\n};\n"]}