@pega/cosmos-react-demos 5.0.0-dev.13.1 → 5.0.0-dev.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/jsx/core/Lightbox/Lightbox.mocks.d.ts +15 -8
  2. package/jsx/core/Lightbox/Lightbox.mocks.d.ts.map +1 -1
  3. package/jsx/core/Lightbox/Lightbox.mocks.js +62 -24
  4. package/jsx/core/Lightbox/Lightbox.mocks.js.map +1 -1
  5. package/jsx/core/Lightbox/Lightbox.stories.d.ts.map +1 -1
  6. package/jsx/core/Lightbox/Lightbox.stories.jsx +37 -22
  7. package/jsx/core/Lightbox/Lightbox.stories.jsx.map +1 -1
  8. package/jsx/social/Feed/Feed.stories.d.ts.map +1 -1
  9. package/jsx/social/Feed/Feed.stories.jsx +2 -0
  10. package/jsx/social/Feed/Feed.stories.jsx.map +1 -1
  11. package/jsx/work/ArticleList/ArticleBuddy.stories.d.ts.map +1 -1
  12. package/jsx/work/ArticleList/ArticleBuddy.stories.jsx +8 -1
  13. package/jsx/work/ArticleList/ArticleBuddy.stories.jsx.map +1 -1
  14. package/jsx/work/ArticleList/ArticleList.stories.d.ts.map +1 -1
  15. package/jsx/work/ArticleList/ArticleList.stories.jsx +7 -0
  16. package/jsx/work/ArticleList/ArticleList.stories.jsx.map +1 -1
  17. package/lib/core/Lightbox/Lightbox.mocks.d.ts +15 -8
  18. package/lib/core/Lightbox/Lightbox.mocks.d.ts.map +1 -1
  19. package/lib/core/Lightbox/Lightbox.mocks.js +64 -24
  20. package/lib/core/Lightbox/Lightbox.mocks.js.map +1 -1
  21. package/lib/core/Lightbox/Lightbox.stories.d.ts.map +1 -1
  22. package/lib/core/Lightbox/Lightbox.stories.js +36 -21
  23. package/lib/core/Lightbox/Lightbox.stories.js.map +1 -1
  24. package/lib/social/Feed/Feed.stories.d.ts.map +1 -1
  25. package/lib/social/Feed/Feed.stories.js +2 -0
  26. package/lib/social/Feed/Feed.stories.js.map +1 -1
  27. package/lib/work/ArticleList/ArticleBuddy.stories.d.ts.map +1 -1
  28. package/lib/work/ArticleList/ArticleBuddy.stories.js +8 -1
  29. package/lib/work/ArticleList/ArticleBuddy.stories.js.map +1 -1
  30. package/lib/work/ArticleList/ArticleList.stories.d.ts.map +1 -1
  31. package/lib/work/ArticleList/ArticleList.stories.js +7 -0
  32. package/lib/work/ArticleList/ArticleList.stories.js.map +1 -1
  33. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"ArticleList.stories.jsx","sourceRoot":"","sources":["../../../src/work/ArticleList/ArticleList.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\nimport type { ChangeEvent } from 'react';\nimport type { Meta, StoryFn } from '@storybook/react';\nimport { action } from '@storybook/addon-actions';\n\nimport { createUID, menuHelpers, registerIcon, escapeRegExp, HTML } from '@pega/cosmos-react-core';\nimport type {\n Action,\n MenuItemProps,\n MenuProps,\n SearchInputProps,\n OmitStrict\n} from '@pega/cosmos-react-core';\nimport * as thumbsUpSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/thumbs-up-solid.icon';\nimport * as thumbsDownSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/thumbs-down-solid.icon';\nimport * as bookOpen from '@pega/cosmos-react-core/lib/components/Icon/icons/book-open.icon';\nimport { ArticleList, ArticleSummary, ArticleListFilter } from '@pega/cosmos-react-work';\nimport type {\n ArticleSummaryProps,\n Articles,\n QuickFilter,\n ArticleBuddyProps,\n Reaction\n} from '@pega/cosmos-react-work';\n\nimport { suggestedMock, followedMock, searchMock, ArticleBuddyMockData } from './ArticleList.mocks';\n\nexport default {\n title: 'Work/ArticleList',\n component: ArticleList,\n subcomponents: { ArticleSummary, ArticleListFilter },\n parameters: {\n layout: 'fullscreen'\n }\n} as Meta;\n\nregisterIcon(thumbsUpSolidIcon, thumbsDownSolidIcon, bookOpen);\n\ninterface ArticleListDemoProps {\n isSuggestArticleAction: boolean;\n showAction: boolean;\n showHeader: boolean;\n showHeaderIcon: boolean;\n showQuickFilters: boolean;\n showCount: boolean;\n showResults: boolean;\n showLoadMore: boolean;\n}\n\ntype MockArticles = ArticleSummaryProps & {\n isLiked: boolean;\n isFollowed: boolean;\n};\n\ntype MockBuddyArticles = OmitStrict<\n ArticleBuddyProps,\n 'query' | 'loading' | 'onSubmit' | 'onClear' | 'feedback'\n>;\n\nexport const ArticleListDemo: StoryFn<ArticleListDemoProps> = (args: ArticleListDemoProps) => {\n const [searchVal, setSearchVal] = useState('');\n const [activeTab, setActiveTab] = useState('Suggested');\n const [loading, setLoading] = useState(false);\n const [categoryList, setCategoryList] = useState<MenuProps['items']>([]);\n const [sortBy, setSortBy] = useState<MenuProps['items']>([]);\n const [articles, setArticles] = useState<ArticleSummaryProps[]>([]);\n const [quickFilters, setQuickFilters] = useState<QuickFilter[]>([]);\n const [loadingMore, isSetLoadMore] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n const [filterCategoryValue, setFilterCategoryValue] = useState('');\n const [buddyContent, setBuddyContent] = useState<MockBuddyArticles>();\n const [buddyLoader, setBuddyLoader] = useState(false);\n const [commentVal, setCommentVal] = useState('');\n\n const selectedSortByOption = useMemo(() => menuHelpers.getSelected(sortBy)[0], [sortBy]);\n\n const selectSortByOption = useCallback((id: MenuItemProps['id']) => {\n setSortBy(cur => menuHelpers.selectItem(cur, id, 'single-select'));\n }, []);\n\n const selectedCategory = useMemo(() => {\n return menuHelpers.getSelected(categoryList).map(item => ({ text: item.primary, id: item.id }));\n }, [categoryList]);\n\n const categoryListToRender = useMemo(() => {\n return menuHelpers.mapTree(categoryList, item => ({\n ...item,\n selected: !!item.selected\n }));\n }, [categoryList]);\n\n const toggleItem = (id: MenuItemProps['id']) => {\n setCategoryList(cur => menuHelpers.toggleSelected(cur, id, 'multi-select'));\n };\n\n const onReaction: Required<ArticleSummaryProps>['feedback']['onReaction'] = (\n articleId,\n reaction\n ) => {\n setArticles(prevArticles => {\n const itemIndex = prevArticles.findIndex(article => article?.articleId === articleId);\n const updatedData = [...prevArticles];\n if (itemIndex !== -1) {\n const currentItemFeedback = updatedData[itemIndex].feedback;\n if (currentItemFeedback) {\n const likeValue = currentItemFeedback?.likes || 0;\n const dislikeValue = currentItemFeedback?.dislikes || 0;\n\n if (!reaction) {\n if (currentItemFeedback.reaction === 'liked') {\n currentItemFeedback.likes = likeValue - 1;\n } else {\n currentItemFeedback.dislikes = dislikeValue - 1;\n }\n currentItemFeedback.reaction = undefined;\n }\n\n if (reaction === 'liked') {\n if (currentItemFeedback?.reaction === 'disliked') {\n currentItemFeedback.dislikes = dislikeValue - 1;\n }\n\n currentItemFeedback.likes = likeValue + 1;\n currentItemFeedback.reaction = 'liked';\n }\n\n if (reaction === 'disliked') {\n if (currentItemFeedback.reaction === 'liked') {\n currentItemFeedback.likes = likeValue - 1;\n }\n currentItemFeedback.dislikes = dislikeValue + 1;\n currentItemFeedback.reaction = 'disliked';\n }\n }\n }\n\n return updatedData;\n });\n };\n\n const updateArticles = (mockArticles: MockArticles[]) => {\n const data = Object.values(mockArticles);\n return data.map(\n ({\n isLiked = false,\n isFollowed = false,\n articleId = '',\n title,\n href,\n abstract,\n meta,\n feedback,\n quickFilters: quickFilterTags\n }) => {\n const actionObj = [{ id: '1', text: 'Edit' }];\n if (isLiked) {\n actionObj.push({ id: '3', text: 'Dislike' });\n } else {\n actionObj.push({ id: '3', text: 'Like' });\n }\n if (isFollowed) {\n actionObj.push({ id: '4', text: 'Unfollow' });\n } else {\n actionObj.push({ id: '4', text: 'Follow' });\n }\n\n return {\n articleId,\n href,\n title,\n abstract,\n onTitleClick: action('onTitleClick'),\n primaryActions: actionObj,\n meta,\n feedback,\n quickFilters:\n args.showQuickFilters && quickFilterTags?.length\n ? quickFilterTags?.map(({ id, name }) => {\n return {\n id,\n name\n };\n })\n : []\n };\n }\n );\n };\n\n const fetchArticleContent: (activeTabName: string) => Promise<{\n articles: ArticleSummaryProps[];\n category: MenuProps['items'];\n sortBy: MenuProps['items'];\n }> = activeTabName => {\n return new Promise(resolve => {\n let activeTabContent: any = null;\n\n if (!activeTabName || activeTabName === 'Search') activeTabContent = { ...searchMock };\n else if (activeTabName === 'Suggested') activeTabContent = { ...suggestedMock };\n else if (activeTabName === 'Followed') activeTabContent = { ...followedMock };\n\n setTimeout(() => {\n if (activeTabContent) {\n resolve({\n articles: updateArticles(activeTabContent.articles),\n category: activeTabContent.category || [],\n sortBy: activeTabContent.sortBy || []\n });\n }\n }, 500);\n });\n };\n\n searchMock.articles = searchMock.articles.map(article => {\n return {\n ...article,\n feedback: {\n ...article.feedback,\n id: article.articleId,\n onReaction\n }\n };\n });\n\n suggestedMock.articles = suggestedMock.articles.map(article => {\n return {\n ...article,\n feedback: {\n ...article.feedback,\n id: article.articleId,\n onReaction\n }\n };\n });\n\n followedMock.articles = followedMock.articles.map(article => {\n return {\n ...article,\n feedback: {\n ...article.feedback,\n id: article.articleId,\n onReaction\n }\n };\n });\n\n const handleTabChange = (id: string) => {\n setArticles([]);\n setCategoryList([]);\n setLoading(true);\n fetchArticleContent(id).then(res => {\n setArticles(res.articles);\n setCategoryList(res.category);\n setSortBy(res.sortBy);\n setLoading(false);\n });\n\n setActiveTab(id);\n setSearchVal('');\n if (id !== 'Search') {\n setQuickFilters([]);\n }\n };\n\n useEffect(() => {\n setLoading(true);\n fetchArticleContent(activeTab).then(res => {\n setLoading(false);\n setArticles(res.articles);\n });\n }, [activeTab]);\n\n const filterRegex = useMemo(() => escapeRegExp(filterCategoryValue), [filterCategoryValue]);\n\n const categoryProps: Articles['category'] = {\n label: 'Category',\n placeholder: 'Select categories',\n onChange: e => {\n setFilterCategoryValue(e.target.value);\n },\n value: filterCategoryValue,\n mode: 'multi-select',\n selected: {\n items: selectedCategory\n },\n menu: {\n items: filterCategoryValue\n ? menuHelpers.flatten(categoryList).filter(({ primary }: MenuItemProps) => {\n return filterRegex.toLowerCase().includes(primary.toLowerCase());\n })\n : categoryListToRender,\n onItemClick: toggleItem\n }\n };\n\n const sortByProps: Articles['sortBy'] = {\n label: 'Sort by',\n placeholder: 'Select sort by',\n selected: selectedSortByOption\n ? {\n items: {\n id: selectedSortByOption.id,\n text: selectedSortByOption.primary\n }\n }\n : undefined,\n menu: {\n items: sortBy,\n onItemClick: selectSortByOption\n }\n };\n\n const searchOptions: SearchInputProps = {\n placeholder: 'Search article',\n filters: ['Help site 1', 'Help site 2', 'Help site 3'],\n value: searchVal,\n onSearchChange: (val: string) => {\n setSearchVal(val);\n },\n onFilterChange: (val: string) => {\n return val;\n }\n };\n\n const actionOptions = [\n {\n id: '1',\n text: 'Action 1',\n onClick: (id: string) => action('onClick')(`action ${id}`)\n },\n {\n id: '2',\n text: 'Action 2',\n onClick: (id: string) => action('onClick')(`action ${id}`)\n },\n {\n id: '3',\n text: 'Action 3',\n onClick: (id: string) => action('onClick')(`action ${id}`)\n }\n ];\n\n const suggestNewArticleAction: Action = {\n id: 'Suggest action',\n text: 'Suggest action',\n onClick: (id: string) => action('onClick')(id),\n icon: 'plus'\n };\n\n let actions;\n if (args.showAction) {\n if (args.isSuggestArticleAction) {\n actions = [suggestNewArticleAction];\n } else {\n actions = actionOptions;\n }\n }\n\n const handleClearClick = () => {\n setQuickFilters([]);\n setSearchVal('');\n setCategoryList(curr => {\n return curr?.map(categoryListItem => {\n return {\n ...categoryListItem,\n selected: false\n };\n });\n });\n setSortBy(curr => {\n return curr?.map(sortByListItem => {\n return {\n ...sortByListItem,\n selected: false\n };\n });\n });\n };\n\n let timeoutId: ReturnType<typeof setTimeout>;\n const stopTimeout = () => {\n clearTimeout(timeoutId);\n };\n\n const onLoadMore = useCallback(() => {\n if (!loading && !loadingMore && activeTab) {\n isSetLoadMore(true);\n setLoading(false);\n timeoutId = setTimeout(() => {\n isSetLoadMore(false);\n setLoading(false);\n setHasMore(true);\n setArticles(prevArticles => [\n ...prevArticles,\n {\n articleId: createUID(),\n title: 'Last article alert!!!',\n href: 'design.pega.com',\n abstract:\n 'Last article alert. This is the last article , hence the last index to be noted. This will be appended at the end of the list',\n meta: {\n category: 'Retail',\n publishedDate: '2023-04-06'\n },\n feedback: {\n articleId: createUID(),\n likes: 20,\n dislikes: 80,\n liked: true,\n disliked: false,\n onReaction: () => {}\n },\n isFollowed: false,\n isLiked: true,\n quickFilters: [\n { id: '1', name: 'insurance' },\n { id: '2', name: 'policy' }\n ]\n }\n ]);\n }, 3000);\n }\n }, [loading, loadingMore, activeTab]);\n\n useEffect(() => {\n return () => stopTimeout();\n }, []);\n\n const updateBuddyArticles = (mockBuddyArticle: MockBuddyArticles) => {\n const actionItems = [\n { id: '1', text: 'Share' },\n { id: '2', text: 'Copy' }\n ];\n\n return {\n title: mockBuddyArticle.title,\n content: mockBuddyArticle.content,\n references: mockBuddyArticle.references,\n disclaimer: mockBuddyArticle.disclaimer,\n actions: actionItems\n };\n };\n\n const fetchBuddySearchResult: () => Promise<{\n data: MockBuddyArticles;\n }> = () => {\n return new Promise(resolve => {\n setTimeout(() => {\n resolve({\n data: updateBuddyArticles(ArticleBuddyMockData)\n });\n }, 1000);\n });\n };\n\n const getBuddyResults = async () => {\n setBuddyLoader(true);\n const res = await fetchBuddySearchResult();\n setBuddyContent(res.data);\n setBuddyLoader(false);\n };\n\n const buddyQuery: ArticleBuddyProps['query'] = {\n placeholder: 'Ask your question here...',\n value: searchVal,\n onChange: (e: ChangeEvent<HTMLTextAreaElement>) => setSearchVal(e.target.value)\n };\n const buddyFeedback: ArticleBuddyProps['feedback'] = {\n comment: {\n placeholder: 'How can I improve...',\n value: commentVal,\n onChange: (e: ChangeEvent<HTMLTextAreaElement>) => setCommentVal(e.target.value)\n },\n onSubmit: (response: { reaction: Reaction; comment: string }) => {\n action('onClick')(`action ${response.reaction} ${response.comment}`);\n }\n };\n\n return (\n <div\n style={{\n width: '25rem'\n }}\n >\n <ArticleList\n header={\n args.showHeader\n ? {\n title: 'Knowledge articles',\n icon: args.showHeaderIcon ? 'book-open' : '',\n actions\n }\n : undefined\n }\n activeTab={activeTab}\n onTabClick={handleTabChange}\n skeletonize={false}\n suggested={{\n count: args.showCount ? suggestedMock.count : undefined,\n articles: articles.map(article => {\n if (\n !article.feedback ||\n article.feedback.likes === undefined ||\n article.feedback.dislikes === undefined\n ) {\n return article;\n }\n\n const likesValue =\n (article.feedback?.likes ?? 0 * 100) / article.feedback.likes +\n article.feedback.dislikes;\n const disLikeValue =\n (article.feedback.dislikes ?? 0 * 100) / article.feedback.likes +\n article.feedback.dislikes;\n return {\n ...article,\n feedback: {\n ...article.feedback,\n likes: likesValue,\n\n dislikes: disLikeValue\n }\n };\n })\n }}\n followed={{\n count: args.showCount ? followedMock.count : undefined,\n articles: articles.map(article => {\n if (\n !article.feedback ||\n article.feedback.likes === undefined ||\n article.feedback.dislikes === undefined\n ) {\n return article;\n }\n\n const likesValue =\n (article.feedback?.likes ?? 0 * 100) / article.feedback.likes +\n article.feedback.dislikes;\n const disLikeValue =\n (article.feedback.dislikes ?? 0 * 100) / article.feedback.likes +\n article.feedback.dislikes;\n return {\n ...article,\n feedback: {\n ...article.feedback,\n likes: likesValue,\n\n dislikes: disLikeValue\n }\n };\n }),\n searchInput: searchOptions,\n category: categoryProps,\n sortBy: sortByProps,\n onClearClick: handleClearClick,\n showResults: args.showResults\n }}\n search={{\n count: args.showCount ? searchMock.count : undefined,\n articles: articles.map(article => {\n if (\n !article.feedback ||\n article.feedback.likes === undefined ||\n article.feedback.dislikes === undefined\n ) {\n return article;\n }\n\n const likesValue =\n (article.feedback?.likes ?? 0 * 100) / article.feedback.likes +\n article.feedback.dislikes;\n const disLikeValue =\n (article.feedback.dislikes ?? 0 * 100) / article.feedback.likes +\n article.feedback.dislikes;\n return {\n ...article,\n feedback: {\n ...article.feedback,\n likes: likesValue,\n\n dislikes: disLikeValue\n }\n };\n }),\n searchInput: searchOptions,\n category: categoryProps,\n sortBy: sortByProps,\n onClearClick: handleClearClick,\n quickFilters,\n handleQuickFilterRemove: (id: string) => {\n setQuickFilters(quickFilters.filter(item => item.id !== id));\n },\n showResults: args.showResults\n }}\n buddy={{\n title: 'Ask buddy',\n content: {\n query: buddyQuery,\n onSubmit: getBuddyResults,\n onClear: () => {\n setSearchVal('');\n },\n title: buddyContent?.title ?? '',\n actions: buddyContent?.actions ?? [],\n content: buddyContent?.content ? (\n <HTML content={ArticleBuddyMockData.content} />\n ) : (\n buddyContent?.content\n ),\n references: buddyContent?.references,\n feedback: buddyFeedback,\n disclaimer: ArticleBuddyMockData.disclaimer,\n loading: buddyLoader\n }\n }}\n onQuickFilterClick={(quickFilterParam: QuickFilter) => {\n handleTabChange('Search');\n setQuickFilters([...quickFilters, quickFilterParam]);\n }}\n loading={loading}\n loadingMore={loadingMore}\n onLoadMore={args.showLoadMore && hasMore ? onLoadMore : undefined}\n />\n </div>\n );\n};\n\nArticleListDemo.args = {\n isSuggestArticleAction: true,\n showAction: true,\n showHeader: true,\n showHeaderIcon: true,\n showQuickFilters: true,\n showCount: true,\n showResults: true,\n showLoadMore: false\n};\n\nArticleListDemo.argTypes = {\n isSuggestArticleAction: { control: { type: 'boolean' } },\n showAction: { control: { type: 'boolean' } },\n showHeader: { control: { type: 'boolean' } },\n showHeaderIcon: { control: { type: 'boolean' } },\n showQuickFilters: { control: { type: 'boolean' } },\n showCount: { control: { type: 'boolean' } },\n showResults: { control: { type: 'boolean' } },\n showLoadMore: { control: { type: 'boolean' } }\n};\n"]}
