@pega/cosmos-react-cs 2.0.0-dev.9.4 → 2.0.0-rc.1

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 (139) hide show
  1. package/lib/components/Article/Article.js +2 -10
  2. package/lib/components/Article/Article.js.map +1 -1
  3. package/lib/components/Article/ArticleFooter.d.ts.map +1 -1
  4. package/lib/components/Article/ArticleFooter.js +3 -4
  5. package/lib/components/Article/ArticleFooter.js.map +1 -1
  6. package/lib/components/Article/ArticleSkeleton.js +4 -4
  7. package/lib/components/Article/ArticleSkeleton.js.map +1 -1
  8. package/lib/components/ArticleList/ArticleList.d.ts.map +1 -1
  9. package/lib/components/ArticleList/ArticleList.js +2 -5
  10. package/lib/components/ArticleList/ArticleList.js.map +1 -1
  11. package/lib/components/ArticleList/ArticleListHeader.js +3 -8
  12. package/lib/components/ArticleList/ArticleListHeader.js.map +1 -1
  13. package/lib/components/ArticleList/ArticleSummary.js +1 -3
  14. package/lib/components/ArticleList/ArticleSummary.js.map +1 -1
  15. package/lib/components/ArticleList/SummarySkeleton.js +2 -7
  16. package/lib/components/ArticleList/SummarySkeleton.js.map +1 -1
  17. package/lib/components/CSCaseView/CSCaseView.js +1 -2
  18. package/lib/components/CSCaseView/CSCaseView.js.map +1 -1
  19. package/lib/components/CallControlPanel/Call.d.ts +6 -0
  20. package/lib/components/CallControlPanel/Call.d.ts.map +1 -0
  21. package/lib/components/CallControlPanel/Call.js +142 -0
  22. package/lib/components/CallControlPanel/Call.js.map +1 -0
  23. package/lib/components/CallControlPanel/CallControlPanel.d.ts +6 -0
  24. package/lib/components/CallControlPanel/CallControlPanel.d.ts.map +1 -0
  25. package/lib/components/CallControlPanel/CallControlPanel.js +68 -0
  26. package/lib/components/CallControlPanel/CallControlPanel.js.map +1 -0
  27. package/lib/components/CallControlPanel/CallControlPanel.styles.d.ts +15 -0
  28. package/lib/components/CallControlPanel/CallControlPanel.styles.d.ts.map +1 -0
  29. package/lib/components/CallControlPanel/CallControlPanel.styles.js +118 -0
  30. package/lib/components/CallControlPanel/CallControlPanel.styles.js.map +1 -0
  31. package/lib/components/CallControlPanel/CallControlPanel.types.d.ts +112 -0
  32. package/lib/components/CallControlPanel/CallControlPanel.types.d.ts.map +1 -0
  33. package/lib/components/CallControlPanel/CallControlPanel.types.js +2 -0
  34. package/lib/components/CallControlPanel/CallControlPanel.types.js.map +1 -0
  35. package/lib/components/CallControlPanel/CallControlPanelIcon.d.ts +19 -0
  36. package/lib/components/CallControlPanel/CallControlPanelIcon.d.ts.map +1 -0
  37. package/lib/components/CallControlPanel/CallControlPanelIcon.js +74 -0
  38. package/lib/components/CallControlPanel/CallControlPanelIcon.js.map +1 -0
  39. package/lib/components/CallControlPanel/CallTransfer.d.ts +19 -0
  40. package/lib/components/CallControlPanel/CallTransfer.d.ts.map +1 -0
  41. package/lib/components/CallControlPanel/CallTransfer.js +121 -0
  42. package/lib/components/CallControlPanel/CallTransfer.js.map +1 -0
  43. package/lib/components/CallControlPanel/CalleePicker.d.ts +20 -0
  44. package/lib/components/CallControlPanel/CalleePicker.d.ts.map +1 -0
  45. package/lib/components/CallControlPanel/CalleePicker.js +61 -0
  46. package/lib/components/CallControlPanel/CalleePicker.js.map +1 -0
  47. package/lib/components/CallControlPanel/ContactsList.d.ts +23 -0
  48. package/lib/components/CallControlPanel/ContactsList.d.ts.map +1 -0
  49. package/lib/components/CallControlPanel/ContactsList.js +88 -0
  50. package/lib/components/CallControlPanel/ContactsList.js.map +1 -0
  51. package/lib/components/CallControlPanel/DTMFKeypad.d.ts +11 -0
  52. package/lib/components/CallControlPanel/DTMFKeypad.d.ts.map +1 -0
  53. package/lib/components/CallControlPanel/DTMFKeypad.js +23 -0
  54. package/lib/components/CallControlPanel/DTMFKeypad.js.map +1 -0
  55. package/lib/components/CallControlPanel/StopWatch.d.ts +9 -0
  56. package/lib/components/CallControlPanel/StopWatch.d.ts.map +1 -0
  57. package/lib/components/CallControlPanel/StopWatch.js +28 -0
  58. package/lib/components/CallControlPanel/StopWatch.js.map +1 -0
  59. package/lib/components/CallControlPanel/index.d.ts +4 -0
  60. package/lib/components/CallControlPanel/index.d.ts.map +1 -0
  61. package/lib/components/CallControlPanel/index.js +3 -0
  62. package/lib/components/CallControlPanel/index.js.map +1 -0
  63. package/lib/components/CallControlPanel/utils.d.ts +7 -0
  64. package/lib/components/CallControlPanel/utils.d.ts.map +1 -0
  65. package/lib/components/CallControlPanel/utils.js +35 -0
  66. package/lib/components/CallControlPanel/utils.js.map +1 -0
  67. package/lib/components/DialPad/DialPad.d.ts +16 -0
  68. package/lib/components/DialPad/DialPad.d.ts.map +1 -0
  69. package/lib/components/DialPad/DialPad.js +33 -0
  70. package/lib/components/DialPad/DialPad.js.map +1 -0
  71. package/lib/components/DialPad/DialPad.types.d.ts +33 -0
  72. package/lib/components/DialPad/DialPad.types.d.ts.map +1 -0
  73. package/lib/components/DialPad/DialPad.types.js +2 -0
  74. package/lib/components/DialPad/DialPad.types.js.map +1 -0
  75. package/lib/components/DialPad/DialPadKeyboard.d.ts +12 -0
  76. package/lib/components/DialPad/DialPadKeyboard.d.ts.map +1 -0
  77. package/lib/components/DialPad/DialPadKeyboard.js +87 -0
  78. package/lib/components/DialPad/DialPadKeyboard.js.map +1 -0
  79. package/lib/components/DialPad/DialPadKeyboard.styles.d.ts +5 -0
  80. package/lib/components/DialPad/DialPadKeyboard.styles.d.ts.map +1 -0
  81. package/lib/components/DialPad/DialPadKeyboard.styles.js +76 -0
  82. package/lib/components/DialPad/DialPadKeyboard.styles.js.map +1 -0
  83. package/lib/components/DialPad/KeyboardNavigation.d.ts +6 -0
  84. package/lib/components/DialPad/KeyboardNavigation.d.ts.map +1 -0
  85. package/lib/components/DialPad/KeyboardNavigation.js +156 -0
  86. package/lib/components/DialPad/KeyboardNavigation.js.map +1 -0
  87. package/lib/components/DialPad/utils.d.ts +4 -0
  88. package/lib/components/DialPad/utils.d.ts.map +1 -0
  89. package/lib/components/DialPad/utils.js +7 -0
  90. package/lib/components/DialPad/utils.js.map +1 -0
  91. package/lib/components/IntelligentGuidance/IntelligentGuidance.d.ts.map +1 -1
  92. package/lib/components/IntelligentGuidance/IntelligentGuidance.js +19 -15
  93. package/lib/components/IntelligentGuidance/IntelligentGuidance.js.map +1 -1
  94. package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.d.ts +1 -0
  95. package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.d.ts.map +1 -1
  96. package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.js +2 -2
  97. package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.js.map +1 -1
  98. package/lib/components/InteractionNotification/InteractionNotification.js +2 -6
  99. package/lib/components/InteractionNotification/InteractionNotification.js.map +1 -1
  100. package/lib/components/InteractionTimer/InteractionTimer.d.ts +2 -4
  101. package/lib/components/InteractionTimer/InteractionTimer.d.ts.map +1 -1
  102. package/lib/components/InteractionTimer/InteractionTimer.js +11 -8
  103. package/lib/components/InteractionTimer/InteractionTimer.js.map +1 -1
  104. package/lib/components/TaskManager/Picker/Picker.d.ts.map +1 -1
  105. package/lib/components/TaskManager/Picker/Picker.js +136 -43
  106. package/lib/components/TaskManager/Picker/Picker.js.map +1 -1
  107. package/lib/components/TaskManager/Picker/Picker.types.d.ts +11 -2
  108. package/lib/components/TaskManager/Picker/Picker.types.d.ts.map +1 -1
  109. package/lib/components/TaskManager/Picker/Picker.types.js.map +1 -1
  110. package/lib/components/TaskManager/TaskManager.context.d.ts +1 -0
  111. package/lib/components/TaskManager/TaskManager.context.d.ts.map +1 -1
  112. package/lib/components/TaskManager/TaskManager.d.ts.map +1 -1
  113. package/lib/components/TaskManager/TaskManager.js +49 -63
  114. package/lib/components/TaskManager/TaskManager.js.map +1 -1
  115. package/lib/components/TaskManager/TaskManager.styles.d.ts +15 -20
  116. package/lib/components/TaskManager/TaskManager.styles.d.ts.map +1 -1
  117. package/lib/components/TaskManager/TaskManager.styles.js +173 -166
  118. package/lib/components/TaskManager/TaskManager.styles.js.map +1 -1
  119. package/lib/components/TaskManager/TaskManager.types.d.ts +12 -6
  120. package/lib/components/TaskManager/TaskManager.types.d.ts.map +1 -1
  121. package/lib/components/TaskManager/TaskManager.types.js.map +1 -1
  122. package/lib/components/TaskManager/TaskManagerTabs.d.ts +6 -0
  123. package/lib/components/TaskManager/TaskManagerTabs.d.ts.map +1 -0
  124. package/lib/components/TaskManager/TaskManagerTabs.js +159 -0
  125. package/lib/components/TaskManager/TaskManagerTabs.js.map +1 -0
  126. package/lib/components/TaskManager/TaskView.js +1 -3
  127. package/lib/components/TaskManager/TaskView.js.map +1 -1
  128. package/lib/components/TaskManager/index.d.ts +1 -1
  129. package/lib/components/TaskManager/index.d.ts.map +1 -1
  130. package/lib/components/TaskManager/index.js.map +1 -1
  131. package/lib/index.d.ts +2 -0
  132. package/lib/index.d.ts.map +1 -1
  133. package/lib/index.js +2 -0
  134. package/lib/index.js.map +1 -1
  135. package/package.json +12 -12
  136. package/lib/components/TaskManager/TaskDrawer.d.ts +0 -6
  137. package/lib/components/TaskManager/TaskDrawer.d.ts.map +0 -1
  138. package/lib/components/TaskManager/TaskDrawer.js +0 -78
  139. package/lib/components/TaskManager/TaskDrawer.js.map +0 -1
@@ -40,17 +40,9 @@ const Locale = {
40
40
  };
