@pega/cosmos-react-cs 4.0.0-dev.2.0 → 4.0.0-dev.21.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 (165) hide show
  1. package/lib/components/Article/Article.d.ts +29 -12
  2. package/lib/components/Article/Article.d.ts.map +1 -1
  3. package/lib/components/Article/Article.js +38 -16
  4. package/lib/components/Article/Article.js.map +1 -1
  5. package/lib/components/Article/ArticleFooter.d.ts +29 -8
  6. package/lib/components/Article/ArticleFooter.d.ts.map +1 -1
  7. package/lib/components/Article/ArticleFooter.js +22 -8
  8. package/lib/components/Article/ArticleFooter.js.map +1 -1
  9. package/lib/components/Article/ArticleMeta.d.ts +13 -0
  10. package/lib/components/Article/ArticleMeta.d.ts.map +1 -0
  11. package/lib/components/Article/ArticleMeta.js +24 -0
  12. package/lib/components/Article/ArticleMeta.js.map +1 -0
  13. package/lib/components/Article/index.d.ts +2 -3
  14. package/lib/components/Article/index.d.ts.map +1 -1
  15. package/lib/components/Article/index.js.map +1 -1
  16. package/lib/components/ArticleList/ArticleList.d.ts +3 -14
  17. package/lib/components/ArticleList/ArticleList.d.ts.map +1 -1
  18. package/lib/components/ArticleList/ArticleList.js +79 -35
  19. package/lib/components/ArticleList/ArticleList.js.map +1 -1
  20. package/lib/components/ArticleList/ArticleList.types.d.ts +79 -0
  21. package/lib/components/ArticleList/ArticleList.types.d.ts.map +1 -0
  22. package/lib/components/ArticleList/ArticleList.types.js +2 -0
  23. package/lib/components/ArticleList/ArticleList.types.js.map +1 -0
  24. package/lib/components/ArticleList/ArticleListFilter.d.ts +6 -0
  25. package/lib/components/ArticleList/ArticleListFilter.d.ts.map +1 -0
  26. package/lib/components/ArticleList/ArticleListFilter.js +60 -0
  27. package/lib/components/ArticleList/ArticleListFilter.js.map +1 -0
  28. package/lib/components/ArticleList/ArticleListHeader.d.ts +2 -18
  29. package/lib/components/ArticleList/ArticleListHeader.d.ts.map +1 -1
  30. package/lib/components/ArticleList/ArticleListHeader.js +11 -59
  31. package/lib/components/ArticleList/ArticleListHeader.js.map +1 -1
  32. package/lib/components/ArticleList/ArticleSummary.d.ts +4 -11
  33. package/lib/components/ArticleList/ArticleSummary.d.ts.map +1 -1
  34. package/lib/components/ArticleList/ArticleSummary.js +36 -20
  35. package/lib/components/ArticleList/ArticleSummary.js.map +1 -1
  36. package/lib/components/ArticleList/index.d.ts +3 -4
  37. package/lib/components/ArticleList/index.d.ts.map +1 -1
  38. package/lib/components/ArticleList/index.js +1 -1
  39. package/lib/components/ArticleList/index.js.map +1 -1
  40. package/lib/components/CallControlPanel/AttachInteractionDialog.d.ts +9 -4
  41. package/lib/components/CallControlPanel/AttachInteractionDialog.d.ts.map +1 -1
  42. package/lib/components/CallControlPanel/AttachInteractionDialog.js +15 -16
  43. package/lib/components/CallControlPanel/AttachInteractionDialog.js.map +1 -1
  44. package/lib/components/CallControlPanel/Call.d.ts.map +1 -1
  45. package/lib/components/CallControlPanel/Call.js +30 -20
  46. package/lib/components/CallControlPanel/Call.js.map +1 -1
  47. package/lib/components/CallControlPanel/CallControlPanel.d.ts.map +1 -1
  48. package/lib/components/CallControlPanel/CallControlPanel.js +24 -21
  49. package/lib/components/CallControlPanel/CallControlPanel.js.map +1 -1
  50. package/lib/components/CallControlPanel/CallControlPanel.styles.js +1 -1
  51. package/lib/components/CallControlPanel/CallControlPanel.styles.js.map +1 -1
  52. package/lib/components/CallControlPanel/CallControlPanel.types.d.ts +11 -17
  53. package/lib/components/CallControlPanel/CallControlPanel.types.d.ts.map +1 -1
  54. package/lib/components/CallControlPanel/CallControlPanel.types.js.map +1 -1
  55. package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.d.ts +3 -1
  56. package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.d.ts.map +1 -1
  57. package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.js +16 -11
  58. package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.js.map +1 -1
  59. package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.d.ts +5 -1
  60. package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.d.ts.map +1 -1
  61. package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.js +8 -6
  62. package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.js.map +1 -1
  63. package/lib/components/CallControlPanel/ContactList/ContactList.types.d.ts +1 -1
  64. package/lib/components/CallControlPanel/ContactList/ContactList.types.d.ts.map +1 -1
  65. package/lib/components/CallControlPanel/ContactList/ContactList.types.js.map +1 -1
  66. package/lib/components/CallControlPanel/ExternalCTI.d.ts +1 -3
  67. package/lib/components/CallControlPanel/ExternalCTI.d.ts.map +1 -1
  68. package/lib/components/CallControlPanel/ExternalCTI.js +9 -7
  69. package/lib/components/CallControlPanel/ExternalCTI.js.map +1 -1
  70. package/lib/components/CallControlPanel/FloatingPanel.d.ts.map +1 -1
  71. package/lib/components/CallControlPanel/FloatingPanel.js +3 -1
  72. package/lib/components/CallControlPanel/FloatingPanel.js.map +1 -1
  73. package/lib/components/CallControlPanel/StopWatch.d.ts +3 -1
  74. package/lib/components/CallControlPanel/StopWatch.d.ts.map +1 -1
  75. package/lib/components/CallControlPanel/StopWatch.js +2 -2
  76. package/lib/components/CallControlPanel/StopWatch.js.map +1 -1
  77. package/lib/components/CallControlPanel/index.d.ts +1 -1
  78. package/lib/components/CallControlPanel/index.d.ts.map +1 -1
  79. package/lib/components/CallControlPanel/index.js.map +1 -1
  80. package/lib/components/CallControlPanel/utils.d.ts.map +1 -1
  81. package/lib/components/CallControlPanel/utils.js +0 -1
  82. package/lib/components/CallControlPanel/utils.js.map +1 -1
  83. package/lib/components/DialPad/DialPad.types.d.ts +3 -3
  84. package/lib/components/DialPad/DialPad.types.d.ts.map +1 -1
  85. package/lib/components/DialPad/DialPadDialog.d.ts.map +1 -1
  86. package/lib/components/DialPad/DialPadDialog.js +1 -0
  87. package/lib/components/DialPad/DialPadDialog.js.map +1 -1
  88. package/lib/components/DialPad/DialPadKeyboard.d.ts +1 -1
  89. package/lib/components/DialPad/DialPadKeyboard.d.ts.map +1 -1
  90. package/lib/components/DialPad/KeyboardNavigation.js.map +1 -1
  91. package/lib/components/DialPad/index.d.ts +1 -1
  92. package/lib/components/DialPad/index.d.ts.map +1 -1
  93. package/lib/components/DialPad/index.js.map +1 -1
  94. package/lib/components/InteractionNotification/CountdownButton.d.ts +15 -0
  95. package/lib/components/InteractionNotification/CountdownButton.d.ts.map +1 -0
  96. package/lib/components/InteractionNotification/CountdownButton.js +42 -0
  97. package/lib/components/InteractionNotification/CountdownButton.js.map +1 -0
  98. package/lib/components/InteractionNotification/InteractionNotification.d.ts +10 -1
  99. package/lib/components/InteractionNotification/InteractionNotification.d.ts.map +1 -1
  100. package/lib/components/InteractionNotification/InteractionNotification.js +56 -24
  101. package/lib/components/InteractionNotification/InteractionNotification.js.map +1 -1
  102. package/lib/components/InteractionTimer/InteractionTimer.d.ts +1 -1
  103. package/lib/components/InteractionTimer/InteractionTimer.d.ts.map +1 -1
  104. package/lib/components/InteractionTimer/InteractionTimer.js +22 -4
  105. package/lib/components/InteractionTimer/InteractionTimer.js.map +1 -1
  106. package/lib/components/InteractionTimer/index.d.ts +2 -1
  107. package/lib/components/InteractionTimer/index.d.ts.map +1 -1
  108. package/lib/components/InteractionTimer/index.js.map +1 -1
  109. package/lib/components/Picker/Picker.d.ts +6 -0
  110. package/lib/components/Picker/Picker.d.ts.map +1 -0
  111. package/lib/components/Picker/Picker.js +109 -0
  112. package/lib/components/Picker/Picker.js.map +1 -0
  113. package/lib/components/Picker/Picker.styles.d.ts +10 -0
  114. package/lib/components/Picker/Picker.styles.d.ts.map +1 -0
  115. package/lib/components/Picker/Picker.styles.js +59 -0
  116. package/lib/components/Picker/Picker.styles.js.map +1 -0
  117. package/lib/components/Picker/Picker.types.d.ts +35 -0
  118. package/lib/components/Picker/Picker.types.d.ts.map +1 -0
  119. package/lib/components/Picker/Picker.types.js.map +1 -0
  120. package/lib/components/Picker/index.d.ts +2 -0
  121. package/lib/components/Picker/index.d.ts.map +1 -0
  122. package/lib/components/Picker/index.js +2 -0
  123. package/lib/components/Picker/index.js.map +1 -0
  124. package/lib/components/TaskManager/TaskManager.d.ts.map +1 -1
  125. package/lib/components/TaskManager/TaskManager.js +50 -54
  126. package/lib/components/TaskManager/TaskManager.js.map +1 -1
  127. package/lib/components/TaskManager/TaskManager.styles.d.ts +7 -3
  128. package/lib/components/TaskManager/TaskManager.styles.d.ts.map +1 -1
  129. package/lib/components/TaskManager/TaskManager.styles.js +35 -11
  130. package/lib/components/TaskManager/TaskManager.styles.js.map +1 -1
  131. package/lib/components/TaskManager/TaskManager.types.d.ts +6 -6
  132. package/lib/components/TaskManager/TaskManager.types.d.ts.map +1 -1
  133. package/lib/components/TaskManager/TaskManager.types.js.map +1 -1
  134. package/lib/components/TaskManager/TaskManagerTabs.d.ts.map +1 -1
  135. package/lib/components/TaskManager/TaskManagerTabs.js +18 -19
  136. package/lib/components/TaskManager/TaskManagerTabs.js.map +1 -1
  137. package/lib/components/TaskManager/TaskPicker.d.ts +19 -0
  138. package/lib/components/TaskManager/TaskPicker.d.ts.map +1 -0
  139. package/lib/components/TaskManager/TaskPicker.js +89 -0
  140. package/lib/components/TaskManager/TaskPicker.js.map +1 -0
  141. package/lib/components/TaskManager/index.d.ts +2 -2
  142. package/lib/components/TaskManager/index.d.ts.map +1 -1
  143. package/lib/components/TaskManager/index.js +1 -1
  144. package/lib/components/TaskManager/index.js.map +1 -1
  145. package/lib/index.d.ts +1 -0
  146. package/lib/index.d.ts.map +1 -1
  147. package/lib/index.js +1 -0
  148. package/lib/index.js.map +1 -1
  149. package/package.json +13 -15
  150. package/lib/components/Article/ArticleSkeleton.d.ts +0 -8
  151. package/lib/components/Article/ArticleSkeleton.d.ts.map +0 -1
  152. package/lib/components/Article/ArticleSkeleton.js +0 -15
  153. package/lib/components/Article/ArticleSkeleton.js.map +0 -1
  154. package/lib/components/ArticleList/SummarySkeleton.d.ts +0 -7
  155. package/lib/components/ArticleList/SummarySkeleton.d.ts.map +0 -1
  156. package/lib/components/ArticleList/SummarySkeleton.js +0 -9
  157. package/lib/components/ArticleList/SummarySkeleton.js.map +0 -1
  158. package/lib/components/TaskManager/Picker/Picker.d.ts +0 -14
  159. package/lib/components/TaskManager/Picker/Picker.d.ts.map +0 -1
  160. package/lib/components/TaskManager/Picker/Picker.js +0 -229
  161. package/lib/components/TaskManager/Picker/Picker.js.map +0 -1
  162. package/lib/components/TaskManager/Picker/Picker.types.d.ts +0 -27
  163. package/lib/components/TaskManager/Picker/Picker.types.d.ts.map +0 -1
  164. package/lib/components/TaskManager/Picker/Picker.types.js.map +0 -1
  165. /package/lib/components/{TaskManager/Picker → Picker}/Picker.types.js +0 -0
