@pega/cosmos-react-build 9.0.0-build.6.1 → 9.0.0-build.6.10
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.
- package/lib/components/DynamicInput/DynamicInput.styles.d.ts.map +1 -1
- package/lib/components/DynamicInput/DynamicInput.styles.js +1 -0
- package/lib/components/DynamicInput/DynamicInput.styles.js.map +1 -1
- package/lib/components/LifeCycle/Category.d.ts.map +1 -1
- package/lib/components/LifeCycle/Category.js +4 -11
- package/lib/components/LifeCycle/Category.js.map +1 -1
- package/lib/components/LifeCycle/LifeCycle.js +2 -2
- package/lib/components/LifeCycle/LifeCycle.js.map +1 -1
- package/lib/components/LifeCycle/LifeCycle.types.d.ts +32 -0
- package/lib/components/LifeCycle/LifeCycle.types.d.ts.map +1 -1
- package/lib/components/LifeCycle/LifeCycle.types.js +9 -9
- package/lib/components/LifeCycle/LifeCycle.types.js.map +1 -1
- package/lib/components/LifeCycle/LifeCycleDragDropList.d.ts.map +1 -1
- package/lib/components/LifeCycle/LifeCycleDragDropList.js +8 -2
- package/lib/components/LifeCycle/LifeCycleDragDropList.js.map +1 -1
- package/lib/components/LifeCycle/Stage.d.ts.map +1 -1
- package/lib/components/LifeCycle/Stage.js +20 -11
- package/lib/components/LifeCycle/Stage.js.map +1 -1
- package/lib/components/LifeCycle/Step.d.ts.map +1 -1
- package/lib/components/LifeCycle/Step.js +1 -0
- package/lib/components/LifeCycle/Step.js.map +1 -1
- package/lib/components/LifeCycle/Task.d.ts.map +1 -1
- package/lib/components/LifeCycle/Task.js +4 -2
- package/lib/components/LifeCycle/Task.js.map +1 -1
- package/lib/components/LifeCycle/TaskGroup.d.ts +2 -2
- package/lib/components/LifeCycle/TaskGroup.d.ts.map +1 -1
- package/lib/components/LifeCycle/TaskGroup.js +6 -11
- package/lib/components/LifeCycle/TaskGroup.js.map +1 -1
- package/lib/components/LifeCycle/utils.d.ts +2 -1
- package/lib/components/LifeCycle/utils.d.ts.map +1 -1
- package/lib/components/LifeCycle/utils.js +80 -41
- package/lib/components/LifeCycle/utils.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Task.js","sourceRoot":"","sources":["../../../src/components/LifeCycle/Task.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useCallback, useContext } from 'react';\nimport type { FunctionComponent, PropsWithChildren, MouseEvent, RefCallback } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n Flex,\n defaultThemeProp,\n Button,\n Icon,\n useElement,\n Actions,\n useI18n,\n Avatar,\n useTestIds,\n withTestIds,\n Text,\n Tooltip,\n StyledButton,\n StyledIcon\n} from '@pega/cosmos-react-core';\nimport type { BaseProps, ForwardProps, Action } from '@pega/cosmos-react-core';\nimport { DragHandle, StyledDragHandle } from '@pega/cosmos-react-dnd';\n\nimport { ItemLibrary } from '../ItemLibrary';\nimport type { LibraryItem } from '../ItemLibrary';\n\nimport { generateDynamicTestId } from './utils';\nimport Step, { type StepComponentProps } from './Step';\nimport type {\n TaskItemProps,\n StageItemProps,\n CategoryItemProps,\n LifeCycleActionParam,\n StepProps,\n TaskProps,\n StepItemProps\n} from './LifeCycle.types';\nimport LifeCycleContext from './LifeCycleContext';\nimport { getStepTestIds, getTaskTestIds } from './LifeCycle.test-ids';\nimport LifeCycleDragDropList from './LifeCycleDragDropList';\n\ninterface CategoryLabelProp {\n categoryLabel?: string;\n}\n\nexport interface TaskComponentProps extends BaseProps, TaskProps {\n /** Pass text for the task. */\n value: string;\n /** support for an Avatar, Icon, or other supporting visual. */\n visual: {\n imgSrc: string;\n };\n /** Pass task data */\n item: TaskItemProps;\n /** The status is used to show the input error status and the info on tooltip in case of error */\n error?: string;\n /** Step Props */\n step?: StepProps;\n /** Stage data to pass it as callback */\n stageItem: StageItemProps;\n /** Category data to pass it as callback */\n categoryItem: CategoryItemProps & CategoryLabelProp;\n /** unique id of task */\n id: string;\n /** Drag handle component passed from parent */\n dragEnabled?: boolean;\n /** Ref for drag handle */\n dragRef?: RefCallback<HTMLElement>;\n /** Preview ref for drag and drop functionality */\n previewRef?: RefCallback<HTMLElement>;\n}\n\nexport const StyledTaskList = styled.li(({ theme }) => {\n return css`\n list-style-type: none;\n margin-block-end: ${theme.base.spacing};\n\n &:last-child > article {\n margin-block-end: 0;\n }\n `;\n});\n\nStyledTaskList.defaultProps = defaultThemeProp;\n\nexport const StyledCardHeader = styled.header(\n ({\n theme: {\n base: { spacing }\n }\n }) => {\n return css`\n padding: 0 calc(0.25 * ${spacing});\n margin: calc(0.25 * ${spacing});\n `;\n }\n);\n\nStyledCardHeader.defaultProps = defaultThemeProp;\n\nexport const StyledAddCustomStepButton = styled(Button)(({ theme }) => {\n return css`\n height: ${theme.components.button.height};\n margin-inline-start: calc(0.5 * ${theme.base.spacing});\n\n ${StyledIcon} {\n margin-inline-end: ${theme.base.spacing};\n }\n `;\n});\n\nStyledAddCustomStepButton.defaultProps = defaultThemeProp;\n\nexport const StyledAddStepButton = styled(Button)``;\n\nexport const StyledCardContent = styled.div<{ hasSteps?: boolean }>(({ hasSteps, theme }) => {\n if (!hasSteps) return;\n\n return css`\n & > ${StyledButton}, & > ${StyledAddCustomStepButton} {\n margin-block-start: calc(0.5 * ${theme.base.spacing});\n }\n `;\n});\n\nStyledCardContent.defaultProps = defaultThemeProp;\n\nexport const StyledTaskButton = styled.button<Pick<TaskComponentProps, 'visual'>>(\n ({ theme, visual }) => {\n return css`\n background: ${theme.base.palette['primary-background']};\n border: none;\n height: ${theme.components.button.height};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: start;\n\n ${visual.imgSrc &&\n css`\n padding-inline-start: calc(0.5 * ${theme.base.spacing});\n `}\n\n &:hover {\n cursor: pointer;\n }\n\n &:focus {\n outline: none;\n }\n `;\n }\n);\n\nStyledTaskButton.defaultProps = defaultThemeProp;\n\nexport const StyledTask = styled.article<{\n hasFocus: boolean;\n hasSteps?: boolean;\n dragEnabled?: boolean;\n}>(({ hasFocus, hasSteps, theme, dragEnabled }) => {\n return css`\n background: ${theme.base.palette['primary-background']};\n border: 0.125rem solid transparent;\n border-radius: calc(0.5 * ${theme.base['border-radius']});\n padding: calc(${theme.base.spacing} - 0.125rem);\n\n ${hasFocus &&\n css`\n box-shadow: ${theme.base.shadow.focus};\n `}\n\n &:hover {\n cursor: pointer;\n }\n\n &[aria-current='true'] {\n border-color: ${theme.base.palette.interactive};\n }\n\n ${hasSteps &&\n !dragEnabled &&\n css`\n ${StyledAddCustomStepButton} ,${StyledAddStepButton} {\n margin-block-start: calc(0.5 * ${theme.base.spacing});\n }\n `}\n\n ${StyledDragHandle} {\n margin-inline-start: calc(0.5 * ${theme.base.spacing});\n margin-block: calc(0.5 * ${theme.base.spacing});\n }\n `;\n});\n\nStyledTask.defaultProps = defaultThemeProp;\n\nexport const StyledWarnIcon = styled(Icon)(({ theme }) => {\n return css`\n color: ${theme.base.palette.urgent};\n margin-inline-start: calc(0.5 * ${theme.base.spacing});\n margin-inline-end: ${theme.base.spacing};\n\n &:hover {\n cursor: pointer;\n }\n `;\n});\n\nStyledWarnIcon.defaultProps = defaultThemeProp;\n\nconst Task: FunctionComponent<TaskComponentProps & ForwardProps> = ({\n value,\n visual,\n actions,\n item,\n addStepTitle,\n addTask,\n stageItem,\n error,\n onAddStep,\n onAddCustomStep,\n onClick,\n categoryItem,\n id,\n step: stepProp,\n nodeLibrary,\n dragEnabled,\n dragRef,\n previewRef,\n ...restProps\n}: PropsWithChildren<TaskComponentProps>) => {\n const t = useI18n();\n const { selectedItemId, readOnly, onDragDrop } = useContext(LifeCycleContext);\n const [taskHasFocus, setTaskHasFocus] = useState(false);\n const [taskButtonEl, setTaskButtonEl] = useElement();\n const [addEl, setAddEl] = useElement<HTMLButtonElement>(null);\n\n const taskTestID = generateDynamicTestId([stageItem.label, categoryItem.categoryLabel, value]);\n const testIds = useTestIds(taskTestID, getTaskTestIds);\n const stepTestIds = useTestIds(taskTestID, getStepTestIds);\n const dragId = item.id;\n\n const onActionItemClick = (\n actionId: string,\n e: MouseEvent<HTMLInputElement | HTMLAnchorElement | HTMLButtonElement>\n ) => {\n const param: LifeCycleActionParam = {\n task: item,\n stage: stageItem,\n category: categoryItem\n };\n actions?.forEach(actionItem => {\n if (actionItem.id === actionId) {\n actionItem.onClick(param, e);\n }\n });\n };\n // Deep copy of actions is required to provide consistent callback objects on actions\n const actionsClone: Action[] = [];\n\n if (actions) {\n actions.forEach(actionItem => {\n const actionCloneItem = {} as Action;\n Object.keys(actionItem).forEach((key: string) => {\n actionCloneItem[key] = actionItem[key];\n });\n actionCloneItem.onClick = onActionItemClick;\n actionsClone.push({\n ...actionCloneItem,\n 'data-testid': testIds.actionButton\n });\n return actionItem;\n });\n }\n\n const onTaskClick = (e: MouseEvent) => {\n const actionParam: LifeCycleActionParam = {\n value,\n task: item,\n stage: stageItem,\n category: categoryItem,\n type: 'Task'\n };\n onClick?.(actionParam, e);\n };\n\n const onLibraryItemSelect = useCallback(\n (libItem: LibraryItem) => {\n const param: LifeCycleActionParam = {\n task: item,\n stage: stageItem,\n category: categoryItem\n };\n onAddStep?.(param, libItem);\n },\n [onAddStep]\n );\n\n const isEmpty = (readOnly || (!readOnly && !addStepTitle)) && !item?.steps?.length && !value;\n\n const getStepProps = useCallback(\n (step: StepItemProps, stepIndex: number): StepComponentProps => {\n return {\n id: step.id,\n value: step.label,\n visual: {\n imgSrc: step.visual.imgSrc,\n name: step.visual.name,\n label: step.visual.label,\n category: step.visual.category,\n inverted: step.visual.inverted\n },\n item: { ...step, index: stepIndex, alternate: item.alternate },\n taskItem: item,\n stageItem,\n badge: {\n type: step?.status?.type ?? '',\n label: step?.status?.label ?? ''\n },\n error: step.error,\n categoryItem\n };\n },\n [categoryItem, item, stageItem]\n );\n\n const addStepRegion = (\n <>\n {!readOnly && addStepTitle && nodeLibrary && (\n <>\n <Button\n as={StyledAddStepButton}\n data-testid={stepTestIds.addButton}\n variant='simple'\n label={t('add_noun', [addStepTitle])}\n onClick={(e: MouseEvent<HTMLButtonElement>) => setAddEl(e.currentTarget)}\n icon\n >\n <Icon name='plus' />\n </Button>\n {addEl && (\n <ItemLibrary\n items={nodeLibrary}\n target={addEl}\n onClick={onLibraryItemSelect}\n onDismiss={() => setAddEl(null)}\n placeholder={t('search_placeholder_default')}\n />\n )}\n </>\n )}\n {!readOnly && addStepTitle && !nodeLibrary && onAddCustomStep && (\n <Button\n as={StyledAddCustomStepButton}\n data-testid={stepTestIds.addButton}\n variant='link'\n onClick={() => {\n const param: LifeCycleActionParam = {\n task: item,\n stage: stageItem,\n category: categoryItem\n };\n onAddCustomStep(param);\n }}\n >\n <Icon name='plus' />\n {t('add_noun', [addStepTitle])}\n </Button>\n )}\n </>\n );\n\n return (\n <StyledTaskList data-testid={testIds.root} {...restProps} id={item.id} ref={previewRef}>\n {isEmpty ? (\n <Flex container={{ justify: 'center', pad: 1 }}>\n <Text variant='secondary'>No Steps</Text>\n </Flex>\n ) : (\n <Flex\n as={StyledTask}\n aria-current={selectedItemId === id ? 'true' : undefined}\n container={{ direction: 'column' }}\n hasFocus={taskHasFocus && selectedItemId !== id}\n hasSteps={!!item?.steps?.length}\n dragEnabled={dragEnabled}\n >\n {!!value && (\n <Flex as={StyledCardHeader} container={{ inline: true, alignItems: 'center' }}>\n {dragEnabled && (\n <DragHandle itemId={dragId} ref={dragRef} onClick={e => e.stopPropagation()} />\n )}\n {visual?.imgSrc?.length > 0 && <Avatar name={value} imageSrc={visual?.imgSrc} />}\n {error && <StyledWarnIcon name='warn-solid' />}\n <Flex\n item={{ grow: 1 }}\n container={{ inline: true, alignItems: 'center' }}\n onClick={onTaskClick}\n >\n <StyledTaskButton\n onFocus={() => {\n setTaskHasFocus(true);\n }}\n onBlur={() => {\n setTaskHasFocus(false);\n }}\n aria-label={t(error ? 'process_name_error' : 'process_name', [value])}\n visual={visual}\n ref={setTaskButtonEl}\n >\n {value}\n </StyledTaskButton>\n {taskButtonEl && (\n <Tooltip target={taskButtonEl} smart>\n {value}\n </Tooltip>\n )}\n </Flex>\n {actionsClone && (\n <Actions\n items={actionsClone}\n menuAt={2}\n iconOnly\n contextualLabel={t('process_name', [value])}\n />\n )}\n </Flex>\n )}\n <StyledCardContent hasSteps={!!item?.steps?.length} as={dragEnabled ? 'div' : 'ul'}>\n {dragEnabled ? (\n <LifeCycleDragDropList\n type={stageItem.alternate ? 'alternate-step' : 'step'}\n listLocation={{\n alternate: !!stageItem.alternate,\n stage: stageItem.index,\n category: categoryItem.index,\n task: item.index,\n subTask: item.subIndex\n }}\n items={item?.steps?.map((step, stepIndex) => ({\n id: step.id,\n type: stageItem.alternate ? 'alternate-step' : 'step',\n data: { ...stepProp, ...getStepProps(step, stepIndex) }\n }))}\n itemRenderer={Step}\n onDragDrop={onDragDrop}\n additionalDropZone={addStepRegion}\n />\n ) : (\n <>\n {item?.steps?.map((step, stepIndex) => (\n <Step {...stepProp} key={step.id} {...getStepProps(step, stepIndex)} />\n ))}\n </>\n )}\n </StyledCardContent>\n {!dragEnabled && <div>{addStepRegion}</div>}\n </Flex>\n )}\n </StyledTaskList>\n );\n};\n\nexport default withTestIds(Task, getTaskTestIds);\n"]}
|
|
1
|
+
{"version":3,"file":"Task.js","sourceRoot":"","sources":["../../../src/components/LifeCycle/Task.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useCallback, useContext } from 'react';\nimport type { FunctionComponent, PropsWithChildren, MouseEvent, RefCallback } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n Flex,\n defaultThemeProp,\n Button,\n Icon,\n useElement,\n Actions,\n useI18n,\n Avatar,\n useTestIds,\n withTestIds,\n Text,\n Tooltip,\n StyledButton,\n StyledIcon\n} from '@pega/cosmos-react-core';\nimport type { BaseProps, ForwardProps, Action } from '@pega/cosmos-react-core';\nimport { DragHandle, StyledDragHandle } from '@pega/cosmos-react-dnd';\n\nimport { ItemLibrary } from '../ItemLibrary';\nimport type { LibraryItem } from '../ItemLibrary';\n\nimport { generateDynamicTestId } from './utils';\nimport Step, { type StepComponentProps } from './Step';\nimport type {\n TaskItemProps,\n StageItemProps,\n CategoryItemProps,\n LifeCycleActionParam,\n StepProps,\n TaskProps,\n StepItemProps\n} from './LifeCycle.types';\nimport LifeCycleContext from './LifeCycleContext';\nimport { getStepTestIds, getTaskTestIds } from './LifeCycle.test-ids';\nimport LifeCycleDragDropList from './LifeCycleDragDropList';\n\ninterface CategoryLabelProp {\n categoryLabel?: string;\n}\n\nexport interface TaskComponentProps extends BaseProps, TaskProps {\n /** Pass text for the task. */\n value: string;\n /** support for an Avatar, Icon, or other supporting visual. */\n visual: {\n imgSrc: string;\n };\n /** Pass task data */\n item: TaskItemProps;\n /** The status is used to show the input error status and the info on tooltip in case of error */\n error?: string;\n /** Step Props */\n step?: StepProps;\n /** Stage data to pass it as callback */\n stageItem: StageItemProps;\n /** Category data to pass it as callback */\n categoryItem: CategoryItemProps & CategoryLabelProp;\n /** unique id of task */\n id: string;\n /** Drag handle component passed from parent */\n dragEnabled?: boolean;\n /** Ref for drag handle */\n dragRef?: RefCallback<HTMLElement>;\n /** Preview ref for drag and drop functionality */\n previewRef?: RefCallback<HTMLElement>;\n}\n\nexport const StyledTaskList = styled.li(({ theme }) => {\n return css`\n list-style-type: none;\n margin-block-end: ${theme.base.spacing};\n\n &:last-child > article {\n margin-block-end: 0;\n }\n `;\n});\n\nStyledTaskList.defaultProps = defaultThemeProp;\n\nexport const StyledCardHeader = styled.header(\n ({\n theme: {\n base: { spacing }\n }\n }) => {\n return css`\n padding: 0 calc(0.25 * ${spacing});\n margin: calc(0.25 * ${spacing});\n `;\n }\n);\n\nStyledCardHeader.defaultProps = defaultThemeProp;\n\nexport const StyledAddCustomStepButton = styled(Button)(({ theme }) => {\n return css`\n height: ${theme.components.button.height};\n margin-inline-start: calc(0.5 * ${theme.base.spacing});\n\n ${StyledIcon} {\n margin-inline-end: ${theme.base.spacing};\n }\n `;\n});\n\nStyledAddCustomStepButton.defaultProps = defaultThemeProp;\n\nexport const StyledAddStepButton = styled(Button)``;\n\nexport const StyledCardContent = styled.div<{ hasSteps?: boolean }>(({ hasSteps, theme }) => {\n if (!hasSteps) return;\n\n return css`\n & > ${StyledButton}, & > ${StyledAddCustomStepButton} {\n margin-block-start: calc(0.5 * ${theme.base.spacing});\n }\n `;\n});\n\nStyledCardContent.defaultProps = defaultThemeProp;\n\nexport const StyledTaskButton = styled.button<Pick<TaskComponentProps, 'visual'>>(\n ({ theme, visual }) => {\n return css`\n color: ${theme.base.palette['foreground-color']};\n background: none;\n border: none;\n height: ${theme.components.button.height};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: start;\n\n ${visual.imgSrc &&\n css`\n padding-inline-start: calc(0.5 * ${theme.base.spacing});\n `}\n\n &:hover {\n cursor: pointer;\n }\n\n &:focus {\n outline: none;\n }\n `;\n }\n);\n\nStyledTaskButton.defaultProps = defaultThemeProp;\n\nexport const StyledTask = styled.article<{\n hasFocus: boolean;\n hasSteps?: boolean;\n dragEnabled?: boolean;\n}>(({ hasFocus, hasSteps, theme, dragEnabled }) => {\n return css`\n background-color: ${theme.components.lifecycle.task.background};\n color: ${theme.components.lifecycle.task['foreground-color']};\n border: 0.125rem solid transparent;\n border-radius: calc(0.5 * ${theme.base['border-radius']});\n padding: calc(${theme.base.spacing} - 0.125rem);\n\n ${hasFocus &&\n css`\n box-shadow: ${theme.base.shadow.focus};\n `}\n\n &:hover {\n cursor: pointer;\n }\n\n &[aria-current='true'] {\n border-color: ${theme.base.palette.interactive};\n }\n\n ${hasSteps &&\n !dragEnabled &&\n css`\n ${StyledAddCustomStepButton} ,${StyledAddStepButton} {\n margin-block-start: calc(0.5 * ${theme.base.spacing});\n }\n `}\n\n ${StyledDragHandle} {\n margin-inline-start: calc(0.5 * ${theme.base.spacing});\n margin-block: calc(0.5 * ${theme.base.spacing});\n }\n `;\n});\n\nStyledTask.defaultProps = defaultThemeProp;\n\nexport const StyledWarnIcon = styled(Icon)(({ theme }) => {\n return css`\n color: ${theme.base.palette.urgent};\n margin-inline-start: calc(0.5 * ${theme.base.spacing});\n margin-inline-end: ${theme.base.spacing};\n\n &:hover {\n cursor: pointer;\n }\n `;\n});\n\nStyledWarnIcon.defaultProps = defaultThemeProp;\n\nconst Task: FunctionComponent<TaskComponentProps & ForwardProps> = ({\n value,\n visual,\n actions,\n item,\n addStepTitle,\n addTask,\n stageItem,\n error,\n onAddStep,\n onAddCustomStep,\n onClick,\n categoryItem,\n id,\n step: stepProp,\n nodeLibrary,\n dragEnabled,\n dragRef,\n previewRef,\n ...restProps\n}: PropsWithChildren<TaskComponentProps>) => {\n const t = useI18n();\n const { selectedItemId, readOnly, onDragDrop } = useContext(LifeCycleContext);\n const [taskHasFocus, setTaskHasFocus] = useState(false);\n const [taskButtonEl, setTaskButtonEl] = useElement();\n const [addEl, setAddEl] = useElement<HTMLButtonElement>(null);\n\n const taskTestID = generateDynamicTestId([stageItem.label, categoryItem.categoryLabel, value]);\n const testIds = useTestIds(taskTestID, getTaskTestIds);\n const stepTestIds = useTestIds(taskTestID, getStepTestIds);\n const dragId = item.id;\n\n const onActionItemClick = (\n actionId: string,\n e: MouseEvent<HTMLInputElement | HTMLAnchorElement | HTMLButtonElement>\n ) => {\n const param: LifeCycleActionParam = {\n task: item,\n stage: stageItem,\n category: categoryItem\n };\n actions?.forEach(actionItem => {\n if (actionItem.id === actionId) {\n actionItem.onClick(param, e);\n }\n });\n };\n // Deep copy of actions is required to provide consistent callback objects on actions\n const actionsClone: Action[] = [];\n\n if (actions) {\n actions.forEach(actionItem => {\n const actionCloneItem = {} as Action;\n Object.keys(actionItem).forEach((key: string) => {\n actionCloneItem[key] = actionItem[key];\n });\n actionCloneItem.onClick = onActionItemClick;\n actionsClone.push({\n ...actionCloneItem,\n 'data-testid': testIds.actionButton\n });\n return actionItem;\n });\n }\n\n const onTaskClick = (e: MouseEvent) => {\n const actionParam: LifeCycleActionParam = {\n value,\n task: item,\n stage: stageItem,\n category: categoryItem,\n type: 'Task'\n };\n onClick?.(actionParam, e);\n };\n\n const onLibraryItemSelect = useCallback(\n (libItem: LibraryItem) => {\n const param: LifeCycleActionParam = {\n task: item,\n stage: stageItem,\n category: categoryItem\n };\n onAddStep?.(param, libItem);\n },\n [onAddStep]\n );\n\n const isEmpty = (readOnly || (!readOnly && !addStepTitle)) && !item?.steps?.length && !value;\n\n const getStepProps = useCallback(\n (step: StepItemProps, stepIndex: number): StepComponentProps => {\n return {\n id: step.id,\n value: step.label,\n visual: {\n imgSrc: step.visual.imgSrc,\n name: step.visual.name,\n label: step.visual.label,\n category: step.visual.category,\n inverted: step.visual.inverted\n },\n item: { ...step, index: stepIndex, alternate: item.alternate },\n taskItem: item,\n stageItem,\n badge: {\n type: step?.status?.type ?? '',\n label: step?.status?.label ?? ''\n },\n error: step.error,\n categoryItem\n };\n },\n [categoryItem, item, stageItem]\n );\n\n const addStepRegion = (\n <>\n {!readOnly && addStepTitle && nodeLibrary && (\n <>\n <Button\n as={StyledAddStepButton}\n data-testid={stepTestIds.addButton}\n variant='simple'\n label={t('add_noun', [addStepTitle])}\n onClick={(e: MouseEvent<HTMLButtonElement>) => setAddEl(e.currentTarget)}\n icon\n >\n <Icon name='plus' />\n </Button>\n {addEl && (\n <ItemLibrary\n items={nodeLibrary}\n target={addEl}\n onClick={onLibraryItemSelect}\n onDismiss={() => setAddEl(null)}\n placeholder={t('search_placeholder_default')}\n />\n )}\n </>\n )}\n {!readOnly && addStepTitle && !nodeLibrary && onAddCustomStep && (\n <Button\n as={StyledAddCustomStepButton}\n data-testid={stepTestIds.addButton}\n variant='link'\n onClick={() => {\n const param: LifeCycleActionParam = {\n task: item,\n stage: stageItem,\n category: categoryItem\n };\n onAddCustomStep(param);\n }}\n >\n <Icon name='plus' />\n {t('add_noun', [addStepTitle])}\n </Button>\n )}\n </>\n );\n\n return (\n <StyledTaskList data-testid={testIds.root} {...restProps} id={item.id} ref={previewRef}>\n {isEmpty ? (\n <Flex container={{ justify: 'center', pad: 1 }}>\n <Text variant='secondary'>No Steps</Text>\n </Flex>\n ) : (\n <Flex\n as={StyledTask}\n aria-current={selectedItemId === id ? 'true' : undefined}\n container={{ direction: 'column' }}\n hasFocus={taskHasFocus && selectedItemId !== id}\n hasSteps={!!item?.steps?.length}\n dragEnabled={dragEnabled}\n >\n {!!value && (\n <Flex as={StyledCardHeader} container={{ inline: true, alignItems: 'center' }}>\n {dragEnabled && (\n <DragHandle itemId={dragId} ref={dragRef} onClick={e => e.stopPropagation()} />\n )}\n {visual?.imgSrc?.length > 0 && <Avatar name={value} imageSrc={visual?.imgSrc} />}\n {error && <StyledWarnIcon name='warn-solid' />}\n <Flex\n item={{ grow: 1 }}\n container={{ inline: true, alignItems: 'center' }}\n onClick={onTaskClick}\n >\n <StyledTaskButton\n onFocus={() => {\n setTaskHasFocus(true);\n }}\n onBlur={() => {\n setTaskHasFocus(false);\n }}\n aria-label={t(error ? 'process_name_error' : 'process_name', [value])}\n visual={visual}\n ref={setTaskButtonEl}\n >\n {value}\n </StyledTaskButton>\n {taskButtonEl && (\n <Tooltip target={taskButtonEl} smart>\n {value}\n </Tooltip>\n )}\n </Flex>\n {actionsClone && (\n <Actions\n items={actionsClone}\n menuAt={2}\n iconOnly\n contextualLabel={t('process_name', [value])}\n />\n )}\n </Flex>\n )}\n <StyledCardContent hasSteps={!!item?.steps?.length} as={dragEnabled ? 'div' : 'ul'}>\n {dragEnabled ? (\n <LifeCycleDragDropList\n type={stageItem.alternate ? 'alternate-step' : 'step'}\n listLocation={{\n alternate: !!stageItem.alternate,\n stage: stageItem.index,\n category: categoryItem.index,\n task: item.index,\n subTask: item.subIndex\n }}\n items={item?.steps?.map((step, stepIndex) => ({\n id: step.id,\n type: stageItem.alternate ? 'alternate-step' : 'step',\n data: { ...stepProp, ...getStepProps(step, stepIndex) }\n }))}\n itemRenderer={Step}\n onDragDrop={onDragDrop}\n additionalDropZone={addStepRegion}\n />\n ) : (\n <>\n {item?.steps?.map((step, stepIndex) => (\n <Step {...stepProp} key={step.id} {...getStepProps(step, stepIndex)} />\n ))}\n </>\n )}\n </StyledCardContent>\n {!dragEnabled && <div>{addStepRegion}</div>}\n </Flex>\n )}\n </StyledTaskList>\n );\n};\n\nexport default withTestIds(Task, getTaskTestIds);\n"]}
|
|
@@ -4,8 +4,8 @@ interface CategoryLabelProp {
|
|
|
4
4
|
label: string | undefined;
|
|
5
5
|
}
|
|
6
6
|
export interface TaskGroupProps extends BaseProps, TaskProps {
|
|
7
|
-
/**
|
|
8
|
-
taskItem: TaskItemProps
|
|
7
|
+
/** An array of task items to be rendered */
|
|
8
|
+
taskItem: TaskItemProps[];
|
|
9
9
|
/** The index position of this task group within its parent category */
|
|
10
10
|
index: number;
|
|
11
11
|
/** The parent stage data that contains this task group */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskGroup.d.ts","sourceRoot":"","sources":["../../../src/components/LifeCycle/TaskGroup.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,SAAS,EACT,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAQ3B,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS,EAAE,SAAS;IAC1D,
|
|
1
|
+
{"version":3,"file":"TaskGroup.d.ts","sourceRoot":"","sources":["../../../src/components/LifeCycle/TaskGroup.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,SAAS,EACT,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAQ3B,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS,EAAE,SAAS;IAC1D,4CAA4C;IAC5C,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,SAAS,EAAE,cAAc,CAAC;IAC1B,uEAAuE;IACvE,YAAY,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;IACpD,4EAA4E;IAC5E,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,yEAAyE;IACzE,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,oNAcxB,CAAC;AAIH,QAAA,MAAM,SAAS,GAAI,4EAQhB,cAAc,4CA8HhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -27,17 +27,13 @@ StyledAddTask.defaultProps = defaultThemeProp;
|
|
|
27
27
|
const TaskGroup = ({ taskItem, index, stageItem, categoryItem, task, parallel, ...restProps }) => {
|
|
28
28
|
const t = useI18n();
|
|
29
29
|
const { readOnly, dragEnabled, dragDropConfig, onDragDrop } = useContext(LifeCycleContext);
|
|
30
|
-
const
|
|
31
|
-
const isEmptyCategory = !taskItem || (taskItemIsArray && taskItem.length === 0);
|
|
30
|
+
const isEmptyCategory = taskItem.length === 0;
|
|
32
31
|
const isAlternate = !!stageItem.alternate;
|
|
33
32
|
const categoryTestID = generateDynamicTestId([stageItem.label, categoryItem?.label]);
|
|
34
33
|
const taskTestIds = useTestIds(categoryTestID, getTaskTestIds);
|
|
35
34
|
const taskType = isAlternate ? 'alternate-task' : 'task';
|
|
36
35
|
const showDragHandle = dragEnabled && dragDropConfig?.[taskType].enabled;
|
|
37
|
-
|
|
38
|
-
if (task?.addTask?.showOnce && categoryItem?.tasks?.length !== 0) {
|
|
39
|
-
shouldShowAddTaskButton = false;
|
|
40
|
-
}
|
|
36
|
+
const shouldShowAddTaskButton = !(task?.addTask?.showOnce && categoryItem?.tasks?.length !== 0);
|
|
41
37
|
const onAddTaskClick = (e) => {
|
|
42
38
|
task?.addTask?.onAddTask?.({
|
|
43
39
|
category: categoryItem,
|
|
@@ -75,21 +71,20 @@ const TaskGroup = ({ taskItem, index, stageItem, categoryItem, task, parallel, .
|
|
|
75
71
|
subTask: undefined
|
|
76
72
|
}, items: [], itemRenderer: Task, onDragDrop: onDragDrop, additionalDropZone: addTaskItem, as: StyledList }));
|
|
77
73
|
}
|
|
78
|
-
const tasks = taskItemIsArray ? taskItem : [taskItem];
|
|
79
74
|
if (!showDragHandle) {
|
|
80
|
-
return (_jsxs(_Fragment, { children: [parallelTitle, _jsxs(StyledList, { children: [
|
|
75
|
+
return (_jsxs(_Fragment, { children: [parallelTitle, _jsxs(StyledList, { children: [taskItem.map((item, subIndex) => (_jsx(Task, { ...createTaskData(item, subIndex) }, item.id))), addTaskItem] })] }));
|
|
81
76
|
}
|
|
82
77
|
const listLocation = {
|
|
83
78
|
alternate: isAlternate,
|
|
84
79
|
stage: stageItem.index,
|
|
85
80
|
category: categoryItem.index,
|
|
86
81
|
task: index,
|
|
87
|
-
|
|
82
|
+
subTask: undefined
|
|
88
83
|
};
|
|
89
|
-
const items =
|
|
84
|
+
const items = taskItem.map((item, subIndex) => ({
|
|
90
85
|
id: item.id,
|
|
91
86
|
type: taskType,
|
|
92
|
-
data: createTaskData(item,
|
|
87
|
+
data: createTaskData(item, subIndex)
|
|
93
88
|
}));
|
|
94
89
|
return (_jsxs(_Fragment, { children: [parallelTitle, _jsx(LifeCycleDragDropList, { type: taskType, listLocation: listLocation, items: items, itemRenderer: Task, onDragDrop: onDragDrop, additionalDropZone: addTaskItem, as: StyledList })] }));
|
|
95
90
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskGroup.js","sourceRoot":"","sources":["../../../src/components/LifeCycle/TaskGroup.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useContext, type MouseEvent } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Flex, useI18n, Button, Icon, defaultThemeProp, useTestIds } from '@pega/cosmos-react-core';\nimport type { BaseProps } from '@pega/cosmos-react-core';\n\nimport type {\n TaskItemProps,\n StageItemProps,\n TaskProps,\n CategoryItemProps\n} from './LifeCycle.types';\nimport Task from './Task';\nimport { StyledList, StyledParallelTitle } from './Category';\nimport LifeCycleContext from './LifeCycleContext';\nimport LifeCycleDragDropList from './LifeCycleDragDropList';\nimport { generateDynamicTestId } from './utils';\nimport { getTaskTestIds } from './LifeCycle.test-ids';\n\ninterface CategoryLabelProp {\n label: string | undefined;\n}\n\nexport interface TaskGroupProps extends BaseProps, TaskProps {\n /** A single task item or array of task items to be rendered in parallel */\n taskItem: TaskItemProps | TaskItemProps[];\n /** The index position of this task group within its parent category */\n index: number;\n /** The parent stage data that contains this task group */\n stageItem: StageItemProps;\n /** The parent category data with optional label for this task group */\n categoryItem: CategoryItemProps & CategoryLabelProp;\n /** Task configuration and behavior props, undefined for empty categories */\n task: TaskProps | undefined;\n /** Whether this task group represents parallel tasks (array of tasks) */\n parallel: boolean;\n}\n\nexport const StyledAddTask = styled(Button)(({ theme }) => {\n return css`\n margin-block-end: calc(${theme.base.spacing});\n background: ${theme.base.palette['secondary-background']};\n border-radius: calc(0.5 * ${theme.base['border-radius']});\n width: 100%;\n justify-content: flex-start;\n padding-inline: calc(1.75 * ${theme.base.spacing});\n padding-block: calc(1 * ${theme.base.spacing});\n\n & > :last-child {\n margin-inline: calc(2 * ${theme.base.spacing});\n }\n `;\n});\n\nStyledAddTask.defaultProps = defaultThemeProp;\n\nconst TaskGroup = ({\n taskItem,\n index,\n stageItem,\n categoryItem,\n task,\n parallel,\n ...restProps\n}: TaskGroupProps) => {\n const t = useI18n();\n const { readOnly, dragEnabled, dragDropConfig, onDragDrop } = useContext(LifeCycleContext);\n const taskItemIsArray = Array.isArray(taskItem);\n const isEmptyCategory = !taskItem || (taskItemIsArray && taskItem.length === 0);\n const isAlternate = !!stageItem.alternate;\n const categoryTestID = generateDynamicTestId([stageItem.label, categoryItem?.label]);\n const taskTestIds = useTestIds(categoryTestID, getTaskTestIds);\n const taskType = isAlternate ? 'alternate-task' : 'task';\n const showDragHandle = dragEnabled && dragDropConfig?.[taskType].enabled;\n\n let shouldShowAddTaskButton = true;\n\n if (task?.addTask?.showOnce && categoryItem?.tasks?.length !== 0) {\n shouldShowAddTaskButton = false;\n }\n\n const onAddTaskClick = (e: MouseEvent<HTMLButtonElement>) => {\n task?.addTask?.onAddTask?.(\n {\n category: categoryItem,\n stage: stageItem\n },\n e\n );\n };\n\n const addTaskItem =\n (shouldShowAddTaskButton || isEmptyCategory) && !readOnly && !!task?.addTask ? (\n <li>\n <StyledAddTask\n data-testid={taskTestIds.addButton}\n variant='simple'\n label={t('add_noun', [task.addTask.title])}\n icon\n onClick={onAddTaskClick}\n >\n <Icon name='plus' />\n <span>{task.addTask.title}</span>\n </StyledAddTask>\n </li>\n ) : null;\n\n const createTaskData = (item: TaskItemProps, subIndex?: number) => ({\n ...task,\n ...restProps,\n value: item.label,\n item: {\n ...item,\n index,\n ...(subIndex !== undefined && { subIndex }),\n alternate: isAlternate\n },\n id: item.id,\n visual: item.visual,\n stageItem,\n dragEnabled: showDragHandle,\n categoryItem: {\n ...categoryItem\n },\n error: item.error,\n onAddStep: task?.onAddStep\n });\n\n const parallelTitle = parallel ? (\n <Flex as={StyledParallelTitle} container={{ justify: 'center' }}>\n <span>{t('parallel')}</span>\n </Flex>\n ) : null;\n\n if (isEmptyCategory && showDragHandle) {\n return (\n <LifeCycleDragDropList\n type={taskType}\n listLocation={{\n alternate: isAlternate,\n stage: stageItem.index,\n category: categoryItem.index,\n task: 0,\n subTask: undefined\n }}\n items={[]}\n itemRenderer={Task}\n onDragDrop={onDragDrop}\n additionalDropZone={addTaskItem}\n as={StyledList}\n />\n );\n }\n\n const tasks = taskItemIsArray ? taskItem : [taskItem];\n\n if (!showDragHandle) {\n return (\n <>\n {parallelTitle}\n <StyledList>\n {tasks.map((item, subIndex) => (\n <Task key={item.id} {...createTaskData(item, taskItemIsArray ? subIndex : undefined)} />\n ))}\n {addTaskItem}\n </StyledList>\n </>\n );\n }\n\n const listLocation = {\n alternate: isAlternate,\n stage: stageItem.index,\n category: categoryItem.index,\n task: index,\n ...(taskItemIsArray && { subTask: undefined })\n };\n\n const items = tasks.map((item, subIndex) => ({\n id: item.id,\n type: taskType,\n data: createTaskData(item, taskItemIsArray ? subIndex : undefined)\n }));\n\n return (\n <>\n {parallelTitle}\n <LifeCycleDragDropList\n type={taskType}\n listLocation={listLocation}\n items={items}\n itemRenderer={Task}\n onDragDrop={onDragDrop}\n additionalDropZone={addTaskItem}\n as={StyledList}\n />\n </>\n );\n};\n\nexport default TaskGroup;\n"]}
|
|
1
|
+
{"version":3,"file":"TaskGroup.js","sourceRoot":"","sources":["../../../src/components/LifeCycle/TaskGroup.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useContext, type MouseEvent } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Flex, useI18n, Button, Icon, defaultThemeProp, useTestIds } from '@pega/cosmos-react-core';\nimport type { BaseProps } from '@pega/cosmos-react-core';\n\nimport type {\n TaskItemProps,\n StageItemProps,\n TaskProps,\n CategoryItemProps\n} from './LifeCycle.types';\nimport Task from './Task';\nimport { StyledList, StyledParallelTitle } from './Category';\nimport LifeCycleContext from './LifeCycleContext';\nimport LifeCycleDragDropList from './LifeCycleDragDropList';\nimport { generateDynamicTestId } from './utils';\nimport { getTaskTestIds } from './LifeCycle.test-ids';\n\ninterface CategoryLabelProp {\n label: string | undefined;\n}\n\nexport interface TaskGroupProps extends BaseProps, TaskProps {\n /** An array of task items to be rendered */\n taskItem: TaskItemProps[];\n /** The index position of this task group within its parent category */\n index: number;\n /** The parent stage data that contains this task group */\n stageItem: StageItemProps;\n /** The parent category data with optional label for this task group */\n categoryItem: CategoryItemProps & CategoryLabelProp;\n /** Task configuration and behavior props, undefined for empty categories */\n task: TaskProps | undefined;\n /** Whether this task group represents parallel tasks (array of tasks) */\n parallel: boolean;\n}\n\nexport const StyledAddTask = styled(Button)(({ theme }) => {\n return css`\n margin-block-end: calc(${theme.base.spacing});\n background: ${theme.base.palette['secondary-background']};\n border-radius: calc(0.5 * ${theme.base['border-radius']});\n width: 100%;\n justify-content: flex-start;\n padding-inline: calc(1.75 * ${theme.base.spacing});\n padding-block: calc(1 * ${theme.base.spacing});\n\n & > :last-child {\n margin-inline: calc(2 * ${theme.base.spacing});\n }\n `;\n});\n\nStyledAddTask.defaultProps = defaultThemeProp;\n\nconst TaskGroup = ({\n taskItem,\n index,\n stageItem,\n categoryItem,\n task,\n parallel,\n ...restProps\n}: TaskGroupProps) => {\n const t = useI18n();\n const { readOnly, dragEnabled, dragDropConfig, onDragDrop } = useContext(LifeCycleContext);\n const isEmptyCategory = taskItem.length === 0;\n const isAlternate = !!stageItem.alternate;\n const categoryTestID = generateDynamicTestId([stageItem.label, categoryItem?.label]);\n const taskTestIds = useTestIds(categoryTestID, getTaskTestIds);\n const taskType = isAlternate ? 'alternate-task' : 'task';\n const showDragHandle = dragEnabled && dragDropConfig?.[taskType].enabled;\n const shouldShowAddTaskButton = !(task?.addTask?.showOnce && categoryItem?.tasks?.length !== 0);\n\n const onAddTaskClick = (e: MouseEvent<HTMLButtonElement>) => {\n task?.addTask?.onAddTask?.(\n {\n category: categoryItem,\n stage: stageItem\n },\n e\n );\n };\n\n const addTaskItem =\n (shouldShowAddTaskButton || isEmptyCategory) && !readOnly && !!task?.addTask ? (\n <li>\n <StyledAddTask\n data-testid={taskTestIds.addButton}\n variant='simple'\n label={t('add_noun', [task.addTask.title])}\n icon\n onClick={onAddTaskClick}\n >\n <Icon name='plus' />\n <span>{task.addTask.title}</span>\n </StyledAddTask>\n </li>\n ) : null;\n\n const createTaskData = (item: TaskItemProps, subIndex?: number) => ({\n ...task,\n ...restProps,\n value: item.label,\n item: {\n ...item,\n index,\n ...(subIndex !== undefined && { subIndex }),\n alternate: isAlternate\n },\n id: item.id,\n visual: item.visual,\n stageItem,\n dragEnabled: showDragHandle,\n categoryItem: {\n ...categoryItem\n },\n error: item.error,\n onAddStep: task?.onAddStep\n });\n\n const parallelTitle = parallel ? (\n <Flex as={StyledParallelTitle} container={{ justify: 'center' }}>\n <span>{t('parallel')}</span>\n </Flex>\n ) : null;\n\n if (isEmptyCategory && showDragHandle) {\n return (\n <LifeCycleDragDropList\n type={taskType}\n listLocation={{\n alternate: isAlternate,\n stage: stageItem.index,\n category: categoryItem.index,\n task: 0,\n subTask: undefined\n }}\n items={[]}\n itemRenderer={Task}\n onDragDrop={onDragDrop}\n additionalDropZone={addTaskItem}\n as={StyledList}\n />\n );\n }\n\n if (!showDragHandle) {\n return (\n <>\n {parallelTitle}\n <StyledList>\n {taskItem.map((item, subIndex) => (\n <Task key={item.id} {...createTaskData(item, subIndex)} />\n ))}\n {addTaskItem}\n </StyledList>\n </>\n );\n }\n\n const listLocation = {\n alternate: isAlternate,\n stage: stageItem.index,\n category: categoryItem.index,\n task: index,\n subTask: undefined\n };\n\n const items = taskItem.map((item, subIndex) => ({\n id: item.id,\n type: taskType,\n data: createTaskData(item, subIndex)\n }));\n\n return (\n <>\n {parallelTitle}\n <LifeCycleDragDropList\n type={taskType}\n listLocation={listLocation}\n items={items}\n itemRenderer={Task}\n onDragDrop={onDragDrop}\n additionalDropZone={addTaskItem}\n as={StyledList}\n />\n </>\n );\n};\n\nexport default TaskGroup;\n"]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { DragDropConfig, IndexData, LifeCycleDragDropEvent, StageItemProps } from './LifeCycle.types';
|
|
1
|
+
import type { DragDropConfig, IndexData, LifeCycleDragDropEvent, StageItemProps, TaskItemProps } from './LifeCycle.types';
|
|
2
2
|
import type { LifeCycleContextValue } from './LifeCycleContext';
|
|
3
3
|
export declare const defaultDragDropConfig: DragDropConfig;
|
|
4
4
|
export declare const generateDynamicTestId: (arr: (string | undefined)[]) => string;
|
|
5
|
+
export declare const isSingleTaskArray: (tasks: TaskItemProps[] | TaskItemProps[][]) => tasks is TaskItemProps[];
|
|
5
6
|
export declare const moveStage: (event: LifeCycleDragDropEvent, stages: StageItemProps[], alternateStages: StageItemProps[]) => {
|
|
6
7
|
stages: StageItemProps[];
|
|
7
8
|
alternateStages: StageItemProps[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/LifeCycle/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,SAAS,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/LifeCycle/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EAET,sBAAsB,EACtB,cAAc,EAEd,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,eAAO,MAAM,qBAAqB,EAAE,cAyBnC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,WAKhE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,aAAa,EAAE,GAAG,aAAa,EAAE,EAAE,KACzC,KAAK,IAAI,aAAa,EAExB,CAAC;AAgCF,eAAO,MAAM,SAAS,GACpB,OAAO,sBAAsB,EAC7B,QAAQ,cAAc,EAAE,EACxB,iBAAiB,cAAc,EAAE;;;aA0BlC,CAAC;AAEF,eAAO,MAAM,QAAQ,GACnB,OAAO,sBAAsB,EAC7B,QAAQ,cAAc,EAAE,EACxB,iBAAiB,cAAc,EAAE;;;aA+BlC,CAAC;AAEF,eAAO,MAAM,QAAQ,GACnB,OAAO,sBAAsB,EAC7B,QAAQ,cAAc,EAAE,EACxB,iBAAiB,cAAc,EAAE;;;aA8DlC,CAAC;AA4OF,eAAO,MAAM,eAAe,GAC1B,qBAAqB,SAAS,EAC9B,MAAM,sBAAsB,CAAC,MAAM,CAAC,EACpC,eAAe,qBAAqB,CAAC,eAAe,CAAC,EACrD,WAAW,MAAM,GAAG,MAAM,KACzB,SAAS,GAAG,SAuDd,CAAC"}
|
|
@@ -30,6 +30,9 @@ export const generateDynamicTestId = (arr) => {
|
|
|
30
30
|
.map(element => element?.replace(/\s+/g, '-').toLowerCase())
|
|
31
31
|
.join('_');
|
|
32
32
|
};
|
|
33
|
+
export const isSingleTaskArray = (tasks) => {
|
|
34
|
+
return tasks.every(taskItem => !Array.isArray(taskItem));
|
|
35
|
+
};
|
|
33
36
|
const getStageData = (stages, indexData) => {
|
|
34
37
|
if (indexData.stage === undefined)
|
|
35
38
|
return;
|
|
@@ -128,44 +131,102 @@ export const moveTask = (event, stages, alternateStages) => {
|
|
|
128
131
|
if (!sourceCategory ||
|
|
129
132
|
!targetCategory ||
|
|
130
133
|
event.sourceData.task === undefined ||
|
|
131
|
-
event.targetData.task === undefined
|
|
134
|
+
event.targetData.task === undefined ||
|
|
135
|
+
event.sourceData.subTask === undefined ||
|
|
136
|
+
event.targetData.subTask === undefined) {
|
|
132
137
|
return;
|
|
133
138
|
}
|
|
134
139
|
// Get the task to move
|
|
135
|
-
const sourceTaskGroup = sourceCategory.tasks[event.sourceData.task];
|
|
136
140
|
let taskToMove;
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
141
|
+
const sourceTasks = sourceCategory.tasks;
|
|
142
|
+
if (isSingleTaskArray(sourceTasks)) {
|
|
143
|
+
taskToMove = sourceTasks[event.sourceData.subTask];
|
|
144
|
+
}
|
|
145
|
+
else if (event.sourceData.task >= sourceTasks.length || event.sourceData.task < 0) {
|
|
146
|
+
return;
|
|
142
147
|
}
|
|
143
148
|
else {
|
|
144
|
-
taskToMove =
|
|
149
|
+
taskToMove = sourceTasks[event.sourceData.task][event.sourceData.subTask];
|
|
145
150
|
}
|
|
146
151
|
if (!taskToMove) {
|
|
147
152
|
return;
|
|
148
153
|
}
|
|
149
154
|
// Remove the task from source
|
|
150
|
-
if (
|
|
151
|
-
|
|
152
|
-
if (sourceTaskGroup.length === 0) {
|
|
153
|
-
sourceCategory.tasks.splice(event.sourceData.task, 1);
|
|
154
|
-
}
|
|
155
|
+
if (isSingleTaskArray(sourceTasks)) {
|
|
156
|
+
sourceTasks.splice(event.sourceData.subTask, 1);
|
|
155
157
|
}
|
|
156
158
|
else {
|
|
157
|
-
|
|
159
|
+
sourceTasks[event.sourceData.task].splice(event.sourceData.subTask, 1);
|
|
158
160
|
}
|
|
159
161
|
// Insert the task at target
|
|
160
|
-
const
|
|
161
|
-
if (
|
|
162
|
-
|
|
162
|
+
const targetTasks = targetCategory.tasks;
|
|
163
|
+
if (isSingleTaskArray(targetTasks)) {
|
|
164
|
+
targetTasks.splice(event.targetData.subTask, 0, taskToMove);
|
|
163
165
|
}
|
|
164
166
|
else {
|
|
165
|
-
|
|
167
|
+
targetTasks[event.targetData.task].splice(event.targetData.subTask, 0, taskToMove);
|
|
168
|
+
}
|
|
169
|
+
// Delete task array if it's parallel
|
|
170
|
+
if (!isSingleTaskArray(sourceTasks)) {
|
|
171
|
+
const sourceTaskGroup = sourceTasks[event.sourceData.task];
|
|
172
|
+
if (sourceTaskGroup.length === 0 && sourceTasks.length > 1) {
|
|
173
|
+
sourceCategory.tasks.splice(event.sourceData.task, 1);
|
|
174
|
+
}
|
|
166
175
|
}
|
|
167
176
|
return { stages: stagesClone, alternateStages: alternateStagesClone };
|
|
168
177
|
};
|
|
178
|
+
const getNextTaskLocation = (primaryStages, alternateStages, currentListLocation, direction) => {
|
|
179
|
+
const { stage, category, task, alternate } = currentListLocation;
|
|
180
|
+
const jump = direction === 'next' ? 1 : -1;
|
|
181
|
+
if (stage === undefined ||
|
|
182
|
+
category === undefined ||
|
|
183
|
+
task === undefined ||
|
|
184
|
+
alternate === undefined) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
const getTaskGroupsFromStages = (stages, isAlternate) => {
|
|
188
|
+
const taskGroups = [];
|
|
189
|
+
for (let stageIdx = 0; stageIdx <= stages.length - 1; stageIdx += 1) {
|
|
190
|
+
for (let categoryIdx = 0; categoryIdx <= stages[stageIdx].categories.length - 1; categoryIdx += 1) {
|
|
191
|
+
const tasks = stages[stageIdx].categories[categoryIdx].tasks;
|
|
192
|
+
if (isSingleTaskArray(tasks)) {
|
|
193
|
+
taskGroups.push({
|
|
194
|
+
alternate: isAlternate,
|
|
195
|
+
stage: stageIdx,
|
|
196
|
+
category: categoryIdx,
|
|
197
|
+
task: 0,
|
|
198
|
+
subTask: direction === 'next' ? 0 : tasks.length
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
for (let taskGroupIdx = 0; taskGroupIdx <= tasks.length - 1; taskGroupIdx += 1) {
|
|
203
|
+
taskGroups.push({
|
|
204
|
+
alternate: isAlternate,
|
|
205
|
+
stage: stageIdx,
|
|
206
|
+
category: categoryIdx,
|
|
207
|
+
task: taskGroupIdx,
|
|
208
|
+
subTask: direction === 'next' ? 0 : tasks.length
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return taskGroups;
|
|
215
|
+
};
|
|
216
|
+
const allTaskGroups = [
|
|
217
|
+
...getTaskGroupsFromStages(primaryStages, false),
|
|
218
|
+
...getTaskGroupsFromStages(alternateStages, true)
|
|
219
|
+
];
|
|
220
|
+
if (allTaskGroups.length <= 1) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
const currentIndex = allTaskGroups.findIndex(taskGroup => taskGroup.stage === stage &&
|
|
224
|
+
taskGroup.category === category &&
|
|
225
|
+
taskGroup.task === task &&
|
|
226
|
+
taskGroup.alternate === alternate);
|
|
227
|
+
const nextIndex = (currentIndex + jump + allTaskGroups.length) % allTaskGroups.length;
|
|
228
|
+
return allTaskGroups[nextIndex];
|
|
229
|
+
};
|
|
169
230
|
const getTargetTaskLocation = (stages, currentListLocation, direction, layer) => {
|
|
170
231
|
const { stage, category, task } = currentListLocation;
|
|
171
232
|
if (currentListLocation[layer] === undefined || stage === undefined) {
|
|
@@ -289,29 +350,7 @@ export const getListLocation = (currentListLocation, type, lifeCycleData, direct
|
|
|
289
350
|
return { stage: direction === 'next' ? 0 : targetList.length, alternate: !alternate };
|
|
290
351
|
}
|
|
291
352
|
if (type === 'task') {
|
|
292
|
-
|
|
293
|
-
if (stage === undefined || category === undefined) {
|
|
294
|
-
return;
|
|
295
|
-
}
|
|
296
|
-
const targetList = alternate ? stages : alternateStages;
|
|
297
|
-
if (targetList.length === 0) {
|
|
298
|
-
return;
|
|
299
|
-
}
|
|
300
|
-
for (let stageIndex = 0; stageIndex < targetList.length; stageIndex += 1) {
|
|
301
|
-
const targetStage = targetList[stageIndex];
|
|
302
|
-
for (let categoryIndex = 0; categoryIndex < targetStage.categories.length; categoryIndex += 1) {
|
|
303
|
-
const targetCategory = targetStage.categories[categoryIndex];
|
|
304
|
-
if (targetCategory.tasks.length > 0) {
|
|
305
|
-
return {
|
|
306
|
-
alternate: !alternate,
|
|
307
|
-
stage: stageIndex,
|
|
308
|
-
category: categoryIndex,
|
|
309
|
-
task: direction === 'next' ? 0 : targetCategory.tasks.length
|
|
310
|
-
};
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
return;
|
|
353
|
+
return getNextTaskLocation(stages, alternateStages, currentListLocation, direction);
|
|
315
354
|
}
|
|
316
355
|
if (type === 'step') {
|
|
317
356
|
const { stage, category, task } = currentListLocation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/LifeCycle/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n DragDropConfig,\n IndexData,\n LifeCycleDragDropEvent,\n StageItemProps,\n StepItemProps,\n TaskItemProps\n} from './LifeCycle.types';\nimport type { LifeCycleContextValue } from './LifeCycleContext';\n\nexport const defaultDragDropConfig: DragDropConfig = {\n stage: {\n enabled: true,\n accept: ['stage', 'alternate-stage']\n },\n step: {\n enabled: true,\n accept: ['step', 'alternate-step']\n },\n task: {\n enabled: true,\n accept: ['task', 'alternate-task']\n },\n 'alternate-stage': {\n enabled: true,\n accept: ['stage', 'alternate-stage']\n },\n 'alternate-step': {\n enabled: true,\n accept: ['step', 'alternate-step']\n },\n 'alternate-task': {\n enabled: true,\n accept: ['task', 'alternate-task']\n }\n};\n\nexport const generateDynamicTestId = (arr: (string | undefined)[]) => {\n return arr\n .filter(element => element)\n .map(element => element?.replace(/\\s+/g, '-').toLowerCase())\n .join('_');\n};\n\nconst getStageData = (stages: StageItemProps[], indexData: IndexData) => {\n if (indexData.stage === undefined) return;\n return stages[indexData.stage];\n};\n\nconst getCategoryData = (stages: StageItemProps[], indexData: IndexData) => {\n if (indexData.category === undefined) return;\n const stage = getStageData(stages, indexData);\n if (!stage) return;\n return stage.categories[indexData.category];\n};\n\nconst getTaskData = (stages: StageItemProps[], indexData: IndexData) => {\n if (indexData.task === undefined) return;\n const category = getCategoryData(stages, indexData);\n if (!category) return;\n if (Array.isArray(category.tasks[indexData.task])) {\n if (indexData.subTask === undefined) return;\n return (category.tasks[indexData.task] as TaskItemProps[])[indexData.subTask];\n }\n return category.tasks[indexData.task] as TaskItemProps;\n};\n\nconst getStepData = (stages: StageItemProps[], indexData: IndexData) => {\n if (indexData.step === undefined) return;\n const task = getTaskData(stages, indexData);\n if (!task) return;\n return task.steps[indexData.step];\n};\n\nexport const moveStage = (\n event: LifeCycleDragDropEvent,\n stages: StageItemProps[],\n alternateStages: StageItemProps[]\n) => {\n let stagesClone: StageItemProps[] = JSON.parse(JSON.stringify(stages));\n let alternateStagesClone: StageItemProps[] = JSON.parse(JSON.stringify(alternateStages));\n\n // Remove the stage from its original position\n let sourceData = event.sourceData.alternate ? alternateStagesClone : stagesClone;\n const stage = getStageData(sourceData, event.sourceData);\n if (!stage || event.targetData.stage === undefined) return;\n sourceData = sourceData.filter((item: StageItemProps) => item.id !== stage.id);\n if (event.sourceData.alternate) {\n alternateStagesClone = sourceData;\n } else {\n stagesClone = sourceData;\n }\n\n // Insert the stage in its new position\n const targetData = event.targetData.alternate ? alternateStagesClone : stagesClone;\n targetData.splice(event.targetData.stage, 0, stage);\n if (event.targetData.alternate) {\n alternateStagesClone = targetData;\n } else {\n stagesClone = targetData;\n }\n\n return { stages: stagesClone, alternateStages: alternateStagesClone };\n};\n\nexport const moveStep = (\n event: LifeCycleDragDropEvent,\n stages: StageItemProps[],\n alternateStages: StageItemProps[]\n) => {\n const stagesClone: StageItemProps[] = JSON.parse(JSON.stringify(stages));\n const alternateStagesClone: StageItemProps[] = JSON.parse(JSON.stringify(alternateStages));\n\n const sourceData = event.sourceData.alternate ? alternateStagesClone : stagesClone;\n const targetData = event.targetData.alternate ? alternateStagesClone : stagesClone;\n\n const sourceCategory = getCategoryData(sourceData, event.sourceData);\n if (!sourceCategory || event.sourceData.task === undefined) return;\n\n const sourceTaskGroup = sourceCategory.tasks[event.sourceData.task];\n if (!sourceTaskGroup) return;\n\n if (Array.isArray(sourceTaskGroup) && event.sourceData.subTask === undefined) {\n return;\n }\n\n // Remove the step from its original position\n const parentTask = getTaskData(sourceData, event.sourceData);\n const step = getStepData(sourceData, event.sourceData);\n if (!parentTask || !step) return;\n parentTask.steps = parentTask.steps.filter((item: StepItemProps) => item.id !== step.id);\n\n // Insert the step in its new position\n const targetTask = getTaskData(targetData, event.targetData);\n if (!targetTask || event.targetData.step === undefined) return;\n targetTask.steps = targetTask.steps || [];\n targetTask.steps.splice(event.targetData.step, 0, step);\n\n return { stages: stagesClone, alternateStages: alternateStagesClone };\n};\n\nexport const moveTask = (\n event: LifeCycleDragDropEvent,\n stages: StageItemProps[],\n alternateStages: StageItemProps[]\n) => {\n const stagesClone: StageItemProps[] = JSON.parse(JSON.stringify(stages));\n const alternateStagesClone: StageItemProps[] = JSON.parse(JSON.stringify(alternateStages));\n\n const sourceData = event.sourceData.alternate ? alternateStagesClone : stagesClone;\n const targetData = event.targetData.alternate ? alternateStagesClone : stagesClone;\n\n const sourceCategory = getCategoryData(sourceData, event.sourceData);\n const targetCategory = getCategoryData(targetData, event.targetData);\n\n if (\n !sourceCategory ||\n !targetCategory ||\n event.sourceData.task === undefined ||\n event.targetData.task === undefined\n ) {\n return;\n }\n\n // Get the task to move\n const sourceTaskGroup = sourceCategory.tasks[event.sourceData.task];\n let taskToMove: TaskItemProps;\n\n if (Array.isArray(sourceTaskGroup)) {\n if (event.sourceData.subTask === undefined) {\n return;\n }\n taskToMove = sourceTaskGroup[event.sourceData.subTask];\n } else {\n taskToMove = sourceTaskGroup as TaskItemProps;\n }\n\n if (!taskToMove) {\n return;\n }\n\n // Remove the task from source\n if (Array.isArray(sourceTaskGroup)) {\n sourceTaskGroup.splice(event.sourceData.subTask!, 1);\n\n if (sourceTaskGroup.length === 0) {\n sourceCategory.tasks.splice(event.sourceData.task, 1);\n }\n } else {\n sourceCategory.tasks.splice(event.sourceData.task, 1);\n }\n\n // Insert the task at target\n const targetTaskGroup = targetCategory.tasks[event.targetData.task];\n\n if (Array.isArray(targetTaskGroup) && event.targetData.subTask !== undefined) {\n targetTaskGroup.splice(event.targetData.subTask, 0, taskToMove);\n } else {\n targetCategory.tasks.splice(event.targetData.task, 0, taskToMove);\n }\n\n return { stages: stagesClone, alternateStages: alternateStagesClone };\n};\n\nconst getTargetTaskLocation = (\n stages: StageItemProps[],\n currentListLocation: IndexData,\n direction: 'prev' | 'next',\n layer: 'stage' | 'category' | 'task' | 'subTask'\n): IndexData | false | undefined => {\n const { stage, category, task } = currentListLocation;\n\n if (currentListLocation[layer] === undefined || stage === undefined) {\n return;\n }\n\n const jump = direction === 'next' ? 1 : -1;\n let targetIndex = currentListLocation[layer] + jump;\n\n if (layer === 'subTask') {\n if (category === undefined || task === undefined) {\n return;\n }\n const parentList = stages[stage].categories[category].tasks[task];\n if (!Array.isArray(parentList)) {\n return;\n }\n\n if (targetIndex < 0 || targetIndex >= parentList.length) {\n return getTargetTaskLocation(\n stages,\n { ...currentListLocation, subTask: undefined },\n direction,\n 'task'\n );\n }\n return { ...currentListLocation, subTask: targetIndex, step: 0 };\n }\n\n if (layer === 'task') {\n if (category === undefined) {\n return;\n }\n const parentList = stages[stage].categories[category].tasks;\n if (!Array.isArray(parentList)) {\n return;\n }\n\n if (targetIndex < 0 || targetIndex >= parentList.length) {\n return getTargetTaskLocation(\n stages,\n { ...currentListLocation, task: undefined },\n direction,\n 'category'\n );\n }\n if (Array.isArray(parentList[targetIndex])) {\n return {\n ...currentListLocation,\n task: targetIndex,\n subTask: direction === 'next' ? 0 : (parentList[targetIndex] as TaskItemProps[]).length - 1,\n step: 0\n };\n }\n return { ...currentListLocation, task: targetIndex, step: 0 };\n }\n\n if (layer === 'category') {\n const parentList = stages[stage].categories;\n if (!Array.isArray(parentList)) {\n return;\n }\n\n if (targetIndex < 0 || targetIndex >= parentList.length) {\n return getTargetTaskLocation(\n stages,\n { ...currentListLocation, category: undefined },\n direction,\n 'stage'\n );\n }\n\n while (parentList[targetIndex].tasks.length === 0) {\n targetIndex += jump;\n if (targetIndex < 0 || targetIndex >= parentList.length) {\n return getTargetTaskLocation(\n stages,\n { ...currentListLocation, category: undefined },\n direction,\n 'stage'\n );\n }\n }\n\n const taskIndex = direction === 'next' ? 0 : parentList[targetIndex].tasks.length - 1;\n if (Array.isArray(parentList[targetIndex].tasks[taskIndex])) {\n return {\n ...currentListLocation,\n category: targetIndex,\n task: taskIndex,\n subTask:\n direction === 'next'\n ? 0\n : (parentList[targetIndex].tasks[taskIndex] as TaskItemProps[]).length - 1,\n step: 0\n };\n }\n return { ...currentListLocation, category: targetIndex, task: taskIndex, step: 0 };\n }\n\n if (layer === 'stage') {\n const parentList = stages;\n if (!Array.isArray(parentList)) {\n return;\n }\n\n if (targetIndex < 0 || targetIndex >= parentList.length) {\n // Returns false to indicate that the target may be in an adjacent stages list\n return false;\n }\n if (\n parentList[targetIndex].categories.length === 0 ||\n parentList[targetIndex].categories[0].tasks.length === 0\n ) {\n while (\n parentList[targetIndex].categories.length === 0 ||\n parentList[targetIndex].categories[0].tasks.length === 0\n ) {\n targetIndex += jump;\n if (targetIndex < 0 || targetIndex >= parentList.length) {\n // Returns false to indicate that the target may be in an adjacent stages list\n return false;\n }\n }\n }\n const categoryIndex = direction === 'next' ? 0 : parentList[targetIndex].categories.length - 1;\n const taskIndex =\n direction === 'next' ? 0 : parentList[targetIndex].categories[categoryIndex].tasks.length - 1;\n if (Array.isArray(parentList[targetIndex].categories[categoryIndex].tasks[taskIndex])) {\n return {\n ...currentListLocation,\n stage: targetIndex,\n category: categoryIndex,\n task: taskIndex,\n subTask:\n direction === 'next'\n ? 0\n : (\n parentList[targetIndex].categories[categoryIndex].tasks[\n taskIndex\n ] as TaskItemProps[]\n ).length - 1,\n step: 0\n };\n }\n return {\n ...currentListLocation,\n stage: targetIndex,\n category: categoryIndex,\n task: taskIndex,\n step: 0\n };\n }\n};\n\nexport const getListLocation = (\n currentListLocation: IndexData,\n type: LifeCycleDragDropEvent['type'],\n lifeCycleData: LifeCycleContextValue['lifeCycleData'],\n direction: 'prev' | 'next'\n): IndexData | undefined => {\n const { stages, alternateStages } = lifeCycleData;\n const alternate = currentListLocation.alternate;\n\n if (type === 'stage') {\n const targetList = alternate ? stages : alternateStages;\n if (targetList.length === 0) {\n return;\n }\n return { stage: direction === 'next' ? 0 : targetList.length, alternate: !alternate };\n }\n\n if (type === 'task') {\n const { stage, category } = currentListLocation;\n if (stage === undefined || category === undefined) {\n return;\n }\n\n const targetList = alternate ? stages : alternateStages;\n\n if (targetList.length === 0) {\n return;\n }\n\n for (let stageIndex = 0; stageIndex < targetList.length; stageIndex += 1) {\n const targetStage = targetList[stageIndex];\n for (\n let categoryIndex = 0;\n categoryIndex < targetStage.categories.length;\n categoryIndex += 1\n ) {\n const targetCategory = targetStage.categories[categoryIndex];\n if (targetCategory.tasks.length > 0) {\n return {\n alternate: !alternate,\n stage: stageIndex,\n category: categoryIndex,\n task: direction === 'next' ? 0 : targetCategory.tasks.length\n };\n }\n }\n }\n\n return;\n }\n\n if (type === 'step') {\n const { stage, category, task } = currentListLocation;\n if (stage === undefined || category === undefined || task === undefined) {\n return;\n }\n\n const sourceList = alternate ? alternateStages : stages;\n const currentStage = sourceList[stage];\n const currentCategory = currentStage.categories[category];\n const currentTask = currentCategory.tasks[task];\n\n let targetTaskLocation = getTargetTaskLocation(\n sourceList,\n currentListLocation,\n direction,\n Array.isArray(currentTask) ? 'subTask' : 'task'\n );\n\n // If the target task location is false, it means that the target could be in an adjacent list\n if (targetTaskLocation === false) {\n const adjacentList = alternate ? stages : alternateStages;\n // Set the entry point to 1 index out of bounds since getTargetTaskLocation will move the target index by 1\n const entryPoint = direction === 'next' ? -1 : adjacentList.length;\n\n targetTaskLocation = getTargetTaskLocation(\n adjacentList,\n { alternate: !alternate, stage: entryPoint },\n direction,\n 'stage'\n );\n\n // If the target is not in an adjacent list, return undefined\n if (targetTaskLocation === false) {\n return;\n }\n }\n\n return targetTaskLocation;\n }\n};\n"]}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/LifeCycle/utils.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,KAAK,EAAE;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC;KACrC;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC;KACnC;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC;KACnC;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC;KACrC;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC;KACnC;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC;KACnC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAA2B,EAAE,EAAE;IACnE,OAAO,GAAG;SACP,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;SAC1B,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;SAC3D,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,KAA0C,EAChB,EAAE;IAC5B,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,MAAwB,EAAE,SAAoB,EAAE,EAAE;IACtE,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO;IAC1C,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,MAAwB,EAAE,SAAoB,EAAE,EAAE;IACzE,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO;IAC7C,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,MAAwB,EAAE,SAAoB,EAAE,EAAE;IACrE,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO;IACzC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAClD,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO;QAC5C,OAAQ,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAqB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAkB,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,MAAwB,EAAE,SAAoB,EAAE,EAAE;IACrE,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO;IACzC,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,KAA6B,EAC7B,MAAwB,EACxB,eAAiC,EACjC,EAAE;IACF,IAAI,WAAW,GAAqB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,IAAI,oBAAoB,GAAqB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;IAEzF,8CAA8C;IAC9C,IAAI,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC;IACjF,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO;IAC3D,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/E,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAC/B,oBAAoB,GAAG,UAAU,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,UAAU,CAAC;IAC3B,CAAC;IAED,uCAAuC;IACvC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC;IACnF,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAC/B,oBAAoB,GAAG,UAAU,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,UAAU,CAAC;IAC3B,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,KAA6B,EAC7B,MAAwB,EACxB,eAAiC,EACjC,EAAE;IACF,MAAM,WAAW,GAAqB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,MAAM,oBAAoB,GAAqB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;IAE3F,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC;IACnF,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC;IAEnF,MAAM,cAAc,GAAG,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACrE,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO;IAEnE,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpE,IAAI,CAAC,eAAe;QAAE,OAAO;IAE7B,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC7E,OAAO;IACT,CAAC;IAED,6CAA6C;IAC7C,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI;QAAE,OAAO;IACjC,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;IAEzF,sCAAsC;IACtC,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC7D,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO;IAC/D,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;IAC1C,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAExD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,KAA6B,EAC7B,MAAwB,EACxB,eAAiC,EACjC,EAAE;IACF,MAAM,WAAW,GAAqB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,MAAM,oBAAoB,GAAqB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;IAE3F,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC;IACnF,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC;IAEnF,MAAM,cAAc,GAAG,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAErE,IACE,CAAC,cAAc;QACf,CAAC,cAAc;QACf,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS;QACnC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS;QACnC,KAAK,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS;QACtC,KAAK,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,EACtC,CAAC;QACD,OAAO;IACT,CAAC;IAED,uBAAuB;IACvB,IAAI,UAAyB,CAAC;IAE9B,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC;IACzC,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACpF,OAAO;IACT,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IAED,8BAA8B;IAC9B,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,4BAA4B;IAC5B,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC;IACzC,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IACrF,CAAC;IAED,qCAAqC;IACrC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;QACpC,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,aAA+B,EAC/B,eAAiC,EACjC,mBAA8B,EAC9B,SAAqC,EACd,EAAE;IACzB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC;IACjE,MAAM,IAAI,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3C,IACE,KAAK,KAAK,SAAS;QACnB,QAAQ,KAAK,SAAS;QACtB,IAAI,KAAK,SAAS;QAClB,SAAS,KAAK,SAAS,EACvB,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,uBAAuB,GAAG,CAAC,MAAwB,EAAE,WAAoB,EAAE,EAAE;QACjF,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC;YACpE,KACE,IAAI,WAAW,GAAG,CAAC,EACnB,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EACrD,WAAW,IAAI,CAAC,EAChB,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;gBAC7D,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7B,UAAU,CAAC,IAAI,CAAC;wBACd,SAAS,EAAE,WAAW;wBACtB,KAAK,EAAE,QAAQ;wBACf,QAAQ,EAAE,WAAW;wBACrB,IAAI,EAAE,CAAC;wBACP,OAAO,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;qBACjD,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,KAAK,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,YAAY,IAAI,CAAC,EAAE,CAAC;wBAC/E,UAAU,CAAC,IAAI,CAAC;4BACd,SAAS,EAAE,WAAW;4BACtB,KAAK,EAAE,QAAQ;4BACf,QAAQ,EAAE,WAAW;4BACrB,IAAI,EAAE,YAAY;4BAClB,OAAO,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;yBACjD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAgB;QACjC,GAAG,uBAAuB,CAAC,aAAa,EAAE,KAAK,CAAC;QAChD,GAAG,uBAAuB,CAAC,eAAe,EAAE,IAAI,CAAC;KAClD,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,CAC1C,SAAS,CAAC,EAAE,CACV,SAAS,CAAC,KAAK,KAAK,KAAK;QACzB,SAAS,CAAC,QAAQ,KAAK,QAAQ;QAC/B,SAAS,CAAC,IAAI,KAAK,IAAI;QACvB,SAAS,CAAC,SAAS,KAAK,SAAS,CACpC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,YAAY,GAAG,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;IAEtF,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC5B,MAAwB,EACxB,mBAA8B,EAC9B,SAA0B,EAC1B,KAAgD,EACjB,EAAE;IACjC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC;IAEtD,IAAI,mBAAmB,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACpE,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAEpD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACxD,OAAO,qBAAqB,CAC1B,MAAM,EACN,EAAE,GAAG,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,EAC9C,SAAS,EACT,MAAM,CACP,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,GAAG,mBAAmB,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACnE,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACxD,OAAO,qBAAqB,CAC1B,MAAM,EACN,EAAE,GAAG,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,EAC3C,SAAS,EACT,UAAU,CACX,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YAC3C,OAAO;gBACL,GAAG,mBAAmB;gBACtB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,UAAU,CAAC,WAAW,CAAqB,CAAC,MAAM,GAAG,CAAC;gBAC3F,IAAI,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,GAAG,mBAAmB,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAChE,CAAC;IAED,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACxD,OAAO,qBAAqB,CAC1B,MAAM,EACN,EAAE,GAAG,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,EAC/C,SAAS,EACT,OAAO,CACR,CAAC;QACJ,CAAC;QAED,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,WAAW,IAAI,IAAI,CAAC;YACpB,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACxD,OAAO,qBAAqB,CAC1B,MAAM,EACN,EAAE,GAAG,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,EAC/C,SAAS,EACT,OAAO,CACR,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtF,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC5D,OAAO;gBACL,GAAG,mBAAmB;gBACtB,QAAQ,EAAE,WAAW;gBACrB,IAAI,EAAE,SAAS;gBACf,OAAO,EACL,SAAS,KAAK,MAAM;oBAClB,CAAC,CAAC,CAAC;oBACH,CAAC,CAAE,UAAU,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,SAAS,CAAqB,CAAC,MAAM,GAAG,CAAC;gBAC9E,IAAI,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,GAAG,mBAAmB,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACrF,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACxD,8EAA8E;YAC9E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IACE,UAAU,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAC/C,UAAU,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EACxD,CAAC;YACD,OACE,UAAU,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;gBAC/C,UAAU,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EACxD,CAAC;gBACD,WAAW,IAAI,IAAI,CAAC;gBACpB,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;oBACxD,8EAA8E;oBAC9E,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,aAAa,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/F,MAAM,SAAS,GACb,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAChG,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACtF,OAAO;gBACL,GAAG,mBAAmB;gBACtB,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE,aAAa;gBACvB,IAAI,EAAE,SAAS;gBACf,OAAO,EACL,SAAS,KAAK,MAAM;oBAClB,CAAC,CAAC,CAAC;oBACH,CAAC,CACG,UAAU,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,CACrD,SAAS,CAEZ,CAAC,MAAM,GAAG,CAAC;gBAClB,IAAI,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;QACD,OAAO;YACL,GAAG,mBAAmB;YACtB,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,aAAa;YACvB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,mBAA8B,EAC9B,IAAoC,EACpC,aAAqD,EACrD,SAA0B,EACH,EAAE;IACzB,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,aAAa,CAAC;IAClD,MAAM,SAAS,GAAG,mBAAmB,CAAC,SAAS,CAAC;IAEhD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC;QACxD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC;IACxF,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC;QACtD,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxE,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC;QACxD,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,eAAe,GAAG,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,kBAAkB,GAAG,qBAAqB,CAC5C,UAAU,EACV,mBAAmB,EACnB,SAAS,EACT,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAChD,CAAC;QAEF,8FAA8F;QAC9F,IAAI,kBAAkB,KAAK,KAAK,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC;YAC1D,2GAA2G;YAC3G,MAAM,UAAU,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;YAEnE,kBAAkB,GAAG,qBAAqB,CACxC,YAAY,EACZ,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAC5C,SAAS,EACT,OAAO,CACR,CAAC;YAEF,6DAA6D;YAC7D,IAAI,kBAAkB,KAAK,KAAK,EAAE,CAAC;gBACjC,OAAO;YACT,CAAC;QACH,CAAC;QAED,OAAO,kBAAkB,CAAC;IAC5B,CAAC;AACH,CAAC,CAAC","sourcesContent":["import type {\n DragDropConfig,\n IndexData,\n LifeCycleDragDropDirection,\n LifeCycleDragDropEvent,\n StageItemProps,\n StepItemProps,\n TaskItemProps\n} from './LifeCycle.types';\nimport type { LifeCycleContextValue } from './LifeCycleContext';\n\nexport const defaultDragDropConfig: DragDropConfig = {\n stage: {\n enabled: true,\n accept: ['stage', 'alternate-stage']\n },\n step: {\n enabled: true,\n accept: ['step', 'alternate-step']\n },\n task: {\n enabled: true,\n accept: ['task', 'alternate-task']\n },\n 'alternate-stage': {\n enabled: true,\n accept: ['stage', 'alternate-stage']\n },\n 'alternate-step': {\n enabled: true,\n accept: ['step', 'alternate-step']\n },\n 'alternate-task': {\n enabled: true,\n accept: ['task', 'alternate-task']\n }\n};\n\nexport const generateDynamicTestId = (arr: (string | undefined)[]) => {\n return arr\n .filter(element => element)\n .map(element => element?.replace(/\\s+/g, '-').toLowerCase())\n .join('_');\n};\n\nexport const isSingleTaskArray = (\n tasks: TaskItemProps[] | TaskItemProps[][]\n): tasks is TaskItemProps[] => {\n return tasks.every(taskItem => !Array.isArray(taskItem));\n};\n\nconst getStageData = (stages: StageItemProps[], indexData: IndexData) => {\n if (indexData.stage === undefined) return;\n return stages[indexData.stage];\n};\n\nconst getCategoryData = (stages: StageItemProps[], indexData: IndexData) => {\n if (indexData.category === undefined) return;\n const stage = getStageData(stages, indexData);\n if (!stage) return;\n return stage.categories[indexData.category];\n};\n\nconst getTaskData = (stages: StageItemProps[], indexData: IndexData) => {\n if (indexData.task === undefined) return;\n const category = getCategoryData(stages, indexData);\n if (!category) return;\n if (Array.isArray(category.tasks[indexData.task])) {\n if (indexData.subTask === undefined) return;\n return (category.tasks[indexData.task] as TaskItemProps[])[indexData.subTask];\n }\n return category.tasks[indexData.task] as TaskItemProps;\n};\n\nconst getStepData = (stages: StageItemProps[], indexData: IndexData) => {\n if (indexData.step === undefined) return;\n const task = getTaskData(stages, indexData);\n if (!task) return;\n return task.steps[indexData.step];\n};\n\nexport const moveStage = (\n event: LifeCycleDragDropEvent,\n stages: StageItemProps[],\n alternateStages: StageItemProps[]\n) => {\n let stagesClone: StageItemProps[] = JSON.parse(JSON.stringify(stages));\n let alternateStagesClone: StageItemProps[] = JSON.parse(JSON.stringify(alternateStages));\n\n // Remove the stage from its original position\n let sourceData = event.sourceData.alternate ? alternateStagesClone : stagesClone;\n const stage = getStageData(sourceData, event.sourceData);\n if (!stage || event.targetData.stage === undefined) return;\n sourceData = sourceData.filter((item: StageItemProps) => item.id !== stage.id);\n if (event.sourceData.alternate) {\n alternateStagesClone = sourceData;\n } else {\n stagesClone = sourceData;\n }\n\n // Insert the stage in its new position\n const targetData = event.targetData.alternate ? alternateStagesClone : stagesClone;\n targetData.splice(event.targetData.stage, 0, stage);\n if (event.targetData.alternate) {\n alternateStagesClone = targetData;\n } else {\n stagesClone = targetData;\n }\n\n return { stages: stagesClone, alternateStages: alternateStagesClone };\n};\n\nexport const moveStep = (\n event: LifeCycleDragDropEvent,\n stages: StageItemProps[],\n alternateStages: StageItemProps[]\n) => {\n const stagesClone: StageItemProps[] = JSON.parse(JSON.stringify(stages));\n const alternateStagesClone: StageItemProps[] = JSON.parse(JSON.stringify(alternateStages));\n\n const sourceData = event.sourceData.alternate ? alternateStagesClone : stagesClone;\n const targetData = event.targetData.alternate ? alternateStagesClone : stagesClone;\n\n const sourceCategory = getCategoryData(sourceData, event.sourceData);\n if (!sourceCategory || event.sourceData.task === undefined) return;\n\n const sourceTaskGroup = sourceCategory.tasks[event.sourceData.task];\n if (!sourceTaskGroup) return;\n\n if (Array.isArray(sourceTaskGroup) && event.sourceData.subTask === undefined) {\n return;\n }\n\n // Remove the step from its original position\n const parentTask = getTaskData(sourceData, event.sourceData);\n const step = getStepData(sourceData, event.sourceData);\n if (!parentTask || !step) return;\n parentTask.steps = parentTask.steps.filter((item: StepItemProps) => item.id !== step.id);\n\n // Insert the step in its new position\n const targetTask = getTaskData(targetData, event.targetData);\n if (!targetTask || event.targetData.step === undefined) return;\n targetTask.steps = targetTask.steps || [];\n targetTask.steps.splice(event.targetData.step, 0, step);\n\n return { stages: stagesClone, alternateStages: alternateStagesClone };\n};\n\nexport const moveTask = (\n event: LifeCycleDragDropEvent,\n stages: StageItemProps[],\n alternateStages: StageItemProps[]\n) => {\n const stagesClone: StageItemProps[] = JSON.parse(JSON.stringify(stages));\n const alternateStagesClone: StageItemProps[] = JSON.parse(JSON.stringify(alternateStages));\n\n const sourceData = event.sourceData.alternate ? alternateStagesClone : stagesClone;\n const targetData = event.targetData.alternate ? alternateStagesClone : stagesClone;\n\n const sourceCategory = getCategoryData(sourceData, event.sourceData);\n const targetCategory = getCategoryData(targetData, event.targetData);\n\n if (\n !sourceCategory ||\n !targetCategory ||\n event.sourceData.task === undefined ||\n event.targetData.task === undefined ||\n event.sourceData.subTask === undefined ||\n event.targetData.subTask === undefined\n ) {\n return;\n }\n\n // Get the task to move\n let taskToMove: TaskItemProps;\n\n const sourceTasks = sourceCategory.tasks;\n if (isSingleTaskArray(sourceTasks)) {\n taskToMove = sourceTasks[event.sourceData.subTask];\n } else if (event.sourceData.task >= sourceTasks.length || event.sourceData.task < 0) {\n return;\n } else {\n taskToMove = sourceTasks[event.sourceData.task][event.sourceData.subTask];\n }\n\n if (!taskToMove) {\n return;\n }\n\n // Remove the task from source\n if (isSingleTaskArray(sourceTasks)) {\n sourceTasks.splice(event.sourceData.subTask, 1);\n } else {\n sourceTasks[event.sourceData.task].splice(event.sourceData.subTask, 1);\n }\n\n // Insert the task at target\n const targetTasks = targetCategory.tasks;\n if (isSingleTaskArray(targetTasks)) {\n targetTasks.splice(event.targetData.subTask, 0, taskToMove);\n } else {\n targetTasks[event.targetData.task].splice(event.targetData.subTask, 0, taskToMove);\n }\n\n // Delete task array if it's parallel\n if (!isSingleTaskArray(sourceTasks)) {\n const sourceTaskGroup = sourceTasks[event.sourceData.task];\n if (sourceTaskGroup.length === 0 && sourceTasks.length > 1) {\n sourceCategory.tasks.splice(event.sourceData.task, 1);\n }\n }\n\n return { stages: stagesClone, alternateStages: alternateStagesClone };\n};\n\nconst getNextTaskLocation = (\n primaryStages: StageItemProps[],\n alternateStages: StageItemProps[],\n currentListLocation: IndexData,\n direction: LifeCycleDragDropDirection\n): IndexData | undefined => {\n const { stage, category, task, alternate } = currentListLocation;\n const jump = direction === 'next' ? 1 : -1;\n\n if (\n stage === undefined ||\n category === undefined ||\n task === undefined ||\n alternate === undefined\n ) {\n return;\n }\n\n const getTaskGroupsFromStages = (stages: StageItemProps[], isAlternate: boolean) => {\n const taskGroups: IndexData[] = [];\n for (let stageIdx = 0; stageIdx <= stages.length - 1; stageIdx += 1) {\n for (\n let categoryIdx = 0;\n categoryIdx <= stages[stageIdx].categories.length - 1;\n categoryIdx += 1\n ) {\n const tasks = stages[stageIdx].categories[categoryIdx].tasks;\n if (isSingleTaskArray(tasks)) {\n taskGroups.push({\n alternate: isAlternate,\n stage: stageIdx,\n category: categoryIdx,\n task: 0,\n subTask: direction === 'next' ? 0 : tasks.length\n });\n } else {\n for (let taskGroupIdx = 0; taskGroupIdx <= tasks.length - 1; taskGroupIdx += 1) {\n taskGroups.push({\n alternate: isAlternate,\n stage: stageIdx,\n category: categoryIdx,\n task: taskGroupIdx,\n subTask: direction === 'next' ? 0 : tasks.length\n });\n }\n }\n }\n }\n return taskGroups;\n };\n\n const allTaskGroups: IndexData[] = [\n ...getTaskGroupsFromStages(primaryStages, false),\n ...getTaskGroupsFromStages(alternateStages, true)\n ];\n\n if (allTaskGroups.length <= 1) {\n return;\n }\n\n const currentIndex = allTaskGroups.findIndex(\n taskGroup =>\n taskGroup.stage === stage &&\n taskGroup.category === category &&\n taskGroup.task === task &&\n taskGroup.alternate === alternate\n );\n\n const nextIndex = (currentIndex + jump + allTaskGroups.length) % allTaskGroups.length;\n\n return allTaskGroups[nextIndex];\n};\n\nconst getTargetTaskLocation = (\n stages: StageItemProps[],\n currentListLocation: IndexData,\n direction: 'prev' | 'next',\n layer: 'stage' | 'category' | 'task' | 'subTask'\n): IndexData | false | undefined => {\n const { stage, category, task } = currentListLocation;\n\n if (currentListLocation[layer] === undefined || stage === undefined) {\n return;\n }\n\n const jump = direction === 'next' ? 1 : -1;\n let targetIndex = currentListLocation[layer] + jump;\n\n if (layer === 'subTask') {\n if (category === undefined || task === undefined) {\n return;\n }\n const parentList = stages[stage].categories[category].tasks[task];\n if (!Array.isArray(parentList)) {\n return;\n }\n\n if (targetIndex < 0 || targetIndex >= parentList.length) {\n return getTargetTaskLocation(\n stages,\n { ...currentListLocation, subTask: undefined },\n direction,\n 'task'\n );\n }\n return { ...currentListLocation, subTask: targetIndex, step: 0 };\n }\n\n if (layer === 'task') {\n if (category === undefined) {\n return;\n }\n const parentList = stages[stage].categories[category].tasks;\n if (!Array.isArray(parentList)) {\n return;\n }\n\n if (targetIndex < 0 || targetIndex >= parentList.length) {\n return getTargetTaskLocation(\n stages,\n { ...currentListLocation, task: undefined },\n direction,\n 'category'\n );\n }\n if (Array.isArray(parentList[targetIndex])) {\n return {\n ...currentListLocation,\n task: targetIndex,\n subTask: direction === 'next' ? 0 : (parentList[targetIndex] as TaskItemProps[]).length - 1,\n step: 0\n };\n }\n return { ...currentListLocation, task: targetIndex, step: 0 };\n }\n\n if (layer === 'category') {\n const parentList = stages[stage].categories;\n if (!Array.isArray(parentList)) {\n return;\n }\n\n if (targetIndex < 0 || targetIndex >= parentList.length) {\n return getTargetTaskLocation(\n stages,\n { ...currentListLocation, category: undefined },\n direction,\n 'stage'\n );\n }\n\n while (parentList[targetIndex].tasks.length === 0) {\n targetIndex += jump;\n if (targetIndex < 0 || targetIndex >= parentList.length) {\n return getTargetTaskLocation(\n stages,\n { ...currentListLocation, category: undefined },\n direction,\n 'stage'\n );\n }\n }\n\n const taskIndex = direction === 'next' ? 0 : parentList[targetIndex].tasks.length - 1;\n if (Array.isArray(parentList[targetIndex].tasks[taskIndex])) {\n return {\n ...currentListLocation,\n category: targetIndex,\n task: taskIndex,\n subTask:\n direction === 'next'\n ? 0\n : (parentList[targetIndex].tasks[taskIndex] as TaskItemProps[]).length - 1,\n step: 0\n };\n }\n return { ...currentListLocation, category: targetIndex, task: taskIndex, step: 0 };\n }\n\n if (layer === 'stage') {\n const parentList = stages;\n if (!Array.isArray(parentList)) {\n return;\n }\n\n if (targetIndex < 0 || targetIndex >= parentList.length) {\n // Returns false to indicate that the target may be in an adjacent stages list\n return false;\n }\n if (\n parentList[targetIndex].categories.length === 0 ||\n parentList[targetIndex].categories[0].tasks.length === 0\n ) {\n while (\n parentList[targetIndex].categories.length === 0 ||\n parentList[targetIndex].categories[0].tasks.length === 0\n ) {\n targetIndex += jump;\n if (targetIndex < 0 || targetIndex >= parentList.length) {\n // Returns false to indicate that the target may be in an adjacent stages list\n return false;\n }\n }\n }\n const categoryIndex = direction === 'next' ? 0 : parentList[targetIndex].categories.length - 1;\n const taskIndex =\n direction === 'next' ? 0 : parentList[targetIndex].categories[categoryIndex].tasks.length - 1;\n if (Array.isArray(parentList[targetIndex].categories[categoryIndex].tasks[taskIndex])) {\n return {\n ...currentListLocation,\n stage: targetIndex,\n category: categoryIndex,\n task: taskIndex,\n subTask:\n direction === 'next'\n ? 0\n : (\n parentList[targetIndex].categories[categoryIndex].tasks[\n taskIndex\n ] as TaskItemProps[]\n ).length - 1,\n step: 0\n };\n }\n return {\n ...currentListLocation,\n stage: targetIndex,\n category: categoryIndex,\n task: taskIndex,\n step: 0\n };\n }\n};\n\nexport const getListLocation = (\n currentListLocation: IndexData,\n type: LifeCycleDragDropEvent['type'],\n lifeCycleData: LifeCycleContextValue['lifeCycleData'],\n direction: 'prev' | 'next'\n): IndexData | undefined => {\n const { stages, alternateStages } = lifeCycleData;\n const alternate = currentListLocation.alternate;\n\n if (type === 'stage') {\n const targetList = alternate ? stages : alternateStages;\n if (targetList.length === 0) {\n return;\n }\n return { stage: direction === 'next' ? 0 : targetList.length, alternate: !alternate };\n }\n\n if (type === 'task') {\n return getNextTaskLocation(stages, alternateStages, currentListLocation, direction);\n }\n\n if (type === 'step') {\n const { stage, category, task } = currentListLocation;\n if (stage === undefined || category === undefined || task === undefined) {\n return;\n }\n\n const sourceList = alternate ? alternateStages : stages;\n const currentStage = sourceList[stage];\n const currentCategory = currentStage.categories[category];\n const currentTask = currentCategory.tasks[task];\n\n let targetTaskLocation = getTargetTaskLocation(\n sourceList,\n currentListLocation,\n direction,\n Array.isArray(currentTask) ? 'subTask' : 'task'\n );\n\n // If the target task location is false, it means that the target could be in an adjacent list\n if (targetTaskLocation === false) {\n const adjacentList = alternate ? stages : alternateStages;\n // Set the entry point to 1 index out of bounds since getTargetTaskLocation will move the target index by 1\n const entryPoint = direction === 'next' ? -1 : adjacentList.length;\n\n targetTaskLocation = getTargetTaskLocation(\n adjacentList,\n { alternate: !alternate, stage: entryPoint },\n direction,\n 'stage'\n );\n\n // If the target is not in an adjacent list, return undefined\n if (targetTaskLocation === false) {\n return;\n }\n }\n\n return targetTaskLocation;\n }\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pega/cosmos-react-build",
|
|
3
|
-
"version": "9.0.0-build.6.
|
|
3
|
+
"version": "9.0.0-build.6.10",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"author": "Pegasystems",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
"build": "tsc -b tsconfig.build.json"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@pega/cosmos-react-core": "9.0.0-build.6.
|
|
18
|
-
"@pega/cosmos-react-dnd": "9.0.0-build.6.
|
|
19
|
-
"@pega/cosmos-react-rte": "9.0.0-build.6.
|
|
17
|
+
"@pega/cosmos-react-core": "9.0.0-build.6.10",
|
|
18
|
+
"@pega/cosmos-react-dnd": "9.0.0-build.6.10",
|
|
19
|
+
"@pega/cosmos-react-rte": "9.0.0-build.6.10",
|
|
20
20
|
"@types/codemirror": "^5.60.15",
|
|
21
21
|
"@types/dagre": "^0.7.46",
|
|
22
22
|
"@types/react": "^17.0.62 || ^18.3.3",
|