@digi-frontend/dgate-api-documentation 1.4.7 → 1.4.91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index4.js +1 -1
- package/dist/_virtual/index5.js +1 -1
- package/dist/_virtual/index6.js +1 -1
- package/dist/_virtual/index7.js +1 -1
- package/dist/node_modules/toposort/index.js +1 -1
- package/dist/node_modules/yup/index.esm.js +1 -1
- package/dist/src/components/InfoForm/InfoForm.js +1 -1
- package/dist/src/components/InfoForm/InfoForm.js.map +1 -1
- package/dist/src/components/InfoForm/InfoForm.module.scss.js +1 -1
- package/dist/src/components/JsonInput/JsonInput.js +1 -1
- package/dist/src/components/JsonInput/JsonInput.js.map +1 -1
- package/dist/src/components/JsonInput/style.module.scss.js +1 -1
- package/dist/src/components/LivePreview/LivePreview.js +1 -1
- package/dist/src/components/LivePreview/LivePreview.js.map +1 -1
- package/dist/src/components/LivePreview/LivePreview.module.scss.js +1 -1
- package/dist/src/components/MethodAccordion/MethodAccordion.js +1 -1
- package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
- package/dist/src/components/MethodAccordion/MethodAccordion.module.scss.js +1 -1
- package/dist/src/components/SVGLoader/SVGLoader.js +1 -1
- package/dist/src/components/SVGLoader/SVGLoader.js.map +1 -1
- package/dist/src/components/SectionHead/SectionHead.js +1 -1
- package/dist/src/components/SectionHead/SectionHead.js.map +1 -1
- package/dist/src/components/SimpleLabelValue/SimpleLabelValue.js +1 -1
- package/dist/src/components/SimpleLabelValue/SimpleLabelValue.js.map +1 -1
- package/dist/src/components/Tooltip/Tooltip.js +1 -1
- package/dist/src/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/src/components/dialog/index.js +1 -1
- package/dist/src/components/dialog/index.js.map +1 -1
- package/dist/src/components/table/table.js +1 -1
- package/dist/src/components/table/table.js.map +1 -1
- package/dist/src/components/table/tags-table.js +1 -1
- package/dist/src/components/table/tags-table.js.map +1 -1
- package/dist/src/context/SectionToggleContext.js +1 -1
- package/dist/src/context/SectionToggleContext.js.map +1 -1
- package/dist/src/layout/docsComponents/Codebox/Codebox.js +1 -1
- package/dist/src/layout/docsComponents/Codebox/Codebox.js.map +1 -1
- package/dist/src/layout/docsComponents/Codebox/style.module.scss.js +1 -1
- package/dist/src/layout/docsComponents/DocsAside/DocsAside.js +1 -1
- package/dist/src/layout/docsComponents/DocsAside/DocsAside.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsAside/style.module.scss.js +1 -1
- package/dist/src/layout/docsComponents/DocsContent/DocsContent.js +1 -1
- package/dist/src/layout/docsComponents/DocsContent/DocsContent.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsContent/EndpointPage/index.js +1 -1
- package/dist/src/layout/docsComponents/DocsContent/EndpointPage/index.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsContent/OverviewPage/index.js +1 -1
- package/dist/src/layout/docsComponents/DocsContent/OverviewPage/index.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js +1 -1
- package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.module.scss.js +1 -1
- package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js +1 -1
- package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js.map +1 -1
- package/dist/src/layout/docsComponents/index.js +1 -1
- package/dist/src/layout/docsComponents/index.js.map +1 -1
- package/dist/src/layout/docsLayout.js +1 -1
- package/dist/src/layout/docsLayout.js.map +1 -1
- package/dist/src/layout/layout.js +1 -1
- package/dist/src/layout/layout.js.map +1 -1
- package/dist/types/components/Chips/Chips.d.ts +2 -1
- package/dist/types/components/InfoForm/InfoForm.d.ts +1 -1
- package/dist/types/components/JsonInput/JsonInput.d.ts +2 -1
- package/dist/types/components/MethodAccordion/MethodAccordion.d.ts +1 -1
- package/dist/types/components/dialog/index.d.ts +2 -1
- package/dist/types/components/table/table.d.ts +2 -1
- package/dist/types/components/table/tags-table.d.ts +1 -1
- package/dist/types/context/SectionToggleContext.d.ts +2 -2
- package/dist/types/index.d.ts +2 -27
- package/dist/types/layout/docsComponents/Codebox/Codebox.d.ts +2 -1
- package/dist/types/layout/docsComponents/DocsAside/DocsAside.d.ts +2 -1
- package/dist/types/layout/docsComponents/DocsContent/DocsContent.d.ts +1 -1
- package/dist/types/layout/docsComponents/DocsContent/EndpointPage/index.d.ts +1 -1
- package/dist/types/layout/docsComponents/DocsContent/OverviewPage/index.d.ts +1 -1
- package/dist/types/layout/docsComponents/DocsHeader/DocsHeader.d.ts +2 -1
- package/dist/types/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.d.ts +1 -1
- package/package.json +6 -2
- package/rollup.config.js +39 -4
- package/tsconfig.json +0 -1
|
@@ -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","React","createElement","Tooltip","key","allowHTML","disabled","_a","content","style","padding","arrowWithBorder","placement","type","delay","className","styles","paramDescContainer","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","children","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,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
var e={livePreviewContainer:"LivePreview-module_livePreviewContainer__7S1Mr",titleContainer:"LivePreview-module_titleContainer__vMDr-",apiName:"LivePreview-module_apiName__WB7Tj",livePreviewChip:"LivePreview-module_livePreviewChip__88LXD",description_preview:"LivePreview-module_description_preview__2lliM",requestAccordion:"LivePreview-module_requestAccordion__VIG5P",responseAccordion:"LivePreview-module_responseAccordion__GMGGS",accordionContent:"LivePreview-module_accordionContent__PX9CG",requestAccordionSummary:"LivePreview-module_requestAccordionSummary__RYARp",responseAccordionSummary:"LivePreview-module_responseAccordionSummary__OgBYZ",responseAccordionSummary_title:"LivePreview-module_responseAccordionSummary_title__wNgLK",requestAccordionSummary_title:"LivePreview-module_requestAccordionSummary_title__XDfDn",expanded:"LivePreview-module_expanded__afexX",statusCodeOptionContainer:"LivePreview-module_statusCodeOptionContainer__fYcR5",statusCodeOptionCircle:"LivePreview-module_statusCodeOptionCircle__hZocT"};export{e as default};
|
|
2
2
|
//# sourceMappingURL=LivePreview.module.scss.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as s,useRef as n,useEffect as o}from"react";import{d as i}from"../../../_virtual/index.js";import l from"../SVGLoader/SVGLoader.js";import r from"../../assets/icons/DownArrow.svg.js";import t from"../../assets/icons/CloseIcon.svg.js";import a from"../../assets/icons/DeleteIcon.svg.js";import d from"../../assets/icons/EditIcon.svg.js";import c from"../../assets/icons/DeleteOutlinedIcon.svg.js";import m from"../../assets/icons/Plus.svg.js";import u from"../../assets/icons/PlusSquare.svg.js";import{httpStatusCodes as p,methodColorMapping as v,paramsTableHeaders as h}from"../../constants/index.js";import j from"../Tooltip/Tooltip.js";import x from"../SimpleLabelValue/SimpleLabelValue.js";import{handleStatusColor as g,capitalize as y}from"../../helpers/methodAccordion.helper.js";import b from"../table/table.js";import C from"../dialog/index.js";import N from"../JsonInput/JsonInput.js";import f from"./MethodAccordion.module.scss.js";import w from"../../constants/regex.js";const D=p.map(s=>({label:e.jsxs("div",{className:f.statusCodeOptionContainer,children:[e.jsx("div",{className:f.statusCodeOptionCircle,style:{backgroundColor:g(s)}}),e.jsx("span",{children:s})]}),value:s})),T=({method:p,path:g,setFieldValue:T,readOnly:I,tags:S,isOpen:$,setIsOpen:A,errors:k})=>{var B,q,O,E,L,_,F,W;const[H,R]=s({request:!1,response:!1,method:!1}),[V,M]=s(!1),[P,z]=s(!1),[J,G]=s({}),[X,K]=s([]);s([]);const[Q,U]=s(!1),[Y,Z]=s(!1),[ee,se]=s(null),[ne,oe]=s(null),[ie,le]=s(null),[re,te]=s(),[ae,de]=s([]),[ce,me]=s([]),[ue,pe]=s(D[4]),[ve,he]=s([]),[je,xe]=s(null),[ge,ye]=s(-1),be=n(null),Ce=p.responses.find(e=>Number(e.code)===ue.value)||"{}",Ne=n(-1),fe=(e,s,n)=>{const o=X.map((o,i)=>i===n?Object.assign(Object.assign({},o),{[e]:s}):o);K(o)};o(()=>{$&&be.current&&be.current.scrollIntoView({behavior:"smooth",block:"start"})},[$]);const we=(s,n)=>Object.keys(s).map((o,r)=>{var t,c,v,h,x,g,b,C,N,D,S,$,A;const k=s[o];return{id:`header_${r}`,paramName:o,paramType:y("header"),schemaType:`${y(null===(t=null==k?void 0:k.schema)||void 0===t?void 0:t.type)||""} ${"array"==(null===(v=null===(c=null==k?void 0:k.schema)||void 0===c?void 0:c.type)||void 0===v?void 0:v.toLowerCase())&&(null===(h=null==k?void 0:k.schema)||void 0===h?void 0:h.items)&&(null===(g=null===(x=null==k?void 0:k.schema)||void 0===x?void 0:x.items)||void 0===g?void 0:g.type)?` _ ${y(null===(C=null===(b=null==k?void 0:k.schema)||void 0===b?void 0:b.items)||void 0===C?void 0:C.type)}`:""}`,required:e.jsx(e.Fragment,{children:I?k.required?"True":"False":e.jsx(i.Switch,{checked:k.required,onClick:()=>{if(I)return null;T(`responses[${n}].headers[${o}].required`,!k.required)}})}),description:e.jsxs("div",{className:f.paramDescContainer,children:[e.jsx(j,{allowHTML:!0,disabled:(null===(N=p.responses[n].headers[o].description)||void 0===N?void 0:N.length)<=12,content:e.jsx("div",{style:{padding:"0.625rem"},children:p.responses[n].headers[o].description}),arrowWithBorder:!0,placement:"bottom-end",type:"function",delay:[0,0],onShow:()=>{var e;return null===(e=J[r])||void 0===e?void 0:e.hide()},children:e.jsxs("p",{style:{alignSelf:"center"},children:[p.responses[n].headers[o].description?p.responses[n].headers[o].description.substring(0,12):I&&"-",p.responses[n].headers[o].description&&p.responses[n].headers[o].description.length>12?"...":""]})},`${r}-description`),!I&&e.jsx(j,{allowHTML:!0,arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>G(s=>Object.assign(Object.assign({},s),{[r]:e})),content:e.jsxs("div",{className:f.editDescTooltipContent,children:[e.jsx("p",{className:f.editDescTooltipContent_header,children:"Description"}),e.jsx(i.TextArea,{placeholder:"Describe parameter...",value:k.description,disabled:I,maxLength:120,onChange:e=>{(""===e||w.ASCII.test(e))&&T(`responses[${Ne.current}].headers[${o}].description`,e)}}),!I&&e.jsx(i.Button,{className:f.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var e,s;T(`responses[${n}].headers[${o}].description`,null===(e=k.description)||void 0===e?void 0:e.trim()),null===(s=J[r])||void 0===s||s.hide()},disabled:!(null===(D=k.description)||void 0===D?void 0:D.trim()),children:"Apply"})]}),children:I||(null===(S=p.responses[n].headers[o].description)||void 0===S?void 0:S.length)>0?e.jsx(i.Button,{className:f.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(l,{src:d,width:"1.5rem",height:"1.5rem"})}):e.jsxs(i.Button,{className:f.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(l,{src:d,width:"1.5rem",height:"1.5rem"}),children:[I?"View ":"Add "," Description"]})},`${r}-add-edit-description`),!I&&e.jsx("div",{className:f.paramDescContainer_separator}),!I&&e.jsx(i.Button,{className:f.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(l,{src:a,width:"1.125rem",height:"1.125rem"}),onClick:()=>Te(r,o)})]}),enum:e.jsx(e.Fragment,{children:I?e.jsx("span",{className:"enumText",children:null===(A=null===($=null==k?void 0:k.schema)||void 0===$?void 0:$.enum)||void 0===A?void 0:A.join("/")}):e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:(()=>{var s,n,r;const t=null===(n=null===(s=null==p?void 0:p.responses[ge])||void 0===s?void 0:s.headers[o])||void 0===n?void 0:n.schema,a=null===(r=null==t?void 0:t.type)||void 0===r?void 0:r.toLowerCase(),d="array"===a||"object"===a,c=(null==t?void 0:t.enum)||[];return!t||d?"-":e.jsx(j,{disabled:d,arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>xe(e),content:e.jsxs("div",{className:f.editDescTooltipContent,children:[e.jsx("p",{className:f.editDescTooltipContent_header,children:"Enum"}),c.map((s,n)=>e.jsx(i.Input,{className:"methodDescForEnum",required:!0,clearable:!1,placeholder:"Enter Enum value...",value:s,onChange:e=>{T(`responses[${ge}].headers["${o}"].schema.enum[${n}]`,e)}},n)),e.jsxs("p",{className:"addEnumButton",onClick:()=>{T(`responses[${ge}].headers["${o}"].schema.enum`,[...c,""])},children:[e.jsx(l,{src:u}),"Add New Enum"]}),!I&&e.jsx(i.Button,{className:f.editDescTooltipContent_btn,variant:"outlined",size:"small",type:"button",onClick:()=>{T(`responses[${ge}].headers["${o}"].schema.enum`,[...c]),he([]),null==je||je.hide()},disabled:0===c.length||c.some(e=>!e),children:"Apply"})]}),children:c.length>0?e.jsx("span",{className:"enumText",children:c.join("/")}):e.jsx(i.Button,{className:f.editDescBtn,id:"EnumButton",variant:"link",color:"action",endIcon:e.jsx(l,{id:"enumIcon",src:m,width:"1.5rem",height:"1.5rem"}),children:"Add"})})})()})})}}),De=(e,s)=>{se(e),le(s),U(!0)},Te=(e,s)=>{oe(e),le(s),Z(!0)};return o(()=>{var s;te(null==(s=X)?void 0:s.map((s,n)=>{var o,r,t,c,v,h,x,g,b,C,N,D,S,$,A,k,B,q,O,E,L,_,F,W,H,R,V,M,P,z,X,K,Q,U,Y,Z,ee,se,ne,oe,ie,le,re,te,ae,de,ce,me,ue;return{id:n,paramName:s.name,paramType:y(s.in),schemaType:`${y(null===(o=null==s?void 0:s.schema)||void 0===o?void 0:o.type)||""} ${"array"==(null===(t=null===(r=null==s?void 0:s.schema)||void 0===r?void 0:r.type)||void 0===t?void 0:t.toLowerCase())&&(null===(c=null==s?void 0:s.schema)||void 0===c?void 0:c.items)&&(null===(h=null===(v=null==s?void 0:s.schema)||void 0===v?void 0:v.items)||void 0===h?void 0:h.type)?` _ ${y(null===(g=null===(x=null==s?void 0:s.schema)||void 0===x?void 0:x.items)||void 0===g?void 0:g.type)}`:""}`,required:e.jsx(e.Fragment,{children:I?s.required?"True":"False":e.jsx(i.Switch,{checked:s.required,onClick:()=>{if(I)return null;fe("required",!s.required,n),T(`parameters[${n}][required]`,!s.required)}})}),description:e.jsxs("div",{className:f.paramDescContainer,children:[e.jsx(j,{allowHTML:!0,disabled:(null===(b=p.parameters[n].description)||void 0===b?void 0:b.length)<=12,content:e.jsx("div",{style:{padding:"0.625rem"},children:p.parameters[n].description}),arrowWithBorder:!0,placement:"bottom-end",type:"function",delay:[0,0],onShow:()=>{var e;return null===(e=J[n])||void 0===e?void 0:e.hide()},children:e.jsxs("p",{style:{alignSelf:"center"},children:[p.parameters[n].description?p.parameters[n].description.substring(0,12):I&&"-",p.parameters[n].description&&p.parameters[n].description.length>12?"...":""]})},`${n}-description`),!I&&e.jsx(j,{allowHTML:!0,arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>G(s=>Object.assign(Object.assign({},s),{[n]:e})),content:e.jsxs("div",{className:f.editDescTooltipContent,children:[e.jsx("p",{className:f.editDescTooltipContent_header,children:"Description"}),e.jsx(i.TextArea,{placeholder:"Describe parameter...",value:s.description,disabled:I,maxLength:120,onChange:e=>{(""===e||w.ASCII.test(e))&&fe("description",e,n)}}),!I&&e.jsx(i.Button,{className:f.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var e,o;T(`parameters[${n}].description`,null===(e=s.description)||void 0===e?void 0:e.trim()),null===(o=J[n])||void 0===o||o.hide()},disabled:!(null===(C=s.description)||void 0===C?void 0:C.trim()),children:"Apply"})]}),children:I||(null===(N=p.parameters[n].description)||void 0===N?void 0:N.length)>0?e.jsx(i.Button,{className:f.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(l,{src:d,width:"1.5rem",height:"1.5rem"})}):e.jsxs(i.Button,{className:f.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(l,{src:d,width:"1.5rem",height:"1.5rem"}),children:[I?"View ":"Add "," Description"]})},`${n}-add-edit-description`),!I&&e.jsx("div",{className:f.paramDescContainer_separator}),!I&&e.jsx(i.Button,{className:f.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(l,{src:a,width:"1.125rem",height:"1.125rem"}),onClick:()=>De(n,s.name)})]}),enum:e.jsx(e.Fragment,{children:I?e.jsx("span",{className:"enumText",children:null===(S=null===(D=null==s?void 0:s.schema)||void 0===D?void 0:D.enum)||void 0===S?void 0:S.join("/")}):e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[(null===($=p.parameters[n])||void 0===$?void 0:$.schema)&&"array"!=(null===(B=null===(k=null===(A=p.parameters[n])||void 0===A?void 0:A.schema)||void 0===k?void 0:k.type)||void 0===B?void 0:B.toLowerCase())&&"object"!=(null===(E=null===(O=null===(q=p.parameters[n])||void 0===q?void 0:q.schema)||void 0===O?void 0:O.type)||void 0===E?void 0:E.toLowerCase())?e.jsx(j,{disabled:"array"==(null===(F=null===(_=null===(L=p.parameters[n])||void 0===L?void 0:L.schema)||void 0===_?void 0:_.type)||void 0===F?void 0:F.toLowerCase())||"object"==(null===(R=null===(H=null===(W=p.parameters[n])||void 0===W?void 0:W.schema)||void 0===H?void 0:H.type)||void 0===R?void 0:R.toLowerCase()),arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>xe(e),content:e.jsxs("div",{className:f.editDescTooltipContent,children:[e.jsx("p",{className:f.editDescTooltipContent_header,children:"Enum"}),!!(null===(M=null===(V=p.parameters[n])||void 0===V?void 0:V.schema)||void 0===M?void 0:M.enum)&&!!(null===(z=null===(P=p.parameters[n])||void 0===P?void 0:P.schema)||void 0===z?void 0:z.enum.length)&&(null===(Q=null===(K=null===(X=p.parameters[n])||void 0===X?void 0:X.schema)||void 0===K?void 0:K.enum)||void 0===Q?void 0:Q.map((s,o)=>e.jsx(i.Input,{className:"methodDescForEnum",required:!0,clearable:!1,placeholder:"Enter Enum value...",value:s,onChange:e=>{T(`parameters[${n}].schema.enum[${o}]`,e)}},n))),e.jsxs("p",{className:"addEnumButton",onClick:()=>{var e,s;T(`parameters[${n}].schema.enum`,[...null===(s=null===(e=p.parameters[n])||void 0===e?void 0:e.schema)||void 0===s?void 0:s.enum,""])},children:[e.jsx(l,{src:u}),"Add New Enum"]}),!I&&e.jsx(i.Button,{className:f.editDescTooltipContent_btn,variant:"outlined",size:"small",type:"button",onClick:()=>{T(`parameters[${n}].schema.enum`,[...p.parameters[n].schema.enum]),he([]),null==je||je.hide()},disabled:ve.length>0&&(null==ve?void 0:ve.filter(e=>!e).length)||(null===(Y=null===(U=null==p?void 0:p.parameters[n])||void 0===U?void 0:U.schema)||void 0===Y?void 0:Y.enum)&&(null===(se=null===(ee=null===(Z=null==p?void 0:p.parameters[n])||void 0===Z?void 0:Z.schema)||void 0===ee?void 0:ee.enum)||void 0===se?void 0:se.length)>0&&(null===(ie=null===(oe=null===(ne=null==p?void 0:p.parameters[n])||void 0===ne?void 0:ne.schema)||void 0===oe?void 0:oe.enum)||void 0===ie?void 0:ie.filter(e=>!e).length),children:"Apply"})]}),children:(null===(re=null===(le=p.parameters[n])||void 0===le?void 0:le.schema)||void 0===re?void 0:re.enum)&&(null===(de=null===(ae=null===(te=p.parameters[n])||void 0===te?void 0:te.schema)||void 0===ae?void 0:ae.enum)||void 0===de?void 0:de.length)>0?e.jsx("span",{className:"enumText",children:null===(ue=null===(me=null===(ce=p.parameters[n])||void 0===ce?void 0:ce.schema)||void 0===me?void 0:me.enum)||void 0===ue?void 0:ue.join("/")}):e.jsx(i.Button,{className:f.editDescBtn,id:"EnumButton",variant:"link",color:"action",endIcon:e.jsx(l,{id:"enumIcon",src:m,width:"1.5rem",height:"1.5rem"}),children:"Add"})}):"-"," "]})})}}))},[X]),o(()=>{(null==p?void 0:p.parameters)&&K(p.parameters)},[p,g]),o(()=>{if(ue&&p.responses){let e=p.responses.findIndex(e=>e.code.toString()==ue.value.toString());if(e<0){const s=structuredClone(p.responses);s.push({code:ue.value.toString(),content:{contentType:"application/json",schema:{}},headers:{}}),T&&(T("responses",s),e=0)}ye(e),Ne.current=e,e>=0&&de(we(p.responses[e].headers,e))}},[ue,p.responses,T]),o(()=>{Ne.current&&Ne.current>-1&&de(we(p.responses[Ne.current].headers,Ne.current))},[p.responses,Ne.current]),o(()=>{var e;if((null==p?void 0:p.tags.length)||(null==S?void 0:S.length)){const s=[...null===(e=(null==p?void 0:p.tags)||[])||void 0===e?void 0:e.map(e=>({label:y(e),value:e})),...(S||[]).map(e=>({label:y(e.name),value:e.name}))].filter((e,s,n)=>s===n.findIndex(s=>s.value===e.value));me(s)}},[S,p]),e.jsxs("div",{ref:be,children:[e.jsx(i.Accordion,{expanded:$,onChange:()=>A(!$),className:`${f.methodAccordion} ${I?f.readOnly:""}`,summary:e.jsxs("div",{className:f.methodSummaryContainer,children:[e.jsxs("div",{className:f.methodSummary,children:[e.jsx("span",{style:{backgroundColor:(null===(B=null==v?void 0:v[null==p?void 0:p.type])||void 0===B?void 0:B.color)||"#3A6CD1"},className:f.methodLabel,children:(null===(q=null==v?void 0:v[null==p?void 0:p.type])||void 0===q?void 0:q.label)||(null==p?void 0:p.type)}),e.jsx("span",{className:f.methodPath,children:g})]}),e.jsx("div",{className:`${f.methodExpandArrowContainer} ${$?f.expanded:""}`,children:e.jsx(l,{src:r,width:"2rem",height:"2rem"})})]}),children:e.jsxs("div",{className:f.methodAccordionContent,children:[I?e.jsx(x,{label:"Endpoint Name: ",value:(null==p?void 0:p.summary)||"-"},"summary"):e.jsx(i.Input,{className:f.methodDesc,label:"Endpoint Name",required:!0,placeholder:"Endpoint name...",value:null==p?void 0:p.summary,onChange:e=>{(""===(e=e||"")||w.ASCII.test(e))&&T("summary",e)},onClear:()=>{T("summary","")},errorMsg:null==k?void 0:k.summary}),e.jsx(i.SelectGroup,{className:f.methodDesc,disabled:I,placeholder:"Select Tags",label:"Tags",value:null===(O=p.tags)||void 0===O?void 0:O.map(e=>({label:y(e),value:e})),onChange:e=>{T("tags",e.map(e=>e.value))},options:[{list:ce}],isMultiple:!0,withSearch:!1,clearable:!1}),I?e.jsx(x,{label:"Description: ",value:(null==p?void 0:p.description)||"-",className:f.multiLineText},"description"):e.jsx(i.TextArea,{className:f.methodDesc,label:"Description",placeholder:"Describe the method's purpose and functionality...",maxLength:120,value:null==p?void 0:p.description,onChange:e=>{(""===e||w.ASCII.test(e))&&T("description",e)}}),e.jsxs("div",{className:f.paramsTable,children:[e.jsx("h4",{className:f.paramsTableBodyHead,children:"Request Details"}),e.jsx(b,{id:"paramter-request-table",data:re,headCells:h,isFormOpen:V,setIsFormOpen:M,saveNewRow:e=>{K([...X,e]),T("parameters",[...p.parameters,e])},readOnly:I,isRequest:!0}),"get"!==(null==p?void 0:p.type)&&"delete"!==(null==p?void 0:p.type)&&e.jsx(i.Accordion,{expanded:H.request,onChange:()=>null,className:f.requestAccordion,summary:e.jsx("span",{className:f.requestAccordionSummary,children:e.jsxs("div",{className:f.requestAccordionSummary_title,onClick:()=>R(e=>Object.assign(Object.assign({},e),{request:!e.request})),children:[e.jsx(l,{className:H.request?f.expanded:"",src:r,width:"2rem",height:"2rem"}),"Request","delete"!==(null==p?void 0:p.type)&&e.jsx("span",{style:{color:"red"},children:"*"})]})}),children:e.jsx(N,{acceptType:"JSON",withFooter:!I,className:"jsonField",placeholder:"Enter your request body as a JSON object....",fieldIsDisabled:I,value:(null===(_=null===(L=null===(E=null==p?void 0:p.requestBody)||void 0===E?void 0:E.content)||void 0===L?void 0:L.schema)||void 0===_?void 0:_.properties)||"{}",onChange:e=>{T("requestBody.content.schema.properties",e)},onValidation:()=>null})})]}),e.jsxs("div",{className:f.paramsTable,children:[e.jsxs("div",{className:f.responseHeader,children:[e.jsx("h4",{className:f.paramsTableBodyHead,children:"Response Details"}),e.jsx(i.SelectGroup,{withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:D}],value:ue,onChange:e=>{pe(e)}})]}),e.jsx(b,{id:"paramter-response-table",data:ae,headCells:h,isFormOpen:P,setIsFormOpen:z,saveNewRow:e=>{T(`responses[${Ne.current}].headers[${e.name}]`,e)},readOnly:I,isRequest:!1}),e.jsx(i.Accordion,{expanded:H.response,onChange:()=>null,className:f.responseAccordion,summary:e.jsx("span",{className:f.responseAccordionSummary,children:e.jsxs("div",{className:f.responseAccordionSummary_title,onClick:()=>R(e=>Object.assign(Object.assign({},e),{response:!e.response})),children:[e.jsx(l,{className:H.response?f.expanded:"",src:r,width:"2rem",height:"2rem"}),"Response",e.jsx("span",{style:{color:"red"},children:"*"})]})}),children:e.jsx(N,{acceptType:"JSON",withFooter:!I,className:"jsonField",placeholder:"Enter your response as a JSON object...",fieldIsDisabled:I,value:(null===(W=null===(F=null==Ce?void 0:Ce.content)||void 0===F?void 0:F.schema)||void 0===W?void 0:W.properties)||"{}",onChange:e=>{const s=p.responses.findIndex(e=>e.code===Ce.code);if(-1!==s)T(`responses[${s}].content.schema.properties`,e);else{const s=structuredClone(p.responses);s.push({code:ue.value.toString(),content:{contentType:"application/json",schema:{type:"object",properties:e}}}),T("responses",s)}},onValidation:e=>null})})]})]})}),e.jsx(C,{status:"error",content:e.jsxs("p",{style:{textAlign:"center",fontWeight:400,fontSize:"1rem",lineHeight:"1.4375rem"},className:"delete-msg-container",children:["Are you sure you want to delete",e.jsxs("span",{className:"plan-name",children:[" ","Parameter ",e.jsx("strong",{children:ie})]}),"?"]}),onSubmit:{onClick:()=>{var e;null!==ee&&(K(e=>e.filter((e,s)=>s!==ee)),T("parameters",null===(e=null==p?void 0:p.parameters)||void 0===e?void 0:e.filter((e,s)=>s!==ee))),U(!1),se(null)},text:"Delete",color:"error",fullWidth:!0},onCancel:{text:"Cancel",color:"action",fullWidth:!0,variant:"outlined"},onClose:()=>U(!1),open:Q,icon:e.jsx(l,{src:c,width:"4.0625rem",height:"4.0625rem"}),closeIcon:e.jsx(l,{src:t,width:"1.5rem",height:"1.5rem",onClick:()=>U(!1)})}),e.jsx(C,{status:"error",content:e.jsxs("p",{style:{textAlign:"center",fontWeight:400,fontSize:"1rem",lineHeight:"1.4375rem"},className:"delete-msg-container",children:["Are you sure you want to delete",e.jsxs("span",{className:"plan-name",children:[" ","Header ",e.jsx("strong",{children:ie})]}),"?"]}),onSubmit:{onClick:()=>{if(null!==oe){let e=Object.fromEntries(Object.entries(p.responses[Ne.current].headers).filter(([e])=>e!=ie));T(`responses[${Ne.current}].headers`,e)}Z(!1),oe(null)},text:"Delete",color:"error",fullWidth:!0},onCancel:{text:"Cancel",color:"action",fullWidth:!0,variant:"outlined"},onClose:()=>Z(!1),open:Y,icon:e.jsx(l,{src:c,width:"4.0625rem",height:"4.0625rem"}),closeIcon:e.jsx(l,{src:t,width:"1.5rem",height:"1.5rem",onClick:()=>U(!1)})})]})};export{T as default};
|
|
1
|
+
import{useState as e,useRef as t,useEffect as a}from"react";import{d as n}from"../../../_virtual/index.js";import l from"../SVGLoader/SVGLoader.js";import r from"../../assets/icons/DownArrow.svg.js";import o from"../../assets/icons/CloseIcon.svg.js";import s from"../../assets/icons/DeleteIcon.svg.js";import i from"../../assets/icons/EditIcon.svg.js";import c from"../../assets/icons/DeleteOutlinedIcon.svg.js";import d from"../../assets/icons/Plus.svg.js";import m from"../../assets/icons/PlusSquare.svg.js";import{httpStatusCodes as u,methodColorMapping as p,paramsTableHeaders as v}from"../../constants/index.js";import h from"../Tooltip/Tooltip.js";import E from"../SimpleLabelValue/SimpleLabelValue.js";import{handleStatusColor as R,capitalize as g}from"../../helpers/methodAccordion.helper.js";import y from"../table/table.js";import b from"../dialog/index.js";import C from"../JsonInput/JsonInput.js";import N from"./MethodAccordion.module.scss.js";import f from"../../constants/regex.js";const w=u.map(e=>({label:React.createElement("div",{className:N.statusCodeOptionContainer},React.createElement("div",{className:N.statusCodeOptionCircle,style:{backgroundColor:R(e)}}),React.createElement("span",null,e)),value:e})),D=({method:u,path:R,setFieldValue:D,readOnly:T,tags:j,isOpen:k,setIsOpen:I,errors:S})=>{var $,A,B,q,x,O,L,_;const[F,W]=e({request:!1,response:!1,method:!1}),[H,V]=e(!1),[M,P]=e(!1),[z,J]=e({}),[G,X]=e([]);e([]);const[K,Q]=e(!1),[U,Y]=e(!1),[Z,ee]=e(null),[te,ae]=e(null),[ne,le]=e(null),[re,oe]=e(),[se,ie]=e([]),[ce,de]=e([]),[me,ue]=e(w[4]),[pe,ve]=e([]),[he,Ee]=e(null),[Re,ge]=e(-1),ye=t(null),be=u.responses.find(e=>Number(e.code)===me.value)||"{}",Ce=t(-1),Ne=(e,t,a)=>{const n=G.map((n,l)=>l===a?Object.assign(Object.assign({},n),{[e]:t}):n);X(n)};a(()=>{k&&ye.current&&ye.current.scrollIntoView({behavior:"smooth",block:"start"})},[k]);const fe=(e,t)=>Object.keys(e).map((a,r)=>{var o,c,p,v,E,R,y,b,C,w,j,k,I;const S=e[a];return{id:`header_${r}`,paramName:a,paramType:g("header"),schemaType:`${g(null===(o=null==S?void 0:S.schema)||void 0===o?void 0:o.type)||""} ${"array"==(null===(p=null===(c=null==S?void 0:S.schema)||void 0===c?void 0:c.type)||void 0===p?void 0:p.toLowerCase())&&(null===(v=null==S?void 0:S.schema)||void 0===v?void 0:v.items)&&(null===(R=null===(E=null==S?void 0:S.schema)||void 0===E?void 0:E.items)||void 0===R?void 0:R.type)?` _ ${g(null===(b=null===(y=null==S?void 0:S.schema)||void 0===y?void 0:y.items)||void 0===b?void 0:b.type)}`:""}`,required:React.createElement(React.Fragment,null,T?S.required?"True":"False":React.createElement(n.Switch,{checked:S.required,onClick:()=>{if(T)return null;D(`responses[${t}].headers[${a}].required`,!S.required)}})),description:React.createElement("div",{className:N.paramDescContainer},React.createElement(h,{key:`${r}-description`,allowHTML:!0,disabled:(null===(C=u.responses[t].headers[a].description)||void 0===C?void 0:C.length)<=12,content:React.createElement("div",{style:{padding:"0.625rem"}},u.responses[t].headers[a].description),arrowWithBorder:!0,placement:"bottom-end",type:"function",delay:[0,0],onShow:()=>{var e;return null===(e=z[r])||void 0===e?void 0:e.hide()}},React.createElement("p",{style:{alignSelf:"center"}},u.responses[t].headers[a].description?u.responses[t].headers[a].description.substring(0,12):T&&"-",u.responses[t].headers[a].description&&u.responses[t].headers[a].description.length>12?"...":"")),!T&&React.createElement(h,{key:`${r}-add-edit-description`,allowHTML:!0,arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>J(t=>Object.assign(Object.assign({},t),{[r]:e})),content:React.createElement("div",{className:N.editDescTooltipContent},React.createElement("p",{className:N.editDescTooltipContent_header},"Description"),React.createElement(n.TextArea,{placeholder:"Describe parameter...",value:S.description,disabled:T,maxLength:120,onChange:e=>{(""===e||f.ASCII.test(e))&&D(`responses[${Ce.current}].headers[${a}].description`,e)}}),!T&&React.createElement(n.Button,{className:N.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var e,n;D(`responses[${t}].headers[${a}].description`,null===(e=S.description)||void 0===e?void 0:e.trim()),null===(n=z[r])||void 0===n||n.hide()},disabled:!(null===(w=S.description)||void 0===w?void 0:w.trim())},"Apply"))},T||(null===(j=u.responses[t].headers[a].description)||void 0===j?void 0:j.length)>0?React.createElement(n.Button,{className:N.editDescBtn,variant:"link",color:"action",endIcon:React.createElement(l,{src:i,width:"1.5rem",height:"1.5rem"})}):React.createElement(n.Button,{className:N.editDescBtn,variant:"link",color:"action",endIcon:React.createElement(l,{src:i,width:"1.5rem",height:"1.5rem"})},T?"View ":"Add "," Description")),!T&&React.createElement("div",{className:N.paramDescContainer_separator}),!T&&React.createElement(n.Button,{className:N.deleteParamBtn,variant:"link",color:"error",endIcon:React.createElement(l,{src:s,width:"1.125rem",height:"1.125rem"}),onClick:()=>De(r,a)})),enum:React.createElement(React.Fragment,null,T?React.createElement("span",{className:"enumText"},null===(I=null===(k=null==S?void 0:S.schema)||void 0===k?void 0:k.enum)||void 0===I?void 0:I.join("/")):React.createElement("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData"},(()=>{var e,t,r;const o=null===(t=null===(e=null==u?void 0:u.responses[Re])||void 0===e?void 0:e.headers[a])||void 0===t?void 0:t.schema,s=null===(r=null==o?void 0:o.type)||void 0===r?void 0:r.toLowerCase(),i="array"===s||"object"===s,c=(null==o?void 0:o.enum)||[];return!o||i?"-":React.createElement(h,{disabled:i,arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>Ee(e),content:React.createElement("div",{className:N.editDescTooltipContent},React.createElement("p",{className:N.editDescTooltipContent_header},"Enum"),c.map((e,t)=>React.createElement(n.Input,{key:t,className:"methodDescForEnum",required:!0,clearable:!1,placeholder:"Enter Enum value...",value:e,onChange:e=>{D(`responses[${Re}].headers["${a}"].schema.enum[${t}]`,e)}})),React.createElement("p",{className:"addEnumButton",onClick:()=>{D(`responses[${Re}].headers["${a}"].schema.enum`,[...c,""])}},React.createElement(l,{src:m}),"Add New Enum"),!T&&React.createElement(n.Button,{className:N.editDescTooltipContent_btn,variant:"outlined",size:"small",type:"button",onClick:()=>{D(`responses[${Re}].headers["${a}"].schema.enum`,[...c]),ve([]),null==he||he.hide()},disabled:0===c.length||c.some(e=>!e)},"Apply"))},c.length>0?React.createElement("span",{className:"enumText"},c.join("/")):React.createElement(n.Button,{className:N.editDescBtn,id:"EnumButton",variant:"link",color:"action",endIcon:React.createElement(l,{id:"enumIcon",src:d,width:"1.5rem",height:"1.5rem"})},"Add"))})()))}}),we=(e,t)=>{ee(e),le(t),Q(!0)},De=(e,t)=>{ae(e),le(t),Y(!0)};return a(()=>{var e;oe(null==(e=G)?void 0:e.map((e,t)=>{var a,r,o,c,p,v,E,R,y,b,C,w,j,k,I,S,$,A,B,q,x,O,L,_,F,W,H,V,M,P,G,X,K,Q,U,Y,Z,ee,te,ae,ne,le,re,oe,se,ie,ce,de,me;return{id:t,paramName:e.name,paramType:g(e.in),schemaType:`${g(null===(a=null==e?void 0:e.schema)||void 0===a?void 0:a.type)||""} ${"array"==(null===(o=null===(r=null==e?void 0:e.schema)||void 0===r?void 0:r.type)||void 0===o?void 0:o.toLowerCase())&&(null===(c=null==e?void 0:e.schema)||void 0===c?void 0:c.items)&&(null===(v=null===(p=null==e?void 0:e.schema)||void 0===p?void 0:p.items)||void 0===v?void 0:v.type)?` _ ${g(null===(R=null===(E=null==e?void 0:e.schema)||void 0===E?void 0:E.items)||void 0===R?void 0:R.type)}`:""}`,required:React.createElement(React.Fragment,null,T?e.required?"True":"False":React.createElement(n.Switch,{checked:e.required,onClick:()=>{if(T)return null;Ne("required",!e.required,t),D(`parameters[${t}][required]`,!e.required)}})),description:React.createElement("div",{className:N.paramDescContainer},React.createElement(h,{key:`${t}-description`,allowHTML:!0,disabled:(null===(y=u.parameters[t].description)||void 0===y?void 0:y.length)<=12,content:React.createElement("div",{style:{padding:"0.625rem"}},u.parameters[t].description),arrowWithBorder:!0,placement:"bottom-end",type:"function",delay:[0,0],onShow:()=>{var e;return null===(e=z[t])||void 0===e?void 0:e.hide()}},React.createElement("p",{style:{alignSelf:"center"}},u.parameters[t].description?u.parameters[t].description.substring(0,12):T&&"-",u.parameters[t].description&&u.parameters[t].description.length>12?"...":"")),!T&&React.createElement(h,{key:`${t}-add-edit-description`,allowHTML:!0,arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>J(a=>Object.assign(Object.assign({},a),{[t]:e})),content:React.createElement("div",{className:N.editDescTooltipContent},React.createElement("p",{className:N.editDescTooltipContent_header},"Description"),React.createElement(n.TextArea,{placeholder:"Describe parameter...",value:e.description,disabled:T,maxLength:120,onChange:e=>{(""===e||f.ASCII.test(e))&&Ne("description",e,t)}}),!T&&React.createElement(n.Button,{className:N.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var a,n;D(`parameters[${t}].description`,null===(a=e.description)||void 0===a?void 0:a.trim()),null===(n=z[t])||void 0===n||n.hide()},disabled:!(null===(b=e.description)||void 0===b?void 0:b.trim())},"Apply"))},T||(null===(C=u.parameters[t].description)||void 0===C?void 0:C.length)>0?React.createElement(n.Button,{className:N.editDescBtn,variant:"link",color:"action",endIcon:React.createElement(l,{src:i,width:"1.5rem",height:"1.5rem"})}):React.createElement(n.Button,{className:N.editDescBtn,variant:"link",color:"action",endIcon:React.createElement(l,{src:i,width:"1.5rem",height:"1.5rem"})},T?"View ":"Add "," Description")),!T&&React.createElement("div",{className:N.paramDescContainer_separator}),!T&&React.createElement(n.Button,{className:N.deleteParamBtn,variant:"link",color:"error",endIcon:React.createElement(l,{src:s,width:"1.125rem",height:"1.125rem"}),onClick:()=>we(t,e.name)})),enum:React.createElement(React.Fragment,null,T?React.createElement("span",{className:"enumText"},null===(j=null===(w=null==e?void 0:e.schema)||void 0===w?void 0:w.enum)||void 0===j?void 0:j.join("/")):React.createElement("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData"},(null===(k=u.parameters[t])||void 0===k?void 0:k.schema)&&"array"!=(null===($=null===(S=null===(I=u.parameters[t])||void 0===I?void 0:I.schema)||void 0===S?void 0:S.type)||void 0===$?void 0:$.toLowerCase())&&"object"!=(null===(q=null===(B=null===(A=u.parameters[t])||void 0===A?void 0:A.schema)||void 0===B?void 0:B.type)||void 0===q?void 0:q.toLowerCase())?React.createElement(h,{disabled:"array"==(null===(L=null===(O=null===(x=u.parameters[t])||void 0===x?void 0:x.schema)||void 0===O?void 0:O.type)||void 0===L?void 0:L.toLowerCase())||"object"==(null===(W=null===(F=null===(_=u.parameters[t])||void 0===_?void 0:_.schema)||void 0===F?void 0:F.type)||void 0===W?void 0:W.toLowerCase()),arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>Ee(e),content:React.createElement("div",{className:N.editDescTooltipContent},React.createElement("p",{className:N.editDescTooltipContent_header},"Enum"),!!(null===(V=null===(H=u.parameters[t])||void 0===H?void 0:H.schema)||void 0===V?void 0:V.enum)&&!!(null===(P=null===(M=u.parameters[t])||void 0===M?void 0:M.schema)||void 0===P?void 0:P.enum.length)&&(null===(K=null===(X=null===(G=u.parameters[t])||void 0===G?void 0:G.schema)||void 0===X?void 0:X.enum)||void 0===K?void 0:K.map((e,a)=>React.createElement(n.Input,{key:t,className:"methodDescForEnum",required:!0,clearable:!1,placeholder:"Enter Enum value...",value:e,onChange:e=>{D(`parameters[${t}].schema.enum[${a}]`,e)}}))),React.createElement("p",{className:"addEnumButton",onClick:()=>{var e,a;D(`parameters[${t}].schema.enum`,[...null===(a=null===(e=u.parameters[t])||void 0===e?void 0:e.schema)||void 0===a?void 0:a.enum,""])}},React.createElement(l,{src:m}),"Add New Enum"),!T&&React.createElement(n.Button,{className:N.editDescTooltipContent_btn,variant:"outlined",size:"small",type:"button",onClick:()=>{D(`parameters[${t}].schema.enum`,[...u.parameters[t].schema.enum]),ve([]),null==he||he.hide()},disabled:pe.length>0&&(null==pe?void 0:pe.filter(e=>!e).length)||(null===(U=null===(Q=null==u?void 0:u.parameters[t])||void 0===Q?void 0:Q.schema)||void 0===U?void 0:U.enum)&&(null===(ee=null===(Z=null===(Y=null==u?void 0:u.parameters[t])||void 0===Y?void 0:Y.schema)||void 0===Z?void 0:Z.enum)||void 0===ee?void 0:ee.length)>0&&(null===(ne=null===(ae=null===(te=null==u?void 0:u.parameters[t])||void 0===te?void 0:te.schema)||void 0===ae?void 0:ae.enum)||void 0===ne?void 0:ne.filter(e=>!e).length)},"Apply"))},(null===(re=null===(le=u.parameters[t])||void 0===le?void 0:le.schema)||void 0===re?void 0:re.enum)&&(null===(ie=null===(se=null===(oe=u.parameters[t])||void 0===oe?void 0:oe.schema)||void 0===se?void 0:se.enum)||void 0===ie?void 0:ie.length)>0?React.createElement("span",{className:"enumText"},null===(me=null===(de=null===(ce=u.parameters[t])||void 0===ce?void 0:ce.schema)||void 0===de?void 0:de.enum)||void 0===me?void 0:me.join("/")):React.createElement(n.Button,{className:N.editDescBtn,id:"EnumButton",variant:"link",color:"action",endIcon:React.createElement(l,{id:"enumIcon",src:d,width:"1.5rem",height:"1.5rem"})},"Add")):"-"," "))}}))},[G]),a(()=>{(null==u?void 0:u.parameters)&&X(u.parameters)},[u,R]),a(()=>{if(me&&u.responses){let e=u.responses.findIndex(e=>e.code.toString()==me.value.toString());if(e<0){const t=structuredClone(u.responses);t.push({code:me.value.toString(),content:{contentType:"application/json",schema:{}},headers:{}}),D&&(D("responses",t),e=0)}ge(e),Ce.current=e,e>=0&&ie(fe(u.responses[e].headers,e))}},[me,u.responses,D]),a(()=>{Ce.current&&Ce.current>-1&&ie(fe(u.responses[Ce.current].headers,Ce.current))},[u.responses,Ce.current]),a(()=>{var e;if((null==u?void 0:u.tags.length)||(null==j?void 0:j.length)){const t=[...null===(e=(null==u?void 0:u.tags)||[])||void 0===e?void 0:e.map(e=>({label:g(e),value:e})),...(j||[]).map(e=>({label:g(e.name),value:e.name}))].filter((e,t,a)=>t===a.findIndex(t=>t.value===e.value));de(t)}},[j,u]),React.createElement("div",{ref:ye},React.createElement(n.Accordion,{expanded:k,onChange:()=>I(!k),className:`${N.methodAccordion} ${T?N.readOnly:""}`,summary:React.createElement("div",{className:N.methodSummaryContainer},React.createElement("div",{className:N.methodSummary},React.createElement("span",{style:{backgroundColor:(null===($=null==p?void 0:p[null==u?void 0:u.type])||void 0===$?void 0:$.color)||"#3A6CD1"},className:N.methodLabel},(null===(A=null==p?void 0:p[null==u?void 0:u.type])||void 0===A?void 0:A.label)||(null==u?void 0:u.type)),React.createElement("span",{className:N.methodPath},R)),React.createElement("div",{className:`${N.methodExpandArrowContainer} ${k?N.expanded:""}`},React.createElement(l,{src:r,width:"2rem",height:"2rem"}))),children:React.createElement("div",{className:N.methodAccordionContent},T?React.createElement(E,{key:"summary",label:"Endpoint Name: ",value:(null==u?void 0:u.summary)||"-"}):React.createElement(n.Input,{className:N.methodDesc,label:"Endpoint Name",required:!0,placeholder:"Endpoint name...",value:null==u?void 0:u.summary,onChange:e=>{(""===(e=e||"")||f.ASCII.test(e))&&D("summary",e)},onClear:()=>{D("summary","")},errorMsg:null==S?void 0:S.summary}),React.createElement(n.SelectGroup,{className:N.methodDesc,disabled:T,placeholder:"Select Tags",label:"Tags",value:null===(B=u.tags)||void 0===B?void 0:B.map(e=>({label:g(e),value:e})),onChange:e=>{D("tags",e.map(e=>e.value))},options:[{list:ce}],isMultiple:!0,withSearch:!1,clearable:!1}),T?React.createElement(E,{key:"description",label:"Description: ",value:(null==u?void 0:u.description)||"-",className:N.multiLineText}):React.createElement(n.TextArea,{className:N.methodDesc,label:"Description",placeholder:"Describe the method's purpose and functionality...",maxLength:120,value:null==u?void 0:u.description,onChange:e=>{(""===e||f.ASCII.test(e))&&D("description",e)}}),React.createElement("div",{className:N.paramsTable},React.createElement("h4",{className:N.paramsTableBodyHead},"Request Details"),React.createElement(y,{id:"paramter-request-table",data:re,headCells:v,isFormOpen:H,setIsFormOpen:V,saveNewRow:e=>{X([...G,e]),D("parameters",[...u.parameters,e])},readOnly:T,isRequest:!0}),"get"!==(null==u?void 0:u.type)&&"delete"!==(null==u?void 0:u.type)&&React.createElement(n.Accordion,{expanded:F.request,onChange:()=>null,className:N.requestAccordion,summary:React.createElement("span",{className:N.requestAccordionSummary},React.createElement("div",{className:N.requestAccordionSummary_title,onClick:()=>W(e=>Object.assign(Object.assign({},e),{request:!e.request}))},React.createElement(l,{className:F.request?N.expanded:"",src:r,width:"2rem",height:"2rem"}),"Request","delete"!==(null==u?void 0:u.type)&&React.createElement("span",{style:{color:"red"}},"*"))),children:React.createElement(C,{acceptType:"JSON",withFooter:!T,className:"jsonField",placeholder:"Enter your request body as a JSON object....",fieldIsDisabled:T,value:(null===(O=null===(x=null===(q=null==u?void 0:u.requestBody)||void 0===q?void 0:q.content)||void 0===x?void 0:x.schema)||void 0===O?void 0:O.properties)||"{}",onChange:e=>{D("requestBody.content.schema.properties",e)},onValidation:()=>null})})),React.createElement("div",{className:N.paramsTable},React.createElement("div",{className:N.responseHeader},React.createElement("h4",{className:N.paramsTableBodyHead},"Response Details"),React.createElement(n.SelectGroup,{withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:w}],value:me,onChange:e=>{ue(e)}})),React.createElement(y,{id:"paramter-response-table",data:se,headCells:v,isFormOpen:M,setIsFormOpen:P,saveNewRow:e=>{D(`responses[${Ce.current}].headers[${e.name}]`,e)},readOnly:T,isRequest:!1}),React.createElement(n.Accordion,{expanded:F.response,onChange:()=>null,className:N.responseAccordion,summary:React.createElement("span",{className:N.responseAccordionSummary},React.createElement("div",{className:N.responseAccordionSummary_title,onClick:()=>W(e=>Object.assign(Object.assign({},e),{response:!e.response}))},React.createElement(l,{className:F.response?N.expanded:"",src:r,width:"2rem",height:"2rem"}),"Response",React.createElement("span",{style:{color:"red"}},"*"))),children:React.createElement(C,{acceptType:"JSON",withFooter:!T,className:"jsonField",placeholder:"Enter your response as a JSON object...",fieldIsDisabled:T,value:(null===(_=null===(L=null==be?void 0:be.content)||void 0===L?void 0:L.schema)||void 0===_?void 0:_.properties)||"{}",onChange:e=>{const t=u.responses.findIndex(e=>e.code===be.code);if(-1!==t)D(`responses[${t}].content.schema.properties`,e);else{const t=structuredClone(u.responses);t.push({code:me.value.toString(),content:{contentType:"application/json",schema:{type:"object",properties:e}}}),D("responses",t)}},onValidation:e=>null})})))}),React.createElement(b,{status:"error",content:React.createElement("p",{style:{textAlign:"center",fontWeight:400,fontSize:"1rem",lineHeight:"1.4375rem"},className:"delete-msg-container"},"Are you sure you want to delete",React.createElement("span",{className:"plan-name"}," ","Parameter ",React.createElement("strong",null,ne)),"?"),onSubmit:{onClick:()=>{var e;null!==Z&&(X(e=>e.filter((e,t)=>t!==Z)),D("parameters",null===(e=null==u?void 0:u.parameters)||void 0===e?void 0:e.filter((e,t)=>t!==Z))),Q(!1),ee(null)},text:"Delete",color:"error",fullWidth:!0},onCancel:{text:"Cancel",color:"action",fullWidth:!0,variant:"outlined"},onClose:()=>Q(!1),open:K,icon:React.createElement(l,{src:c,width:"4.0625rem",height:"4.0625rem"}),closeIcon:React.createElement(l,{src:o,width:"1.5rem",height:"1.5rem",onClick:()=>Q(!1)})}),React.createElement(b,{status:"error",content:React.createElement("p",{style:{textAlign:"center",fontWeight:400,fontSize:"1rem",lineHeight:"1.4375rem"},className:"delete-msg-container"},"Are you sure you want to delete",React.createElement("span",{className:"plan-name"}," ","Header ",React.createElement("strong",null,ne)),"?"),onSubmit:{onClick:()=>{if(null!==ae){let e=Object.fromEntries(Object.entries(u.responses[Ce.current].headers).filter(([e])=>e!=ne));D(`responses[${Ce.current}].headers`,e)}Y(!1),ae(null)},text:"Delete",color:"error",fullWidth:!0},onCancel:{text:"Cancel",color:"action",fullWidth:!0,variant:"outlined"},onClose:()=>Y(!1),open:U,icon:React.createElement(l,{src:c,width:"4.0625rem",height:"4.0625rem"}),closeIcon:React.createElement(l,{src:o,width:"1.5rem",height:"1.5rem",onClick:()=>Q(!1)})}))};export{D as default};
|
|
2
2
|
//# sourceMappingURL=MethodAccordion.js.map
|
|
@@ -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","React","createElement","className","styles","statusCodeOptionContainer","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","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","_l","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteResponseHeader","enum","_m","_o","join","isComplex","enumList","enumVal","enumIndex","Input","clearable","PlusSquare","some","val","PlusIcon","handleDeleteClick","name","in","parameters","_p","_s","_q","_w","_u","_v","_y","_x","_z","_2","_1","_0","_4","_3","_6","_5","_9","_8","_7","_index","filter","_11","_10","_14","_12","_13","_17","_16","_15","_18","_19","_22","_20","_25","_23","findIndex","_r","toString","clonedResponses","structuredClone","push","contentType","filteredArray","self","t","ref","Accordion","expanded","methodAccordion","summary","methodSummaryContainer","methodSummary","methodColorMapping","methodLabel","methodPath","methodExpandArrowContainer","DownArrowIcon","children","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,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
var o={methodAccordion:"MethodAccordion-module_methodAccordion__Gu2EL",methodSummaryContainer:"MethodAccordion-module_methodSummaryContainer__X57mG",methodSummary:"MethodAccordion-module_methodSummary__n5n20",methodLabel:"MethodAccordion-module_methodLabel__SZ0WZ",methodPath:"MethodAccordion-module_methodPath__aotss",methodExpandArrowContainer:"MethodAccordion-module_methodExpandArrowContainer__bHenL",expanded:"MethodAccordion-module_expanded__V-zBL",methodAccordionContent:"MethodAccordion-module_methodAccordionContent__OxP9P",multiLineText:"MethodAccordion-module_multiLineText__NqNh8",methodDesc:"MethodAccordion-module_methodDesc__vRJ-C",paramsTable:"MethodAccordion-module_paramsTable__ud3y3",paramsTableBodyHead:"MethodAccordion-module_paramsTableBodyHead__fVIge",responseHeader:"MethodAccordion-module_responseHeader__pcilb",statusCodeOptionContainer:"MethodAccordion-module_statusCodeOptionContainer__6XZjS",statusCodeOptionCircle:"MethodAccordion-module_statusCodeOptionCircle__GXKaK",paramDescContainer:"MethodAccordion-module_paramDescContainer__3e67r",paramDescContainer_separator:"MethodAccordion-module_paramDescContainer_separator__kMO4G",editDescBtn:"MethodAccordion-module_editDescBtn__A7HJn",deleteParamBtn:"MethodAccordion-module_deleteParamBtn__ot1Eq",editDescTooltipContent:"MethodAccordion-module_editDescTooltipContent__cdL-s",editDescTooltipContent_header:"MethodAccordion-module_editDescTooltipContent_header__n8OS6",requestAccordion:"MethodAccordion-module_requestAccordion__rJP92",responseAccordion:"MethodAccordion-module_responseAccordion__gFVeZ",requestAccordionSummary:"MethodAccordion-module_requestAccordionSummary__8RCHC",responseAccordionSummary:"MethodAccordion-module_responseAccordionSummary__xXxH8",responseAccordionSummary_title:"MethodAccordion-module_responseAccordionSummary_title__J744B",requestAccordionSummary_title:"MethodAccordion-module_requestAccordionSummary_title__m3bRC",readOnly:"MethodAccordion-module_readOnly__0-wNY"};export{o as default};
|
|
2
2
|
//# sourceMappingURL=MethodAccordion.module.scss.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e,__awaiter as
|
|
1
|
+
import{__rest as e,__awaiter as t}from"../../../node_modules/tslib/tslib.es6.js";import r,{useState as i,useEffect as o}from"react";import n from"../../../node_modules/html-react-parser/esm/index.mjs.js";const s=s=>{var{src:c,cache:l=!0}=s,a=e(s,["src","cache"]);const[d,m]=i(null);if(o(()=>{if(!c)return;"string"!=typeof c&&console.log({src:c});const e=c.startsWith("http")||c.startsWith("/"),r="svg-cache";t(void 0,void 0,void 0,function*(){try{let t=null;if(l&&e&&"caches"in window){const e=yield caches.open(r),i=yield e.match(c);if(i&&i.ok)return t=yield i.text(),void m(t)}if(e){const e=yield fetch(c),i=e.clone();if(t=yield e.text(),l&&"caches"in window){const e=yield caches.open(r);yield e.put(c,i)}}else t=c;if(t){const e=(e=>(new DOMParser).parseFromString(e,"image/svg+xml").querySelector("svg"))(t);if(e){const t=(new XMLSerializer).serializeToString(e);m(t)}}}catch(e){console.error("Error loading SVG:",e)}})},[c,a]),!d)return null;const f=n(d),h=Array.isArray(f)?f.find(e=>r.isValidElement(e)):f,u=r.cloneElement(h,a);return r.createElement(r.Fragment,null,u)};export{s as default};
|
|
2
2
|
//# sourceMappingURL=SVGLoader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SVGLoader.js","sources":["../../../../src/components/SVGLoader/SVGLoader.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react'\nimport parse from 'html-react-parser'\n\n// Utility function to create an SVG element from a string\nconst createSvgElement = (svgString: string): SVGSVGElement | null => {\n const parser = new DOMParser()\n const doc = parser.parseFromString(svgString, 'image/svg+xml')\n return doc.querySelector('svg')\n}\n\n// Define the type for SVG attributes\ntype SVGAttributes = React.SVGProps<SVGSVGElement>\n\ninterface SVGLoaderProps extends SVGAttributes {\n src: string\n cache?: boolean\n}\n\nconst SVGLoader: React.FC<SVGLoaderProps> | any = ({ src, cache = true, ...props }) => {\n const [svgMarkup, setSvgMarkup] = useState<string | null>(null)\n\n useEffect(() => {\n if (!src) return\n if (typeof src !== 'string') console.log({ src })\n const isUrl = src.startsWith('http') || src.startsWith('/')\n\n const cacheName = 'svg-cache'\n\n const fetchSvg = async () => {\n try {\n let svgString: string | null = null\n\n // Use the Cache API if caching is enabled\n if (cache && isUrl && 'caches' in window) {\n const cacheStorage = await caches.open(cacheName)\n const cachedResponse = await cacheStorage.match(src)\n\n // If SVG is found in cache, use it\n if (cachedResponse && cachedResponse.ok) {\n svgString = await cachedResponse.text()\n setSvgMarkup(svgString)\n return\n }\n }\n\n // If not cached, fetch from URL\n if (isUrl) {\n const response = await fetch(src)\n\n // Clone the response before consuming it\n const responseClone = response.clone()\n\n // Consume the response body for the SVG content\n svgString = await response.text()\n\n // Store the cloned response in the cache\n if (cache && 'caches' in window) {\n const cacheStorage = await caches.open(cacheName)\n await cacheStorage.put(src, responseClone)\n }\n } else {\n // If it's not a URL (it's inline), just use the source string\n svgString = src\n }\n\n // If we have valid SVG content, set it\n if (svgString) {\n const svg = createSvgElement(svgString)\n if (svg) {\n const svgStringWithProps = new XMLSerializer().serializeToString(svg)\n setSvgMarkup(svgStringWithProps)\n }\n }\n } catch (error) {\n console.error('Error loading SVG:', error)\n }\n }\n\n fetchSvg()\n }, [src, props])\n\n if (!svgMarkup) return null\n\n // Parse the SVG string and return it as JSX\n const parsedSvg = parse(svgMarkup)\n // Sometimes parse returns an array which includes the element\n const toBeClonedElement = Array.isArray(parsedSvg)\n ? parsedSvg.find((item) => React.isValidElement(item))\n : parsedSvg\n // Clone the parsed SVG element to apply the props\n const clonedSvg = React.cloneElement(toBeClonedElement as React.ReactElement, props)\n\n return <>{clonedSvg}</>\n}\n\nexport default SVGLoader\n"],"names":["SVGLoader","_a","src","cache","props","__rest","svgMarkup","setSvgMarkup","useState","useEffect","console","log","isUrl","startsWith","cacheName","__awaiter","svgString","window","cacheStorage","caches","open","cachedResponse","match","ok","text","response","fetch","responseClone","clone","put","svg","DOMParser","parseFromString","querySelector","createSvgElement","svgStringWithProps","XMLSerializer","serializeToString","error","parsedSvg","parse","toBeClonedElement","Array","isArray","find","item","React","isValidElement","clonedSvg","cloneElement","
|
|
1
|
+
{"version":3,"file":"SVGLoader.js","sources":["../../../../src/components/SVGLoader/SVGLoader.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react'\nimport parse from 'html-react-parser'\n\n// Utility function to create an SVG element from a string\nconst createSvgElement = (svgString: string): SVGSVGElement | null => {\n const parser = new DOMParser()\n const doc = parser.parseFromString(svgString, 'image/svg+xml')\n return doc.querySelector('svg')\n}\n\n// Define the type for SVG attributes\ntype SVGAttributes = React.SVGProps<SVGSVGElement>\n\ninterface SVGLoaderProps extends SVGAttributes {\n src: string\n cache?: boolean\n}\n\nconst SVGLoader: React.FC<SVGLoaderProps> | any = ({ src, cache = true, ...props }) => {\n const [svgMarkup, setSvgMarkup] = useState<string | null>(null)\n\n useEffect(() => {\n if (!src) return\n if (typeof src !== 'string') console.log({ src })\n const isUrl = src.startsWith('http') || src.startsWith('/')\n\n const cacheName = 'svg-cache'\n\n const fetchSvg = async () => {\n try {\n let svgString: string | null = null\n\n // Use the Cache API if caching is enabled\n if (cache && isUrl && 'caches' in window) {\n const cacheStorage = await caches.open(cacheName)\n const cachedResponse = await cacheStorage.match(src)\n\n // If SVG is found in cache, use it\n if (cachedResponse && cachedResponse.ok) {\n svgString = await cachedResponse.text()\n setSvgMarkup(svgString)\n return\n }\n }\n\n // If not cached, fetch from URL\n if (isUrl) {\n const response = await fetch(src)\n\n // Clone the response before consuming it\n const responseClone = response.clone()\n\n // Consume the response body for the SVG content\n svgString = await response.text()\n\n // Store the cloned response in the cache\n if (cache && 'caches' in window) {\n const cacheStorage = await caches.open(cacheName)\n await cacheStorage.put(src, responseClone)\n }\n } else {\n // If it's not a URL (it's inline), just use the source string\n svgString = src\n }\n\n // If we have valid SVG content, set it\n if (svgString) {\n const svg = createSvgElement(svgString)\n if (svg) {\n const svgStringWithProps = new XMLSerializer().serializeToString(svg)\n setSvgMarkup(svgStringWithProps)\n }\n }\n } catch (error) {\n console.error('Error loading SVG:', error)\n }\n }\n\n fetchSvg()\n }, [src, props])\n\n if (!svgMarkup) return null\n\n // Parse the SVG string and return it as JSX\n const parsedSvg = parse(svgMarkup)\n // Sometimes parse returns an array which includes the element\n const toBeClonedElement = Array.isArray(parsedSvg)\n ? parsedSvg.find((item) => React.isValidElement(item))\n : parsedSvg\n // Clone the parsed SVG element to apply the props\n const clonedSvg = React.cloneElement(toBeClonedElement as React.ReactElement, props)\n\n return <>{clonedSvg}</>\n}\n\nexport default SVGLoader\n"],"names":["SVGLoader","_a","src","cache","props","__rest","svgMarkup","setSvgMarkup","useState","useEffect","console","log","isUrl","startsWith","cacheName","__awaiter","svgString","window","cacheStorage","caches","open","cachedResponse","match","ok","text","response","fetch","responseClone","clone","put","svg","DOMParser","parseFromString","querySelector","createSvgElement","svgStringWithProps","XMLSerializer","serializeToString","error","parsedSvg","parse","toBeClonedElement","Array","isArray","find","item","React","isValidElement","clonedSvg","cloneElement","createElement","Fragment"],"mappings":"4MAIA,MAcMA,EAA6CC,QAAAC,IAAEA,EAAGC,MAAEA,GAAQ,KAASC,EAAxBC,EAAAJ,EAAA,CAAA,MAAA,UACjD,MAAOK,EAAWC,GAAgBC,EAAwB,MA8D1D,GA5DAC,EAAU,KACR,IAAKP,EAAK,OACS,iBAARA,GAAkBQ,QAAQC,IAAI,CAAET,QAC3C,MAAMU,EAAQV,EAAIW,WAAW,SAAWX,EAAIW,WAAW,KAEjDC,EAAY,YAEUC,OAAA,OAAA,OAAA,EAAA,YAC1B,IACE,IAAIC,EAA2B,KAG/B,GAAIb,GAASS,GAAS,WAAYK,OAAQ,CACxC,MAAMC,QAAqBC,OAAOC,KAAKN,GACjCO,QAAuBH,EAAaI,MAAMpB,GAGhD,GAAImB,GAAkBA,EAAeE,GAGnC,OAFAP,QAAkBK,EAAeG,YACjCjB,EAAaS,EAGhB,CAGD,GAAIJ,EAAO,CACT,MAAMa,QAAiBC,MAAMxB,GAGvByB,EAAgBF,EAASG,QAM/B,GAHAZ,QAAkBS,EAASD,OAGvBrB,GAAS,WAAYc,OAAQ,CAC/B,MAAMC,QAAqBC,OAAOC,KAAKN,SACjCI,EAAaW,IAAI3B,EAAKyB,EAC7B,CACF,MAECX,EAAYd,EAId,GAAIc,EAAW,CACb,MAAMc,EA/DS,CAACd,IACT,IAAIe,WACAC,gBAAgBhB,EAAW,iBACnCiB,cAAc,OA4DLC,CAAiBlB,GAC7B,GAAIc,EAAK,CACP,MAAMK,GAAqB,IAAIC,eAAgBC,kBAAkBP,GACjEvB,EAAa4B,EACd,CACF,CACF,CAAC,MAAOG,GACP5B,QAAQ4B,MAAM,qBAAsBA,EACrC,CACH,IAGC,CAACpC,EAAKE,KAEJE,EAAW,OAAO,KAGvB,MAAMiC,EAAYC,EAAMlC,GAElBmC,EAAoBC,MAAMC,QAAQJ,GACpCA,EAAUK,KAAMC,GAASC,EAAMC,eAAeF,IAC9CN,EAEES,EAAYF,EAAMG,aAAaR,EAAyCrC,GAE9E,OAAO0C,EAAAI,cAAAJ,EAAAK,SAAA,KAAGH"}
|