@digi-frontend/dgate-api-documentation 1.0.87 → 1.0.89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/_virtual/index4.js +1 -1
  2. package/dist/_virtual/index5.js +1 -1
  3. package/dist/node_modules/digitinary-ui/dist/index.js.map +1 -1
  4. package/dist/node_modules/highlight.js/lib/core.js.map +1 -1
  5. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js +1 -1
  6. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -1
  7. package/dist/node_modules/react-fast-compare/index.js +1 -1
  8. package/dist/node_modules/react-fast-compare/index.js.map +1 -1
  9. package/dist/node_modules/react-property/lib/index.js.map +1 -1
  10. package/dist/node_modules/yup/index.esm.js +1 -1
  11. package/dist/node_modules/yup/index.esm.js.map +1 -1
  12. package/dist/src/components/InfoForm/InfoForm.js.map +1 -1
  13. package/dist/src/components/JsonInput/JsonInput.js.map +1 -1
  14. package/dist/src/components/LivePreview/LivePreview.js.map +1 -1
  15. package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
  16. package/dist/src/components/SVGLoader/SVGLoader.js.map +1 -1
  17. package/dist/src/components/SectionHead/SectionHead.js.map +1 -1
  18. package/dist/src/components/SimpleLabelValue/SimpleLabelValue.js.map +1 -1
  19. package/dist/src/components/Tooltip/Tooltip.js.map +1 -1
  20. package/dist/src/components/dialog/index.js.map +1 -1
  21. package/dist/src/components/table/table.js.map +1 -1
  22. package/dist/src/components/table/tags-table.js.map +1 -1
  23. package/dist/src/context/SectionToggleContext.js.map +1 -1
  24. package/dist/src/helpers/docs.helper.js.map +1 -1
  25. package/dist/src/helpers/layout.helper.js.map +1 -1
  26. package/dist/src/layout/docsComponents/Codebox/Codebox.js.map +1 -1
  27. package/dist/src/layout/docsComponents/DocsAside/DocsAside.js.map +1 -1
  28. package/dist/src/layout/docsComponents/DocsContent/DocsContent.js.map +1 -1
  29. package/dist/src/layout/docsComponents/DocsContent/EndpointPage/index.js.map +1 -1
  30. package/dist/src/layout/docsComponents/DocsContent/OverviewPage/index.js.map +1 -1
  31. package/dist/src/layout/docsComponents/DocsContent/TagPage/index.js +2 -0
  32. package/dist/src/layout/docsComponents/DocsContent/TagPage/index.js.map +1 -0
  33. package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js.map +1 -1
  34. package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js.map +1 -1
  35. package/dist/src/layout/docsLayout.js.map +1 -1
  36. package/dist/src/layout/layout.js.map +1 -1
  37. package/dist/styles.css +839 -839
  38. package/dist/types/layout/docsComponents/DocsContent/TagPage/index.d.ts +8 -0
  39. package/package.json +1 -1
  40. package/variables.txt +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"InfoForm.js","sources":["../../../../src/components/InfoForm/InfoForm.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\n// @ts-ignore\nimport { useFormikContext } from 'formik'\nimport { Button, Input, TextArea } from 'digitinary-ui'\nimport styles from './InfoForm.module.scss'\nimport regex from '../../constants/regex'\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\nimport Tooltip from '../../components/Tooltip/Tooltip'\nimport { CloseIcon, DeleteIcon, DeleteOutlinedIcon, EditIcon } from '../../assets/icons'\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\nimport CommonDialog from '../../components/dialog'\nimport { tagsTableHeaders } from '../../constants/index'\nimport TagsTable from '../../components/table/tags-table'\n\nconst InfoForm = ({ readOnly }: { readOnly?: boolean }) => {\n const [tableData, setTableData] = useState([])\n const [tableRecords, setTableRecords] = useState()\n const [authType, setAuthType] = useState('')\n const [description, setDescription] = useState('')\n const [url, setURL] = useState('')\n const { values, setFieldValue, errors } = useFormikContext<TransformedOpenApi>()\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\n const [selectedTagIndex, setSelectedTagIndex] = useState<number | null>(null)\n const [selectedTagName, setSelectedTagName] = useState<string | null>(null)\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\n const [isFormOpen, setIsFormOpen] = useState(false)\n\n useEffect(() => {\n if (values && values.components && values.components.securitySchemes) {\n const authenticatorKeys = Object.keys(values.components.securitySchemes)\n if (authenticatorKeys.length) {\n const _authType =\n values.components.securitySchemes[authenticatorKeys[0]].scheme ||\n values.components.securitySchemes[authenticatorKeys[0]].type\n\n setAuthType(_authType && _authType.toLowerCase() == 'public' ? 'Keyless' : _authType)\n }\n }\n }, [])\n\n useEffect(() => {\n setTableRecords(generateTableRecords(tableData))\n }, [tableData])\n\n useEffect(() => {\n if (values.tags && values.tags.length) {\n setTableData(values.tags)\n }\n }, [values.tags])\n\n const confirmDeleteTag = () => {\n if (selectedTagIndex !== null) {\n setTableData((prev) => prev.filter((_, i) => i !== selectedTagIndex))\n setFieldValue(\n `tags`,\n values.tags?.filter((_, i) => i !== selectedTagIndex)\n )\n }\n setOpenDeleteDialog(false)\n setSelectedTagIndex(null)\n }\n\n const capitalize = (str) => {\n if (!str) return ''\n return str.charAt(0).toUpperCase() + str.slice(1)\n }\n\n const onTableChange = (key, value, index) => {\n const newTableData = tableData.map((item, tIndex) => {\n if (tIndex === index) {\n return { ...item, [key]: value }\n } else {\n return item\n }\n })\n\n setTableData(newTableData)\n }\n\n const saveNewRow = (tag) => {\n setTableData([...tableData, tag])\n const oldTags = values.tags || []\n setFieldValue(`tags`, [...oldTags, tag])\n }\n\n const handleDeleteClick = (id: number, name: string) => {\n setSelectedTagIndex(id)\n setSelectedTagName(name)\n\n setOpenDeleteDialog(true)\n }\n\n const generateTableRecords = (items) => {\n return items.map((item, index) => ({\n id: index,\n tagName: item.name,\n description: (\n <div className={styles.paramDescContainer}>\n <Tooltip\n key={`${index}-description`}\n allowHTML\n disabled={values.tags[index].description?.length <= 12}\n content={<div style={{ padding: '0.625rem' }}>{values.tags[index].description}</div>}\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n delay={[0, 0]}\n onShow={() => tooltipRefs[index]?.hide()}\n >\n <p style={{ alignSelf: 'center', fontWeight: 600, fontSize: '1rem' }}>\n {values.tags[index].description\n ? values.tags[index].description.substring(0, 12)\n : readOnly && '-'}\n {values.tags[index].description && values.tags[index].description.length > 12\n ? '...'\n : ''}\n </p>\n </Tooltip>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n placeholder=\"Describe tag...\"\n value={item.description}\n disabled={readOnly}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value))\n onTableChange('description', value, index)\n }}\n maxLength={25}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(`tags[${index}].description`, item.description?.trim())\n tooltipRefs[index]?.hide()\n }}\n disabled={!item.description?.trim()}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly || values.tags[index].description ? (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n ></Button>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly || values.tags[index].description\n ? 'View Description'\n : 'Add Description'}\n </Button>\n )}\n </Tooltip>\n </div>\n ),\n externalDocs: (\n <div className={styles.paramDescContainer}>\n {values.tags[index].externalDocs?.description && values.tags[index].externalDocs?.url && (\n <a\n className={styles.externalDocsLink}\n href={\n values.tags[index]?.externalDocs?.url &&\n values.tags[index]?.externalDocs?.url?.indexOf('http') > -1\n ? values.tags[index]?.externalDocs?.url\n : `https://${values.tags[index]?.externalDocs?.url}`\n }\n target=\"_blank\"\n style={\n !values.tags[index].externalDocs?.description\n ? { textDecoration: 'none', pointerEvents: 'none' }\n : {}\n }\n >\n {values.tags[index].externalDocs?.description\n ? values.tags[index].externalDocs?.description?.substring(0, 12)\n : readOnly && '-'}\n {values.tags[index].externalDocs?.description &&\n values.tags[index].externalDocs?.description?.length > 12\n ? '...'\n : ''}\n </a>\n )}\n\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setExternalTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>External Docs Description</p>\n <TextArea\n placeholder=\"Describe External Doc...\"\n value={item.externalDocs?.description}\n disabled={readOnly}\n maxLength={25}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) {\n onTableChange(\n 'externalDocs',\n { ...item.externalDocs, description: value },\n index\n )\n setDescription(value)\n }\n }}\n />\n <p className={styles.editDescTooltipContent_header}>External Docs Link</p>\n <TextArea\n placeholder=\"External Docs Link...\"\n value={item.externalDocs?.url}\n disabled={readOnly}\n maxLength={200}\n restrictedCharsRegex={regex.urlRegex}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) {\n onTableChange('externalDocs', { ...item.externalDocs, url: value }, index)\n setURL(value)\n }\n }}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(`tags[${index}].externalDocs`, {\n description: description?.trim(),\n url: url?.trim(),\n })\n setDescription('')\n setURL('')\n externalTooltipRefs[index]?.hide()\n }}\n disabled={\n !(\n (values.tags[index].externalDocs?.url && !url?.trim()) ||\n (url?.trim() && regex.urlRegex.test(url))\n )\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly || values.tags[index].externalDocs?.description ? (\n <div className={styles.editExternalDocs}>\n <SVGLoader\n src={EditIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n onClick={(e) => {\n e?.stopPropagation()\n setDescription(item.externalDocs?.description)\n setURL(item.externalDocs?.url)\n }}\n />\n </div>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n onClick={() => {\n setDescription(item.externalDocs?.description)\n setURL(item.externalDocs?.url)\n }}\n >\n {readOnly ||\n (values.tags[index]?.externalDocs &&\n (values.tags[index]?.externalDocs?.url ||\n values.tags[index].externalDocs?.description))\n ? 'View '\n : 'Add '}{' '}\n External Docs Link\n </Button>\n )}\n </Tooltip>\n\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\n\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\n onClick={() => handleDeleteClick(index, item.name)}\n ></Button>\n )}\n </div>\n ),\n }))\n }\n\n return (\n <form className={styles.apiInfoForm} onSubmit={(e) => e.preventDefault()}>\n <div className={styles.apiDocRow}>\n <Input\n size=\"large\"\n placeholder=\"e.g. Payments\"\n label=\"API Name\"\n required\n value={values?.info?.title}\n maxLength={35}\n onChange={(value) => {\n setFieldValue('info.title', value)\n }}\n onClear={() => {\n setFieldValue('info.title', '')\n }}\n errorMsg={errors?.info?.title}\n restrictedCharactersRegex={regex.basic}\n />\n <Input size=\"large\" label=\"Version\" required value={values?.info?.version} disabled />\n </div>\n <TextArea\n size=\"large\"\n placeholder=\"Enter a description of the API's functionality...\"\n label=\"Description\"\n value={values?.info?.description}\n maxLength={120}\n required\n onChange={(value: string) => {\n if (value === '' || regex.ASCII.test(value)) {\n setFieldValue('info.description', value)\n }\n }}\n onClear={() => {\n setFieldValue('info.description', '')\n }}\n errorMsg={errors?.info?.description}\n />\n <div className={styles.paramsTable}>\n <TagsTable\n id=\"paramter-table\"\n data={tableRecords}\n headCells={tagsTableHeaders}\n isFormOpen={isFormOpen}\n setIsFormOpen={setIsFormOpen}\n saveNewRow={saveNewRow}\n readOnly={readOnly}\n />\n </div>\n <CommonDialog\n status=\"error\"\n content={\n <p\n style={{\n textAlign: 'center',\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: '1.4375rem',\n }}\n className=\"delete-msg-container\"\n >\n Are you sure you want to delete\n <span className=\"plan-name\">\n {' '}\n Tag <strong>{selectedTagName}</strong>\n </span>\n ?\n </p>\n }\n onSubmit={{\n onClick: confirmDeleteTag,\n text: 'Delete',\n color: 'error',\n fullWidth: true,\n }}\n onCancel={{\n text: 'Cancel',\n color: 'action',\n fullWidth: true,\n variant: 'outlined',\n }}\n onClose={() => setOpenDeleteDialog(false)}\n open={openDeleteDialog}\n icon={<SVGLoader src={DeleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\n closeIcon={\n <SVGLoader\n src={CloseIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n onClick={() => setOpenDeleteDialog(false)}\n />\n }\n />\n </form>\n )\n}\n\nexport default InfoForm\n"],"names":["InfoForm","readOnly","tableData","setTableData","useState","tableRecords","setTableRecords","authType","setAuthType","description","setDescription","url","setURL","values","setFieldValue","errors","useFormikContext","externalTooltipRefs","setExternalTooltipRefs","tooltipRefs","setTooltipRefs","selectedTagIndex","setSelectedTagIndex","selectedTagName","setSelectedTagName","openDeleteDialog","setOpenDeleteDialog","isFormOpen","setIsFormOpen","useEffect","components","securitySchemes","authenticatorKeys","Object","keys","length","_authType","scheme","type","toLowerCase","generateTableRecords","tags","onTableChange","key","value","index","newTableData","map","item","tIndex","assign","items","id","tagName","name","_jsxs","className","styles","paramDescContainer","children","_jsx","Tooltip","allowHTML","disabled","_a","content","style","padding","arrowWithBorder","placement","delay","onShow","hide","jsxs","alignSelf","fontWeight","fontSize","substring","trigger","onCreate","instance","prev","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","onChange","regex","ASCII","test","maxLength","jsx","Button","editDescTooltipContent_btn","variant","size","onClick","trim","_b","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","externalDocs","_c","_d","externalDocsLink","href","_f","_e","_j","_g","_h","indexOf","_l","_k","_o","_m","target","_p","textDecoration","pointerEvents","_s","_r","_t","_v","_u","_w","_x","restrictedCharsRegex","urlRegex","_y","_z","editExternalDocs","e","stopPropagation","_0","_2","_1","_3","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteClick","apiInfoForm","onSubmit","preventDefault","apiDocRow","Input","label","required","info","title","onClear","errorMsg","restrictedCharactersRegex","basic","version","paramsTable","TagsTable","data","headCells","tagsTableHeaders","saveNewRow","tag","oldTags","CommonDialog","status","textAlign","lineHeight","filter","_","i","text","fullWidth","onCancel","onClose","open","icon","DeleteOutlinedIcon","closeIcon","CloseIcon"],"mappings":"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"}