@@ -0,0 +1,89 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef, useCallback, useEffect, useRef, useState } from 'react';
3
+ import styled, { css } from 'styled-components';
4
+ import { useI18n, useConsolidatedRef, useElement, useUID, useOuterEvent, Flex, Button, Icon, Text, useFocusTrap, useEvent, FormDialog, defaultThemeProp } from '@pega/cosmos-react-core';
5
+ import { StyledChildrenWrap, StyledDialogContent, StyledDialogHeader } from '@pega/cosmos-react-core/lib/components/Dialog/Dialog.styles';
6
+ import Dialog from '@pega/cosmos-react-core/lib/components/Dialog/Dialog';
7
+ import { StyledMenu } from '@pega/cosmos-react-core/lib/components/Menu/Menu.styles';
8
+ import Picker from '../Picker';
9
+ export const StyledSingleTaskDialog = styled(Dialog)(() => {
10
+ return css `
11
+ ${StyledMenu} {
12
+ overflow: auto;
13
+ }
14
+ `;
15
+ });
16
+ export const StyledMultiTaskDialog = styled(FormDialog)(({ theme: { base: { spacing } } }) => {
17
+ return css `
18
+ ${StyledDialogContent},
19
+ ${StyledChildrenWrap} {
20
+ display: flex;
21
+ }
22
+
23
+ ${StyledDialogHeader} {
24
+ padding-inline: ${spacing};
25
+ }
26
+
27
+ ${StyledDialogContent} {
28
+ padding-inline: 0;
29
+ }
30
+
31
+ ${StyledMenu} {
32
+ overflow: auto;
33
+ }
34
+ `;
35
+ });
36
+ StyledMultiTaskDialog.defaultProps = defaultThemeProp;
37
+ const TaskPicker = forwardRef(({ items, onAdd, onCancel, target, ...restProps }, ref) => {
38
+ const t = useI18n();
39
+ const headingId = useUID();
40
+ const [selections, setSelections] = useState([]);
41
+ const [enableMultiSelect, setEnableMultiSelect] = useState(false);
42
+ const [pickerEl, setPickerEl] = useElement();
43
+ const pickerRef = useConsolidatedRef(ref, setPickerEl);
44
+ const initialRender = useRef(true);
45
+ const toggleHandleRef = useRef(null);
46
+ const onSelectionChange = (selectedItems) => {
47
+ setSelections(selectedItems);
48
+ };
49
+ useOuterEvent('mousedown', [target, pickerRef], () => {
50
+ onCancel?.();
51
+ });
52
+ const onModeToggle = () => {
53
+ setSelections([]);
54
+ setEnableMultiSelect(curr => !curr);
55
+ };
56
+ useEffect(() => {
57
+ if (!enableMultiSelect && selections?.length) {
58
+ onAdd(selections);
59
+ }
60
+ }, [selections, enableMultiSelect]);
61
+ useEffect(() => {
62
+ if (initialRender.current) {
63
+ initialRender.current = false;
64
+ }
65
+ else {
66
+ toggleHandleRef.current?.focusToggleSwitch();
67
+ }
68
+ }, [enableMultiSelect]);
69
+ const onKeydown = useCallback((e) => {
70
+ const { key } = e;
71
+ if (key === 'Escape') {
72
+ onCancel?.();
73
+ }
74
+ }, [onCancel]);
75
+ useFocusTrap(pickerRef, false, [onCancel, pickerEl, enableMultiSelect]);
76
+ useEvent('keydown', onKeydown, { dependencies: [pickerEl, enableMultiSelect] });
77
+ const pickerContent = (_jsx(Picker, { ...restProps, contextualLabel: t('task_manager_cases').toLowerCase(), items: items, multiSelect: enableMultiSelect, onModeToggle: onModeToggle, reorderSelections: true, selections: selections, onSelectionChange: onSelectionChange, handle: toggleHandleRef }));
78
+ return enableMultiSelect ? (_jsx(StyledMultiTaskDialog, { ...restProps, target: target, heading: t('add_cases'), ref: pickerRef, onCancel: () => {
79
+ onCancel();
80
+ }, onSubmit: {
81
+ text: t('add'),
82
+ disabled: !selections.length,
83
+ handler: () => {
84
+ onAdd(selections);
85
+ }
86
+ }, children: pickerContent })) : (_jsxs(Flex, { ...restProps, container: { direction: 'column', gap: 1 }, as: StyledSingleTaskDialog, target: target, labelledbyId: headingId, ref: pickerRef, children: [_jsxs(Flex, { container: { justify: 'between', alignItems: 'center', pad: 1 }, children: [_jsx(Text, { id: headingId, variant: 'h2', children: t('task_manager_add_case') }), _jsx(Button, { icon: true, variant: 'simple', onClick: onCancel, label: t('close'), "aria-label": t('close_noun', [t('task_manager_add_case')]), children: _jsx(Icon, { name: 'times' }) })] }), pickerContent] }));
87
+ });
88
+ export default TaskPicker;
89
+ //# sourceMappingURL=TaskPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskPicker.js","sourceRoot":"","sources":["../../../src/components/TaskManager/TaskPicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n forwardRef,\n FunctionComponent,\n PropsWithoutRef,\n Ref,\n useCallback,\n useEffect,\n useRef,\n useState\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n ForwardProps,\n useI18n,\n useConsolidatedRef,\n useElement,\n useUID,\n useOuterEvent,\n Flex,\n Button,\n Icon,\n Text,\n useFocusTrap,\n useEvent,\n MenuItemProps,\n FormDialog,\n defaultThemeProp,\n BaseProps,\n FormDialogProps\n} from '@pega/cosmos-react-core';\nimport {\n StyledChildrenWrap,\n StyledDialogContent,\n StyledDialogHeader\n} from '@pega/cosmos-react-core/lib/components/Dialog/Dialog.styles';\nimport Dialog from '@pega/cosmos-react-core/lib/components/Dialog/Dialog';\nimport { StyledMenu } from '@pega/cosmos-react-core/lib/components/Menu/Menu.styles';\n\nimport { PickerProps, SwitchHandleValue } from '../Picker/Picker.types';\nimport Picker from '../Picker';\n\nexport interface TaskPickerProps extends BaseProps, Pick<PickerProps, 'items'> {\n /** Callback when add button is clicked */\n onAdd: (selections: MenuItemProps[]) => void;\n /** Callback when cancel button is clicked */\n onCancel: () => void;\n /** Target for the modal */\n target: FormDialogProps['target'];\n /** Picker reference . */\n ref?: Ref<HTMLDivElement>;\n}\n\nexport const StyledSingleTaskDialog: typeof Dialog = styled(Dialog)(() => {\n return css`\n ${StyledMenu} {\n overflow: auto;\n }\n `;\n});\n\nexport const StyledMultiTaskDialog = styled(FormDialog)(\n ({\n theme: {\n base: { spacing }\n }\n }) => {\n return css`\n ${StyledDialogContent},\n ${StyledChildrenWrap} {\n display: flex;\n }\n\n ${StyledDialogHeader} {\n padding-inline: ${spacing};\n }\n\n ${StyledDialogContent} {\n padding-inline: 0;\n }\n\n ${StyledMenu} {\n overflow: auto;\n }\n `;\n }\n);\n\nStyledMultiTaskDialog.defaultProps = defaultThemeProp;\n\nconst TaskPicker: FunctionComponent<TaskPickerProps & ForwardProps> = forwardRef(\n (\n { items, onAdd, onCancel, target, ...restProps }: PropsWithoutRef<TaskPickerProps>,\n ref: TaskPickerProps['ref']\n ) => {\n const t = useI18n();\n const headingId = useUID();\n const [selections, setSelections] = useState<MenuItemProps[]>([]);\n const [enableMultiSelect, setEnableMultiSelect] = useState(false);\n const [pickerEl, setPickerEl] = useElement<HTMLDivElement>();\n const pickerRef = useConsolidatedRef(ref, setPickerEl);\n const initialRender = useRef(true);\n const toggleHandleRef = useRef<SwitchHandleValue>(null);\n\n const onSelectionChange = (selectedItems: MenuItemProps[]) => {\n setSelections(selectedItems);\n };\n\n useOuterEvent('mousedown', [target, pickerRef], () => {\n onCancel?.();\n });\n\n const onModeToggle = () => {\n setSelections([]);\n setEnableMultiSelect(curr => !curr);\n };\n\n useEffect(() => {\n if (!enableMultiSelect && selections?.length) {\n onAdd(selections);\n }\n }, [selections, enableMultiSelect]);\n\n useEffect(() => {\n if (initialRender.current) {\n initialRender.current = false;\n } else {\n toggleHandleRef.current?.focusToggleSwitch();\n }\n }, [enableMultiSelect]);\n\n const onKeydown = useCallback(\n (e: KeyboardEvent) => {\n const { key } = e;\n if (key === 'Escape') {\n onCancel?.();\n }\n },\n [onCancel]\n );\n\n useFocusTrap(pickerRef, false, [onCancel, pickerEl, enableMultiSelect]);\n\n useEvent('keydown', onKeydown, { dependencies: [pickerEl, enableMultiSelect] });\n\n const pickerContent = (\n <Picker\n {...restProps}\n contextualLabel={t('task_manager_cases').toLowerCase()}\n items={items}\n multiSelect={enableMultiSelect}\n onModeToggle={onModeToggle}\n reorderSelections\n selections={selections}\n onSelectionChange={onSelectionChange}\n handle={toggleHandleRef}\n />\n );\n\n return enableMultiSelect ? (\n <StyledMultiTaskDialog\n {...restProps}\n target={target}\n heading={t('add_cases')}\n ref={pickerRef}\n onCancel={() => {\n onCancel();\n }}\n onSubmit={{\n text: t('add'),\n disabled: !selections.length,\n handler: () => {\n onAdd(selections);\n }\n }}\n >\n {pickerContent}\n </StyledMultiTaskDialog>\n ) : (\n <Flex\n {...restProps}\n container={{ direction: 'column', gap: 1 }}\n as={StyledSingleTaskDialog}\n target={target}\n labelledbyId={headingId}\n ref={pickerRef}\n >\n <Flex container={{ justify: 'between', alignItems: 'center', pad: 1 }}>\n <Text id={headingId} variant='h2'>\n {t('task_manager_add_case')}\n </Text>\n <Button\n icon\n variant='simple'\n onClick={onCancel}\n label={t('close')}\n aria-label={t('close_noun', [t('task_manager_add_case')])}\n >\n <Icon name='times' />\n </Button>\n </Flex>\n {pickerContent}\n </Flex>\n );\n }\n);\n\nexport default TaskPicker;\n"]}
@@ -1,5 +1,5 @@
1
1
  export { default } from './TaskManager';
