{"version":3,"file":"Modal.mocks.jsx","sourceRoot":"","sources":["../../../src/core/Modal/Modal.mocks.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, type ChangeEvent, useEffect, type ReactNode, type KeyboardEvent } from 'react';\n\nimport {\n  Button,\n  Flex,\n  Input,\n  Modal,\n  Text,\n  cap,\n  useModalContext,\n  useModalManager,\n  useToaster\n} from '@pega/cosmos-react-core';\nimport type { ModalProps, OmitStrict } from '@pega/cosmos-react-core';\n\nimport { ImageDemo } from '../Image/Image.stories';\nimport { TableDemo } from '../Table/Table.stories';\nimport { FormContent } from '../Form/Form.mocks';\nimport { loadingTimeoutMS } from '../Progress/Progress.mocks';\n\nexport interface ModalDemoProps {\n  autoWidth: ModalProps['autoWidth'];\n  center: ModalProps['center'];\n  stretch: ModalProps['stretch'];\n  defaultMinimized?: boolean;\n  onDismiss?: (id: string) => void;\n  onMinimize?: (id: string) => void;\n  onActivate?: (id: string) => void;\n  onRequestDismiss?: () => boolean;\n  onRequestMinimize?: () => boolean;\n  onRequestActivate?: () => boolean;\n  onRequestDock?: () => boolean;\n}\n\nexport interface AlertModalDemoProps extends ModalDemoProps {\n  onKeyDown?: (e: KeyboardEvent) => void;\n}\n\nexport interface ModalUpdatesProps extends ModalDemoProps {\n  content: string;\n  disableButton: boolean;\n  heading: string;\n}\n\nexport interface AutoWidthModalContentProps {\n  autoWidth: boolean;\n  content: ContentType;\n  formColumnWidthFixed: boolean;\n  stretch?: never;\n  center?: never;\n}\n\ntype ContentSections = 'text' | 'meta' | 'form';\n\nexport type ContentType =\n  | 'short text'\n  | 'long text'\n  | 'image'\n  | 'table'\n  | 'form (1 column)'\n  | 'form (2 column)'\n  | 'form (3 column)'\n  | 'random';\n\nconst getRandomContentType = (contentType: ContentSections): ContentType => {\n  const contentMap: Record<ContentSections, ContentType[]> = {\n    text: ['short text', 'long text'],\n    meta: ['image', 'table'],\n    form: ['form (1 column)', 'form (2 column)', 'form (3 column)']\n  };\n  const options = contentMap[contentType];\n\n  return options[Math.floor(Math.random() * options.length)];\n};\n\nexport const getContent = (contentType: ContentType, formColumnWidthFixed: boolean) => {\n  switch (contentType) {\n    case 'random':\n      return (\n        <Flex container={{ direction: 'column', gap: 4 }}>\n          {getContent(getRandomContentType('text'), false)}\n          {getContent(getRandomContentType('meta'), false)}\n          {getContent(getRandomContentType('form'), formColumnWidthFixed)}\n        </Flex>\n      );\n    case 'image':\n      return <ImageDemo />;\n    case 'table':\n      return <TableDemo />;\n    case 'form (1 column)':\n      return <FormContent cols={1} showActions={false} />;\n    case 'form (2 column)':\n      return <FormContent cols={2} showActions={false} />;\n    case 'form (3 column)':\n      return <FormContent cols={3} showActions={false} />;\n    case 'long text':\n      return (\n        <Text>\n          Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec fermentum ipsum ipsum, nec\n          sodales risus finibus eget. Proin ornare, ante ac convallis sollicitudin, elit turpis\n          venenatis lorem, vitae viverra eros magna non lectus. Duis ac auctor sapien. Donec\n          malesuada eros ut libero sodales, malesuada ullamcorper lacus eleifend.\n        </Text>\n      );\n    case 'short text':\n    default:\n      return <Text>Lorem ipsum dolor sit amet.</Text>;\n  }\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n// ModalDemo story mocks\n// ---------------------------------------------------------------------------------------------------------------------\nexport const ModalDemoMockModal = (args: ModalDemoProps) => {\n  return (\n    <Modal\n      heading='This is the Modal heading'\n      autoWidth={args.autoWidth}\n      center={args.center}\n      stretch={args.stretch}\n    >\n      <Text>This is the content of the Modal.</Text>\n    </Modal>\n  );\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n// ModalUpdates story mocks\n// ---------------------------------------------------------------------------------------------------------------------\nexport const ModalUpdatesMockModal = (props: ModalUpdatesProps) => {\n  const { update } = useModalContext();\n\n  const actions = (\n    <Button\n      variant='primary'\n      disabled={props.disableButton}\n      onClick={() => {\n        update({\n          content: 'This Modal has been updated a second time from within the Modal!'\n        });\n      }}\n    >\n      Update Modal\n    </Button>\n  );\n\n  return (\n    <Modal\n      {...props}\n      heading={props.heading}\n      actions={actions}\n      autoWidth={props.autoWidth}\n      center={props.center}\n      stretch={props.stretch}\n    >\n      <Text>{props.content}</Text>\n    </Modal>\n  );\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n// AlertModal story mocks\n// ---------------------------------------------------------------------------------------------------------------------\nconst AlertModalMockAlert = (props: { closeInitialModal: () => void }) => {\n  const { dismiss } = useModalContext();\n\n  return (\n    <Modal\n      heading='You have unsaved changes!'\n      actions={\n        <>\n          <Button onClick={dismiss}>No</Button>\n          <Button\n            variant='primary'\n            onClick={() => {\n              dismiss();\n              props.closeInitialModal();\n            }}\n          >\n            Yes\n          </Button>\n        </>\n      }\n    >\n      <Text>Are you sure you want to close without saving?</Text>\n    </Modal>\n  );\n};\n\nexport const AlertModalMockModal = (args: AlertModalDemoProps) => {\n  const [name, setName] = useState('');\n  const { create } = useModalManager();\n  const { dismiss } = useModalContext();\n\n  const actions = (\n    <>\n      <Button\n        onClick={() => {\n          if (name !== '') {\n            create(AlertModalMockAlert, { closeInitialModal: dismiss }, { alert: true });\n          } else {\n            dismiss();\n          }\n        }}\n      >\n        Close\n      </Button>\n      <Button variant='primary' onClick={dismiss} disabled={name === ''}>\n        Save\n      </Button>\n    </>\n  );\n\n  return (\n    <Modal\n      actions={actions}\n      heading='Close the Modal without saving any data to invoke the alert'\n      autoWidth={args.autoWidth}\n      center={args.center}\n      stretch={args.stretch}\n      onRequestDismiss={() => {\n        if (name !== '') {\n          create(AlertModalMockAlert, { closeInitialModal: dismiss }, { alert: true });\n          return false;\n        }\n      }}\n    >\n      <Input\n        label='Name'\n        name='name'\n        onChange={(e: ChangeEvent<HTMLInputElement>) => {\n          setName(e.target.value);\n        }}\n        onKeyDown={args.onKeyDown}\n        value={name}\n        required\n      />\n    </Modal>\n  );\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n// ProgressState story mocks\n// ---------------------------------------------------------------------------------------------------------------------\nexport const ProgressStateMockModal = () => {\n  const { dismiss } = useModalContext();\n\n  const [transientState, setTransientState] = useState<'loading' | 'submitting' | null>('loading');\n\n  const actions =\n    transientState === 'loading' ? null : (\n      <>\n        <Button\n          disabled={!!transientState}\n          onClick={() => {\n            if (transientState !== 'submitting') {\n              dismiss();\n            }\n          }}\n        >\n          Cancel\n        </Button>\n        <Button\n          disabled={!!transientState}\n          variant='primary'\n          onClick={() => {\n            setTransientState('submitting');\n          }}\n        >\n          Submit\n        </Button>\n      </>\n    );\n\n  useEffect(() => {\n    let timerID: number;\n\n    if (transientState === 'loading' || transientState === 'submitting') {\n      timerID = window.setTimeout(() => {\n        if (transientState === 'loading') {\n          setTransientState(null);\n        } else {\n          dismiss();\n        }\n      }, loadingTimeoutMS);\n    }\n\n    return () => {\n      window.clearTimeout(timerID);\n    };\n  }, [transientState]);\n\n  return (\n    <Modal\n      progress={(() => {\n        if (transientState) {\n          return {\n            message: `${cap(transientState)}…`\n          };\n        }\n      })()}\n      heading='Modal progress demo'\n      actions={actions}\n      onRequestDismiss={() => transientState !== 'submitting'}\n    >\n      {transientState !== 'loading' && (\n        <Flex container={{ direction: 'column', gap: 2 }}>\n          {Array.from({ length: 5 }, (_, i) => (\n            <Input key={i} label={`Field-${i + 1}`} />\n          ))}\n        </Flex>\n      )}\n    </Modal>\n  );\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n// MinimizableModal story mocks\n// ---------------------------------------------------------------------------------------------------------------------\nconst MinimizableModalMockChildModal = (\n  args: ModalDemoProps & { count: number; parentId: number }\n) => {\n  return (\n    <Modal\n      heading={`Modal #${args.count}`}\n      autoWidth={args.autoWidth}\n      onRequestDismiss={() => {\n        args.onRequestDismiss?.();\n      }}\n    >\n      <Text>\n        This minimizable modal is triggered from an existing open modal - Modal #{args.parentId}.\n      </Text>\n    </Modal>\n  );\n};\n\nexport const MinimizableModalModal = (args: ModalDemoProps & { count: number }) => {\n  const { create } = useModalManager();\n\n  return (\n    <Modal\n      heading={`Modal #${args.count}`}\n      autoWidth={args.autoWidth}\n      actions={\n        <Button\n          variant='secondary'\n          onClick={() => {\n            create(\n              MinimizableModalMockChildModal,\n              { ...args, count: args.count + 0.1, parentId: args.count },\n              {\n                id: `${args.count + 0.1}`,\n                minimizable: true,\n                onDismiss: args.onDismiss,\n                onMinimize: args.onMinimize,\n                onActivate: args.onActivate\n              }\n            );\n          }}\n        >\n          Create modal\n        </Button>\n      }\n      center={args.center}\n      stretch={args.stretch}\n      onRequestDismiss={args.onRequestDismiss}\n      onRequestMinimize={args.onRequestMinimize}\n      onRequestActivate={args.onRequestActivate}\n    >\n      <Text>This Modal can be minimized by clicking the minimize button above.</Text>\n    </Modal>\n  );\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n// DockedModal story mocks\n// ---------------------------------------------------------------------------------------------------------------------\nexport const DockedModalMockModal = (args: ModalDemoProps) => {\n  const { id } = useModalContext();\n\n  return (\n    <Modal heading={`Modal #${id}`} onRequestDock={args.onRequestDock}>\n      <Text>This Modal can be minimized by clicking the minimize button above.</Text>\n    </Modal>\n  );\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n// AutoWidthModalContent story mocks\n// ---------------------------------------------------------------------------------------------------------------------\nexport const AutoWidthModalContentMockModal = (\n  args: OmitStrict<AutoWidthModalContentProps, 'content'> & {\n    contentType: ContentType;\n    content: ReactNode;\n  }\n) => {\n  const { dismiss } = useModalContext();\n  const { push } = useToaster();\n\n  return (\n    <Modal\n      heading={`Modal ${args.autoWidth ? 'with' : 'without'} autoWidth`}\n      autoWidth={args.autoWidth}\n      actions={\n        args.contentType.includes('form') || args.contentType === 'random' ? (\n          <>\n            <Button\n              name='Cancel'\n              variant='secondary'\n              onClick={() => {\n                dismiss();\n                push({ content: 'Form cancelled!' });\n              }}\n            >\n              Cancel\n            </Button>\n            <Button\n              name='Submit'\n              variant='primary'\n              onClick={() => {\n                dismiss();\n                push({ content: 'Form submitted!' });\n              }}\n            >\n              Submit\n            </Button>\n          </>\n        ) : undefined\n      }\n    >\n      {args.content}\n    </Modal>\n  );\n};\n"]}