1
+ {"version":3,"file":"InfoForm.js","sources":["../../../../src/components/InfoForm/InfoForm.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\n// @ts-ignore\nimport { useFormikContext } from 'formik'\nimport { Button, Input, TextArea } from 'digitinary-ui'\nimport styles from './InfoForm.module.scss'\nimport regex from '../../constants/regex'\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\nimport Tooltip from '../../components/Tooltip/Tooltip'\nimport { CloseIcon, DeleteIcon, DeleteOutlinedIcon, EditIcon } from '../../assets/icons'\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\nimport CommonDialog from '../../components/dialog'\nimport { tagsTableHeaders } from '../../constants/index'\nimport TagsTable from '../../components/table/tags-table'\n\nconst InfoForm = ({ readOnly }: { readOnly?: boolean }) => {\n const [tableData, setTableData] = useState([])\n const [tableRecords, setTableRecords] = useState()\n const [authType, setAuthType] = useState('')\n const [description, setDescription] = useState('')\n const [url, setURL] = useState('')\n const { values, setFieldValue, errors } = useFormikContext<TransformedOpenApi>()\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\n const [selectedTagIndex, setSelectedTagIndex] = useState<number | null>(null)\n const [selectedTagName, setSelectedTagName] = useState<string | null>(null)\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\n const [isFormOpen, setIsFormOpen] = useState(false)\n\n useEffect(() => {\n if (values && values.components && values.components.securitySchemes) {\n const authenticatorKeys = Object.keys(values.components.securitySchemes)\n if (authenticatorKeys.length) {\n const _authType =\n values.components.securitySchemes[authenticatorKeys[0]].scheme ||\n values.components.securitySchemes[authenticatorKeys[0]].type\n\n setAuthType(_authType && _authType.toLowerCase() == 'public' ? 'Keyless' : _authType)\n }\n }\n }, [])\n\n useEffect(() => {\n setTableRecords(generateTableRecords(tableData))\n }, [tableData])\n\n useEffect(() => {\n if (values.tags && values.tags.length) {\n setTableData(values.tags)\n }\n }, [values.tags])\n\n const confirmDeleteTag = () => {\n if (selectedTagIndex !== null) {\n setTableData((prev) => prev.filter((_, i) => i !== selectedTagIndex))\n setFieldValue(\n `tags`,\n values.tags?.filter((_, i) => i !== selectedTagIndex)\n )\n }\n setOpenDeleteDialog(false)\n setSelectedTagIndex(null)\n }\n\n const capitalize = (str) => {\n if (!str) return ''\n return str.charAt(0).toUpperCase() + str.slice(1)\n }\n\n const onTableChange = (key, value, index) => {\n const newTableData = tableData.map((item, tIndex) => {\n if (tIndex === index) {\n return { ...item, [key]: value }\n } else {\n return item\n }\n })\n\n setTableData(newTableData)\n }\n\n const saveNewRow = (tag) => {\n setTableData([...tableData, tag])\n const oldTags = values.tags || []\n setFieldValue(`tags`, [...oldTags, tag])\n }\n\n const handleDeleteClick = (id: number, name: string) => {\n setSelectedTagIndex(id)\n setSelectedTagName(name)\n\n setOpenDeleteDialog(true)\n }\n\n const generateTableRecords = (items) => {\n return items.map((item, index) => ({\n id: index,\n tagName: item.name,\n description: (\n <div className={styles.paramDescContainer}>\n <Tooltip\n key={`${index}-description`}\n allowHTML\n disabled={values.tags[index].description?.length <= 12}\n content={<div style={{ padding: '0.625rem' }}>{values.tags[index].description}</div>}\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n delay={[0, 0]}\n onShow={() => tooltipRefs[index]?.hide()}\n >\n <p style={{ alignSelf: 'center', fontWeight: 600, fontSize: '1rem' }}>\n {values.tags[index].description\n ? values.tags[index].description.substring(0, 12)\n : readOnly && '-'}\n {values.tags[index].description && values.tags[index].description.length > 12\n ? '...'\n : ''}\n </p>\n </Tooltip>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n placeholder=\"Describe tag...\"\n value={item.description}\n disabled={readOnly}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value))\n onTableChange('description', value, index)\n }}\n maxLength={25}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(`tags[${index}].description`, item.description?.trim())\n tooltipRefs[index]?.hide()\n }}\n disabled={!item.description?.trim()}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly || values.tags[index].description ? (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n ></Button>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly || values.tags[index].description\n ? 'View Description'\n : 'Add Description'}\n </Button>\n )}\n </Tooltip>\n </div>\n ),\n externalDocs: (\n <div className={styles.paramDescContainer}>\n {values.tags[index].externalDocs?.description && values.tags[index].externalDocs?.url && (\n <a\n className={styles.externalDocsLink}\n href={\n values.tags[index]?.externalDocs?.url &&\n values.tags[index]?.externalDocs?.url?.indexOf('http') > -1\n ? values.tags[index]?.externalDocs?.url\n : `https://${values.tags[index]?.externalDocs?.url}`\n }\n target=\"_blank\"\n style={\n !values.tags[index].externalDocs?.description\n ? { textDecoration: 'none', pointerEvents: 'none' }\n : {}\n }\n >\n {values.tags[index].externalDocs?.description\n ? values.tags[index].externalDocs?.description?.substring(0, 12)\n : readOnly && '-'}\n {values.tags[index].externalDocs?.description &&\n values.tags[index].externalDocs?.description?.length > 12\n ? '...'\n : ''}\n </a>\n )}\n\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setExternalTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>External Docs Description</p>\n <TextArea\n placeholder=\"Describe External Doc...\"\n value={item.externalDocs?.description}\n disabled={readOnly}\n maxLength={25}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) {\n onTableChange(\n 'externalDocs',\n { ...item.externalDocs, description: value },\n index\n )\n setDescription(value)\n }\n }}\n />\n <p className={styles.editDescTooltipContent_header}>External Docs Link</p>\n <TextArea\n placeholder=\"External Docs Link...\"\n value={item.externalDocs?.url}\n disabled={readOnly}\n maxLength={200}\n restrictedCharsRegex={regex.urlRegex}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) {\n onTableChange('externalDocs', { ...item.externalDocs, url: value }, index)\n setURL(value)\n }\n }}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(`tags[${index}].externalDocs`, {\n description: description?.trim(),\n url: url?.trim(),\n })\n setDescription('')\n setURL('')\n externalTooltipRefs[index]?.hide()\n }}\n disabled={\n !(\n (values.tags[index].externalDocs?.url && !url?.trim()) ||\n (url?.trim() && regex.urlRegex.test(url))\n )\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly || values.tags[index].externalDocs?.description ? (\n <div className={styles.editExternalDocs}>\n <SVGLoader\n src={EditIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n onClick={(e) => {\n e?.stopPropagation()\n setDescription(item.externalDocs?.description)\n setURL(item.externalDocs?.url)\n }}\n />\n </div>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n onClick={() => {\n setDescription(item.externalDocs?.description)\n setURL(item.externalDocs?.url)\n }}\n >\n {readOnly ||\n (values.tags[index]?.externalDocs &&\n (values.tags[index]?.externalDocs?.url ||\n values.tags[index].externalDocs?.description))\n ? 'View '\n : 'Add '}{' '}\n External Docs Link\n </Button>\n )}\n </Tooltip>\n\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\n\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\n onClick={() => handleDeleteClick(index, item.name)}\n ></Button>\n )}\n </div>\n ),\n }))\n }\n\n return (\n <form className={styles.apiInfoForm} onSubmit={(e) => e.preventDefault()}>\n <div className={styles.apiDocRow}>\n <Input\n size=\"large\"\n placeholder=\"e.g. Payments\"\n label=\"API Name\"\n required\n value={values?.info?.title}\n maxLength={35}\n onChange={(value) => {\n setFieldValue('info.title', value)\n }}\n onClear={() => {\n setFieldValue('info.title', '')\n }}\n errorMsg={errors?.info?.title}\n restrictedCharactersRegex={regex.basic}\n />\n <Input size=\"large\" label=\"Version\" required value={values?.info?.version} disabled />\n </div>\n <TextArea\n size=\"large\"\n placeholder=\"Enter a description of the API's functionality...\"\n label=\"Description\"\n value={values?.info?.description}\n maxLength={120}\n required\n onChange={(value: string) => {\n if (value === '' || regex.ASCII.test(value)) {\n setFieldValue('info.description', value)\n }\n }}\n onClear={() => {\n setFieldValue('info.description', '')\n }}\n errorMsg={errors?.info?.description}\n />\n <div className={styles.paramsTable}>\n <TagsTable\n id=\"paramter-table\"\n data={tableRecords}\n headCells={tagsTableHeaders}\n isFormOpen={isFormOpen}\n setIsFormOpen={setIsFormOpen}\n saveNewRow={saveNewRow}\n readOnly={readOnly}\n />\n </div>\n <CommonDialog\n status=\"error\"\n content={\n <p\n style={{\n textAlign: 'center',\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: '1.4375rem',\n }}\n className=\"delete-msg-container\"\n >\n Are you sure you want to delete\n <span className=\"plan-name\">\n {' '}\n Tag <strong>{selectedTagName}</strong>\n </span>\n ?\n </p>\n }\n onSubmit={{\n onClick: confirmDeleteTag,\n text: 'Delete',\n color: 'error',\n fullWidth: true,\n }}\n onCancel={{\n text: 'Cancel',\n color: 'action',\n fullWidth: true,\n variant: 'outlined',\n }}\n onClose={() => setOpenDeleteDialog(false)}\n open={openDeleteDialog}\n icon={<SVGLoader src={DeleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\n closeIcon={\n <SVGLoader\n src={CloseIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n onClick={() => setOpenDeleteDialog(false)}\n />\n }\n />\n </form>\n )\n}\n\nexport default InfoForm\n"],"names":["InfoForm","readOnly","tableData","setTableData","useState","tableRecords","setTableRecords","authType","setAuthType","description","setDescription","url","setURL","values","setFieldValue","errors","useFormikContext","externalTooltipRefs","setExternalTooltipRefs","tooltipRefs","setTooltipRefs","selectedTagIndex","setSelectedTagIndex","selectedTagName","setSelectedTagName","openDeleteDialog","setOpenDeleteDialog","isFormOpen","setIsFormOpen","useEffect","components","securitySchemes","authenticatorKeys","Object","keys","length","_authType","scheme","type","toLowerCase","generateTableRecords","tags","onTableChange","key","value","index","newTableData","map","item","tIndex","assign","items","id","tagName","name","_jsxs","className","styles","paramDescContainer","children","_jsx","Tooltip","allowHTML","disabled","_a","content","style","padding","arrowWithBorder","placement","delay","onShow","hide","jsxs","alignSelf","fontWeight","fontSize","substring","trigger","onCreate","instance","prev","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","onChange","regex","ASCII","test","maxLength","jsx","Button","editDescTooltipContent_btn","variant","size","onClick","trim","_b","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","externalDocs","_c","_d","externalDocsLink","href","_f","_e","_j","_g","_h","indexOf","_l","_k","_o","_m","target","_p","textDecoration","pointerEvents","_s","_r","_t","_v","_u","_w","_x","restrictedCharsRegex","urlRegex","_y","_z","editExternalDocs","e","stopPropagation","_0","_2","_1","_3","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteClick","apiInfoForm","onSubmit","preventDefault","apiDocRow","Input","label","required","info","title","onClear","errorMsg","restrictedCharactersRegex","basic","version","paramsTable","TagsTable","data","headCells","tagsTableHeaders","saveNewRow","tag","oldTags","CommonDialog","status","textAlign","lineHeight","filter","_","i","text","fullWidth","onCancel","onClose","open","icon","DeleteOutlinedIcon","closeIcon","CloseIcon"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"JsonInput.js","sources":["../../../../src/components/JsonInput/JsonInput.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport yaml from 'js-yaml'\nimport styles from './style.module.scss'\nimport regex from '../../constants/regex'\n\nconst errorMapping = {\n BOTH: 'Invalid JSON or YAML format',\n JSON: 'Invalid JSON format',\n YML: 'Invalid YAML format',\n}\n\nconst JsonInput = ({\n placeholder,\n label,\n value,\n onValidation,\n onChange,\n dataId,\n className = '',\n errorMessage,\n acceptType = 'BOTH',\n fieldIsDisabled,\n withFooter = true,\n}) => {\n const [isValid, setIsValid] = useState()\n const [disabledBeautify, setDisabledBeautify] = useState(true)\n\n const handlePrettify = (e) => {\n if (value === '') return\n e.preventDefault()\n try {\n let prettifiedData\n if ((acceptType === 'BOTH' || acceptType === 'JSON') && isValidJson(value)) {\n // If it's valid JSON, prettify JSON\n prettifiedData = JSON.stringify(JSON.parse(value), null, 2)\n } else if (acceptType === 'BOTH' || acceptType === 'YML') {\n // If it's not valid JSON, prettify YAML\n prettifiedData = yaml.dump(yaml.load(value), { indent: 0 })\n }\n onChange(prettifiedData)\n setIsValid(true) // Reset validity status\n } catch (error) {\n console.error(error)\n setIsValid(false)\n }\n }\n\n // Function to check if input is valid JSON\n const isValidJson = (str) => {\n try {\n JSON.parse(str)\n return true\n } catch (error) {\n return false\n }\n }\n\n const checkIsValid = () => {\n if (acceptType === 'BOTH' || acceptType === 'JSON') {\n return isValidJson(value)\n } else if (acceptType === 'BOTH' || acceptType === 'YML') {\n try {\n // Try parsing as YAML\n yaml.load(value)\n return true\n } catch (error) {\n console.error(error)\n return false\n }\n }\n }\n\n useEffect(() => {\n try {\n handlePrettify(value)\n } catch {}\n }, [])\n\n return (\n <div\n className={`${styles['json-editor-container']} ${className} ${\n fieldIsDisabled ? styles.disabled : ''\n }`}\n >\n {label && <p className={`${styles['json-editor-label']}`}>{label}</p>}\n <div\n className={`${styles['json-editor']} ${\n value !== '' && isValid === false ? styles.invalid : ''\n }`}\n >\n <textarea\n disabled={fieldIsDisabled}\n data-id={dataId}\n value={value}\n onChange={(e) => {\n if (fieldIsDisabled) return\n if (regex.ASCII.test(e.target.value)) {\n setIsValid(undefined)\n setDisabledBeautify(true)\n onChange(e.target.value)\n }\n }}\n onPaste={(e) => {\n if (fieldIsDisabled) return\n if (regex.ASCII.test(e.target.value)) {\n setIsValid(undefined)\n setDisabledBeautify(true)\n onChange(e.target.value)\n }\n }}\n min=\"1\"\n placeholder={placeholder}\n />\n {withFooter && (\n <div className={`${styles['actions-container']}`}>\n <button\n type=\"button\"\n className={styles.validate}\n onClick={() => {\n const valid = checkIsValid()\n setIsValid(valid)\n onValidation(valid)\n setDisabledBeautify(!checkIsValid())\n }}\n data-id={`${dataId}-VALIDATE-BUTTON`}\n disabled={value === ''}\n >\n Validate\n </button>\n <button\n type=\"button\"\n disabled={value === '' || disabledBeautify}\n data-id={`${dataId}-BEAUTIFY-BUTTON`}\n className={styles.beautify}\n onClick={handlePrettify}\n >\n Beautify\n </button>\n </div>\n )}\n </div>\n {(errorMessage || (value !== '' && isValid === false)) && (\n <p className={styles['error-message']}>{errorMessage || errorMapping[acceptType]}</p>\n )}\n </div>\n )\n}\n\nexport default JsonInput\n"],"names":["errorMapping","BOTH","JSON","YML","JsonInput","placeholder","label","value","onValidation","onChange","dataId","className","errorMessage","acceptType","fieldIsDisabled","withFooter","isValid","setIsValid","useState","disabledBeautify","setDisabledBeautify","handlePrettify","e","preventDefault","prettifiedData","isValidJson","yaml","dump","load","indent","stringify","parse","error","console","str","checkIsValid","useEffect","_a","_jsxs","jsxs","styles","disabled","children","_jsx","jsx","invalid","regex","ASCII","test","target","undefined","onPaste","min","type","validate","onClick","valid","beautify"],"mappings":"oPAKA,MAAMA,EAAe,CACnBC,KAAM,8BACNC,KAAM,sBACNC,IAAK,uBAGDC,EAAY,EAChBC,cACAC,QACAC,QACAC,eACAC,WACAC,SACAC,YAAY,GACZC,eACAC,aAAa,OACbC,kBACAC,cAAa,MAEb,MAAOC,EAASC,GAAcC,KACvBC,EAAkBC,GAAuBF,GAAS,GAEnDG,EAAkBC,IACtB,GAAc,KAAVf,EAAJ,CACAe,EAAEC,iBACF,IACE,IAAIC,EACgB,SAAfX,GAAwC,SAAfA,IAA0BY,EAAYlB,GAG1C,SAAfM,GAAwC,QAAfA,IAElCW,EAAiBE,EAAKC,KAAKD,EAAKE,KAAKrB,GAAQ,CAAEsB,OAAQ,KAHvDL,EAAiBtB,KAAK4B,UAAU5B,KAAK6B,MAAMxB,GAAQ,KAAM,GAK3DE,EAASe,GACTP,GAAW,EACZ,CAAC,MAAOe,GACPC,QAAQD,MAAMA,GACdf,GAAW,EACZ,CAhBuB,GAoBpBQ,EAAeS,IACnB,IAEE,OADAhC,KAAK6B,MAAMG,IACJ,CACR,CAAC,MAAOF,GACP,OAAO,CACR,GAGGG,EAAe,KACnB,GAAmB,SAAftB,GAAwC,SAAfA,EAC3B,OAAOY,EAAYlB,GACd,GAAmB,SAAfM,GAAwC,QAAfA,EAClC,IAGE,OADAa,EAAKE,KAAKrB,IACH,CACR,CAAC,MAAOyB,GAEP,OADAC,QAAQD,MAAMA,IACP,CACR,GAUL,OANAI,GAAU,KACR,IACEf,EAAed,EAChB,CAAC,MAAM8B,GAAE,IACT,IAGDC,EACEC,KAAA,MAAA,CAAA5B,UAAW,GAAG6B,EAAO,4BAA4B7B,KAC/CG,EAAkB0B,EAAOC,SAAW,KACpCC,SAAA,CAEDpC,GAASqC,EAAAC,IAAA,IAAA,CAAGjC,UAAW,GAAG6B,EAAO,gCAAyBlC,IAC3DgC,EACEC,KAAA,MAAA,CAAA5B,UAAW,GAAG6B,EAAO,kBACT,KAAVjC,IAA4B,IAAZS,EAAoBwB,EAAOK,QAAU,KAGvDH,SAAA,CAAAC,EAAAC,IAAA,WAAA,CACEH,SAAU3B,YACDJ,EACTH,MAAOA,EACPE,SAAWa,IACLR,GACAgC,EAAMC,MAAMC,KAAK1B,EAAE2B,OAAO1C,SAC5BU,OAAWiC,GACX9B,GAAoB,GACpBX,EAASa,EAAE2B,OAAO1C,SAGtB4C,QAAU7B,IACJR,GACAgC,EAAMC,MAAMC,KAAK1B,EAAE2B,OAAO1C,SAC5BU,OAAWiC,GACX9B,GAAoB,GACpBX,EAASa,EAAE2B,OAAO1C,SAGtB6C,IAAI,IACJ/C,YAAaA,IAEdU,GACCuB,EAAAA,KAAK,MAAA,CAAA3B,UAAW,GAAG6B,EAAO,uBAAsBE,SAAA,CAC9CC,EAAAA,IACE,SAAA,CAAAU,KAAK,SACL1C,UAAW6B,EAAOc,SAClBC,QAAS,KACP,MAAMC,EAAQrB,IACdlB,EAAWuC,GACXhD,EAAagD,GACbpC,GAAqBe,gBAEd,GAAGzB,oBACZ+B,SAAoB,KAAVlC,wBAIZoC,EAAAC,IAAA,SAAA,CACES,KAAK,SACLZ,SAAoB,KAAVlC,GAAgBY,EAAgB,UACjC,GAAGT,oBACZC,UAAW6B,EAAOiB,SAClBF,QAASlC,EAGFqB,SAAA,oBAIb9B,GAA2B,KAAVL,IAA4B,IAAZS,IACjC2B,EAAGC,IAAA,IAAA,CAAAjC,UAAW6B,EAAO,0BAAmB5B,GAAgBZ,EAAaa"}
1
+ {"version":3,"file":"JsonInput.js","sources":["../../../../src/components/JsonInput/JsonInput.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport yaml from 'js-yaml'\nimport styles from './style.module.scss'\nimport regex from '../../constants/regex'\n\nconst errorMapping = {\n BOTH: 'Invalid JSON or YAML format',\n JSON: 'Invalid JSON format',\n YML: 'Invalid YAML format',\n}\n\nconst JsonInput = ({\n placeholder,\n label,\n value,\n onValidation,\n onChange,\n dataId,\n className = '',\n errorMessage,\n acceptType = 'BOTH',\n fieldIsDisabled,\n withFooter = true,\n}) => {\n const [isValid, setIsValid] = useState()\n const [disabledBeautify, setDisabledBeautify] = useState(true)\n\n const handlePrettify = (e) => {\n if (value === '') return\n e.preventDefault()\n try {\n let prettifiedData\n if ((acceptType === 'BOTH' || acceptType === 'JSON') && isValidJson(value)) {\n // If it's valid JSON, prettify JSON\n prettifiedData = JSON.stringify(JSON.parse(value), null, 2)\n } else if (acceptType === 'BOTH' || acceptType === 'YML') {\n // If it's not valid JSON, prettify YAML\n prettifiedData = yaml.dump(yaml.load(value), { indent: 0 })\n }\n onChange(prettifiedData)\n setIsValid(true) // Reset validity status\n } catch (error) {\n console.error(error)\n setIsValid(false)\n }\n }\n\n // Function to check if input is valid JSON\n const isValidJson = (str) => {\n try {\n JSON.parse(str)\n return true\n } catch (error) {\n return false\n }\n }\n\n const checkIsValid = () => {\n if (acceptType === 'BOTH' || acceptType === 'JSON') {\n return isValidJson(value)\n } else if (acceptType === 'BOTH' || acceptType === 'YML') {\n try {\n // Try parsing as YAML\n yaml.load(value)\n return true\n } catch (error) {\n console.error(error)\n return false\n }\n }\n }\n\n useEffect(() => {\n try {\n handlePrettify(value)\n } catch {}\n }, [])\n\n return (\n <div\n className={`${styles['json-editor-container']} ${className} ${\n fieldIsDisabled ? styles.disabled : ''\n }`}\n >\n {label && <p className={`${styles['json-editor-label']}`}>{label}</p>}\n <div\n className={`${styles['json-editor']} ${\n value !== '' && isValid === false ? styles.invalid : ''\n }`}\n >\n <textarea\n disabled={fieldIsDisabled}\n data-id={dataId}\n value={value}\n onChange={(e) => {\n if (fieldIsDisabled) return\n if (regex.ASCII.test(e.target.value)) {\n setIsValid(undefined)\n setDisabledBeautify(true)\n onChange(e.target.value)\n }\n }}\n onPaste={(e) => {\n if (fieldIsDisabled) return\n if (regex.ASCII.test(e.target.value)) {\n setIsValid(undefined)\n setDisabledBeautify(true)\n onChange(e.target.value)\n }\n }}\n min=\"1\"\n placeholder={placeholder}\n />\n {withFooter && (\n <div className={`${styles['actions-container']}`}>\n <button\n type=\"button\"\n className={styles.validate}\n onClick={() => {\n const valid = checkIsValid()\n setIsValid(valid)\n onValidation(valid)\n setDisabledBeautify(!checkIsValid())\n }}\n data-id={`${dataId}-VALIDATE-BUTTON`}\n disabled={value === ''}\n >\n Validate\n </button>\n <button\n type=\"button\"\n disabled={value === '' || disabledBeautify}\n data-id={`${dataId}-BEAUTIFY-BUTTON`}\n className={styles.beautify}\n onClick={handlePrettify}\n >\n Beautify\n </button>\n </div>\n )}\n </div>\n {(errorMessage || (value !== '' && isValid === false)) && (\n <p className={styles['error-message']}>{errorMessage || errorMapping[acceptType]}</p>\n )}\n </div>\n )\n}\n\nexport default JsonInput\n"],"names":["errorMapping","BOTH","JSON","YML","JsonInput","placeholder","label","value","onValidation","onChange","dataId","className","errorMessage","acceptType","fieldIsDisabled","withFooter","isValid","setIsValid","useState","disabledBeautify","setDisabledBeautify","handlePrettify","e","preventDefault","prettifiedData","isValidJson","yaml","dump","load","indent","stringify","parse","error","console","str","checkIsValid","useEffect","_a","_jsxs","jsxs","styles","disabled","children","_jsx","jsx","invalid","regex","ASCII","test","target","undefined","onPaste","min","type","validate","onClick","valid","beautify"],"mappings":"oPAKA,MAAMA,EAAe,CACnBC,KAAM,8BACNC,KAAM,sBACNC,IAAK,uBAGDC,EAAY,EAChBC,cACAC,QACAC,QACAC,eACAC,WACAC,SACAC,YAAY,GACZC,eACAC,aAAa,OACbC,kBACAC,cAAa,MAEb,MAAOC,EAASC,GAAcC,KACvBC,EAAkBC,GAAuBF,GAAS,GAEnDG,EAAkBC,IACtB,GAAc,KAAVf,EAAJ,CACAe,EAAEC,iBACF,IACE,IAAIC,EACgB,SAAfX,GAAwC,SAAfA,IAA0BY,EAAYlB,GAG1C,SAAfM,GAAwC,QAAfA,IAElCW,EAAiBE,EAAKC,KAAKD,EAAKE,KAAKrB,GAAQ,CAAEsB,OAAQ,KAHvDL,EAAiBtB,KAAK4B,UAAU5B,KAAK6B,MAAMxB,GAAQ,KAAM,GAK3DE,EAASe,GACTP,GAAW,EACZ,CAAC,MAAOe,GACPC,QAAQD,MAAMA,GACdf,GAAW,EACZ,CAhBuB,CAgBvB,EAIGQ,EAAeS,IACnB,IAEE,OADAhC,KAAK6B,MAAMG,IACJ,CACR,CAAC,MAAOF,GACP,OAAO,CACR,GAGGG,EAAe,KACnB,GAAmB,SAAftB,GAAwC,SAAfA,EAC3B,OAAOY,EAAYlB,GACd,GAAmB,SAAfM,GAAwC,QAAfA,EAClC,IAGE,OADAa,EAAKE,KAAKrB,IACH,CACR,CAAC,MAAOyB,GAEP,OADAC,QAAQD,MAAMA,IACP,CACR,CACF,EASH,OANAI,GAAU,KACR,IACEf,EAAed,EAChB,CAAC,MAAM8B,GAAE,IACT,IAGDC,EACEC,KAAA,MAAA,CAAA5B,UAAW,GAAG6B,EAAO,4BAA4B7B,KAC/CG,EAAkB0B,EAAOC,SAAW,KACpCC,SAAA,CAEDpC,GAASqC,EAAAC,IAAA,IAAA,CAAGjC,UAAW,GAAG6B,EAAO,gCAAyBlC,IAC3DgC,EACEC,KAAA,MAAA,CAAA5B,UAAW,GAAG6B,EAAO,kBACT,KAAVjC,IAA4B,IAAZS,EAAoBwB,EAAOK,QAAU,KAGvDH,SAAA,CAAAC,EAAAC,IAAA,WAAA,CACEH,SAAU3B,YACDJ,EACTH,MAAOA,EACPE,SAAWa,IACLR,GACAgC,EAAMC,MAAMC,KAAK1B,EAAE2B,OAAO1C,SAC5BU,OAAWiC,GACX9B,GAAoB,GACpBX,EAASa,EAAE2B,OAAO1C,OACnB,EAEH4C,QAAU7B,IACJR,GACAgC,EAAMC,MAAMC,KAAK1B,EAAE2B,OAAO1C,SAC5BU,OAAWiC,GACX9B,GAAoB,GACpBX,EAASa,EAAE2B,OAAO1C,OACnB,EAEH6C,IAAI,IACJ/C,YAAaA,IAEdU,GACCuB,EAAAA,KAAK,MAAA,CAAA3B,UAAW,GAAG6B,EAAO,uBAAsBE,SAAA,CAC9CC,EAAAA,IACE,SAAA,CAAAU,KAAK,SACL1C,UAAW6B,EAAOc,SAClBC,QAAS,KACP,MAAMC,EAAQrB,IACdlB,EAAWuC,GACXhD,EAAagD,GACbpC,GAAqBe,IAAe,YAE7B,GAAGzB,oBACZ+B,SAAoB,KAAVlC,wBAIZoC,EAAAC,IAAA,SAAA,CACES,KAAK,SACLZ,SAAoB,KAAVlC,GAAgBY,EAAgB,UACjC,GAAGT,oBACZC,UAAW6B,EAAOiB,SAClBF,QAASlC,EAGFqB,SAAA,oBAIb9B,GAA2B,KAAVL,IAA4B,IAAZS,IACjC2B,EAAGC,IAAA,IAAA,CAAAjC,UAAW6B,EAAO,0BAAmB5B,GAAgBZ,EAAaa,OAG1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"LivePreview.js","sources":["../../../../src/components/LivePreview/LivePreview.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport styles from './LivePreview.module.scss'\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\nimport MethodsAccordion from '../../components/MethodAccordion/MethodAccordion'\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\nimport { useFormikContext } from 'formik'\nimport { methodColorMapping, tagsTableHeaders } from '../../constants/index'\nimport TagsTable from '../table/tags-table'\nimport { Accordion, Button, Chip } from 'digitinary-ui'\nimport Tooltip from '../../components/Tooltip/Tooltip'\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\nimport { DownArrowIcon } from '../../assets/icons'\n\ninterface LivePreviewProps {\n transformedData?: TransformedOpenApi\n openApiErrors?: any[]\n}\n\nconst LivePreview: React.FC<LivePreviewProps> = ({ transformedData, openApiErrors }) => {\n const [tableRecords, setTableRecords] = useState()\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\n const [tableData, setTableData] = useState([])\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\n const [errorExpanded, setErrorExpanded] = useState(openApiErrors.length > 0)\n const { values } = useFormikContext<TransformedOpenApi>()\n const { info, components, tags } = values\n const { securitySchemes } = components\n const securityKey =\n securitySchemes && typeof securitySchemes == 'object' && Object.keys(securitySchemes).length\n ? Object.keys(securitySchemes)[0]\n : null\n\n useEffect(() => {\n if (values.tags) {\n setTableRecords(generateTableData(values.tags, true))\n setTableData(values.tags)\n }\n }, [values.tags])\n\n const generateTableData = (items, readOnly) => {\n return items.map((item, index) => ({\n id: index,\n tagName: item.name,\n description: (\n <Tooltip\n key={`${index}-description`}\n allowHTML\n disabled={item.description?.length <= 12}\n content={<div style={{ padding: '0.625rem' }}>{item.description}</div>}\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n delay={[0, 0]}\n >\n <div className={styles.paramDescContainer}>\n <p className={styles.editDescBtn}>\n {item.description ? item.description.substring(0, 12) : '-'}\n {item.description && item.description.length > 12 ? '...' : ''}\n </p>\n </div>\n </Tooltip>\n ),\n externalDocs: (\n <div className={styles.paramDescContainer}>\n {item.externalDocs && item.externalDocs.url && item.externalDocs.url != '-' ? (\n <a\n className={styles.editDescBtn}\n href={\n item.externalDocs?.url && item.externalDocs?.url.indexOf('http') > -1\n ? item.externalDocs?.url\n : `https://${item.externalDocs?.url}`\n }\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {item?.externalDocs?.url && !item?.externalDocs?.description\n ? item?.externalDocs?.url\n : null}\n {item?.externalDocs?.description\n ? item?.externalDocs?.description?.substring(0, 12)\n : !item?.externalDocs?.url\n ? '-'\n : null}\n {item?.externalDocs?.description && item?.externalDocs?.description?.length > 12\n ? '...'\n : ''}\n </a>\n ) : (\n <Button className={styles.editDescBtn} variant=\"link\" color=\"action\">\n {item.externalDocs?.description\n ? item.externalDocs?.description.substring(0, 12)\n : '-'}\n {item.externalDocs?.description && item.externalDocs?.description.length > 12\n ? '...'\n : ''}\n </Button>\n )}\n\n {/* </Tooltip> */}\n\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\n\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n onClick={() => null}\n ></Button>\n )}\n </div>\n ),\n }))\n }\n\n const securityScheme = !!securityKey\n ? securitySchemes[securityKey].scheme || securitySchemes[securityKey].type\n : '-'\n\n return (\n <div className={styles.livePreviewContainer}>\n {!!openApiErrors && openApiErrors.length > 0 && (\n <div className=\"row\">\n <div className=\"col-md-12\">\n <Accordion\n expanded={errorExpanded}\n onChange={() => null}\n className={styles.responseAccordion}\n summary={\n <span\n className={styles.responseAccordionSummary}\n onClick={() => setErrorExpanded((prev) => !errorExpanded)}\n >\n <div className={styles.responseAccordionSummary_title}>Errors</div>\n <SVGLoader\n className={errorExpanded ? styles.expanded : ''}\n src={DownArrowIcon}\n width=\"2rem\"\n height=\"2rem\"\n />\n </span>\n }\n children={\n <div className={styles.accordionContent}>\n <span>\n Failed to update the OpenAPI documentation. Please resolve the following issues:\n </span>\n <br />\n <ol>\n {openApiErrors.map((errItem) => (\n <li key={errItem}>{errItem}</li>\n ))}\n </ol>\n </div>\n }\n />\n </div>\n </div>\n )}\n <div className=\"row\">\n <div className=\"col-md-12\">\n <div className={styles.titleContainer}>\n <p className={styles.apiName}>{info?.title?.trim() || '-'}</p>\n <Chip className={styles.livePreviewChip}>Live Preview</Chip>\n </div>\n <SimpleLabelValue key={'version'} label={'Version: '} value={info?.version || '-'} />\n <SimpleLabelValue\n key={'description'}\n label={'Description: '}\n className={styles.description_preview}\n value={info?.description?.trim() || '-'}\n />\n\n <SimpleLabelValue key={'tags'} label={'Tags: '} />\n <TagsTable\n id=\"tags-table\"\n data={tableRecords}\n headCells={tagsTableHeaders}\n isFormOpen={false}\n setIsFormOpen={() => null}\n saveNewRow={() => null}\n readOnly={true}\n />\n\n <SimpleLabelValue key={'endpoints'} label={'Endpoints '} />\n {Object.entries(\n values.paths\n .flatMap((path) =>\n path.methods.map((method) => ({\n ...method,\n path: path.path,\n tags: method.tags?.length ? method.tags : ['default'],\n }))\n )\n .reduce((acc, method) => {\n method.tags.forEach((tag) => {\n if (!acc[tag]) acc[tag] = []\n acc[tag].push(method)\n })\n return acc\n }, {} as Record<string, any[]>)\n ).map(([tag, methods]) => (\n <div className={styles.methodsContainer} key={tag}>\n <h3>{tag}</h3>\n {methods\n .sort((a, b) => methodColorMapping[a.type].order - methodColorMapping[b.type].order)\n .map((method) => (\n <MethodsAccordion\n key={`${method.path}_${method.type}`}\n readOnly\n method={method}\n path={method.path}\n tags={values.tags}\n />\n ))}\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\nexport default LivePreview\n"],"names":["LivePreview","transformedData","openApiErrors","tableRecords","setTableRecords","useState","tableData","setTableData","errorExpanded","setErrorExpanded","length","values","useFormikContext","info","components","tags","securitySchemes","securityKey","Object","keys","useEffect","generateTableData","items","readOnly","map","item","index","id","tagName","name","description","_jsx","jsx","Tooltip","allowHTML","disabled","_a","content","style","padding","children","arrowWithBorder","placement","type","delay","className","styles","paramDescContainer","_jsxs","jsxs","editDescBtn","substring","externalDocs","url","href","_b","_c","indexOf","_d","_e","rel","target","_f","_g","_h","_j","_l","_k","_m","_o","_q","_p","Button","variant","color","_r","_s","_t","_u","paramDescContainer_separator","deleteParamBtn","onClick","scheme","livePreviewContainer","Accordion","expanded","onChange","responseAccordion","summary","responseAccordionSummary","prev","responseAccordionSummary_title","SVGLoader","src","DownArrowIcon","width","height","accordionContent","errItem","titleContainer","apiName","title","trim","Chip","livePreviewChip","SimpleLabelValue","label","value","version","description_preview","TagsTable","data","headCells","tagsTableHeaders","isFormOpen","setIsFormOpen","saveNewRow","entries","paths","flatMap","path","methods","method","assign","reduce","acc","forEach","tag","push","methodsContainer","sort","a","b","methodColorMapping","order","MethodsAccordion"],"mappings":"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"}
1
+ {"version":3,"file":"LivePreview.js","sources":["../../../../src/components/LivePreview/LivePreview.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport styles from './LivePreview.module.scss'\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\nimport MethodsAccordion from '../../components/MethodAccordion/MethodAccordion'\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\nimport { useFormikContext } from 'formik'\nimport { methodColorMapping, tagsTableHeaders } from '../../constants/index'\nimport TagsTable from '../table/tags-table'\nimport { Accordion, Button, Chip } from 'digitinary-ui'\nimport Tooltip from '../../components/Tooltip/Tooltip'\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\nimport { DownArrowIcon } from '../../assets/icons'\n\ninterface LivePreviewProps {\n transformedData?: TransformedOpenApi\n openApiErrors?: any[]\n}\n\nconst LivePreview: React.FC<LivePreviewProps> = ({ transformedData, openApiErrors }) => {\n const [tableRecords, setTableRecords] = useState()\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\n const [tableData, setTableData] = useState([])\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\n const [errorExpanded, setErrorExpanded] = useState(openApiErrors.length > 0)\n const { values } = useFormikContext<TransformedOpenApi>()\n const { info, components, tags } = values\n const { securitySchemes } = components\n const securityKey =\n securitySchemes && typeof securitySchemes == 'object' && Object.keys(securitySchemes).length\n ? Object.keys(securitySchemes)[0]\n : null\n\n useEffect(() => {\n if (values.tags) {\n setTableRecords(generateTableData(values.tags, true))\n setTableData(values.tags)\n }\n }, [values.tags])\n\n const generateTableData = (items, readOnly) => {\n return items.map((item, index) => ({\n id: index,\n tagName: item.name,\n description: (\n <Tooltip\n key={`${index}-description`}\n allowHTML\n disabled={item.description?.length <= 12}\n content={<div style={{ padding: '0.625rem' }}>{item.description}</div>}\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n delay={[0, 0]}\n >\n <div className={styles.paramDescContainer}>\n <p className={styles.editDescBtn}>\n {item.description ? item.description.substring(0, 12) : '-'}\n {item.description && item.description.length > 12 ? '...' : ''}\n </p>\n </div>\n </Tooltip>\n ),\n externalDocs: (\n <div className={styles.paramDescContainer}>\n {item.externalDocs && item.externalDocs.url && item.externalDocs.url != '-' ? (\n <a\n className={styles.editDescBtn}\n href={\n item.externalDocs?.url && item.externalDocs?.url.indexOf('http') > -1\n ? item.externalDocs?.url\n : `https://${item.externalDocs?.url}`\n }\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {item?.externalDocs?.url && !item?.externalDocs?.description\n ? item?.externalDocs?.url\n : null}\n {item?.externalDocs?.description\n ? item?.externalDocs?.description?.substring(0, 12)\n : !item?.externalDocs?.url\n ? '-'\n : null}\n {item?.externalDocs?.description && item?.externalDocs?.description?.length > 12\n ? '...'\n : ''}\n </a>\n ) : (\n <Button className={styles.editDescBtn} variant=\"link\" color=\"action\">\n {item.externalDocs?.description\n ? item.externalDocs?.description.substring(0, 12)\n : '-'}\n {item.externalDocs?.description && item.externalDocs?.description.length > 12\n ? '...'\n : ''}\n </Button>\n )}\n\n {/* </Tooltip> */}\n\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\n\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n onClick={() => null}\n ></Button>\n )}\n </div>\n ),\n }))\n }\n\n const securityScheme = !!securityKey\n ? securitySchemes[securityKey].scheme || securitySchemes[securityKey].type\n : '-'\n\n return (\n <div className={styles.livePreviewContainer}>\n {!!openApiErrors && openApiErrors.length > 0 && (\n <div className=\"row\">\n <div className=\"col-md-12\">\n <Accordion\n expanded={errorExpanded}\n onChange={() => null}\n className={styles.responseAccordion}\n summary={\n <span\n className={styles.responseAccordionSummary}\n onClick={() => setErrorExpanded((prev) => !errorExpanded)}\n >\n <div className={styles.responseAccordionSummary_title}>Errors</div>\n <SVGLoader\n className={errorExpanded ? styles.expanded : ''}\n src={DownArrowIcon}\n width=\"2rem\"\n height=\"2rem\"\n />\n </span>\n }\n children={\n <div className={styles.accordionContent}>\n <span>\n Failed to update the OpenAPI documentation. Please resolve the following issues:\n </span>\n <br />\n <ol>\n {openApiErrors.map((errItem) => (\n <li key={errItem}>{errItem}</li>\n ))}\n </ol>\n </div>\n }\n />\n </div>\n </div>\n )}\n <div className=\"row\">\n <div className=\"col-md-12\">\n <div className={styles.titleContainer}>\n <p className={styles.apiName}>{info?.title?.trim() || '-'}</p>\n <Chip className={styles.livePreviewChip}>Live Preview</Chip>\n </div>\n <SimpleLabelValue key={'version'} label={'Version: '} value={info?.version || '-'} />\n <SimpleLabelValue\n key={'description'}\n label={'Description: '}\n className={styles.description_preview}\n value={info?.description?.trim() || '-'}\n />\n\n <SimpleLabelValue key={'tags'} label={'Tags: '} />\n <TagsTable\n id=\"tags-table\"\n data={tableRecords}\n headCells={tagsTableHeaders}\n isFormOpen={false}\n setIsFormOpen={() => null}\n saveNewRow={() => null}\n readOnly={true}\n />\n\n <SimpleLabelValue key={'endpoints'} label={'Endpoints '} />\n {Object.entries(\n values.paths\n .flatMap((path) =>\n path.methods.map((method) => ({\n ...method,\n path: path.path,\n tags: method.tags?.length ? method.tags : ['default'],\n }))\n )\n .reduce((acc, method) => {\n method.tags.forEach((tag) => {\n if (!acc[tag]) acc[tag] = []\n acc[tag].push(method)\n })\n return acc\n }, {} as Record<string, any[]>)\n ).map(([tag, methods]) => (\n <div className={styles.methodsContainer} key={tag}>\n <h3>{tag}</h3>\n {methods\n .sort((a, b) => methodColorMapping[a.type].order - methodColorMapping[b.type].order)\n .map((method) => (\n <MethodsAccordion\n key={`${method.path}_${method.type}`}\n readOnly\n method={method}\n path={method.path}\n tags={values.tags}\n />\n ))}\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\nexport default LivePreview\n"],"names":["LivePreview","transformedData","openApiErrors","tableRecords","setTableRecords","useState","tableData","setTableData","errorExpanded","setErrorExpanded","length","values","useFormikContext","info","components","tags","securitySchemes","securityKey","Object","keys","useEffect","generateTableData","items","readOnly","map","item","index","id","tagName","name","description","_jsx","jsx","Tooltip","allowHTML","disabled","_a","content","style","padding","children","arrowWithBorder","placement","type","delay","className","styles","paramDescContainer","_jsxs","jsxs","editDescBtn","substring","externalDocs","url","href","_b","_c","indexOf","_d","_e","rel","target","_f","_g","_h","_j","_l","_k","_m","_o","_q","_p","Button","variant","color","_r","_s","_t","_u","paramDescContainer_separator","deleteParamBtn","onClick","scheme","livePreviewContainer","Accordion","expanded","onChange","responseAccordion","summary","responseAccordionSummary","prev","responseAccordionSummary_title","SVGLoader","src","DownArrowIcon","width","height","accordionContent","errItem","titleContainer","apiName","title","trim","Chip","livePreviewChip","SimpleLabelValue","label","value","version","description_preview","TagsTable","data","headCells","tagsTableHeaders","isFormOpen","setIsFormOpen","saveNewRow","entries","paths","flatMap","path","methods","method","assign","reduce","acc","forEach","tag","push","methodsContainer","sort","a","b","methodColorMapping","order","MethodsAccordion"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MethodAccordion.js","sources":["../../../../src/components/MethodAccordion/MethodAccordion.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { Accordion, Button, Input, SelectGroup, Switch, TextArea } from 'digitinary-ui'\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\nimport {\n DeleteIcon,\n DownArrowIcon,\n EditIcon,\n DeleteOutlinedIcon,\n CloseIcon,\n} from '../../assets/icons'\nimport PlusIcon from '../../assets/icons/Plus.svg'\nimport PlusSquare from '../../assets/icons/PlusSquare.svg'\nimport { httpStatusCodes, methodColorMapping, paramsTableHeaders } from '../../constants/index'\nimport Tooltip from '../../components/Tooltip/Tooltip'\nimport { TransformedMethod } from '../../types/layout.type'\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\nimport { capitalize, handleStatusColor } from '../../helpers/methodAccordion.helper'\nimport ParamterTable from '../table/table'\nimport CommonDialog from '../../components/dialog'\nimport JsonInput from '../../components/JsonInput/JsonInput'\nimport styles from './MethodAccordion.module.scss'\nimport { Tags } from '@entities/openApi'\nimport regex from '../../constants/regex'\n\nconst httpStatusCodeOptions = httpStatusCodes.map((code) => ({\n label: (\n <div className={styles.statusCodeOptionContainer}>\n <div\n className={styles.statusCodeOptionCircle}\n style={{ backgroundColor: handleStatusColor(code) }}\n ></div>\n <span>{code}</span>\n </div>\n ),\n value: code,\n}))\n\nconst MethodsAccordion = ({\n method,\n path,\n setFieldValue,\n readOnly,\n tags,\n isOpen,\n setIsOpen,\n errors,\n}: {\n method: TransformedMethod\n path: string\n setFieldValue?: (key: string, value: string | string[]) => void\n readOnly?: boolean\n tags: Tags[]\n isOpen: boolean\n setIsOpen: (open: boolean) => void\n errors?: string\n}) => {\n const [isExpanded, setIsExpanded] = useState({\n request: false,\n response: false,\n method: false,\n })\n const [isFormOpen, setIsFormOpen] = useState<boolean>(false)\n const [isHeaderFormOpen, setIsHeaderFormOpen] = useState<boolean>(false)\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\n const [tableData, setTableData] = useState([])\n const [tableResponseData, setTableResponseData] = useState([])\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\n const [openHeaderDeleteDialog, setOpenHeaderDeleteDialog] = useState(false)\n const [selectedParamIndex, setSelectedParamIndex] = useState<number | null>(null)\n const [selectedHeaderIndex, setSelectedHeaderIndex] = useState<number | null>(null)\n const [selectedParamName, setSelectedParamName] = useState<string | null>(null)\n const [tableRecords, setTableRecords] = useState()\n const [tableResponseRecords, setTableResponseRecords] = useState([])\n const [selectionTags, setSelectionTags] = useState([])\n const [selectedStatusCode, setSelectedStatusCode] = useState(httpStatusCodeOptions[4])\n const [enumFields, setEnumFields] = useState([])\n const [tooltipEnumRef, setTooltipEnumRef] = useState(null)\n const [currentResponseIndex, setCurrentResponseIndex] = useState<number>(-1)\n const activeAccordionRef = useRef<HTMLDivElement | null>(null)\n const currentResponse =\n method.responses.find((res) => Number(res.code) === selectedStatusCode.value) || '{}'\n const indexRef = useRef(-1)\n const onTableChange = (key, value, index) => {\n const newTableData = tableData.map((item, tIndex) => {\n if (tIndex === index) {\n return { ...item, [key]: value }\n } else {\n return item\n }\n })\n\n setTableData(newTableData)\n }\n\n useEffect(() => {\n if (isOpen && activeAccordionRef.current) {\n activeAccordionRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' })\n }\n }, [isOpen])\n\n const generateResponseTableData = (headersObj: any, responseIndex: number) => {\n const headersByName = Object.keys(headersObj)\n return headersByName.map((item, index) => {\n const data = headersObj[item]\n return {\n id: `header_${index}`,\n paramName: item,\n paramType: capitalize('header'),\n schemaType: `${capitalize(data?.schema?.type) || ''} ${\n data?.schema?.type?.toLowerCase() == 'array' &&\n data?.schema?.items &&\n data?.schema?.items?.type\n ? ` _ ${capitalize(data?.schema?.items?.type)}`\n : ''\n }`,\n required: (\n <>\n {readOnly ? (\n data.required ? (\n 'True'\n ) : (\n 'False'\n )\n ) : (\n <Switch\n checked={data.required}\n onClick={() => {\n if (readOnly) {\n return null\n }\n setFieldValue(\n `responses[${responseIndex}].headers[${item}].required`,\n !data.required\n )\n }}\n />\n )}\n </>\n ),\n description: (\n <div className={styles.paramDescContainer}>\n <Tooltip\n key={`${index}-description`}\n allowHTML\n disabled={method.responses[responseIndex].headers[item].description?.length <= 12}\n content={\n <div style={{ padding: '0.625rem' }}>\n {method.responses[responseIndex].headers[item].description}\n </div>\n }\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n delay={[0, 0]}\n onShow={() => tooltipRefs[index]?.hide()}\n >\n <p style={{ alignSelf: 'center' }}>\n {method.responses[responseIndex].headers[item].description\n ? method.responses[responseIndex].headers[item].description.substring(0, 12)\n : readOnly && '-'}\n {method.responses[responseIndex].headers[item].description &&\n method.responses[responseIndex].headers[item].description.length > 12\n ? '...'\n : ''}\n </p>\n </Tooltip>\n {!readOnly && (\n <Tooltip\n key={`${index}-add-edit-description`}\n allowHTML\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n placeholder=\"Describe parameter...\"\n value={data.description}\n disabled={readOnly}\n maxLength={120}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) {\n setFieldValue(\n `responses[${indexRef.current}].headers[${item}].description`,\n value\n )\n }\n }}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(\n `responses[${responseIndex}].headers[${item}].description`,\n data.description?.trim()\n )\n tooltipRefs[index]?.hide()\n }}\n disabled={!data.description?.trim()}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly ||\n method.responses[responseIndex].headers[item].description?.length > 0 ? (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n ></Button>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} Description\n </Button>\n )}\n </Tooltip>\n )}\n\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\n\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\n onClick={() => handleDeleteResponseHeader(index, item)}\n ></Button>\n )}\n </div>\n ),\n enum: (\n <>\n {readOnly ? (\n <span className=\"enumText\">{data?.schema?.enum?.join('/\\u200B')}</span>\n ) : (\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n {(() => {\n const schema = method?.responses[currentResponseIndex]?.headers[item]?.schema\n const schemaType = schema?.type?.toLowerCase()\n const isComplex = schemaType === 'array' || schemaType === 'object'\n const enumList = schema?.enum || []\n\n if (!schema || isComplex) return '-'\n\n return (\n <Tooltip\n disabled={isComplex}\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipEnumRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Enum</p>\n\n {enumList.map((enumVal, enumIndex) => (\n <Input\n key={enumIndex}\n className=\"methodDescForEnum\"\n required\n clearable={false}\n placeholder=\"Enter Enum value...\"\n value={enumVal}\n onChange={(value) => {\n setFieldValue(\n `responses[${currentResponseIndex}].headers[\"${item}\"].schema.enum[${enumIndex}]`,\n value\n )\n }}\n />\n ))}\n\n <p\n className=\"addEnumButton\"\n onClick={() => {\n setFieldValue(\n `responses[${currentResponseIndex}].headers[\"${item}\"].schema.enum`,\n [...enumList, '']\n )\n }}\n >\n <SVGLoader src={PlusSquare} />\n Add New Enum\n </p>\n\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n type=\"button\"\n onClick={() => {\n setFieldValue(\n `responses[${currentResponseIndex}].headers[\"${item}\"].schema.enum`,\n [...enumList]\n )\n setEnumFields([])\n tooltipEnumRef?.hide()\n }}\n disabled={enumList.length === 0 || enumList.some((val) => !val)}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {enumList.length > 0 ? (\n <span className=\"enumText\">{enumList.join('/\\u200B')}</span>\n ) : (\n <Button\n className={styles.editDescBtn}\n id=\"EnumButton\"\n variant=\"link\"\n color=\"action\"\n endIcon={\n <SVGLoader\n id=\"enumIcon\"\n src={PlusIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n />\n }\n >\n Add\n </Button>\n )}\n </Tooltip>\n )\n })()}\n </div>\n )}\n </>\n ),\n }\n })\n }\n\n const generateTableData = (items, isForRequest?: boolean) => {\n return items?.map((item, index) => {\n return {\n id: index,\n paramName: item.name,\n paramType: capitalize(item.in),\n schemaType: `${capitalize(item?.schema?.type) || ''} ${\n item?.schema?.type?.toLowerCase() == 'array' &&\n item?.schema?.items &&\n item?.schema?.items?.type\n ? ` _ ${capitalize(item?.schema?.items?.type)}`\n : ''\n }`,\n required: (\n <>\n {readOnly ? (\n item.required ? (\n 'True'\n ) : (\n 'False'\n )\n ) : (\n <Switch\n checked={item.required}\n onClick={() => {\n if (readOnly) {\n return null\n }\n onTableChange('required', !item.required, index)\n setFieldValue(`parameters[${index}][required]`, !item.required)\n }}\n />\n )}\n </>\n ),\n description: (\n <div className={styles.paramDescContainer}>\n <Tooltip\n key={`${index}-description`}\n allowHTML\n disabled={method.parameters[index].description?.length <= 12}\n content={\n <div style={{ padding: '0.625rem' }}>{method.parameters[index].description}</div>\n }\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n delay={[0, 0]}\n onShow={() => tooltipRefs[index]?.hide()}\n >\n <p style={{ alignSelf: 'center' }}>\n {method.parameters[index].description\n ? method.parameters[index].description.substring(0, 12)\n : readOnly && '-'}\n {method.parameters[index].description &&\n method.parameters[index].description.length > 12\n ? '...'\n : ''}\n </p>\n </Tooltip>\n {!readOnly && (\n <Tooltip\n key={`${index}-add-edit-description`}\n allowHTML\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n placeholder=\"Describe parameter...\"\n value={item.description}\n disabled={readOnly}\n maxLength={120}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value))\n onTableChange('description', value, index)\n }}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(\n `parameters[${index}].description`,\n item.description?.trim()\n )\n tooltipRefs[index]?.hide()\n }}\n disabled={!item.description?.trim()}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly || method.parameters[index].description?.length > 0 ? (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n ></Button>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} Description\n </Button>\n )}\n </Tooltip>\n )}\n\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\n\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\n onClick={() => handleDeleteClick(index, item.name)}\n ></Button>\n )}\n </div>\n ),\n enum: (\n <>\n {readOnly ? (\n <span className=\"enumText\">{item?.schema?.enum?.join('/\\u200B')}</span>\n ) : (\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n {method.parameters[index]?.schema &&\n method.parameters[index]?.schema?.type?.toLowerCase() != 'array' &&\n method.parameters[index]?.schema?.type?.toLowerCase() != 'object' ? (\n <Tooltip\n disabled={\n method.parameters[index]?.schema?.type?.toLowerCase() == 'array' ||\n method.parameters[index]?.schema?.type?.toLowerCase() == 'object'\n }\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipEnumRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Enum</p>\n {!!method.parameters[index]?.schema?.enum &&\n !!method.parameters[index]?.schema?.enum.length &&\n method.parameters[index]?.schema?.enum?.map((item, _index) => (\n <Input\n key={index}\n className={'methodDescForEnum'}\n required\n clearable={false}\n placeholder=\"Enter Enum value...\"\n value={item}\n onChange={(value) => {\n setFieldValue(`parameters[${index}].schema.enum[${_index}]`, value)\n }}\n />\n ))}\n <p\n className={'addEnumButton'}\n onClick={() => {\n setFieldValue(`parameters[${index}].schema.enum`, [\n ...method.parameters[index]?.schema?.enum,\n '',\n ])\n }}\n >\n <SVGLoader src={PlusSquare} />\n Add New Enum\n </p>\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n type=\"button\"\n onClick={() => {\n setFieldValue(`parameters[${index}].schema.enum`, [\n ...method.parameters[index].schema.enum,\n ])\n setEnumFields([])\n tooltipEnumRef?.hide()\n }}\n disabled={\n (enumFields.length > 0 &&\n enumFields?.filter((item) => !item).length) ||\n (method?.parameters[index]?.schema?.enum &&\n method?.parameters[index]?.schema?.enum?.length > 0 &&\n method?.parameters[index]?.schema?.enum?.filter((item) => !item)\n .length)\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {method.parameters[index]?.schema?.enum &&\n method.parameters[index]?.schema?.enum?.length > 0 ? (\n <span className={'enumText'}>\n {method.parameters[index]?.schema?.enum?.join('/\\u200B')}\n </span>\n ) : (\n <Button\n className={styles.editDescBtn}\n id=\"EnumButton\"\n variant=\"link\"\n color=\"action\"\n endIcon={\n <SVGLoader id=\"enumIcon\" src={PlusIcon} width=\"1.5rem\" height=\"1.5rem\" />\n }\n >\n Add\n </Button>\n )}\n </Tooltip>\n ) : (\n '-'\n )}{' '}\n </div>\n )}\n </>\n ),\n }\n })\n }\n\n const confirmDeleteParameter = () => {\n if (selectedParamIndex !== null) {\n setTableData((prev) => prev.filter((_, i) => i !== selectedParamIndex))\n setFieldValue(\n `parameters`,\n method?.parameters?.filter((_, i) => i !== selectedParamIndex)\n )\n }\n setOpenDeleteDialog(false)\n setSelectedParamIndex(null)\n }\n\n const confirmDeleteHeader = () => {\n if (setSelectedHeaderIndex !== null) {\n let headers = Object.fromEntries(\n Object.entries(method.responses[indexRef.current].headers).filter(\n ([key]) => key != selectedParamName\n )\n )\n setFieldValue(`responses[${indexRef.current}].headers`, headers)\n }\n setOpenHeaderDeleteDialog(false)\n setSelectedHeaderIndex(null)\n }\n\n const handleDeleteClick = (id: number, name: string) => {\n setSelectedParamIndex(id)\n setSelectedParamName(name)\n\n setOpenDeleteDialog(true)\n }\n\n const handleDeleteResponseHeader = (index, name) => {\n setSelectedHeaderIndex(index)\n setSelectedParamName(name)\n\n setOpenHeaderDeleteDialog(true)\n }\n\n const saveNewRow = (values) => {\n setTableData([...tableData, values])\n setFieldValue(`parameters`, [...method.parameters, values])\n }\n\n const saveNewResponseRow = (value) => {\n setFieldValue(`responses[${indexRef.current}].headers[${value.name}]`, value)\n }\n\n useEffect(() => {\n setTableRecords(generateTableData(tableData, true))\n }, [tableData])\n\n useEffect(() => {\n if (method?.parameters) {\n setTableData(method.parameters)\n }\n }, [method, path])\n\n useEffect(() => {\n if (selectedStatusCode && method.responses) {\n let responseIndex = method.responses.findIndex(\n (_r) => _r.code.toString() == selectedStatusCode.value.toString()\n )\n if (responseIndex < 0) {\n const clonedResponses = structuredClone(method.responses)\n\n clonedResponses.push({\n code: selectedStatusCode.value.toString(),\n content: {\n contentType: 'application/json',\n schema: {},\n },\n headers: {},\n })\n\n if (setFieldValue) {\n setFieldValue('responses', clonedResponses)\n responseIndex = 0\n }\n }\n setCurrentResponseIndex(responseIndex)\n indexRef.current = responseIndex\n if (responseIndex >= 0) {\n setTableResponseRecords(\n generateResponseTableData(method.responses[responseIndex].headers, responseIndex)\n )\n }\n }\n }, [selectedStatusCode, method.responses, setFieldValue])\n\n useEffect(() => {\n if (indexRef.current && indexRef.current > -1) {\n setTableResponseRecords(\n generateResponseTableData(method.responses[indexRef.current].headers, indexRef.current)\n )\n }\n }, [method.responses, indexRef.current])\n\n useEffect(() => {\n // prepare tags selection list\n if (method?.tags.length || tags?.length) {\n const convertedStringArray = (method?.tags || [])?.map((item) => ({\n label: capitalize(item),\n value: item,\n }))\n const mergedArray = [\n ...convertedStringArray,\n ...(tags || []).map((item) => ({ label: capitalize(item.name), value: item.name })),\n ]\n\n const filteredArray = mergedArray.filter(\n (value, index, self) => index === self.findIndex((t) => t.value === value.value)\n )\n\n setSelectionTags(filteredArray)\n }\n }, [tags, method])\n\n return (\n <div ref={activeAccordionRef}>\n <Accordion\n expanded={isOpen}\n onChange={() => setIsOpen(!isOpen)}\n className={`${styles.methodAccordion} ${readOnly ? styles.readOnly : ''}`}\n summary={\n <div className={styles.methodSummaryContainer}>\n <div className={styles.methodSummary}>\n <span\n style={{\n backgroundColor: methodColorMapping?.[method?.type]?.color || '#3A6CD1',\n }}\n className={styles.methodLabel}\n >\n {methodColorMapping?.[method?.type]?.label || method?.type}\n </span>\n <span className={styles.methodPath}>{path}</span>\n </div>\n <div\n className={`${styles.methodExpandArrowContainer} ${isOpen ? styles.expanded : ''}`}\n >\n <SVGLoader src={DownArrowIcon} width=\"2rem\" height=\"2rem\" />\n </div>\n </div>\n }\n children={\n <div className={styles.methodAccordionContent}>\n {!readOnly ? (\n <Input\n className={styles.methodDesc}\n label=\"Endpoint Name\"\n required\n placeholder=\"Endpoint name...\"\n value={method?.summary}\n onChange={(value) => {\n value = value || ''\n if (value === '' || regex.ASCII.test(value)) {\n setFieldValue('summary', value)\n }\n }}\n onClear={() => {\n setFieldValue('summary', '')\n }}\n errorMsg={errors?.summary}\n />\n ) : (\n <SimpleLabelValue\n key={'summary'}\n label={'Endpoint Name: '}\n value={method?.summary || '-'}\n />\n )}\n <SelectGroup\n className={styles.methodDesc}\n disabled={readOnly}\n placeholder=\"Select Tags\"\n label=\"Tags\"\n value={method.tags?.map((t) => ({\n label: capitalize(t),\n value: t,\n }))}\n onChange={(item) => {\n setFieldValue(\n 'tags',\n item.map((i) => i.value)\n )\n }}\n options={[\n {\n list: selectionTags,\n },\n ]}\n isMultiple={true}\n withSearch={false}\n clearable={false}\n />\n {!readOnly ? (\n <TextArea\n className={styles.methodDesc}\n label=\"Description\"\n placeholder=\"Describe the method's purpose and functionality...\"\n maxLength={120}\n value={method?.description}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setFieldValue('description', value)\n }}\n />\n ) : (\n <SimpleLabelValue\n key={'description'}\n label={'Description: '}\n value={method?.description || '-'}\n className={styles.multiLineText}\n />\n )}\n <div className={styles.paramsTable}>\n <h4 className={styles.paramsTableBodyHead}>Request Details</h4>\n <ParamterTable\n id=\"paramter-request-table\"\n data={tableRecords}\n headCells={paramsTableHeaders}\n isFormOpen={isFormOpen}\n setIsFormOpen={setIsFormOpen}\n saveNewRow={saveNewRow}\n readOnly={readOnly}\n isRequest={true}\n />\n {method?.type !== 'get' && method?.type !== 'delete' && (\n <Accordion\n expanded={isExpanded.request}\n onChange={() => null}\n className={styles.requestAccordion}\n summary={\n <span className={styles.requestAccordionSummary}>\n <div\n className={styles.requestAccordionSummary_title}\n onClick={() =>\n setIsExpanded((prev) => ({\n ...prev,\n request: !prev.request,\n }))\n }\n >\n <SVGLoader\n className={isExpanded.request ? styles.expanded : ''}\n src={DownArrowIcon}\n width=\"2rem\"\n height=\"2rem\"\n />\n Request\n {method?.type !== 'delete' && <span style={{ color: 'red' }}>*</span>}\n </div>\n </span>\n }\n children={\n <JsonInput\n acceptType=\"JSON\"\n withFooter={!readOnly}\n className={'jsonField'}\n placeholder=\"Enter your request body as a JSON object....\"\n fieldIsDisabled={readOnly}\n value={method?.requestBody?.content?.schema?.properties || '{}'}\n onChange={(value: string) => {\n setFieldValue('requestBody.content.schema.properties', value)\n }}\n onValidation={() => null}\n />\n }\n />\n )}\n </div>\n <div className={styles.paramsTable}>\n <div className={styles.responseHeader}>\n <h4 className={styles.paramsTableBodyHead}>Response Details</h4>\n <SelectGroup\n withSearch={false}\n isMultiple={false}\n clearable={false}\n placeholder=\"200\"\n options={[\n {\n list: httpStatusCodeOptions,\n },\n ]}\n value={selectedStatusCode}\n onChange={(value) => {\n setSelectedStatusCode(value)\n }}\n />\n </div>\n <ParamterTable\n id=\"paramter-response-table\"\n data={tableResponseRecords}\n headCells={paramsTableHeaders}\n isFormOpen={isHeaderFormOpen}\n setIsFormOpen={setIsHeaderFormOpen}\n saveNewRow={saveNewResponseRow}\n readOnly={readOnly}\n isRequest={false}\n />\n <Accordion\n expanded={isExpanded.response}\n onChange={() => null}\n className={styles.responseAccordion}\n summary={\n <span className={styles.responseAccordionSummary}>\n <div\n className={styles.responseAccordionSummary_title}\n onClick={() =>\n setIsExpanded((prev) => ({\n ...prev,\n response: !prev.response,\n }))\n }\n >\n <SVGLoader\n className={isExpanded.response ? styles.expanded : ''}\n src={DownArrowIcon}\n width=\"2rem\"\n height=\"2rem\"\n />\n Response<span style={{ color: 'red' }}>*</span>\n </div>\n </span>\n }\n children={\n <JsonInput\n acceptType=\"JSON\"\n withFooter={!readOnly}\n className={'jsonField'}\n placeholder=\"Enter your response as a JSON object...\"\n fieldIsDisabled={readOnly}\n value={currentResponse?.content?.schema?.properties || '{}'}\n onChange={(value) => {\n const currentResIndex = method.responses.findIndex(\n (res) => res.code === currentResponse.code\n )\n if (currentResIndex !== -1) {\n setFieldValue(\n `responses[${currentResIndex}].content.schema.properties`,\n value\n )\n } else {\n const clonedResponses = structuredClone(method.responses)\n\n clonedResponses.push({\n code: selectedStatusCode.value.toString(),\n content: {\n contentType: 'application/json',\n schema: {\n type: 'object',\n properties: value,\n },\n },\n })\n\n setFieldValue('responses', clonedResponses)\n }\n }}\n onValidation={(valid) => null}\n />\n }\n />\n </div>\n </div>\n }\n />\n <CommonDialog\n status=\"error\"\n content={\n <p\n style={{\n textAlign: 'center',\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: '1.4375rem',\n }}\n className=\"delete-msg-container\"\n >\n Are you sure you want to delete\n <span className=\"plan-name\">\n {' '}\n Parameter <strong>{selectedParamName}</strong>\n </span>\n ?\n </p>\n }\n onSubmit={{\n onClick: confirmDeleteParameter,\n text: 'Delete',\n color: 'error',\n fullWidth: true,\n }}\n onCancel={{\n text: 'Cancel',\n color: 'action',\n fullWidth: true,\n variant: 'outlined',\n }}\n onClose={() => setOpenDeleteDialog(false)}\n open={openDeleteDialog}\n icon={<SVGLoader src={DeleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\n closeIcon={\n <SVGLoader\n src={CloseIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n onClick={() => setOpenDeleteDialog(false)}\n />\n }\n />\n <CommonDialog\n status=\"error\"\n content={\n <p\n style={{\n textAlign: 'center',\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: '1.4375rem',\n }}\n className=\"delete-msg-container\"\n >\n Are you sure you want to delete\n <span className=\"plan-name\">\n {' '}\n Header <strong>{selectedParamName}</strong>\n </span>\n ?\n </p>\n }\n onSubmit={{\n onClick: confirmDeleteHeader,\n text: 'Delete',\n color: 'error',\n fullWidth: true,\n }}\n onCancel={{\n text: 'Cancel',\n color: 'action',\n fullWidth: true,\n variant: 'outlined',\n }}\n onClose={() => setOpenHeaderDeleteDialog(false)}\n open={openHeaderDeleteDialog}\n icon={<SVGLoader src={DeleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\n closeIcon={\n <SVGLoader\n src={CloseIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n onClick={() => setOpenDeleteDialog(false)}\n />\n }\n />\n </div>\n )\n}\n\nexport default MethodsAccordion\n"],"names":["httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","className","styles","statusCodeOptionContainer","children","_jsx","statusCodeOptionCircle","style","backgroundColor","handleStatusColor","value","MethodsAccordion","method","path","setFieldValue","readOnly","tags","isOpen","setIsOpen","errors","isExpanded","setIsExpanded","useState","request","response","isFormOpen","setIsFormOpen","isHeaderFormOpen","setIsHeaderFormOpen","tooltipRefs","setTooltipRefs","tableData","setTableData","openDeleteDialog","setOpenDeleteDialog","openHeaderDeleteDialog","setOpenHeaderDeleteDialog","selectedParamIndex","setSelectedParamIndex","selectedHeaderIndex","setSelectedHeaderIndex","selectedParamName","setSelectedParamName","tableRecords","setTableRecords","tableResponseRecords","setTableResponseRecords","selectionTags","setSelectionTags","selectedStatusCode","setSelectedStatusCode","enumFields","setEnumFields","tooltipEnumRef","setTooltipEnumRef","currentResponseIndex","setCurrentResponseIndex","activeAccordionRef","useRef","currentResponse","responses","find","res","Number","indexRef","onTableChange","key","index","newTableData","item","tIndex","Object","assign","useEffect","current","scrollIntoView","behavior","block","generateResponseTableData","headersObj","responseIndex","keys","data","id","paramName","paramType","capitalize","schemaType","schema","_a","type","_c","_b","toLowerCase","_d","items","_f","_e","_h","_g","required","jsx","_Fragment","Switch","checked","onClick","description","paramDescContainer","Tooltip","allowHTML","disabled","_j","headers","length","content","padding","arrowWithBorder","placement","delay","onShow","hide","alignSelf","substring","trigger","onCreate","instance","prev","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","maxLength","onChange","regex","ASCII","test","Button","editDescTooltipContent_btn","variant","size","trim","_k","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteResponseHeader","enum","_m","_o","join","isComplex","enumList","enumVal","enumIndex","Input","clearable","jsxs","PlusSquare","some","val","PlusIcon","handleDeleteClick","name","in","parameters","_l","_p","_s","_q","_w","_u","_v","_y","_x","_z","_1","_0","_2","_4","_3","_6","_5","_9","_8","_7","_index","filter","_11","_10","_14","_12","_13","_17","_16","_15","_18","_19","_22","_20","_25","_24","_23","findIndex","_r","toString","clonedResponses","structuredClone","push","contentType","filteredArray","self","t","ref","Accordion","expanded","methodAccordion","summary","methodSummaryContainer","methodSummary","methodColorMapping","methodLabel","methodPath","methodExpandArrowContainer","DownArrowIcon","methodAccordionContent","SimpleLabelValue","methodDesc","onClear","errorMsg","SelectGroup","i","options","list","isMultiple","withSearch","multiLineText","paramsTable","paramsTableBodyHead","ParamterTable","headCells","paramsTableHeaders","saveNewRow","values","isRequest","requestAccordion","requestAccordionSummary","requestAccordionSummary_title","JsonInput","acceptType","withFooter","fieldIsDisabled","requestBody","properties","onValidation","responseHeader","responseAccordion","responseAccordionSummary","responseAccordionSummary_title","currentResIndex","valid","CommonDialog","status","textAlign","fontWeight","fontSize","lineHeight","onSubmit","_","text","fullWidth","onCancel","onClose","open","icon","DeleteOutlinedIcon","closeIcon","CloseIcon","fromEntries","entries"],"mappings":"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"}
1
+ {"version":3,"file":"MethodAccordion.js","sources":["../../../../src/components/MethodAccordion/MethodAccordion.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { Accordion, Button, Input, SelectGroup, Switch, TextArea } from 'digitinary-ui'\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\nimport {\n DeleteIcon,\n DownArrowIcon,\n EditIcon,\n DeleteOutlinedIcon,\n CloseIcon,\n} from '../../assets/icons'\nimport PlusIcon from '../../assets/icons/Plus.svg'\nimport PlusSquare from '../../assets/icons/PlusSquare.svg'\nimport { httpStatusCodes, methodColorMapping, paramsTableHeaders } from '../../constants/index'\nimport Tooltip from '../../components/Tooltip/Tooltip'\nimport { TransformedMethod } from '../../types/layout.type'\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\nimport { capitalize, handleStatusColor } from '../../helpers/methodAccordion.helper'\nimport ParamterTable from '../table/table'\nimport CommonDialog from '../../components/dialog'\nimport JsonInput from '../../components/JsonInput/JsonInput'\nimport styles from './MethodAccordion.module.scss'\nimport { Tags } from '@entities/openApi'\nimport regex from '../../constants/regex'\n\nconst httpStatusCodeOptions = httpStatusCodes.map((code) => ({\n label: (\n <div className={styles.statusCodeOptionContainer}>\n <div\n className={styles.statusCodeOptionCircle}\n style={{ backgroundColor: handleStatusColor(code) }}\n ></div>\n <span>{code}</span>\n </div>\n ),\n value: code,\n}))\n\nconst MethodsAccordion = ({\n method,\n path,\n setFieldValue,\n readOnly,\n tags,\n isOpen,\n setIsOpen,\n errors,\n}: {\n method: TransformedMethod\n path: string\n setFieldValue?: (key: string, value: string | string[]) => void\n readOnly?: boolean\n tags: Tags[]\n isOpen: boolean\n setIsOpen: (open: boolean) => void\n errors?: string\n}) => {\n const [isExpanded, setIsExpanded] = useState({\n request: false,\n response: false,\n method: false,\n })\n const [isFormOpen, setIsFormOpen] = useState<boolean>(false)\n const [isHeaderFormOpen, setIsHeaderFormOpen] = useState<boolean>(false)\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\n const [tableData, setTableData] = useState([])\n const [tableResponseData, setTableResponseData] = useState([])\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\n const [openHeaderDeleteDialog, setOpenHeaderDeleteDialog] = useState(false)\n const [selectedParamIndex, setSelectedParamIndex] = useState<number | null>(null)\n const [selectedHeaderIndex, setSelectedHeaderIndex] = useState<number | null>(null)\n const [selectedParamName, setSelectedParamName] = useState<string | null>(null)\n const [tableRecords, setTableRecords] = useState()\n const [tableResponseRecords, setTableResponseRecords] = useState([])\n const [selectionTags, setSelectionTags] = useState([])\n const [selectedStatusCode, setSelectedStatusCode] = useState(httpStatusCodeOptions[4])\n const [enumFields, setEnumFields] = useState([])\n const [tooltipEnumRef, setTooltipEnumRef] = useState(null)\n const [currentResponseIndex, setCurrentResponseIndex] = useState<number>(-1)\n const activeAccordionRef = useRef<HTMLDivElement | null>(null)\n const currentResponse =\n method.responses.find((res) => Number(res.code) === selectedStatusCode.value) || '{}'\n const indexRef = useRef(-1)\n const onTableChange = (key, value, index) => {\n const newTableData = tableData.map((item, tIndex) => {\n if (tIndex === index) {\n return { ...item, [key]: value }\n } else {\n return item\n }\n })\n\n setTableData(newTableData)\n }\n\n useEffect(() => {\n if (isOpen && activeAccordionRef.current) {\n activeAccordionRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' })\n }\n }, [isOpen])\n\n const generateResponseTableData = (headersObj: any, responseIndex: number) => {\n const headersByName = Object.keys(headersObj)\n return headersByName.map((item, index) => {\n const data = headersObj[item]\n return {\n id: `header_${index}`,\n paramName: item,\n paramType: capitalize('header'),\n schemaType: `${capitalize(data?.schema?.type) || ''} ${\n data?.schema?.type?.toLowerCase() == 'array' &&\n data?.schema?.items &&\n data?.schema?.items?.type\n ? ` _ ${capitalize(data?.schema?.items?.type)}`\n : ''\n }`,\n required: (\n <>\n {readOnly ? (\n data.required ? (\n 'True'\n ) : (\n 'False'\n )\n ) : (\n <Switch\n checked={data.required}\n onClick={() => {\n if (readOnly) {\n return null\n }\n setFieldValue(\n `responses[${responseIndex}].headers[${item}].required`,\n !data.required\n )\n }}\n />\n )}\n </>\n ),\n description: (\n <div className={styles.paramDescContainer}>\n <Tooltip\n key={`${index}-description`}\n allowHTML\n disabled={method.responses[responseIndex].headers[item].description?.length <= 12}\n content={\n <div style={{ padding: '0.625rem' }}>\n {method.responses[responseIndex].headers[item].description}\n </div>\n }\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n delay={[0, 0]}\n onShow={() => tooltipRefs[index]?.hide()}\n >\n <p style={{ alignSelf: 'center' }}>\n {method.responses[responseIndex].headers[item].description\n ? method.responses[responseIndex].headers[item].description.substring(0, 12)\n : readOnly && '-'}\n {method.responses[responseIndex].headers[item].description &&\n method.responses[responseIndex].headers[item].description.length > 12\n ? '...'\n : ''}\n </p>\n </Tooltip>\n {!readOnly && (\n <Tooltip\n key={`${index}-add-edit-description`}\n allowHTML\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n placeholder=\"Describe parameter...\"\n value={data.description}\n disabled={readOnly}\n maxLength={120}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) {\n setFieldValue(\n `responses[${indexRef.current}].headers[${item}].description`,\n value\n )\n }\n }}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(\n `responses[${responseIndex}].headers[${item}].description`,\n data.description?.trim()\n )\n tooltipRefs[index]?.hide()\n }}\n disabled={!data.description?.trim()}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly ||\n method.responses[responseIndex].headers[item].description?.length > 0 ? (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n ></Button>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} Description\n </Button>\n )}\n </Tooltip>\n )}\n\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\n\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\n onClick={() => handleDeleteResponseHeader(index, item)}\n ></Button>\n )}\n </div>\n ),\n enum: (\n <>\n {readOnly ? (\n <span className=\"enumText\">{data?.schema?.enum?.join('/\\u200B')}</span>\n ) : (\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n {(() => {\n const schema = method?.responses[currentResponseIndex]?.headers[item]?.schema\n const schemaType = schema?.type?.toLowerCase()\n const isComplex = schemaType === 'array' || schemaType === 'object'\n const enumList = schema?.enum || []\n\n if (!schema || isComplex) return '-'\n\n return (\n <Tooltip\n disabled={isComplex}\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipEnumRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Enum</p>\n\n {enumList.map((enumVal, enumIndex) => (\n <Input\n key={enumIndex}\n className=\"methodDescForEnum\"\n required\n clearable={false}\n placeholder=\"Enter Enum value...\"\n value={enumVal}\n onChange={(value) => {\n setFieldValue(\n `responses[${currentResponseIndex}].headers[\"${item}\"].schema.enum[${enumIndex}]`,\n value\n )\n }}\n />\n ))}\n\n <p\n className=\"addEnumButton\"\n onClick={() => {\n setFieldValue(\n `responses[${currentResponseIndex}].headers[\"${item}\"].schema.enum`,\n [...enumList, '']\n )\n }}\n >\n <SVGLoader src={PlusSquare} />\n Add New Enum\n </p>\n\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n type=\"button\"\n onClick={() => {\n setFieldValue(\n `responses[${currentResponseIndex}].headers[\"${item}\"].schema.enum`,\n [...enumList]\n )\n setEnumFields([])\n tooltipEnumRef?.hide()\n }}\n disabled={enumList.length === 0 || enumList.some((val) => !val)}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {enumList.length > 0 ? (\n <span className=\"enumText\">{enumList.join('/\\u200B')}</span>\n ) : (\n <Button\n className={styles.editDescBtn}\n id=\"EnumButton\"\n variant=\"link\"\n color=\"action\"\n endIcon={\n <SVGLoader\n id=\"enumIcon\"\n src={PlusIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n />\n }\n >\n Add\n </Button>\n )}\n </Tooltip>\n )\n })()}\n </div>\n )}\n </>\n ),\n }\n })\n }\n\n const generateTableData = (items, isForRequest?: boolean) => {\n return items?.map((item, index) => {\n return {\n id: index,\n paramName: item.name,\n paramType: capitalize(item.in),\n schemaType: `${capitalize(item?.schema?.type) || ''} ${\n item?.schema?.type?.toLowerCase() == 'array' &&\n item?.schema?.items &&\n item?.schema?.items?.type\n ? ` _ ${capitalize(item?.schema?.items?.type)}`\n : ''\n }`,\n required: (\n <>\n {readOnly ? (\n item.required ? (\n 'True'\n ) : (\n 'False'\n )\n ) : (\n <Switch\n checked={item.required}\n onClick={() => {\n if (readOnly) {\n return null\n }\n onTableChange('required', !item.required, index)\n setFieldValue(`parameters[${index}][required]`, !item.required)\n }}\n />\n )}\n </>\n ),\n description: (\n <div className={styles.paramDescContainer}>\n <Tooltip\n key={`${index}-description`}\n allowHTML\n disabled={method.parameters[index].description?.length <= 12}\n content={\n <div style={{ padding: '0.625rem' }}>{method.parameters[index].description}</div>\n }\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n delay={[0, 0]}\n onShow={() => tooltipRefs[index]?.hide()}\n >\n <p style={{ alignSelf: 'center' }}>\n {method.parameters[index].description\n ? method.parameters[index].description.substring(0, 12)\n : readOnly && '-'}\n {method.parameters[index].description &&\n method.parameters[index].description.length > 12\n ? '...'\n : ''}\n </p>\n </Tooltip>\n {!readOnly && (\n <Tooltip\n key={`${index}-add-edit-description`}\n allowHTML\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n placeholder=\"Describe parameter...\"\n value={item.description}\n disabled={readOnly}\n maxLength={120}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value))\n onTableChange('description', value, index)\n }}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(\n `parameters[${index}].description`,\n item.description?.trim()\n )\n tooltipRefs[index]?.hide()\n }}\n disabled={!item.description?.trim()}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly || method.parameters[index].description?.length > 0 ? (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n ></Button>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} Description\n </Button>\n )}\n </Tooltip>\n )}\n\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\n\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\n onClick={() => handleDeleteClick(index, item.name)}\n ></Button>\n )}\n </div>\n ),\n enum: (\n <>\n {readOnly ? (\n <span className=\"enumText\">{item?.schema?.enum?.join('/\\u200B')}</span>\n ) : (\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n {method.parameters[index]?.schema &&\n method.parameters[index]?.schema?.type?.toLowerCase() != 'array' &&\n method.parameters[index]?.schema?.type?.toLowerCase() != 'object' ? (\n <Tooltip\n disabled={\n method.parameters[index]?.schema?.type?.toLowerCase() == 'array' ||\n method.parameters[index]?.schema?.type?.toLowerCase() == 'object'\n }\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipEnumRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Enum</p>\n {!!method.parameters[index]?.schema?.enum &&\n !!method.parameters[index]?.schema?.enum.length &&\n method.parameters[index]?.schema?.enum?.map((item, _index) => (\n <Input\n key={index}\n className={'methodDescForEnum'}\n required\n clearable={false}\n placeholder=\"Enter Enum value...\"\n value={item}\n onChange={(value) => {\n setFieldValue(`parameters[${index}].schema.enum[${_index}]`, value)\n }}\n />\n ))}\n <p\n className={'addEnumButton'}\n onClick={() => {\n setFieldValue(`parameters[${index}].schema.enum`, [\n ...method.parameters[index]?.schema?.enum,\n '',\n ])\n }}\n >\n <SVGLoader src={PlusSquare} />\n Add New Enum\n </p>\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n type=\"button\"\n onClick={() => {\n setFieldValue(`parameters[${index}].schema.enum`, [\n ...method.parameters[index].schema.enum,\n ])\n setEnumFields([])\n tooltipEnumRef?.hide()\n }}\n disabled={\n (enumFields.length > 0 &&\n enumFields?.filter((item) => !item).length) ||\n (method?.parameters[index]?.schema?.enum &&\n method?.parameters[index]?.schema?.enum?.length > 0 &&\n method?.parameters[index]?.schema?.enum?.filter((item) => !item)\n .length)\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {method.parameters[index]?.schema?.enum &&\n method.parameters[index]?.schema?.enum?.length > 0 ? (\n <span className={'enumText'}>\n {method.parameters[index]?.schema?.enum?.join('/\\u200B')}\n </span>\n ) : (\n <Button\n className={styles.editDescBtn}\n id=\"EnumButton\"\n variant=\"link\"\n color=\"action\"\n endIcon={\n <SVGLoader id=\"enumIcon\" src={PlusIcon} width=\"1.5rem\" height=\"1.5rem\" />\n }\n >\n Add\n </Button>\n )}\n </Tooltip>\n ) : (\n '-'\n )}{' '}\n </div>\n )}\n </>\n ),\n }\n })\n }\n\n const confirmDeleteParameter = () => {\n if (selectedParamIndex !== null) {\n setTableData((prev) => prev.filter((_, i) => i !== selectedParamIndex))\n setFieldValue(\n `parameters`,\n method?.parameters?.filter((_, i) => i !== selectedParamIndex)\n )\n }\n setOpenDeleteDialog(false)\n setSelectedParamIndex(null)\n }\n\n const confirmDeleteHeader = () => {\n if (setSelectedHeaderIndex !== null) {\n let headers = Object.fromEntries(\n Object.entries(method.responses[indexRef.current].headers).filter(\n ([key]) => key != selectedParamName\n )\n )\n setFieldValue(`responses[${indexRef.current}].headers`, headers)\n }\n setOpenHeaderDeleteDialog(false)\n setSelectedHeaderIndex(null)\n }\n\n const handleDeleteClick = (id: number, name: string) => {\n setSelectedParamIndex(id)\n setSelectedParamName(name)\n\n setOpenDeleteDialog(true)\n }\n\n const handleDeleteResponseHeader = (index, name) => {\n setSelectedHeaderIndex(index)\n setSelectedParamName(name)\n\n setOpenHeaderDeleteDialog(true)\n }\n\n const saveNewRow = (values) => {\n setTableData([...tableData, values])\n setFieldValue(`parameters`, [...method.parameters, values])\n }\n\n const saveNewResponseRow = (value) => {\n setFieldValue(`responses[${indexRef.current}].headers[${value.name}]`, value)\n }\n\n useEffect(() => {\n setTableRecords(generateTableData(tableData, true))\n }, [tableData])\n\n useEffect(() => {\n if (method?.parameters) {\n setTableData(method.parameters)\n }\n }, [method, path])\n\n useEffect(() => {\n if (selectedStatusCode && method.responses) {\n let responseIndex = method.responses.findIndex(\n (_r) => _r.code.toString() == selectedStatusCode.value.toString()\n )\n if (responseIndex < 0) {\n const clonedResponses = structuredClone(method.responses)\n\n clonedResponses.push({\n code: selectedStatusCode.value.toString(),\n content: {\n contentType: 'application/json',\n schema: {},\n },\n headers: {},\n })\n\n if (setFieldValue) {\n setFieldValue('responses', clonedResponses)\n responseIndex = 0\n }\n }\n setCurrentResponseIndex(responseIndex)\n indexRef.current = responseIndex\n if (responseIndex >= 0) {\n setTableResponseRecords(\n generateResponseTableData(method.responses[responseIndex].headers, responseIndex)\n )\n }\n }\n }, [selectedStatusCode, method.responses, setFieldValue])\n\n useEffect(() => {\n if (indexRef.current && indexRef.current > -1) {\n setTableResponseRecords(\n generateResponseTableData(method.responses[indexRef.current].headers, indexRef.current)\n )\n }\n }, [method.responses, indexRef.current])\n\n useEffect(() => {\n // prepare tags selection list\n if (method?.tags.length || tags?.length) {\n const convertedStringArray = (method?.tags || [])?.map((item) => ({\n label: capitalize(item),\n value: item,\n }))\n const mergedArray = [\n ...convertedStringArray,\n ...(tags || []).map((item) => ({ label: capitalize(item.name), value: item.name })),\n ]\n\n const filteredArray = mergedArray.filter(\n (value, index, self) => index === self.findIndex((t) => t.value === value.value)\n )\n\n setSelectionTags(filteredArray)\n }\n }, [tags, method])\n\n return (\n <div ref={activeAccordionRef}>\n <Accordion\n expanded={isOpen}\n onChange={() => setIsOpen(!isOpen)}\n className={`${styles.methodAccordion} ${readOnly ? styles.readOnly : ''}`}\n summary={\n <div className={styles.methodSummaryContainer}>\n <div className={styles.methodSummary}>\n <span\n style={{\n backgroundColor: methodColorMapping?.[method?.type]?.color || '#3A6CD1',\n }}\n className={styles.methodLabel}\n >\n {methodColorMapping?.[method?.type]?.label || method?.type}\n </span>\n <span className={styles.methodPath}>{path}</span>\n </div>\n <div\n className={`${styles.methodExpandArrowContainer} ${isOpen ? styles.expanded : ''}`}\n >\n <SVGLoader src={DownArrowIcon} width=\"2rem\" height=\"2rem\" />\n </div>\n </div>\n }\n children={\n <div className={styles.methodAccordionContent}>\n {!readOnly ? (\n <Input\n className={styles.methodDesc}\n label=\"Endpoint Name\"\n required\n placeholder=\"Endpoint name...\"\n value={method?.summary}\n onChange={(value) => {\n value = value || ''\n if (value === '' || regex.ASCII.test(value)) {\n setFieldValue('summary', value)\n }\n }}\n onClear={() => {\n setFieldValue('summary', '')\n }}\n errorMsg={errors?.summary}\n />\n ) : (\n <SimpleLabelValue\n key={'summary'}\n label={'Endpoint Name: '}\n value={method?.summary || '-'}\n />\n )}\n <SelectGroup\n className={styles.methodDesc}\n disabled={readOnly}\n placeholder=\"Select Tags\"\n label=\"Tags\"\n value={method.tags?.map((t) => ({\n label: capitalize(t),\n value: t,\n }))}\n onChange={(item) => {\n setFieldValue(\n 'tags',\n item.map((i) => i.value)\n )\n }}\n options={[\n {\n list: selectionTags,\n },\n ]}\n isMultiple={true}\n withSearch={false}\n clearable={false}\n />\n {!readOnly ? (\n <TextArea\n className={styles.methodDesc}\n label=\"Description\"\n placeholder=\"Describe the method's purpose and functionality...\"\n maxLength={120}\n value={method?.description}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setFieldValue('description', value)\n }}\n />\n ) : (\n <SimpleLabelValue\n key={'description'}\n label={'Description: '}\n value={method?.description || '-'}\n className={styles.multiLineText}\n />\n )}\n <div className={styles.paramsTable}>\n <h4 className={styles.paramsTableBodyHead}>Request Details</h4>\n <ParamterTable\n id=\"paramter-request-table\"\n data={tableRecords}\n headCells={paramsTableHeaders}\n isFormOpen={isFormOpen}\n setIsFormOpen={setIsFormOpen}\n saveNewRow={saveNewRow}\n readOnly={readOnly}\n isRequest={true}\n />\n {method?.type !== 'get' && method?.type !== 'delete' && (\n <Accordion\n expanded={isExpanded.request}\n onChange={() => null}\n className={styles.requestAccordion}\n summary={\n <span className={styles.requestAccordionSummary}>\n <div\n className={styles.requestAccordionSummary_title}\n onClick={() =>\n setIsExpanded((prev) => ({\n ...prev,\n request: !prev.request,\n }))\n }\n >\n <SVGLoader\n className={isExpanded.request ? styles.expanded : ''}\n src={DownArrowIcon}\n width=\"2rem\"\n height=\"2rem\"\n />\n Request\n {method?.type !== 'delete' && <span style={{ color: 'red' }}>*</span>}\n </div>\n </span>\n }\n children={\n <JsonInput\n acceptType=\"JSON\"\n withFooter={!readOnly}\n className={'jsonField'}\n placeholder=\"Enter your request body as a JSON object....\"\n fieldIsDisabled={readOnly}\n value={method?.requestBody?.content?.schema?.properties || '{}'}\n onChange={(value: string) => {\n setFieldValue('requestBody.content.schema.properties', value)\n }}\n onValidation={() => null}\n />\n }\n />\n )}\n </div>\n <div className={styles.paramsTable}>\n <div className={styles.responseHeader}>\n <h4 className={styles.paramsTableBodyHead}>Response Details</h4>\n <SelectGroup\n withSearch={false}\n isMultiple={false}\n clearable={false}\n placeholder=\"200\"\n options={[\n {\n list: httpStatusCodeOptions,\n },\n ]}\n value={selectedStatusCode}\n onChange={(value) => {\n setSelectedStatusCode(value)\n }}\n />\n </div>\n <ParamterTable\n id=\"paramter-response-table\"\n data={tableResponseRecords}\n headCells={paramsTableHeaders}\n isFormOpen={isHeaderFormOpen}\n setIsFormOpen={setIsHeaderFormOpen}\n saveNewRow={saveNewResponseRow}\n readOnly={readOnly}\n isRequest={false}\n />\n <Accordion\n expanded={isExpanded.response}\n onChange={() => null}\n className={styles.responseAccordion}\n summary={\n <span className={styles.responseAccordionSummary}>\n <div\n className={styles.responseAccordionSummary_title}\n onClick={() =>\n setIsExpanded((prev) => ({\n ...prev,\n response: !prev.response,\n }))\n }\n >\n <SVGLoader\n className={isExpanded.response ? styles.expanded : ''}\n src={DownArrowIcon}\n width=\"2rem\"\n height=\"2rem\"\n />\n Response<span style={{ color: 'red' }}>*</span>\n </div>\n </span>\n }\n children={\n <JsonInput\n acceptType=\"JSON\"\n withFooter={!readOnly}\n className={'jsonField'}\n placeholder=\"Enter your response as a JSON object...\"\n fieldIsDisabled={readOnly}\n value={currentResponse?.content?.schema?.properties || '{}'}\n onChange={(value) => {\n const currentResIndex = method.responses.findIndex(\n (res) => res.code === currentResponse.code\n )\n if (currentResIndex !== -1) {\n setFieldValue(\n `responses[${currentResIndex}].content.schema.properties`,\n value\n )\n } else {\n const clonedResponses = structuredClone(method.responses)\n\n clonedResponses.push({\n code: selectedStatusCode.value.toString(),\n content: {\n contentType: 'application/json',\n schema: {\n type: 'object',\n properties: value,\n },\n },\n })\n\n setFieldValue('responses', clonedResponses)\n }\n }}\n onValidation={(valid) => null}\n />\n }\n />\n </div>\n </div>\n }\n />\n <CommonDialog\n status=\"error\"\n content={\n <p\n style={{\n textAlign: 'center',\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: '1.4375rem',\n }}\n className=\"delete-msg-container\"\n >\n Are you sure you want to delete\n <span className=\"plan-name\">\n {' '}\n Parameter <strong>{selectedParamName}</strong>\n </span>\n ?\n </p>\n }\n onSubmit={{\n onClick: confirmDeleteParameter,\n text: 'Delete',\n color: 'error',\n fullWidth: true,\n }}\n onCancel={{\n text: 'Cancel',\n color: 'action',\n fullWidth: true,\n variant: 'outlined',\n }}\n onClose={() => setOpenDeleteDialog(false)}\n open={openDeleteDialog}\n icon={<SVGLoader src={DeleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\n closeIcon={\n <SVGLoader\n src={CloseIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n onClick={() => setOpenDeleteDialog(false)}\n />\n }\n />\n <CommonDialog\n status=\"error\"\n content={\n <p\n style={{\n textAlign: 'center',\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: '1.4375rem',\n }}\n className=\"delete-msg-container\"\n >\n Are you sure you want to delete\n <span className=\"plan-name\">\n {' '}\n Header <strong>{selectedParamName}</strong>\n </span>\n ?\n </p>\n }\n onSubmit={{\n onClick: confirmDeleteHeader,\n text: 'Delete',\n color: 'error',\n fullWidth: true,\n }}\n onCancel={{\n text: 'Cancel',\n color: 'action',\n fullWidth: true,\n variant: 'outlined',\n }}\n onClose={() => setOpenHeaderDeleteDialog(false)}\n open={openHeaderDeleteDialog}\n icon={<SVGLoader src={DeleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\n closeIcon={\n <SVGLoader\n src={CloseIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n onClick={() => setOpenDeleteDialog(false)}\n />\n }\n />\n </div>\n )\n}\n\nexport default MethodsAccordion\n"],"names":["httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","className","styles","statusCodeOptionContainer","children","_jsx","statusCodeOptionCircle","style","backgroundColor","handleStatusColor","value","MethodsAccordion","method","path","setFieldValue","readOnly","tags","isOpen","setIsOpen","errors","isExpanded","setIsExpanded","useState","request","response","isFormOpen","setIsFormOpen","isHeaderFormOpen","setIsHeaderFormOpen","tooltipRefs","setTooltipRefs","tableData","setTableData","openDeleteDialog","setOpenDeleteDialog","openHeaderDeleteDialog","setOpenHeaderDeleteDialog","selectedParamIndex","setSelectedParamIndex","selectedHeaderIndex","setSelectedHeaderIndex","selectedParamName","setSelectedParamName","tableRecords","setTableRecords","tableResponseRecords","setTableResponseRecords","selectionTags","setSelectionTags","selectedStatusCode","setSelectedStatusCode","enumFields","setEnumFields","tooltipEnumRef","setTooltipEnumRef","currentResponseIndex","setCurrentResponseIndex","activeAccordionRef","useRef","currentResponse","responses","find","res","Number","indexRef","onTableChange","key","index","newTableData","item","tIndex","Object","assign","useEffect","current","scrollIntoView","behavior","block","generateResponseTableData","headersObj","responseIndex","keys","data","id","paramName","paramType","capitalize","schemaType","schema","_a","type","_c","_b","toLowerCase","_d","items","_f","_e","_h","_g","required","jsx","_Fragment","Switch","checked","onClick","description","paramDescContainer","Tooltip","allowHTML","disabled","_j","headers","length","content","padding","arrowWithBorder","placement","delay","onShow","hide","alignSelf","substring","trigger","onCreate","instance","prev","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","maxLength","onChange","regex","ASCII","test","Button","editDescTooltipContent_btn","variant","size","trim","_k","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteResponseHeader","enum","_m","_o","join","isComplex","enumList","enumVal","enumIndex","Input","clearable","jsxs","PlusSquare","some","val","PlusIcon","handleDeleteClick","name","in","parameters","_l","_p","_s","_q","_w","_u","_v","_y","_x","_z","_1","_0","_2","_4","_3","_6","_5","_9","_8","_7","_index","filter","_11","_10","_14","_12","_13","_17","_16","_15","_18","_19","_22","_20","_25","_24","_23","findIndex","_r","toString","clonedResponses","structuredClone","push","contentType","filteredArray","self","t","ref","Accordion","expanded","methodAccordion","summary","methodSummaryContainer","methodSummary","methodColorMapping","methodLabel","methodPath","methodExpandArrowContainer","DownArrowIcon","methodAccordionContent","SimpleLabelValue","methodDesc","onClear","errorMsg","SelectGroup","i","options","list","isMultiple","withSearch","multiLineText","paramsTable","paramsTableBodyHead","ParamterTable","headCells","paramsTableHeaders","saveNewRow","values","isRequest","requestAccordion","requestAccordionSummary","requestAccordionSummary_title","JsonInput","acceptType","withFooter","fieldIsDisabled","requestBody","properties","onValidation","responseHeader","responseAccordion","responseAccordionSummary","responseAccordionSummary_title","currentResIndex","valid","CommonDialog","status","textAlign","fontWeight","fontSize","lineHeight","onSubmit","_","text","fullWidth","onCancel","onClose","open","icon","DeleteOutlinedIcon","closeIcon","CloseIcon","fromEntries","entries"],"mappings":"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"}