2
2
  export { default as TaskView } from './TaskView';
3
- export { TaskManagerProps, TaskProps, TaskManagerTabsProps, TaskViewProps, DialogueProps } from './TaskManager.types';
4
- export { default as Picker } from './Picker/Picker';
3
+ export type { TaskManagerProps, TaskProps, TaskManagerTabsProps, TaskViewProps, DialogueProps } from './TaskManager.types';
4
+ export { default as TaskPicker } from './TaskPicker';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TaskManager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,aAAa,EACb,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TaskManager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,aAAa,EACb,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export { default } from './TaskManager';
2
2
  export { default as TaskView } from './TaskView';
3
- export { default as Picker } from './Picker/Picker';
3
+ export { default as TaskPicker } from './TaskPicker';
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/TaskManager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQjD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC","sourcesContent":["export { default } from './TaskManager';\nexport { default as TaskView } from './TaskView';\nexport {\n TaskManagerProps,\n TaskProps,\n TaskManagerTabsProps,\n TaskViewProps,\n DialogueProps\n} from './TaskManager.types';\nexport { default as Picker } from './Picker/Picker';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/TaskManager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQjD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC","sourcesContent":["export { default } from './TaskManager';\nexport { default as TaskView } from './TaskView';\nexport type {\n TaskManagerProps,\n TaskProps,\n TaskManagerTabsProps,\n TaskViewProps,\n DialogueProps\n} from './TaskManager.types';\nexport { default as TaskPicker } from './TaskPicker';\n"]}
package/lib/index.d.ts CHANGED
@@ -11,6 +11,7 @@ export * from './components/DialPad';
11
11
  export { default as InteractionNotification } from './components/InteractionNotification';
