@digi-frontend/dgate-api-documentation 1.0.60 → 1.0.61

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.
@@ -1,2 +1,2 @@
1
- import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as s,useEffect as i}from"react";import l from"./LivePreview.module.scss.js";import o from"../SimpleLabelValue/SimpleLabelValue.js";import n from"../MethodAccordion/MethodAccordion.js";import{useFormikContext as r}from"../../../node_modules/formik/dist/formik.esm.js";import{tagsTableHeaders as t,methodColorMapping as a}from"../../constants/index.js";import d from"../table/tags-table.js";import{d as c}from"../../../_virtual/index.js";import v from"../Tooltip/Tooltip.js";import m from"../SVGLoader/SVGLoader.js";import p from"../../assets/icons/DownArrow.svg.js";const u=({transformedData:u,openApiErrors:x})=>{var h,j;const[g,D]=s();s({});const[f,N]=s([]);s({});const[b,w]=s(x.length>0),{values:y}=r(),{info:C,components:k,tags:A}=y,{securitySchemes:O}=k,B=O&&"object"==typeof O&&Object.keys(O).length?Object.keys(O)[0]:null;i((()=>{y.tags&&(D(L(y.tags,!0)),N(y.tags))}),[y.tags]);const L=(s,i)=>s.map(((s,o)=>{var n,r,t,a,d,m,p,u,x,h,j,g,D,f,N,b,w,y,C;return{id:o,tagName:s.name,description:e.jsx(v,{allowHTML:!0,disabled:(null===(n=s.description)||void 0===n?void 0:n.length)<=12,content:e.jsx("div",{style:{padding:"0.625rem"},children:s.description}),arrowWithBorder:!0,placement:"bottom-end",type:"function",delay:[0,0],children:e.jsx("div",{className:l.paramDescContainer,children:e.jsxs("p",{className:l.editDescBtn,children:[s.description?s.description.substring(0,12):"-",s.description&&s.description.length>12?"...":""]})})},`${o}-description`),externalDocs:e.jsxs("div",{className:l.paramDescContainer,children:[s.externalDocs&&s.externalDocs.url&&"-"!=s.externalDocs.url?e.jsxs("a",{className:l.editDescBtn,href:(null===(r=s.externalDocs)||void 0===r?void 0:r.url)&&(null===(t=s.externalDocs)||void 0===t?void 0:t.url.indexOf("http"))>-1?null===(a=s.externalDocs)||void 0===a?void 0:a.url:`https://${null===(d=s.externalDocs)||void 0===d?void 0:d.url}`,rel:"noopener noreferrer",target:"_blank",children:[(null===(m=null==s?void 0:s.externalDocs)||void 0===m?void 0:m.url)&&!(null===(p=null==s?void 0:s.externalDocs)||void 0===p?void 0:p.description)?null===(u=null==s?void 0:s.externalDocs)||void 0===u?void 0:u.url:null,(null===(x=null==s?void 0:s.externalDocs)||void 0===x?void 0:x.description)?null===(j=null===(h=null==s?void 0:s.externalDocs)||void 0===h?void 0:h.description)||void 0===j?void 0:j.substring(0,12):(null===(g=null==s?void 0:s.externalDocs)||void 0===g?void 0:g.url)?null:"-",(null===(D=null==s?void 0:s.externalDocs)||void 0===D?void 0:D.description)&&(null===(N=null===(f=null==s?void 0:s.externalDocs)||void 0===f?void 0:f.description)||void 0===N?void 0:N.length)>12?"...":""]}):e.jsxs(c.Button,{className:l.editDescBtn,variant:"link",color:"action",children:[(null===(b=s.externalDocs)||void 0===b?void 0:b.description)?null===(w=s.externalDocs)||void 0===w?void 0:w.description.substring(0,12):"-",(null===(y=s.externalDocs)||void 0===y?void 0:y.description)&&(null===(C=s.externalDocs)||void 0===C?void 0:C.description.length)>12?"...":""]}),!i&&e.jsx("div",{className:l.paramDescContainer_separator}),!i&&e.jsx(c.Button,{className:l.deleteParamBtn,variant:"link",color:"error",onClick:()=>null})]})}}));return!B||(O[B].scheme||O[B].type),e.jsxs("div",{className:l.livePreviewContainer,children:[!!x&&x.length>0&&e.jsx("div",{className:"row",children:e.jsx("div",{className:"col-md-12",children:e.jsx(c.Accordion,{expanded:b,onChange:()=>null,className:l.responseAccordion,summary:e.jsxs("span",{className:l.responseAccordionSummary,onClick:()=>w((e=>!b)),children:[e.jsx("div",{className:l.responseAccordionSummary_title,children:"Errors"}),e.jsx(m,{className:b?l.expanded:"",src:p,width:"2rem",height:"2rem"})]}),children:e.jsxs("div",{className:l.accordionContent,children:[e.jsx("span",{children:"Failed to update the OpenAPI documentation. Please resolve the following issues:"}),e.jsx("br",{}),e.jsx("ol",{children:x.map((s=>e.jsx("li",{children:s},s)))})]})})})}),e.jsx("div",{className:"row",children:e.jsxs("div",{className:"col-md-12",children:[e.jsxs("div",{className:l.titleContainer,children:[e.jsx("p",{className:l.apiName,children:(null===(h=null==C?void 0:C.title)||void 0===h?void 0:h.trim())||"-"}),e.jsx(c.Chip,{className:l.livePreviewChip,children:"Live Preview"})]}),e.jsx(o,{label:"Version: ",value:(null==C?void 0:C.version)||"-"},"version"),e.jsx(o,{label:"Description: ",className:l.description_preview,value:(null===(j=null==C?void 0:C.description)||void 0===j?void 0:j.trim())||"-"},"description"),e.jsx(o,{label:"Tags: "},"tags"),e.jsx(d,{id:"tags-table",data:g,headCells:t,isFormOpen:!1,setIsFormOpen:()=>null,saveNewRow:()=>null,readOnly:!0}),e.jsx(o,{label:"Endpoints "},"endpoints"),y.paths.map((s=>e.jsx("div",{className:l.methodsContainer,children:Object.entries(s.methods.sort(((e,s)=>a[e.type].order+a[s.type].order)).reduce(((e,s)=>{var i;return((null===(i=s.tags)||void 0===i?void 0:i.length)?null==s?void 0:s.tags:["default"]).forEach((i=>{e[i]||(e[i]=[]),e[i].push(s)})),e}),{})).map((([i,l])=>e.jsxs("div",{children:[e.jsx("h3",{children:i}),null==l?void 0:l.map(((i,l)=>e.jsx(n,{readOnly:!0,method:i,path:s.path,tags:y.tags})))]},i)))},s.path)))]})})]})};export{u as default};
1
+ import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as s,useEffect as i}from"react";import l from"./LivePreview.module.scss.js";import o from"../SimpleLabelValue/SimpleLabelValue.js";import n from"../MethodAccordion/MethodAccordion.js";import{useFormikContext as r}from"../../../node_modules/formik/dist/formik.esm.js";import{tagsTableHeaders as t,methodColorMapping as a}from"../../constants/index.js";import d from"../table/tags-table.js";import{d as c}from"../../../_virtual/index.js";import v from"../Tooltip/Tooltip.js";import m from"../SVGLoader/SVGLoader.js";import p from"../../assets/icons/DownArrow.svg.js";const u=({transformedData:u,openApiErrors:h})=>{var x,j;const[g,D]=s();s({});const[f,N]=s([]);s({});const[b,y]=s(h.length>0),{values:w}=r(),{info:C,components:O,tags:k}=w,{securitySchemes:A}=O,_=A&&"object"==typeof A&&Object.keys(A).length?Object.keys(A)[0]:null;i((()=>{w.tags&&(D(B(w.tags,!0)),N(w.tags))}),[w.tags]);const B=(s,i)=>s.map(((s,o)=>{var n,r,t,a,d,m,p,u,h,x,j,g,D,f,N,b,y,w,C;return{id:o,tagName:s.name,description:e.jsx(v,{allowHTML:!0,disabled:(null===(n=s.description)||void 0===n?void 0:n.length)<=12,content:e.jsx("div",{style:{padding:"0.625rem"},children:s.description}),arrowWithBorder:!0,placement:"bottom-end",type:"function",delay:[0,0],children:e.jsx("div",{className:l.paramDescContainer,children:e.jsxs("p",{className:l.editDescBtn,children:[s.description?s.description.substring(0,12):"-",s.description&&s.description.length>12?"...":""]})})},`${o}-description`),externalDocs:e.jsxs("div",{className:l.paramDescContainer,children:[s.externalDocs&&s.externalDocs.url&&"-"!=s.externalDocs.url?e.jsxs("a",{className:l.editDescBtn,href:(null===(r=s.externalDocs)||void 0===r?void 0:r.url)&&(null===(t=s.externalDocs)||void 0===t?void 0:t.url.indexOf("http"))>-1?null===(a=s.externalDocs)||void 0===a?void 0:a.url:`https://${null===(d=s.externalDocs)||void 0===d?void 0:d.url}`,rel:"noopener noreferrer",target:"_blank",children:[(null===(m=null==s?void 0:s.externalDocs)||void 0===m?void 0:m.url)&&!(null===(p=null==s?void 0:s.externalDocs)||void 0===p?void 0:p.description)?null===(u=null==s?void 0:s.externalDocs)||void 0===u?void 0:u.url:null,(null===(h=null==s?void 0:s.externalDocs)||void 0===h?void 0:h.description)?null===(j=null===(x=null==s?void 0:s.externalDocs)||void 0===x?void 0:x.description)||void 0===j?void 0:j.substring(0,12):(null===(g=null==s?void 0:s.externalDocs)||void 0===g?void 0:g.url)?null:"-",(null===(D=null==s?void 0:s.externalDocs)||void 0===D?void 0:D.description)&&(null===(N=null===(f=null==s?void 0:s.externalDocs)||void 0===f?void 0:f.description)||void 0===N?void 0:N.length)>12?"...":""]}):e.jsxs(c.Button,{className:l.editDescBtn,variant:"link",color:"action",children:[(null===(b=s.externalDocs)||void 0===b?void 0:b.description)?null===(y=s.externalDocs)||void 0===y?void 0:y.description.substring(0,12):"-",(null===(w=s.externalDocs)||void 0===w?void 0:w.description)&&(null===(C=s.externalDocs)||void 0===C?void 0:C.description.length)>12?"...":""]}),!i&&e.jsx("div",{className:l.paramDescContainer_separator}),!i&&e.jsx(c.Button,{className:l.deleteParamBtn,variant:"link",color:"error",onClick:()=>null})]})}}));return!_||(A[_].scheme||A[_].type),e.jsxs("div",{className:l.livePreviewContainer,children:[!!h&&h.length>0&&e.jsx("div",{className:"row",children:e.jsx("div",{className:"col-md-12",children:e.jsx(c.Accordion,{expanded:b,onChange:()=>null,className:l.responseAccordion,summary:e.jsxs("span",{className:l.responseAccordionSummary,onClick:()=>y((e=>!b)),children:[e.jsx("div",{className:l.responseAccordionSummary_title,children:"Errors"}),e.jsx(m,{className:b?l.expanded:"",src:p,width:"2rem",height:"2rem"})]}),children:e.jsxs("div",{className:l.accordionContent,children:[e.jsx("span",{children:"Failed to update the OpenAPI documentation. Please resolve the following issues:"}),e.jsx("br",{}),e.jsx("ol",{children:h.map((s=>e.jsx("li",{children:s},s)))})]})})})}),e.jsx("div",{className:"row",children:e.jsxs("div",{className:"col-md-12",children:[e.jsxs("div",{className:l.titleContainer,children:[e.jsx("p",{className:l.apiName,children:(null===(x=null==C?void 0:C.title)||void 0===x?void 0:x.trim())||"-"}),e.jsx(c.Chip,{className:l.livePreviewChip,children:"Live Preview"})]}),e.jsx(o,{label:"Version: ",value:(null==C?void 0:C.version)||"-"},"version"),e.jsx(o,{label:"Description: ",className:l.description_preview,value:(null===(j=null==C?void 0:C.description)||void 0===j?void 0:j.trim())||"-"},"description"),e.jsx(o,{label:"Tags: "},"tags"),e.jsx(d,{id:"tags-table",data:g,headCells:t,isFormOpen:!1,setIsFormOpen:()=>null,saveNewRow:()=>null,readOnly:!0}),e.jsx(o,{label:"Endpoints "},"endpoints"),Object.entries(w.paths.flatMap((e=>e.methods.map((s=>{var i;return Object.assign(Object.assign({},s),{path:e.path,tags:(null===(i=s.tags)||void 0===i?void 0:i.length)?s.tags:["default"]})})))).reduce(((e,s)=>(s.tags.forEach((i=>{e[i]||(e[i]=[]),e[i].push(s)})),e)),{})).map((([s,i])=>e.jsxs("div",{className:l.methodsContainer,children:[e.jsx("h3",{children:s}),i.sort(((e,s)=>a[e.type].order-a[s.type].order)).map((s=>e.jsx(n,{readOnly:!0,method:s,path:s.path,tags:w.tags},`${s.path}_${s.type}`)))]},s)))]})})]})};export{u as default};
2
2
  //# sourceMappingURL=LivePreview.js.map