1
+ {"version":3,"file":"ArticleList.stories.jsx","sourceRoot":"","sources":["../../../src/work/ArticleList/ArticleList.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGlE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAQnG,OAAO,KAAK,iBAAiB,MAAM,wEAAwE,CAAC;AAC5G,OAAO,KAAK,mBAAmB,MAAM,0EAA0E,CAAC;AAChH,OAAO,KAAK,QAAQ,MAAM,kEAAkE,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AASzF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEpG,eAAe;IACb,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,WAAW;IACtB,aAAa,EAAE,EAAE,cAAc,EAAE,iBAAiB,EAAE;IACpD,UAAU,EAAE;QACV,MAAM,EAAE,YAAY;KACrB;CACM,CAAC;AAEV,YAAY,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;AAuB/D,MAAM,CAAC,MAAM,eAAe,GAAkC,CAAC,IAA0B,EAAE,EAAE;IAC3F,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAqB,EAAE,CAAC,CAAC;IACzE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAqB,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAwB,EAAE,CAAC,CAAC;IACpE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC,CAAC;IACpE,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,EAAqB,CAAC;IACtE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAW,SAAS,CAAC,CAAC;IAExE,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzF,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,EAAuB,EAAE,EAAE;QACjE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IACrE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,OAAO,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAClG,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,EAAE;QACxC,OAAO,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAChD,GAAG,IAAI;YACP,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;SAC1B,CAAC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,UAAU,GAAG,CAAC,EAAuB,EAAE,EAAE;QAC7C,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC;IAEF,MAAM,UAAU,GAA4D,CAC1E,SAAS,EACT,QAAQ,EACR,EAAE;QACF,WAAW,CAAC,YAAY,CAAC,EAAE;YACzB,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC;YACtF,MAAM,WAAW,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;YACtC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;gBACpB,MAAM,mBAAmB,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;gBAC5D,IAAI,mBAAmB,EAAE;oBACvB,MAAM,SAAS,GAAG,mBAAmB,EAAE,KAAK,IAAI,CAAC,CAAC;oBAClD,MAAM,YAAY,GAAG,mBAAmB,EAAE,QAAQ,IAAI,CAAC,CAAC;oBAExD,IAAI,CAAC,QAAQ,EAAE;wBACb,IAAI,mBAAmB,CAAC,QAAQ,KAAK,OAAO,EAAE;4BAC5C,mBAAmB,CAAC,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC;yBAC3C;6BAAM;4BACL,mBAAmB,CAAC,QAAQ,GAAG,YAAY,GAAG,CAAC,CAAC;yBACjD;wBACD,mBAAmB,CAAC,QAAQ,GAAG,SAAS,CAAC;qBAC1C;oBAED,IAAI,QAAQ,KAAK,OAAO,EAAE;wBACxB,IAAI,mBAAmB,EAAE,QAAQ,KAAK,UAAU,EAAE;4BAChD,mBAAmB,CAAC,QAAQ,GAAG,YAAY,GAAG,CAAC,CAAC;yBACjD;wBAED,mBAAmB,CAAC,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC;wBAC1C,mBAAmB,CAAC,QAAQ,GAAG,OAAO,CAAC;qBACxC;oBAED,IAAI,QAAQ,KAAK,UAAU,EAAE;wBAC3B,IAAI,mBAAmB,CAAC,QAAQ,KAAK,OAAO,EAAE;4BAC5C,mBAAmB,CAAC,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC;yBAC3C;wBACD,mBAAmB,CAAC,QAAQ,GAAG,YAAY,GAAG,CAAC,CAAC;wBAChD,mBAAmB,CAAC,QAAQ,GAAG,UAAU,CAAC;qBAC3C;iBACF;aACF;YAED,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,YAA4B,EAAE,EAAE;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,GAAG,CACb,CAAC,EACC,OAAO,GAAG,KAAK,EACf,UAAU,GAAG,KAAK,EAClB,SAAS,GAAG,EAAE,EACd,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,YAAY,EAAE,eAAe,EAC9B,EAAE,EAAE;YACH,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9C,IAAI,OAAO,EAAE;gBACX,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;aAC9C;iBAAM;gBACL,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;aAC3C;YACD,IAAI,UAAU,EAAE;gBACd,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;aAC/C;iBAAM;gBACL,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;aAC7C;YAED,OAAO;gBACL,SAAS;gBACT,IAAI;gBACJ,KAAK;gBACL,QAAQ;gBACR,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC;gBACpC,cAAc,EAAE,SAAS;gBACzB,IAAI;gBACJ,QAAQ;gBACR,YAAY,EACV,IAAI,CAAC,gBAAgB,IAAI,eAAe,EAAE,MAAM;oBAC9C,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;wBACpC,OAAO;4BACL,EAAE;4BACF,IAAI;yBACL,CAAC;oBACJ,CAAC,CAAC;oBACJ,CAAC,CAAC,EAAE;aACT,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAIpB,aAAa,CAAC,EAAE;QACnB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3B,IAAI,gBAAgB,GAAQ,IAAI,CAAC;YAEjC,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,QAAQ;gBAAE,gBAAgB,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;iBAClF,IAAI,aAAa,KAAK,WAAW;gBAAE,gBAAgB,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC;iBAC3E,IAAI,aAAa,KAAK,UAAU;gBAAE,gBAAgB,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;YAE9E,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,gBAAgB,EAAE;oBACpB,OAAO,CAAC;wBACN,QAAQ,EAAE,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC;wBACnD,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAAI,EAAE;wBACzC,MAAM,EAAE,gBAAgB,CAAC,MAAM,IAAI,EAAE;qBACtC,CAAC,CAAC;iBACJ;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QACtD,OAAO;YACL,GAAG,OAAO;YACV,QAAQ,EAAE;gBACR,GAAG,OAAO,CAAC,QAAQ;gBACnB,EAAE,EAAE,OAAO,CAAC,SAAS;gBACrB,UAAU;aACX;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QAC5D,OAAO;YACL,GAAG,OAAO;YACV,QAAQ,EAAE;gBACR,GAAG,OAAO,CAAC,QAAQ;gBACnB,EAAE,EAAE,OAAO,CAAC,SAAS;gBACrB,UAAU;aACX;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,YAAY,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QAC1D,OAAO;YACL,GAAG,OAAO;YACV,QAAQ,EAAE;gBACR,GAAG,OAAO,CAAC,QAAQ;gBACnB,EAAE,EAAE,OAAO,CAAC,SAAS;gBACrB,UAAU;aACX;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,CAAC,EAAU,EAAE,EAAE;QACrC,WAAW,CAAC,EAAE,CAAC,CAAC;QAChB,eAAe,CAAC,EAAE,CAAC,CAAC;QACpB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,mBAAmB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACjC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1B,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9B,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtB,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,CAAC,CAAC;QACjB,YAAY,CAAC,EAAE,CAAC,CAAC;QACjB,IAAI,EAAE,KAAK,QAAQ,EAAE;YACnB,eAAe,CAAC,EAAE,CAAC,CAAC;SACrB;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACxC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,mBAAmB,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE5F,MAAM,aAAa,GAAyB;QAC1C,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,CAAC,CAAC,EAAE;YACZ,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE;YACR,KAAK,EAAE,gBAAgB;SACxB;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,mBAAmB;gBACxB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAiB,EAAE,EAAE;oBACtE,OAAO,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;gBACnE,CAAC,CAAC;gBACJ,CAAC,CAAC,oBAAoB;YACxB,WAAW,EAAE,UAAU;SACxB;KACF,CAAC;IAEF,MAAM,WAAW,GAAuB;QACtC,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,oBAAoB;YAC5B,CAAC,CAAC;gBACE,KAAK,EAAE;oBACL,EAAE,EAAE,oBAAoB,CAAC,EAAE;oBAC3B,IAAI,EAAE,oBAAoB,CAAC,OAAO;iBACnC;aACF;YACH,CAAC,CAAC,SAAS;QACb,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,kBAAkB;SAChC;KACF,CAAC;IAEF,MAAM,aAAa,GAAqB;QACtC,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC;QACtD,KAAK,EAAE,SAAS;QAChB,cAAc,EAAE,CAAC,GAAW,EAAE,EAAE;YAC9B,YAAY,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,cAAc,EAAE,CAAC,GAAW,EAAE,EAAE;YAC9B,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;IAEF,MAAM,aAAa,GAAG;QACpB;YACE,EAAE,EAAE,GAAG;YACP,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;SAC3D;QACD;YACE,EAAE,EAAE,GAAG;YACP,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;SAC3D;QACD;YACE,EAAE,EAAE,GAAG;YACP,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;SAC3D;KACF,CAAC;IAEF,MAAM,uBAAuB,GAAW;QACtC,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC9C,IAAI,EAAE,MAAM;KACb,CAAC;IAEF,IAAI,OAAO,CAAC;IACZ,IAAI,IAAI,CAAC,UAAU,EAAE;QACnB,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC/B,OAAO,GAAG,CAAC,uBAAuB,CAAC,CAAC;SACrC;aAAM;YACL,OAAO,GAAG,aAAa,CAAC;SACzB;KACF;IAED,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,eAAe,CAAC,EAAE,CAAC,CAAC;QACpB,YAAY,CAAC,EAAE,CAAC,CAAC;QACjB,eAAe,CAAC,IAAI,CAAC,EAAE;YACrB,OAAO,IAAI,EAAE,GAAG,CAAC,gBAAgB,CAAC,EAAE;gBAClC,OAAO;oBACL,GAAG,gBAAgB;oBACnB,QAAQ,EAAE,KAAK;iBAChB,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,EAAE;YACf,OAAO,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE;gBAChC,OAAO;oBACL,GAAG,cAAc;oBACjB,QAAQ,EAAE,KAAK;iBAChB,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,SAAwC,CAAC;IAC7C,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,IAAI,SAAS,EAAE;YACzC,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC,CAAC;gBACjB,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC1B,GAAG,YAAY;oBACf;wBACE,SAAS,EAAE,SAAS,EAAE;wBACtB,KAAK,EAAE,uBAAuB;wBAC9B,IAAI,EAAE,iBAAiB;wBACvB,QAAQ,EACN,+HAA+H;wBACjI,IAAI,EAAE;4BACJ,QAAQ,EAAE,QAAQ;4BAClB,aAAa,EAAE,YAAY;yBAC5B;wBACD,QAAQ,EAAE;4BACR,SAAS,EAAE,SAAS,EAAE;4BACtB,KAAK,EAAE,EAAE;4BACT,QAAQ,EAAE,EAAE;4BACZ,KAAK,EAAE,IAAI;4BACX,QAAQ,EAAE,KAAK;4BACf,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;yBACrB;wBACD,UAAU,EAAE,KAAK;wBACjB,OAAO,EAAE,IAAI;wBACb,YAAY,EAAE;4BACZ,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE;4BAC9B,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC5B;qBACF;iBACF,CAAC,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,CAAC;SACV;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,mBAAmB,GAAG,CAAC,gBAAmC,EAAE,EAAE;QAClE,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;SAC1B,CAAC;QAEF,OAAO;YACL,KAAK,EAAE,gBAAgB,CAAC,KAAK;YAC7B,OAAO,EAAE,gBAAgB,CAAC,OAAO;YACjC,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,OAAO,EAAE,WAAW;SACrB,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAEvB,GAAG,EAAE;QACR,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3B,UAAU,CAAC,GAAG,EAAE;gBACd,OAAO,CAAC;oBACN,IAAI,EAAE,mBAAmB,CAAC,oBAAoB,CAAC;iBAChD,CAAC,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;QACjC,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,GAAG,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAC3C,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,cAAc,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,UAAU,GAA+B;QAC7C,WAAW,EAAE,2BAA2B;QACxC,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,CAAC,CAAmC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KAChF,CAAC;IACF,MAAM,aAAa,GAAkC;QACnD,OAAO,EAAE;YACP,WAAW,EAAE,sBAAsB;YACnC,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,CAAC,CAAmC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SACjF;QACD,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,QAAkB,EAAE,EAAE;YACjC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,QAAQ,EAAE,CAAC,QAAiD,EAAE,EAAE;YAC9D,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YACrE,aAAa,CAAC,EAAE,CAAC,CAAC;YAClB,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;KACF,CAAC;IAEF,OAAO,CACL,CAAC,GAAG,CACF,KAAK,CAAC,CAAC;YACL,KAAK,EAAE,OAAO;SACf,CAAC,CAEF;MAAA,CAAC,WAAW,CACV,MAAM,CAAC,CACL,IAAI,CAAC,UAAU;YACb,CAAC,CAAC;gBACE,KAAK,EAAE,oBAAoB;gBAC3B,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;gBAC5C,OAAO;aACR;YACH,CAAC,CAAC,SAAS,CACd,CACD,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,UAAU,CAAC,CAAC,eAAe,CAAC,CAC5B,WAAW,CAAC,CAAC,KAAK,CAAC,CACnB,SAAS,CAAC,CAAC;YACT,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACvD,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAC/B,IACE,CAAC,OAAO,CAAC,QAAQ;oBACjB,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS;oBACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,EACvC;oBACA,OAAO,OAAO,CAAC;iBAChB;gBAED,MAAM,UAAU,GACd,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK;oBAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC5B,MAAM,YAAY,GAChB,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK;oBAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC5B,OAAO;oBACL,GAAG,OAAO;oBACV,QAAQ,EAAE;wBACR,GAAG,OAAO,CAAC,QAAQ;wBACnB,KAAK,EAAE,UAAU;wBAEjB,QAAQ,EAAE,YAAY;qBACvB;iBACF,CAAC;YACJ,CAAC,CAAC;SACH,CAAC,CACF,QAAQ,CAAC,CAAC;YACR,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACtD,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAC/B,IACE,CAAC,OAAO,CAAC,QAAQ;oBACjB,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS;oBACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,EACvC;oBACA,OAAO,OAAO,CAAC;iBAChB;gBAED,MAAM,UAAU,GACd,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK;oBAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC5B,MAAM,YAAY,GAChB,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK;oBAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC5B,OAAO;oBACL,GAAG,OAAO;oBACV,QAAQ,EAAE;wBACR,GAAG,OAAO,CAAC,QAAQ;wBACnB,KAAK,EAAE,UAAU;wBAEjB,QAAQ,EAAE,YAAY;qBACvB;iBACF,CAAC;YACJ,CAAC,CAAC;YACF,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,aAAa;YACvB,MAAM,EAAE,WAAW;YACnB,YAAY,EAAE,gBAAgB;YAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CACF,MAAM,CAAC,CAAC;YACN,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACpD,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAC/B,IACE,CAAC,OAAO,CAAC,QAAQ;oBACjB,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS;oBACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,EACvC;oBACA,OAAO,OAAO,CAAC;iBAChB;gBAED,MAAM,UAAU,GACd,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK;oBAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC5B,MAAM,YAAY,GAChB,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK;oBAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC5B,OAAO;oBACL,GAAG,OAAO;oBACV,QAAQ,EAAE;wBACR,GAAG,OAAO,CAAC,QAAQ;wBACnB,KAAK,EAAE,UAAU;wBAEjB,QAAQ,EAAE,YAAY;qBACvB;iBACF,CAAC;YACJ,CAAC,CAAC;YACF,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,aAAa;YACvB,MAAM,EAAE,WAAW;YACnB,YAAY,EAAE,gBAAgB;YAC9B,YAAY;YACZ,uBAAuB,EAAE,CAAC,EAAU,EAAE,EAAE;gBACtC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CACF,KAAK,CAAC,CAAC;YACL,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;gBACP,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,eAAe;gBACzB,OAAO,EAAE,GAAG,EAAE;oBACZ,YAAY,CAAC,EAAE,CAAC,CAAC;gBACnB,CAAC;gBACD,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE;gBAChC,OAAO,EAAE,YAAY,EAAE,OAAO,IAAI,EAAE;gBACpC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAC/B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAG,CAChD,CAAC,CAAC,CAAC,CACF,YAAY,EAAE,OAAO,CACtB;gBACD,UAAU,EAAE,YAAY,EAAE,UAAU;gBACpC,QAAQ,EAAE,aAAa;gBACvB,UAAU,EAAE,oBAAoB,CAAC,UAAU;gBAC3C,OAAO,EAAE,WAAW;aACrB;SACF,CAAC,CACF,kBAAkB,CAAC,CAAC,CAAC,gBAA6B,EAAE,EAAE;YACpD,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC1B,eAAe,CAAC,CAAC,GAAG,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CACF,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,UAAU,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,EAEtE;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,CAAC,IAAI,GAAG;IACrB,sBAAsB,EAAE,IAAI;IAC5B,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,IAAI;IACtB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,KAAK;CACpB,CAAC;AAEF,eAAe,CAAC,QAAQ,GAAG;IACzB,sBAAsB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IACxD,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC5C,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC5C,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAChD,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAClD,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC3C,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC7C,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;CAC/C,CAAC","sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\nimport type { ChangeEvent } from 'react';\nimport type { Meta, StoryFn } from '@storybook/react';\nimport { action } from '@storybook/addon-actions';\n\nimport { createUID, menuHelpers, registerIcon, escapeRegExp, HTML } from '@pega/cosmos-react-core';\nimport type {\n Action,\n MenuItemProps,\n MenuProps,\n SearchInputProps,\n OmitStrict\n} from '@pega/cosmos-react-core';\nimport * as thumbsUpSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/thumbs-up-solid.icon';\nimport * as thumbsDownSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/thumbs-down-solid.icon';\nimport * as bookOpen from '@pega/cosmos-react-core/lib/components/Icon/icons/book-open.icon';\nimport { ArticleList, ArticleSummary, ArticleListFilter } from '@pega/cosmos-react-work';\nimport type {\n ArticleSummaryProps,\n Articles,\n QuickFilter,\n ArticleBuddyProps,\n Reaction\n} from '@pega/cosmos-react-work';\n\nimport { suggestedMock, followedMock, searchMock, ArticleBuddyMockData } from './ArticleList.mocks';\n\nexport default {\n title: 'Work/ArticleList',\n component: ArticleList,\n subcomponents: { ArticleSummary, ArticleListFilter },\n parameters: {\n layout: 'fullscreen'\n }\n} as Meta;\n\nregisterIcon(thumbsUpSolidIcon, thumbsDownSolidIcon, bookOpen);\n\ninterface ArticleListDemoProps {\n isSuggestArticleAction: boolean;\n showAction: boolean;\n showHeader: boolean;\n showHeaderIcon: boolean;\n showQuickFilters: boolean;\n showCount: boolean;\n showResults: boolean;\n showLoadMore: boolean;\n}\n\ntype MockArticles = ArticleSummaryProps & {\n isLiked: boolean;\n isFollowed: boolean;\n};\n\ntype MockBuddyArticles = OmitStrict<\n ArticleBuddyProps,\n 'query' | 'loading' | 'onSubmit' | 'onClear' | 'feedback'\n>;\n\nexport const ArticleListDemo: StoryFn<ArticleListDemoProps> = (args: ArticleListDemoProps) => {\n const [searchVal, setSearchVal] = useState('');\n const [activeTab, setActiveTab] = useState('Suggested');\n const [loading, setLoading] = useState(false);\n const [categoryList, setCategoryList] = useState<MenuProps['items']>([]);\n const [sortBy, setSortBy] = useState<MenuProps['items']>([]);\n const [articles, setArticles] = useState<ArticleSummaryProps[]>([]);\n const [quickFilters, setQuickFilters] = useState<QuickFilter[]>([]);\n const [loadingMore, isSetLoadMore] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n const [filterCategoryValue, setFilterCategoryValue] = useState('');\n const [buddyContent, setBuddyContent] = useState<MockBuddyArticles>();\n const [buddyLoader, setBuddyLoader] = useState(false);\n const [commentVal, setCommentVal] = useState('');\n const [buddyReaction, setBuddyReaction] = useState<Reaction>(undefined);\n\n const selectedSortByOption = useMemo(() => menuHelpers.getSelected(sortBy)[0], [sortBy]);\n\n const selectSortByOption = useCallback((id: MenuItemProps['id']) => {\n setSortBy(cur => menuHelpers.selectItem(cur, id, 'single-select'));\n }, []);\n\n const selectedCategory = useMemo(() => {\n return menuHelpers.getSelected(categoryList).map(item => ({ text: item.primary, id: item.id }));\n }, [categoryList]);\n\n const categoryListToRender = useMemo(() => {\n return menuHelpers.mapTree(categoryList, item => ({\n ...item,\n selected: !!item.selected\n }));\n }, [categoryList]);\n\n const toggleItem = (id: MenuItemProps['id']) => {\n setCategoryList(cur => menuHelpers.toggleSelected(cur, id, 'multi-select'));\n };\n\n const onReaction: Required<ArticleSummaryProps>['feedback']['onReaction'] = (\n articleId,\n reaction\n ) => {\n setArticles(prevArticles => {\n const itemIndex = prevArticles.findIndex(article => article?.articleId === articleId);\n const updatedData = [...prevArticles];\n if (itemIndex !== -1) {\n const currentItemFeedback = updatedData[itemIndex].feedback;\n if (currentItemFeedback) {\n const likeValue = currentItemFeedback?.likes || 0;\n const dislikeValue = currentItemFeedback?.dislikes || 0;\n\n if (!reaction) {\n if (currentItemFeedback.reaction === 'liked') {\n currentItemFeedback.likes = likeValue - 1;\n } else {\n currentItemFeedback.dislikes = dislikeValue - 1;\n }\n currentItemFeedback.reaction = undefined;\n }\n\n if (reaction === 'liked') {\n if (currentItemFeedback?.reaction === 'disliked') {\n currentItemFeedback.dislikes = dislikeValue - 1;\n }\n\n currentItemFeedback.likes = likeValue + 1;\n currentItemFeedback.reaction = 'liked';\n }\n\n if (reaction === 'disliked') {\n if (currentItemFeedback.reaction === 'liked') {\n currentItemFeedback.likes = likeValue - 1;\n }\n currentItemFeedback.dislikes = dislikeValue + 1;\n currentItemFeedback.reaction = 'disliked';\n }\n }\n }\n\n return updatedData;\n });\n };\n\n const updateArticles = (mockArticles: MockArticles[]) => {\n const data = Object.values(mockArticles);\n return data.map(\n ({\n isLiked = false,\n isFollowed = false,\n articleId = '',\n title,\n href,\n abstract,\n meta,\n feedback,\n quickFilters: quickFilterTags\n }) => {\n const actionObj = [{ id: '1', text: 'Edit' }];\n if (isLiked) {\n actionObj.push({ id: '3', text: 'Dislike' });\n } else {\n actionObj.push({ id: '3', text: 'Like' });\n }\n if (isFollowed) {\n actionObj.push({ id: '4', text: 'Unfollow' });\n } else {\n actionObj.push({ id: '4', text: 'Follow' });\n }\n\n return {\n articleId,\n href,\n title,\n abstract,\n onTitleClick: action('onTitleClick'),\n primaryActions: actionObj,\n meta,\n feedback,\n quickFilters:\n args.showQuickFilters && quickFilterTags?.length\n ? quickFilterTags?.map(({ id, name }) => {\n return {\n id,\n name\n };\n })\n : []\n };\n }\n );\n };\n\n const fetchArticleContent: (activeTabName: string) => Promise<{\n articles: ArticleSummaryProps[];\n category: MenuProps['items'];\n sortBy: MenuProps['items'];\n }> = activeTabName => {\n return new Promise(resolve => {\n let activeTabContent: any = null;\n\n if (!activeTabName || activeTabName === 'Search') activeTabContent = { ...searchMock };\n else if (activeTabName === 'Suggested') activeTabContent = { ...suggestedMock };\n else if (activeTabName === 'Followed') activeTabContent = { ...followedMock };\n\n setTimeout(() => {\n if (activeTabContent) {\n resolve({\n articles: updateArticles(activeTabContent.articles),\n category: activeTabContent.category || [],\n sortBy: activeTabContent.sortBy || []\n });\n }\n }, 500);\n });\n };\n\n searchMock.articles = searchMock.articles.map(article => {\n return {\n ...article,\n feedback: {\n ...article.feedback,\n id: article.articleId,\n onReaction\n }\n };\n });\n\n suggestedMock.articles = suggestedMock.articles.map(article => {\n return {\n ...article,\n feedback: {\n ...article.feedback,\n id: article.articleId,\n onReaction\n }\n };\n });\n\n followedMock.articles = followedMock.articles.map(article => {\n return {\n ...article,\n feedback: {\n ...article.feedback,\n id: article.articleId,\n onReaction\n }\n };\n });\n\n const handleTabChange = (id: string) => {\n setArticles([]);\n setCategoryList([]);\n setLoading(true);\n fetchArticleContent(id).then(res => {\n setArticles(res.articles);\n setCategoryList(res.category);\n setSortBy(res.sortBy);\n setLoading(false);\n });\n\n setActiveTab(id);\n setSearchVal('');\n if (id !== 'Search') {\n setQuickFilters([]);\n }\n };\n\n useEffect(() => {\n setLoading(true);\n fetchArticleContent(activeTab).then(res => {\n setLoading(false);\n setArticles(res.articles);\n });\n }, [activeTab]);\n\n const filterRegex = useMemo(() => escapeRegExp(filterCategoryValue), [filterCategoryValue]);\n\n const categoryProps: Articles['category'] = {\n label: 'Category',\n placeholder: 'Select categories',\n onChange: e => {\n setFilterCategoryValue(e.target.value);\n },\n value: filterCategoryValue,\n mode: 'multi-select',\n selected: {\n items: selectedCategory\n },\n menu: {\n items: filterCategoryValue\n ? menuHelpers.flatten(categoryList).filter(({ primary }: MenuItemProps) => {\n return filterRegex.toLowerCase().includes(primary.toLowerCase());\n })\n : categoryListToRender,\n onItemClick: toggleItem\n }\n };\n\n const sortByProps: Articles['sortBy'] = {\n label: 'Sort by',\n placeholder: 'Select sort by',\n selected: selectedSortByOption\n ? {\n items: {\n id: selectedSortByOption.id,\n text: selectedSortByOption.primary\n }\n }\n : undefined,\n menu: {\n items: sortBy,\n onItemClick: selectSortByOption\n }\n };\n\n const searchOptions: SearchInputProps = {\n placeholder: 'Search article',\n filters: ['Help site 1', 'Help site 2', 'Help site 3'],\n value: searchVal,\n onSearchChange: (val: string) => {\n setSearchVal(val);\n },\n onFilterChange: (val: string) => {\n return val;\n }\n };\n\n const actionOptions = [\n {\n id: '1',\n text: 'Action 1',\n onClick: (id: string) => action('onClick')(`action ${id}`)\n },\n {\n id: '2',\n text: 'Action 2',\n onClick: (id: string) => action('onClick')(`action ${id}`)\n },\n {\n id: '3',\n text: 'Action 3',\n onClick: (id: string) => action('onClick')(`action ${id}`)\n }\n ];\n\n const suggestNewArticleAction: Action = {\n id: 'Suggest action',\n text: 'Suggest action',\n onClick: (id: string) => action('onClick')(id),\n icon: 'plus'\n };\n\n let actions;\n if (args.showAction) {\n if (args.isSuggestArticleAction) {\n actions = [suggestNewArticleAction];\n } else {\n actions = actionOptions;\n }\n }\n\n const handleClearClick = () => {\n setQuickFilters([]);\n setSearchVal('');\n setCategoryList(curr => {\n return curr?.map(categoryListItem => {\n return {\n ...categoryListItem,\n selected: false\n };\n });\n });\n setSortBy(curr => {\n return curr?.map(sortByListItem => {\n return {\n ...sortByListItem,\n selected: false\n };\n });\n });\n };\n\n let timeoutId: ReturnType<typeof setTimeout>;\n const stopTimeout = () => {\n clearTimeout(timeoutId);\n };\n\n const onLoadMore = useCallback(() => {\n if (!loading && !loadingMore && activeTab) {\n isSetLoadMore(true);\n setLoading(false);\n timeoutId = setTimeout(() => {\n isSetLoadMore(false);\n setLoading(false);\n setHasMore(true);\n setArticles(prevArticles => [\n ...prevArticles,\n {\n articleId: createUID(),\n title: 'Last article alert!!!',\n href: 'design.pega.com',\n abstract:\n 'Last article alert. This is the last article , hence the last index to be noted. This will be appended at the end of the list',\n meta: {\n category: 'Retail',\n publishedDate: '2023-04-06'\n },\n feedback: {\n articleId: createUID(),\n likes: 20,\n dislikes: 80,\n liked: true,\n disliked: false,\n onReaction: () => {}\n },\n isFollowed: false,\n isLiked: true,\n quickFilters: [\n { id: '1', name: 'insurance' },\n { id: '2', name: 'policy' }\n ]\n }\n ]);\n }, 3000);\n }\n }, [loading, loadingMore, activeTab]);\n\n useEffect(() => {\n return () => stopTimeout();\n }, []);\n\n const updateBuddyArticles = (mockBuddyArticle: MockBuddyArticles) => {\n const actionItems = [\n { id: '1', text: 'Share' },\n { id: '2', text: 'Copy' }\n ];\n\n return {\n title: mockBuddyArticle.title,\n content: mockBuddyArticle.content,\n references: mockBuddyArticle.references,\n disclaimer: mockBuddyArticle.disclaimer,\n actions: actionItems\n };\n };\n\n const fetchBuddySearchResult: () => Promise<{\n data: MockBuddyArticles;\n }> = () => {\n return new Promise(resolve => {\n setTimeout(() => {\n resolve({\n data: updateBuddyArticles(ArticleBuddyMockData)\n });\n }, 1000);\n });\n };\n\n const getBuddyResults = async () => {\n setBuddyLoader(true);\n const res = await fetchBuddySearchResult();\n setBuddyContent(res.data);\n setBuddyLoader(false);\n };\n\n const buddyQuery: ArticleBuddyProps['query'] = {\n placeholder: 'Ask your question here...',\n value: searchVal,\n onChange: (e: ChangeEvent<HTMLTextAreaElement>) => setSearchVal(e.target.value)\n };\n const buddyFeedback: ArticleBuddyProps['feedback'] = {\n comment: {\n placeholder: 'How can I improve...',\n value: commentVal,\n onChange: (e: ChangeEvent<HTMLTextAreaElement>) => setCommentVal(e.target.value)\n },\n reaction: buddyReaction,\n onReaction: (reaction: Reaction) => {\n setBuddyReaction(reaction);\n },\n onSubmit: (response: { reaction: Reaction; comment: string }) => {\n action('onClick')(`action ${response.reaction} ${response.comment}`);\n setCommentVal('');\n setBuddyReaction(undefined);\n }\n };\n\n return (\n <div\n style={{\n width: '25rem'\n }}\n >\n <ArticleList\n header={\n args.showHeader\n ? {\n title: 'Knowledge articles',\n icon: args.showHeaderIcon ? 'book-open' : '',\n actions\n }\n : undefined\n }\n activeTab={activeTab}\n onTabClick={handleTabChange}\n skeletonize={false}\n suggested={{\n count: args.showCount ? suggestedMock.count : undefined,\n articles: articles.map(article => {\n if (\n !article.feedback ||\n article.feedback.likes === undefined ||\n article.feedback.dislikes === undefined\n ) {\n return article;\n }\n\n const likesValue =\n (article.feedback?.likes ?? 0 * 100) / article.feedback.likes +\n article.feedback.dislikes;\n const disLikeValue =\n (article.feedback.dislikes ?? 0 * 100) / article.feedback.likes +\n article.feedback.dislikes;\n return {\n ...article,\n feedback: {\n ...article.feedback,\n likes: likesValue,\n\n dislikes: disLikeValue\n }\n };\n })\n }}\n followed={{\n count: args.showCount ? followedMock.count : undefined,\n articles: articles.map(article => {\n if (\n !article.feedback ||\n article.feedback.likes === undefined ||\n article.feedback.dislikes === undefined\n ) {\n return article;\n }\n\n const likesValue =\n (article.feedback?.likes ?? 0 * 100) / article.feedback.likes +\n article.feedback.dislikes;\n const disLikeValue =\n (article.feedback.dislikes ?? 0 * 100) / article.feedback.likes +\n article.feedback.dislikes;\n return {\n ...article,\n feedback: {\n ...article.feedback,\n likes: likesValue,\n\n dislikes: disLikeValue\n }\n };\n }),\n searchInput: searchOptions,\n category: categoryProps,\n sortBy: sortByProps,\n onClearClick: handleClearClick,\n showResults: args.showResults\n }}\n search={{\n count: args.showCount ? searchMock.count : undefined,\n articles: articles.map(article => {\n if (\n !article.feedback ||\n article.feedback.likes === undefined ||\n article.feedback.dislikes === undefined\n ) {\n return article;\n }\n\n const likesValue =\n (article.feedback?.likes ?? 0 * 100) / article.feedback.likes +\n article.feedback.dislikes;\n const disLikeValue =\n (article.feedback.dislikes ?? 0 * 100) / article.feedback.likes +\n article.feedback.dislikes;\n return {\n ...article,\n feedback: {\n ...article.feedback,\n likes: likesValue,\n\n dislikes: disLikeValue\n }\n };\n }),\n searchInput: searchOptions,\n category: categoryProps,\n sortBy: sortByProps,\n onClearClick: handleClearClick,\n quickFilters,\n handleQuickFilterRemove: (id: string) => {\n setQuickFilters(quickFilters.filter(item => item.id !== id));\n },\n showResults: args.showResults\n }}\n buddy={{\n title: 'Ask buddy',\n content: {\n query: buddyQuery,\n onSubmit: getBuddyResults,\n onClear: () => {\n setSearchVal('');\n },\n title: buddyContent?.title ?? '',\n actions: buddyContent?.actions ?? [],\n content: buddyContent?.content ? (\n <HTML content={ArticleBuddyMockData.content} />\n ) : (\n buddyContent?.content\n ),\n references: buddyContent?.references,\n feedback: buddyFeedback,\n disclaimer: ArticleBuddyMockData.disclaimer,\n loading: buddyLoader\n }\n }}\n onQuickFilterClick={(quickFilterParam: QuickFilter) => {\n handleTabChange('Search');\n setQuickFilters([...quickFilters, quickFilterParam]);\n }}\n loading={loading}\n loadingMore={loadingMore}\n onLoadMore={args.showLoadMore && hasMore ? onLoadMore : undefined}\n />\n </div>\n );\n};\n\nArticleListDemo.args = {\n isSuggestArticleAction: true,\n showAction: true,\n showHeader: true,\n showHeaderIcon: true,\n showQuickFilters: true,\n showCount: true,\n showResults: true,\n showLoadMore: false\n};\n\nArticleListDemo.argTypes = {\n isSuggestArticleAction: { control: { type: 'boolean' } },\n showAction: { control: { type: 'boolean' } },\n showHeader: { control: { type: 'boolean' } },\n showHeaderIcon: { control: { type: 'boolean' } },\n showQuickFilters: { control: { type: 'boolean' } },\n showCount: { control: { type: 'boolean' } },\n showResults: { control: { type: 'boolean' } },\n showLoadMore: { control: { type: 'boolean' } }\n};\n"]}
@@ -1,15 +1,22 @@
1
- export declare const mockAPIImageResources: {
1
+ export declare const mockData: ({
2
2
  id: string;
3
3
  name: string;
4
4
  description: string;
5
- mime_type: string;
6
- media_url: string;
7
- }[];
8
- export declare const mockBadImageResource: {
5
+ format: string;
6
+ src: string;
7
+ } | {
9
8
  id: string;
10
9
  name: string;
11
10
  description: string;
12
- mime_type: string;
13
- media_url: string;
14
- };
11
+ format: string;
12
+ src: null;
13
+ })[];
14
+ export declare const mockBadResources: {
15
+ id: string;
16
+ name: string;
17
+ description: string;
18
+ src: string;
19
+ format: undefined;
20
+ error: boolean;
21
+ }[];
15
22
  //# sourceMappingURL=Lightbox.mocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Lightbox.mocks.d.ts","sourceRoot":"","sources":["../../../src/core/Lightbox/Lightbox.mocks.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB;;;;;;GAyDjC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;CAMhC,CAAC"}