12
12
  export { default as InteractionTimer } from './components/InteractionTimer';
13
13
  export * from './components/InteractionTimer';
14
+ export { default as Picker } from './components/Picker';
14
15
  export { default as TaskManager } from './components/TaskManager';
15
16
  export * from './components/TaskManager';
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,cAAc,0BAA0B,CAAC"}
package/lib/index.js CHANGED
@@ -12,6 +12,7 @@ export * from './components/DialPad';
12
12
  export { default as InteractionNotification } from './components/InteractionNotification';
13
13
  export { default as InteractionTimer } from './components/InteractionTimer';
14
14
  export * from './components/InteractionTimer';
15
+ export { default as Picker } from './components/Picker';
15
16
  export { default as TaskManager } from './components/TaskManager';
16
17
  export * from './components/TaskManager';
17
18
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,cAAc,0BAA0B,CAAC","sourcesContent":["// This file is autogenerated. Any changes will be overwritten.\nexport { default as Article } from './components/Article';\nexport * from './components/Article';\nexport { default as ArticleList } from './components/ArticleList';\nexport * from './components/ArticleList';\nexport { default as CallControlPanel } from './components/CallControlPanel';\nexport * from './components/CallControlPanel';\nexport { default as CTIPanel } from './components/CTIPanel';\nexport * from './components/CTIPanel';\nexport { default as DialPad } from './components/DialPad';\nexport * from './components/DialPad';\nexport { default as InteractionNotification } from './components/InteractionNotification';\nexport { default as InteractionTimer } from './components/InteractionTimer';\nexport * from './components/InteractionTimer';\nexport { default as TaskManager } from './components/TaskManager';\nexport * from './components/TaskManager';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,cAAc,0BAA0B,CAAC","sourcesContent":["// This file is autogenerated. Any changes will be overwritten.\nexport { default as Article } from './components/Article';\nexport * from './components/Article';\nexport { default as ArticleList } from './components/ArticleList';\nexport * from './components/ArticleList';\nexport { default as CallControlPanel } from './components/CallControlPanel';\nexport * from './components/CallControlPanel';\nexport { default as CTIPanel } from './components/CTIPanel';\nexport * from './components/CTIPanel';\nexport { default as DialPad } from './components/DialPad';\nexport * from './components/DialPad';\nexport { default as InteractionNotification } from './components/InteractionNotification';\nexport { default as InteractionTimer } from './components/InteractionTimer';\nexport * from './components/InteractionTimer';\nexport { default as Picker } from './components/Picker';\nexport { default as TaskManager } from './components/TaskManager';\nexport * from './components/TaskManager';\n"]}
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@pega/cosmos-react-cs",
3
- "version": "4.0.0-dev.2.0",
4
- "author": "Pegasystems",
5
- "license": "SEE LICENSE IN LICENSE",
3
+ "version": "4.0.0-dev.21.0",
6
4
  "repository": {
7
5
  "type": "git",
8
6
  "url": "https://github.com/pegasystems/cosmos-react.git",
9
7
  "directory": "packages/cosmos-cs"
10
8
  },
9
+ "license": "SEE LICENSE IN LICENSE",
10
+ "author": "Pegasystems",
11
+ "sideEffects": false,
11
12
  "main": "lib/index.js",
12
13
  "types": "lib/index.d.ts",
13
14
  "files": [
@@ -15,13 +16,12 @@
15
16
  "README.md",
16
17
  "lib"
17
18
  ],
18
- "sideEffects": false,
19
19
  "scripts": {
20
20
  "build": "tsc -b"
21
21
  },
22
22
  "dependencies": {
23
- "@pega/cosmos-react-core": "4.0.0-dev.2.0",
24
- "@pega/cosmos-react-dnd": "4.0.0-dev.2.0",
23
+ "@pega/cosmos-react-core": "4.0.0-dev.21.0",
24
+ "@pega/cosmos-react-dnd": "4.0.0-dev.21.0",
25
25
  "@types/react": "^16.14.24 || ^17.0.38",
26
26
  "@types/react-dom": "^16.9.14 || ^17.0.11",
27
27
  "@types/styled-components": "^5.1.26",
@@ -31,16 +31,14 @@
31
31
  "styled-components": "^5.2.0"
32
32
  },
33
33
  "devDependencies": {
34
- "@storybook/addon-a11y": "^6.4.19",
35
- "@storybook/addon-actions": "^6.4.19",
36
- "@storybook/addon-storysource": "^6.4.19",
37
- "@storybook/addon-toolbars": "^6.4.19",
38
- "@storybook/addons": "^6.4.19",
39
- "@storybook/react": "^6.4.19",
40
- "@storybook/testing-react": "^1.2.4",
41
- "@storybook/theming": "^6.4.19",
34
+ "@storybook/addon-a11y": "^7.0.24",
35
+ "@storybook/addon-actions": "^7.0.24",
36
+ "@storybook/addon-storysource": "^7.0.24",
37
+ "@storybook/addon-toolbars": "^7.0.24",
38
+ "@storybook/react": "^7.0.24",
39
+ "@storybook/theming": "^7.0.24",
42
40
  "@testing-library/react": "^12.1.3",
43
41
  "@testing-library/user-event": "^13.5.0",
44
- "typescript": "~4.7.2"
42
+ "typescript": "~5.0.2"
45
43
  }