41
41
  const Article = (props) => {
42
42
  const { meta, title, navigation, content, primaryActions, secondaryActions, footer, skeletonize, ...restProps } = props;
43
- return (_jsxs(Flex, Object.assign({ container: { direction: 'column', gap: 1 }, as: StyledArticleWrapper }, restProps, { children: [(navigation || primaryActions || secondaryActions) && (_jsxs(Flex, Object.assign({ container: { gap: 1, alignItems: 'center' } }, { children: [_jsx(Flex, Object.assign({ container: true, item: { grow: 1 } }, { children: navigation }), void 0),
44
- _jsxs(Flex, Object.assign({ container: { alignItems: 'center' } }, { children: [primaryActions,
45
- secondaryActions && (_jsx(MenuButton, { variant: 'simple', text: Locale.moreActions, icon: 'more', iconOnly: true, menu: {
43
+ return (_jsxs(Flex, { container: { direction: 'column', gap: 1 }, as: StyledArticleWrapper, ...restProps, children: [(navigation || primaryActions || secondaryActions) && (_jsxs(Flex, { container: { gap: 1, alignItems: 'center' }, children: [_jsx(Flex, { container: true, item: { grow: 1 }, children: navigation }, void 0), _jsxs(Flex, { container: { alignItems: 'center' }, children: [primaryActions, secondaryActions && (_jsx(MenuButton, { variant: 'simple', text: Locale.moreActions, icon: 'more', iconOnly: true, menu: {
46
44
  items: secondaryActions.map(({ text, ...rest }) => ({ ...rest, primary: text }))
47
- } }, void 0))] }), void 0)] }), void 0)),
48
- title ? (_jsx(Flex, Object.assign({ container: true, as: StyledArticleHeader }, { children: _jsx(Text, Object.assign({ variant: 'h3' }, { children: title }), void 0) }), void 0)) : (skeletonize && _jsx(LineSkeleton, { width: 'l' }, void 0)),
49
- meta && meta.length > 0 ? (_jsx(Flex, Object.assign({ container: true, item: { shrink: 0 } }, { children: _jsx(MetaList, { items: meta }, void 0) }), void 0)) : (skeletonize && (_jsxs(Flex, Object.assign({ container: true }, { children: [_jsx(LineSkeleton, { width: 's' }, void 0),
50
- _jsx(LineSkeleton, { width: 's' }, void 0),
51
- _jsx(LineSkeleton, { width: 's' }, void 0)] }), void 0))),
52
- skeletonize ? (_jsx(StyledArticleContent, { children: _jsx(ArticleSkeleton, {}, void 0) }, void 0)) : (_jsx(StyledArticleContent, { children: content }, void 0)),
53
- footer] }), void 0));
45
+ } }, void 0))] }, void 0)] }, void 0)), title ? (_jsx(Flex, { container: true, as: StyledArticleHeader, children: _jsx(Text, { variant: 'h3', children: title }, void 0) }, void 0)) : (skeletonize && _jsx(LineSkeleton, { width: 'l' }, void 0)), meta && meta.length > 0 ? (_jsx(Flex, { container: true, item: { shrink: 0 }, children: _jsx(MetaList, { items: meta }, void 0) }, void 0)) : (skeletonize && (_jsxs(Flex, { container: true, children: [_jsx(LineSkeleton, { width: 's' }, void 0), _jsx(LineSkeleton, { width: 's' }, void 0), _jsx(LineSkeleton, { width: 's' }, void 0)] }, void 0))), skeletonize ? (_jsx(StyledArticleContent, { children: _jsx(ArticleSkeleton, {}, void 0) }, void 0)) : (_jsx(StyledArticleContent, { children: content }, void 0)), footer] }, void 0));
54
46
  };