1
+ {"version":3,"file":"Lightbox.mocks.d.ts","sourceRoot":"","sources":["../../../src/core/Lightbox/Lightbox.mocks.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,QAAQ;;;;;;;;;;;;IAsFpB,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;GAS5B,CAAC"}
@@ -1,59 +1,99 @@
1
- export const mockAPIImageResources = [
1
+ // cspell:words wordprocessingml
2
+ export const mockData = [
2
3
  {
3
4
  id: 'photo-1497752531616-c3afd9760a11',
4
5
  name: 'Image 1',
5
6
  description: 'Descriptive text about Image 1',
6
- mime_type: 'image/avif',
7
- media_url: 'https://images.unsplash.com/photo-1497752531616-c3afd9760a11?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2100&q=80'
7
+ format: 'jpeg',
8
+ src: 'https://images.unsplash.com/photo-1497752531616-c3afd9760a11?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2100&q=80'
9
+ },
10
+ {
11
+ id: 'pdf-1',
12
+ name: 'Sample-PDF 1',
13
+ description: 'Descriptive text about Dictionary of old Icelandic',
14
+ src: 'https://css4.pub/2015/icelandic/dictionary.pdf',
15
+ format: 'pdf'
8
16
  },
9
17
  {
10
18
  id: 'photo-1470093851219-69951fcbb533',
11
19
  name: 'Image 2',
12
20
  description: 'Descriptive text about Image 2',
13
- mime_type: 'image/avif',
14
- media_url: 'https://images.unsplash.com/photo-1470093851219-69951fcbb533?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2100&q=80'
21
+ format: 'jpeg',
22
+ src: 'https://images.unsplash.com/photo-1470093851219-69951fcbb533?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2100&q=80'
15
23
  },
16
24
  {
17
25
  id: 'photo-1447684808650-354ae64db5b8',
18
26
  name: 'Image 3',
19
27
  description: 'Descriptive text about Image 3',
20
- mime_type: 'image/avif',
21
- media_url: 'https://images.unsplash.com/photo-1447684808650-354ae64db5b8?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2094&q=80'
28
+ format: 'jpeg',
29
+ src: 'https://images.unsplash.com/photo-1447684808650-354ae64db5b8?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2094&q=80'
22
30
  },
23
31
  {
24
32
  id: 'photo-1425082661705-1834bfd09dca',
25
33
  name: 'Image 4',
26
34
  description: 'Descriptive text about Image 4',
27
- mime_type: 'image/avif',
28
- media_url: 'https://images.unsplash.com/photo-1425082661705-1834bfd09dca?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2110&q=80'
35
+ format: 'jpeg',
36
+ src: 'https://images.unsplash.com/photo-1425082661705-1834bfd09dca?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2110&q=80'
29
37
  },
30
38
  {
31
39
  id: 'photo-1494256997604-768d1f608cac',
32
40
  name: 'Image 5',
33
41
  description: 'Descriptive text about Image 5',
34
- mime_type: 'image/avif',
35
- media_url: 'https://images.unsplash.com/photo-1494256997604-768d1f608cac?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2301&q=80'
42
+ format: 'jpeg',
43
+ src: 'https://images.unsplash.com/photo-1494256997604-768d1f608cac?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2301&q=80'
36
44
  },
37
45
  {
38
46
  id: 'photo-1500694216671-a4e54fc4b513',
39
47
  name: 'Image 6',
40
48
  description: 'Descriptive text about Image 6',
41
- mime_type: 'image/avif',
42
- media_url: 'https://images.unsplash.com/photo-1500694216671-a4e54fc4b513?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2092&q=80'
49
+ format: 'jpeg',
50
+ src: 'https://images.unsplash.com/photo-1500694216671-a4e54fc4b513?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2092&q=80'
51
+ },
52
+ {
53
+ id: 'doc1',
54
+ name: 'Pega.docx',
55
+ description: 'Descriptive text about Pega document',
56
+ format: 'docx',
57
+ src: null
43
58
  },
44
59
  {
45
- id: 'photo-1638292597251-6fe6b2ba50f9',
46
- name: 'Image 7',
60
+ id: 'ppt2',
61
+ name: 'Pega.odp',
62
+ description: 'Descriptive text about Presentation file',
63
+ format: 'odp',
64
+ src: null
65
+ },
66
+ {
67
+ id: 'attachment_link',
68
+ name: 'Link file',
47
69
  description: 'Descriptive text about Image 7',
48
- mime_type: 'image/avif',
49
- media_url: 'https://images.unsplash.com/photo-1638292597251-6fe6b2ba50f9?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1287&q=80'
70
+ format: 'url',
71
+ src: 'https://images.unsplash.com/photo-1638292597251-6fe6b2ba50f9?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1287&q=80'
72
+ },
73
+ {
74
+ id: 'generic',
75
+ name: 'Pega file',
76
+ description: 'Descriptive text about file',
77
+ format: '3ds',
78
+ src: null
79
+ },
80
+ {
81
+ id: 'error',
82
+ name: 'Pega file',
83
+ description: 'Error showing content',
84
+ format: 'jpeg',
85
+ // invalid url
86
+ src: 'https://images.unsplash.com/photo'
87
+ }
88
+ ];
89
+ export const mockBadResources = [
90
+ {
91
+ id: 'image-error',
92
+ name: 'Some image',
93
+ description: 'Descriptive text about Some image',
94
+ src: '',
95
+ format: undefined,
96
+ error: true
50
97
  }
51
98
  ];
52
- export const mockBadImageResource = {
53
- id: 'error',
54
- name: 'Some image',
55
- description: 'Descriptive text about Some image',
56
- mime_type: 'image/avif',
57
- media_url: ''
58
- };
59
99
  //# sourceMappingURL=Lightbox.mocks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Lightbox.mocks.js","sourceRoot":"","sources":["../../../src/core/Lightbox/Lightbox.mocks.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,SAAS,EAAE,YAAY;QACvB,SAAS,EACP,wIAAwI;KAC3I;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,SAAS,EAAE,YAAY;QACvB,SAAS,EACP,wIAAwI;KAC3I;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,SAAS,EAAE,YAAY;QACvB,SAAS,EACP,wIAAwI;KAC3I;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,SAAS,EAAE,YAAY;QACvB,SAAS,EACP,wIAAwI;KAC3I;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,SAAS,EAAE,YAAY;QACvB,SAAS,EACP,wIAAwI;KAC3I;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,SAAS,EAAE,YAAY;QACvB,SAAS,EACP,wIAAwI;KAC3I;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,SAAS,EAAE,YAAY;QACvB,SAAS,EACP,gKAAgK;KACnK;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,mCAAmC;IAChD,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,EAAE;CACd,CAAC","sourcesContent":["export const mockAPIImageResources = [\n {\n id: 'photo-1497752531616-c3afd9760a11',\n name: 'Image 1',\n description: 'Descriptive text about Image 1',\n mime_type: 'image/avif',\n media_url:\n 'https://images.unsplash.com/photo-1497752531616-c3afd9760a11?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2100&q=80'\n },\n {\n id: 'photo-1470093851219-69951fcbb533',\n name: 'Image 2',\n description: 'Descriptive text about Image 2',\n mime_type: 'image/avif',\n media_url:\n 'https://images.unsplash.com/photo-1470093851219-69951fcbb533?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2100&q=80'\n },\n {\n id: 'photo-1447684808650-354ae64db5b8',\n name: 'Image 3',\n description: 'Descriptive text about Image 3',\n mime_type: 'image/avif',\n media_url:\n 'https://images.unsplash.com/photo-1447684808650-354ae64db5b8?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2094&q=80'\n },\n {\n id: 'photo-1425082661705-1834bfd09dca',\n name: 'Image 4',\n description: 'Descriptive text about Image 4',\n mime_type: 'image/avif',\n media_url:\n 'https://images.unsplash.com/photo-1425082661705-1834bfd09dca?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2110&q=80'\n },\n {\n id: 'photo-1494256997604-768d1f608cac',\n name: 'Image 5',\n description: 'Descriptive text about Image 5',\n mime_type: 'image/avif',\n media_url:\n 'https://images.unsplash.com/photo-1494256997604-768d1f608cac?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2301&q=80'\n },\n {\n id: 'photo-1500694216671-a4e54fc4b513',\n name: 'Image 6',\n description: 'Descriptive text about Image 6',\n mime_type: 'image/avif',\n media_url:\n 'https://images.unsplash.com/photo-1500694216671-a4e54fc4b513?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2092&q=80'\n },\n {\n id: 'photo-1638292597251-6fe6b2ba50f9',\n name: 'Image 7',\n description: 'Descriptive text about Image 7',\n mime_type: 'image/avif',\n media_url:\n 'https://images.unsplash.com/photo-1638292597251-6fe6b2ba50f9?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1287&q=80'\n }\n];\n\nexport const mockBadImageResource = {\n id: 'error',\n name: 'Some image',\n description: 'Descriptive text about Some image',\n mime_type: 'image/avif',\n media_url: ''\n};\n"]}
1
+ {"version":3,"file":"Lightbox.mocks.js","sourceRoot":"","sources":["../../../src/core/Lightbox/Lightbox.mocks.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,wIAAwI;KAC9I;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,oDAAoD;QACjE,GAAG,EAAE,gDAAgD;QACrD,MAAM,EAAE,KAAK;KACd;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,wIAAwI;KAC9I;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,wIAAwI;KAC9I;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,wIAAwI;KAC9I;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,wIAAwI;KAC9I;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,wIAAwI;KAC9I;IACD;QACE,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,sCAAsC;QACnD,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,IAAI;KACV;IACD;QACE,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,0CAA0C;QACvD,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,IAAI;KACV;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,gCAAgC;QAC7C,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,gKAAgK;KACtK;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,6BAA6B;QAC1C,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,IAAI;KACV;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,uBAAuB;QACpC,MAAM,EAAE,MAAM;QACd,cAAc;QACd,GAAG,EAAE,mCAAmC;KACzC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,mCAAmC;QAChD,GAAG,EAAE,EAAE;QACP,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,IAAI;KACZ;CACF,CAAC","sourcesContent":["// cspell:words wordprocessingml\nexport const mockData = [\n {\n id: 'photo-1497752531616-c3afd9760a11',\n name: 'Image 1',\n description: 'Descriptive text about Image 1',\n format: 'jpeg',\n src: 'https://images.unsplash.com/photo-1497752531616-c3afd9760a11?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2100&q=80'\n },\n {\n id: 'pdf-1',\n name: 'Sample-PDF 1',\n description: 'Descriptive text about Dictionary of old Icelandic',\n src: 'https://css4.pub/2015/icelandic/dictionary.pdf',\n format: 'pdf'\n },\n {\n id: 'photo-1470093851219-69951fcbb533',\n name: 'Image 2',\n description: 'Descriptive text about Image 2',\n format: 'jpeg',\n src: 'https://images.unsplash.com/photo-1470093851219-69951fcbb533?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2100&q=80'\n },\n {\n id: 'photo-1447684808650-354ae64db5b8',\n name: 'Image 3',\n description: 'Descriptive text about Image 3',\n format: 'jpeg',\n src: 'https://images.unsplash.com/photo-1447684808650-354ae64db5b8?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2094&q=80'\n },\n {\n id: 'photo-1425082661705-1834bfd09dca',\n name: 'Image 4',\n description: 'Descriptive text about Image 4',\n format: 'jpeg',\n src: 'https://images.unsplash.com/photo-1425082661705-1834bfd09dca?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2110&q=80'\n },\n {\n id: 'photo-1494256997604-768d1f608cac',\n name: 'Image 5',\n description: 'Descriptive text about Image 5',\n format: 'jpeg',\n src: 'https://images.unsplash.com/photo-1494256997604-768d1f608cac?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2301&q=80'\n },\n {\n id: 'photo-1500694216671-a4e54fc4b513',\n name: 'Image 6',\n description: 'Descriptive text about Image 6',\n format: 'jpeg',\n src: 'https://images.unsplash.com/photo-1500694216671-a4e54fc4b513?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2092&q=80'\n },\n {\n id: 'doc1',\n name: 'Pega.docx',\n description: 'Descriptive text about Pega document',\n format: 'docx',\n src: null\n },\n {\n id: 'ppt2',\n name: 'Pega.odp',\n description: 'Descriptive text about Presentation file',\n format: 'odp',\n src: null\n },\n {\n id: 'attachment_link',\n name: 'Link file',\n description: 'Descriptive text about Image 7',\n format: 'url',\n src: 'https://images.unsplash.com/photo-1638292597251-6fe6b2ba50f9?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1287&q=80'\n },\n {\n id: 'generic',\n name: 'Pega file',\n description: 'Descriptive text about file',\n format: '3ds',\n src: null\n },\n {\n id: 'error',\n name: 'Pega file',\n description: 'Error showing content',\n format: 'jpeg',\n // invalid url\n src: 'https://images.unsplash.com/photo'\n }\n];\n\nexport const mockBadResources = [\n {\n id: 'image-error',\n name: 'Some image',\n description: 'Descriptive text about Some image',\n src: '',\n format: undefined,\n error: true\n }\n];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Lightbox.stories.d.ts","sourceRoot":"","sources":["../../../src/core/Lightbox/Lightbox.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,OAAO,EAAE,MAAM,kBAAkB,CAAC;;AAQtD,wBAGU;AAEV,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAqDpD,CAAC"}
1
+ {"version":3,"file":"Lightbox.stories.d.ts","sourceRoot":"","sources":["../../../src/core/Lightbox/Lightbox.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,OAAO,EAAE,MAAM,kBAAkB,CAAC;;AAQtD,wBAMU;AAEV,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAoEpD,CAAC"}
@@ -1,45 +1,60 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useRef, useState } from 'react';
3
3
  import { Button, DateTimeDisplay, Lightbox } from '@pega/cosmos-react-core';
4
- import { mockAPIImageResources, mockBadImageResource } from './Lightbox.mocks';
4
+ import { mockData, mockBadResources } from './Lightbox.mocks';
5
5
  export default {
6
6
  title: 'Core/Lightbox',
7
- component: Lightbox
7
+ component: Lightbox,
8
+ parameters: {
9
+ layout: 'centered'
10
+ }
8
11
  };
9
12
  export const LightboxDemo = (args) => {
10
13
  const demoButtonRef = useRef(null);
11
- const [images, setImages] = useState(null);
14
+ const [open, setOpen] = useState(false);
15
+ const [items, setItems] = useState();
12
16
  const onClick = () => {
13
- setImages((args.error ? [mockBadImageResource] : mockAPIImageResources.slice(0, args.limit)).map(({ id, name, description, mime_type, media_url }) => {
17
+ setItems((args.error ? mockBadResources : mockData.slice(0, args.limit)).map(item => {
14
18
  return {
15
- id,
16
- name,
17
- description,
18
- src: media_url,
19
+ ...item,
19
20
  metadata: [
20
- mime_type.split('/').pop(),
21
+ item.format,
22
+ 'John smith',
21
23
  _jsx(DateTimeDisplay, { value: new Date(), variant: 'date' })
22
24
  ]
23
25
  };
24
26
  }));
25
27
  };
26
28
  const onItemDownload = async (id) => {
27
- const a = document.createElement('a');
28
- a.href = await fetch(id)
29
- .then(response => response.blob())
30
- .then(blob => URL.createObjectURL(blob));
31
- a.download = images?.find(image => image.id === id)?.name ?? id;
32
- document.body.appendChild(a);
33
- a.click();
34
- document.body.removeChild(a);
29
+ const currentItem = items?.find(item => item.id === id);
30
+ if (!currentItem)
31
+ return;
32
+ if (currentItem.src) {
33
+ const objectURL = URL.createObjectURL(await (await fetch(currentItem.src)).blob());
34
+ const a = document.createElement('a');
35
+ a.href = objectURL;
36
+ a.download = currentItem.name ?? id;
37
+ document.body.appendChild(a);
38
+ a.click();
39
+ document.body.removeChild(a);
40
+ URL.revokeObjectURL(objectURL);
41
+ }
35
42
  };
36
- return (_jsxs(_Fragment, { children: [_jsx(Button, { ref: demoButtonRef, onClick: onClick, children: "Open Lightbox" }), images && (_jsx(Lightbox, { items: images, cycle: args.cycle || undefined, onAfterClose: () => {
37
- setImages(null);
43
+ const onItemError = (id) => {
44
+ setItems(item => {
45
+ return item?.map(obj => (obj.id === id ? { ...obj, error: true } : obj));
46
+ });
47
+ };
48
+ return (_jsxs(_Fragment, { children: [_jsx(Button, { ref: demoButtonRef, onClick: () => {
49
+ setOpen(true);
50
+ onClick();
51
+ }, children: "Open Lightbox" }), open && (_jsx(Lightbox, { items: items ?? [], cycle: args.cycle || undefined, onAfterClose: () => {
52
+ setOpen(false);
38
53
  demoButtonRef.current?.focus();
39
- }, onItemDownload: onItemDownload }))] }));
54
+ }, onItemDownload: onItemDownload, onItemError: onItemError }))] }));
40
55
  };
41
56
  LightboxDemo.args = {
42
- limit: 7,
57
+ limit: 12,
43
58
  cycle: false,
44
59
  error: false
45
60
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Lightbox.stories.js","sourceRoot":"","sources":["../../../src/core/Lightbox/Lightbox.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Meta, StoryFn } from '@storybook/react';\nimport { useRef, useState } from 'react';\n\nimport { Button, DateTimeDisplay, Lightbox } from '@pega/cosmos-react-core';\nimport type { LightboxItem, LightboxProps } from '@pega/cosmos-react-core';\n\nimport { mockAPIImageResources, mockBadImageResource } from './Lightbox.mocks';\n\nexport default {\n title: 'Core/Lightbox',\n component: Lightbox\n} as Meta;\n\ninterface LightboxStoryProps {\n limit?: number;\n cycle?: boolean;\n error?: boolean;\n}\n\nexport const LightboxDemo: StoryFn<LightboxStoryProps> = (args: LightboxStoryProps) => {\n const demoButtonRef = useRef<HTMLButtonElement>(null);\n const [images, setImages] = useState<LightboxProps['items'] | null>(null);\n\n const onClick = () => {\n setImages(\n (args.error ? [mockBadImageResource] : mockAPIImageResources.slice(0, args.limit)).map(\n ({ id, name, description, mime_type, media_url }) => {\n return {\n id,\n name,\n description,\n src: media_url,\n metadata: [\n mime_type.split('/').pop(),\n <DateTimeDisplay value={new Date()} variant='date' />\n ]\n };\n }\n )\n );\n };\n\n const onItemDownload = async (id: LightboxItem['id']) => {\n const a = document.createElement('a');\n a.href = await fetch(id)\n .then(response => response.blob())\n .then(blob => URL.createObjectURL(blob));\n\n a.download = images?.find(image => image.id === id)?.name ?? id;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n };\n\n return (\n <>\n <Button ref={demoButtonRef} onClick={onClick}>\n Open Lightbox\n </Button>\n {images && (\n <Lightbox\n items={images}\n cycle={args.cycle || undefined}\n onAfterClose={() => {\n setImages(null);\n demoButtonRef.current?.focus();\n }}\n onItemDownload={onItemDownload}\n />\n )}\n </>\n );\n};\n\nLightboxDemo.args = {\n limit: 7,\n cycle: false,\n error: false\n};\n\nLightboxDemo.argTypes = {\n limit: { control: { type: 'number' } },\n cycle: { control: { type: 'boolean' } },\n error: { control: { type: 'boolean' } }\n};\n"]}
1
+ {"version":3,"file":"Lightbox.stories.js","sourceRoot":"","sources":["../../../src/core/Lightbox/Lightbox.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Meta, StoryFn } from '@storybook/react';\nimport { useRef, useState } from 'react';\n\nimport { Button, DateTimeDisplay, Lightbox } from '@pega/cosmos-react-core';\nimport type { LightboxItem, LightboxProps } from '@pega/cosmos-react-core';\n\nimport { mockData, mockBadResources } from './Lightbox.mocks';\n\nexport default {\n title: 'Core/Lightbox',\n component: Lightbox,\n parameters: {\n layout: 'centered'\n }\n} as Meta;\n\ninterface LightboxStoryProps {\n limit?: number;\n cycle?: boolean;\n error?: boolean;\n}\n\nexport const LightboxDemo: StoryFn<LightboxStoryProps> = (args: LightboxStoryProps) => {\n const demoButtonRef = useRef<HTMLButtonElement>(null);\n const [open, setOpen] = useState<boolean>(false);\n const [items, setItems] = useState<LightboxProps['items']>();\n\n const onClick = () => {\n setItems(\n (args.error ? mockBadResources : mockData.slice(0, args.limit)).map(item => {\n return {\n ...item,\n metadata: [\n item.format,\n 'John smith',\n <DateTimeDisplay value={new Date()} variant='date' />\n ]\n };\n })\n );\n };\n\n const onItemDownload = async (id: LightboxItem['id']) => {\n const currentItem = items?.find(item => item.id === id);\n if (!currentItem) return;\n\n if (currentItem.src) {\n const objectURL = URL.createObjectURL(await (await fetch(currentItem.src)).blob());\n\n const a = document.createElement('a');\n a.href = objectURL;\n a.download = currentItem.name ?? id;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n URL.revokeObjectURL(objectURL);\n }\n };\n\n const onItemError = (id: LightboxItem['id']) => {\n setItems(item => {\n return item?.map(obj => (obj.id === id ? { ...obj, error: true } : obj));\n });\n };\n\n return (\n <>\n <Button\n ref={demoButtonRef}\n onClick={() => {\n setOpen(true);\n onClick();\n }}\n >\n Open Lightbox\n </Button>\n {open && (\n <Lightbox\n items={items ?? []}\n cycle={args.cycle || undefined}\n onAfterClose={() => {\n setOpen(false);\n demoButtonRef.current?.focus();\n }}\n onItemDownload={onItemDownload}\n onItemError={onItemError}\n />\n )}\n </>\n );\n};\n\nLightboxDemo.args = {\n limit: 12,\n cycle: false,\n error: false\n};\n\nLightboxDemo.argTypes = {\n limit: { control: { type: 'number' } },\n cycle: { control: { type: 'boolean' } },\n error: { control: { type: 'boolean' } }\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Feed.stories.d.ts","sourceRoot":"","sources":["../../../src/social/Feed/Feed.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAYtD,OAAO,KAAK,EAEV,SAAS,EAIV,MAAM,2BAA2B,CAAC;;AAanC,wBAGU;AAEV,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,gBAAgB,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;CAClD;AAED,eAAO,MAAM,QAAQ,EAAE,OAAO,CAAC,aAAa,CA2S3C,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,OAE9B,CAAC"}
1
+ {"version":3,"file":"Feed.stories.d.ts","sourceRoot":"","sources":["../../../src/social/Feed/Feed.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAYtD,OAAO,KAAK,EAEV,SAAS,EAIV,MAAM,2BAA2B,CAAC;;AAanC,wBAGU;AAEV,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,gBAAgB,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;CAClD;AAED,eAAO,MAAM,QAAQ,EAAE,OAAO,CAAC,aAAa,CA6S3C,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,OAE9B,CAAC"}
@@ -129,6 +129,7 @@ export const FeedDemo = ({ markdownMap, onMentionPreview }) => {
129
129
  return {
130
130
  id: image.thumbnail,
131
131
  name: image.name,
132
+ format: 'jpeg',
132
133
  description: '',
133
134
  src: null
134
135
  };
@@ -157,6 +158,7 @@ export const FeedDemo = ({ markdownMap, onMentionPreview }) => {
157
158
  return {
158
159
  id: image.thumbnail,
159
160
  name: image.name,
161
+ format: 'jpeg',
160
162
  description: image.name,
161
163
  src: image.thumbnail,
162
164
  metadata: [image.type, _jsx(DateTimeDisplay, { value: new Date(), variant: 'date' })],