@digi-frontend/dgate-api-documentation 1.0.34 → 1.0.35

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 r}from"react";import{d as o}from"../../../_virtual/index.js";import n from"../SVGLoader/SVGLoader.js";import t from"../../assets/icons/DownArrow.svg.js";import i from"../../assets/icons/DeleteIcon.svg.js";import a from"../../assets/icons/EditIcon.svg.js";import l from"../../assets/icons/deleteOutlinedIcon.svg.js";import{httpStatusCodes as d,methodColorMapping as c,paramsTableHeaders as m}from"../../constants/index.js";import p from"../Tooltip/Tooltip.js";import u from"../SimpleLabelValue/SimpleLabelValue.js";import{handleStatusColor as h,capitalize as v}from"../../helpers/methodAccordion.helper.js";import j from"../table/table.js";import x from"../dialog/index.js";import g from"../JsonInput/JsonInput.js";import b from"./MethodAccordion.module.scss.js";import y from"../../constants/regex.js";const N=d.map((s=>({label:e.jsxs("div",{className:b.statusCodeOptionContainer,children:[e.jsx("div",{className:b.statusCodeOptionCircle,style:{backgroundColor:h(s)}}),e.jsx("span",{children:s})]}),value:s}))),C=({method:d,path:h,setFieldValue:C,readOnly:f,tags:S,isOpen:w,setIsOpen:A})=>{var O,D,q,I,T,k,B,F;const[L,$]=s({request:!1,response:!1,method:!1}),[V,_]=s(!1),[J,M]=s({}),[W,E]=s([]),[G,H]=s(!1),[P,R]=s(null),[z,K]=s(null),[Q,U]=s(),[X,Y]=s([]),[Z,ee]=s(N[4]),se=d.responses.find((e=>Number(e.code)===Z.value))||"{}",re=(e,s,r)=>{const o=W.map(((o,n)=>n===r?Object.assign(Object.assign({},o),{[e]:s}):o));E(o)},oe=(e,s)=>{R(e),K(s),H(!0)};return r((()=>{U(W.map(((s,r)=>{var t,l,c,m;return{id:r,paramName:s.name,paramType:v(s.in),schemaType:v(null===(t=s.schema)||void 0===t?void 0:t.type)||"",required:e.jsx(e.Fragment,{children:f?s.required?"True":"False":e.jsx(o.Switch,{checked:s.required,onClick:()=>{if(f)return null;re("required",!s.required,r),C(`parameters[${r}][required]`,!s.required)}})}),description:e.jsxs("div",{className:b.paramDescContainer,children:[e.jsx(p,{allowHTML:!0,disabled:(null===(l=d.parameters[r].description)||void 0===l?void 0:l.length)<=12,content:e.jsx("div",{style:{padding:"0.625rem"},children:d.parameters[r].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:[d.parameters[r].description?d.parameters[r].description.substring(0,12):f&&"-",d.parameters[r].description&&d.parameters[r].description.length>12?"...":""]})},`${r}-description`),!f&&e.jsx(p,{allowHTML:!0,arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>M((s=>Object.assign(Object.assign({},s),{[r]:e}))),content:e.jsxs("div",{className:b.editDescTooltipContent,children:[e.jsx("p",{className:b.editDescTooltipContent_header,children:"Description"}),e.jsx(o.TextArea,{placeholder:"Describe parameter...",value:s.description,disabled:f,maxLength:120,onChange:e=>{(""===e||y.ASCII.test(e))&&re("description",e,r)}}),!f&&e.jsx(o.Button,{className:b.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var e,o;C(`parameters[${r}].description`,null===(e=s.description)||void 0===e?void 0:e.trim()),null===(o=J[r])||void 0===o||o.hide()},disabled:!(null===(c=s.description)||void 0===c?void 0:c.trim()),children:"Apply"})]}),children:f||(null===(m=d.parameters[r].description)||void 0===m?void 0:m.length)>0?e.jsx(o.Button,{className:b.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:a,width:"1.5rem",height:"1.5rem"})}):e.jsxs(o.Button,{className:b.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:a,width:"1.5rem",height:"1.5rem"}),children:[f?"View ":"Add "," Description"]})},`${r}-add-edit-description`),!f&&e.jsx("div",{className:b.paramDescContainer_separator}),!f&&e.jsx(o.Button,{className:b.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(n,{src:i,width:"1.125rem",height:"1.125rem"}),onClick:()=>oe(r,s.name)})]})}})))}),[W]),r((()=>{(null==d?void 0:d.parameters)&&E(d.parameters)}),[d,h]),r((()=>{var e;if((null==d?void 0:d.tags.length)||(null==S?void 0:S.length)){const s=[...null===(e=(null==d?void 0:d.tags)||[])||void 0===e?void 0:e.map((e=>({label:v(e),value:e}))),...(S||[]).map((e=>({label:v(e.name),value:e.name})))].filter(((e,s,r)=>s===r.findIndex((s=>s.value===e.value))));Y(s)}}),[S,d]),e.jsxs("div",{children:[e.jsx(o.Accordion,{expanded:w,onChange:()=>A(!w),className:`${b.methodAccordion} ${f?b.readOnly:""}`,summary:e.jsxs("div",{className:b.methodSummaryContainer,children:[e.jsxs("div",{className:b.methodSummary,children:[e.jsx("span",{style:{backgroundColor:(null===(O=null==c?void 0:c[null==d?void 0:d.type])||void 0===O?void 0:O.color)||"#3A6CD1"},className:b.methodLabel,children:(null===(D=null==c?void 0:c[null==d?void 0:d.type])||void 0===D?void 0:D.label)||(null==d?void 0:d.type)}),e.jsx("span",{className:b.methodPath,children:h})]}),e.jsx("div",{className:`${b.methodExpandArrowContainer} ${w?b.expanded:""}`,children:e.jsx(n,{src:t,width:"2rem",height:"2rem"})})]}),children:e.jsxs("div",{className:b.methodAccordionContent,children:[e.jsx(o.SelectGroup,{className:b.methodDesc,disabled:f,placeholder:"Select Tags",label:"Tags",value:null===(q=d.tags)||void 0===q?void 0:q.map((e=>({label:v(e),value:e}))),onChange:e=>{C("tags",e.map((e=>e.value)))},options:[{list:X}],isMultiple:!0,withSearch:!1,clearable:!1}),f?e.jsx(u,{label:"Description: ",value:(null==d?void 0:d.description)||"-"},"description"):e.jsx(o.TextArea,{className:b.methodDesc,label:"Description",placeholder:"Describe the method's purpose and functionality...",maxLength:120,value:null==d?void 0:d.description,onChange:e=>{(""===e||y.ASCII.test(e))&&C("description",e)}}),e.jsx("div",{className:b.paramsTable,children:e.jsx(j,{id:"paramter-table",data:Q,headCells:m,isFormOpen:V,setIsFormOpen:_,saveNewRow:e=>{E([...W,e]),C("parameters",[...d.parameters,e])},readOnly:f})}),"get"!==(null==d?void 0:d.type)&&e.jsx(o.Accordion,{expanded:L.request,onChange:()=>null,className:b.requestAccordion,summary:e.jsx("span",{className:b.requestAccordionSummary,children:e.jsxs("div",{className:b.requestAccordionSummary_title,onClick:()=>$((e=>Object.assign(Object.assign({},e),{request:!e.request}))),children:[e.jsx(n,{className:L.request?b.expanded:"",src:t,width:"2rem",height:"2rem"}),"Request","delete"!==(null==d?void 0:d.type)&&e.jsx("span",{style:{color:"red"},children:"*"})]})}),children:e.jsx(g,{acceptType:"JSON",withFooter:!f,className:"jsonField",placeholder:"Enter your request body as a JSON object....",fieldIsDisabled:f,value:(null===(k=null===(T=null===(I=null==d?void 0:d.requestBody)||void 0===I?void 0:I.content)||void 0===T?void 0:T.schema)||void 0===k?void 0:k.properties)||"{}",onChange:e=>{C("requestBody.content.schema.properties",e)},onValidation:()=>null})}),e.jsx(o.Accordion,{expanded:L.response,onChange:()=>null,className:b.responseAccordion,summary:e.jsxs("span",{className:b.responseAccordionSummary,children:[e.jsxs("div",{className:b.responseAccordionSummary_title,onClick:()=>$((e=>Object.assign(Object.assign({},e),{response:!e.response}))),children:[e.jsx(n,{className:L.response?b.expanded:"",src:t,width:"2rem",height:"2rem"}),"Response",e.jsx("span",{style:{color:"red"},children:"*"})]}),e.jsx(o.SelectGroup,{withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:N}],value:Z,onChange:e=>{ee(e)}})]}),children:e.jsx(g,{acceptType:"JSON",withFooter:!f,className:"jsonField",placeholder:"Enter your response as a JSON object...",fieldIsDisabled:f,value:(null===(F=null===(B=null==se?void 0:se.content)||void 0===B?void 0:B.schema)||void 0===F?void 0:F.properties)||"{}",onChange:e=>{const s=d.responses.findIndex((e=>e.code===se.code));if(-1!==s)C(`responses[${s}].content.schema.properties`,e);else{const s=structuredClone(d.responses);s.push({code:Z.value.toString(),content:{contentType:"application/json",schema:{type:"object",properties:e}}}),C("responses",s)}},onValidation:()=>null})})]})}),e.jsx(x,{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:z})]}),"?"]}),onSubmit:{onClick:()=>{var e;null!==P&&(E((e=>e.filter(((e,s)=>s!==P)))),C("parameters",null===(e=null==d?void 0:d.parameters)||void 0===e?void 0:e.filter(((e,s)=>s!==P)))),H(!1),R(null)},text:"Delete",color:"error",fullWidth:!0},onCancel:{text:"Cancel",color:"normal",fullWidth:!0},onClose:()=>H(!1),open:G,icon:e.jsx(n,{src:l,width:"4.0625rem",height:"4.0625rem"})})]})};export{C as default};
1
+ import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as s,useEffect as r}from"react";import{d as o}from"../../../_virtual/index.js";import n from"../SVGLoader/SVGLoader.js";import t from"../../assets/icons/DownArrow.svg.js";import i from"../../assets/icons/DeleteIcon.svg.js";import a from"../../assets/icons/EditIcon.svg.js";import l from"../../assets/icons/deleteOutlinedIcon.svg.js";import{httpStatusCodes as d,methodColorMapping as c,paramsTableHeaders as m}from"../../constants/index.js";import p from"../Tooltip/Tooltip.js";import u from"../SimpleLabelValue/SimpleLabelValue.js";import{handleStatusColor as h,capitalize as v}from"../../helpers/methodAccordion.helper.js";import j from"../table/table.js";import x from"../dialog/index.js";import g from"../JsonInput/JsonInput.js";import b from"./MethodAccordion.module.scss.js";import y from"../../constants/regex.js";const N=d.map((s=>({label:e.jsxs("div",{className:b.statusCodeOptionContainer,children:[e.jsx("div",{className:b.statusCodeOptionCircle,style:{backgroundColor:h(s)}}),e.jsx("span",{children:s})]}),value:s}))),C=({method:d,path:h,setFieldValue:C,readOnly:f,tags:S,isOpen:w,setIsOpen:A})=>{var O,D,q,I,T,k,B,F;const[L,$]=s({request:!1,response:!1,method:!1}),[V,_]=s(!1),[J,M]=s({}),[W,E]=s([]),[G,H]=s(!1),[P,R]=s(null),[z,K]=s(null),[Q,U]=s(),[X,Y]=s([]),[Z,ee]=s(N[4]),se=d.responses.find((e=>Number(e.code)===Z.value))||"{}",re=(e,s,r)=>{const o=W.map(((o,n)=>n===r?Object.assign(Object.assign({},o),{[e]:s}):o));E(o)},oe=(e,s)=>{R(e),K(s),H(!0)};return r((()=>{U(W.map(((s,r)=>{var t,l,c,m;return{id:r,paramName:s.name,paramType:v(s.in),schemaType:v(null===(t=s.schema)||void 0===t?void 0:t.type)||"",required:e.jsx(e.Fragment,{children:f?s.required?"True":"False":e.jsx(o.Switch,{checked:s.required,onClick:()=>{if(f)return null;re("required",!s.required,r),C(`parameters[${r}][required]`,!s.required)}})}),description:e.jsxs("div",{className:b.paramDescContainer,children:[e.jsx(p,{allowHTML:!0,disabled:(null===(l=d.parameters[r].description)||void 0===l?void 0:l.length)<=12,content:e.jsx("div",{style:{padding:"0.625rem"},children:d.parameters[r].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:[d.parameters[r].description?d.parameters[r].description.substring(0,12):f&&"-",d.parameters[r].description&&d.parameters[r].description.length>12?"...":""]})},`${r}-description`),!f&&e.jsx(p,{allowHTML:!0,arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>M((s=>Object.assign(Object.assign({},s),{[r]:e}))),content:e.jsxs("div",{className:b.editDescTooltipContent,children:[e.jsx("p",{className:b.editDescTooltipContent_header,children:"Description"}),e.jsx(o.TextArea,{placeholder:"Describe parameter...",value:s.description,disabled:f,maxLength:120,onChange:e=>{(""===e||y.ASCII.test(e))&&re("description",e,r)}}),!f&&e.jsx(o.Button,{className:b.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var e,o;C(`parameters[${r}].description`,null===(e=s.description)||void 0===e?void 0:e.trim()),null===(o=J[r])||void 0===o||o.hide()},disabled:!(null===(c=s.description)||void 0===c?void 0:c.trim()),children:"Apply"})]}),children:f||(null===(m=d.parameters[r].description)||void 0===m?void 0:m.length)>0?e.jsx(o.Button,{className:b.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:a,width:"1.5rem",height:"1.5rem"})}):e.jsxs(o.Button,{className:b.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:a,width:"1.5rem",height:"1.5rem"}),children:[f?"View ":"Add "," Description"]})},`${r}-add-edit-description`),!f&&e.jsx("div",{className:b.paramDescContainer_separator}),!f&&e.jsx(o.Button,{className:b.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(n,{src:i,width:"1.125rem",height:"1.125rem"}),onClick:()=>oe(r,s.name)})]})}})))}),[W]),r((()=>{(null==d?void 0:d.parameters)&&E(d.parameters)}),[d,h]),r((()=>{var e;if((null==d?void 0:d.tags.length)||(null==S?void 0:S.length)){const s=[...null===(e=(null==d?void 0:d.tags)||[])||void 0===e?void 0:e.map((e=>({label:v(e),value:e}))),...(S||[]).map((e=>({label:v(e.name),value:e.name})))].filter(((e,s,r)=>s===r.findIndex((s=>s.value===e.value))));Y(s)}}),[S,d]),e.jsxs("div",{children:[e.jsx(o.Accordion,{expanded:w,onChange:()=>A(!w),className:`${b.methodAccordion} ${f?b.readOnly:""}`,summary:e.jsxs("div",{className:b.methodSummaryContainer,children:[e.jsxs("div",{className:b.methodSummary,children:[e.jsx("span",{style:{backgroundColor:(null===(O=null==c?void 0:c[null==d?void 0:d.type])||void 0===O?void 0:O.color)||"#3A6CD1"},className:b.methodLabel,children:(null===(D=null==c?void 0:c[null==d?void 0:d.type])||void 0===D?void 0:D.label)||(null==d?void 0:d.type)}),e.jsx("span",{className:b.methodPath,children:h})]}),e.jsx("div",{className:`${b.methodExpandArrowContainer} ${w?b.expanded:""}`,children:e.jsx(n,{src:t,width:"2rem",height:"2rem"})})]}),children:e.jsxs("div",{className:b.methodAccordionContent,children:[e.jsx(o.SelectGroup,{className:b.methodDesc,disabled:f,placeholder:"Select Tags",label:"Tags",value:null===(q=d.tags)||void 0===q?void 0:q.map((e=>({label:v(e),value:e}))),onChange:e=>{C("tags",e.map((e=>e.value)))},options:[{list:X}],isMultiple:!0,withSearch:!1,clearable:!1}),f?e.jsx(u,{label:"Description: ",value:(null==d?void 0:d.description)||"-"},"description"):e.jsx(o.TextArea,{className:b.methodDesc,label:"Description",placeholder:"Describe the method's purpose and functionality...",maxLength:120,value:null==d?void 0:d.description,onChange:e=>{(""===e||y.ASCII.test(e))&&C("description",e)}}),e.jsx("div",{className:b.paramsTable,children:e.jsx(j,{id:"paramter-table",data:Q,headCells:m,isFormOpen:V,setIsFormOpen:_,saveNewRow:e=>{E([...W,e]),C("parameters",[...d.parameters,e])},readOnly:f})}),"get"!==(null==d?void 0:d.type)&&e.jsx(o.Accordion,{expanded:L.request,onChange:()=>null,className:b.requestAccordion,summary:e.jsx("span",{className:b.requestAccordionSummary,children:e.jsxs("div",{className:b.requestAccordionSummary_title,onClick:()=>$((e=>Object.assign(Object.assign({},e),{request:!e.request}))),children:[e.jsx(n,{className:L.request?b.expanded:"",src:t,width:"2rem",height:"2rem"}),"Request","delete"!==(null==d?void 0:d.type)&&e.jsx("span",{style:{color:"red"},children:"*"})]})}),children:e.jsx(g,{acceptType:"JSON",withFooter:!f,className:"jsonField",placeholder:"Enter your request body as a JSON object....",fieldIsDisabled:f,value:(null===(k=null===(T=null===(I=null==d?void 0:d.requestBody)||void 0===I?void 0:I.content)||void 0===T?void 0:T.schema)||void 0===k?void 0:k.properties)||"{}",onChange:e=>{C("requestBody.content.schema.properties",e)},onValidation:()=>null})}),e.jsx(o.Accordion,{expanded:L.response,onChange:()=>null,className:b.responseAccordion,summary:e.jsxs("span",{className:b.responseAccordionSummary,children:[e.jsxs("div",{className:b.responseAccordionSummary_title,onClick:()=>$((e=>Object.assign(Object.assign({},e),{response:!e.response}))),children:[e.jsx(n,{className:L.response?b.expanded:"",src:t,width:"2rem",height:"2rem"}),"Response",e.jsx("span",{style:{color:"red"},children:"*"})]}),e.jsx(o.SelectGroup,{withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:N}],value:Z,onChange:e=>{ee(e)}})]}),children:e.jsx(g,{acceptType:"JSON",withFooter:!f,className:"jsonField",placeholder:"Enter your response as a JSON object...",fieldIsDisabled:f,value:(null===(F=null===(B=null==se?void 0:se.content)||void 0===B?void 0:B.schema)||void 0===F?void 0:F.properties)||"{}",onChange:e=>{const s=d.responses.findIndex((e=>e.code===se.code));if(-1!==s)C(`responses[${s}].content.schema.properties`,e);else{const s=structuredClone(d.responses);s.push({code:Z.value.toString(),content:{contentType:"application/json",schema:{type:"object",properties:e}}}),C("responses",s)}},onValidation:e=>null})})]})}),e.jsx(x,{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:z})]}),"?"]}),onSubmit:{onClick:()=>{var e;null!==P&&(E((e=>e.filter(((e,s)=>s!==P)))),C("parameters",null===(e=null==d?void 0:d.parameters)||void 0===e?void 0:e.filter(((e,s)=>s!==P)))),H(!1),R(null)},text:"Delete",color:"error",fullWidth:!0},onCancel:{text:"Cancel",color:"normal",fullWidth:!0},onClose:()=>H(!1),open:G,icon:e.jsx(n,{src:l,width:"4.0625rem",height:"4.0625rem"})})]})};export{C 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, useState } from 'react'\r\nimport { Accordion, Button, SelectGroup, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\r\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\r\nimport { DeleteIcon, DownArrowIcon, EditIcon, deleteOutlinedIcon } from '../../assets/icons'\r\nimport { httpStatusCodes, methodColorMapping, paramsTableHeaders } from '../../constants/index'\r\nimport Tooltip from '../../components/Tooltip/Tooltip'\r\nimport { TransformedMethod } from '../../types/layout.type'\r\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\r\nimport { capitalize, handleStatusColor } from '../../helpers/methodAccordion.helper'\r\nimport ParamterTable from '../table/table'\r\nimport CommonDialog from '../../components/dialog'\r\nimport JsonInput from '../../components/JsonInput/JsonInput'\r\nimport styles from './MethodAccordion.module.scss'\r\nimport { Tags } from '@entities/openApi'\r\nimport regex from '../../constants/regex'\r\n\r\nconst httpStatusCodeOptions = httpStatusCodes.map((code) => ({\r\n label: (\r\n <div className={styles.statusCodeOptionContainer}>\r\n <div\r\n className={styles.statusCodeOptionCircle}\r\n style={{ backgroundColor: handleStatusColor(code) }}\r\n ></div>\r\n <span>{code}</span>\r\n </div>\r\n ),\r\n value: code,\r\n}))\r\n\r\nconst MethodsAccordion = ({\r\n method,\r\n path,\r\n setFieldValue,\r\n readOnly,\r\n tags,\r\n isOpen,\r\n setIsOpen,\r\n}: {\r\n method: TransformedMethod\r\n path: string\r\n setFieldValue?: (key: string, value: string | string[]) => void\r\n readOnly?: boolean\r\n tags: Tags[]\r\n isOpen: boolean\r\n setIsOpen: (open: boolean) => void\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState({\r\n request: false,\r\n response: false,\r\n method: false,\r\n })\r\n const [isFormOpen, setIsFormOpen] = useState(false)\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tableData, setTableData] = useState([])\r\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\r\n const [selectedParamIndex, setSelectedParamIndex] = useState<number | null>(null)\r\n const [selectedParamName, setSelectedParamName] = useState<string | null>(null)\r\n const [tableRecords, setTableRecords] = useState()\r\n const [selectionTags, setSelectionTags] = useState([])\r\n const [selectedStatusCode, setSelectedStatusCode] = useState(httpStatusCodeOptions[4])\r\n const currentResponse =\r\n method.responses.find((res) => Number(res.code) === selectedStatusCode.value) || '{}'\r\n\r\n const onTableChange = (key, value, index) => {\r\n const newTableData = tableData.map((item, tIndex) => {\r\n if (tIndex === index) {\r\n return { ...item, [key]: value }\r\n } else {\r\n return item\r\n }\r\n })\r\n\r\n setTableData(newTableData)\r\n }\r\n\r\n const generateTableData = (items) => {\r\n return items.map((item, index) => {\r\n return {\r\n id: index,\r\n paramName: item.name,\r\n paramType: capitalize(item.in),\r\n schemaType: capitalize(item.schema?.type) || '',\r\n required: (\r\n <>\r\n {readOnly ? (\r\n item.required ? (\r\n 'True'\r\n ) : (\r\n 'False'\r\n )\r\n ) : (\r\n <Switch\r\n checked={item.required}\r\n onClick={() => {\r\n if (readOnly) {\r\n return null\r\n }\r\n onTableChange('required', !item.required, index)\r\n setFieldValue(`parameters[${index}][required]`, !item.required)\r\n }}\r\n />\r\n )}\r\n </>\r\n ),\r\n description: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n key={`${index}-description`}\r\n allowHTML\r\n disabled={method.parameters[index].description?.length <= 12}\r\n content={\r\n <div style={{ padding: '0.625rem' }}>{method.parameters[index].description}</div>\r\n }\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n delay={[0, 0]}\r\n onShow={() => tooltipRefs[index]?.hide()}\r\n >\r\n <p style={{ alignSelf: 'center' }}>\r\n {method.parameters[index].description\r\n ? method.parameters[index].description.substring(0, 12)\r\n : readOnly && '-'}\r\n {method.parameters[index].description &&\r\n method.parameters[index].description.length > 12\r\n ? '...'\r\n : ''}\r\n </p>\r\n </Tooltip>\r\n {!readOnly && (\r\n <Tooltip\r\n key={`${index}-add-edit-description`}\r\n allowHTML\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) =>\r\n setTooltipRefs((prev) => ({\r\n ...prev,\r\n [index]: instance,\r\n }))\r\n }\r\n content={\r\n <div className={styles.editDescTooltipContent}>\r\n <p className={styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n placeholder=\"Describe parameter...\"\r\n value={item.description}\r\n disabled={readOnly}\r\n maxLength={120}\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value))\r\n onTableChange('description', value, index)\r\n }}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(\r\n `parameters[${index}].description`,\r\n item.description?.trim()\r\n )\r\n tooltipRefs[index]?.hide()\r\n }}\r\n disabled={!item.description?.trim()}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly || method.parameters[index].description?.length > 0 ? (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n ></Button>\r\n ) : (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly ? 'View ' : 'Add '} Description\r\n </Button>\r\n )}\r\n </Tooltip>\r\n )}\r\n\r\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\r\n onClick={() => handleDeleteClick(index, item.name)}\r\n ></Button>\r\n )}\r\n </div>\r\n ),\r\n }\r\n })\r\n }\r\n\r\n const confirmDeleteParameter = () => {\r\n if (selectedParamIndex !== null) {\r\n setTableData((prev) => prev.filter((_, i) => i !== selectedParamIndex))\r\n setFieldValue(\r\n `parameters`,\r\n method?.parameters?.filter((_, i) => i !== selectedParamIndex)\r\n )\r\n }\r\n setOpenDeleteDialog(false)\r\n setSelectedParamIndex(null)\r\n }\r\n\r\n const handleDeleteClick = (id: number, name: string) => {\r\n setSelectedParamIndex(id)\r\n setSelectedParamName(name)\r\n\r\n setOpenDeleteDialog(true)\r\n }\r\n\r\n const saveNewRow = (values) => {\r\n setTableData([...tableData, values])\r\n setFieldValue(`parameters`, [...method.parameters, values])\r\n }\r\n\r\n useEffect(() => {\r\n setTableRecords(generateTableData(tableData))\r\n }, [tableData])\r\n\r\n useEffect(() => {\r\n if (method?.parameters) {\r\n setTableData(method.parameters)\r\n }\r\n }, [method, path])\r\n\r\n useEffect(() => {\r\n // prepare tags selection list\r\n if (method?.tags.length || tags?.length) {\r\n const convertedStringArray = (method?.tags || [])?.map((item) => ({\r\n label: capitalize(item),\r\n value: item,\r\n }))\r\n const mergedArray = [\r\n ...convertedStringArray,\r\n ...(tags || []).map((item) => ({ label: capitalize(item.name), value: item.name })),\r\n ]\r\n\r\n const filteredArray = mergedArray.filter(\r\n (value, index, self) => index === self.findIndex((t) => t.value === value.value)\r\n )\r\n\r\n setSelectionTags(filteredArray)\r\n }\r\n }, [tags, method])\r\n\r\n return (\r\n <div>\r\n <Accordion\r\n expanded={isOpen}\r\n onChange={() => setIsOpen(!isOpen)}\r\n className={`${styles.methodAccordion} ${readOnly ? styles.readOnly : ''}`}\r\n summary={\r\n <div className={styles.methodSummaryContainer}>\r\n <div className={styles.methodSummary}>\r\n <span\r\n style={{\r\n backgroundColor: methodColorMapping?.[method?.type]?.color || '#3A6CD1',\r\n }}\r\n className={styles.methodLabel}\r\n >\r\n {methodColorMapping?.[method?.type]?.label || method?.type}\r\n </span>\r\n <span className={styles.methodPath}>{path}</span>\r\n </div>\r\n <div\r\n className={`${styles.methodExpandArrowContainer} ${isOpen ? styles.expanded : ''}`}\r\n >\r\n <SVGLoader src={DownArrowIcon} width=\"2rem\" height=\"2rem\" />\r\n </div>\r\n </div>\r\n }\r\n children={\r\n <div className={styles.methodAccordionContent}>\r\n <SelectGroup\r\n className={styles.methodDesc}\r\n disabled={readOnly}\r\n placeholder=\"Select Tags\"\r\n label=\"Tags\"\r\n value={method.tags?.map((t) => ({\r\n label: capitalize(t),\r\n value: t,\r\n }))}\r\n onChange={(item) => {\r\n setFieldValue(\r\n 'tags',\r\n item.map((i) => i.value)\r\n )\r\n }}\r\n options={[\r\n {\r\n list: selectionTags,\r\n },\r\n ]}\r\n isMultiple={true}\r\n withSearch={false}\r\n clearable={false}\r\n />\r\n {!readOnly ? (\r\n <TextArea\r\n className={styles.methodDesc}\r\n label=\"Description\"\r\n placeholder=\"Describe the method's purpose and functionality...\"\r\n maxLength={120}\r\n value={method?.description}\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value)) setFieldValue('description', value)\r\n }}\r\n />\r\n ) : (\r\n <SimpleLabelValue\r\n key={'description'}\r\n label={'Description: '}\r\n value={method?.description || '-'}\r\n />\r\n )}\r\n <div className={styles.paramsTable}>\r\n <ParamterTable\r\n id=\"paramter-table\"\r\n data={tableRecords}\r\n headCells={paramsTableHeaders}\r\n isFormOpen={isFormOpen}\r\n setIsFormOpen={setIsFormOpen}\r\n saveNewRow={saveNewRow}\r\n readOnly={readOnly}\r\n />\r\n </div>\r\n {method?.type !== 'get' && (\r\n <Accordion\r\n expanded={isExpanded.request}\r\n onChange={() => null}\r\n className={styles.requestAccordion}\r\n summary={\r\n <span className={styles.requestAccordionSummary}>\r\n <div\r\n className={styles.requestAccordionSummary_title}\r\n onClick={() =>\r\n setIsExpanded((prev) => ({\r\n ...prev,\r\n request: !prev.request,\r\n }))\r\n }\r\n >\r\n <SVGLoader\r\n className={isExpanded.request ? styles.expanded : ''}\r\n src={DownArrowIcon}\r\n width=\"2rem\"\r\n height=\"2rem\"\r\n />\r\n Request\r\n {method?.type !== 'delete' && <span style={{ color: 'red' }}>*</span>}\r\n </div>\r\n </span>\r\n }\r\n children={\r\n <JsonInput\r\n acceptType=\"JSON\"\r\n withFooter={!readOnly}\r\n className={'jsonField'}\r\n placeholder=\"Enter your request body as a JSON object....\"\r\n fieldIsDisabled={readOnly}\r\n value={method?.requestBody?.content?.schema?.properties || '{}'}\r\n onChange={(value: string) => {\r\n setFieldValue('requestBody.content.schema.properties', value)\r\n }}\r\n onValidation={() => null}\r\n />\r\n }\r\n />\r\n )}\r\n <Accordion\r\n expanded={isExpanded.response}\r\n onChange={() => null}\r\n className={styles.responseAccordion}\r\n summary={\r\n <span className={styles.responseAccordionSummary}>\r\n <div\r\n className={styles.responseAccordionSummary_title}\r\n onClick={() =>\r\n setIsExpanded((prev) => ({\r\n ...prev,\r\n response: !prev.response,\r\n }))\r\n }\r\n >\r\n <SVGLoader\r\n className={isExpanded.response ? styles.expanded : ''}\r\n src={DownArrowIcon}\r\n width=\"2rem\"\r\n height=\"2rem\"\r\n />\r\n Response<span style={{ color: 'red' }}>*</span>\r\n </div>\r\n\r\n <SelectGroup\r\n withSearch={false}\r\n isMultiple={false}\r\n clearable={false}\r\n placeholder=\"200\"\r\n options={[\r\n {\r\n list: httpStatusCodeOptions,\r\n },\r\n ]}\r\n value={selectedStatusCode}\r\n onChange={(value) => {\r\n setSelectedStatusCode(value)\r\n }}\r\n />\r\n </span>\r\n }\r\n children={\r\n <JsonInput\r\n acceptType=\"JSON\"\r\n withFooter={!readOnly}\r\n className={'jsonField'}\r\n placeholder=\"Enter your response as a JSON object...\"\r\n fieldIsDisabled={readOnly}\r\n value={currentResponse?.content?.schema?.properties || '{}'}\r\n onChange={(value) => {\r\n const currentResIndex = method.responses.findIndex(\r\n (res) => res.code === currentResponse.code\r\n )\r\n\r\n if (currentResIndex !== -1) {\r\n setFieldValue(\r\n `responses[${currentResIndex}].content.schema.properties`,\r\n value\r\n )\r\n } else {\r\n const clonedResponses = structuredClone(method.responses)\r\n\r\n clonedResponses.push({\r\n code: selectedStatusCode.value.toString(),\r\n content: {\r\n contentType: 'application/json',\r\n schema: {\r\n type: 'object',\r\n properties: value,\r\n },\r\n },\r\n })\r\n\r\n setFieldValue('responses', clonedResponses)\r\n }\r\n }}\r\n onValidation={() => null}\r\n />\r\n }\r\n />\r\n </div>\r\n }\r\n />\r\n <CommonDialog\r\n status=\"error\"\r\n content={\r\n <p\r\n style={{\r\n textAlign: 'center',\r\n fontWeight: 400,\r\n fontSize: '1rem',\r\n lineHeight: '1.4375rem',\r\n }}\r\n className=\"delete-msg-container\"\r\n >\r\n Are you sure you want to delete\r\n <span className=\"plan-name\">\r\n {' '}\r\n Parameter <strong>{selectedParamName}</strong>\r\n </span>\r\n ?\r\n </p>\r\n }\r\n onSubmit={{\r\n onClick: confirmDeleteParameter,\r\n text: 'Delete',\r\n color: 'error',\r\n fullWidth: true,\r\n }}\r\n onCancel={{\r\n text: 'Cancel',\r\n color: 'normal',\r\n fullWidth: true,\r\n }}\r\n onClose={() => setOpenDeleteDialog(false)}\r\n open={openDeleteDialog}\r\n icon={<SVGLoader src={deleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default MethodsAccordion\r\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","isExpanded","setIsExpanded","useState","request","response","isFormOpen","setIsFormOpen","tooltipRefs","setTooltipRefs","tableData","setTableData","openDeleteDialog","setOpenDeleteDialog","selectedParamIndex","setSelectedParamIndex","selectedParamName","setSelectedParamName","tableRecords","setTableRecords","selectionTags","setSelectionTags","selectedStatusCode","setSelectedStatusCode","currentResponse","responses","find","res","Number","onTableChange","key","index","newTableData","item","tIndex","Object","assign","handleDeleteClick","id","name","useEffect","paramName","paramType","capitalize","in","schemaType","_a","schema","type","required","jsx","_Fragment","Switch","checked","onClick","description","paramDescContainer","Tooltip","allowHTML","disabled","parameters","_b","length","content","padding","arrowWithBorder","placement","delay","onShow","hide","alignSelf","substring","trigger","onCreate","instance","prev","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","maxLength","onChange","regex","ASCII","test","Button","editDescTooltipContent_btn","variant","size","trim","_c","_d","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","jsxs","paramDescContainer_separator","deleteParamBtn","DeleteIcon","filteredArray","filter","self","findIndex","t","Accordion","expanded","methodAccordion","summary","methodSummaryContainer","methodSummary","methodColorMapping","methodLabel","methodPath","methodExpandArrowContainer","DownArrowIcon","methodAccordionContent","SelectGroup","methodDesc","i","options","list","isMultiple","withSearch","clearable","SimpleLabelValue","paramsTable","ParamterTable","data","headCells","paramsTableHeaders","saveNewRow","values","requestAccordion","requestAccordionSummary","requestAccordionSummary_title","JsonInput","acceptType","withFooter","fieldIsDisabled","_f","_e","requestBody","properties","onValidation","responseAccordion","responseAccordionSummary","responseAccordionSummary_title","_h","_g","currentResIndex","clonedResponses","structuredClone","push","toString","contentType","CommonDialog","status","textAlign","fontWeight","fontSize","lineHeight","onSubmit","_","text","fullWidth","onCancel","onClose","open","icon","deleteOutlinedIcon"],"mappings":"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"}
1
+ {"version":3,"file":"MethodAccordion.js","sources":["../../../../src/components/MethodAccordion/MethodAccordion.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\r\nimport { Accordion, Button, SelectGroup, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\r\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\r\nimport { DeleteIcon, DownArrowIcon, EditIcon, deleteOutlinedIcon } from '../../assets/icons'\r\nimport { httpStatusCodes, methodColorMapping, paramsTableHeaders } from '../../constants/index'\r\nimport Tooltip from '../../components/Tooltip/Tooltip'\r\nimport { TransformedMethod } from '../../types/layout.type'\r\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\r\nimport { capitalize, handleStatusColor } from '../../helpers/methodAccordion.helper'\r\nimport ParamterTable from '../table/table'\r\nimport CommonDialog from '../../components/dialog'\r\nimport JsonInput from '../../components/JsonInput/JsonInput'\r\nimport styles from './MethodAccordion.module.scss'\r\nimport { Tags } from '@entities/openApi'\r\nimport regex from '../../constants/regex'\r\n\r\nconst httpStatusCodeOptions = httpStatusCodes.map((code) => ({\r\n label: (\r\n <div className={styles.statusCodeOptionContainer}>\r\n <div\r\n className={styles.statusCodeOptionCircle}\r\n style={{ backgroundColor: handleStatusColor(code) }}\r\n ></div>\r\n <span>{code}</span>\r\n </div>\r\n ),\r\n value: code,\r\n}))\r\n\r\nconst MethodsAccordion = ({\r\n method,\r\n path,\r\n setFieldValue,\r\n readOnly,\r\n tags,\r\n isOpen,\r\n setIsOpen,\r\n}: {\r\n method: TransformedMethod\r\n path: string\r\n setFieldValue?: (key: string, value: string | string[]) => void\r\n readOnly?: boolean\r\n tags: Tags[]\r\n isOpen: boolean\r\n setIsOpen: (open: boolean) => void\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState({\r\n request: false,\r\n response: false,\r\n method: false,\r\n })\r\n const [isFormOpen, setIsFormOpen] = useState(false)\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tableData, setTableData] = useState([])\r\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\r\n const [selectedParamIndex, setSelectedParamIndex] = useState<number | null>(null)\r\n const [selectedParamName, setSelectedParamName] = useState<string | null>(null)\r\n const [tableRecords, setTableRecords] = useState()\r\n const [selectionTags, setSelectionTags] = useState([])\r\n const [selectedStatusCode, setSelectedStatusCode] = useState(httpStatusCodeOptions[4])\r\n const currentResponse =\r\n method.responses.find((res) => Number(res.code) === selectedStatusCode.value) || '{}'\r\n\r\n const onTableChange = (key, value, index) => {\r\n const newTableData = tableData.map((item, tIndex) => {\r\n if (tIndex === index) {\r\n return { ...item, [key]: value }\r\n } else {\r\n return item\r\n }\r\n })\r\n\r\n setTableData(newTableData)\r\n }\r\n\r\n const generateTableData = (items) => {\r\n return items.map((item, index) => {\r\n return {\r\n id: index,\r\n paramName: item.name,\r\n paramType: capitalize(item.in),\r\n schemaType: capitalize(item.schema?.type) || '',\r\n required: (\r\n <>\r\n {readOnly ? (\r\n item.required ? (\r\n 'True'\r\n ) : (\r\n 'False'\r\n )\r\n ) : (\r\n <Switch\r\n checked={item.required}\r\n onClick={() => {\r\n if (readOnly) {\r\n return null\r\n }\r\n onTableChange('required', !item.required, index)\r\n setFieldValue(`parameters[${index}][required]`, !item.required)\r\n }}\r\n />\r\n )}\r\n </>\r\n ),\r\n description: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n key={`${index}-description`}\r\n allowHTML\r\n disabled={method.parameters[index].description?.length <= 12}\r\n content={\r\n <div style={{ padding: '0.625rem' }}>{method.parameters[index].description}</div>\r\n }\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n delay={[0, 0]}\r\n onShow={() => tooltipRefs[index]?.hide()}\r\n >\r\n <p style={{ alignSelf: 'center' }}>\r\n {method.parameters[index].description\r\n ? method.parameters[index].description.substring(0, 12)\r\n : readOnly && '-'}\r\n {method.parameters[index].description &&\r\n method.parameters[index].description.length > 12\r\n ? '...'\r\n : ''}\r\n </p>\r\n </Tooltip>\r\n {!readOnly && (\r\n <Tooltip\r\n key={`${index}-add-edit-description`}\r\n allowHTML\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) =>\r\n setTooltipRefs((prev) => ({\r\n ...prev,\r\n [index]: instance,\r\n }))\r\n }\r\n content={\r\n <div className={styles.editDescTooltipContent}>\r\n <p className={styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n placeholder=\"Describe parameter...\"\r\n value={item.description}\r\n disabled={readOnly}\r\n maxLength={120}\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value))\r\n onTableChange('description', value, index)\r\n }}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(\r\n `parameters[${index}].description`,\r\n item.description?.trim()\r\n )\r\n tooltipRefs[index]?.hide()\r\n }}\r\n disabled={!item.description?.trim()}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly || method.parameters[index].description?.length > 0 ? (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n ></Button>\r\n ) : (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly ? 'View ' : 'Add '} Description\r\n </Button>\r\n )}\r\n </Tooltip>\r\n )}\r\n\r\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\r\n onClick={() => handleDeleteClick(index, item.name)}\r\n ></Button>\r\n )}\r\n </div>\r\n ),\r\n }\r\n })\r\n }\r\n\r\n const confirmDeleteParameter = () => {\r\n if (selectedParamIndex !== null) {\r\n setTableData((prev) => prev.filter((_, i) => i !== selectedParamIndex))\r\n setFieldValue(\r\n `parameters`,\r\n method?.parameters?.filter((_, i) => i !== selectedParamIndex)\r\n )\r\n }\r\n setOpenDeleteDialog(false)\r\n setSelectedParamIndex(null)\r\n }\r\n\r\n const handleDeleteClick = (id: number, name: string) => {\r\n setSelectedParamIndex(id)\r\n setSelectedParamName(name)\r\n\r\n setOpenDeleteDialog(true)\r\n }\r\n\r\n const saveNewRow = (values) => {\r\n setTableData([...tableData, values])\r\n setFieldValue(`parameters`, [...method.parameters, values])\r\n }\r\n\r\n useEffect(() => {\r\n setTableRecords(generateTableData(tableData))\r\n }, [tableData])\r\n\r\n useEffect(() => {\r\n if (method?.parameters) {\r\n setTableData(method.parameters)\r\n }\r\n }, [method, path])\r\n\r\n useEffect(() => {\r\n // prepare tags selection list\r\n if (method?.tags.length || tags?.length) {\r\n const convertedStringArray = (method?.tags || [])?.map((item) => ({\r\n label: capitalize(item),\r\n value: item,\r\n }))\r\n const mergedArray = [\r\n ...convertedStringArray,\r\n ...(tags || []).map((item) => ({ label: capitalize(item.name), value: item.name })),\r\n ]\r\n\r\n const filteredArray = mergedArray.filter(\r\n (value, index, self) => index === self.findIndex((t) => t.value === value.value)\r\n )\r\n\r\n setSelectionTags(filteredArray)\r\n }\r\n }, [tags, method])\r\n\r\n return (\r\n <div>\r\n <Accordion\r\n expanded={isOpen}\r\n onChange={() => setIsOpen(!isOpen)}\r\n className={`${styles.methodAccordion} ${readOnly ? styles.readOnly : ''}`}\r\n summary={\r\n <div className={styles.methodSummaryContainer}>\r\n <div className={styles.methodSummary}>\r\n <span\r\n style={{\r\n backgroundColor: methodColorMapping?.[method?.type]?.color || '#3A6CD1',\r\n }}\r\n className={styles.methodLabel}\r\n >\r\n {methodColorMapping?.[method?.type]?.label || method?.type}\r\n </span>\r\n <span className={styles.methodPath}>{path}</span>\r\n </div>\r\n <div\r\n className={`${styles.methodExpandArrowContainer} ${isOpen ? styles.expanded : ''}`}\r\n >\r\n <SVGLoader src={DownArrowIcon} width=\"2rem\" height=\"2rem\" />\r\n </div>\r\n </div>\r\n }\r\n children={\r\n <div className={styles.methodAccordionContent}>\r\n <SelectGroup\r\n className={styles.methodDesc}\r\n disabled={readOnly}\r\n placeholder=\"Select Tags\"\r\n label=\"Tags\"\r\n value={method.tags?.map((t) => ({\r\n label: capitalize(t),\r\n value: t,\r\n }))}\r\n onChange={(item) => {\r\n setFieldValue(\r\n 'tags',\r\n item.map((i) => i.value)\r\n )\r\n }}\r\n options={[\r\n {\r\n list: selectionTags,\r\n },\r\n ]}\r\n isMultiple={true}\r\n withSearch={false}\r\n clearable={false}\r\n />\r\n {!readOnly ? (\r\n <TextArea\r\n className={styles.methodDesc}\r\n label=\"Description\"\r\n placeholder=\"Describe the method's purpose and functionality...\"\r\n maxLength={120}\r\n value={method?.description}\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value)) setFieldValue('description', value)\r\n }}\r\n />\r\n ) : (\r\n <SimpleLabelValue\r\n key={'description'}\r\n label={'Description: '}\r\n value={method?.description || '-'}\r\n />\r\n )}\r\n <div className={styles.paramsTable}>\r\n <ParamterTable\r\n id=\"paramter-table\"\r\n data={tableRecords}\r\n headCells={paramsTableHeaders}\r\n isFormOpen={isFormOpen}\r\n setIsFormOpen={setIsFormOpen}\r\n saveNewRow={saveNewRow}\r\n readOnly={readOnly}\r\n />\r\n </div>\r\n {method?.type !== 'get' && (\r\n <Accordion\r\n expanded={isExpanded.request}\r\n onChange={() => null}\r\n className={styles.requestAccordion}\r\n summary={\r\n <span className={styles.requestAccordionSummary}>\r\n <div\r\n className={styles.requestAccordionSummary_title}\r\n onClick={() =>\r\n setIsExpanded((prev) => ({\r\n ...prev,\r\n request: !prev.request,\r\n }))\r\n }\r\n >\r\n <SVGLoader\r\n className={isExpanded.request ? styles.expanded : ''}\r\n src={DownArrowIcon}\r\n width=\"2rem\"\r\n height=\"2rem\"\r\n />\r\n Request\r\n {method?.type !== 'delete' && <span style={{ color: 'red' }}>*</span>}\r\n </div>\r\n </span>\r\n }\r\n children={\r\n <JsonInput\r\n acceptType=\"JSON\"\r\n withFooter={!readOnly}\r\n className={'jsonField'}\r\n placeholder=\"Enter your request body as a JSON object....\"\r\n fieldIsDisabled={readOnly}\r\n value={method?.requestBody?.content?.schema?.properties || '{}'}\r\n onChange={(value: string) => {\r\n setFieldValue('requestBody.content.schema.properties', value)\r\n }}\r\n onValidation={() => null}\r\n />\r\n }\r\n />\r\n )}\r\n <Accordion\r\n expanded={isExpanded.response}\r\n onChange={() => null}\r\n className={styles.responseAccordion}\r\n summary={\r\n <span className={styles.responseAccordionSummary}>\r\n <div\r\n className={styles.responseAccordionSummary_title}\r\n onClick={() =>\r\n setIsExpanded((prev) => ({\r\n ...prev,\r\n response: !prev.response,\r\n }))\r\n }\r\n >\r\n <SVGLoader\r\n className={isExpanded.response ? styles.expanded : ''}\r\n src={DownArrowIcon}\r\n width=\"2rem\"\r\n height=\"2rem\"\r\n />\r\n Response<span style={{ color: 'red' }}>*</span>\r\n </div>\r\n\r\n <SelectGroup\r\n withSearch={false}\r\n isMultiple={false}\r\n clearable={false}\r\n placeholder=\"200\"\r\n options={[\r\n {\r\n list: httpStatusCodeOptions,\r\n },\r\n ]}\r\n value={selectedStatusCode}\r\n onChange={(value) => {\r\n setSelectedStatusCode(value)\r\n }}\r\n />\r\n </span>\r\n }\r\n children={\r\n <JsonInput\r\n acceptType=\"JSON\"\r\n withFooter={!readOnly}\r\n className={'jsonField'}\r\n placeholder=\"Enter your response as a JSON object...\"\r\n fieldIsDisabled={readOnly}\r\n value={currentResponse?.content?.schema?.properties || '{}'}\r\n onChange={(value) => {\r\n const currentResIndex = method.responses.findIndex(\r\n (res) => res.code === currentResponse.code\r\n )\r\n if (currentResIndex !== -1) {\r\n setFieldValue(\r\n `responses[${currentResIndex}].content.schema.properties`,\r\n value\r\n )\r\n } else {\r\n const clonedResponses = structuredClone(method.responses)\r\n\r\n clonedResponses.push({\r\n code: selectedStatusCode.value.toString(),\r\n content: {\r\n contentType: 'application/json',\r\n schema: {\r\n type: 'object',\r\n properties: value,\r\n },\r\n },\r\n })\r\n\r\n setFieldValue('responses', clonedResponses)\r\n }\r\n }}\r\n onValidation={(valid) => null}\r\n />\r\n }\r\n />\r\n </div>\r\n }\r\n />\r\n <CommonDialog\r\n status=\"error\"\r\n content={\r\n <p\r\n style={{\r\n textAlign: 'center',\r\n fontWeight: 400,\r\n fontSize: '1rem',\r\n lineHeight: '1.4375rem',\r\n }}\r\n className=\"delete-msg-container\"\r\n >\r\n Are you sure you want to delete\r\n <span className=\"plan-name\">\r\n {' '}\r\n Parameter <strong>{selectedParamName}</strong>\r\n </span>\r\n ?\r\n </p>\r\n }\r\n onSubmit={{\r\n onClick: confirmDeleteParameter,\r\n text: 'Delete',\r\n color: 'error',\r\n fullWidth: true,\r\n }}\r\n onCancel={{\r\n text: 'Cancel',\r\n color: 'normal',\r\n fullWidth: true,\r\n }}\r\n onClose={() => setOpenDeleteDialog(false)}\r\n open={openDeleteDialog}\r\n icon={<SVGLoader src={deleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default MethodsAccordion\r\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","isExpanded","setIsExpanded","useState","request","response","isFormOpen","setIsFormOpen","tooltipRefs","setTooltipRefs","tableData","setTableData","openDeleteDialog","setOpenDeleteDialog","selectedParamIndex","setSelectedParamIndex","selectedParamName","setSelectedParamName","tableRecords","setTableRecords","selectionTags","setSelectionTags","selectedStatusCode","setSelectedStatusCode","currentResponse","responses","find","res","Number","onTableChange","key","index","newTableData","item","tIndex","Object","assign","handleDeleteClick","id","name","useEffect","paramName","paramType","capitalize","in","schemaType","_a","schema","type","required","jsx","_Fragment","Switch","checked","onClick","description","paramDescContainer","Tooltip","allowHTML","disabled","parameters","_b","length","content","padding","arrowWithBorder","placement","delay","onShow","hide","alignSelf","substring","trigger","onCreate","instance","prev","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","maxLength","onChange","regex","ASCII","test","Button","editDescTooltipContent_btn","variant","size","trim","_c","_d","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","jsxs","paramDescContainer_separator","deleteParamBtn","DeleteIcon","filteredArray","filter","self","findIndex","t","Accordion","expanded","methodAccordion","summary","methodSummaryContainer","methodSummary","methodColorMapping","methodLabel","methodPath","methodExpandArrowContainer","DownArrowIcon","methodAccordionContent","SelectGroup","methodDesc","i","options","list","isMultiple","withSearch","clearable","SimpleLabelValue","paramsTable","ParamterTable","data","headCells","paramsTableHeaders","saveNewRow","values","requestAccordion","requestAccordionSummary","requestAccordionSummary_title","JsonInput","acceptType","withFooter","fieldIsDisabled","_f","_e","requestBody","properties","onValidation","responseAccordion","responseAccordionSummary","responseAccordionSummary_title","_h","_g","currentResIndex","clonedResponses","structuredClone","push","toString","contentType","valid","CommonDialog","status","textAlign","fontWeight","fontSize","lineHeight","onSubmit","_","text","fullWidth","onCancel","onClose","open","icon","deleteOutlinedIcon"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{__rest as e}from"../../node_modules/tslib/tslib.es6.js";const t=e=>{var t,s,n,c,i;if(e.components&&e.components.securitySchemes){const o=null===(t=Object.keys(e.components.securitySchemes))||void 0===t?void 0:t.at(0);o&&(e.components.securitySchemes[o].type=null===(i=null===(c=null===(n=null===(s=null==e?void 0:e.components)||void 0===s?void 0:s.securitySchemes)||void 0===n?void 0:n[o])||void 0===c?void 0:c.type)||void 0===i?void 0:i.toUpperCase())}else e.components={securitySchemes:{Public:{type:"http",scheme:"public"}}};return e.tags||(e.tags=[]),Object.assign(Object.assign({},e),{paths:o(e.paths)})},s=e=>{var t,s,o,c,i;const r=Object.assign(Object.assign({},e),{paths:n(e.paths)});if(r.components&&r.components.securitySchemes){const e=null===(t=Object.keys(r.components.securitySchemes))||void 0===t?void 0:t.at(0);e&&(r.components.securitySchemes[e].type.toLowerCase()=="APIKEY".toLowerCase()&&(r.components.securitySchemes[e].in=r.components.securitySchemes[e].in.toUpperCase()),r.components.securitySchemes[e].type=null===(i=null===(c=null===(o=null===(s=null==r?void 0:r.components)||void 0===s?void 0:s.securitySchemes)||void 0===o?void 0:o[e])||void 0===c?void 0:c.type)||void 0===i?void 0:i.toUpperCase())}return r},o=e=>Object.entries(e).map((([e,t])=>({path:e,methods:Object.entries(t).map((([e,t])=>{var s,o,n,c,i,r;const p=Object.assign(Object.assign({},t),{type:e,tags:t.tags||[],responses:Object.entries(t.responses).map((([e,t])=>{var s,o,n,c,i;const r=Object.keys(t.content||{})[0];return{code:e,content:{contentType:r,schema:Object.assign(Object.assign({},null===(o=null===(s=t.content)||void 0===s?void 0:s[r])||void 0===o?void 0:o.schema),{properties:JSON.stringify(null===(i=null===(c=null===(n=t.content)||void 0===n?void 0:n[r])||void 0===c?void 0:c.schema)||void 0===i?void 0:i.properties)})}}}))});if((null==t?void 0:t.parameters)||(p.parameters=[]),"get"!=e.toLowerCase()){const e=Object.keys((null===(s=null==t?void 0:t.requestBody)||void 0===s?void 0:s.content)||{})[0],d=null===(n=null===(o=null==t?void 0:t.requestBody)||void 0===o?void 0:o.content)||void 0===n?void 0:n.schema,l=(null===(r=null===(i=null===(c=null==t?void 0:t.requestBody)||void 0===c?void 0:c.content)||void 0===i?void 0:i.schema)||void 0===r?void 0:r.properties)?{content:{contentType:e,schema:Object.assign(Object.assign({},d),{properties:(null==d?void 0:d.properties)?JSON.stringify(null==d?void 0:d.properties):"{}"})}}:{content:{contentType:"application/json",schema:{properties:"{}",type:"object"}}};p.requestBody=l}return p}))}))),n=t=>t.reduce(((t,{path:s,methods:o})=>(t[s]=o.reduce(((t,s)=>{var{type:o,tags:n,responses:c,requestBody:i}=s,r=e(s,["type","tags","responses","requestBody"]);t[o]=Object.assign(Object.assign({},r),{tags:n,responses:c.reduce(((e,{code:t,content:s})=>{var o;return e[t]={description:"Success",content:s.contentType?{[s.contentType]:{schema:Object.assign(Object.assign({},s.schema),{properties:JSON.parse(null===(o=null==s?void 0:s.schema)||void 0===o?void 0:o.properties)})}}:{}},e}),{})});const p="get"!==o?JSON.parse(i.content.schema.properties):{};return"get"!==o&&(t[o].requestBody={content:{[i.content.contentType]:{schema:Object.assign(Object.assign({},i.content.schema),{properties:p})}}}),t}),{}),t)),{});export{t as transformOpenApiObject,s as transformOpenApiObjectToOrigin,n as transformPathsArrayToOrigin,o as transformPathsToArray};
1
+ import{__rest as e}from"../../node_modules/tslib/tslib.es6.js";const t=e=>{var t,s,n,c,i;if(e.components&&e.components.securitySchemes){const o=null===(t=Object.keys(e.components.securitySchemes))||void 0===t?void 0:t.at(0);o&&(e.components.securitySchemes[o].type=null===(i=null===(c=null===(n=null===(s=null==e?void 0:e.components)||void 0===s?void 0:s.securitySchemes)||void 0===n?void 0:n[o])||void 0===c?void 0:c.type)||void 0===i?void 0:i.toUpperCase())}else e.components={securitySchemes:{Public:{type:"http",scheme:"public"}}};return e.tags||(e.tags=[]),Object.assign(Object.assign({},e),{paths:o(e.paths)})},s=e=>{var t,s,o,n,i;const r=Object.assign(Object.assign({},e),{paths:c(e.paths)});if(r.components&&r.components.securitySchemes){const e=null===(t=Object.keys(r.components.securitySchemes))||void 0===t?void 0:t.at(0);e&&(r.components.securitySchemes[e].type.toLowerCase()=="APIKEY".toLowerCase()&&(r.components.securitySchemes[e].in=r.components.securitySchemes[e].in.toUpperCase()),r.components.securitySchemes[e].type=null===(i=null===(n=null===(o=null===(s=null==r?void 0:r.components)||void 0===s?void 0:s.securitySchemes)||void 0===o?void 0:o[e])||void 0===n?void 0:n.type)||void 0===i?void 0:i.toUpperCase())}return r},o=e=>Object.entries(e).map((([e,t])=>({path:e,methods:Object.entries(t).map((([e,t])=>{var s,o,n,c,i,r;const p=Object.assign(Object.assign({},t),{type:e,tags:t.tags||[],responses:Object.entries(t.responses).map((([e,t])=>{var s,o,n,c,i;const r=Object.keys(t.content||{})[0];return{code:e,content:{contentType:r,schema:Object.assign(Object.assign({},null===(o=null===(s=t.content)||void 0===s?void 0:s[r])||void 0===o?void 0:o.schema),{properties:JSON.stringify(null===(i=null===(c=null===(n=t.content)||void 0===n?void 0:n[r])||void 0===c?void 0:c.schema)||void 0===i?void 0:i.properties)})}}}))});if((null==t?void 0:t.parameters)||(p.parameters=[]),"get"!=e.toLowerCase()){const e=Object.keys((null===(s=null==t?void 0:t.requestBody)||void 0===s?void 0:s.content)||{})[0],d=null===(n=null===(o=null==t?void 0:t.requestBody)||void 0===o?void 0:o.content)||void 0===n?void 0:n.schema,l=(null===(r=null===(i=null===(c=null==t?void 0:t.requestBody)||void 0===c?void 0:c.content)||void 0===i?void 0:i.schema)||void 0===r?void 0:r.properties)?{content:{contentType:e,schema:Object.assign(Object.assign({},d),{properties:(null==d?void 0:d.properties)?JSON.stringify(null==d?void 0:d.properties):"{}"})}}:{content:{contentType:"application/json",schema:{properties:"{}",type:"object"}}};p.requestBody=l}return p}))}))),n=(e,t)=>{var s;let o=JSON.parse(null===(s=null==e?void 0:e.schema)||void 0===s?void 0:s.properties);return"get"==t&&((null==o?void 0:o.body)||(o={body:o})),o},c=t=>t.reduce(((t,{path:s,methods:o})=>(t[s]=o.reduce(((t,s)=>{var{type:o,tags:c,responses:i,requestBody:r}=s,p=e(s,["type","tags","responses","requestBody"]);t[o]=Object.assign(Object.assign({},p),{tags:c,responses:i.reduce(((e,{code:t,content:s})=>(e[t]={description:"Success",content:s.contentType?{[s.contentType]:{schema:Object.assign(Object.assign({},s.schema),{properties:n(s,o)})}}:{}},e)),{})});const d="get"!==o?JSON.parse(r.content.schema.properties):{};return"get"!==o&&(t[o].requestBody={content:{[r.content.contentType]:{schema:Object.assign(Object.assign({},r.content.schema),{properties:d})}}}),t}),{}),t)),{});export{t as transformOpenApiObject,s as transformOpenApiObjectToOrigin,c as transformPathsArrayToOrigin,o as transformPathsToArray};
2
2
  //# sourceMappingURL=layout.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.helper.js","sources":["../../../src/helpers/layout.helper.ts"],"sourcesContent":["import { TransformedPathsArray } from '@entities/layout.type'\r\nimport { OpenAPIFile, SecurityScheme } from '@entities/openApi'\r\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\r\n\r\nexport const transformOpenApiObject = (openApiJson: OpenAPIFile): TransformedOpenApi => {\r\n if (openApiJson.components && openApiJson.components.securitySchemes) {\r\n const authKey = Object.keys(openApiJson.components.securitySchemes)?.at(0)\r\n if (authKey) {\r\n openApiJson.components.securitySchemes[authKey].type =\r\n openApiJson?.components?.securitySchemes?.[\r\n authKey\r\n ]?.type?.toUpperCase() as SecurityScheme['type']\r\n }\r\n } else {\r\n openApiJson.components = {\r\n securitySchemes: {\r\n Public: {\r\n type: 'http',\r\n scheme: 'public',\r\n },\r\n },\r\n }\r\n }\r\n\r\n if (!openApiJson.tags) {\r\n openApiJson.tags = []\r\n }\r\n\r\n return {\r\n ...openApiJson,\r\n paths: transformPathsToArray(openApiJson.paths),\r\n } as TransformedOpenApi\r\n}\r\n\r\nexport const transformOpenApiObjectToOrigin = (values: TransformedOpenApi): OpenAPIFile => {\r\n const object = {\r\n ...values,\r\n paths: transformPathsArrayToOrigin(values.paths),\r\n }\r\n if (object.components && object.components.securitySchemes) {\r\n const authKey = Object.keys(object.components.securitySchemes)?.at(0)\r\n if (authKey) {\r\n if (object.components.securitySchemes[authKey].type.toLowerCase() == 'APIKEY'.toLowerCase()) {\r\n object.components.securitySchemes[authKey].in = object.components.securitySchemes[\r\n authKey\r\n ].in.toUpperCase() as SecurityScheme['in']\r\n }\r\n object.components.securitySchemes[authKey].type = object?.components?.securitySchemes?.[\r\n authKey\r\n ]?.type?.toUpperCase() as SecurityScheme['type']\r\n }\r\n }\r\n return object\r\n}\r\n\r\nexport const transformPathsToArray = (paths: OpenAPIFile['paths']): TransformedPathsArray | any => {\r\n const transformedPaths = Object.entries(paths).map(([path, methods]) => ({\r\n path,\r\n methods: Object.entries(methods).map(([method, methodProps]) => {\r\n const obj: any = {\r\n ...methodProps,\r\n type: method,\r\n tags: methodProps.tags || [],\r\n responses: Object.entries(methodProps.responses).map(([code, codeProps]) => {\r\n const contentType = Object.keys(codeProps.content || {})[0]\r\n return {\r\n code,\r\n content: {\r\n contentType,\r\n schema: {\r\n ...codeProps.content?.[contentType]?.schema,\r\n properties: JSON.stringify(codeProps.content?.[contentType]?.schema?.properties),\r\n },\r\n },\r\n }\r\n }),\r\n }\r\n // Add parameters if it does not exist in the original JSON\r\n if (!methodProps?.parameters) {\r\n obj.parameters = []\r\n }\r\n\r\n if (method.toLowerCase() != 'get') {\r\n const contentType = Object.keys(methodProps?.requestBody?.content || {})[0]\r\n const reqSchema = methodProps?.requestBody?.content?.schema\r\n const requestBodyData = methodProps?.requestBody?.content?.schema?.properties\r\n ? {\r\n content: {\r\n contentType,\r\n schema: {\r\n ...reqSchema,\r\n properties: reqSchema?.properties ? JSON.stringify(reqSchema?.properties) : '{}',\r\n },\r\n },\r\n }\r\n : {\r\n content: {\r\n contentType: 'application/json',\r\n schema: {\r\n properties: '{}',\r\n type: 'object',\r\n },\r\n },\r\n }\r\n\r\n obj['requestBody'] = requestBodyData\r\n }\r\n\r\n return obj\r\n }),\r\n }))\r\n\r\n return transformedPaths\r\n}\r\n\r\nexport const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenAPIFile['paths'] => {\r\n return paths.reduce((acc, { path, methods }) => {\r\n acc[path] = methods.reduce((methodAcc, { type, tags, responses, requestBody, ...rest }) => {\r\n // Initialize the method object\r\n methodAcc[type] = {\r\n ...rest,\r\n tags,\r\n responses: responses.reduce((respAcc, { code, content }) => {\r\n respAcc[code] = {\r\n description: 'Success', // Assuming this is static from the original data\r\n content: content.contentType\r\n ? {\r\n [content.contentType]: {\r\n schema: {\r\n ...(content.schema as object),\r\n properties: JSON.parse((content?.schema as any)?.properties as string),\r\n },\r\n },\r\n }\r\n : {},\r\n }\r\n return respAcc\r\n }, {} as Record<string, any>),\r\n }\r\n\r\n const parsedRequestBodyProps =\r\n type !== 'get' ? JSON.parse(requestBody.content.schema.properties) : {}\r\n // Add requestBody for non-GET methods\r\n if (type !== 'get') {\r\n methodAcc[type].requestBody = {\r\n content: {\r\n [requestBody.content.contentType]: {\r\n schema: {\r\n ...requestBody.content.schema,\r\n properties: parsedRequestBodyProps,\r\n },\r\n },\r\n },\r\n }\r\n }\r\n\r\n return methodAcc\r\n }, {} as Record<string, any>)\r\n\r\n return acc\r\n }, {} as OpenAPIFile['paths'])\r\n}\r\n"],"names":["transformOpenApiObject","openApiJson","components","securitySchemes","authKey","_a","Object","keys","at","type","_e","_d","_b","_c","toUpperCase","Public","scheme","tags","assign","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","obj","responses","code","codeProps","contentType","content","schema","properties","JSON","stringify","parameters","requestBody","reqSchema","requestBodyData","reduce","acc","methodAcc","rest","__rest","respAcc","description","parse","parsedRequestBodyProps"],"mappings":"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"}
1
+ {"version":3,"file":"layout.helper.js","sources":["../../../src/helpers/layout.helper.ts"],"sourcesContent":["import { TransformedPathsArray } from '@entities/layout.type'\r\nimport { OpenAPIFile, SecurityScheme } from '@entities/openApi'\r\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\r\n\r\nexport const transformOpenApiObject = (openApiJson: OpenAPIFile): TransformedOpenApi => {\r\n if (openApiJson.components && openApiJson.components.securitySchemes) {\r\n const authKey = Object.keys(openApiJson.components.securitySchemes)?.at(0)\r\n if (authKey) {\r\n openApiJson.components.securitySchemes[authKey].type =\r\n openApiJson?.components?.securitySchemes?.[\r\n authKey\r\n ]?.type?.toUpperCase() as SecurityScheme['type']\r\n }\r\n } else {\r\n openApiJson.components = {\r\n securitySchemes: {\r\n Public: {\r\n type: 'http',\r\n scheme: 'public',\r\n },\r\n },\r\n }\r\n }\r\n\r\n if (!openApiJson.tags) {\r\n openApiJson.tags = []\r\n }\r\n\r\n return {\r\n ...openApiJson,\r\n paths: transformPathsToArray(openApiJson.paths),\r\n } as TransformedOpenApi\r\n}\r\n\r\nexport const transformOpenApiObjectToOrigin = (values: TransformedOpenApi): OpenAPIFile => {\r\n const object = {\r\n ...values,\r\n paths: transformPathsArrayToOrigin(values.paths),\r\n }\r\n if (object.components && object.components.securitySchemes) {\r\n const authKey = Object.keys(object.components.securitySchemes)?.at(0)\r\n if (authKey) {\r\n if (object.components.securitySchemes[authKey].type.toLowerCase() == 'APIKEY'.toLowerCase()) {\r\n object.components.securitySchemes[authKey].in = object.components.securitySchemes[\r\n authKey\r\n ].in.toUpperCase() as SecurityScheme['in']\r\n }\r\n object.components.securitySchemes[authKey].type = object?.components?.securitySchemes?.[\r\n authKey\r\n ]?.type?.toUpperCase() as SecurityScheme['type']\r\n }\r\n }\r\n return object\r\n}\r\n\r\nexport const transformPathsToArray = (paths: OpenAPIFile['paths']): TransformedPathsArray | any => {\r\n const transformedPaths = Object.entries(paths).map(([path, methods]) => ({\r\n path,\r\n methods: Object.entries(methods).map(([method, methodProps]) => {\r\n const obj: any = {\r\n ...methodProps,\r\n type: method,\r\n tags: methodProps.tags || [],\r\n responses: Object.entries(methodProps.responses).map(([code, codeProps]) => {\r\n const contentType = Object.keys(codeProps.content || {})[0]\r\n return {\r\n code,\r\n content: {\r\n contentType,\r\n schema: {\r\n ...codeProps.content?.[contentType]?.schema,\r\n properties: JSON.stringify(codeProps.content?.[contentType]?.schema?.properties),\r\n },\r\n },\r\n }\r\n }),\r\n }\r\n // Add parameters if it does not exist in the original JSON\r\n if (!methodProps?.parameters) {\r\n obj.parameters = []\r\n }\r\n\r\n if (method.toLowerCase() != 'get') {\r\n const contentType = Object.keys(methodProps?.requestBody?.content || {})[0]\r\n const reqSchema = methodProps?.requestBody?.content?.schema\r\n const requestBodyData = methodProps?.requestBody?.content?.schema?.properties\r\n ? {\r\n content: {\r\n contentType,\r\n schema: {\r\n ...reqSchema,\r\n properties: reqSchema?.properties ? JSON.stringify(reqSchema?.properties) : '{}',\r\n },\r\n },\r\n }\r\n : {\r\n content: {\r\n contentType: 'application/json',\r\n schema: {\r\n properties: '{}',\r\n type: 'object',\r\n },\r\n },\r\n }\r\n\r\n obj['requestBody'] = requestBodyData\r\n }\r\n\r\n return obj\r\n }),\r\n }))\r\n\r\n return transformedPaths\r\n}\r\n\r\nconst validateBodyForResponse = (content, method) => {\r\n let _content = JSON.parse((content?.schema as any)?.properties as string)\r\n if (method == 'get') {\r\n if (!_content?.body) {\r\n _content = {\r\n body: _content,\r\n }\r\n }\r\n }\r\n return _content\r\n}\r\n\r\nexport const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenAPIFile['paths'] => {\r\n return paths.reduce((acc, { path, methods }) => {\r\n acc[path] = methods.reduce((methodAcc, { type, tags, responses, requestBody, ...rest }) => {\r\n // Initialize the method object\r\n methodAcc[type] = {\r\n ...rest,\r\n tags,\r\n responses: responses.reduce((respAcc, { code, content }) => {\r\n respAcc[code] = {\r\n description: 'Success', // Assuming this is static from the original data\r\n content: content.contentType\r\n ? {\r\n [content.contentType]: {\r\n schema: {\r\n ...(content.schema as object),\r\n properties: validateBodyForResponse(content, type),\r\n },\r\n },\r\n }\r\n : {},\r\n }\r\n return respAcc\r\n }, {} as Record<string, any>),\r\n }\r\n\r\n const parsedRequestBodyProps =\r\n type !== 'get' ? JSON.parse(requestBody.content.schema.properties) : {}\r\n // Add requestBody for non-GET methods\r\n if (type !== 'get') {\r\n methodAcc[type].requestBody = {\r\n content: {\r\n [requestBody.content.contentType]: {\r\n schema: {\r\n ...requestBody.content.schema,\r\n properties: parsedRequestBodyProps,\r\n },\r\n },\r\n },\r\n }\r\n }\r\n\r\n return methodAcc\r\n }, {} as Record<string, any>)\r\n\r\n return acc\r\n }, {} as OpenAPIFile['paths'])\r\n}\r\n"],"names":["transformOpenApiObject","openApiJson","components","securitySchemes","authKey","_a","Object","keys","at","type","_e","_d","_b","_c","toUpperCase","Public","scheme","tags","assign","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","obj","responses","code","codeProps","contentType","content","schema","properties","JSON","stringify","parameters","requestBody","reqSchema","requestBodyData","validateBodyForResponse","_content","parse","body","reduce","acc","methodAcc","rest","__rest","respAcc","description","parsedRequestBodyProps"],"mappings":"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"}
package/dist/styles.css CHANGED
@@ -1,4 +1,81 @@
1
- .apiInfoForm {
1
+ #common-dialog.dialog-content-wrapper {
2
+ overflow: visible !important;
3
+ max-height: 100%;
4
+ width: 22.1875rem;
5
+ }
6
+ #common-dialog.dialog-content-wrapper .dialog-content-root {
7
+ overflow: visible !important;
8
+ border-radius: 0.625rem;
9
+ max-height: 100%;
10
+ }
11
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content {
12
+ padding: 0 1.875rem !important;
13
+ overflow: visible !important;
14
+ max-height: 100%;
15
+ }
16
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog {
17
+ position: relative;
18
+ }
19
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .close-icon {
20
+ position: absolute;
21
+ z-index: 1;
22
+ top: 1.5rem;
23
+ right: 0;
24
+ transform: translate(0.625rem, -0.625rem);
25
+ cursor: pointer;
26
+ }
27
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header {
28
+ display: flex;
29
+ padding-top: 0.5rem;
30
+ position: relative;
31
+ }
32
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon {
33
+ margin-top: 1rem;
34
+ margin-bottom: 1.5rem;
35
+ margin-inline: auto;
36
+ }
37
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.info path {
38
+ stroke: #12131a;
39
+ }
40
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.info line {
41
+ stroke: #12131a;
42
+ }
43
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.info line + path {
44
+ fill: #12131a;
45
+ }
46
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.warning path {
47
+ stroke: #faad14;
48
+ }
49
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.warning line {
50
+ stroke: #faad14;
51
+ }
52
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.error path {
53
+ stroke: #da3f3f;
54
+ }
55
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.error line {
56
+ stroke: #da3f3f;
57
+ }
58
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.error line + path {
59
+ fill: #da3f3f;
60
+ }
61
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-title {
62
+ font-size: 1.5rem;
63
+ font-weight: 500;
64
+ line-height: 1.875rem;
65
+ text-align: center;
66
+ margin-bottom: 0.625rem;
67
+ }
68
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-title.error-title {
69
+ color: #da3f3f;
70
+ }
71
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-title.warning-title {
72
+ color: #faad14;
73
+ }
74
+ #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-footer {
75
+ display: flex;
76
+ gap: 1.25rem;
77
+ margin-top: 1.875rem;
78
+ }.apiInfoForm {
2
79
  display: grid;
3
80
  padding: 1.25rem 1.875rem;
4
81
  gap: 1.25rem;
@@ -389,6 +466,143 @@
389
466
  }
390
467
  .methodAccordion.readOnly .methodSummaryContainer .methodExpandArrowContainer {
391
468
  background-color: #ebecf2;
469
+ }.containerTitleDrawer {
470
+ height: 64px;
471
+ min-height: 64px;
472
+ display: flex;
473
+ flex-direction: row;
474
+ justify-content: space-between;
475
+ align-items: center;
476
+ background-color: #f1f2f6;
477
+ padding: 0 30px 0 30px;
478
+ width: 100%;
479
+ }
480
+ .containerTitleDrawer span {
481
+ color: #12131a;
482
+ font-weight: 600;
483
+ font-size: 18px;
484
+ line-height: 25px;
485
+ letter-spacing: 0em;
486
+ }
487
+ .containerTitleDrawer svg path {
488
+ stroke: #000 !important;
489
+ }
490
+ .containerTitleDrawer .closeIcon {
491
+ cursor: pointer;
492
+ }.tooltip-custom-wrapper {
493
+ display: flex;
494
+ }
495
+
496
+ [data-tippy-root] {
497
+ z-index: 2 !important;
498
+ }
499
+
500
+ .tippy-box {
501
+ background-color: #202f5b;
502
+ font-size: 0.875rem;
503
+ border-radius: 0.3125rem;
504
+ width: max-content;
505
+ max-width: 100%;
506
+ overflow-wrap: break-word;
507
+ word-break: break-word;
508
+ position: relative;
509
+ border: 1px solid #d8dae5;
510
+ z-index: 2;
511
+ }
512
+ .tippy-box.function .tippy-content {
513
+ background-color: #fff !important;
514
+ color: #000 !important;
515
+ }
516
+ .tippy-box.function[data-placement] > .tippy-arrow:before {
517
+ color: #fff !important;
518
+ }
519
+ .tippy-box.info .tippy-arrow {
520
+ color: #202f5b;
521
+ }
522
+ .tippy-box.success {
523
+ border-radius: 1.875rem;
524
+ background-color: #3aaa35;
525
+ padding-inline: 0.625rem;
526
+ }
527
+ .tippy-box .tippy-content {
528
+ text-align: justify;
529
+ font-size: 0.875rem;
530
+ line-height: 1.25rem;
531
+ padding: 0.625rem;
532
+ }
533
+ .tippy-box .tippy-arrow {
534
+ position: relative;
535
+ width: 1rem;
536
+ height: 1rem;
537
+ }
538
+ .tippy-box[data-placement^=top] .tippy-arrow:before {
539
+ bottom: -0.4375rem;
540
+ border-width: 0.5rem 0.5rem 0 !important;
541
+ }
542
+ .tippy-box[data-placement^=right] .tippy-arrow:before {
543
+ left: -0.4375rem;
544
+ border-width: 0.5rem 0.5rem 0.5rem 0 !important;
545
+ }
546
+ .tippy-box[data-placement^=bottom] .tippy-arrow:before {
547
+ top: -0.4375rem;
548
+ border-width: 0 0.5rem 0.5rem !important;
549
+ }
550
+ .tippy-box[data-placement^=left] .tippy-arrow:before {
551
+ right: -0.4375rem;
552
+ border-width: 0.5rem 0 0.5rem 0.5rem !important;
553
+ }
554
+ .tippy-box[data-placement^=bottom-start] .tippy-arrow {
555
+ transform: translate(0.937rem, 0) !important;
556
+ }
557
+ .tippy-box[data-placement^=bottom-end] .tippy-arrow {
558
+ margin-left: calc(100% - 1.937rem);
559
+ transform: translate(0, 0) !important;
560
+ }
561
+ .tippy-box[data-placement^=top-start] .tippy-arrow {
562
+ transform: translate(0.937rem, 0) !important;
563
+ }
564
+ .tippy-box[data-placement^=top-end] .tippy-arrow {
565
+ transform: translate(0.937rem, 0) !important;
566
+ }
567
+ .tippy-box.arrow-with-border {
568
+ border: 1px solid #d8dae5;
569
+ }
570
+ .tippy-box.arrow-with-border[data-placement] .tippy-arrow {
571
+ top: 1px;
572
+ background-color: white;
573
+ z-index: 2;
574
+ height: 1px;
575
+ }
576
+ .tippy-box.arrow-with-border[data-placement] .tippy-arrow:before {
577
+ width: 0.625rem;
578
+ height: 0.625rem;
579
+ background-color: white;
580
+ transform: rotate(45deg);
581
+ border: none;
582
+ border-left: 1px solid #d8dae5 !important;
583
+ border-top: 1px solid #d8dae5 !important;
584
+ z-index: 2;
585
+ top: -0.45rem;
586
+ transform-origin: center !important;
587
+ }.livePreviewContainer .titleContainer {
588
+ display: flex;
589
+ justify-content: space-between;
590
+ align-items: center;
591
+ flex-wrap: wrap;
592
+ max-width: 100%;
593
+ gap: 1.25rem;
594
+ }
595
+ .livePreviewContainer .titleContainer p.apiName {
596
+ font-size: 40px;
597
+ line-height: 30px;
598
+ font-weight: 500;
599
+ word-wrap: break-word;
600
+ overflow-wrap: break-word;
601
+ word-break: break-all;
602
+ }
603
+ .livePreviewContainer .titleContainer .livePreviewChip {
604
+ background-color: #ebecf2;
605
+ color: #12131a;
392
606
  }.json-editor-container {
393
607
  overflow: hidden;
394
608
  border-bottom-right-radius: 0.3125rem;
@@ -500,25 +714,6 @@
500
714
  .json-editor-container.disabled .json-editor textarea {
501
715
  background-color: white;
502
716
  color: #12131a;
503
- }.livePreviewContainer .titleContainer {
504
- display: flex;
505
- justify-content: space-between;
506
- align-items: center;
507
- flex-wrap: wrap;
508
- max-width: 100%;
509
- gap: 1.25rem;
510
- }
511
- .livePreviewContainer .titleContainer p.apiName {
512
- font-size: 40px;
513
- line-height: 30px;
514
- font-weight: 500;
515
- word-wrap: break-word;
516
- overflow-wrap: break-word;
517
- word-break: break-all;
518
- }
519
- .livePreviewContainer .titleContainer .livePreviewChip {
520
- background-color: #ebecf2;
521
- color: #12131a;
522
717
  }:root {
523
718
  --white: #fff;
524
719
  --Gray-5: #f1f2f6;
@@ -601,22 +796,127 @@
601
796
  --alert-natural: #c4d3f1;
602
797
  }
603
798
 
604
- .tableSectionContainer .tableContainer {
605
- max-width: 100%;
606
- overflow-x: overlay;
607
- }
608
- .tableSectionContainer .tableContainer.tableContainer * {
609
- font-family: "Cairo";
799
+ .drawerItemContainer {
800
+ display: flex;
801
+ flex-direction: column;
610
802
  }
611
- .tableSectionContainer .tableContainer .table {
612
- width: 100%;
613
- border-spacing: 0;
614
- border: none;
615
- border-right: 1px solid var(--border-color-neutral);
616
- border-left: 1px solid var(--border-color-neutral);
803
+ .drawerItemContainer .title {
804
+ color: #000;
805
+ font-weight: 600;
806
+ font-size: 24px;
807
+ line-height: 35px;
808
+ margin-bottom: 3px;
809
+ margin-top: 1.5rem;
617
810
  }
618
- .tableSectionContainer .tableContainer .table.borderRadiusTop {
619
- border-top-left-radius: 0.625rem;
811
+ .drawerItemContainer .text {
812
+ color: #000;
813
+ font-weight: 400;
814
+ font-size: 24px;
815
+ line-height: 25px;
816
+ }
817
+ .drawerItemContainer .color-green {
818
+ color: var(--color-success);
819
+ }
820
+ .drawerItemContainer .color-red {
821
+ color: var(--color-error);
822
+ }:root {
823
+ --white: #fff;
824
+ --Gray-5: #f1f2f6;
825
+ --Gray-10: #ebecf2;
826
+ --Gray-20: #d8dae5;
827
+ --Gray-30: #babdcc;
828
+ --Gray-40: #9a9eb2;
829
+ --Gray-50: #828699;
830
+ --Gray-60: #696c80;
831
+ --Gray-100: #12131a;
832
+ --black: #000;
833
+ --primary-static: #4d75d8;
834
+ --primary-hover: #7c9bea;
835
+ --primary-active: #2c4fa4;
836
+ --primary-disabled: #9a9eb2;
837
+ --secondary-static: #40e0d0;
838
+ --secondary-hover: #9efcf2;
839
+ --secondary-active: #2fa599;
840
+ --error-static: #da3f3f;
841
+ --error-hover: #e75d5d;
842
+ --error-active: #bb3232;
843
+ --success-static: #3aaa35;
844
+ --success-hover: #5cda56;
845
+ --success-active: #2a8a25;
846
+ --info-static: #c6c6c6;
847
+ --info-hover: #e4e4e4;
848
+ --info-active: #979797;
849
+ --warning-static: #faad14;
850
+ --warning-hover: #f9be4a;
851
+ --warning-active: #db9711;
852
+ --action-static: #142452;
853
+ --action-hover: #21387d;
854
+ --action-active: #000000;
855
+ --color-info-primary: #3a6cd1;
856
+ --primary-font-color: #142452;
857
+ --placeholder-font-color: #babdcc;
858
+ --warning-font-color: #ce2828;
859
+ --alert-error: #da3f3f;
860
+ --alert-light-error: #f4c5c5;
861
+ --alert-success: #3aaa35;
862
+ --alert-light-success: #c4e5c2;
863
+ --alert-info: #8eaaf1;
864
+ --alert-light-info: #c4d3f1;
865
+ --alert-warning: #faad14;
866
+ --alert-light-warning: #fde6b8;
867
+ --border-focus: #3a6cd1;
868
+ --tooltip-background-color: #202f5b;
869
+ --text-color-primary: #142452;
870
+ --text-color-secondary: #ffff;
871
+ --text-color-neutral: #828699;
872
+ --text-color-tertiary: #808080;
873
+ --text-color-note: #242424;
874
+ --text-color-quaternary: #142452;
875
+ --text-color-disabled: #ffff;
876
+ --background-color-white-primary: #fff;
877
+ --background-color-light-primary: #8eaaf1;
878
+ --background-color-white-secondary: #fff;
879
+ --background-color-primary-dark: #142452;
880
+ --background-color-gray-5: #f1f2f6;
881
+ --background-color-gray-30: #ebecf2;
882
+ --background-color-tertiary-light: #2c4fa4;
883
+ --background-color-gray-10: #f1f2f6;
884
+ --background-color-gray-40: #ebecf2;
885
+ --background-color-light-blue: #dfe7f8;
886
+ --border-color-primary: #babdcc;
887
+ --border-color-secondary: #d8dae5;
888
+ --border-color-neutral: #ebecf2;
889
+ --border-color-tertiary: #ebecf2;
890
+ --border-color-gray: #ebecf2;
891
+ --border-color-hover: #142452;
892
+ --border-color-active: #3a6cd1;
893
+ --icon-color-main: #142452;
894
+ --icon-color-secondary: #000;
895
+ --icon-color-quaternary: #babdcc;
896
+ --icon-color-disabled: #9a9eb2;
897
+ --link-btn-primary-color: #3a6cd1;
898
+ --button-color-static: #4d75d8;
899
+ --button-color-hover: #7c9bea;
900
+ --button-color-active: #2c4fa4;
901
+ --alert-natural: #c4d3f1;
902
+ }
903
+
904
+ .tableSectionContainer .tableContainer {
905
+ max-width: 100%;
906
+ overflow-x: overlay;
907
+ }
908
+ .tableSectionContainer .tableContainer.tableContainer * {
909
+ font-family: "Cairo";
910
+ }
911
+ .tableSectionContainer .tableContainer .table {
912
+ width: 100%;
913
+ border-spacing: 0;
914
+ border: none;
915
+ border-right: 1px solid var(--border-color-neutral);
916
+ border-left: 1px solid var(--border-color-neutral);
917
+ }
918
+ .tableSectionContainer .tableContainer .table.borderRadiusTop {
919
+ border-top-left-radius: 0.625rem;
620
920
  border-top-right-radius: 0.625rem;
621
921
  }
622
922
  .tableSectionContainer .tableContainer .table.borderRadiusBottom {
@@ -754,304 +1054,4 @@
754
1054
  .tableSectionContainer .descArrow path,
755
1055
  .tableSectionContainer .defaultSortArrow path {
756
1056
  fill: var(--Gray-50);
757
- }#common-dialog.dialog-content-wrapper {
758
- overflow: visible !important;
759
- max-height: 100%;
760
- width: 22.1875rem;
761
- }
762
- #common-dialog.dialog-content-wrapper .dialog-content-root {
763
- overflow: visible !important;
764
- border-radius: 0.625rem;
765
- max-height: 100%;
766
- }
767
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content {
768
- padding: 0 1.875rem !important;
769
- overflow: visible !important;
770
- max-height: 100%;
771
- }
772
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog {
773
- position: relative;
774
- }
775
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .close-icon {
776
- position: absolute;
777
- z-index: 1;
778
- top: 1.5rem;
779
- right: 0;
780
- transform: translate(0.625rem, -0.625rem);
781
- cursor: pointer;
782
- }
783
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header {
784
- display: flex;
785
- padding-top: 0.5rem;
786
- position: relative;
787
- }
788
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon {
789
- margin-top: 1rem;
790
- margin-bottom: 1.5rem;
791
- margin-inline: auto;
792
- }
793
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.info path {
794
- stroke: #12131a;
795
- }
796
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.info line {
797
- stroke: #12131a;
798
- }
799
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.info line + path {
800
- fill: #12131a;
801
- }
802
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.warning path {
803
- stroke: #faad14;
804
- }
805
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.warning line {
806
- stroke: #faad14;
807
- }
808
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.error path {
809
- stroke: #da3f3f;
810
- }
811
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.error line {
812
- stroke: #da3f3f;
813
- }
814
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-header .icon.error line + path {
815
- fill: #da3f3f;
816
- }
817
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-title {
818
- font-size: 1.5rem;
819
- font-weight: 500;
820
- line-height: 1.875rem;
821
- text-align: center;
822
- margin-bottom: 0.625rem;
823
- }
824
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-title.error-title {
825
- color: #da3f3f;
826
- }
827
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-title.warning-title {
828
- color: #faad14;
829
- }
830
- #common-dialog.dialog-content-wrapper .dialog-content-root .dialog-content .common-dialog .confirmation-dialog-footer {
831
- display: flex;
832
- gap: 1.25rem;
833
- margin-top: 1.875rem;
834
- }.tooltip-custom-wrapper {
835
- display: flex;
836
- }
837
-
838
- [data-tippy-root] {
839
- z-index: 2 !important;
840
- }
841
-
842
- .tippy-box {
843
- background-color: #202f5b;
844
- font-size: 0.875rem;
845
- border-radius: 0.3125rem;
846
- width: max-content;
847
- max-width: 100%;
848
- overflow-wrap: break-word;
849
- word-break: break-word;
850
- position: relative;
851
- border: 1px solid #d8dae5;
852
- z-index: 2;
853
- }
854
- .tippy-box.function .tippy-content {
855
- background-color: #fff !important;
856
- color: #000 !important;
857
- }
858
- .tippy-box.function[data-placement] > .tippy-arrow:before {
859
- color: #fff !important;
860
- }
861
- .tippy-box.info .tippy-arrow {
862
- color: #202f5b;
863
- }
864
- .tippy-box.success {
865
- border-radius: 1.875rem;
866
- background-color: #3aaa35;
867
- padding-inline: 0.625rem;
868
- }
869
- .tippy-box .tippy-content {
870
- text-align: justify;
871
- font-size: 0.875rem;
872
- line-height: 1.25rem;
873
- padding: 0.625rem;
874
- }
875
- .tippy-box .tippy-arrow {
876
- position: relative;
877
- width: 1rem;
878
- height: 1rem;
879
- }
880
- .tippy-box[data-placement^=top] .tippy-arrow:before {
881
- bottom: -0.4375rem;
882
- border-width: 0.5rem 0.5rem 0 !important;
883
- }
884
- .tippy-box[data-placement^=right] .tippy-arrow:before {
885
- left: -0.4375rem;
886
- border-width: 0.5rem 0.5rem 0.5rem 0 !important;
887
- }
888
- .tippy-box[data-placement^=bottom] .tippy-arrow:before {
889
- top: -0.4375rem;
890
- border-width: 0 0.5rem 0.5rem !important;
891
- }
892
- .tippy-box[data-placement^=left] .tippy-arrow:before {
893
- right: -0.4375rem;
894
- border-width: 0.5rem 0 0.5rem 0.5rem !important;
895
- }
896
- .tippy-box[data-placement^=bottom-start] .tippy-arrow {
897
- transform: translate(0.937rem, 0) !important;
898
- }
899
- .tippy-box[data-placement^=bottom-end] .tippy-arrow {
900
- margin-left: calc(100% - 1.937rem);
901
- transform: translate(0, 0) !important;
902
- }
903
- .tippy-box[data-placement^=top-start] .tippy-arrow {
904
- transform: translate(0.937rem, 0) !important;
905
- }
906
- .tippy-box[data-placement^=top-end] .tippy-arrow {
907
- transform: translate(0.937rem, 0) !important;
908
- }
909
- .tippy-box.arrow-with-border {
910
- border: 1px solid #d8dae5;
911
- }
912
- .tippy-box.arrow-with-border[data-placement] .tippy-arrow {
913
- top: 1px;
914
- background-color: white;
915
- z-index: 2;
916
- height: 1px;
917
- }
918
- .tippy-box.arrow-with-border[data-placement] .tippy-arrow:before {
919
- width: 0.625rem;
920
- height: 0.625rem;
921
- background-color: white;
922
- transform: rotate(45deg);
923
- border: none;
924
- border-left: 1px solid #d8dae5 !important;
925
- border-top: 1px solid #d8dae5 !important;
926
- z-index: 2;
927
- top: -0.45rem;
928
- transform-origin: center !important;
929
- }:root {
930
- --white: #fff;
931
- --Gray-5: #f1f2f6;
932
- --Gray-10: #ebecf2;
933
- --Gray-20: #d8dae5;
934
- --Gray-30: #babdcc;
935
- --Gray-40: #9a9eb2;
936
- --Gray-50: #828699;
937
- --Gray-60: #696c80;
938
- --Gray-100: #12131a;
939
- --black: #000;
940
- --primary-static: #4d75d8;
941
- --primary-hover: #7c9bea;
942
- --primary-active: #2c4fa4;
943
- --primary-disabled: #9a9eb2;
944
- --secondary-static: #40e0d0;
945
- --secondary-hover: #9efcf2;
946
- --secondary-active: #2fa599;
947
- --error-static: #da3f3f;
948
- --error-hover: #e75d5d;
949
- --error-active: #bb3232;
950
- --success-static: #3aaa35;
951
- --success-hover: #5cda56;
952
- --success-active: #2a8a25;
953
- --info-static: #c6c6c6;
954
- --info-hover: #e4e4e4;
955
- --info-active: #979797;
956
- --warning-static: #faad14;
957
- --warning-hover: #f9be4a;
958
- --warning-active: #db9711;
959
- --action-static: #142452;
960
- --action-hover: #21387d;
961
- --action-active: #000000;
962
- --color-info-primary: #3a6cd1;
963
- --primary-font-color: #142452;
964
- --placeholder-font-color: #babdcc;
965
- --warning-font-color: #ce2828;
966
- --alert-error: #da3f3f;
967
- --alert-light-error: #f4c5c5;
968
- --alert-success: #3aaa35;
969
- --alert-light-success: #c4e5c2;
970
- --alert-info: #8eaaf1;
971
- --alert-light-info: #c4d3f1;
972
- --alert-warning: #faad14;
973
- --alert-light-warning: #fde6b8;
974
- --border-focus: #3a6cd1;
975
- --tooltip-background-color: #202f5b;
976
- --text-color-primary: #142452;
977
- --text-color-secondary: #ffff;
978
- --text-color-neutral: #828699;
979
- --text-color-tertiary: #808080;
980
- --text-color-note: #242424;
981
- --text-color-quaternary: #142452;
982
- --text-color-disabled: #ffff;
983
- --background-color-white-primary: #fff;
984
- --background-color-light-primary: #8eaaf1;
985
- --background-color-white-secondary: #fff;
986
- --background-color-primary-dark: #142452;
987
- --background-color-gray-5: #f1f2f6;
988
- --background-color-gray-30: #ebecf2;
989
- --background-color-tertiary-light: #2c4fa4;
990
- --background-color-gray-10: #f1f2f6;
991
- --background-color-gray-40: #ebecf2;
992
- --background-color-light-blue: #dfe7f8;
993
- --border-color-primary: #babdcc;
994
- --border-color-secondary: #d8dae5;
995
- --border-color-neutral: #ebecf2;
996
- --border-color-tertiary: #ebecf2;
997
- --border-color-gray: #ebecf2;
998
- --border-color-hover: #142452;
999
- --border-color-active: #3a6cd1;
1000
- --icon-color-main: #142452;
1001
- --icon-color-secondary: #000;
1002
- --icon-color-quaternary: #babdcc;
1003
- --icon-color-disabled: #9a9eb2;
1004
- --link-btn-primary-color: #3a6cd1;
1005
- --button-color-static: #4d75d8;
1006
- --button-color-hover: #7c9bea;
1007
- --button-color-active: #2c4fa4;
1008
- --alert-natural: #c4d3f1;
1009
- }
1010
-
1011
- .drawerItemContainer {
1012
- display: flex;
1013
- flex-direction: column;
1014
- }
1015
- .drawerItemContainer .title {
1016
- color: #000;
1017
- font-weight: 600;
1018
- font-size: 24px;
1019
- line-height: 35px;
1020
- margin-bottom: 3px;
1021
- margin-top: 1.5rem;
1022
- }
1023
- .drawerItemContainer .text {
1024
- color: #000;
1025
- font-weight: 400;
1026
- font-size: 24px;
1027
- line-height: 25px;
1028
- }
1029
- .drawerItemContainer .color-green {
1030
- color: var(--color-success);
1031
- }
1032
- .drawerItemContainer .color-red {
1033
- color: var(--color-error);
1034
- }.containerTitleDrawer {
1035
- height: 64px;
1036
- min-height: 64px;
1037
- display: flex;
1038
- flex-direction: row;
1039
- justify-content: space-between;
1040
- align-items: center;
1041
- background-color: #f1f2f6;
1042
- padding: 0 30px 0 30px;
1043
- width: 100%;
1044
- }
1045
- .containerTitleDrawer span {
1046
- color: #12131a;
1047
- font-weight: 600;
1048
- font-size: 18px;
1049
- line-height: 25px;
1050
- letter-spacing: 0em;
1051
- }
1052
- .containerTitleDrawer svg path {
1053
- stroke: #000 !important;
1054
- }
1055
- .containerTitleDrawer .closeIcon {
1056
- cursor: pointer;
1057
1057
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digi-frontend/dgate-api-documentation",
3
- "version": "1.0.34",
3
+ "version": "1.0.35",
4
4
  "main": "dist/src/index.js",
5
5
  "module": "dist/src/index.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -443,7 +443,6 @@ const MethodsAccordion = ({
443
443
  const currentResIndex = method.responses.findIndex(
444
444
  (res) => res.code === currentResponse.code
445
445
  )
446
-
447
446
  if (currentResIndex !== -1) {
448
447
  setFieldValue(
449
448
  `responses[${currentResIndex}].content.schema.properties`,
@@ -466,7 +465,7 @@ const MethodsAccordion = ({
466
465
  setFieldValue('responses', clonedResponses)
467
466
  }
468
467
  }}
469
- onValidation={() => null}
468
+ onValidation={(valid) => null}
470
469
  />
471
470
  }
472
471
  />
@@ -113,6 +113,18 @@ export const transformPathsToArray = (paths: OpenAPIFile['paths']): TransformedP
113
113
  return transformedPaths
114
114
  }
115
115
 
116
+ const validateBodyForResponse = (content, method) => {
117
+ let _content = JSON.parse((content?.schema as any)?.properties as string)
118
+ if (method == 'get') {
119
+ if (!_content?.body) {
120
+ _content = {
121
+ body: _content,
122
+ }
123
+ }
124
+ }
125
+ return _content
126
+ }
127
+
116
128
  export const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenAPIFile['paths'] => {
117
129
  return paths.reduce((acc, { path, methods }) => {
118
130
  acc[path] = methods.reduce((methodAcc, { type, tags, responses, requestBody, ...rest }) => {
@@ -128,7 +140,7 @@ export const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenA
128
140
  [content.contentType]: {
129
141
  schema: {
130
142
  ...(content.schema as object),
131
- properties: JSON.parse((content?.schema as any)?.properties as string),
143
+ properties: validateBodyForResponse(content, type),
132
144
  },
133
145
  },
134
146
  }