46
44
  }
@@ -1,8 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- import { BaseProps, ForwardProps } from '@pega/cosmos-react-core';
3
- export interface ArticleSkeletonProps extends BaseProps {
4
- }
5
- export declare const StyledArticleSkeleton: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
6
- declare const ArticleSkeleton: FunctionComponent<ArticleSkeletonProps & ForwardProps>;
7
- export default ArticleSkeleton;
8
- //# sourceMappingURL=ArticleSkeleton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ArticleSkeleton.d.ts","sourceRoot":"","sources":["../../../src/components/Article/ArticleSkeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,EAKL,SAAS,EACT,YAAY,EACb,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,oBAAqB,SAAQ,SAAS;CAAG;AAE1D,eAAO,MAAM,qBAAqB,yGAAe,CAAC;AAElD,QAAA,MAAM,eAAe,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,YAAY,CAqB3E,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,15 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import styled from 'styled-components';
3
- import { Flex, LineSkeleton, ParagraphSkeleton } from '@pega/cosmos-react-core';
4
- export const StyledArticleSkeleton = styled.div ``;
5
- const ArticleSkeleton = (props) => {
6
- const numberOfLines = 18;
7
- return (_jsx(StyledArticleSkeleton, { ...props, "aria-disabled": 'true', children: _jsx(ParagraphSkeleton, { children: Array.from({ length: numberOfLines }, (_, i) => {
8
- const lines = i % 3 === 0 ? ['s', 'm'] : ['s', 's', 's'];
9
- return (_jsx(Flex, { container: { alignItems: 'center' }, children: lines.map((size, j) => (
10
- // eslint-disable-next-line react/no-array-index-key
11
- _jsx(LineSkeleton, { width: size }, j))) }, i));
12
- }) }) }));
13
- };
14
- export default ArticleSkeleton;
15
- //# sourceMappingURL=ArticleSkeleton.js.map
@@ -1 +0,0 @@
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,GACgB,GACE,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,7 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- import { BaseProps, ForwardProps } from '@pega/cosmos-react-core';
3
- export interface SummarySkeletonProps extends BaseProps {
4
- }
5
- declare const SummarySkeleton: FunctionComponent<SummarySkeletonProps & ForwardProps>;
6
- export default SummarySkeleton;
7
- //# sourceMappingURL=SummarySkeleton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SummarySkeleton.d.ts","sourceRoot":"","sources":["../../../src/components/ArticleList/SummarySkeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAIL,SAAS,EACT,YAAY,EACb,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,oBAAqB,SAAQ,SAAS;CAAG;AAE1D,QAAA,MAAM,eAAe,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,YAAY,CAwB3E,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,9 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Flex, LineSkeleton, ParagraphSkeleton } from '@pega/cosmos-react-core';
3
- const SummarySkeleton = (props) => {
4
- return (_jsxs(Flex, { as: 'li', container: {
5
- direction: 'column'
6
- }, ...props, "aria-disabled": 'true', children: [_jsx(LineSkeleton, { variant: 'link', width: 'l' }), _jsxs(ParagraphSkeleton, { children: [_jsx(LineSkeleton, {}), _jsx(LineSkeleton, { width: 's' })] }), _jsxs(Flex, { container: { alignItems: 'center' }, children: [_jsx(LineSkeleton, { width: 's' }), _jsx(LineSkeleton, { width: 's' }), _jsx(LineSkeleton, { width: 's' })] })] }));
7
- };
8
- export default SummarySkeleton;
9
- //# sourceMappingURL=SummarySkeleton.js.map
@@ -1 +0,0 @@
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,GAAG,EACzC,MAAC,iBAAiB,eAChB,KAAC,YAAY,KAAG,EAChB,KAAC,YAAY,IAAC,KAAK,EAAC,GAAG,GAAG,IACR,EACpB,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,aACvC,KAAC,YAAY,IAAC,KAAK,EAAC,GAAG,GAAG,EAC1B,KAAC,YAAY,IAAC,KAAK,EAAC,GAAG,GAAG,EAC1B,KAAC,YAAY,IAAC,KAAK,EAAC,GAAG,GAAG,IACrB,IACF,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,14 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- import { ForwardProps } from '@pega/cosmos-react-core';
3
- import { PickerProps } from './Picker.types';
4
- export declare const StyledPickerHeader: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
5
- export declare const StyledAddTasks: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
6
- export declare const StyledSelectedTasks: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
7
- export declare const StyledSummaryItem: import("styled-components").StyledComponent<FunctionComponent<import("@pega/cosmos-react-core").SummaryItemProps & ForwardProps>, import("styled-components").DefaultTheme, {}, never>;
8
- export declare const StyledPickerFooter: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
9
- export declare const StyledDDList: import("styled-components").StyledComponent<"ul", import("styled-components").DefaultTheme, {}, never>;
10
- export declare const StyledPicker: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
11
- export declare const StyledDragHandle: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
12
- declare const Picker: FunctionComponent<PickerProps & ForwardProps>;
13
- export default Picker;
14
- //# sourceMappingURL=Picker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Picker.d.ts","sourceRoot":"","sources":["../../../../src/components/TaskManager/Picker/Picker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAOlB,MAAM,OAAO,CAAC;AAGf,OAAO,EAKL,YAAY,EAeb,MAAM,yBAAyB,CAAC;AAOjC,OAAO,EAA8B,WAAW,EAAqB,MAAM,gBAAgB,CAAC;AAG5F,eAAO,MAAM,kBAAkB,yGAK7B,CAAC;AAGH,eAAO,MAAM,cAAc,yGAO1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,yGAU9B,CAAC;AAGH,eAAO,MAAM,iBAAiB,wLAO5B,CAAC;AAGH,eAAO,MAAM,kBAAkB,yGAK7B,CAAC;AAGH,eAAO,MAAM,YAAY,wGAMvB,CAAC;AAIH,eAAO,MAAM,YAAY,yGAExB,CAAC;AAEF,eAAO,MAAM,gBAAgB,yGAK5B,CAAC;AAiEF,QAAA,MAAM,MAAM,EAAE,iBAAiB,CAAC,WAAW,GAAG,YAAY,CAiQzD,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,229 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
- import styled, { css } from 'styled-components';
4
- import { Button, Count, defaultThemeProp, Flex, Icon, Menu, menuHelpers, EmptyState, SearchInput, SummaryItem, Text, useI18n, Switch, useArrows, useConsolidatedRef, useElement, registerIcon, getFocusables } from '@pega/cosmos-react-core';
5
- import { DragDropList, DragDropManager } from '@pega/cosmos-react-dnd';
6
- import * as timesIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/times.icon';
7
- import * as dragIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/drag.icon';
8
- import * as trashIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/trash.icon';
9
- registerIcon(timesIcon, dragIcon, trashIcon);
10
- export const StyledPickerHeader = styled.div(({ theme }) => {
11
- return css `
12
- padding-inline-start: calc(2 * ${theme.base.spacing});
13
- padding-inline-end: calc(1.25 * ${theme.base.spacing});
14
- `;
15
- });
16
- StyledPickerHeader.defaultProps = defaultThemeProp;
17
- export const StyledAddTasks = styled.div `
18
- width: 17.5rem;
19
- max-height: 24rem;
20
- header {
21
- padding-top: 0;
22
- border-bottom: none;
23
- }
24
- `;
25
- export const StyledSelectedTasks = styled.div(({ theme }) => {
26
- return css `
27
- width: 17.5rem;
28
- max-height: 24rem;
29
- padding: ${theme.base.spacing} 0 0 ${theme.base.spacing};
30
- border-inline-start: 0.0625rem solid ${theme.base.palette['border-line']};
31
- > h3 {
32
- padding: 0 0 ${theme.base.spacing} ${theme.base.spacing};
33
- }
34
- `;
35
- });
36
- StyledSelectedTasks.defaultProps = defaultThemeProp;
37
- export const StyledSummaryItem = styled(SummaryItem)(({ theme }) => {
38
- return css `
39
- padding: ${theme.base.spacing} 0;
40
- &:not(:last-child) {
41
- border-bottom: 0.0625rem solid ${theme.base.palette['border-line']};
42
- }
43
- `;
44
- });
45
- StyledSummaryItem.defaultProps = defaultThemeProp;
46
- export const StyledPickerFooter = styled.div(({ theme }) => {
47
- return css `
48
- border-top: 0.0625rem solid ${theme.base.palette['border-line']};
49
- padding: ${theme.base.spacing};
50
- `;
51
- });
52
- StyledPickerFooter.defaultProps = defaultThemeProp;
53
- export const StyledDDList = styled.ul(({ theme }) => {
54
- return css `
55
- padding-inline-end: calc(0.25 * ${theme.base.spacing});
56
- height: 26rem;
57
- overflow-y: auto;
58
- `;
59
- });
60
- StyledDDList.defaultProps = defaultThemeProp;
61
- export const StyledPicker = styled.div `
62
- height: 100%;
63
- `;
64
- export const StyledDragHandle = styled.div `
65
- cursor: move;
66
- > svg {
67
- display: block;
68
- }
69
- `;
70
- const StyledCount = styled(Count)(({ theme }) => {
71
- return css `
72
- margin-inline-start: calc(0.5 * ${theme.base.spacing});
73
- `;
74
- });
75
- StyledCount.defaultProps = defaultThemeProp;
76
- const SelectedItemRenderer = ({ dragRef, previewRef, data }) => {
77
- const t = useI18n();
78
- return (_jsx("li", { children: _jsx(StyledSummaryItem, { ref: previewRef, visual: _jsx(StyledDragHandle, { ref: dragRef, children: _jsx(Icon, { name: 'drag' }) }), primary: data?.primary, secondary: data?.secondary, actions: _jsx(Button, { variant: 'simple', icon: true, label: t('task_manager_delete_task'), onClick: () => data?.onRemoveSelection?.(data.id), children: _jsx(Icon, { name: 'trash' }) }) }) }));
79
- };
80
- const DraggableSelectedList = ({ selectedItems, onChange, itemRenderer }) => {
81
- return (_jsx(DragDropManager, { children: _jsx(DragDropList, { as: StyledDDList, accept: 'string', items: selectedItems.map(item => ({
82
- id: item.id,
83
- type: 'string',
84
- data: item
85
- })), itemRenderer: itemRenderer, onChange: onChange }) }));
86
- };
87
- const Picker = forwardRef(({ id, items, emptyText, title, placeholder, onAdd, onCancel, ...restProps }, ref) => {
88
- const t = useI18n();
89
- const [initialItems, setItems] = useState(items);
90
- const [searchInput, setSearchInput] = useState('');
91
- const [selectMultipleToggle, setSelectMultipleToggle] = useState(false);
92
- const filterRegex = new RegExp(searchInput.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&'), 'i');
93
- const [selections, setSelections] = useState([]);
94
- const searchEleRef = useRef(null);
95
- const selectedTasksWrapperRef = useRef(null);
96
- const [pickerEl, setPickerEl] = useElement();
97
- const pickerRef = useConsolidatedRef(ref, setPickerEl);
98
- useEffect(() => {
99
- setItems(items);
100
- }, [items]);
101
- const onKeydown = useCallback((e) => {
102
- const { key } = e;
103
- if (key === 'Escape') {
104
- onCancel?.();
105
- }
106
- else if (key === 'Tab' && pickerEl) {
107
- const focusableContent = getFocusables(pickerRef);
108
- if (!focusableContent || focusableContent.length < 2)
109
- return;
110
- const firstFocusableElement = focusableContent[0];
111
- const lastFocusableElement = focusableContent[focusableContent.length - 1];
112
- if (e.shiftKey) {
113
- if (document.activeElement === firstFocusableElement) {
114
- lastFocusableElement.focus();
115
- e.preventDefault();
116
- }
117
- }
118
- else if (document.activeElement === lastFocusableElement) {
119
- firstFocusableElement.focus();
120
- e.preventDefault();
121
- }
122
- }
123
- // when focus is in the list setting the tabindex of first element as -1 and on focusing out the tabindex to be 0
124
- const focusEl = selectedTasksWrapperRef.current;
125
- if (!focusEl)
126
- return;
127
- const focusable = Array.from(focusEl.querySelectorAll('button'));
128
- if (focusable.length === 0)
129
- return;
130
- if (focusEl.contains(document.activeElement))
131
- focusable[0].tabIndex = -1;
132
- else if (focusable[0].tabIndex === -1)
133
- focusable[0].tabIndex = 0;
134
- }, [onCancel, pickerEl, selectMultipleToggle]);
135
- useEffect(() => {
136
- document.addEventListener('keydown', onKeydown);
137
- return () => {
138
- document.removeEventListener('keydown', onKeydown);
139
- };
140
- }, [pickerEl, selectMultipleToggle]);
141
- const renderItems = useMemo(() => {
142
- return menuHelpers.mapTree(searchInput
143
- ? menuHelpers
144
- .flatten(initialItems)
145
- .filter(({ primary, items: childItems }) => {
146
- return filterRegex.test(primary) && !childItems?.length;
147
- })
148
- : initialItems, item => {
149
- let selectable = false;
150
- if (!item.items) {
151
- selectable = true;
152
- }
153
- return {
154
- ...item,
155
- selected: selectable ? !!item.selected : undefined
156
- };
157
- });
158
- }, [searchInput, items, filterRegex]);
159
- const removeTasks = useCallback((uid) => {
160
- setItems((cur) => menuHelpers.toggleSelected(cur, uid, 'multi-select'));
161
- setSelections(cur => {
162
- const itemToRemove = menuHelpers.getItem(cur, uid);
163
- return cur.filter(item => item.id !== itemToRemove?.id);
164
- });
165
- // 0 second timeout added because DOM needs to be up to date after list is updated before running query
166
- // setting the focus to the first element in the list on deletion and if empty then to search input
167
- setTimeout(() => {
168
- const focusable = getFocusables(selectedTasksWrapperRef);
169
- if (focusable.length > 0)
170
- focusable[0].focus();
171
- else
172
- searchEleRef.current.focus();
173
- }, 0);
174
- }, []);
175
- const toggleSelectedRegion = () => {
176
- setSelectMultipleToggle(curr => !curr);
177
- };
178
- useArrows(selectedTasksWrapperRef, {
179
- selector: 'button',
180
- dir: 'up-down'
181
- }, [selections.length]);
182
- return (_jsxs(Flex, { as: StyledPicker, container: { direction: 'column' }, ref: pickerRef, id: id, children: [_jsxs(Flex, { as: StyledPickerHeader, container: { justify: 'between', alignItems: 'center', pad: 1 }, children: [_jsx(Text, { variant: 'h3', children: t('add_tasks') }), _jsx(Button, { variant: 'simple', onClick: onCancel, "aria-label": t('task_picker_close'), icon: true, children: _jsx(Icon, { name: 'times' }) })] }), _jsxs(Flex, { container: true, children: [_jsx(StyledAddTasks, { children: _jsx(Menu, { items: renderItems, onItemClick: (uid) => {
183
- const clickedItem = menuHelpers.getItem(renderItems, uid);
184
- const parentItem = clickedItem?.ancestors
185
- ? clickedItem.ancestors[0]
186
- : menuHelpers.getParentItem(renderItems, uid);
187
- if (clickedItem) {
188
- if (selectMultipleToggle) {
189
- setItems((cur) => menuHelpers.toggleSelected(cur, uid, 'multi-select'));
190
- if (selections.find(item => item.id === uid)) {
191
- setSelections(cur => cur.filter(item => item.id !== clickedItem?.id));
192
- }
193
- else {
194
- setSelections(cur => {
195
- let secondary;
196
- if (parentItem)
197
- secondary = menuHelpers.isItem(parentItem)
198
- ? parentItem.primary
199
- : parentItem.label;
200
- return [
201
- ...cur,
202
- {
203
- ...clickedItem,
204
- secondary,
205
- onRemoveSelection: removeTasks
206
- }
207
- ];
208
- });
209
- }
210
- setSearchInput('');
211
- }
212
- else {
213
- onAdd([clickedItem]);
214
- }
215
- }
216
- }, focusControlEl: searchEleRef.current || undefined, emptyText: emptyText || t('no_items'), accent: filterRegex, ...restProps, mode: selectMultipleToggle ? 'multi-select' : 'action', header: _jsxs(Flex, { container: { direction: 'column', gap: 1 }, children: [_jsx(SearchInput, { ref: searchEleRef, value: searchInput, onSearchChange: setSearchInput, placeholder: placeholder || t('search_placeholder_default'), autoFocus: true }), _jsx(Switch, { label: t('select_multiple'), on: selectMultipleToggle, onChange: toggleSelectedRegion })] }), arrowNavigationUnsupported: true }) }), selectMultipleToggle && (_jsxs(Flex, { as: StyledSelectedTasks, container: { direction: 'column' }, ref: selectedTasksWrapperRef, children: [_jsx(Text, { variant: 'h3', children: t('selected_tasks') }), selections.length > 0 ? (_jsx(DraggableSelectedList, { selectedItems: selections, onChange: newItems => {
217
- setSelections(newItems.map(({ type, data }) => ({
218
- ...data,
219
- type
220
- })));
221
- }, itemRenderer: SelectedItemRenderer })) : (_jsx(EmptyState, { message: t('no_selected_tasks') }))] }))] }), selectMultipleToggle && (_jsxs(Flex, { as: StyledPickerFooter, container: { justify: 'between' }, children: [_jsx(Button, { onClick: onCancel, "aria-label": t('cancel'), children: "Cancel" }), _jsxs(Button, { variant: 'primary', disabled: !selections.length, onClick: () => {
222
- onAdd?.(selections);
223
- setItems(initialItems);
224
- }, "aria-label": t('task_manager_picker_add_label', [selections?.length], {
225
- count: selections?.length
226
- }), children: [t('add'), !!selections?.length && _jsx(StyledCount, { children: selections.length })] })] }))] }));
227
- });
228
- export default Picker;
229
- //# sourceMappingURL=Picker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Picker.js","sourceRoot":"","sources":["../../../../src/components/TaskManager/Picker/Picker.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n forwardRef,\n FunctionComponent,\n PropsWithoutRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n Button,\n Count,\n defaultThemeProp,\n Flex,\n ForwardProps,\n Icon,\n Menu,\n menuHelpers,\n EmptyState,\n SearchInput,\n SummaryItem,\n Text,\n useI18n,\n Switch,\n useArrows,\n useConsolidatedRef,\n useElement,\n registerIcon,\n getFocusables\n} from '@pega/cosmos-react-core';\nimport { MenuItemProps } from '@pega/cosmos-react-core/lib/components/Menu/Menu.types';\nimport { DragDropList, DragDropManager, ItemRendererProps } from '@pega/cosmos-react-dnd';\nimport * as timesIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/times.icon';\nimport * as dragIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/drag.icon';\nimport * as trashIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/trash.icon';\n\nimport { DraggableSelectedListProps, PickerProps, SelectedItemProps } from './Picker.types';\n\nregisterIcon(timesIcon, dragIcon, trashIcon);\nexport const StyledPickerHeader = styled.div(({ theme }) => {\n return css`\n padding-inline-start: calc(2 * ${theme.base.spacing});\n padding-inline-end: calc(1.25 * ${theme.base.spacing});\n `;\n});\nStyledPickerHeader.defaultProps = defaultThemeProp;\n\nexport const StyledAddTasks = styled.div`\n width: 17.5rem;\n max-height: 24rem;\n header {\n padding-top: 0;\n border-bottom: none;\n }\n`;\n\nexport const StyledSelectedTasks = styled.div(({ theme }) => {\n return css`\n width: 17.5rem;\n max-height: 24rem;\n padding: ${theme.base.spacing} 0 0 ${theme.base.spacing};\n border-inline-start: 0.0625rem solid ${theme.base.palette['border-line']};\n > h3 {\n padding: 0 0 ${theme.base.spacing} ${theme.base.spacing};\n }\n `;\n});\nStyledSelectedTasks.defaultProps = defaultThemeProp;\n\nexport const StyledSummaryItem = styled(SummaryItem)(({ theme }) => {\n return css`\n padding: ${theme.base.spacing} 0;\n &:not(:last-child) {\n border-bottom: 0.0625rem solid ${theme.base.palette['border-line']};\n }\n `;\n});\nStyledSummaryItem.defaultProps = defaultThemeProp;\n\nexport const StyledPickerFooter = styled.div(({ theme }) => {\n return css`\n border-top: 0.0625rem solid ${theme.base.palette['border-line']};\n padding: ${theme.base.spacing};\n `;\n});\nStyledPickerFooter.defaultProps = defaultThemeProp;\n\nexport const StyledDDList = styled.ul(({ theme }) => {\n return css`\n padding-inline-end: calc(0.25 * ${theme.base.spacing});\n height: 26rem;\n overflow-y: auto;\n `;\n});\n\nStyledDDList.defaultProps = defaultThemeProp;\n\nexport const StyledPicker = styled.div`\n height: 100%;\n`;\n\nexport const StyledDragHandle = styled.div`\n cursor: move;\n > svg {\n display: block;\n }\n`;\n\nconst StyledCount = styled(Count)(({ theme }) => {\n return css`\n margin-inline-start: calc(0.5 * ${theme.base.spacing});\n `;\n});\n\nStyledCount.defaultProps = defaultThemeProp;\n\nconst SelectedItemRenderer = ({\n dragRef,\n previewRef,\n data\n}: ItemRendererProps<SelectedItemProps>) => {\n const t = useI18n();\n\n return (\n <li>\n <StyledSummaryItem\n ref={previewRef}\n visual={\n <StyledDragHandle ref={dragRef}>\n <Icon name='drag' />\n </StyledDragHandle>\n }\n primary={data?.primary}\n secondary={data?.secondary}\n actions={\n <Button\n variant='simple'\n icon\n label={t('task_manager_delete_task')}\n onClick={() => data?.onRemoveSelection?.(data.id)}\n >\n <Icon name='trash' />\n </Button>\n }\n />\n </li>\n );\n};\n\nconst DraggableSelectedList = ({\n selectedItems,\n onChange,\n itemRenderer\n}: DraggableSelectedListProps) => {\n return (\n <DragDropManager>\n <DragDropList\n as={StyledDDList}\n accept='string'\n items={selectedItems.map(item => ({\n id: item.id,\n type: 'string',\n data: item\n }))}\n itemRenderer={itemRenderer}\n onChange={onChange}\n />\n </DragDropManager>\n );\n};\n\nconst Picker: FunctionComponent<PickerProps & ForwardProps> = forwardRef(\n (\n {\n id,\n items,\n emptyText,\n title,\n placeholder,\n onAdd,\n onCancel,\n ...restProps\n }: PropsWithoutRef<PickerProps>,\n ref: PickerProps['ref']\n ) => {\n const t = useI18n();\n\n const [initialItems, setItems] = useState<PickerProps['items']>(items);\n\n const [searchInput, setSearchInput] = useState('');\n const [selectMultipleToggle, setSelectMultipleToggle] = useState(false);\n\n const filterRegex = new RegExp(searchInput.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&'), 'i');\n const [selections, setSelections] = useState<SelectedItemProps[]>([]);\n const searchEleRef = useRef<HTMLInputElement>(null);\n\n const selectedTasksWrapperRef = useRef<HTMLDivElement>(null);\n const [pickerEl, setPickerEl] = useElement<HTMLDivElement>();\n const pickerRef = useConsolidatedRef(ref, setPickerEl);\n\n useEffect(() => {\n setItems(items);\n }, [items]);\n\n const onKeydown = useCallback(\n (e: KeyboardEvent) => {\n const { key } = e;\n if (key === 'Escape') {\n onCancel?.();\n } else if (key === 'Tab' && pickerEl) {\n const focusableContent = getFocusables(pickerRef);\n\n if (!focusableContent || focusableContent.length < 2) return;\n\n const firstFocusableElement = focusableContent[0];\n const lastFocusableElement = focusableContent[focusableContent.length - 1];\n\n if (e.shiftKey) {\n if (document.activeElement === firstFocusableElement) {\n lastFocusableElement.focus();\n e.preventDefault();\n }\n } else if (document.activeElement === lastFocusableElement) {\n firstFocusableElement.focus();\n e.preventDefault();\n }\n }\n\n // when focus is in the list setting the tabindex of first element as -1 and on focusing out the tabindex to be 0\n const focusEl = selectedTasksWrapperRef.current;\n if (!focusEl) return;\n\n const focusable = Array.from(focusEl.querySelectorAll('button'));\n if (focusable.length === 0) return;\n\n if (focusEl.contains(document.activeElement)) focusable[0].tabIndex = -1;\n else if (focusable[0].tabIndex === -1) focusable[0].tabIndex = 0;\n },\n [onCancel, pickerEl, selectMultipleToggle]\n );\n\n useEffect(() => {\n document.addEventListener('keydown', onKeydown);\n return () => {\n document.removeEventListener('keydown', onKeydown);\n };\n }, [pickerEl, selectMultipleToggle]);\n\n const renderItems = useMemo(() => {\n return menuHelpers.mapTree(\n searchInput\n ? menuHelpers\n .flatten(initialItems)\n .filter(({ primary, items: childItems }: MenuItemProps) => {\n return filterRegex.test(primary) && !childItems?.length;\n })\n : initialItems,\n item => {\n let selectable = false;\n\n if (!item.items) {\n selectable = true;\n }\n\n return {\n ...item,\n selected: selectable ? !!item.selected : undefined\n };\n }\n );\n }, [searchInput, items, filterRegex]);\n\n const removeTasks = useCallback((uid: string) => {\n setItems((cur: PickerProps['items']) => menuHelpers.toggleSelected(cur, uid, 'multi-select'));\n setSelections(cur => {\n const itemToRemove = menuHelpers.getItem(cur, uid);\n return cur.filter(item => item.id !== itemToRemove?.id);\n });\n\n // 0 second timeout added because DOM needs to be up to date after list is updated before running query\n // setting the focus to the first element in the list on deletion and if empty then to search input\n setTimeout(() => {\n const focusable = getFocusables(selectedTasksWrapperRef);\n if (focusable.length > 0) focusable[0].focus();\n else searchEleRef.current!.focus();\n }, 0);\n }, []);\n\n const toggleSelectedRegion = () => {\n setSelectMultipleToggle(curr => !curr);\n };\n\n useArrows(\n selectedTasksWrapperRef,\n {\n selector: 'button',\n dir: 'up-down'\n },\n [selections.length]\n );\n\n return (\n <Flex as={StyledPicker} container={{ direction: 'column' }} ref={pickerRef} id={id}>\n <Flex\n as={StyledPickerHeader}\n container={{ justify: 'between', alignItems: 'center', pad: 1 }}\n >\n <Text variant='h3'>{t('add_tasks')}</Text>\n <Button variant='simple' onClick={onCancel} aria-label={t('task_picker_close')} icon>\n <Icon name='times' />\n </Button>\n </Flex>\n <Flex container>\n <StyledAddTasks>\n <Menu\n items={renderItems}\n onItemClick={(uid: string) => {\n const clickedItem = menuHelpers.getItem(renderItems, uid);\n const parentItem = clickedItem?.ancestors\n ? clickedItem.ancestors[0]\n : menuHelpers.getParentItem(renderItems, uid);\n\n if (clickedItem) {\n if (selectMultipleToggle) {\n setItems((cur: PickerProps['items']) =>\n menuHelpers.toggleSelected(cur, uid, 'multi-select')\n );\n\n if (selections.find(item => item.id === uid)) {\n setSelections(cur => cur.filter(item => item.id !== clickedItem?.id));\n } else {\n setSelections(cur => {\n let secondary;\n if (parentItem)\n secondary = menuHelpers.isItem(parentItem)\n ? parentItem.primary\n : parentItem.label;\n return [\n ...cur,\n {\n ...clickedItem,\n secondary,\n onRemoveSelection: removeTasks\n } as SelectedItemProps\n ];\n });\n }\n setSearchInput('');\n } else {\n onAdd([clickedItem]);\n }\n }\n }}\n focusControlEl={searchEleRef.current || undefined}\n emptyText={emptyText || t('no_items')}\n accent={filterRegex}\n {...restProps}\n mode={selectMultipleToggle ? 'multi-select' : 'action'}\n header={\n <Flex container={{ direction: 'column', gap: 1 }}>\n <SearchInput\n ref={searchEleRef}\n value={searchInput}\n onSearchChange={setSearchInput}\n placeholder={placeholder || t('search_placeholder_default')}\n autoFocus\n />\n <Switch\n label={t('select_multiple')}\n on={selectMultipleToggle}\n onChange={toggleSelectedRegion}\n />\n </Flex>\n }\n arrowNavigationUnsupported\n />\n </StyledAddTasks>\n {selectMultipleToggle && (\n <Flex\n as={StyledSelectedTasks}\n container={{ direction: 'column' }}\n ref={selectedTasksWrapperRef}\n >\n <Text variant='h3'>{t('selected_tasks')}</Text>\n\n {selections.length > 0 ? (\n <DraggableSelectedList\n selectedItems={selections}\n onChange={newItems => {\n setSelections(\n newItems.map(({ type, data }) => ({\n ...data,\n type\n })) as SelectedItemProps[]\n );\n }}\n itemRenderer={SelectedItemRenderer}\n />\n ) : (\n <EmptyState message={t('no_selected_tasks')} />\n )}\n </Flex>\n )}\n </Flex>\n {selectMultipleToggle && (\n <Flex as={StyledPickerFooter} container={{ justify: 'between' }}>\n <Button onClick={onCancel} aria-label={t('cancel')}>\n Cancel\n </Button>\n <Button\n variant='primary'\n disabled={!selections.length}\n onClick={() => {\n onAdd?.(selections);\n setItems(initialItems);\n }}\n aria-label={t('task_manager_picker_add_label', [selections?.length], {\n count: selections?.length\n })}\n >\n {t('add')}\n {!!selections?.length && <StyledCount>{selections.length}</StyledCount>}\n </Button>\n </Flex>\n )}\n </Flex>\n );\n }\n);\n\nexport default Picker;\n"]}