@@ -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 {values.paths.map((path) => (\n <div className={styles.methodsContainer} key={path.path}>\n {Object.entries(\n path.methods\n .sort(\n (a, b) => methodColorMapping[a.type].order + methodColorMapping[b.type].order\n )\n .reduce((groupedMethods, method) => {\n // Handle methods without tags\n const tags = method.tags?.length ? method?.tags : ['default']\n\n tags.forEach((tag) => {\n if (!groupedMethods[tag]) {\n groupedMethods[tag] = []\n }\n groupedMethods[tag].push(method)\n })\n\n return groupedMethods\n }, {})\n ).map(([tag, methods]) => (\n <div key={tag}>\n <h3>{tag}</h3>\n {methods?.map((method, methodIndex) => (\n <MethodsAccordion\n readOnly\n method={method}\n path={path.path}\n tags={values.tags}\n />\n ))}\n </div>\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","paths","path","methodsContainer","entries","methods","sort","a","b","methodColorMapping","order","reduce","groupedMethods","method","forEach","tag","push","methodIndex","MethodsAccordion"],"mappings":"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"}
1
+ {"version":3,"file":"LivePreview.js","sources":["../../../../src/components/LivePreview/LivePreview.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport styles from './LivePreview.module.scss'\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\nimport MethodsAccordion from '../../components/MethodAccordion/MethodAccordion'\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\nimport { useFormikContext } from 'formik'\nimport { methodColorMapping, tagsTableHeaders } from '../../constants/index'\nimport TagsTable from '../table/tags-table'\nimport { Accordion, Button, Chip } from 'digitinary-ui'\nimport Tooltip from '../../components/Tooltip/Tooltip'\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\nimport { DownArrowIcon } from '../../assets/icons'\n\ninterface LivePreviewProps {\n transformedData?: TransformedOpenApi\n openApiErrors?: any[]\n}\n\nconst LivePreview: React.FC<LivePreviewProps> = ({ transformedData, openApiErrors }) => {\n const [tableRecords, setTableRecords] = useState()\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\n const [tableData, setTableData] = useState([])\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\n const [errorExpanded, setErrorExpanded] = useState(openApiErrors.length > 0)\n const { values } = useFormikContext<TransformedOpenApi>()\n const { info, components, tags } = values\n const { securitySchemes } = components\n const securityKey =\n securitySchemes && typeof securitySchemes == 'object' && Object.keys(securitySchemes).length\n ? Object.keys(securitySchemes)[0]\n : null\n\n useEffect(() => {\n if (values.tags) {\n setTableRecords(generateTableData(values.tags, true))\n setTableData(values.tags)\n }\n }, [values.tags])\n\n const generateTableData = (items, readOnly) => {\n return items.map((item, index) => ({\n id: index,\n tagName: item.name,\n description: (\n <Tooltip\n key={`${index}-description`}\n allowHTML\n disabled={item.description?.length <= 12}\n content={<div style={{ padding: '0.625rem' }}>{item.description}</div>}\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n delay={[0, 0]}\n >\n <div className={styles.paramDescContainer}>\n <p className={styles.editDescBtn}>\n {item.description ? item.description.substring(0, 12) : '-'}\n {item.description && item.description.length > 12 ? '...' : ''}\n </p>\n </div>\n </Tooltip>\n ),\n externalDocs: (\n <div className={styles.paramDescContainer}>\n {item.externalDocs && item.externalDocs.url && item.externalDocs.url != '-' ? (\n <a\n className={styles.editDescBtn}\n href={\n item.externalDocs?.url && item.externalDocs?.url.indexOf('http') > -1\n ? item.externalDocs?.url\n : `https://${item.externalDocs?.url}`\n }\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {item?.externalDocs?.url && !item?.externalDocs?.description\n ? item?.externalDocs?.url\n : null}\n {item?.externalDocs?.description\n ? item?.externalDocs?.description?.substring(0, 12)\n : !item?.externalDocs?.url\n ? '-'\n : null}\n {item?.externalDocs?.description && item?.externalDocs?.description?.length > 12\n ? '...'\n : ''}\n </a>\n ) : (\n <Button className={styles.editDescBtn} variant=\"link\" color=\"action\">\n {item.externalDocs?.description\n ? item.externalDocs?.description.substring(0, 12)\n : '-'}\n {item.externalDocs?.description && item.externalDocs?.description.length > 12\n ? '...'\n : ''}\n </Button>\n )}\n\n {/* </Tooltip> */}\n\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\n\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n onClick={() => null}\n ></Button>\n )}\n </div>\n ),\n }))\n }\n\n const securityScheme = !!securityKey\n ? securitySchemes[securityKey].scheme || securitySchemes[securityKey].type\n : '-'\n\n return (\n <div className={styles.livePreviewContainer}>\n {!!openApiErrors && openApiErrors.length > 0 && (\n <div className=\"row\">\n <div className=\"col-md-12\">\n <Accordion\n expanded={errorExpanded}\n onChange={() => null}\n className={styles.responseAccordion}\n summary={\n <span\n className={styles.responseAccordionSummary}\n onClick={() => setErrorExpanded((prev) => !errorExpanded)}\n >\n <div className={styles.responseAccordionSummary_title}>Errors</div>\n <SVGLoader\n className={errorExpanded ? styles.expanded : ''}\n src={DownArrowIcon}\n width=\"2rem\"\n height=\"2rem\"\n />\n </span>\n }\n children={\n <div className={styles.accordionContent}>\n <span>\n Failed to update the OpenAPI documentation. Please resolve the following issues:\n </span>\n <br />\n <ol>\n {openApiErrors.map((errItem) => (\n <li key={errItem}>{errItem}</li>\n ))}\n </ol>\n </div>\n }\n />\n </div>\n </div>\n )}\n <div className=\"row\">\n <div className=\"col-md-12\">\n <div className={styles.titleContainer}>\n <p className={styles.apiName}>{info?.title?.trim() || '-'}</p>\n <Chip className={styles.livePreviewChip}>Live Preview</Chip>\n </div>\n <SimpleLabelValue key={'version'} label={'Version: '} value={info?.version || '-'} />\n <SimpleLabelValue\n key={'description'}\n label={'Description: '}\n className={styles.description_preview}\n value={info?.description?.trim() || '-'}\n />\n\n <SimpleLabelValue key={'tags'} label={'Tags: '} />\n <TagsTable\n id=\"tags-table\"\n data={tableRecords}\n headCells={tagsTableHeaders}\n isFormOpen={false}\n setIsFormOpen={() => null}\n saveNewRow={() => null}\n readOnly={true}\n />\n\n <SimpleLabelValue key={'endpoints'} label={'Endpoints '} />\n {Object.entries(\n values.paths\n .flatMap((path) =>\n path.methods.map((method) => ({\n ...method,\n path: path.path,\n tags: method.tags?.length ? method.tags : ['default'],\n }))\n )\n .reduce((acc, method) => {\n method.tags.forEach((tag) => {\n if (!acc[tag]) acc[tag] = []\n acc[tag].push(method)\n })\n return acc\n }, {} as Record<string, any[]>)\n ).map(([tag, methods]) => (\n <div className={styles.methodsContainer} key={tag}>\n <h3>{tag}</h3>\n {methods\n .sort((a, b) => methodColorMapping[a.type].order - methodColorMapping[b.type].order)\n .map((method) => (\n <MethodsAccordion\n key={`${method.path}_${method.type}`}\n readOnly\n method={method}\n path={method.path}\n tags={values.tags}\n />\n ))}\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\nexport default LivePreview\n"],"names":["LivePreview","transformedData","openApiErrors","tableRecords","setTableRecords","useState","tableData","setTableData","errorExpanded","setErrorExpanded","length","values","useFormikContext","info","components","tags","securitySchemes","securityKey","Object","keys","useEffect","generateTableData","items","readOnly","map","item","index","id","tagName","name","description","_jsx","jsx","Tooltip","allowHTML","disabled","_a","content","style","padding","children","arrowWithBorder","placement","type","delay","className","styles","paramDescContainer","_jsxs","jsxs","editDescBtn","substring","externalDocs","url","href","_b","_c","indexOf","_d","_e","rel","target","_f","_g","_h","_j","_l","_k","_m","_o","_q","_p","Button","variant","color","_r","_s","_t","_u","paramDescContainer_separator","deleteParamBtn","onClick","scheme","livePreviewContainer","Accordion","expanded","onChange","responseAccordion","summary","responseAccordionSummary","prev","responseAccordionSummary_title","SVGLoader","src","DownArrowIcon","width","height","accordionContent","errItem","titleContainer","apiName","title","trim","Chip","livePreviewChip","SimpleLabelValue","label","value","version","description_preview","TagsTable","data","headCells","tagsTableHeaders","isFormOpen","setIsFormOpen","saveNewRow","entries","paths","flatMap","path","methods","method","assign","reduce","acc","forEach","tag","push","methodsContainer","sort","a","b","methodColorMapping","order","MethodsAccordion"],"mappings":"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"}
@@ -1,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 C from"../table/table.js";import b 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:B})=>{var k,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),Ce=p.responses.find((e=>Number(e.code)===ue.value))||"{}",be=n(-1),Ne=(e,s,n)=>{const o=X.map(((o,i)=>i===n?Object.assign(Object.assign({},o),{[e]:s}):o));K(o)},fe=(s,n)=>Object.keys(s).map(((o,r)=>{var t,c,v,h,x,g,C,b,N,D,S,$,A;const B=s[o];return{id:`header_${r}`,paramName:o,paramType:y("header"),schemaType:`${y(null===(t=null==B?void 0:B.schema)||void 0===t?void 0:t.type)||""} ${"array"==(null===(v=null===(c=null==B?void 0:B.schema)||void 0===c?void 0:c.type)||void 0===v?void 0:v.toLowerCase())&&(null===(h=null==B?void 0:B.schema)||void 0===h?void 0:h.items)&&(null===(g=null===(x=null==B?void 0:B.schema)||void 0===x?void 0:x.items)||void 0===g?void 0:g.type)?` _ ${y(null===(b=null===(C=null==B?void 0:B.schema)||void 0===C?void 0:C.items)||void 0===b?void 0:b.type)}`:""}`,required:e.jsx(e.Fragment,{children:I?B.required?"True":"False":e.jsx(i.Switch,{checked:B.required,onClick:()=>{if(I)return null;T(`responses[${n}].headers[${o}].required`,!B.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:B.description,disabled:I,maxLength:120,onChange:e=>{(""===e||w.ASCII.test(e))&&T(`responses[${be.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=B.description)||void 0===e?void 0:e.trim()),null===(s=J[r])||void 0===s||s.hide()},disabled:!(null===(D=B.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:()=>De(r,o)})]}),enum:e.jsx(e.Fragment,{children:I?e.jsx("span",{className:"enumText",children:null===(A=null===($=null==B?void 0:B.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"})})})()})})}})),we=(e,s)=>{se(e),le(s),U(!0)},De=(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,C,b,N,D,S,$,A,B,k,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;Ne("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===(C=p.parameters[n].description)||void 0===C?void 0:C.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))&&Ne("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===(b=s.description)||void 0===b?void 0:b.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:()=>we(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===(k=null===(B=null===(A=p.parameters[n])||void 0===A?void 0:A.schema)||void 0===B?void 0:B.type)||void 0===k?void 0:k.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),be.current=e,e>=0&&de(fe(p.responses[e].headers,e))}}),[ue,p.responses,T]),o((()=>{be.current&&be.current>-1&&de(fe(p.responses[be.current].headers,be.current))}),[p.responses,be.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",{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===(k=null==v?void 0:v[null==p?void 0:p.type])||void 0===k?void 0:k.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==B?void 0:B.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)||"-"},"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(C,{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(C,{id:"paramter-response-table",data:ae,headCells:h,isFormOpen:P,setIsFormOpen:z,saveNewRow:e=>{T(`responses[${be.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(b,{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(b,{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[be.current].headers).filter((([e])=>e!=ie)));T(`responses[${be.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{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 C from"../table/table.js";import b 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:B})=>{var k,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),Ce=p.responses.find((e=>Number(e.code)===ue.value))||"{}",be=n(-1),Ne=(e,s,n)=>{const o=X.map(((o,i)=>i===n?Object.assign(Object.assign({},o),{[e]:s}):o));K(o)},fe=(s,n)=>Object.keys(s).map(((o,r)=>{var t,c,v,h,x,g,C,b,N,D,S,$,A;const B=s[o];return{id:`header_${r}`,paramName:o,paramType:y("header"),schemaType:`${y(null===(t=null==B?void 0:B.schema)||void 0===t?void 0:t.type)||""} ${"array"==(null===(v=null===(c=null==B?void 0:B.schema)||void 0===c?void 0:c.type)||void 0===v?void 0:v.toLowerCase())&&(null===(h=null==B?void 0:B.schema)||void 0===h?void 0:h.items)&&(null===(g=null===(x=null==B?void 0:B.schema)||void 0===x?void 0:x.items)||void 0===g?void 0:g.type)?` _ ${y(null===(b=null===(C=null==B?void 0:B.schema)||void 0===C?void 0:C.items)||void 0===b?void 0:b.type)}`:""}`,required:e.jsx(e.Fragment,{children:I?B.required?"True":"False":e.jsx(i.Switch,{checked:B.required,onClick:()=>{if(I)return null;T(`responses[${n}].headers[${o}].required`,!B.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:B.description,disabled:I,maxLength:120,onChange:e=>{(""===e||w.ASCII.test(e))&&T(`responses[${be.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=B.description)||void 0===e?void 0:e.trim()),null===(s=J[r])||void 0===s||s.hide()},disabled:!(null===(D=B.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:()=>De(r,o)})]}),enum:e.jsx(e.Fragment,{children:I?e.jsx("span",{className:"enumText",children:null===(A=null===($=null==B?void 0:B.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"})})})()})})}})),we=(e,s)=>{se(e),le(s),U(!0)},De=(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,C,b,N,D,S,$,A,B,k,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;Ne("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===(C=p.parameters[n].description)||void 0===C?void 0:C.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))&&Ne("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===(b=s.description)||void 0===b?void 0:b.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:()=>we(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===(k=null===(B=null===(A=p.parameters[n])||void 0===A?void 0:A.schema)||void 0===B?void 0:B.type)||void 0===k?void 0:k.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),be.current=e,e>=0&&de(fe(p.responses[e].headers,e))}}),[ue,p.responses,T]),o((()=>{be.current&&be.current>-1&&de(fe(p.responses[be.current].headers,be.current))}),[p.responses,be.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",{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===(k=null==v?void 0:v[null==p?void 0:p.type])||void 0===k?void 0:k.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==B?void 0:B.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(C,{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(C,{id:"paramter-response-table",data:ae,headCells:h,isFormOpen:P,setIsFormOpen:z,saveNewRow:e=>{T(`responses[${be.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(b,{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(b,{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[be.current].headers).filter((([e])=>e!=ie)));T(`responses[${be.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};
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 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 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>\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 />\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","currentResponse","responses","find","res","Number","indexRef","useRef","onTableChange","key","index","newTableData","item","tIndex","Object","assign","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","current","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","useEffect","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","Accordion","expanded","methodAccordion","summary","methodSummaryContainer","methodSummary","methodColorMapping","methodLabel","methodPath","methodExpandArrowContainer","DownArrowIcon","methodAccordionContent","SimpleLabelValue","methodDesc","onClear","errorMsg","SelectGroup","i","options","list","isMultiple","withSearch","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 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 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>\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","currentResponse","responses","find","res","Number","indexRef","useRef","onTableChange","key","index","newTableData","item","tIndex","Object","assign","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","current","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","useEffect","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","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,2 +1,2 @@
1
- import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as l}from"react";import{d as a}from"../../../_virtual/index.js";import i from"../Tooltip/Tooltip.js";import t from"../SVGLoader/SVGLoader.js";import s from"../../assets/icons/DeleteIcon.svg.js";import n from"../../assets/icons/EditIcon.svg.js";import d from"../../assets/icons/AddRow.svg.js";import r from"../../assets/icons/Plus.svg.js";import o from"../../assets/icons/PlusSquare.svg.js";import c from"../MethodAccordion/MethodAccordion.module.scss.js";import{useFormik as m}from"../../../node_modules/formik/dist/formik.esm.js";import{object as u,string as v,array as h,bool as p}from"../../../node_modules/yup/index.esm.js";import{capitalize as b}from"../../helpers/methodAccordion.helper.js";import j from"../../constants/regex.js";const x=({id:x,headCells:N,data:y,isFormOpen:C,setIsFormOpen:g,saveNewRow:w,readOnly:T,isRequest:D=!0})=>{var f,I,E,S,q,B,k,_,A,P,O,L,R,F,M,V,W,X,G,z,H,U,$;const[K,Q]=l(""),[Y,Z]=l(null),[J,ee]=l(null),[le,ae]=l([]),{values:ie,errors:te,setFieldValue:se,isValid:ne,submitForm:de,resetForm:re}=m({validateOnMount:!0,initialValues:{name:"",in:D?"query":"header",schema:{type:"string",enum:[],items:{type:"string"}},required:!0,description:""},validationSchema:u().shape({name:v().default("").trim().required("Parameter name is required"),in:v().required("Paramter type is required"),schema:u().shape({type:v().required("Parameter schema type is required"),enum:h(v()).optional(),items:u().shape({type:v().optional()})}),required:p().when("in",{is:"path",then:e=>e.oneOf([!0],"Path parameters must be required."),otherwise:e=>e.optional()}),description:v().default("").trim().optional()}),onSubmit:e=>{var l,a,i,t;e&&!(null===(a=null===(l=null==e?void 0:e.schema)||void 0===l?void 0:l.items)||void 0===a?void 0:a.type)&&(null===(t=null===(i=null==e?void 0:e.schema)||void 0===i?void 0:i.items)||void 0===t||delete t.type),w(e),g(void 0),Q(""),re()}});return e.jsx("div",{className:"tableSectionContainer",children:e.jsx("div",{className:"tableContainer",children:e.jsxs("table",{id:x||"",className:"table borderRadiusTop borderRadiusBottom",children:[e.jsx("thead",{className:"tableHead",children:e.jsx("tr",{children:null==N?void 0:N.map((l=>e.jsx("th",{className:`tableHeadCell ${l.classes||""}`,style:{width:l.width,minWidth:l.minWidth},children:e.jsx("div",{className:"headContainer","data-id":`${"string"==typeof l.label?l.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g,"_"):"UNKNOWN_LABEL"}_COLUMN`,children:l.label})},l.id)))})}),e.jsxs("tbody",{className:"tableBody","data-id":"TABLE_BODY",children:[null==y?void 0:y.map(((l,a)=>e.jsx("tr",{"data-i":a,className:"row",children:null==N?void 0:N.map((a=>{const i="_"!==l[a.id]&&e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",style:{width:a.width,minWidth:a.minWidth},children:l[a.id]});return e.jsx("td",{style:{width:a.width,minWidth:a.minWidth},children:i},a.id)}))},a))),0===(null==y?void 0:y.length)&&T&&e.jsx("tr",{className:"fallbackTableRow",children:e.jsx("td",{className:"fallbackContainer",colSpan:null==N?void 0:N.length,children:e.jsx("div",{className:"fallbackTextContainer",children:e.jsx("span",{className:"fallbackText",children:" No Data Available"})})})}),C&&!T?e.jsxs("tr",{className:"row",children:[e.jsx("td",{children:e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:e.jsx(a.Input,{placeholder:"Parameter name",size:"large",type:"text",onChange:e=>{(""===e||j.ASCII.test(e))&&se("name",e)},value:ie.name,disabled:T})})},"Parameter name"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx(a.SelectGroupV2,{disabled:T,value:{label:b(ie.in),value:ie.in},onChange:e=>{var l;se("in",null===(l=null==e?void 0:e.value)||void 0===l?void 0:l.toLowerCase()),"in"==(null==e?void 0:e.value)&&se("required",!0)},options:[{list:D?[{label:"Query",value:"query"},{label:"Header",value:"header"},{label:"Path",value:"path"},{label:"Body",value:"body"}]:[{label:"Header",value:"header"}]}],errorMsg:!!te.in&&te.in,isMultiple:!1,withSearch:!1,clearable:!1})," "]})},"parameter in"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData select-inputs",children:[e.jsx(a.SelectGroupV2,{disabled:T,clearable:!1,value:{label:b(null===(f=null==ie?void 0:ie.schema)||void 0===f?void 0:f.type),value:null===(I=null==ie?void 0:ie.schema)||void 0===I?void 0:I.type},errorMsg:!!te.schema&&te.schema,onChange:e=>{var l;return se("schema.type",null===(l=null==e?void 0:e.value)||void 0===l?void 0:l.toLowerCase())},options:[{list:[{label:"String",value:"string"},{label:"Integer",value:"integer"},{label:"Boolean",value:"boolean"},{label:"Object",value:"object"},{label:"Array",value:"array"},{label:"Number",value:"number"}]}],isMultiple:!1,withSearch:!1})," ",(null===(E=null==ie?void 0:ie.schema)||void 0===E?void 0:E.type)&&"array"===(null===(S=null==ie?void 0:ie.schema)||void 0===S?void 0:S.type.toLowerCase())?e.jsx(a.SelectGroupV2,{disabled:T,clearable:!1,value:{label:b(null===(B=null===(q=null==ie?void 0:ie.schema)||void 0===q?void 0:q.items)||void 0===B?void 0:B.type),value:null===(_=null===(k=ie.schema)||void 0===k?void 0:k.items)||void 0===_?void 0:_.type},errorMsg:!!(null===(P=null===(A=null==te?void 0:te.schema)||void 0===A?void 0:A.items)||void 0===P?void 0:P.type)&&(null===(L=null===(O=null==te?void 0:te.schema)||void 0===O?void 0:O.items)||void 0===L?void 0:L.type),onChange:e=>{var l;return se("schema.items.type",null===(l=null==e?void 0:e.value)||void 0===l?void 0:l.toLowerCase())},options:[{list:[{label:"String",value:"string"},{label:"Integer",value:"integer"},{label:"Boolean",value:"boolean"},{label:"Object",value:"object"},{label:"Array",value:"array"},{label:"Number",value:"number"}]}],isMultiple:!1,withSearch:!1}):""]})},"parameter schema type"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[(null==ie?void 0:ie.schema)?e.jsx(i,{disabled:"array"==(null===(F=null===(R=null==ie?void 0:ie.schema)||void 0===R?void 0:R.type)||void 0===F?void 0:F.toLowerCase())||"object"==(null===(V=null===(M=null==ie?void 0:ie.schema)||void 0===M?void 0:M.type)||void 0===V?void 0:V.toLowerCase()),arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>ee(e),content:e.jsxs("div",{className:c.editDescTooltipContent,children:[e.jsx("p",{className:c.editDescTooltipContent_header,children:"Enum"}),!!(null===(W=null==ie?void 0:ie.schema)||void 0===W?void 0:W.enum)&&!!(null===(X=null==ie?void 0:ie.schema)||void 0===X?void 0:X.enum.length)&&(null===(z=null===(G=null==ie?void 0:ie.schema)||void 0===G?void 0:G.enum)||void 0===z?void 0:z.map(((l,i)=>e.jsx(a.Input,{className:"methodDescForEnum",required:!0,clearable:!1,placeholder:"Enter Enum value...",value:l,onChange:e=>{se(`schema.enum[${i}]`,e)}},i)))),le&&(null==le?void 0:le.map(((l,i)=>e.jsx(a.Input,{className:"methodDescForEnum",required:!0,clearable:!1,placeholder:"Enter Enum value...",value:l,onChange:e=>{let l=[...le];l[i]=e,ae(l)}},i)))),e.jsxs("p",{className:"addEnumButton",onClick:()=>{ae((e=>[...e,""]))},children:[e.jsx(t,{src:o}),"Add New Enum"]}),!T&&e.jsx(a.Button,{className:c.editDescTooltipContent_btn,variant:"outlined",size:"small",type:"button",onClick:()=>{var e;se("schema.enum",[...null===(e=null==ie?void 0:ie.schema)||void 0===e?void 0:e.enum,...le]),ae([]),null==J||J.hide()},disabled:le.length>0&&(null==le?void 0:le.filter((e=>!e)).length)||(null===(H=null==ie?void 0:ie.schema)||void 0===H?void 0:H.enum.length)>0&&(null===($=null===(U=null==ie?void 0:ie.schema)||void 0===U?void 0:U.enum)||void 0===$?void 0:$.filter((e=>!e)).length),children:"Apply"})]}),children:e.jsx(a.Button,{className:c.editDescBtn,id:"EnumButton",variant:"link",color:"action",endIcon:e.jsx(t,{id:"enumIcon",src:r,width:"1.5rem",height:"1.5rem"}),children:"Add"})}):"-"," "]})},"parameter enum"),e.jsx("td",{children:e.jsx("div",{"data-id":"is required",className:"tableData",children:T?e.jsx(e.Fragment,{children:ie.required?"True":"False"}):e.jsx(a.Switch,{checked:!(!ie||!ie.in||"path"!=ie.in.toLowerCase())||ie.required,disabled:ie&&ie.in&&"path"==ie.in.toLowerCase(),onClick:()=>{T||se("required",!ie.required)}})})},"parameter required"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsxs("div",{className:c.paramDescContainer,children:[e.jsx(i,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>Z(e),content:e.jsxs("div",{className:c.editDescTooltipContent,children:[e.jsx("p",{className:c.editDescTooltipContent_header,children:"Description"}),e.jsx(a.TextArea,{value:K||ie.description,onChange:e=>{(""===e||j.ASCII.test(e))&&Q(e)},disabled:T,placeholder:"Describe parameter...",maxLength:120}),!T&&e.jsx(a.Button,{className:c.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{se("description",null==K?void 0:K.trim()),null==Y||Y.hide()},disabled:""===(null==K?void 0:K.trim()),children:"Apply"})]}),children:e.jsxs(a.Button,{className:c.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(t,{src:n,width:"1.5rem",height:"1.5rem"}),children:[T?"View ":"Add "," Description"]})}),e.jsx("div",{className:c.paramDescContainer_separator}),!T&&e.jsx(a.Button,{className:c.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(t,{src:s,width:"1.125rem",height:"1.125rem"}),onClick:()=>{re(),Q(""),g(void 0)}}),!T&&e.jsx(i,{disabled:!!ie.name.trim(),content:"Parameter name can't be empty ",children:e.jsx(a.Button,{className:c.deleteParamBtn,variant:"link",color:"success",disabled:!ie.name.trim(),endIcon:e.jsx(t,{src:d,width:"0.125rem",height:"0.125rem"}),onClick:()=>{Q(""),de()}})})]})," "]})},"parameter schema desc")]}):e.jsx(e.Fragment,{children:!T&&e.jsx("tr",{"data-i":"addNew",className:"row",children:e.jsx("td",{colSpan:5,children:e.jsx(a.Button,{variant:"link",color:"primary",onClick:()=>{g((e=>e?void 0:D?"Req":"Res"))},children:"+ Add Parameter"})})},"addNew")})]})]})})})};export{x as default};
1
+ import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as l}from"react";import{d as a}from"../../../_virtual/index.js";import i from"../Tooltip/Tooltip.js";import t from"../SVGLoader/SVGLoader.js";import s from"../../assets/icons/DeleteIcon.svg.js";import n from"../../assets/icons/EditIcon.svg.js";import d from"../../assets/icons/AddRow.svg.js";import r from"../../assets/icons/Plus.svg.js";import o from"../../assets/icons/PlusSquare.svg.js";import c from"../MethodAccordion/MethodAccordion.module.scss.js";import{useFormik as m}from"../../../node_modules/formik/dist/formik.esm.js";import{object as u,string as v,array as h,bool as p}from"../../../node_modules/yup/index.esm.js";import{capitalize as b}from"../../helpers/methodAccordion.helper.js";import j from"../../constants/regex.js";const x=({id:x,headCells:N,data:y,isFormOpen:C,setIsFormOpen:g,saveNewRow:w,readOnly:T,isRequest:D=!0})=>{var f,I,E,S,q,B,k,_,A,P,O,L,R,F,M,V,W,X,G,z,H,U,$;const[K,Q]=l(""),[Y,Z]=l(null),[J,ee]=l(null),[le,ae]=l([]),{values:ie,errors:te,setFieldValue:se,isValid:ne,submitForm:de,resetForm:re}=m({validateOnMount:!0,initialValues:{name:"",in:D?"query":"header",schema:{type:"string",enum:[],items:{type:"string"}},required:!0,description:""},validationSchema:u().shape({name:v().default("").trim().required("Parameter name is required"),in:v().required("Paramter type is required"),schema:u().shape({type:v().required("Parameter schema type is required"),enum:h(v()).optional(),items:u().shape({type:v().optional()})}),required:p().when("in",{is:"path",then:e=>e.oneOf([!0],"Path parameters must be required."),otherwise:e=>e.optional()}),description:v().default("").trim().optional()}),onSubmit:e=>{var l,a,i,t;e&&!(null===(a=null===(l=null==e?void 0:e.schema)||void 0===l?void 0:l.items)||void 0===a?void 0:a.type)&&(null===(t=null===(i=null==e?void 0:e.schema)||void 0===i?void 0:i.items)||void 0===t||delete t.type),w(e),g(void 0),Q(""),re()}});return e.jsx("div",{className:"tableSectionContainer",children:e.jsx("div",{className:"tableContainer",children:e.jsxs("table",{id:x||"",className:"table borderRadiusTop borderRadiusBottom",children:[e.jsx("thead",{className:"tableHead",children:e.jsx("tr",{children:null==N?void 0:N.map((l=>e.jsx("th",{className:`tableHeadCell ${l.classes||""}`,style:{width:l.width,minWidth:l.minWidth},children:e.jsx("div",{className:"headContainer","data-id":`${"string"==typeof l.label?l.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g,"_"):"UNKNOWN_LABEL"}_COLUMN`,children:l.label})},l.id)))})}),e.jsxs("tbody",{className:"tableBody","data-id":"TABLE_BODY",children:[null==y?void 0:y.map(((l,a)=>e.jsx("tr",{"data-i":a,className:"row",children:null==N?void 0:N.map((a=>{const i="_"!==l[a.id]&&e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",style:{width:a.width,minWidth:a.minWidth},children:l[a.id]});return e.jsx("td",{style:{width:a.width,minWidth:a.minWidth},children:i},a.id)}))},a))),0===(null==y?void 0:y.length)&&T&&e.jsx("tr",{className:"fallbackTableRow",children:e.jsx("td",{className:"fallbackContainer",colSpan:null==N?void 0:N.length,children:e.jsx("div",{className:"fallbackTextContainer",children:e.jsx("span",{className:"fallbackText",children:" No Data Available"})})})}),C&&!T?e.jsxs("tr",{className:"row",children:[e.jsx("td",{children:e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:e.jsx(a.Input,{placeholder:"Parameter name",size:"large",type:"text",onChange:e=>{(""===e||j.ASCII.test(e))&&se("name",e)},value:ie.name,disabled:T})})},"Parameter name"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx(a.SelectGroupV2,{disabled:T,value:{label:b(ie.in),value:ie.in},onChange:e=>{var l;se("in",null===(l=null==e?void 0:e.value)||void 0===l?void 0:l.toLowerCase()),"in"==(null==e?void 0:e.value)&&se("required",!0)},options:[{list:D?[{label:"Query",value:"query"},{label:"Header",value:"header"},{label:"Path",value:"path"}]:[{label:"Header",value:"header"}]}],errorMsg:!!te.in&&te.in,isMultiple:!1,withSearch:!1,clearable:!1})," "]})},"parameter in"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData select-inputs",children:[e.jsx(a.SelectGroupV2,{disabled:T,clearable:!1,value:{label:b(null===(f=null==ie?void 0:ie.schema)||void 0===f?void 0:f.type),value:null===(I=null==ie?void 0:ie.schema)||void 0===I?void 0:I.type},errorMsg:!!te.schema&&te.schema,onChange:e=>{var l;return se("schema.type",null===(l=null==e?void 0:e.value)||void 0===l?void 0:l.toLowerCase())},options:[{list:[{label:"String",value:"string"},{label:"Integer",value:"integer"},{label:"Boolean",value:"boolean"},{label:"Object",value:"object"},{label:"Array",value:"array"},{label:"Number",value:"number"}]}],isMultiple:!1,withSearch:!1})," ",(null===(E=null==ie?void 0:ie.schema)||void 0===E?void 0:E.type)&&"array"===(null===(S=null==ie?void 0:ie.schema)||void 0===S?void 0:S.type.toLowerCase())?e.jsx(a.SelectGroupV2,{disabled:T,clearable:!1,value:{label:b(null===(B=null===(q=null==ie?void 0:ie.schema)||void 0===q?void 0:q.items)||void 0===B?void 0:B.type),value:null===(_=null===(k=ie.schema)||void 0===k?void 0:k.items)||void 0===_?void 0:_.type},errorMsg:!!(null===(P=null===(A=null==te?void 0:te.schema)||void 0===A?void 0:A.items)||void 0===P?void 0:P.type)&&(null===(L=null===(O=null==te?void 0:te.schema)||void 0===O?void 0:O.items)||void 0===L?void 0:L.type),onChange:e=>{var l;return se("schema.items.type",null===(l=null==e?void 0:e.value)||void 0===l?void 0:l.toLowerCase())},options:[{list:[{label:"String",value:"string"},{label:"Integer",value:"integer"},{label:"Boolean",value:"boolean"},{label:"Object",value:"object"},{label:"Array",value:"array"},{label:"Number",value:"number"}]}],isMultiple:!1,withSearch:!1}):""]})},"parameter schema type"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[(null==ie?void 0:ie.schema)?e.jsx(i,{disabled:"array"==(null===(F=null===(R=null==ie?void 0:ie.schema)||void 0===R?void 0:R.type)||void 0===F?void 0:F.toLowerCase())||"object"==(null===(V=null===(M=null==ie?void 0:ie.schema)||void 0===M?void 0:M.type)||void 0===V?void 0:V.toLowerCase()),arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>ee(e),content:e.jsxs("div",{className:c.editDescTooltipContent,children:[e.jsx("p",{className:c.editDescTooltipContent_header,children:"Enum"}),!!(null===(W=null==ie?void 0:ie.schema)||void 0===W?void 0:W.enum)&&!!(null===(X=null==ie?void 0:ie.schema)||void 0===X?void 0:X.enum.length)&&(null===(z=null===(G=null==ie?void 0:ie.schema)||void 0===G?void 0:G.enum)||void 0===z?void 0:z.map(((l,i)=>e.jsx(a.Input,{className:"methodDescForEnum",required:!0,clearable:!1,placeholder:"Enter Enum value...",value:l,onChange:e=>{se(`schema.enum[${i}]`,e)}},i)))),le&&(null==le?void 0:le.map(((l,i)=>e.jsx(a.Input,{className:"methodDescForEnum",required:!0,clearable:!1,placeholder:"Enter Enum value...",value:l,onChange:e=>{let l=[...le];l[i]=e,ae(l)}},i)))),e.jsxs("p",{className:"addEnumButton",onClick:()=>{ae((e=>[...e,""]))},children:[e.jsx(t,{src:o}),"Add New Enum"]}),!T&&e.jsx(a.Button,{className:c.editDescTooltipContent_btn,variant:"outlined",size:"small",type:"button",onClick:()=>{var e;se("schema.enum",[...null===(e=null==ie?void 0:ie.schema)||void 0===e?void 0:e.enum,...le]),ae([]),null==J||J.hide()},disabled:le.length>0&&(null==le?void 0:le.filter((e=>!e)).length)||(null===(H=null==ie?void 0:ie.schema)||void 0===H?void 0:H.enum.length)>0&&(null===($=null===(U=null==ie?void 0:ie.schema)||void 0===U?void 0:U.enum)||void 0===$?void 0:$.filter((e=>!e)).length),children:"Apply"})]}),children:e.jsx(a.Button,{className:c.editDescBtn,id:"EnumButton",variant:"link",color:"action",endIcon:e.jsx(t,{id:"enumIcon",src:r,width:"1.5rem",height:"1.5rem"}),children:"Add"})}):"-"," "]})},"parameter enum"),e.jsx("td",{children:e.jsx("div",{"data-id":"is required",className:"tableData",children:T?e.jsx(e.Fragment,{children:ie.required?"True":"False"}):e.jsx(a.Switch,{checked:!(!ie||!ie.in||"path"!=ie.in.toLowerCase())||ie.required,disabled:ie&&ie.in&&"path"==ie.in.toLowerCase(),onClick:()=>{T||se("required",!ie.required)}})})},"parameter required"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsxs("div",{className:c.paramDescContainer,children:[e.jsx(i,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>Z(e),content:e.jsxs("div",{className:c.editDescTooltipContent,children:[e.jsx("p",{className:c.editDescTooltipContent_header,children:"Description"}),e.jsx(a.TextArea,{value:K||ie.description,onChange:e=>{(""===e||j.ASCII.test(e))&&Q(e)},disabled:T,placeholder:"Describe parameter...",maxLength:120}),!T&&e.jsx(a.Button,{className:c.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{se("description",null==K?void 0:K.trim()),null==Y||Y.hide()},disabled:""===(null==K?void 0:K.trim()),children:"Apply"})]}),children:e.jsxs(a.Button,{className:c.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(t,{src:n,width:"1.5rem",height:"1.5rem"}),children:[T?"View ":"Add "," Description"]})}),e.jsx("div",{className:c.paramDescContainer_separator}),!T&&e.jsx(a.Button,{className:c.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(t,{src:s,width:"1.125rem",height:"1.125rem"}),onClick:()=>{re(),Q(""),g(void 0)}}),!T&&e.jsx(i,{disabled:!!ie.name.trim(),content:"Parameter name can't be empty ",children:e.jsx(a.Button,{className:c.deleteParamBtn,variant:"link",color:"success",disabled:!ie.name.trim(),endIcon:e.jsx(t,{src:d,width:"0.125rem",height:"0.125rem"}),onClick:()=>{Q(""),de()}})})]})," "]})},"parameter schema desc")]}):e.jsx(e.Fragment,{children:!T&&e.jsx("tr",{"data-i":"addNew",className:"row",children:e.jsx("td",{colSpan:6,children:e.jsx(a.Button,{variant:"link",color:"primary",onClick:()=>{g((e=>e?void 0:D?"Req":"Res"))},children:"+ Add Parameter"})})},"addNew")})]})]})})})};export{x as default};
2
2
  //# sourceMappingURL=table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport './style.scss'\nimport { Button, Input, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\nimport Tooltip from '../Tooltip/Tooltip'\nimport SVGLoader from '../SVGLoader/SVGLoader'\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\nimport PlusIcon from '../../assets/icons/Plus.svg'\nimport PlusSquare from '../../assets/icons/PlusSquare.svg'\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\nimport { useFormik } from 'formik'\nimport * as yup from 'yup'\nimport { capitalize } from '../../helpers/methodAccordion.helper'\nimport regex from '../../constants/regex'\n\nconst ParamterTable = ({\n id,\n headCells,\n data,\n isFormOpen,\n setIsFormOpen,\n saveNewRow,\n readOnly,\n isRequest = true,\n}) => {\n const [text, setText] = useState('')\n const [tooltipRef, setTooltipRef] = useState(null)\n const [tooltipEnumRef, setTooltipEnumRef] = useState(null)\n const [enumFields, setEnumFields] = useState<string[]>([])\n const { values, errors, setFieldValue, isValid, submitForm, resetForm } = useFormik({\n validateOnMount: true,\n initialValues: {\n name: '',\n in: isRequest ? 'query' : 'header',\n schema: {\n type: 'string',\n enum: [],\n items: {\n type: 'string',\n },\n },\n required: true,\n description: '',\n },\n validationSchema: yup.object().shape({\n name: yup.string().default('').trim().required('Parameter name is required'),\n in: yup.string().required('Paramter type is required'),\n schema: yup.object().shape({\n type: yup.string().required('Parameter schema type is required'),\n enum: yup.array(yup.string()).optional(),\n items: yup.object().shape({\n type: yup.string().optional(),\n }),\n }),\n required: yup.boolean().when('in', {\n is: 'path',\n then: (schema) => schema.oneOf([true], 'Path parameters must be required.'),\n otherwise: (schema) => schema.optional(),\n }),\n description: yup.string().default('').trim().optional(),\n }),\n onSubmit: (values) => {\n if (values && !values?.schema?.items?.type) {\n delete values?.schema?.items?.type\n }\n saveNewRow(values)\n setIsFormOpen(undefined)\n setText('')\n resetForm()\n },\n })\n\n return (\n <div className=\"tableSectionContainer\">\n <div className=\"tableContainer\">\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\n <thead className=\"tableHead\">\n <tr>\n {headCells?.map((headCell) => (\n <th\n key={headCell.id}\n className={`tableHeadCell ${headCell.classes || ''}`}\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\n >\n <div\n className=\"headContainer\"\n data-id={`${\n typeof headCell.label === 'string'\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\n : 'UNKNOWN_LABEL'\n }_COLUMN`}\n >\n {headCell.label}\n </div>\n </th>\n ))}\n </tr>\n </thead>\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\n {data?.map((row, rowIndex) => {\n return (\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\n {headCells?.map((headCell) => {\n const cellContent = row[headCell.id] !== '_' && (\n <div\n data-id=\"TEXT_DESCRIPTION\"\n className=\"tableData\"\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {row[headCell.id]}\n </div>\n )\n\n return (\n <td\n key={headCell.id}\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {cellContent}\n </td>\n )\n })}\n </tr>\n )\n })}\n {data?.length === 0 && readOnly && (\n <tr className=\"fallbackTableRow\">\n <td className=\"fallbackContainer\" colSpan={headCells?.length}>\n <div className=\"fallbackTextContainer\">\n <span className=\"fallbackText\"> No Data Available</span>\n </div>\n </td>\n </tr>\n )}\n\n {isFormOpen && !readOnly ? (\n <tr className={`row`}>\n <td key={'Parameter name'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <Input\n placeholder=\"Parameter name\"\n size=\"large\"\n type=\"text\"\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value as string))\n setFieldValue('name', value)\n }}\n value={values.name}\n disabled={readOnly}\n />\n </div>\n </td>\n\n <td key={'parameter in'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <SelectGroupV2\n disabled={readOnly}\n value={{\n label: capitalize(values.in),\n value: values.in,\n }}\n onChange={(item) => {\n setFieldValue('in', item?.value?.toLowerCase())\n if (item?.value == 'in') {\n setFieldValue('required', true)\n }\n }} // Updates state on selection\n options={[\n {\n list: isRequest\n ? [\n { label: 'Query', value: 'query' },\n { label: 'Header', value: 'header' },\n { label: 'Path', value: 'path' },\n { label: 'Body', value: 'body' },\n ]\n : [{ label: 'Header', value: 'header' }],\n },\n ]}\n errorMsg={!!errors.in && errors.in}\n isMultiple={false}\n withSearch={false}\n clearable={false}\n />{' '}\n </div>\n </td>\n\n <td key={'parameter schema type'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData select-inputs\">\n <SelectGroupV2\n disabled={readOnly}\n clearable={false}\n value={{\n label: capitalize(values?.schema?.type),\n value: values?.schema?.type,\n }}\n errorMsg={!!errors.schema && errors.schema}\n onChange={(item) => setFieldValue('schema.type', item?.value?.toLowerCase())} // Updates state on selection\n options={[\n {\n list: [\n { label: 'String', value: 'string' },\n { label: 'Integer', value: 'integer' },\n { label: 'Boolean', value: 'boolean' },\n { label: 'Object', value: 'object' },\n { label: 'Array', value: 'array' },\n { label: 'Number', value: 'number' },\n ],\n },\n ]}\n isMultiple={false}\n withSearch={false}\n />{' '}\n {!!values?.schema?.type && values?.schema?.type.toLowerCase() === 'array' ? (\n <SelectGroupV2\n disabled={readOnly}\n clearable={false}\n value={{\n label: capitalize(values?.schema?.items?.type),\n value: values.schema?.items?.type,\n }}\n errorMsg={!!errors?.schema?.items?.type && errors?.schema?.items?.type}\n onChange={(item) =>\n setFieldValue('schema.items.type', item?.value?.toLowerCase())\n } // Updates state on selection\n options={[\n {\n list: [\n { label: 'String', value: 'string' },\n { label: 'Integer', value: 'integer' },\n { label: 'Boolean', value: 'boolean' },\n { label: 'Object', value: 'object' },\n { label: 'Array', value: 'array' },\n { label: 'Number', value: 'number' },\n ],\n },\n ]}\n isMultiple={false}\n withSearch={false}\n />\n ) : (\n ''\n )}\n </div>\n </td>\n\n <td key={'parameter enum'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n {!!values?.schema ? (\n <Tooltip\n disabled={\n values?.schema?.type?.toLowerCase() == 'array' ||\n values?.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 {!!values?.schema?.enum &&\n !!values?.schema?.enum.length &&\n values?.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(`schema.enum[${index}]`, value)\n }}\n />\n ))}\n {enumFields &&\n enumFields?.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 let _values = [...enumFields]\n _values[index] = value\n setEnumFields(_values)\n }}\n />\n ))}\n <p\n className={'addEnumButton'}\n onClick={() => {\n setEnumFields((prev) => [...prev, ''])\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('schema.enum', [\n ...values?.schema?.enum,\n ...enumFields,\n ])\n setEnumFields([])\n tooltipEnumRef?.hide()\n }}\n disabled={\n (enumFields.length > 0 &&\n enumFields?.filter((item) => !item).length) ||\n (values?.schema?.enum.length > 0 &&\n values?.schema?.enum?.filter((item) => !item).length)\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\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 </Tooltip>\n ) : (\n '-'\n )}{' '}\n </div>\n </td>\n\n <td key={'parameter required'}>\n <div data-id=\"is required\" className=\"tableData\">\n {readOnly ? (\n <>{values.required ? 'True' : 'False'}</>\n ) : (\n <Switch\n checked={\n values && values.in && values.in.toLowerCase() == 'path'\n ? true\n : values.required\n }\n disabled={values && values.in && values.in.toLowerCase() == 'path'}\n onClick={() => {\n if (readOnly) {\n return\n }\n setFieldValue('required', !values.required)\n }}\n />\n )}\n </div>\n </td>\n\n <td key={'parameter schema desc'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <div className={styles.paramDescContainer}>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n value={text || values.description}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setText(value)\n }}\n disabled={readOnly}\n placeholder=\"Describe parameter...\"\n maxLength={120}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue('description', text?.trim())\n tooltipRef?.hide()\n }}\n disabled={text?.trim() === ''}\n >\n Apply\n </Button>\n )}\n </div>\n }\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 </Tooltip>\n\n <div className={styles.paramDescContainer_separator}></div>\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\n }\n onClick={() => {\n resetForm()\n setText('')\n setIsFormOpen(undefined)\n }} // Correctly delete the new row\n />\n )}\n\n {!readOnly && (\n <Tooltip\n disabled={!!values.name.trim()}\n content={`Parameter name can't be empty `}\n >\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"success\"\n disabled={!values.name.trim()}\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\n onClick={() => {\n setText('')\n submitForm()\n }} // Save the new row when clicked\n />\n </Tooltip>\n )}\n </div>{' '}\n </div>\n </td>\n </tr>\n ) : (\n <>\n {!readOnly && (\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\n <td colSpan={5}>\n <Button\n variant=\"link\"\n color=\"primary\"\n onClick={() => {\n setIsFormOpen((prev) => (!prev ? (isRequest ? 'Req' : 'Res') : undefined))\n }}\n >\n + Add Parameter\n </Button>\n </td>\n </tr>\n )}\n </>\n )}\n </tbody>\n </table>\n </div>\n </div>\n )\n}\n\nexport default ParamterTable\n"],"names":["ParamterTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","isRequest","text","setText","useState","tooltipRef","setTooltipRef","tooltipEnumRef","setTooltipEnumRef","enumFields","setEnumFields","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","validateOnMount","initialValues","name","in","schema","type","enum","items","required","description","validationSchema","yup.object","shape","yup.string","default","trim","yup.array","optional","yup.boolean","when","is","then","oneOf","otherwise","onSubmit","_b","_a","_d","_c","undefined","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","length","colSpan","Input","placeholder","size","onChange","value","regex","ASCII","test","disabled","SelectGroupV2","capitalize","item","toLowerCase","options","list","errorMsg","isMultiple","withSearch","clearable","_f","_e","_g","_h","_k","_j","_m","_l","Tooltip","_p","_o","_q","_r","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","styles","editDescTooltipContent","editDescTooltipContent_header","_s","_t","_v","_u","index","_values","onClick","prev","SVGLoader","src","PlusSquare","Button","editDescTooltipContent_btn","variant","hide","filter","_w","_y","_x","editDescBtn","color","endIcon","PlusIcon","height","Switch","checked","paramDescContainer","TextArea","maxLength","EditIcon","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport './style.scss'\nimport { Button, Input, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\nimport Tooltip from '../Tooltip/Tooltip'\nimport SVGLoader from '../SVGLoader/SVGLoader'\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\nimport PlusIcon from '../../assets/icons/Plus.svg'\nimport PlusSquare from '../../assets/icons/PlusSquare.svg'\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\nimport { useFormik } from 'formik'\nimport * as yup from 'yup'\nimport { capitalize } from '../../helpers/methodAccordion.helper'\nimport regex from '../../constants/regex'\n\nconst ParamterTable = ({\n id,\n headCells,\n data,\n isFormOpen,\n setIsFormOpen,\n saveNewRow,\n readOnly,\n isRequest = true,\n}) => {\n const [text, setText] = useState('')\n const [tooltipRef, setTooltipRef] = useState(null)\n const [tooltipEnumRef, setTooltipEnumRef] = useState(null)\n const [enumFields, setEnumFields] = useState<string[]>([])\n const { values, errors, setFieldValue, isValid, submitForm, resetForm } = useFormik({\n validateOnMount: true,\n initialValues: {\n name: '',\n in: isRequest ? 'query' : 'header',\n schema: {\n type: 'string',\n enum: [],\n items: {\n type: 'string',\n },\n },\n required: true,\n description: '',\n },\n validationSchema: yup.object().shape({\n name: yup.string().default('').trim().required('Parameter name is required'),\n in: yup.string().required('Paramter type is required'),\n schema: yup.object().shape({\n type: yup.string().required('Parameter schema type is required'),\n enum: yup.array(yup.string()).optional(),\n items: yup.object().shape({\n type: yup.string().optional(),\n }),\n }),\n required: yup.boolean().when('in', {\n is: 'path',\n then: (schema) => schema.oneOf([true], 'Path parameters must be required.'),\n otherwise: (schema) => schema.optional(),\n }),\n description: yup.string().default('').trim().optional(),\n }),\n onSubmit: (values) => {\n if (values && !values?.schema?.items?.type) {\n delete values?.schema?.items?.type\n }\n saveNewRow(values)\n setIsFormOpen(undefined)\n setText('')\n resetForm()\n },\n })\n\n return (\n <div className=\"tableSectionContainer\">\n <div className=\"tableContainer\">\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\n <thead className=\"tableHead\">\n <tr>\n {headCells?.map((headCell) => (\n <th\n key={headCell.id}\n className={`tableHeadCell ${headCell.classes || ''}`}\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\n >\n <div\n className=\"headContainer\"\n data-id={`${\n typeof headCell.label === 'string'\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\n : 'UNKNOWN_LABEL'\n }_COLUMN`}\n >\n {headCell.label}\n </div>\n </th>\n ))}\n </tr>\n </thead>\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\n {data?.map((row, rowIndex) => {\n return (\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\n {headCells?.map((headCell) => {\n const cellContent = row[headCell.id] !== '_' && (\n <div\n data-id=\"TEXT_DESCRIPTION\"\n className=\"tableData\"\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {row[headCell.id]}\n </div>\n )\n\n return (\n <td\n key={headCell.id}\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {cellContent}\n </td>\n )\n })}\n </tr>\n )\n })}\n {data?.length === 0 && readOnly && (\n <tr className=\"fallbackTableRow\">\n <td className=\"fallbackContainer\" colSpan={headCells?.length}>\n <div className=\"fallbackTextContainer\">\n <span className=\"fallbackText\"> No Data Available</span>\n </div>\n </td>\n </tr>\n )}\n\n {isFormOpen && !readOnly ? (\n <tr className={`row`}>\n <td key={'Parameter name'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <Input\n placeholder=\"Parameter name\"\n size=\"large\"\n type=\"text\"\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value as string))\n setFieldValue('name', value)\n }}\n value={values.name}\n disabled={readOnly}\n />\n </div>\n </td>\n\n <td key={'parameter in'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <SelectGroupV2\n disabled={readOnly}\n value={{\n label: capitalize(values.in),\n value: values.in,\n }}\n onChange={(item) => {\n setFieldValue('in', item?.value?.toLowerCase())\n if (item?.value == 'in') {\n setFieldValue('required', true)\n }\n }} // Updates state on selection\n options={[\n {\n list: isRequest\n ? [\n { label: 'Query', value: 'query' },\n { label: 'Header', value: 'header' },\n { label: 'Path', value: 'path' },\n ]\n : [{ label: 'Header', value: 'header' }],\n },\n ]}\n errorMsg={!!errors.in && errors.in}\n isMultiple={false}\n withSearch={false}\n clearable={false}\n />{' '}\n </div>\n </td>\n\n <td key={'parameter schema type'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData select-inputs\">\n <SelectGroupV2\n disabled={readOnly}\n clearable={false}\n value={{\n label: capitalize(values?.schema?.type),\n value: values?.schema?.type,\n }}\n errorMsg={!!errors.schema && errors.schema}\n onChange={(item) => setFieldValue('schema.type', item?.value?.toLowerCase())} // Updates state on selection\n options={[\n {\n list: [\n { label: 'String', value: 'string' },\n { label: 'Integer', value: 'integer' },\n { label: 'Boolean', value: 'boolean' },\n { label: 'Object', value: 'object' },\n { label: 'Array', value: 'array' },\n { label: 'Number', value: 'number' },\n ],\n },\n ]}\n isMultiple={false}\n withSearch={false}\n />{' '}\n {!!values?.schema?.type && values?.schema?.type.toLowerCase() === 'array' ? (\n <SelectGroupV2\n disabled={readOnly}\n clearable={false}\n value={{\n label: capitalize(values?.schema?.items?.type),\n value: values.schema?.items?.type,\n }}\n errorMsg={!!errors?.schema?.items?.type && errors?.schema?.items?.type}\n onChange={(item) =>\n setFieldValue('schema.items.type', item?.value?.toLowerCase())\n } // Updates state on selection\n options={[\n {\n list: [\n { label: 'String', value: 'string' },\n { label: 'Integer', value: 'integer' },\n { label: 'Boolean', value: 'boolean' },\n { label: 'Object', value: 'object' },\n { label: 'Array', value: 'array' },\n { label: 'Number', value: 'number' },\n ],\n },\n ]}\n isMultiple={false}\n withSearch={false}\n />\n ) : (\n ''\n )}\n </div>\n </td>\n\n <td key={'parameter enum'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n {!!values?.schema ? (\n <Tooltip\n disabled={\n values?.schema?.type?.toLowerCase() == 'array' ||\n values?.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 {!!values?.schema?.enum &&\n !!values?.schema?.enum.length &&\n values?.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(`schema.enum[${index}]`, value)\n }}\n />\n ))}\n {enumFields &&\n enumFields?.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 let _values = [...enumFields]\n _values[index] = value\n setEnumFields(_values)\n }}\n />\n ))}\n <p\n className={'addEnumButton'}\n onClick={() => {\n setEnumFields((prev) => [...prev, ''])\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('schema.enum', [\n ...values?.schema?.enum,\n ...enumFields,\n ])\n setEnumFields([])\n tooltipEnumRef?.hide()\n }}\n disabled={\n (enumFields.length > 0 &&\n enumFields?.filter((item) => !item).length) ||\n (values?.schema?.enum.length > 0 &&\n values?.schema?.enum?.filter((item) => !item).length)\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\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 </Tooltip>\n ) : (\n '-'\n )}{' '}\n </div>\n </td>\n\n <td key={'parameter required'}>\n <div data-id=\"is required\" className=\"tableData\">\n {readOnly ? (\n <>{values.required ? 'True' : 'False'}</>\n ) : (\n <Switch\n checked={\n values && values.in && values.in.toLowerCase() == 'path'\n ? true\n : values.required\n }\n disabled={values && values.in && values.in.toLowerCase() == 'path'}\n onClick={() => {\n if (readOnly) {\n return\n }\n setFieldValue('required', !values.required)\n }}\n />\n )}\n </div>\n </td>\n\n <td key={'parameter schema desc'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <div className={styles.paramDescContainer}>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n value={text || values.description}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setText(value)\n }}\n disabled={readOnly}\n placeholder=\"Describe parameter...\"\n maxLength={120}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue('description', text?.trim())\n tooltipRef?.hide()\n }}\n disabled={text?.trim() === ''}\n >\n Apply\n </Button>\n )}\n </div>\n }\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 </Tooltip>\n\n <div className={styles.paramDescContainer_separator}></div>\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\n }\n onClick={() => {\n resetForm()\n setText('')\n setIsFormOpen(undefined)\n }} // Correctly delete the new row\n />\n )}\n\n {!readOnly && (\n <Tooltip\n disabled={!!values.name.trim()}\n content={`Parameter name can't be empty `}\n >\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"success\"\n disabled={!values.name.trim()}\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\n onClick={() => {\n setText('')\n submitForm()\n }} // Save the new row when clicked\n />\n </Tooltip>\n )}\n </div>{' '}\n </div>\n </td>\n </tr>\n ) : (\n <>\n {!readOnly && (\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\n <td colSpan={6}>\n <Button\n variant=\"link\"\n color=\"primary\"\n onClick={() => {\n setIsFormOpen((prev) => (!prev ? (isRequest ? 'Req' : 'Res') : undefined))\n }}\n >\n + Add Parameter\n </Button>\n </td>\n </tr>\n )}\n </>\n )}\n </tbody>\n </table>\n </div>\n </div>\n )\n}\n\nexport default ParamterTable\n"],"names":["ParamterTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","isRequest","text","setText","useState","tooltipRef","setTooltipRef","tooltipEnumRef","setTooltipEnumRef","enumFields","setEnumFields","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","validateOnMount","initialValues","name","in","schema","type","enum","items","required","description","validationSchema","yup.object","shape","yup.string","default","trim","yup.array","optional","yup.boolean","when","is","then","oneOf","otherwise","onSubmit","_b","_a","_d","_c","undefined","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","length","colSpan","Input","placeholder","size","onChange","value","regex","ASCII","test","disabled","SelectGroupV2","capitalize","item","toLowerCase","options","list","errorMsg","isMultiple","withSearch","clearable","_f","_e","_g","_h","_k","_j","_m","_l","Tooltip","_p","_o","_q","_r","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","styles","editDescTooltipContent","editDescTooltipContent_header","_s","_t","_v","_u","index","_values","onClick","prev","SVGLoader","src","PlusSquare","Button","editDescTooltipContent_btn","variant","hide","filter","_w","_y","_x","editDescBtn","color","endIcon","PlusIcon","height","Switch","checked","paramDescContainer","TextArea","maxLength","EditIcon","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"../../../../../_virtual/jsx-runtime.js";import s from"../../../../components/SVGLoader/SVGLoader.js";import l from"../../../../assets/icons/DownArrow.svg.js";import i from"../../../../assets/icons/CopySticker.svg.js";import a from"../../../../assets/icons/RequestOption.svg.js";import t from"../../../../assets/icons/ArrowBack.svg.js";import{d}from"../../../../../_virtual/index.js";import{useState as o,useEffect as r}from"react";import{handleStatusColor as n}from"../../../../helpers/methodAccordion.helper.js";import{httpStatusCodes as c}from"../../../../constants/index.js";import h from"../../Codebox/style.module.scss.js";import m from"../../../../components/Tooltip/Tooltip.js";import{useSectionToggle as v,SectionEnum as p}from"../../../../context/SectionToggleContext.js";import{capitalizeFirstLetter as j}from"../../../../utils/index.js";const x=({data:x,setActiveType:u,setActiveItemData:b})=>{var N,y,f;const[C,g]=o("header"),{toggleSection:w}=v(),S=c.map((s=>({label:e.jsxs("div",{className:"statusCodeOptionContainer",children:[e.jsx("div",{className:"statusCodeOptionCircle",style:{backgroundColor:n(s)}}),e.jsx("span",{children:s})]}),value:s}))),[T,k]=o(null),[q,O]=o(S[4]),[R,A]=o({});return((null==x?void 0:x.parameters)||[]).filter((e=>{var s;return(null===(s=e.in)||void 0===s?void 0:s.toLowerCase())===C.toLowerCase()})),r((()=>{if(q&&q.value){const e=null==x?void 0:x.responses[q.value];A(null==e?void 0:e.headers)}}),[q]),e.jsxs("div",{className:"api-details-expanded",children:[e.jsxs("div",{className:"test-button",children:[e.jsx("button",{className:"back-button",onClick:()=>{w(x.api.apiSpecId,[{type:p.OVERVIEW,setTo:!0}],{resetOthers:!0,filterKeys:[p.RESOURCE]}),u("OVERVIEW"),b(x.api)},children:e.jsx(s,{src:t})}),e.jsx(m,{content:"Comming soon",children:e.jsx("button",{className:"disabled",children:"Test"})})]}),e.jsx("h3",{children:x.api.title}),e.jsx("h1",{className:"api-title",children:null==x?void 0:x.summary}),e.jsxs("div",{className:"url-box",children:[e.jsxs("div",{style:{textAlign:"center"},children:[e.jsx("span",{className:`method-label ${null===(N=null==x?void 0:x.method)||void 0===N?void 0:N.toLowerCase()}`,children:x.method}),e.jsx("span",{className:"url-text",children:null==x?void 0:x.path})]}),e.jsx("span",{className:"icon",onClick:()=>navigator.clipboard.writeText(null==x?void 0:x.path),children:e.jsx(s,{src:i})})]}),e.jsx("p",{className:"api-desc",children:(null==x?void 0:x.description)||"No Description"}),e.jsx("h3",{children:"Request"}),e.jsxs("div",{className:"request-section",children:[e.jsx("div",{className:"request-tabs",children:["header","path","query","Body"].map((l=>e.jsxs("button",{className:"tab "+(C===l?"active":""),onClick:()=>g(l),children:[e.jsx(s,{src:a,className:"icon-left"}),e.jsx("span",{className:"tab-label",children:"requestBody"===l?"Request Body":l.charAt(0).toUpperCase()+l.slice(1)})]},l)))}),e.jsx("div",{className:"table-wrapper",children:e.jsxs("table",{className:"param-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"head-table-label",children:"Parameter Name"}),e.jsx("th",{className:"head-table-label",children:"Required"}),e.jsx("th",{className:"head-table-label",children:"Type"}),e.jsx("th",{className:"head-table-label",children:"Enum"}),e.jsx("th",{className:"head-table-label",children:"Description"})]})}),e.jsx("tbody",{children:null===(y=x.parameters)||void 0===y?void 0:y.filter((e=>{var s;return(null===(s=e.in)||void 0===s?void 0:s.toLowerCase())===C.toLowerCase()})).map(((i,a)=>{var t,d,o,r,n,c,h;return e.jsxs("tr",{children:[e.jsx("td",{children:i.name}),e.jsx("td",{children:i.required?"True":"False"}),e.jsxs("td",{style:{textTransform:"capitalize"},children:[e.jsx("span",{children:(null===(t=null==i?void 0:i.schema)||void 0===t?void 0:t.type)||"-"}),"array"===(null===(d=null==i?void 0:i.schema)||void 0===d?void 0:d.type)&&(null===(r=null===(o=null==i?void 0:i.schema)||void 0===o?void 0:o.items)||void 0===r?void 0:r.type)&&e.jsxs("span",{style:{color:"#616874",fontSize:"0.75rem"},children:["_",j(null===(c=null===(n=i.schema)||void 0===n?void 0:n.items)||void 0===c?void 0:c.type)]})]}),e.jsx("td",{children:Array.isArray(null===(h=i.schema)||void 0===h?void 0:h.enum)?i.schema.enum.join(" / "):"-"}),e.jsxs("td",{className:"desc-cell",children:[e.jsx("div",{className:"desc-text "+(T===a?"expanded":""),children:i.description||"No description"}),e.jsx("button",{className:"desc-toggle",onClick:()=>k(T===a?null:a),children:e.jsx(s,{src:l,className:T===a?"rotated":""})})]})]},a)}))})]})})]}),e.jsxs("div",{className:"response-section",children:[e.jsx("h3",{children:"Response"}),e.jsx("div",{style:{width:"7.5rem",marginLeft:"auto"},children:(null===(f=Object.keys((null==x?void 0:x.responses)||{}))||void 0===f?void 0:f.length)>0&&e.jsx("div",{className:h.codeboxSection,children:e.jsx("div",{className:`${h.codeboxHeader}`,children:e.jsx(d.SelectGroup,{size:"small",withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:S}],value:q,onChange:e=>{O(e)}})})})}),e.jsxs("button",{className:"tab active ",children:[e.jsx(s,{src:a,className:"icon-left"}),"Header"]}),e.jsx("div",{className:"table-wrapper",children:e.jsxs("table",{className:"param-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"head-table-label",children:"Header Name"}),e.jsx("th",{className:"head-table-label",children:"Required"}),e.jsx("th",{className:"head-table-label",children:"Type"}),e.jsx("th",{className:"head-table-label",children:"Enum"}),e.jsx("th",{className:"head-table-label",children:"Description"})]})}),e.jsx("tbody",{children:!!R&&Object.keys(R)&&Object.keys(R).map((s=>{var l,i,a,t,d,o,r,n,c,h,m,v,p,x,u;return e.jsxs("tr",{children:[e.jsx("td",{children:s}),e.jsx("td",{children:null===(l=R[s])||void 0===l?void 0:l.required.toString()}),e.jsxs("td",{style:{textTransform:"capitalize"},children:[e.jsx("span",{children:(null===(a=null===(i=R[s])||void 0===i?void 0:i.schema)||void 0===a?void 0:a.type)||"-"}),"array"===(null===(d=null===(t=R[s])||void 0===t?void 0:t.schema)||void 0===d?void 0:d.type)&&(null===(n=null===(r=null===(o=R[s])||void 0===o?void 0:o.schema)||void 0===r?void 0:r.items)||void 0===n?void 0:n.type)&&e.jsxs("span",{style:{color:"#616874",fontSize:"0.75rem"},children:["_",j(null===(m=null===(h=null===(c=R[s])||void 0===c?void 0:c.schema)||void 0===h?void 0:h.items)||void 0===m?void 0:m.type)]})]}),e.jsx("td",{children:null===(x=null===(p=null===(v=R[s])||void 0===v?void 0:v.schema)||void 0===p?void 0:p.enum)||void 0===x?void 0:x.join("/")}),e.jsx("td",{children:null===(u=R[s])||void 0===u?void 0:u.description})]})}))})]})})]})]})};export{x as EndpointPage};
1
+ import{j as e}from"../../../../../_virtual/jsx-runtime.js";import s from"../../../../components/SVGLoader/SVGLoader.js";import l from"../../../../assets/icons/DownArrow.svg.js";import i from"../../../../assets/icons/CopySticker.svg.js";import a from"../../../../assets/icons/RequestOption.svg.js";import t from"../../../../assets/icons/ArrowBack.svg.js";import{d}from"../../../../../_virtual/index.js";import{useState as r,useEffect as o}from"react";import{handleStatusColor as n}from"../../../../helpers/methodAccordion.helper.js";import{httpStatusCodes as c}from"../../../../constants/index.js";import h from"../../Codebox/style.module.scss.js";import m from"../../../../components/Tooltip/Tooltip.js";import{useSectionToggle as v,SectionEnum as p}from"../../../../context/SectionToggleContext.js";import{capitalizeFirstLetter as j}from"../../../../utils/index.js";const u=({data:u,setActiveType:x,setActiveItemData:b})=>{var N,y,f;const[C,g]=r("header"),{toggleSection:w}=v(),O=c.map((s=>({label:e.jsxs("div",{className:"statusCodeOptionContainer",children:[e.jsx("div",{className:"statusCodeOptionCircle",style:{backgroundColor:n(s)}}),e.jsx("span",{children:s})]}),value:s}))),[S,T]=r(null),[k,q]=r(O[4]),[R,A]=r({});return((null==u?void 0:u.parameters)||[]).filter((e=>{var s;return(null===(s=e.in)||void 0===s?void 0:s.toLowerCase())===C.toLowerCase()})),o((()=>{if(k&&k.value){const e=null==u?void 0:u.responses[k.value];A(null==e?void 0:e.headers)}}),[k]),e.jsxs("div",{className:"api-details-expanded",children:[e.jsxs("div",{className:"test-button",children:[e.jsx("button",{className:"back-button",onClick:()=>{w(u.api.apiSpecId,[{type:p.OVERVIEW,setTo:!0}],{resetOthers:!0,filterKeys:[p.RESOURCE]}),x("OVERVIEW"),b(u.api)},children:e.jsx(s,{src:t})}),e.jsx(m,{content:"Comming soon",children:e.jsx("button",{className:"disabled",children:"Test"})})]}),e.jsx("h3",{children:u.api.title}),e.jsx("h1",{className:"api-title",children:null==u?void 0:u.summary}),e.jsxs("div",{className:"url-box",children:[e.jsxs("div",{style:{textAlign:"center"},children:[e.jsx("span",{className:`method-label ${null===(N=null==u?void 0:u.method)||void 0===N?void 0:N.toLowerCase()}`,children:u.method}),e.jsx("span",{className:"url-text",children:null==u?void 0:u.path})]}),e.jsx("span",{className:"icon",onClick:()=>navigator.clipboard.writeText(null==u?void 0:u.path),children:e.jsx(s,{src:i})})]}),e.jsx("p",{className:"api-desc",children:(null==u?void 0:u.description)||"No Description"}),e.jsx("h3",{children:"Request"}),e.jsxs("div",{className:"request-section",children:[e.jsxs("div",{className:"request-tabs",children:["// ? TODO: 'body' should be returned after discussing with PO",["header","path","query"].map((l=>e.jsxs("button",{className:"tab "+(C===l?"active":""),onClick:()=>g(l),children:[e.jsx(s,{src:a,className:"icon-left"}),e.jsx("span",{className:"tab-label",children:"requestBody"===l?"Request Body":l.charAt(0).toUpperCase()+l.slice(1)})]},l)))]}),e.jsx("div",{className:"table-wrapper",children:e.jsxs("table",{className:"param-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"head-table-label",children:"Parameter Name"}),e.jsx("th",{className:"head-table-label",children:"Required"}),e.jsx("th",{className:"head-table-label",children:"Type"}),e.jsx("th",{className:"head-table-label",children:"Enum"}),e.jsx("th",{className:"head-table-label",children:"Description"})]})}),e.jsx("tbody",{children:null===(y=u.parameters)||void 0===y?void 0:y.filter((e=>{var s;return(null===(s=e.in)||void 0===s?void 0:s.toLowerCase())===C.toLowerCase()})).map(((i,a)=>{var t,d,r,o,n,c,h;return e.jsxs("tr",{children:[e.jsx("td",{children:i.name}),e.jsx("td",{children:i.required?"True":"False"}),e.jsxs("td",{style:{textTransform:"capitalize"},children:[e.jsx("span",{children:(null===(t=null==i?void 0:i.schema)||void 0===t?void 0:t.type)||"-"}),"array"===(null===(d=null==i?void 0:i.schema)||void 0===d?void 0:d.type)&&(null===(o=null===(r=null==i?void 0:i.schema)||void 0===r?void 0:r.items)||void 0===o?void 0:o.type)&&e.jsxs("span",{style:{color:"#616874",fontSize:"0.75rem"},children:["_",j(null===(c=null===(n=i.schema)||void 0===n?void 0:n.items)||void 0===c?void 0:c.type)]})]}),e.jsx("td",{children:Array.isArray(null===(h=i.schema)||void 0===h?void 0:h.enum)?i.schema.enum.join(" / "):"-"}),e.jsxs("td",{className:"desc-cell",children:[e.jsx("div",{className:"desc-text "+(S===a?"expanded":""),children:i.description||"No description"}),e.jsx("button",{className:"desc-toggle",onClick:()=>T(S===a?null:a),children:e.jsx(s,{src:l,className:S===a?"rotated":""})})]})]},a)}))})]})})]}),e.jsxs("div",{className:"response-section",children:[e.jsx("h3",{children:"Response"}),e.jsx("div",{style:{width:"7.5rem",marginLeft:"auto"},children:(null===(f=Object.keys((null==u?void 0:u.responses)||{}))||void 0===f?void 0:f.length)>0&&e.jsx("div",{className:h.codeboxSection,children:e.jsx("div",{className:`${h.codeboxHeader}`,children:e.jsx(d.SelectGroup,{size:"small",withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:O}],value:k,onChange:e=>{q(e)}})})})}),e.jsxs("button",{className:"tab active ",children:[e.jsx(s,{src:a,className:"icon-left"}),"Header"]}),e.jsx("div",{className:"table-wrapper",children:e.jsxs("table",{className:"param-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"head-table-label",children:"Header Name"}),e.jsx("th",{className:"head-table-label",children:"Required"}),e.jsx("th",{className:"head-table-label",children:"Type"}),e.jsx("th",{className:"head-table-label",children:"Enum"}),e.jsx("th",{className:"head-table-label",children:"Description"})]})}),e.jsx("tbody",{children:!!R&&Object.keys(R)&&Object.keys(R).map((s=>{var l,i,a,t,d,r,o,n,c,h,m,v,p,u,x;return e.jsxs("tr",{children:[e.jsx("td",{children:s}),e.jsx("td",{children:null===(l=R[s])||void 0===l?void 0:l.required.toString()}),e.jsxs("td",{style:{textTransform:"capitalize"},children:[e.jsx("span",{children:(null===(a=null===(i=R[s])||void 0===i?void 0:i.schema)||void 0===a?void 0:a.type)||"-"}),"array"===(null===(d=null===(t=R[s])||void 0===t?void 0:t.schema)||void 0===d?void 0:d.type)&&(null===(n=null===(o=null===(r=R[s])||void 0===r?void 0:r.schema)||void 0===o?void 0:o.items)||void 0===n?void 0:n.type)&&e.jsxs("span",{style:{color:"#616874",fontSize:"0.75rem"},children:["_",j(null===(m=null===(h=null===(c=R[s])||void 0===c?void 0:c.schema)||void 0===h?void 0:h.items)||void 0===m?void 0:m.type)]})]}),e.jsx("td",{children:null===(u=null===(p=null===(v=R[s])||void 0===v?void 0:v.schema)||void 0===p?void 0:p.enum)||void 0===u?void 0:u.join("/")}),e.jsx("td",{children:null===(x=R[s])||void 0===x?void 0:x.description})]})}))})]})})]})]})};export{u as EndpointPage};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/layout/docsComponents/DocsContent/EndpointPage/index.tsx"],"sourcesContent":["import SVGLoader from '../../../../components/SVGLoader/SVGLoader'\nimport {\n ArrowBack,\n CopySticker,\n DownArrowIcon,\n RequestOption,\n} from '../../../../assets/icons/index'\nimport { SelectGroup } from 'digitinary-ui'\nimport { useEffect, useState } from 'react'\nimport { EndpointData, OverviewData } from 'src/layout/docsLayout'\nimport { handleStatusColor } from '../../../../helpers/methodAccordion.helper'\nimport { httpStatusCodes } from '../../../../constants/index'\nimport styles from '../../Codebox/style.module.scss'\nimport Tooltip from '../../../../components/Tooltip/Tooltip'\nimport './style.scss'\nimport { SectionEnum, useSectionToggle } from '../../../../../src/context/SectionToggleContext'\nimport { capitalizeFirstLetter } from '../../../../../src/utils'\n\nexport const EndpointPage = ({\n data,\n setActiveType,\n setActiveItemData,\n}: {\n data: EndpointData\n setActiveType: React.Dispatch<React.SetStateAction<'OVERVIEW' | 'ENDPOINT'>>\n setActiveItemData: React.Dispatch<React.SetStateAction<OverviewData | EndpointData>>\n}) => {\n const [activeTab, setActiveTab] = useState('header')\n const { toggleSection } = useSectionToggle()\n\n const httpStatusCodeOptions = httpStatusCodes.map((code) => ({\n label: (\n <div className={'statusCodeOptionContainer'}>\n <div\n className={'statusCodeOptionCircle'}\n style={{ backgroundColor: handleStatusColor(code) }}\n ></div>\n <span>{code}</span>\n </div>\n ),\n value: code,\n }))\n\n const [expanded, setExpanded] = useState(null)\n const [selectedResStatusCode, setSelectedResStatusCode] = useState(httpStatusCodeOptions[4])\n const [headersList, setHeadersList] = useState({})\n const requestTableData = (data?.parameters || []).filter(\n (param) => param.in?.toLowerCase() === activeTab.toLowerCase()\n )\n\n useEffect(() => {\n if (selectedResStatusCode && selectedResStatusCode.value) {\n const headerObj = data?.responses[selectedResStatusCode.value]\n setHeadersList(headerObj?.headers)\n }\n }, [selectedResStatusCode])\n\n return (\n <div className=\"api-details-expanded\">\n <div className=\"test-button\">\n <button\n className=\"back-button\"\n onClick={() => {\n toggleSection(data.api.apiSpecId, [{ type: SectionEnum.OVERVIEW, setTo: true }], {\n resetOthers: true,\n filterKeys: [SectionEnum.RESOURCE],\n })\n setActiveType('OVERVIEW')\n setActiveItemData(data.api)\n }}\n >\n <SVGLoader src={ArrowBack} />\n </button>\n\n <Tooltip content=\"Comming soon\">\n <button className=\"disabled\">Test</button>\n </Tooltip>\n </div>\n <h3>{data.api.title}</h3>\n <h1 className=\"api-title\">{data?.summary}</h1>\n <div className=\"url-box\">\n <div style={{ textAlign: 'center' }}>\n <span className={`method-label ${data?.method?.toLowerCase()}`}>{data.method}</span>\n <span className=\"url-text\">{data?.path}</span>\n </div>\n <span className=\"icon\" onClick={() => navigator.clipboard.writeText(data?.path)}>\n <SVGLoader src={CopySticker} />\n </span>\n </div>\n\n <p className=\"api-desc\">{data?.description || 'No Description'}</p>\n\n <h3>Request</h3>\n\n <div className=\"request-section\">\n <div className=\"request-tabs\">\n {['header', 'path', 'query', 'Body'].map((tab) => (\n <button\n key={tab}\n className={`tab ${activeTab === tab ? 'active' : ''}`}\n onClick={() => setActiveTab(tab)}\n >\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n <span className=\"tab-label\">\n {tab === 'requestBody'\n ? 'Request Body'\n : tab.charAt(0).toUpperCase() + tab.slice(1)}\n </span>\n </button>\n ))}\n </div>\n\n {\n <div className=\"table-wrapper\">\n <table className=\"param-table\">\n <thead>\n <tr>\n <th className=\"head-table-label\">Parameter Name</th>\n <th className=\"head-table-label\">Required</th>\n <th className=\"head-table-label\">Type</th>\n <th className=\"head-table-label\">Enum</th>\n <th className=\"head-table-label\">Description</th>\n </tr>\n </thead>\n <tbody>\n {data.parameters\n ?.filter((p) => p.in?.toLowerCase() === activeTab.toLowerCase())\n .map((row, index) => (\n <tr key={index}>\n <td>{row.name}</td>\n <td>{row.required ? 'True' : 'False'}</td>\n <td style={{ textTransform: 'capitalize' }}>\n <span>{row?.schema?.type || '-'}</span>\n {row?.schema?.type === 'array' && row?.schema?.items?.type && (\n <span style={{ color: '#616874', fontSize: '0.75rem' }}>\n _{capitalizeFirstLetter(row.schema?.items?.type)}\n </span>\n )}\n </td>\n <td>{Array.isArray(row.schema?.enum) ? row.schema.enum.join(' / ') : '-'}</td>\n <td className=\"desc-cell\">\n <div className={`desc-text ${expanded === index ? 'expanded' : ''}`}>\n {row.description || 'No description'}\n </div>\n <button\n className=\"desc-toggle\"\n onClick={() => setExpanded(expanded === index ? null : index)}\n >\n <SVGLoader\n src={DownArrowIcon}\n className={expanded === index ? 'rotated' : ''}\n />\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n }\n </div>\n\n <div className=\"response-section\">\n <h3>Response</h3>\n\n <div style={{ width: '7.5rem', marginLeft: 'auto' }}>\n {Object.keys(data?.responses || {})?.length > 0 && (\n <div className={styles.codeboxSection}>\n <div className={`${styles.codeboxHeader}`}>\n <SelectGroup\n size=\"small\"\n withSearch={false}\n isMultiple={false}\n clearable={false}\n placeholder=\"200\"\n options={[\n {\n list: httpStatusCodeOptions,\n },\n ]}\n value={selectedResStatusCode}\n onChange={(value) => {\n setSelectedResStatusCode(value)\n }}\n />\n </div>\n </div>\n )}\n </div>\n\n <button className=\"tab active \">\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n Header\n </button>\n\n <div className=\"table-wrapper\">\n <table className=\"param-table\">\n <thead>\n <tr>\n <th className=\"head-table-label\">Header Name</th>\n <th className=\"head-table-label\">Required</th>\n <th className=\"head-table-label\">Type</th>\n <th className=\"head-table-label\">Enum</th>\n <th className=\"head-table-label\">Description</th>\n </tr>\n </thead>\n <tbody>\n {!!headersList &&\n Object.keys(headersList) &&\n Object.keys(headersList).map((key) => (\n <tr>\n <td>{key}</td>\n <td>{headersList[key]?.required.toString()}</td>\n <td style={{ textTransform: 'capitalize' }}>\n <span>{headersList[key]?.schema?.type || '-'}</span>\n {headersList[key]?.schema?.type === 'array' &&\n headersList[key]?.schema?.items?.type && (\n <span style={{ color: '#616874', fontSize: '0.75rem' }}>\n _{capitalizeFirstLetter(headersList[key]?.schema?.items?.type)}\n </span>\n )}\n </td>\n <td>{headersList[key]?.schema?.enum?.join('/')}</td>\n <td>{headersList[key]?.description}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n )\n}\n"],"names":["EndpointPage","data","setActiveType","setActiveItemData","activeTab","setActiveTab","useState","toggleSection","useSectionToggle","httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","jsxs","className","children","_jsx","style","backgroundColor","handleStatusColor","value","expanded","setExpanded","selectedResStatusCode","setSelectedResStatusCode","headersList","setHeadersList","parameters","filter","param","in","_a","toLowerCase","useEffect","headerObj","responses","headers","onClick","api","apiSpecId","type","SectionEnum","OVERVIEW","setTo","resetOthers","filterKeys","RESOURCE","SVGLoader","src","ArrowBack","Tooltip","content","jsx","title","summary","textAlign","method","path","navigator","clipboard","writeText","CopySticker","description","tab","RequestOption","charAt","toUpperCase","slice","_b","p","row","index","name","required","textTransform","schema","_d","_c","items","color","fontSize","capitalizeFirstLetter","_f","_e","Array","isArray","_g","enum","join","DownArrowIcon","width","marginLeft","Object","keys","length","styles","codeboxSection","codeboxHeader","SelectGroup","size","withSearch","isMultiple","clearable","placeholder","options","list","onChange","key","toString","_h","_k","_j","_p","_o","_q"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/layout/docsComponents/DocsContent/EndpointPage/index.tsx"],"sourcesContent":["import SVGLoader from '../../../../components/SVGLoader/SVGLoader'\nimport {\n ArrowBack,\n CopySticker,\n DownArrowIcon,\n RequestOption,\n} from '../../../../assets/icons/index'\nimport { SelectGroup } from 'digitinary-ui'\nimport { useEffect, useState } from 'react'\nimport { EndpointData, OverviewData } from 'src/layout/docsLayout'\nimport { handleStatusColor } from '../../../../helpers/methodAccordion.helper'\nimport { httpStatusCodes } from '../../../../constants/index'\nimport styles from '../../Codebox/style.module.scss'\nimport Tooltip from '../../../../components/Tooltip/Tooltip'\nimport './style.scss'\nimport { SectionEnum, useSectionToggle } from '../../../../../src/context/SectionToggleContext'\nimport { capitalizeFirstLetter } from '../../../../../src/utils'\n\nexport const EndpointPage = ({\n data,\n setActiveType,\n setActiveItemData,\n}: {\n data: EndpointData\n setActiveType: React.Dispatch<React.SetStateAction<'OVERVIEW' | 'ENDPOINT'>>\n setActiveItemData: React.Dispatch<React.SetStateAction<OverviewData | EndpointData>>\n}) => {\n const [activeTab, setActiveTab] = useState('header')\n const { toggleSection } = useSectionToggle()\n\n const httpStatusCodeOptions = httpStatusCodes.map((code) => ({\n label: (\n <div className={'statusCodeOptionContainer'}>\n <div\n className={'statusCodeOptionCircle'}\n style={{ backgroundColor: handleStatusColor(code) }}\n ></div>\n <span>{code}</span>\n </div>\n ),\n value: code,\n }))\n\n const [expanded, setExpanded] = useState(null)\n const [selectedResStatusCode, setSelectedResStatusCode] = useState(httpStatusCodeOptions[4])\n const [headersList, setHeadersList] = useState({})\n const requestTableData = (data?.parameters || []).filter(\n (param) => param.in?.toLowerCase() === activeTab.toLowerCase()\n )\n\n useEffect(() => {\n if (selectedResStatusCode && selectedResStatusCode.value) {\n const headerObj = data?.responses[selectedResStatusCode.value]\n setHeadersList(headerObj?.headers)\n }\n }, [selectedResStatusCode])\n\n return (\n <div className=\"api-details-expanded\">\n <div className=\"test-button\">\n <button\n className=\"back-button\"\n onClick={() => {\n toggleSection(data.api.apiSpecId, [{ type: SectionEnum.OVERVIEW, setTo: true }], {\n resetOthers: true,\n filterKeys: [SectionEnum.RESOURCE],\n })\n setActiveType('OVERVIEW')\n setActiveItemData(data.api)\n }}\n >\n <SVGLoader src={ArrowBack} />\n </button>\n\n <Tooltip content=\"Comming soon\">\n <button className=\"disabled\">Test</button>\n </Tooltip>\n </div>\n <h3>{data.api.title}</h3>\n <h1 className=\"api-title\">{data?.summary}</h1>\n <div className=\"url-box\">\n <div style={{ textAlign: 'center' }}>\n <span className={`method-label ${data?.method?.toLowerCase()}`}>{data.method}</span>\n <span className=\"url-text\">{data?.path}</span>\n </div>\n <span className=\"icon\" onClick={() => navigator.clipboard.writeText(data?.path)}>\n <SVGLoader src={CopySticker} />\n </span>\n </div>\n\n <p className=\"api-desc\">{data?.description || 'No Description'}</p>\n\n <h3>Request</h3>\n\n <div className=\"request-section\">\n <div className=\"request-tabs\">\n // ? TODO: 'body' should be returned after discussing with PO\n {['header', 'path', 'query'].map((tab) => (\n <button\n key={tab}\n className={`tab ${activeTab === tab ? 'active' : ''}`}\n onClick={() => setActiveTab(tab)}\n >\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n <span className=\"tab-label\">\n {tab === 'requestBody'\n ? 'Request Body'\n : tab.charAt(0).toUpperCase() + tab.slice(1)}\n </span>\n </button>\n ))}\n </div>\n\n {\n <div className=\"table-wrapper\">\n <table className=\"param-table\">\n <thead>\n <tr>\n <th className=\"head-table-label\">Parameter Name</th>\n <th className=\"head-table-label\">Required</th>\n <th className=\"head-table-label\">Type</th>\n <th className=\"head-table-label\">Enum</th>\n <th className=\"head-table-label\">Description</th>\n </tr>\n </thead>\n <tbody>\n {data.parameters\n ?.filter((p) => p.in?.toLowerCase() === activeTab.toLowerCase())\n .map((row, index) => (\n <tr key={index}>\n <td>{row.name}</td>\n <td>{row.required ? 'True' : 'False'}</td>\n <td style={{ textTransform: 'capitalize' }}>\n <span>{row?.schema?.type || '-'}</span>\n {row?.schema?.type === 'array' && row?.schema?.items?.type && (\n <span style={{ color: '#616874', fontSize: '0.75rem' }}>\n _{capitalizeFirstLetter(row.schema?.items?.type)}\n </span>\n )}\n </td>\n <td>{Array.isArray(row.schema?.enum) ? row.schema.enum.join(' / ') : '-'}</td>\n <td className=\"desc-cell\">\n <div className={`desc-text ${expanded === index ? 'expanded' : ''}`}>\n {row.description || 'No description'}\n </div>\n <button\n className=\"desc-toggle\"\n onClick={() => setExpanded(expanded === index ? null : index)}\n >\n <SVGLoader\n src={DownArrowIcon}\n className={expanded === index ? 'rotated' : ''}\n />\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n }\n </div>\n\n <div className=\"response-section\">\n <h3>Response</h3>\n\n <div style={{ width: '7.5rem', marginLeft: 'auto' }}>\n {Object.keys(data?.responses || {})?.length > 0 && (\n <div className={styles.codeboxSection}>\n <div className={`${styles.codeboxHeader}`}>\n <SelectGroup\n size=\"small\"\n withSearch={false}\n isMultiple={false}\n clearable={false}\n placeholder=\"200\"\n options={[\n {\n list: httpStatusCodeOptions,\n },\n ]}\n value={selectedResStatusCode}\n onChange={(value) => {\n setSelectedResStatusCode(value)\n }}\n />\n </div>\n </div>\n )}\n </div>\n\n <button className=\"tab active \">\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n Header\n </button>\n\n <div className=\"table-wrapper\">\n <table className=\"param-table\">\n <thead>\n <tr>\n <th className=\"head-table-label\">Header Name</th>\n <th className=\"head-table-label\">Required</th>\n <th className=\"head-table-label\">Type</th>\n <th className=\"head-table-label\">Enum</th>\n <th className=\"head-table-label\">Description</th>\n </tr>\n </thead>\n <tbody>\n {!!headersList &&\n Object.keys(headersList) &&\n Object.keys(headersList).map((key) => (\n <tr>\n <td>{key}</td>\n <td>{headersList[key]?.required.toString()}</td>\n <td style={{ textTransform: 'capitalize' }}>\n <span>{headersList[key]?.schema?.type || '-'}</span>\n {headersList[key]?.schema?.type === 'array' &&\n headersList[key]?.schema?.items?.type && (\n <span style={{ color: '#616874', fontSize: '0.75rem' }}>\n _{capitalizeFirstLetter(headersList[key]?.schema?.items?.type)}\n </span>\n )}\n </td>\n <td>{headersList[key]?.schema?.enum?.join('/')}</td>\n <td>{headersList[key]?.description}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n )\n}\n"],"names":["EndpointPage","data","setActiveType","setActiveItemData","activeTab","setActiveTab","useState","toggleSection","useSectionToggle","httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","jsxs","className","children","_jsx","style","backgroundColor","handleStatusColor","value","expanded","setExpanded","selectedResStatusCode","setSelectedResStatusCode","headersList","setHeadersList","parameters","filter","param","in","_a","toLowerCase","useEffect","headerObj","responses","headers","onClick","api","apiSpecId","type","SectionEnum","OVERVIEW","setTo","resetOthers","filterKeys","RESOURCE","SVGLoader","src","ArrowBack","Tooltip","content","jsx","title","summary","textAlign","method","path","navigator","clipboard","writeText","CopySticker","description","tab","RequestOption","charAt","toUpperCase","slice","_b","p","row","index","name","required","textTransform","schema","_d","_c","items","color","fontSize","capitalizeFirstLetter","_f","_e","Array","isArray","_g","enum","join","DownArrowIcon","width","marginLeft","Object","keys","length","styles","codeboxSection","codeboxHeader","SelectGroup","size","withSearch","isMultiple","clearable","placeholder","options","list","onChange","key","toString","_h","_k","_j","_p","_o","_q"],"mappings":"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"}
package/dist/styles.css CHANGED
@@ -256,6 +256,9 @@
256
256
  flex-direction: column;
257
257
  padding-inline: 1.875rem;
258
258
  }
259
+ .methodAccordion .methodAccordionContent .multiLineText {
260
+ word-break: break-word;
261
+ }
259
262
  .methodAccordion .methodAccordionContent .methodDesc {
260
263
  margin-top: 1.25rem;
261
264
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digi-frontend/dgate-api-documentation",
3
- "version": "1.0.60",
3
+ "version": "1.0.61",
4
4
  "main": "dist/src/index.js",
5
5
  "module": "dist/src/index.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -183,39 +183,36 @@ const LivePreview: React.FC<LivePreviewProps> = ({ transformedData, openApiError
183
183
  />
184
184
 
185
185
  <SimpleLabelValue key={'endpoints'} label={'Endpoints '} />
186
- {values.paths.map((path) => (
187
- <div className={styles.methodsContainer} key={path.path}>
188
- {Object.entries(
189
- path.methods
190
- .sort(
191
- (a, b) => methodColorMapping[a.type].order + methodColorMapping[b.type].order
192
- )
193
- .reduce((groupedMethods, method) => {
194
- // Handle methods without tags
195
- const tags = method.tags?.length ? method?.tags : ['default']
196
-
197
- tags.forEach((tag) => {
198
- if (!groupedMethods[tag]) {
199
- groupedMethods[tag] = []
200
- }
201
- groupedMethods[tag].push(method)
202
- })
203
-
204
- return groupedMethods
205
- }, {})
206
- ).map(([tag, methods]) => (
207
- <div key={tag}>
208
- <h3>{tag}</h3>
209
- {methods?.map((method, methodIndex) => (
210
- <MethodsAccordion
211
- readOnly
212
- method={method}
213
- path={path.path}
214
- tags={values.tags}
215
- />
216
- ))}
217
- </div>
218
- ))}
186
+ {Object.entries(
187
+ values.paths
188
+ .flatMap((path) =>
189
+ path.methods.map((method) => ({
190
+ ...method,
191
+ path: path.path,
192
+ tags: method.tags?.length ? method.tags : ['default'],
193
+ }))
194
+ )
195
+ .reduce((acc, method) => {
196
+ method.tags.forEach((tag) => {
197
+ if (!acc[tag]) acc[tag] = []
198
+ acc[tag].push(method)
199
+ })
200
+ return acc
201
+ }, {} as Record<string, any[]>)
202
+ ).map(([tag, methods]) => (
203
+ <div className={styles.methodsContainer} key={tag}>
204
+ <h3>{tag}</h3>
205
+ {methods
206
+ .sort((a, b) => methodColorMapping[a.type].order - methodColorMapping[b.type].order)
207
+ .map((method) => (
208
+ <MethodsAccordion
209
+ key={`${method.path}_${method.type}`}
210
+ readOnly
211
+ method={method}
212
+ path={method.path}
213
+ tags={values.tags}
214
+ />
215
+ ))}
219
216
  </div>
220
217
  ))}
221
218
  </div>
@@ -87,6 +87,10 @@
87
87
  flex-direction: column;
88
88
  padding-inline: 1.875rem;
89
89
 
90
+ .multiLineText {
91
+ word-break: break-word;
92
+ }
93
+
90
94
  .methodDesc {
91
95
  margin-top: 1.25rem;
92
96
  }
@@ -813,6 +813,7 @@ const MethodsAccordion = ({
813
813
  key={'description'}
814
814
  label={'Description: '}
815
815
  value={method?.description || '-'}
816
+ className={styles.multiLineText}
816
817
  />
817
818
  )}
818
819
  <div className={styles.paramsTable}>
@@ -177,7 +177,6 @@ const ParamterTable = ({
177
177
  { label: 'Query', value: 'query' },
178
178
  { label: 'Header', value: 'header' },
179
179
  { label: 'Path', value: 'path' },
180
- { label: 'Body', value: 'body' },
181
180
  ]
182
181
  : [{ label: 'Header', value: 'header' }],
183
182
  },
@@ -471,7 +470,7 @@ const ParamterTable = ({
471
470
  <>
472
471
  {!readOnly && (
473
472
  <tr key={'addNew'} data-i={'addNew'} className={`row`}>
474
- <td colSpan={5}>
473
+ <td colSpan={6}>
475
474
  <Button
476
475
  variant="link"
477
476
  color="primary"
@@ -94,7 +94,8 @@ export const EndpointPage = ({
94
94
 
95
95
  <div className="request-section">
96
96
  <div className="request-tabs">
97
- {['header', 'path', 'query', 'Body'].map((tab) => (
97
+ // ? TODO: 'body' should be returned after discussing with PO
98
+ {['header', 'path', 'query'].map((tab) => (
98
99
  <button
99
100
  key={tab}
100
101
  className={`tab ${activeTab === tab ? 'active' : ''}`}
package/variables.txt CHANGED
@@ -1,4 +1,4 @@
1
- export APP_VERSION=1.0.59
2
- export ECR_IMAGE=650046438355.dkr.ecr.eu-central-1.amazonaws.com/dgate-api-documentation:1.0.59-31042-develop
3
- export IMAGE_TAG=1.0.59-31042-develop
1
+ export APP_VERSION=1.0.60
2
+ export ECR_IMAGE=650046438355.dkr.ecr.eu-central-1.amazonaws.com/dgate-api-documentation:1.0.60-31050-develop
3
+ export IMAGE_TAG=1.0.60-31050-develop
4
4
  export TARGET_ENV=dev