55
47
  Article.defaultProps = {
56
48
  skeletonize: false
@@ -1 +1 @@
1
- {"version":3,"file":"Article.js","sourceRoot":"","sources":["../../../src/components/Article/Article.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ReactElement, ReactNode, FunctionComponent } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n MenuItemProps,\n Flex,\n LineSkeleton,\n MenuButton,\n MetaList,\n Text,\n defaultThemeProp,\n BaseProps,\n ForwardProps\n} from '@pega/cosmos-react-core';\n\nimport ArticleFooter from './ArticleFooter';\nimport ArticleSkeleton from './ArticleSkeleton';\n\nexport interface BaseArticleProps extends BaseProps {\n /** Navigation elements */\n navigation?: ReactNode;\n /** Primary actions which needs to be displayed with an icon */\n primaryActions?: ReactNode;\n /** Secondary actions that needs to be pushed under more icon */\n secondaryActions?: {\n id: MenuItemProps['id'];\n text: MenuItemProps['primary'];\n }[];\n /** Article title */\n title: string;\n /** Array of meta data rendered through MetaList component */\n meta?: (ReactElement | string)[];\n /** Article content */\n content: ReactNode;\n /** Footer */\n footer?: ReactElement<typeof ArticleFooter>;\n /** Prop to check visibility of skeleton */\n skeletonize: boolean;\n}\n\nexport type ArticleProps =\n | (BaseArticleProps & { skeletonize?: false })\n | (Partial<BaseArticleProps> & { skeletonize: true });\n\nconst StyledArticleWrapper = styled.div(props => {\n const { theme } = props;\n return css`\n background: ${theme.base.palette['primary-background']};\n padding: calc(1.5 * ${theme.base.spacing});\n border-radius: calc(0.5 * ${theme.base['border-radius']});\n max-height: inherit;\n `;\n});\n\nconst StyledArticleHeader = styled.header`\n flex-shrink: 0;\n`;\n\nconst StyledArticleContent = styled.div(props => {\n const {\n theme,\n theme: {\n base: { spacing }\n }\n } = props;\n\n return css`\n flex-grow: 1;\n overflow-y: auto;\n padding: 0 calc(1.5 * ${spacing});\n margin: 0 calc(-1.5 * ${spacing});\n\n /* TODO - We need to think of handling this such way RTE content is not impacted with the styles inside styles/GlobalStyle.tsx */\n ul,\n ol {\n padding-left: calc(3 * ${spacing});\n }\n a {\n color: ${theme.components.link.color};\n }\n `;\n});\n\nStyledArticleContent.defaultProps = defaultThemeProp;\nStyledArticleWrapper.defaultProps = defaultThemeProp;\n\nconst Locale = {\n // FIXME: TR\n moreActions: 'More actions'\n};\n\nconst Article: FunctionComponent<ArticleProps & ForwardProps> = (props: ArticleProps) => {\n const {\n meta,\n title,\n navigation,\n content,\n primaryActions,\n secondaryActions,\n footer,\n skeletonize,\n ...restProps\n } = props;\n\n return (\n <Flex container={{ direction: 'column', gap: 1 }} as={StyledArticleWrapper} {...restProps}>\n {(navigation || primaryActions || secondaryActions) && (\n <Flex container={{ gap: 1, alignItems: 'center' }}>\n <Flex container item={{ grow: 1 }}>\n {navigation}\n </Flex>\n <Flex container={{ alignItems: 'center' }}>\n {primaryActions}\n {secondaryActions && (\n <MenuButton\n variant='simple'\n text={Locale.moreActions}\n icon='more'\n iconOnly\n menu={{\n items: secondaryActions.map(({ text, ...rest }) => ({ ...rest, primary: text }))\n }}\n />\n )}\n </Flex>\n </Flex>\n )}\n {title ? (\n <Flex container as={StyledArticleHeader}>\n <Text variant='h3'>{title}</Text>\n </Flex>\n ) : (\n skeletonize && <LineSkeleton width='l' />\n )}\n {meta && meta.length > 0 ? (\n <Flex container item={{ shrink: 0 }}>\n <MetaList items={meta} />\n </Flex>\n ) : (\n skeletonize && (\n <Flex container>\n <LineSkeleton width='s' />\n <LineSkeleton width='s' />\n <LineSkeleton width='s' />\n </Flex>\n )\n )}\n {skeletonize ? (\n <StyledArticleContent>\n <ArticleSkeleton />\n </StyledArticleContent>\n ) : (\n <StyledArticleContent>{content}</StyledArticleContent>\n )}\n {footer}\n </Flex>\n );\n};\n\nArticle.defaultProps = {\n skeletonize: false\n};\n\nexport default Article;\n"]}
1
+ {"version":3,"file":"Article.js","sourceRoot":"","sources":["../../../src/components/Article/Article.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ReactElement, ReactNode, FunctionComponent } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n MenuItemProps,\n Flex,\n LineSkeleton,\n MenuButton,\n MetaList,\n Text,\n defaultThemeProp,\n BaseProps,\n ForwardProps\n} from '@pega/cosmos-react-core';\n\nimport ArticleFooter from './ArticleFooter';\nimport ArticleSkeleton from './ArticleSkeleton';\n\nexport interface BaseArticleProps extends BaseProps {\n /** Navigation elements */\n navigation?: ReactNode;\n /** Primary actions which needs to be displayed with an icon */\n primaryActions?: ReactNode;\n /** Secondary actions that needs to be pushed under more icon */\n secondaryActions?: {\n id: MenuItemProps['id'];\n text: MenuItemProps['primary'];\n }[];\n /** Article title */\n title: string;\n /** Array of meta data rendered through MetaList component */\n meta?: (ReactElement | string)[];\n /** Article content */\n content: ReactNode;\n /** Footer */\n footer?: ReactElement<typeof ArticleFooter>;\n /** Prop to check visibility of skeleton */\n skeletonize: boolean;\n}\n\nexport type ArticleProps =\n | (BaseArticleProps & { skeletonize?: false })\n | (Partial<BaseArticleProps> & { skeletonize: true });\n\nconst StyledArticleWrapper = styled.div(props => {\n const { theme } = props;\n return css`\n background: ${theme.base.palette['primary-background']};\n padding: calc(1.5 * ${theme.base.spacing});\n border-radius: calc(0.5 * ${theme.base['border-radius']});\n max-height: inherit;\n `;\n});\n\nconst StyledArticleHeader = styled.header`\n flex-shrink: 0;\n`;\n\nconst StyledArticleContent = styled.div(props => {\n const {\n theme,\n theme: {\n base: { spacing }\n }\n } = props;\n\n return css`\n flex-grow: 1;\n overflow-y: auto;\n padding: 0 calc(1.5 * ${spacing});\n margin: 0 calc(-1.5 * ${spacing});\n\n /* TODO - We need to think of handling this such way RTE content is not impacted with the styles inside styles/GlobalStyle.tsx */\n ul,\n ol {\n padding-left: calc(3 * ${spacing});\n }\n a {\n color: ${theme.components.link.color};\n }\n `;\n});\n\nStyledArticleContent.defaultProps = defaultThemeProp;\nStyledArticleWrapper.defaultProps = defaultThemeProp;\n\nconst Locale = {\n // FIXME: TR\n moreActions: 'More actions'\n};\n\nconst Article: FunctionComponent<ArticleProps & ForwardProps> = (props: ArticleProps) => {\n const {\n meta,\n title,\n navigation,\n content,\n primaryActions,\n secondaryActions,\n footer,\n skeletonize,\n ...restProps\n } = props;\n\n return (\n <Flex container={{ direction: 'column', gap: 1 }} as={StyledArticleWrapper} {...restProps}>\n {(navigation || primaryActions || secondaryActions) && (\n <Flex container={{ gap: 1, alignItems: 'center' }}>\n <Flex container item={{ grow: 1 }}>\n {navigation}\n </Flex>\n <Flex container={{ alignItems: 'center' }}>\n {primaryActions}\n {secondaryActions && (\n <MenuButton\n variant='simple'\n text={Locale.moreActions}\n icon='more'\n iconOnly\n menu={{\n items: secondaryActions.map(({ text, ...rest }) => ({ ...rest, primary: text }))\n }}\n />\n )}\n </Flex>\n </Flex>\n )}\n {title ? (\n <Flex container as={StyledArticleHeader}>\n <Text variant='h3'>{title}</Text>\n </Flex>\n ) : (\n skeletonize && <LineSkeleton width='l' />\n )}\n {meta && meta.length > 0 ? (\n <Flex container item={{ shrink: 0 }}>\n <MetaList items={meta} />\n </Flex>\n ) : (\n skeletonize && (\n <Flex container>\n <LineSkeleton width='s' />\n <LineSkeleton width='s' />\n <LineSkeleton width='s' />\n </Flex>\n )\n )}\n {skeletonize ? (\n <StyledArticleContent>\n <ArticleSkeleton />\n </StyledArticleContent>\n ) : (\n <StyledArticleContent>{content}</StyledArticleContent>\n )}\n {footer}\n </Flex>\n );\n};\n\nArticle.defaultProps = {\n skeletonize: false\n};\n\nexport default Article;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ArticleFooter.d.ts","sourceRoot":"","sources":["../../../src/components/Article/ArticleFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAA2B,MAAM,OAAO,CAAC;AAG9E,OAAO,EAA+B,SAAS,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG/F,MAAM,WAAW,UAAU;IACzB,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,mBAAmB;IACnB,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;IACpB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC5C,qBAAqB;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AA6BD,QAAA,MAAM,aAAa,EAAE,iBAAiB,CAAC,kBAAkB,GAAG,YAAY,CA0CvE,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"ArticleFooter.d.ts","sourceRoot":"","sources":["../../../src/components/Article/ArticleFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAA2B,MAAM,OAAO,CAAC;AAG9E,OAAO,EAA+B,SAAS,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG/F,MAAM,WAAW,UAAU;IACzB,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,mBAAmB;IACnB,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;IACpB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC5C,qBAAqB;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AA6BD,QAAA,MAAM,aAAa,EAAE,iBAAiB,CAAC,kBAAkB,GAAG,YAAY,CAyCvE,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -29,13 +29,12 @@ StyledTags.defaultProps = defaultThemeProp;
29
29
  const ArticleFooter = (props) => {
30
30
  const { content, tags, onTagClick, ...restProps } = props;
31
31
  const onTagClickHandler = useCallback((event) => {
32
- onTagClick === null || onTagClick === void 0 ? void 0 : onTagClick(event.currentTarget.dataset.tagId);
32
+ onTagClick?.(event.currentTarget.dataset.tagId);
33
33
  }, [onTagClick]);
34
- return (_jsxs(Flex, Object.assign({ as: StyledArticleFooter, container: {
34
+ return (_jsxs(Flex, { as: StyledArticleFooter, container: {
35
35
  direction: 'column',
36
36
  gap: 2
37
- } }, restProps, { children: [content,
38
- tags && (_jsx(Flex, Object.assign({ container: { wrap: 'wrap' }, as: StyledTags }, { children: tags.map(tag => (_jsx(Tag, Object.assign({ tabIndex: 0, type: 'pill', variant: 'light', "data-tag-id": tag.id, title: tag.tagName, onClick: onTagClickHandler, rel: 'tag' }, { children: tag.tagName }), tag.id))) }), void 0))] }), void 0));
37
+ }, ...restProps, children: [content, tags && (_jsx(Flex, { container: { wrap: 'wrap' }, as: StyledTags, children: tags.map(tag => (_jsx(Tag, { tabIndex: 0, type: 'pill', variant: 'light', "data-tag-id": tag.id, onClick: onTagClickHandler, rel: 'tag', children: tag.tagName }, tag.id))) }, void 0))] }, void 0));
39
38
  };
40
39
  export default ArticleFooter;
41
40
  //# sourceMappingURL=ArticleFooter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArticleFooter.js","sourceRoot":"","sources":["../../../src/components/Article/ArticleFooter.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA4C,WAAW,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,EAA2B,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,mDAAmD,CAAC;AAkB9E,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACnD,OAAO,GAAG,CAAA;;;;;oBAKQ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;;gCAErB,KAAK,CAAC,IAAI,CAAC,OAAO;;GAE/C,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,mBAAmB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEpD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1C,OAAO,GAAG,CAAA;2BACe,KAAK,CAAC,IAAI,CAAC,OAAO;4BACjB,KAAK,CAAC,IAAI,CAAC,OAAO;UACpC,SAAS;4BACS,KAAK,CAAC,IAAI,CAAC,OAAO;;GAE3C,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,UAAU,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAE3C,MAAM,aAAa,GAAyD,CAC1E,KAAyB,EACzB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAE1D,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,KAA8B,EAAE,EAAE;QACjC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC;IACnD,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,OAAO,CACL,MAAC,IAAI,kBACH,EAAE,EAAE,mBAAmB,EACvB,SAAS,EAAE;YACT,SAAS,EAAE,QAAQ;YACnB,GAAG,EAAE,CAAC;SACP,IACG,SAAS,eAEZ,OAAO;YACP,IAAI,IAAI,CACP,KAAC,IAAI,kBAAC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,gBAC9C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CACf,KAAC,GAAG,kBACF,QAAQ,EAAE,CAAC,EACX,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,OAAO,iBAEF,GAAG,CAAC,EAAE,EACnB,KAAK,EAAE,GAAG,CAAC,OAAO,EAClB,OAAO,EAAE,iBAAiB,EAC1B,GAAG,EAAC,KAAK,gBAER,GAAG,CAAC,OAAO,KANP,GAAG,CAAC,EAAE,CAOP,CACP,CAAC,YACG,CACR,aACI,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import { ReactNode, FunctionComponent, MouseEvent, useCallback } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Flex, Tag, defaultThemeProp, BaseProps, ForwardProps } from '@pega/cosmos-react-core';\nimport { StyledTag } from '@pega/cosmos-react-core/lib/components/Badges/Tag';\n\nexport interface ArticleTag {\n /** Tag name */\n tagName: string;\n /** Tag id. If not set tagName is treated as id */\n id: string;\n}\n\nexport interface ArticleFooterProps extends BaseProps {\n /** Article tags */\n tags?: ArticleTag[];\n /** Callback that triggers on click of tag */\n onTagClick?: (id: ArticleTag['id']) => void;\n /** Footer content */\n content?: ReactNode;\n}\n\nconst StyledArticleFooter = styled.div(({ theme }) => {\n return css`\n flex-shrink: 0;\n &::before {\n content: '';\n display: block;\n background: ${theme.base.palette['border-line']};\n height: 0.0625rem;\n margin-bottom: calc(2 * ${theme.base.spacing});\n }\n `;\n});\n\nStyledArticleFooter.defaultProps = defaultThemeProp;\n\nconst StyledTags = styled.div(({ theme }) => {\n return css`\n padding: calc(0.25 * ${theme.base.spacing});\n margin: 0 calc(-0.5 * ${theme.base.spacing});\n & > ${StyledTag} {\n margin: calc(0.25 * ${theme.base.spacing});\n }\n `;\n});\n\nStyledTags.defaultProps = defaultThemeProp;\n\nconst ArticleFooter: FunctionComponent<ArticleFooterProps & ForwardProps> = (\n props: ArticleFooterProps\n) => {\n const { content, tags, onTagClick, ...restProps } = props;\n\n const onTagClickHandler = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n onTagClick?.(event.currentTarget.dataset.tagId!);\n },\n [onTagClick]\n );\n\n return (\n <Flex\n as={StyledArticleFooter}\n container={{\n direction: 'column',\n gap: 2\n }}\n {...restProps}\n >\n {content}\n {tags && (\n <Flex container={{ wrap: 'wrap' }} as={StyledTags}>\n {tags.map(tag => (\n <Tag\n tabIndex={0}\n type='pill'\n variant='light'\n key={tag.id}\n data-tag-id={tag.id}\n title={tag.tagName}\n onClick={onTagClickHandler}\n rel='tag'\n >\n {tag.tagName}\n </Tag>\n ))}\n </Flex>\n )}\n </Flex>\n );\n};\n\nexport default ArticleFooter;\n"]}
1
+ {"version":3,"file":"ArticleFooter.js","sourceRoot":"","sources":["../../../src/components/Article/ArticleFooter.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA4C,WAAW,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,EAA2B,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,mDAAmD,CAAC;AAkB9E,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACnD,OAAO,GAAG,CAAA;;;;;oBAKQ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;;gCAErB,KAAK,CAAC,IAAI,CAAC,OAAO;;GAE/C,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,mBAAmB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEpD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1C,OAAO,GAAG,CAAA;2BACe,KAAK,CAAC,IAAI,CAAC,OAAO;4BACjB,KAAK,CAAC,IAAI,CAAC,OAAO;UACpC,SAAS;4BACS,KAAK,CAAC,IAAI,CAAC,OAAO;;GAE3C,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,UAAU,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAE3C,MAAM,aAAa,GAAyD,CAC1E,KAAyB,EACzB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAE1D,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,KAA8B,EAAE,EAAE;QACjC,UAAU,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC;IACnD,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,OAAO,CACL,MAAC,IAAI,IACH,EAAE,EAAE,mBAAmB,EACvB,SAAS,EAAE;YACT,SAAS,EAAE,QAAQ;YACnB,GAAG,EAAE,CAAC;SACP,KACG,SAAS,aAEZ,OAAO,EACP,IAAI,IAAI,CACP,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,YAC9C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CACf,KAAC,GAAG,IACF,QAAQ,EAAE,CAAC,EACX,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,OAAO,iBAEF,GAAG,CAAC,EAAE,EACnB,OAAO,EAAE,iBAAiB,EAC1B,GAAG,EAAC,KAAK,YAER,GAAG,CAAC,OAAO,IALP,GAAG,CAAC,EAAE,CAMP,CACP,CAAC,WACG,CACR,YACI,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import { ReactNode, FunctionComponent, MouseEvent, useCallback } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Flex, Tag, defaultThemeProp, BaseProps, ForwardProps } from '@pega/cosmos-react-core';\nimport { StyledTag } from '@pega/cosmos-react-core/lib/components/Badges/Tag';\n\nexport interface ArticleTag {\n /** Tag name */\n tagName: string;\n /** Tag id. If not set tagName is treated as id */\n id: string;\n}\n\nexport interface ArticleFooterProps extends BaseProps {\n /** Article tags */\n tags?: ArticleTag[];\n /** Callback that triggers on click of tag */\n onTagClick?: (id: ArticleTag['id']) => void;\n /** Footer content */\n content?: ReactNode;\n}\n\nconst StyledArticleFooter = styled.div(({ theme }) => {\n return css`\n flex-shrink: 0;\n &::before {\n content: '';\n display: block;\n background: ${theme.base.palette['border-line']};\n height: 0.0625rem;\n margin-bottom: calc(2 * ${theme.base.spacing});\n }\n `;\n});\n\nStyledArticleFooter.defaultProps = defaultThemeProp;\n\nconst StyledTags = styled.div(({ theme }) => {\n return css`\n padding: calc(0.25 * ${theme.base.spacing});\n margin: 0 calc(-0.5 * ${theme.base.spacing});\n & > ${StyledTag} {\n margin: calc(0.25 * ${theme.base.spacing});\n }\n `;\n});\n\nStyledTags.defaultProps = defaultThemeProp;\n\nconst ArticleFooter: FunctionComponent<ArticleFooterProps & ForwardProps> = (\n props: ArticleFooterProps\n) => {\n const { content, tags, onTagClick, ...restProps } = props;\n\n const onTagClickHandler = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n onTagClick?.(event.currentTarget.dataset.tagId!);\n },\n [onTagClick]\n );\n\n return (\n <Flex\n as={StyledArticleFooter}\n container={{\n direction: 'column',\n gap: 2\n }}\n {...restProps}\n >\n {content}\n {tags && (\n <Flex container={{ wrap: 'wrap' }} as={StyledTags}>\n {tags.map(tag => (\n <Tag\n tabIndex={0}\n type='pill'\n variant='light'\n key={tag.id}\n data-tag-id={tag.id}\n onClick={onTagClickHandler}\n rel='tag'\n >\n {tag.tagName}\n </Tag>\n ))}\n </Flex>\n )}\n </Flex>\n );\n};\n\nexport default ArticleFooter;\n"]}
@@ -4,12 +4,12 @@ import { Flex, LineSkeleton, ParagraphSkeleton } from '@pega/cosmos-react-core';
4
4
  export const StyledArticleSkeleton = styled.div ``;
5
5
  const ArticleSkeleton = (props) => {
6
6
  const numberOfLines = 18;
7
- return (_jsx(StyledArticleSkeleton, Object.assign({}, props, { "aria-disabled": 'true' }, { children: _jsx(ParagraphSkeleton, { children: Array.from({ length: numberOfLines }, (_, i) => {
7
+ return (_jsx(StyledArticleSkeleton, { ...props, "aria-disabled": 'true', children: _jsx(ParagraphSkeleton, { children: Array.from({ length: numberOfLines }, (_, i) => {
8
8
  const lines = i % 3 === 0 ? ['s', 'm'] : ['s', 's', 's'];
9
- return (_jsx(Flex, Object.assign({ container: { alignItems: 'center' } }, { children: lines.map((size, j) => (
9
+ return (_jsx(Flex, { container: { alignItems: 'center' }, children: lines.map((size, j) => (
10
10
  // eslint-disable-next-line react/no-array-index-key
11
- _jsx(LineSkeleton, { width: size }, j))) }), i));
12
- }) }, void 0) }), void 0));
11
+ _jsx(LineSkeleton, { width: size }, j))) }, i));
12
+ }) }, void 0) }, void 0));
13
13
  };
14
14
  export default ArticleSkeleton;
15
15
  //# sourceMappingURL=ArticleSkeleton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArticleSkeleton.js","sourceRoot":"","sources":["../../../src/components/Article/ArticleSkeleton.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACL,IAAI,EACJ,YAAY,EAEZ,iBAAiB,EAGlB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAA,EAAE,CAAC;AAElD,MAAM,eAAe,GAA2D,CAC9E,KAA2B,EAC3B,EAAE;IACF,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,OAAO,CACL,KAAC,qBAAqB,oBAAK,KAAK,qBAAgB,MAAM,gBACpD,KAAC,iBAAiB,cACf,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,KAAK,GAAiC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACvF,OAAO,CACL,KAAC,IAAI,kBAAC,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,gBACtC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtB,oDAAoD;oBACpD,KAAC,YAAY,IAAC,KAAK,EAAE,IAAI,IAAO,CAAC,CAAI,CACtC,CAAC,KAJ4C,CAAC,CAK1C,CACR,CAAC;YACJ,CAAC,CAAC,WACgB,YACE,CACzB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC","sourcesContent":["import { FunctionComponent } from 'react';\nimport styled from 'styled-components';\n\nimport {\n Flex,\n LineSkeleton,\n LineSkeletonProps,\n ParagraphSkeleton,\n BaseProps,\n ForwardProps\n} from '@pega/cosmos-react-core';\n\nexport interface ArticleSkeletonProps extends BaseProps {}\n\nexport const StyledArticleSkeleton = styled.div``;\n\nconst ArticleSkeleton: FunctionComponent<ArticleSkeletonProps & ForwardProps> = (\n props: ArticleSkeletonProps\n) => {\n const numberOfLines = 18;\n return (\n <StyledArticleSkeleton {...props} aria-disabled='true'>\n <ParagraphSkeleton>\n {Array.from({ length: numberOfLines }, (_, i) => {\n const lines: LineSkeletonProps['width'][] = i % 3 === 0 ? ['s', 'm'] : ['s', 's', 's'];\n return (\n <Flex container={{ alignItems: 'center' }} key={i}>\n {lines.map((size, j) => (\n // eslint-disable-next-line react/no-array-index-key\n <LineSkeleton width={size} key={j} />\n ))}\n </Flex>\n );\n })}\n </ParagraphSkeleton>\n </StyledArticleSkeleton>\n );\n};\n\nexport default ArticleSkeleton;\n"]}
1
+ {"version":3,"file":"ArticleSkeleton.js","sourceRoot":"","sources":["../../../src/components/Article/ArticleSkeleton.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACL,IAAI,EACJ,YAAY,EAEZ,iBAAiB,EAGlB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAA,EAAE,CAAC;AAElD,MAAM,eAAe,GAA2D,CAC9E,KAA2B,EAC3B,EAAE;IACF,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,OAAO,CACL,KAAC,qBAAqB,OAAK,KAAK,mBAAgB,MAAM,YACpD,KAAC,iBAAiB,cACf,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,KAAK,GAAiC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACvF,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,YACtC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtB,oDAAoD;oBACpD,KAAC,YAAY,IAAC,KAAK,EAAE,IAAI,IAAO,CAAC,CAAI,CACtC,CAAC,IAJ4C,CAAC,CAK1C,CACR,CAAC;YACJ,CAAC,CAAC,WACgB,WACE,CACzB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC","sourcesContent":["import { FunctionComponent } from 'react';\nimport styled from 'styled-components';\n\nimport {\n Flex,\n LineSkeleton,\n LineSkeletonProps,\n ParagraphSkeleton,\n BaseProps,\n ForwardProps\n} from '@pega/cosmos-react-core';\n\nexport interface ArticleSkeletonProps extends BaseProps {}\n\nexport const StyledArticleSkeleton = styled.div``;\n\nconst ArticleSkeleton: FunctionComponent<ArticleSkeletonProps & ForwardProps> = (\n props: ArticleSkeletonProps\n) => {\n const numberOfLines = 18;\n return (\n <StyledArticleSkeleton {...props} aria-disabled='true'>\n <ParagraphSkeleton>\n {Array.from({ length: numberOfLines }, (_, i) => {\n const lines: LineSkeletonProps['width'][] = i % 3 === 0 ? ['s', 'm'] : ['s', 's', 's'];\n return (\n <Flex container={{ alignItems: 'center' }} key={i}>\n {lines.map((size, j) => (\n // eslint-disable-next-line react/no-array-index-key\n <LineSkeleton width={size} key={j} />\n ))}\n </Flex>\n );\n })}\n </ParagraphSkeleton>\n </StyledArticleSkeleton>\n );\n};\n\nexport default ArticleSkeleton;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ArticleList.d.ts","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleList.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,YAAY,EAEZ,GAAG,EAEJ,MAAM,OAAO,CAAC;AAGf,OAAO,EAAmC,SAAS,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGnG,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAGpD,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,iDAAiD;IACjD,MAAM,CAAC,EAAE,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAChD,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,2CAA2C;IAC3C,WAAW,EAAE,OAAO,CAAC;IACrB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B;AA0DD,QAAA,MAAM,WAAW,EAAE,iBAAiB,CAAC,gBAAgB,GAAG,YAAY,CA0CnE,CAAC;AAIF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ArticleList.d.ts","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleList.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,YAAY,EAEZ,GAAG,EAEJ,MAAM,OAAO,CAAC;AAGf,OAAO,EAAmC,SAAS,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGnG,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAGpD,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,iDAAiD;IACjD,MAAM,CAAC,EAAE,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAChD,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,2CAA2C;IAC3C,WAAW,EAAE,OAAO,CAAC;IACrB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B;AA2DD,QAAA,MAAM,WAAW,EAAE,iBAAiB,CAAC,gBAAgB,GAAG,YAAY,CA0CnE,CAAC;AAIF,eAAe,WAAW,CAAC"}
@@ -13,6 +13,7 @@ const StyledArticleList = styled.div(props => {
13
13
  overflow: auto;
14
14
  padding: 0 calc(2 * ${theme.base.spacing});
15
15
  background: ${theme.base.palette['primary-background']};
16
+ border-radius: ${theme.components.card['border-radius']};
16
17
  ${StyledCard} {
17
18
  margin-bottom: calc(2 * ${theme.base.spacing});
18
19
  }
@@ -57,11 +58,7 @@ StyledArticleListFooter.defaultProps = defaultThemeProp;
57
58
  const ArticleList = forwardRef((props, ref) => {
58
59
  const { header, children, skeletonize, footer, ...restProps } = props;
59
60
  const t = useI18n();
60
- return (_jsxs(Flex, Object.assign({ container: { direction: 'column' }, as: StyledArticleList, "aria-label": t('article_list_label_a11y').toString(), ref: ref }, restProps, { children: [header && (_jsx(Flex, Object.assign({ container: true, as: StyledArticleListHeader, "aria-label": t('article_list_filter_label_a11y').toString() }, { children: header }), void 0)),
61
- _jsx(Flex, Object.assign({ container: { direction: 'column' }, as: StyledSummaryList, role: 'feed' }, { children: skeletonize ? (_jsxs(_Fragment, { children: [_jsx(SummarySkeleton, {}, void 0),
62
- _jsx(SummarySkeleton, {}, void 0),
63
- _jsx(SummarySkeleton, {}, void 0)] }, void 0)) : (children) }), void 0),
64
- footer && (_jsx(Flex, Object.assign({ container: true, as: StyledArticleListFooter }, { children: footer }), void 0))] }), void 0));
61
+ return (_jsxs(Flex, { container: { direction: 'column' }, as: StyledArticleList, "aria-label": t('article_list_label_a11y'), ref: ref, ...restProps, children: [header && (_jsx(Flex, { container: true, as: StyledArticleListHeader, "aria-label": t('article_list_filter_label_a11y'), children: header }, void 0)), _jsx(Flex, { container: { direction: 'column' }, as: StyledSummaryList, role: 'feed', children: skeletonize ? (_jsxs(_Fragment, { children: [_jsx(SummarySkeleton, {}, void 0), _jsx(SummarySkeleton, {}, void 0), _jsx(SummarySkeleton, {}, void 0)] }, void 0)) : (children) }, void 0), footer && (_jsx(Flex, { container: true, as: StyledArticleListFooter, children: footer }, void 0))] }, void 0));
65
62
  });
66
63
  ArticleList.defaultProps = defaultProps;
67
64
  export default ArticleList;
@@ -1 +1 @@
1
- {"version":3,"file":"ArticleList.js","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleList.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n FunctionComponent,\n ReactNode,\n ReactElement,\n forwardRef,\n Ref,\n PropsWithoutRef\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Flex, useI18n, defaultThemeProp, BaseProps, ForwardProps } from '@pega/cosmos-react-core';\nimport { StyledCard } from '@pega/cosmos-react-core/lib/components/Card/Card';\n\nimport ArticleListHeader from './ArticleListHeader';\nimport SummarySkeleton from './SummarySkeleton';\n\nexport interface ArticleListProps extends BaseProps {\n /** Search/filtering criteria for article list */\n header?: ReactElement<typeof ArticleListHeader>;\n /** Content for article list */\n children?: ReactNode;\n /** Prop to check visibility of skeleton */\n skeletonize: boolean;\n /** Footer for article list */\n footer?: ReactNode;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst defaultProps: Partial<ArticleListProps> = {};\nconst StyledSummaryList = styled.ul``;\nconst StyledArticleList = styled.div(props => {\n const { theme } = props;\n return css`\n max-height: inherit;\n overflow: auto;\n padding: 0 calc(2 * ${theme.base.spacing});\n background: ${theme.base.palette['primary-background']};\n ${StyledCard} {\n margin-bottom: calc(2 * ${theme.base.spacing});\n }\n ${StyledSummaryList} {\n flex-grow: 1;\n margin: 0 0 ${theme.base.spacing} 0;\n list-style-type: none;\n > li:not(:last-child) {\n border-bottom: 0.0625rem solid ${theme.base.palette['border-line']};\n border-radius: 0;\n padding-bottom: ${theme.base.spacing};\n margin-bottom: ${theme.base.spacing};\n }\n }\n `;\n});\n\nStyledArticleList.defaultProps = defaultThemeProp;\n\nconst StyledArticleListHeader = styled.div(props => {\n const { theme } = props;\n return css`\n flex-shrink: 0;\n position: sticky;\n top: 0;\n background: ${theme.base.palette['primary-background']};\n padding: calc(2 * ${theme.base.spacing}) 0 0 0;\n z-index: 2;\n `;\n});\n\nStyledArticleListHeader.defaultProps = defaultThemeProp;\n\nconst StyledArticleListFooter = styled.div(props => {\n const { theme } = props;\n return css`\n flex-shrink: 0;\n position: sticky;\n bottom: 0;\n background: ${theme.base.palette['primary-background']};\n padding: ${theme.base.spacing} 0;\n z-index: 2;\n `;\n});\n\nStyledArticleListFooter.defaultProps = defaultThemeProp;\n\nconst ArticleList: FunctionComponent<ArticleListProps & ForwardProps> = forwardRef(\n (props: PropsWithoutRef<ArticleListProps>, ref: Ref<HTMLDivElement>) => {\n const { header, children, skeletonize, footer, ...restProps } = props;\n\n const t = useI18n();\n\n return (\n <Flex\n container={{ direction: 'column' }}\n as={StyledArticleList}\n aria-label={t('article_list_label_a11y').toString()}\n ref={ref}\n {...restProps}\n >\n {header && (\n <Flex\n container\n as={StyledArticleListHeader}\n aria-label={t('article_list_filter_label_a11y').toString()}\n >\n {header}\n </Flex>\n )}\n <Flex container={{ direction: 'column' }} as={StyledSummaryList} role='feed'>\n {skeletonize ? (\n <>\n <SummarySkeleton />\n <SummarySkeleton />\n <SummarySkeleton />\n </>\n ) : (\n children\n )}\n </Flex>\n {footer && (\n <Flex container as={StyledArticleListFooter}>\n {footer}\n </Flex>\n )}\n </Flex>\n );\n }\n);\n\nArticleList.defaultProps = defaultProps;\n\nexport default ArticleList;\n"]}
1
+ {"version":3,"file":"ArticleList.js","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleList.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n FunctionComponent,\n ReactNode,\n ReactElement,\n forwardRef,\n Ref,\n PropsWithoutRef\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Flex, useI18n, defaultThemeProp, BaseProps, ForwardProps } from '@pega/cosmos-react-core';\nimport { StyledCard } from '@pega/cosmos-react-core/lib/components/Card/Card';\n\nimport ArticleListHeader from './ArticleListHeader';\nimport SummarySkeleton from './SummarySkeleton';\n\nexport interface ArticleListProps extends BaseProps {\n /** Search/filtering criteria for article list */\n header?: ReactElement<typeof ArticleListHeader>;\n /** Content for article list */\n children?: ReactNode;\n /** Prop to check visibility of skeleton */\n skeletonize: boolean;\n /** Footer for article list */\n footer?: ReactNode;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst defaultProps: Partial<ArticleListProps> = {};\nconst StyledSummaryList = styled.ul``;\nconst StyledArticleList = styled.div(props => {\n const { theme } = props;\n return css`\n max-height: inherit;\n overflow: auto;\n padding: 0 calc(2 * ${theme.base.spacing});\n background: ${theme.base.palette['primary-background']};\n border-radius: ${theme.components.card['border-radius']};\n ${StyledCard} {\n margin-bottom: calc(2 * ${theme.base.spacing});\n }\n ${StyledSummaryList} {\n flex-grow: 1;\n margin: 0 0 ${theme.base.spacing} 0;\n list-style-type: none;\n > li:not(:last-child) {\n border-bottom: 0.0625rem solid ${theme.base.palette['border-line']};\n border-radius: 0;\n padding-bottom: ${theme.base.spacing};\n margin-bottom: ${theme.base.spacing};\n }\n }\n `;\n});\n\nStyledArticleList.defaultProps = defaultThemeProp;\n\nconst StyledArticleListHeader = styled.div(props => {\n const { theme } = props;\n return css`\n flex-shrink: 0;\n position: sticky;\n top: 0;\n background: ${theme.base.palette['primary-background']};\n padding: calc(2 * ${theme.base.spacing}) 0 0 0;\n z-index: 2;\n `;\n});\n\nStyledArticleListHeader.defaultProps = defaultThemeProp;\n\nconst StyledArticleListFooter = styled.div(props => {\n const { theme } = props;\n return css`\n flex-shrink: 0;\n position: sticky;\n bottom: 0;\n background: ${theme.base.palette['primary-background']};\n padding: ${theme.base.spacing} 0;\n z-index: 2;\n `;\n});\n\nStyledArticleListFooter.defaultProps = defaultThemeProp;\n\nconst ArticleList: FunctionComponent<ArticleListProps & ForwardProps> = forwardRef(\n (props: PropsWithoutRef<ArticleListProps>, ref: Ref<HTMLDivElement>) => {\n const { header, children, skeletonize, footer, ...restProps } = props;\n\n const t = useI18n();\n\n return (\n <Flex\n container={{ direction: 'column' }}\n as={StyledArticleList}\n aria-label={t('article_list_label_a11y')}\n ref={ref}\n {...restProps}\n >\n {header && (\n <Flex\n container\n as={StyledArticleListHeader}\n aria-label={t('article_list_filter_label_a11y')}\n >\n {header}\n </Flex>\n )}\n <Flex container={{ direction: 'column' }} as={StyledSummaryList} role='feed'>\n {skeletonize ? (\n <>\n <SummarySkeleton />\n <SummarySkeleton />\n <SummarySkeleton />\n </>\n ) : (\n children\n )}\n </Flex>\n {footer && (\n <Flex container as={StyledArticleListFooter}>\n {footer}\n </Flex>\n )}\n </Flex>\n );\n }\n);\n\nArticleList.defaultProps = defaultProps;\n\nexport default ArticleList;\n"]}
@@ -56,18 +56,13 @@ const Locale = {
56
56
  const ArticleListHeader = (props) => {
57
57
  const { as = Form, primary, secondary, onSubmit, icon, headerText, ...restProps } = props;
58
58
  const t = useI18n();
59
- return (_jsxs(StyledArticleHeader, Object.assign({ as: as, actions: _jsx(Button, Object.assign({ type: 'submit', "aria-hidden": 'true', tabIndex: '-1' }, { children: t('article_list_header_submit_label') }), void 0), role: 'search', onSubmit: (ev) => {
59
+ return (_jsxs(StyledArticleHeader, { as: as, actions: _jsx(Button, { type: 'submit', "aria-hidden": 'true', tabIndex: '-1', children: t('article_list_header_submit_label') }, void 0), role: 'search', onSubmit: (ev) => {
60
60
  ev.preventDefault();
61
61
  if (onSubmit)
62
62
  onSubmit(ev);
63
- } }, restProps, { children: [_jsxs(Flex, Object.assign({ container: { alignItems: 'center', gap: 1 } }, { children: [icon && icon,
64
- _jsx(StyledArticleListHeaderText, Object.assign({ variant: 'h2' }, { children: headerText }), void 0),
65
- primary.actions && (_jsx(MenuButton, { variant: 'simple', text: Locale.moreActions, icon: 'more', iconOnly: true, menu: {
63
+ }, ...restProps, children: [_jsxs(Flex, { container: { alignItems: 'center', gap: 1 }, children: [icon, _jsx(StyledArticleListHeaderText, { variant: 'h2', children: headerText }, void 0), primary.actions && (_jsx(MenuButton, { variant: 'simple', text: Locale.moreActions, icon: 'more', iconOnly: true, menu: {
66
64
  items: primary.actions.map(({ text, ...rest }) => ({ ...rest, primary: text }))
67
- } }, void 0))] }), void 0),
68
- _jsxs(Flex, Object.assign({ container: { alignItems: 'center', gap: 1 } }, { children: [_jsx(Flex, Object.assign({ item: { grow: 1 } }, { children: primary.search }), void 0),
69
- _jsx(Flex, Object.assign({ container: true, as: StyledHeaderActions }, { children: primary.followedFilter }), void 0)] }), void 0),
70
- secondary && (_jsx(StyledSecondaryContainer, Object.assign({ container: { gap: 1 } }, { children: secondary }), void 0))] }), void 0));
65
+ } }, void 0))] }, void 0), _jsxs(Flex, { container: { alignItems: 'center', gap: 1 }, children: [_jsx(Flex, { item: { grow: 1 }, children: primary.search }, void 0), _jsx(Flex, { container: true, as: StyledHeaderActions, children: primary.followedFilter }, void 0)] }, void 0), secondary && (_jsx(StyledSecondaryContainer, { container: { gap: 1 }, children: secondary }, void 0))] }, void 0));
71
66
  };
72
67
  export default ArticleListHeader;
73
68
  //# sourceMappingURL=ArticleListHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArticleListHeader.js","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleListHeader.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FunctionComponent, ReactNode, EventHandler, MouseEvent, ReactElement } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n Button,\n Flex,\n Form,\n MenuButton,\n SearchInput,\n useI18n,\n BaseProps,\n AsProp,\n Action,\n Icon,\n Text,\n defaultThemeProp\n} from '@pega/cosmos-react-core';\nimport { StyledFormContent } from '@pega/cosmos-react-core/lib/components/Form/Form';\n\nexport interface ArticleListHeaderProps extends BaseProps, AsProp {\n /** Header Icon and Text */\n icon?: ReactElement<typeof Icon>;\n headerText: string;\n\n /** Primary data: Drop in elements related to search or filtering of articles */\n primary: {\n search: ReactElement<typeof SearchInput>;\n followedFilter?: ReactElement;\n actions?: Action[];\n };\n /** Any other filter components to be passed */\n secondary?: ReactNode;\n /** Callback that triggers on enter */\n onSubmit?: EventHandler<MouseEvent>;\n}\n\nconst StyledArticleHeader = styled.div(({ theme }) => {\n return css`\n width: 100%;\n gap: 0;\n\n button[type='submit'] {\n height: 0;\n min-height: 0;\n width: 0.0625rem;\n clip-path: inset(50%);\n clip: rect(0, 0, 0, 0);\n margin: 0;\n overflow: hidden;\n padding: 0;\n border: 0;\n }\n > div:last-child {\n margin: 0;\n }\n\n ${StyledFormContent} {\n gap: ${theme.base.spacing};\n }\n `;\n});\n\nStyledArticleHeader.defaultProps = defaultThemeProp;\n\nconst StyledSecondaryContainer = styled(Flex)`\n margin: 0.5rem 0;\n & > * {\n flex-grow: 1;\n }\n`;\n\n/* This below style will be removed once we have margin auto support from Flex\ncomponent */\nconst StyledHeaderActions = styled.div`\n margin-left: auto;\n\n .radio-check {\n margin: 0;\n }\n`;\n\nconst StyledArticleListHeaderText = styled(Text)`\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n flex: 1;\n`;\n\nconst Locale = {\n // FIXME: TR\n moreActions: 'More actions'\n};\n\nconst ArticleListHeader: FunctionComponent<ArticleListHeaderProps> = (\n props: ArticleListHeaderProps\n) => {\n const { as = Form, primary, secondary, onSubmit, icon, headerText, ...restProps } = props;\n const t = useI18n();\n\n return (\n <StyledArticleHeader\n as={as}\n actions={\n <Button type='submit' aria-hidden='true' tabIndex='-1'>\n {t('article_list_header_submit_label')}\n </Button>\n }\n role='search'\n onSubmit={(ev: MouseEvent) => {\n ev.preventDefault();\n if (onSubmit) onSubmit(ev);\n }}\n {...restProps}\n >\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n {icon && icon}\n <StyledArticleListHeaderText variant='h2'>{headerText}</StyledArticleListHeaderText>\n {primary.actions && (\n <MenuButton\n variant='simple'\n text={Locale.moreActions}\n icon='more'\n iconOnly\n menu={{\n items: primary.actions.map(({ text, ...rest }) => ({ ...rest, primary: text }))\n }}\n />\n )}\n </Flex>\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n <Flex item={{ grow: 1 }}>{primary.search}</Flex>\n <Flex container as={StyledHeaderActions}>\n {primary.followedFilter}\n </Flex>\n </Flex>\n {secondary && (\n <StyledSecondaryContainer container={{ gap: 1 }}>{secondary}</StyledSecondaryContainer>\n )}\n </StyledArticleHeader>\n );\n};\n\nexport default ArticleListHeader;\n"]}
1
+ {"version":3,"file":"ArticleListHeader.js","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleListHeader.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FunctionComponent, ReactNode, EventHandler, MouseEvent, ReactElement } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n Button,\n Flex,\n Form,\n MenuButton,\n SearchInput,\n useI18n,\n BaseProps,\n AsProp,\n Action,\n Icon,\n Text,\n defaultThemeProp\n} from '@pega/cosmos-react-core';\nimport { StyledFormContent } from '@pega/cosmos-react-core/lib/components/Form/Form';\n\nexport interface ArticleListHeaderProps extends BaseProps, AsProp {\n /** Header Icon and Text */\n icon?: ReactElement<typeof Icon>;\n headerText: string;\n\n /** Primary data: Drop in elements related to search or filtering of articles */\n primary: {\n search: ReactElement<typeof SearchInput>;\n followedFilter?: ReactElement;\n actions?: Action[];\n };\n /** Any other filter components to be passed */\n secondary?: ReactNode;\n /** Callback that triggers on enter */\n onSubmit?: EventHandler<MouseEvent>;\n}\n\nconst StyledArticleHeader = styled.div(({ theme }) => {\n return css`\n width: 100%;\n gap: 0;\n\n button[type='submit'] {\n height: 0;\n min-height: 0;\n width: 0.0625rem;\n clip-path: inset(50%);\n clip: rect(0, 0, 0, 0);\n margin: 0;\n overflow: hidden;\n padding: 0;\n border: 0;\n }\n > div:last-child {\n margin: 0;\n }\n\n ${StyledFormContent} {\n gap: ${theme.base.spacing};\n }\n `;\n});\n\nStyledArticleHeader.defaultProps = defaultThemeProp;\n\nconst StyledSecondaryContainer = styled(Flex)`\n margin: 0.5rem 0;\n & > * {\n flex-grow: 1;\n }\n`;\n\n/* This below style will be removed once we have margin auto support from Flex\ncomponent */\nconst StyledHeaderActions = styled.div`\n margin-left: auto;\n\n .radio-check {\n margin: 0;\n }\n`;\n\nconst StyledArticleListHeaderText = styled(Text)`\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n flex: 1;\n`;\n\nconst Locale = {\n // FIXME: TR\n moreActions: 'More actions'\n};\n\nconst ArticleListHeader: FunctionComponent<ArticleListHeaderProps> = (\n props: ArticleListHeaderProps\n) => {\n const { as = Form, primary, secondary, onSubmit, icon, headerText, ...restProps } = props;\n const t = useI18n();\n\n return (\n <StyledArticleHeader\n as={as}\n actions={\n <Button type='submit' aria-hidden='true' tabIndex='-1'>\n {t('article_list_header_submit_label')}\n </Button>\n }\n role='search'\n onSubmit={(ev: MouseEvent) => {\n ev.preventDefault();\n if (onSubmit) onSubmit(ev);\n }}\n {...restProps}\n >\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n {icon}\n <StyledArticleListHeaderText variant='h2'>{headerText}</StyledArticleListHeaderText>\n {primary.actions && (\n <MenuButton\n variant='simple'\n text={Locale.moreActions}\n icon='more'\n iconOnly\n menu={{\n items: primary.actions.map(({ text, ...rest }) => ({ ...rest, primary: text }))\n }}\n />\n )}\n </Flex>\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n <Flex item={{ grow: 1 }}>{primary.search}</Flex>\n <Flex container as={StyledHeaderActions}>\n {primary.followedFilter}\n </Flex>\n </Flex>\n {secondary && (\n <StyledSecondaryContainer container={{ gap: 1 }}>{secondary}</StyledSecondaryContainer>\n )}\n </StyledArticleHeader>\n );\n};\n\nexport default ArticleListHeader;\n"]}
@@ -23,9 +23,7 @@ const ArticleCard = styled(StyledCard) `
23
23
  `;
24
24
  const ArticleSummary = (props) => {
25
25
  const { header, content, meta, articleID, ...restProps } = props;
26
- return (_jsxs(ArticleCard, Object.assign({ as: 'li', role: 'article' }, restProps, { children: [header ? _jsx(CardHeader, { children: header }, void 0) : null,
27
- _jsx(CardContent, { children: content }, void 0),
28
- meta && (_jsx(CardFooter, { children: _jsx(MetaList, { items: meta }, void 0) }, void 0))] }), articleID));
26
+ return (_jsxs(ArticleCard, { as: 'li', role: 'article', ...restProps, children: [header ? _jsx(CardHeader, { children: header }, void 0) : null, _jsx(CardContent, { children: content }, void 0), meta && (_jsx(CardFooter, { children: _jsx(MetaList, { items: meta }, void 0) }, void 0))] }, articleID));
29
27
  };
30
28
  ArticleSummary.defaultProps = defaultProps;
31
29
  export default ArticleSummary;
@@ -1 +1 @@
1
- {"version":3,"file":"ArticleSummary.js","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleSummary.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACL,WAAW,EACX,UAAU,EACV,UAAU,EAEV,QAAQ,EAIR,UAAU,EACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAC;AAY1F,MAAM,YAAY,GAAiC,EAAE,CAAC;AAEtD,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;;QAE9B,gBAAgB,OAAO,iBAAiB,OAAO,gBAAgB;;;;;QAK/D,iBAAiB,MAAM,UAAU;;;;;;;CAOxC,CAAC;AAEF,MAAM,cAAc,GAA0D,CAC5E,KAA0B,EAC1B,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IACjE,OAAO,CACL,MAAC,WAAW,kBAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,IAAqB,SAAS,eAC9D,MAAM,CAAC,CAAC,CAAC,KAAC,UAAU,cAAE,MAAM,WAAc,CAAC,CAAC,CAAC,IAAI;YAClD,KAAC,WAAW,cAAE,OAAO,WAAe;YACnC,IAAI,IAAI,CACP,KAAC,UAAU,cACT,KAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,WAAI,WACd,CACd,MAPsC,SAAS,CAQpC,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,cAAc,CAAC,YAAY,GAAG,YAAY,CAAC;AAE3C,eAAe,cAAc,CAAC","sourcesContent":["import { FunctionComponent, ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport {\n CardContent,\n CardFooter,\n CardHeader,\n Link,\n MetaList,\n Text,\n BaseProps,\n ForwardProps,\n StyledText\n} from '@pega/cosmos-react-core';\nimport { StyledCard } from '@pega/cosmos-react-core/lib/components/Card/Card';\nimport { StyledCardHeader } from '@pega/cosmos-react-core/lib/components/Card/CardHeader';\nimport { StyledCardContent } from '@pega/cosmos-react-core/lib/components/Card/CardContent';\nimport { StyledCardFooter } from '@pega/cosmos-react-core/lib/components/Card/CardFooter';\n\nexport interface ArticleSummaryProps extends BaseProps {\n /** Article summary title */\n header?: ReactElement<typeof Text> | ReactElement<typeof Link>;\n /** Summary of the article */\n content: ReactNode;\n /** Array of meta data rendered through MetaList component */\n meta?: (ReactElement | string)[];\n articleID: string;\n}\n\nconst defaultProps: Partial<ArticleSummaryProps> = {};\n\nconst ArticleCard = styled(StyledCard)`\n &&& {\n > ${StyledCardHeader}, > ${StyledCardContent}, > ${StyledCardFooter} {\n padding-left: 0;\n padding-right: 0;\n }\n\n > ${StyledCardContent} > ${StyledText} {\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n }\n`;\n\nconst ArticleSummary: FunctionComponent<ArticleSummaryProps & ForwardProps> = (\n props: ArticleSummaryProps\n) => {\n const { header, content, meta, articleID, ...restProps } = props;\n return (\n <ArticleCard as='li' role='article' key={articleID} {...restProps}>\n {header ? <CardHeader>{header}</CardHeader> : null}\n <CardContent>{content}</CardContent>\n {meta && (\n <CardFooter>\n <MetaList items={meta} />\n </CardFooter>\n )}\n </ArticleCard>\n );\n};\n\nArticleSummary.defaultProps = defaultProps;\n\nexport default ArticleSummary;\n"]}
1
+ {"version":3,"file":"ArticleSummary.js","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleSummary.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACL,WAAW,EACX,UAAU,EACV,UAAU,EAEV,QAAQ,EAIR,UAAU,EACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAC;AAY1F,MAAM,YAAY,GAAiC,EAAE,CAAC;AAEtD,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;;QAE9B,gBAAgB,OAAO,iBAAiB,OAAO,gBAAgB;;;;;QAK/D,iBAAiB,MAAM,UAAU;;;;;;;CAOxC,CAAC;AAEF,MAAM,cAAc,GAA0D,CAC5E,KAA0B,EAC1B,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IACjE,OAAO,CACL,MAAC,WAAW,IAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,KAAqB,SAAS,aAC9D,MAAM,CAAC,CAAC,CAAC,KAAC,UAAU,cAAE,MAAM,WAAc,CAAC,CAAC,CAAC,IAAI,EAClD,KAAC,WAAW,cAAE,OAAO,WAAe,EACnC,IAAI,IAAI,CACP,KAAC,UAAU,cACT,KAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,WAAI,WACd,CACd,KAPsC,SAAS,CAQpC,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,cAAc,CAAC,YAAY,GAAG,YAAY,CAAC;AAE3C,eAAe,cAAc,CAAC","sourcesContent":["import { FunctionComponent, ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport {\n CardContent,\n CardFooter,\n CardHeader,\n Link,\n MetaList,\n Text,\n BaseProps,\n ForwardProps,\n StyledText\n} from '@pega/cosmos-react-core';\nimport { StyledCard } from '@pega/cosmos-react-core/lib/components/Card/Card';\nimport { StyledCardHeader } from '@pega/cosmos-react-core/lib/components/Card/CardHeader';\nimport { StyledCardContent } from '@pega/cosmos-react-core/lib/components/Card/CardContent';\nimport { StyledCardFooter } from '@pega/cosmos-react-core/lib/components/Card/CardFooter';\n\nexport interface ArticleSummaryProps extends BaseProps {\n /** Article summary title */\n header?: ReactElement<typeof Text> | ReactElement<typeof Link>;\n /** Summary of the article */\n content: ReactNode;\n /** Array of meta data rendered through MetaList component */\n meta?: (ReactElement | string)[];\n articleID: string;\n}\n\nconst defaultProps: Partial<ArticleSummaryProps> = {};\n\nconst ArticleCard = styled(StyledCard)`\n &&& {\n > ${StyledCardHeader}, > ${StyledCardContent}, > ${StyledCardFooter} {\n padding-left: 0;\n padding-right: 0;\n }\n\n > ${StyledCardContent} > ${StyledText} {\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n }\n`;\n\nconst ArticleSummary: FunctionComponent<ArticleSummaryProps & ForwardProps> = (\n props: ArticleSummaryProps\n) => {\n const { header, content, meta, articleID, ...restProps } = props;\n return (\n <ArticleCard as='li' role='article' key={articleID} {...restProps}>\n {header ? <CardHeader>{header}</CardHeader> : null}\n <CardContent>{content}</CardContent>\n {meta && (\n <CardFooter>\n <MetaList items={meta} />\n </CardFooter>\n )}\n </ArticleCard>\n );\n};\n\nArticleSummary.defaultProps = defaultProps;\n\nexport default ArticleSummary;\n"]}
@@ -1,14 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Flex, LineSkeleton, ParagraphSkeleton } from '@pega/cosmos-react-core';
3
3
  const SummarySkeleton = (props) => {
4
- return (_jsxs(Flex, Object.assign({ as: 'li', container: {
4
+ return (_jsxs(Flex, { as: 'li', container: {
5
5
  direction: 'column'
6
- } }, props, { "aria-disabled": 'true' }, { children: [_jsx(LineSkeleton, { variant: 'link', width: 'l' }, void 0),
7
- _jsxs(ParagraphSkeleton, { children: [_jsx(LineSkeleton, {}, void 0),
8
- _jsx(LineSkeleton, { width: 's' }, void 0)] }, void 0),
9
- _jsxs(Flex, Object.assign({ container: { alignItems: 'center' } }, { children: [_jsx(LineSkeleton, { width: 's' }, void 0),
10
- _jsx(LineSkeleton, { width: 's' }, void 0),
11
- _jsx(LineSkeleton, { width: 's' }, void 0)] }), void 0)] }), void 0));
6
+ }, ...props, "aria-disabled": 'true', children: [_jsx(LineSkeleton, { variant: 'link', width: 'l' }, void 0), _jsxs(ParagraphSkeleton, { children: [_jsx(LineSkeleton, {}, void 0), _jsx(LineSkeleton, { width: 's' }, void 0)] }, void 0), _jsxs(Flex, { container: { alignItems: 'center' }, children: [_jsx(LineSkeleton, { width: 's' }, void 0), _jsx(LineSkeleton, { width: 's' }, void 0), _jsx(LineSkeleton, { width: 's' }, void 0)] }, void 0)] }, void 0));
12
7
  };
13
8
  export default SummarySkeleton;
14
9
  //# sourceMappingURL=SummarySkeleton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SummarySkeleton.js","sourceRoot":"","sources":["../../../src/components/ArticleList/SummarySkeleton.tsx"],"names":[],"mappings":";AAEA,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,iBAAiB,EAGlB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,eAAe,GAA2D,CAC9E,KAA2B,EAC3B,EAAE;IACF,OAAO,CACL,MAAC,IAAI,kBACH,EAAE,EAAC,IAAI,EACP,SAAS,EAAE;YACT,SAAS,EAAE,QAAQ;SACpB,IACG,KAAK,qBACK,MAAM,iBAEpB,KAAC,YAAY,IAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,WAAG;YACzC,MAAC,iBAAiB,eAChB,KAAC,YAAY,aAAG;oBAChB,KAAC,YAAY,IAAC,KAAK,EAAC,GAAG,WAAG,YACR;YACpB,MAAC,IAAI,kBAAC,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,iBACvC,KAAC,YAAY,IAAC,KAAK,EAAC,GAAG,WAAG;oBAC1B,KAAC,YAAY,IAAC,KAAK,EAAC,GAAG,WAAG;oBAC1B,KAAC,YAAY,IAAC,KAAK,EAAC,GAAG,WAAG,aACrB,aACF,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC","sourcesContent":["import { FunctionComponent } from 'react';\n\nimport {\n Flex,\n LineSkeleton,\n ParagraphSkeleton,\n BaseProps,\n ForwardProps\n} from '@pega/cosmos-react-core';\n\nexport interface SummarySkeletonProps extends BaseProps {}\n\nconst SummarySkeleton: FunctionComponent<SummarySkeletonProps & ForwardProps> = (\n props: SummarySkeletonProps\n) => {\n return (\n <Flex\n as='li'\n container={{\n direction: 'column'\n }}\n {...props}\n aria-disabled='true'\n >\n <LineSkeleton variant='link' width='l' />\n <ParagraphSkeleton>\n <LineSkeleton />\n <LineSkeleton width='s' />\n </ParagraphSkeleton>\n <Flex container={{ alignItems: 'center' }}>\n <LineSkeleton width='s' />\n <LineSkeleton width='s' />\n <LineSkeleton width='s' />\n </Flex>\n </Flex>\n );\n};\n\nexport default SummarySkeleton;\n"]}
1
+ {"version":3,"file":"SummarySkeleton.js","sourceRoot":"","sources":["../../../src/components/ArticleList/SummarySkeleton.tsx"],"names":[],"mappings":";AAEA,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,iBAAiB,EAGlB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,eAAe,GAA2D,CAC9E,KAA2B,EAC3B,EAAE;IACF,OAAO,CACL,MAAC,IAAI,IACH,EAAE,EAAC,IAAI,EACP,SAAS,EAAE;YACT,SAAS,EAAE,QAAQ;SACpB,KACG,KAAK,mBACK,MAAM,aAEpB,KAAC,YAAY,IAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,WAAG,EACzC,MAAC,iBAAiB,eAChB,KAAC,YAAY,aAAG,EAChB,KAAC,YAAY,IAAC,KAAK,EAAC,GAAG,WAAG,YACR,EACpB,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,aACvC,KAAC,YAAY,IAAC,KAAK,EAAC,GAAG,WAAG,EAC1B,KAAC,YAAY,IAAC,KAAK,EAAC,GAAG,WAAG,EAC1B,KAAC,YAAY,IAAC,KAAK,EAAC,GAAG,WAAG,YACrB,YACF,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC","sourcesContent":["import { FunctionComponent } from 'react';\n\nimport {\n Flex,\n LineSkeleton,\n ParagraphSkeleton,\n BaseProps,\n ForwardProps\n} from '@pega/cosmos-react-core';\n\nexport interface SummarySkeletonProps extends BaseProps {}\n\nconst SummarySkeleton: FunctionComponent<SummarySkeletonProps & ForwardProps> = (\n props: SummarySkeletonProps\n) => {\n return (\n <Flex\n as='li'\n container={{\n direction: 'column'\n }}\n {...props}\n aria-disabled='true'\n >\n <LineSkeleton variant='link' width='l' />\n <ParagraphSkeleton>\n <LineSkeleton />\n <LineSkeleton width='s' />\n </ParagraphSkeleton>\n <Flex container={{ alignItems: 'center' }}>\n <LineSkeleton width='s' />\n <LineSkeleton width='s' />\n <LineSkeleton width='s' />\n </Flex>\n </Flex>\n );\n};\n\nexport default SummarySkeleton;\n"]}
@@ -10,8 +10,7 @@ const StyledCSCaseView = styled(CaseView)(({ theme }) => {
10
10
  `;
11
11
  });
12
12
  const CSCaseView = forwardRef(({ intelligentGuidance, ...restProps }, ref) => {
13
- return (_jsxs(_Fragment, { children: [_jsx(StyledCSCaseView, Object.assign({}, restProps, { ref: ref }), void 0),
14
- intelligentGuidance] }, void 0));
13
+ return (_jsxs(_Fragment, { children: [_jsx(StyledCSCaseView, { ...restProps, ref: ref }, void 0), intelligentGuidance] }, void 0));
15
14
  });
16
15
  export default CSCaseView;
17
16
  //# sourceMappingURL=CSCaseView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CSCaseView.js","sourceRoot":"","sources":["../../../src/components/CSCaseView/CSCaseView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,UAAU,EAAwB,MAAM,OAAO,CAAC;AAC7D,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,QAAQ,EAAiB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAMvF,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACtD,OAAO,GAAG,CAAA;MACN,mBAAmB;gCACO,KAAK,CAAC,IAAI,CAAC,OAAO;;GAE/C,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAuC,UAAU,CAC/D,CACE,EAAE,mBAAmB,EAAE,GAAG,SAAS,EAAoC,EACvE,GAAwB,EACxB,EAAE;IACF,OAAO,CACL,8BACE,KAAC,gBAAgB,oBAAK,SAAS,IAAE,GAAG,EAAE,GAAG,YAAI;YAC5C,mBAAmB,YACnB,CACJ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,UAAU,CAAC","sourcesContent":["import { FC, forwardRef, PropsWithoutRef, Ref } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { ForwardProps } from '@pega/cosmos-react-core';\nimport { CaseView, CaseViewProps, StyledSummaryRegion } from '@pega/cosmos-react-work';\n\nexport interface CSCaseViewProps extends CaseViewProps {\n intelligentGuidance?: JSX.Element;\n}\n\nconst StyledCSCaseView = styled(CaseView)(({ theme }) => {\n return css`\n ${StyledSummaryRegion} {\n padding-block-end: calc(${theme.base.spacing} + 3rem);\n }\n `;\n});\n\nconst CSCaseView: FC<CSCaseViewProps & ForwardProps> = forwardRef(\n (\n { intelligentGuidance, ...restProps }: PropsWithoutRef<CSCaseViewProps>,\n ref: Ref<HTMLDivElement>\n ) => {\n return (\n <>\n <StyledCSCaseView {...restProps} ref={ref} />\n {intelligentGuidance}\n </>\n );\n }\n);\n\nexport default CSCaseView;\n"]}
1
+ {"version":3,"file":"CSCaseView.js","sourceRoot":"","sources":["../../../src/components/CSCaseView/CSCaseView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,UAAU,EAAwB,MAAM,OAAO,CAAC;AAC7D,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,QAAQ,EAAiB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAMvF,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACtD,OAAO,GAAG,CAAA;MACN,mBAAmB;gCACO,KAAK,CAAC,IAAI,CAAC,OAAO;;GAE/C,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAuC,UAAU,CAC/D,CACE,EAAE,mBAAmB,EAAE,GAAG,SAAS,EAAoC,EACvE,GAAwB,EACxB,EAAE;IACF,OAAO,CACL,8BACE,KAAC,gBAAgB,OAAK,SAAS,EAAE,GAAG,EAAE,GAAG,WAAI,EAC5C,mBAAmB,YACnB,CACJ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,UAAU,CAAC","sourcesContent":["import { FC, forwardRef, PropsWithoutRef, Ref } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { ForwardProps } from '@pega/cosmos-react-core';\nimport { CaseView, CaseViewProps, StyledSummaryRegion } from '@pega/cosmos-react-work';\n\nexport interface CSCaseViewProps extends CaseViewProps {\n intelligentGuidance?: JSX.Element;\n}\n\nconst StyledCSCaseView = styled(CaseView)(({ theme }) => {\n return css`\n ${StyledSummaryRegion} {\n padding-block-end: calc(${theme.base.spacing} + 3rem);\n }\n `;\n});\n\nconst CSCaseView: FC<CSCaseViewProps & ForwardProps> = forwardRef(\n (\n { intelligentGuidance, ...restProps }: PropsWithoutRef<CSCaseViewProps>,\n ref: Ref<HTMLDivElement>\n ) => {\n return (\n <>\n <StyledCSCaseView {...restProps} ref={ref} />\n {intelligentGuidance}\n </>\n );\n }\n);\n\nexport default CSCaseView;\n"]}
@@ -0,0 +1,6 @@
1
+ import { FunctionComponent } from 'react';
2
+ import { ForwardProps } from '@pega/cosmos-react-core';
3
+ import { CallProps } from './CallControlPanel.types';
4
+ declare const Call: FunctionComponent<CallProps & ForwardProps>;
5
+ export default Call;
6
+ //# sourceMappingURL=Call.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Call.d.ts","sourceRoot":"","sources":["../../../src/components/CallControlPanel/Call.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA2D,MAAM,OAAO,CAAC;AAEnG,OAAO,EAKL,YAAY,EAUb,MAAM,yBAAyB,CAAC;AAcjC,OAAO,EAAmB,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAiBtE,QAAA,MAAM,IAAI,EAAE,iBAAiB,CAAC,SAAS,GAAG,YAAY,CAyQrD,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,142 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useLayoutEffect, useRef, useState } from 'react';
3
+ import { Actions, Button, Flex, Icon, registerIcon, Popover, Status, SummaryItem, Text, useElement, useI18n, useOuterEvent } from '@pega/cosmos-react-core';
4
+ import * as arrowUpIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-up.icon';
5
+ import * as micSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/mic-solid.icon';
6
+ import * as micOffSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/mic-off-solid.icon';
7
+ import * as playSoldIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/play-solid.icon';
8
+ import * as pauseSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/pause-solid.icon';
9
+ import * as phoneSplitSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/phone-split-solid.icon';
10
+ import * as phoneHangupSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/phone-hangup-solid.icon';
11
+ import { StyledHoldInfo, StyledProgressContainer, StyledSLAProgress } from './CallControlPanel.styles';
12
+ import CalleePicker from './CalleePicker';
13
+ import CallTransfer from './CallTransfer';
14
+ import DTMFKeypad from './DTMFKeypad';
15
+ import StopWatch from './StopWatch';
16
+ import { calculateSla } from './utils';
17
+ registerIcon(arrowUpIcon, micSolidIcon, micOffSolidIcon, playSoldIcon, pauseSolidIcon, phoneSplitSolidIcon, phoneHangupSolidIcon);
18
+ const Call = ({ id: callId, startedAt, onHoldSince, slaConfig, participants, onPauseToggle, muted, onMuteToggle, onDTMFPress, onConsultAction, onConferenceAction, onTransferAction, onMergeCall, transferOptions }) => {
19
+ const t = useI18n();
20
+ const moreActionsButtonRef = useRef(null);
21
+ const inCallSince = startedAt instanceof Date ? startedAt.getUTCMilliseconds() : startedAt;
22
+ const [popoverEl, setPopoverRef] = useElement();
23
+ const [slaLevel, setSlaLevel] = useState(undefined);
24
+ const [showConsultPopover, setShowConsultPopover] = useState(false);
25
+ const [showConferencePopover, setShowConferencePopover] = useState(false);
26
+ const [showTransferPopover, setShowTransferPopover] = useState(false);
27
+ const [showSendDTMF, setShowSendDTMF] = useState(false);
28
+ const { slaTimeout, slaDuration } = calculateSla(Date.now() - inCallSince, slaConfig);
29
+ const appendConferenceAction = (actionItems) => {
30
+ actionItems.splice(1, 0, {
31
+ id: 'conference',
32
+ text: t('call_panel_conference_call_menu_item'),
33
+ onClick: () => setShowConferencePopover(true)
34
+ });
35
+ };
36
+ const calculateCurrentSlaLevel = () => {
37
+ const { currentSlaLevel } = calculateSla(Date.now() - inCallSince, slaConfig);
38
+ setSlaLevel(currentSlaLevel);
39
+ };
40
+ const getActionItems = (item) => {
41
+ const actionItems = [
42
+ {
43
+ id: 'consult',
44
+ text: t('call_panel_consult_call_menu_item'),
45
+ onClick: () => setShowConsultPopover(true)
46
+ },
47
+ {
48
+ id: 'transfer',
49
+ text: t('call_panel_transfer_call_menu_item'),
50
+ onClick: () => setShowTransferPopover(true)
51
+ },
52
+ {
53
+ id: 'dtmf',
54
+ text: t('call_panel_send_dtmf_menu_item'),
55
+ onClick: () => setShowSendDTMF(true)
56
+ },
57
+ {
58
+ id: 'hang_up',
59
+ text: t('call_panel_hangup_call_menu_item'),
60
+ disabled: !item.onEndCall,
61
+ onClick: () => {
62
+ if (item.onEndCall)
63
+ item.onEndCall(callId, item.id);
64
+ }
65
+ }
66
+ ];
67
+ if (onConferenceAction) {
68
+ appendConferenceAction(actionItems);
69
+ }
70
+ return actionItems;
71
+ };
72
+ useLayoutEffect(() => {
73
+ calculateCurrentSlaLevel();
74
+ const slaDurationInMillis = slaDuration && slaDuration * 1000;
75
+ const timer = setTimeout(() => {
76
+ calculateCurrentSlaLevel();
77
+ }, slaDurationInMillis);
78
+ return () => clearTimeout(timer);
79
+ }, [inCallSince, slaLevel]);
80
+ useOuterEvent('mousedown', [popoverEl], () => {
81
+ setShowConsultPopover(false);
82
+ setShowTransferPopover(false);
83
+ setShowConferencePopover(false);
84
+ setShowSendDTMF(false);
85
+ });
86
+ const onKeyDown = ({ key }) => {
87
+ if (key === 'Escape') {
88
+ setShowConsultPopover(false);
89
+ setShowTransferPopover(false);
90
+ setShowConferencePopover(false);
91
+ setShowSendDTMF(false);
92
+ }
93
+ };
94
+ useEffect(() => {
95
+ document.addEventListener('keydown', onKeyDown);
96
+ return () => {
97
+ document.removeEventListener('keydown', onKeyDown);
98
+ };
99
+ }, [popoverEl]);
100
+ let popoverContent = null;
101
+ if (showConsultPopover) {
102
+ popoverContent = (_jsx(CalleePicker, { heading: t('call_panel_consult_with_heading'), onClose: () => setShowConsultPopover(false), onCall: phoneNumber => {
103
+ onConsultAction?.(callId, phoneNumber);
104
+ setShowConsultPopover(false);
105
+ } }, void 0));
106
+ }
107
+ else if (showConferencePopover) {
108
+ popoverContent = (_jsx(CalleePicker, { heading: t('call_panel_conference_heading'), onClose: () => setShowConferencePopover(false), onCall: phoneNumber => {
109
+ onConferenceAction?.(callId, phoneNumber);
110
+ setShowConferencePopover(false);
111
+ } }, void 0));
112
+ }
113
+ else if (showTransferPopover) {
114
+ popoverContent = (_jsx(CallTransfer, { onClose: () => setShowTransferPopover(false), onTransferCall: transferData => {
115
+ onTransferAction?.(callId, transferData);
116
+ setShowTransferPopover(false);
117
+ }, transferOptions: transferOptions }, void 0));
118
+ }
119
+ else if (showSendDTMF) {
120
+ popoverContent = (_jsx(DTMFKeypad, { onClose: () => setShowSendDTMF(false), onDialButtonClick: (key) => onDTMFPress?.(callId, String.fromCharCode(key)) }, void 0));
121
+ }
122
+ return (_jsxs(StyledProgressContainer, { children: [_jsx(StyledSLAProgress, { determinate: true, placement: 'local', slaDuration: slaDuration, slaLevel: slaLevel }, void 0), participants.map((item, index) => {
123
+ return (_jsx(SummaryItem, { container: index === 0
124
+ ? {
125
+ areas: '"primary secondary actions"',
126
+ cols: 'auto minmax(0, 2fr) auto'
127
+ }
128
+ : {
129
+ areas: '"visual primary secondary actions"',
130
+ cols: 'auto auto minmax(0, 2fr) auto'
131
+ }, overflowStrategy: 'ellipsis', visual: index !== 0 && _jsx(Icon, { name: 'arrow-up' }, void 0), primary: item.name, secondary: item.info && _jsx(Text, { variant: 'secondary', children: item.info }, void 0), actions: _jsxs(Flex, { container: { wrap: 'nowrap' }, children: [slaConfig && index === 0 && (_jsx(Flex, { container: { alignItems: 'center' }, children: _jsx(StopWatch, { startTime: startedAt, timeout: slaTimeout }, void 0) }, void 0)), index === 0 && (_jsxs(_Fragment, { children: [_jsx(Button, { icon: true, variant: 'simple', disabled: onHoldSince !== undefined, onClick: () => onMuteToggle(callId), label: t(muted ? 'call_panel_unmute_mic_menu_item' : 'call_panel_mute_mic_menu_item'), children: _jsx(Icon, { name: muted ? 'mic-solid' : 'mic-off-solid' }, void 0) }, void 0), _jsx(Button, { icon: true, variant: 'simple', onClick: () => onPauseToggle(callId), label: t(onHoldSince !== undefined
132
+ ? 'call_panel_resume_call_menu_item'
133
+ : 'call_panel_pause_call_menu_item'), children: _jsx(Icon, { name: onHoldSince !== undefined ? 'play-solid' : 'pause-solid' }, void 0) }, void 0)] }, void 0)), index === 0 && slaConfig && (_jsx(Actions, { ref: moreActionsButtonRef, items: getActionItems(item) }, void 0)), onMergeCall && (_jsx(Button, { icon: true, variant: 'simple', onClick: () => onMergeCall(callId), label: t('call_panel_merge_call_menu_item'), children: _jsx(Icon, { name: 'phone-split-solid' }, void 0) }, 'merge')), (!slaConfig || index !== 0) && (_jsx(Button, { icon: true, variant: 'simple', onClick: () => {
134
+ if (item.onEndCall)
135
+ item.onEndCall(callId, item.id);
136
+ }, label: t('call_panel_hangup_call_menu_item'), children: _jsx(Icon, { name: 'phone-hangup-solid' }, void 0) }, 'hang_up'))] }, void 0) }, item.id));
137
+ }), onHoldSince !== undefined && (_jsx(Status, { as: StyledHoldInfo, variant: 'pending', children: t('call_panel_call_on_hold', [
138
+ _jsx(StopWatch, { startTime: onHoldSince }, void 0)
139
+ ]) }, void 0)), _jsx(Popover, { target: moreActionsButtonRef.current, ref: setPopoverRef, placement: 'top-end', show: showConsultPopover || showTransferPopover || showSendDTMF || showConferencePopover, children: popoverContent }, void 0)] }, void 0));
140
+ };
141
+ export default Call;
142
+ //# sourceMappingURL=Call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Call.js","sourceRoot":"","sources":["../../../src/components/CallControlPanel/Call.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FunctionComponent, ReactNode, useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nimport {\n Action,\n Actions,\n Button,\n Flex,\n ForwardProps,\n Icon,\n registerIcon,\n Popover,\n Status,\n SummaryItem,\n Text,\n useElement,\n useI18n,\n useOuterEvent\n} from '@pega/cosmos-react-core';\nimport * as arrowUpIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-up.icon';\nimport * as micSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/mic-solid.icon';\nimport * as micOffSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/mic-off-solid.icon';\nimport * as playSoldIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/play-solid.icon';\nimport * as pauseSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/pause-solid.icon';\nimport * as phoneSplitSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/phone-split-solid.icon';\nimport * as phoneHangupSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/phone-hangup-solid.icon';\n\nimport {\n StyledHoldInfo,\n StyledProgressContainer,\n StyledSLAProgress\n} from './CallControlPanel.styles';\nimport { CallParticipant, CallProps } from './CallControlPanel.types';\nimport CalleePicker from './CalleePicker';\nimport CallTransfer from './CallTransfer';\nimport DTMFKeypad from './DTMFKeypad';\nimport StopWatch from './StopWatch';\nimport { calculateSla } from './utils';\n\nregisterIcon(\n arrowUpIcon,\n micSolidIcon,\n micOffSolidIcon,\n playSoldIcon,\n pauseSolidIcon,\n phoneSplitSolidIcon,\n phoneHangupSolidIcon\n);\n\nconst Call: FunctionComponent<CallProps & ForwardProps> = ({\n id: callId,\n startedAt,\n onHoldSince,\n slaConfig,\n participants,\n onPauseToggle,\n muted,\n onMuteToggle,\n onDTMFPress,\n onConsultAction,\n onConferenceAction,\n onTransferAction,\n onMergeCall,\n transferOptions\n}: CallProps & ForwardProps) => {\n const t = useI18n();\n const moreActionsButtonRef = useRef<HTMLButtonElement>(null);\n const inCallSince = startedAt instanceof Date ? startedAt.getUTCMilliseconds() : startedAt;\n const [popoverEl, setPopoverRef] = useElement<HTMLElement>();\n const [slaLevel, setSlaLevel] = useState<number | undefined>(undefined);\n const [showConsultPopover, setShowConsultPopover] = useState(false);\n const [showConferencePopover, setShowConferencePopover] = useState(false);\n const [showTransferPopover, setShowTransferPopover] = useState(false);\n const [showSendDTMF, setShowSendDTMF] = useState(false);\n const { slaTimeout, slaDuration } = calculateSla(Date.now() - inCallSince, slaConfig);\n\n const appendConferenceAction = (actionItems: Action[]) => {\n actionItems.splice(1, 0, {\n id: 'conference',\n text: t('call_panel_conference_call_menu_item'),\n onClick: () => setShowConferencePopover(true)\n });\n };\n\n const calculateCurrentSlaLevel = (): void => {\n const { currentSlaLevel } = calculateSla(Date.now() - inCallSince, slaConfig);\n setSlaLevel(currentSlaLevel);\n };\n\n const getActionItems = (item: CallParticipant): Action[] => {\n const actionItems = [\n {\n id: 'consult',\n text: t('call_panel_consult_call_menu_item'),\n onClick: () => setShowConsultPopover(true)\n },\n\n {\n id: 'transfer',\n text: t('call_panel_transfer_call_menu_item'),\n onClick: () => setShowTransferPopover(true)\n },\n {\n id: 'dtmf',\n text: t('call_panel_send_dtmf_menu_item'),\n onClick: () => setShowSendDTMF(true)\n },\n {\n id: 'hang_up',\n text: t('call_panel_hangup_call_menu_item'),\n disabled: !item.onEndCall,\n onClick: () => {\n if (item.onEndCall) item.onEndCall(callId, item.id);\n }\n }\n ];\n if (onConferenceAction) {\n appendConferenceAction(actionItems);\n }\n return actionItems;\n };\n\n useLayoutEffect(() => {\n calculateCurrentSlaLevel();\n const slaDurationInMillis = slaDuration && slaDuration * 1000;\n\n const timer = setTimeout(() => {\n calculateCurrentSlaLevel();\n }, slaDurationInMillis);\n\n return () => clearTimeout(timer);\n }, [inCallSince, slaLevel]);\n\n useOuterEvent('mousedown', [popoverEl], () => {\n setShowConsultPopover(false);\n setShowTransferPopover(false);\n setShowConferencePopover(false);\n setShowSendDTMF(false);\n });\n\n const onKeyDown = ({ key }: KeyboardEvent) => {\n if (key === 'Escape') {\n setShowConsultPopover(false);\n setShowTransferPopover(false);\n setShowConferencePopover(false);\n setShowSendDTMF(false);\n }\n };\n\n useEffect(() => {\n document.addEventListener('keydown', onKeyDown);\n return () => {\n document.removeEventListener('keydown', onKeyDown);\n };\n }, [popoverEl]);\n\n let popoverContent: ReactNode = null;\n if (showConsultPopover) {\n popoverContent = (\n <CalleePicker\n heading={t('call_panel_consult_with_heading')}\n onClose={() => setShowConsultPopover(false)}\n onCall={phoneNumber => {\n onConsultAction?.(callId, phoneNumber);\n setShowConsultPopover(false);\n }}\n />\n );\n } else if (showConferencePopover) {\n popoverContent = (\n <CalleePicker\n heading={t('call_panel_conference_heading')}\n onClose={() => setShowConferencePopover(false)}\n onCall={phoneNumber => {\n onConferenceAction?.(callId, phoneNumber);\n setShowConferencePopover(false);\n }}\n />\n );\n } else if (showTransferPopover) {\n popoverContent = (\n <CallTransfer\n onClose={() => setShowTransferPopover(false)}\n onTransferCall={transferData => {\n onTransferAction?.(callId, transferData);\n setShowTransferPopover(false);\n }}\n transferOptions={transferOptions}\n />\n );\n } else if (showSendDTMF) {\n popoverContent = (\n <DTMFKeypad\n onClose={() => setShowSendDTMF(false)}\n onDialButtonClick={(key: number) => onDTMFPress?.(callId, String.fromCharCode(key))}\n />\n );\n }\n\n return (\n <StyledProgressContainer>\n <StyledSLAProgress\n determinate\n placement='local'\n slaDuration={slaDuration}\n slaLevel={slaLevel}\n />\n {participants.map((item, index) => {\n return (\n <SummaryItem\n container={\n index === 0\n ? {\n areas: '\"primary secondary actions\"',\n cols: 'auto minmax(0, 2fr) auto'\n }\n : {\n areas: '\"visual primary secondary actions\"',\n cols: 'auto auto minmax(0, 2fr) auto'\n }\n }\n overflowStrategy='ellipsis'\n visual={index !== 0 && <Icon name='arrow-up' />}\n primary={item.name}\n secondary={item.info && <Text variant='secondary'>{item.info}</Text>}\n key={item.id}\n actions={\n <Flex container={{ wrap: 'nowrap' }}>\n {slaConfig && index === 0 && (\n <Flex container={{ alignItems: 'center' }}>\n <StopWatch startTime={startedAt} timeout={slaTimeout} />\n </Flex>\n )}\n {index === 0 && (\n <>\n <Button\n icon\n variant='simple'\n disabled={onHoldSince !== undefined}\n onClick={() => onMuteToggle(callId)}\n label={t(\n muted ? 'call_panel_unmute_mic_menu_item' : 'call_panel_mute_mic_menu_item'\n )}\n >\n <Icon name={muted ? 'mic-solid' : 'mic-off-solid'} />\n </Button>\n <Button\n icon\n variant='simple'\n onClick={() => onPauseToggle(callId)}\n label={t(\n onHoldSince !== undefined\n ? 'call_panel_resume_call_menu_item'\n : 'call_panel_pause_call_menu_item'\n )}\n >\n <Icon name={onHoldSince !== undefined ? 'play-solid' : 'pause-solid'} />\n </Button>\n </>\n )}\n {index === 0 && slaConfig && (\n <Actions ref={moreActionsButtonRef} items={getActionItems(item)} />\n )}\n\n {onMergeCall && (\n <Button\n icon\n variant='simple'\n key='merge'\n onClick={() => onMergeCall(callId)}\n label={t('call_panel_merge_call_menu_item')}\n >\n <Icon name='phone-split-solid' />\n </Button>\n )}\n\n {(!slaConfig || index !== 0) && (\n <Button\n icon\n variant='simple'\n key='hang_up'\n onClick={() => {\n if (item.onEndCall) item.onEndCall(callId, item.id);\n }}\n label={t('call_panel_hangup_call_menu_item')}\n >\n <Icon name='phone-hangup-solid' />\n </Button>\n )}\n </Flex>\n }\n />\n );\n })}\n {onHoldSince !== undefined && (\n <Status as={StyledHoldInfo} variant='pending'>\n {\n t('call_panel_call_on_hold', [\n <StopWatch startTime={onHoldSince} />\n ]) as unknown as string\n }\n </Status>\n )}\n\n <Popover\n target={moreActionsButtonRef.current}\n ref={setPopoverRef}\n placement='top-end'\n show={showConsultPopover || showTransferPopover || showSendDTMF || showConferencePopover}\n >\n {popoverContent}\n </Popover>\n </StyledProgressContainer>\n );\n};\n\nexport default Call;\n"]}
@@ -0,0 +1,6 @@
1
+ import { FunctionComponent } from 'react';
2
+ import { ForwardProps } from '@pega/cosmos-react-core';
3
+ import type { CallControlPanelProps } from './CallControlPanel.types';
4
+ declare const CallControlPanel: FunctionComponent<CallControlPanelProps & ForwardProps>;
5
+ export default CallControlPanel;
6
+ //# sourceMappingURL=CallControlPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallControlPanel.d.ts","sourceRoot":"","sources":["../../../src/components/CallControlPanel/CallControlPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAOlB,MAAM,OAAO,CAAC;AAEf,OAAO,EAaL,YAAY,EAGb,MAAM,yBAAyB,CAAC;AAMjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAatE,QAAA,MAAM,gBAAgB,EAAE,iBAAiB,CAAC,qBAAqB,GAAG,YAAY,CAgJ7E,CAAC;AAEF,eAAe,gBAAgB,CAAC"}