@digi-frontend/dgate-api-documentation 1.0.85 → 1.0.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/components/InfoForm/InfoForm.js +1 -1
- package/dist/src/components/InfoForm/InfoForm.js.map +1 -1
- package/dist/src/layout/layout.js +1 -1
- package/dist/src/layout/layout.js.map +1 -1
- package/dist/styles.css +2 -1
- package/package.json +1 -1
- package/src/components/InfoForm/InfoForm.tsx +9 -1
- package/src/layout/docsComponents/DocsContent/OverviewPage/style.scss +4 -1
- package/src/layout/layout.tsx +2 -2
- package/variables.txt +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as i,useEffect as t}from"react";import{useFormikContext as o}from"../../../node_modules/formik/dist/formik.esm.js";import{d as n}from"../../../_virtual/index.js";import s from"./InfoForm.module.scss.js";import l from"../../constants/regex.js";import r from"../Tooltip/Tooltip.js";import a from"../../assets/icons/
|
|
1
|
+
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as i,useEffect as t}from"react";import{useFormikContext as o}from"../../../node_modules/formik/dist/formik.esm.js";import{d as n}from"../../../_virtual/index.js";import s from"./InfoForm.module.scss.js";import l from"../../constants/regex.js";import r from"../Tooltip/Tooltip.js";import a from"../../assets/icons/CloseIcon.svg.js";import d from"../../assets/icons/DeleteIcon.svg.js";import c from"../../assets/icons/EditIcon.svg.js";import v from"../../assets/icons/DeleteOutlinedIcon.svg.js";import m from"../SVGLoader/SVGLoader.js";import u from"../dialog/index.js";import{tagsTableHeaders as p}from"../../constants/index.js";import g from"../table/tags-table.js";const x=({readOnly:x})=>{var h,j,D,f,b;const[C,y]=i([]),[I,N]=i(),[k,w]=i(""),[O,A]=i(""),[S,T]=i(""),{values:B,setFieldValue:L,errors:_}=o(),[E,z]=i({}),[W,R]=i({}),[V,F]=i(null),[P,$]=i(null),[q,M]=i(!1),[G,H]=i(!1);t((()=>{if(B&&B.components&&B.components.securitySchemes){const e=Object.keys(B.components.securitySchemes);if(e.length){const i=B.components.securitySchemes[e[0]].scheme||B.components.securitySchemes[e[0]].type;w(i&&"public"==i.toLowerCase()?"Keyless":i)}}}),[]),t((()=>{N(J(C))}),[C]),t((()=>{B.tags&&B.tags.length&&y(B.tags)}),[B.tags]);const K=(e,i,t)=>{const o=C.map(((o,n)=>n===t?Object.assign(Object.assign({},o),{[e]:i}):o));y(o)},J=i=>i.map(((i,t)=>{var o,a,v,u,p,g,h,j,D,f,b,C,y,I,N,k,w,_,V,P,q,G,H,J,Q,U,X,Y;return{id:t,tagName:i.name,description:e.jsxs("div",{className:s.paramDescContainer,children:[e.jsx(r,{allowHTML:!0,disabled:(null===(o=B.tags[t].description)||void 0===o?void 0:o.length)<=12,content:e.jsx("div",{style:{padding:"0.625rem"},children:B.tags[t].description}),arrowWithBorder:!0,placement:"bottom-end",type:"function",delay:[0,0],onShow:()=>{var e;return null===(e=W[t])||void 0===e?void 0:e.hide()},children:e.jsxs("p",{style:{alignSelf:"center",fontWeight:600,fontSize:"1rem"},children:[B.tags[t].description?B.tags[t].description.substring(0,12):x&&"-",B.tags[t].description&&B.tags[t].description.length>12?"...":""]})},`${t}-description`),e.jsx(r,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>R((i=>Object.assign(Object.assign({},i),{[t]:e}))),content:e.jsxs("div",{className:s.editDescTooltipContent,children:[e.jsx("p",{className:s.editDescTooltipContent_header,children:"Description"}),e.jsx(n.TextArea,{placeholder:"Describe tag...",value:i.description,disabled:x,onChange:e=>{(""===e||l.ASCII.test(e))&&K("description",e,t)},maxLength:25}),!x&&e.jsx(n.Button,{className:s.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var e,o;L(`tags[${t}].description`,null===(e=i.description)||void 0===e?void 0:e.trim()),null===(o=W[t])||void 0===o||o.hide()},disabled:!(null===(a=i.description)||void 0===a?void 0:a.trim()),children:"Apply"})]}),children:x||B.tags[t].description?e.jsx(n.Button,{className:s.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(m,{src:c,width:"1.5rem",height:"1.5rem"})}):e.jsx(n.Button,{className:s.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(m,{src:c,width:"1.5rem",height:"1.5rem"}),children:x||B.tags[t].description?"View Description":"Add Description"})})]}),externalDocs:e.jsxs("div",{className:s.paramDescContainer,children:[(null===(v=B.tags[t].externalDocs)||void 0===v?void 0:v.description)&&(null===(u=B.tags[t].externalDocs)||void 0===u?void 0:u.url)&&e.jsxs("a",{className:s.externalDocsLink,href:(null===(g=null===(p=B.tags[t])||void 0===p?void 0:p.externalDocs)||void 0===g?void 0:g.url)&&(null===(D=null===(j=null===(h=B.tags[t])||void 0===h?void 0:h.externalDocs)||void 0===j?void 0:j.url)||void 0===D?void 0:D.indexOf("http"))>-1?null===(b=null===(f=B.tags[t])||void 0===f?void 0:f.externalDocs)||void 0===b?void 0:b.url:`https://${null===(y=null===(C=B.tags[t])||void 0===C?void 0:C.externalDocs)||void 0===y?void 0:y.url}`,target:"_blank",style:(null===(I=B.tags[t].externalDocs)||void 0===I?void 0:I.description)?{}:{textDecoration:"none",pointerEvents:"none"},children:[(null===(N=B.tags[t].externalDocs)||void 0===N?void 0:N.description)?null===(w=null===(k=B.tags[t].externalDocs)||void 0===k?void 0:k.description)||void 0===w?void 0:w.substring(0,12):x&&"-",(null===(_=B.tags[t].externalDocs)||void 0===_?void 0:_.description)&&(null===(P=null===(V=B.tags[t].externalDocs)||void 0===V?void 0:V.description)||void 0===P?void 0:P.length)>12?"...":""]}),e.jsx(r,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>z((i=>Object.assign(Object.assign({},i),{[t]:e}))),content:e.jsxs("div",{className:s.editDescTooltipContent,children:[e.jsx("p",{className:s.editDescTooltipContent_header,children:"External Docs Description"}),e.jsx(n.TextArea,{placeholder:"Describe External Doc...",value:null===(q=i.externalDocs)||void 0===q?void 0:q.description,disabled:x,maxLength:25,onChange:e=>{(""===e||l.ASCII.test(e))&&(K("externalDocs",Object.assign(Object.assign({},i.externalDocs),{description:e}),t),A(e))}}),e.jsx("p",{className:s.editDescTooltipContent_header,children:"External Docs Link"}),e.jsx(n.TextArea,{placeholder:"External Docs Link...",value:null===(G=i.externalDocs)||void 0===G?void 0:G.url,disabled:x,maxLength:200,restrictedCharsRegex:l.urlRegex,onChange:e=>{(""===e||l.ASCII.test(e))&&(K("externalDocs",Object.assign(Object.assign({},i.externalDocs),{url:e}),t),T(e))}}),!x&&e.jsx(n.Button,{className:s.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var e;L(`tags[${t}].externalDocs`,{description:null==O?void 0:O.trim(),url:null==S?void 0:S.trim()}),A(""),T(""),null===(e=E[t])||void 0===e||e.hide()},disabled:!((null===(H=B.tags[t].externalDocs)||void 0===H?void 0:H.url)&&!(null==S?void 0:S.trim())||(null==S?void 0:S.trim())&&l.urlRegex.test(S)),children:"Apply"})]}),children:x||(null===(J=B.tags[t].externalDocs)||void 0===J?void 0:J.description)?e.jsx("div",{className:s.editExternalDocs,children:e.jsx(m,{src:c,width:"1.5rem",height:"1.5rem",onClick:e=>{var t,o;null==e||e.stopPropagation(),A(null===(t=i.externalDocs)||void 0===t?void 0:t.description),T(null===(o=i.externalDocs)||void 0===o?void 0:o.url)}})}):e.jsxs(n.Button,{className:s.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(m,{src:c,width:"1.5rem",height:"1.5rem"}),onClick:()=>{var e,t;A(null===(e=i.externalDocs)||void 0===e?void 0:e.description),T(null===(t=i.externalDocs)||void 0===t?void 0:t.url)},children:[x||(null===(Q=B.tags[t])||void 0===Q?void 0:Q.externalDocs)&&((null===(X=null===(U=B.tags[t])||void 0===U?void 0:U.externalDocs)||void 0===X?void 0:X.url)||(null===(Y=B.tags[t].externalDocs)||void 0===Y?void 0:Y.description))?"View ":"Add "," ","External Docs Link"]})}),!x&&e.jsx("div",{className:s.paramDescContainer_separator}),!x&&e.jsx(n.Button,{className:s.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(m,{src:d,width:"1.125rem",height:"1.125rem"}),onClick:()=>{return e=t,o=i.name,F(e),$(o),void M(!0);var e,o}})]})}}));return e.jsxs("form",{className:s.apiInfoForm,onSubmit:e=>e.preventDefault(),children:[e.jsxs("div",{className:s.apiDocRow,children:[e.jsx(n.Input,{size:"large",placeholder:"e.g. Payments",label:"API Name",required:!0,value:null===(h=null==B?void 0:B.info)||void 0===h?void 0:h.title,maxLength:35,onChange:e=>{L("info.title",e)},onClear:()=>{L("info.title","")},errorMsg:null===(j=null==_?void 0:_.info)||void 0===j?void 0:j.title,restrictedCharactersRegex:l.basic}),e.jsx(n.Input,{size:"large",label:"Version",required:!0,value:null===(D=null==B?void 0:B.info)||void 0===D?void 0:D.version,disabled:!0})]}),e.jsx(n.TextArea,{size:"large",placeholder:"Enter a description of the API's functionality...",label:"Description",value:null===(f=null==B?void 0:B.info)||void 0===f?void 0:f.description,maxLength:120,required:!0,onChange:e=>{(""===e||l.ASCII.test(e))&&L("info.description",e)},onClear:()=>{L("info.description","")},errorMsg:null===(b=null==_?void 0:_.info)||void 0===b?void 0:b.description}),e.jsx("div",{className:s.paramsTable,children:e.jsx(g,{id:"paramter-table",data:I,headCells:p,isFormOpen:G,setIsFormOpen:H,saveNewRow:e=>{y([...C,e]);const i=B.tags||[];L("tags",[...i,e])},readOnly:x})}),e.jsx(u,{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:[" ","Tag ",e.jsx("strong",{children:P})]}),"?"]}),onSubmit:{onClick:()=>{var e;null!==V&&(y((e=>e.filter(((e,i)=>i!==V)))),L("tags",null===(e=B.tags)||void 0===e?void 0:e.filter(((e,i)=>i!==V)))),M(!1),F(null)},text:"Delete",color:"error",fullWidth:!0},onCancel:{text:"Cancel",color:"action",fullWidth:!0,variant:"outlined"},onClose:()=>M(!1),open:q,icon:e.jsx(m,{src:v,width:"4.0625rem",height:"4.0625rem"}),closeIcon:e.jsx(m,{src:a,width:"1.5rem",height:"1.5rem",onClick:()=>M(!1)})})]})};export{x as default};
|
|
2
2
|
//# sourceMappingURL=InfoForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfoForm.js","sources":["../../../../src/components/InfoForm/InfoForm.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\n// @ts-ignore\nimport { useFormikContext } from 'formik'\nimport { Button, Input, TextArea } from 'digitinary-ui'\nimport styles from './InfoForm.module.scss'\nimport regex from '../../constants/regex'\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\nimport Tooltip from '../../components/Tooltip/Tooltip'\nimport { DeleteIcon, DeleteOutlinedIcon, EditIcon } from '../../assets/icons'\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\nimport CommonDialog from '../../components/dialog'\nimport { tagsTableHeaders } from '../../constants/index'\nimport TagsTable from '../../components/table/tags-table'\n\nconst InfoForm = ({ readOnly }: { readOnly?: boolean }) => {\n const [tableData, setTableData] = useState([])\n const [tableRecords, setTableRecords] = useState()\n const [authType, setAuthType] = useState('')\n const [description, setDescription] = useState('')\n const [url, setURL] = useState('')\n const { values, setFieldValue, errors } = useFormikContext<TransformedOpenApi>()\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\n const [selectedTagIndex, setSelectedTagIndex] = useState<number | null>(null)\n const [selectedTagName, setSelectedTagName] = useState<string | null>(null)\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\n const [isFormOpen, setIsFormOpen] = useState(false)\n\n useEffect(() => {\n if (values && values.components && values.components.securitySchemes) {\n const authenticatorKeys = Object.keys(values.components.securitySchemes)\n if (authenticatorKeys.length) {\n const _authType =\n values.components.securitySchemes[authenticatorKeys[0]].scheme ||\n values.components.securitySchemes[authenticatorKeys[0]].type\n\n setAuthType(_authType && _authType.toLowerCase() == 'public' ? 'Keyless' : _authType)\n }\n }\n }, [])\n\n useEffect(() => {\n setTableRecords(generateTableRecords(tableData))\n }, [tableData])\n\n useEffect(() => {\n if (values.tags && values.tags.length) {\n setTableData(values.tags)\n }\n }, [values.tags])\n\n const confirmDeleteTag = () => {\n if (selectedTagIndex !== null) {\n setTableData((prev) => prev.filter((_, i) => i !== selectedTagIndex))\n setFieldValue(\n `tags`,\n values.tags?.filter((_, i) => i !== selectedTagIndex)\n )\n }\n setOpenDeleteDialog(false)\n setSelectedTagIndex(null)\n }\n\n const capitalize = (str) => {\n if (!str) return ''\n return str.charAt(0).toUpperCase() + str.slice(1)\n }\n\n const onTableChange = (key, value, index) => {\n const newTableData = tableData.map((item, tIndex) => {\n if (tIndex === index) {\n return { ...item, [key]: value }\n } else {\n return item\n }\n })\n\n setTableData(newTableData)\n }\n\n const saveNewRow = (tag) => {\n setTableData([...tableData, tag])\n const oldTags = values.tags || []\n setFieldValue(`tags`, [...oldTags, tag])\n }\n\n const handleDeleteClick = (id: number, name: string) => {\n setSelectedTagIndex(id)\n setSelectedTagName(name)\n\n setOpenDeleteDialog(true)\n }\n\n const generateTableRecords = (items) => {\n return items.map((item, index) => ({\n id: index,\n tagName: item.name,\n description: (\n <div className={styles.paramDescContainer}>\n <Tooltip\n key={`${index}-description`}\n allowHTML\n disabled={values.tags[index].description?.length <= 12}\n content={<div style={{ padding: '0.625rem' }}>{values.tags[index].description}</div>}\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n delay={[0, 0]}\n onShow={() => tooltipRefs[index]?.hide()}\n >\n <p style={{ alignSelf: 'center', fontWeight: 600, fontSize: '1rem' }}>\n {values.tags[index].description\n ? values.tags[index].description.substring(0, 12)\n : readOnly && '-'}\n {values.tags[index].description && values.tags[index].description.length > 12\n ? '...'\n : ''}\n </p>\n </Tooltip>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n placeholder=\"Describe tag...\"\n value={item.description}\n disabled={readOnly}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value))\n onTableChange('description', value, index)\n }}\n maxLength={25}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(`tags[${index}].description`, item.description?.trim())\n tooltipRefs[index]?.hide()\n }}\n disabled={!item.description?.trim()}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly || values.tags[index].description ? (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n ></Button>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly || values.tags[index].description\n ? 'View Description'\n : 'Add Description'}\n </Button>\n )}\n </Tooltip>\n </div>\n ),\n externalDocs: (\n <div className={styles.paramDescContainer}>\n {values.tags[index].externalDocs?.description && values.tags[index].externalDocs?.url && (\n <a\n className={styles.externalDocsLink}\n href={\n values.tags[index]?.externalDocs?.url &&\n values.tags[index]?.externalDocs?.url?.indexOf('http') > -1\n ? values.tags[index]?.externalDocs?.url\n : `https://${values.tags[index]?.externalDocs?.url}`\n }\n target=\"_blank\"\n style={\n !values.tags[index].externalDocs?.description\n ? { textDecoration: 'none', pointerEvents: 'none' }\n : {}\n }\n >\n {values.tags[index].externalDocs?.description\n ? values.tags[index].externalDocs?.description?.substring(0, 12)\n : readOnly && '-'}\n {values.tags[index].externalDocs?.description &&\n values.tags[index].externalDocs?.description?.length > 12\n ? '...'\n : ''}\n </a>\n )}\n\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setExternalTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>External Docs Description</p>\n <TextArea\n placeholder=\"Describe External Doc...\"\n value={item.externalDocs?.description}\n disabled={readOnly}\n maxLength={25}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) {\n onTableChange(\n 'externalDocs',\n { ...item.externalDocs, description: value },\n index\n )\n setDescription(value)\n }\n }}\n />\n <p className={styles.editDescTooltipContent_header}>External Docs Link</p>\n <TextArea\n placeholder=\"External Docs Link...\"\n value={item.externalDocs?.url}\n disabled={readOnly}\n maxLength={200}\n restrictedCharsRegex={regex.urlRegex}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) {\n onTableChange('externalDocs', { ...item.externalDocs, url: value }, index)\n setURL(value)\n }\n }}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(`tags[${index}].externalDocs`, {\n description: description?.trim(),\n url: url?.trim(),\n })\n setDescription('')\n setURL('')\n externalTooltipRefs[index]?.hide()\n }}\n disabled={\n !(\n (values.tags[index].externalDocs?.url && !url?.trim()) ||\n (url?.trim() && regex.urlRegex.test(url))\n )\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly || values.tags[index].externalDocs?.description ? (\n <div className={styles.editExternalDocs}>\n <SVGLoader\n src={EditIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n onClick={(e) => {\n e?.stopPropagation()\n setDescription(item.externalDocs?.description)\n setURL(item.externalDocs?.url)\n }}\n />\n </div>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n onClick={() => {\n setDescription(item.externalDocs?.description)\n setURL(item.externalDocs?.url)\n }}\n >\n {readOnly ||\n (values.tags[index]?.externalDocs &&\n (values.tags[index]?.externalDocs?.url ||\n values.tags[index].externalDocs?.description))\n ? 'View '\n : 'Add '}{' '}\n External Docs Link\n </Button>\n )}\n </Tooltip>\n\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\n\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\n onClick={() => handleDeleteClick(index, item.name)}\n ></Button>\n )}\n </div>\n ),\n }))\n }\n\n return (\n <form className={styles.apiInfoForm} onSubmit={(e) => e.preventDefault()}>\n <div className={styles.apiDocRow}>\n <Input\n size=\"large\"\n placeholder=\"e.g. Payments\"\n label=\"API Name\"\n required\n value={values?.info?.title}\n maxLength={35}\n onChange={(value) => {\n setFieldValue('info.title', value)\n }}\n onClear={() => {\n setFieldValue('info.title', '')\n }}\n errorMsg={errors?.info?.title}\n restrictedCharactersRegex={regex.basic}\n />\n <Input size=\"large\" label=\"Version\" required value={values?.info?.version} disabled />\n </div>\n <TextArea\n size=\"large\"\n placeholder=\"Enter a description of the API's functionality...\"\n label=\"Description\"\n value={values?.info?.description}\n maxLength={120}\n required\n onChange={(value: string) => {\n if (value === '' || regex.ASCII.test(value)) {\n setFieldValue('info.description', value)\n }\n }}\n onClear={() => {\n setFieldValue('info.description', '')\n }}\n errorMsg={errors?.info?.description}\n />\n <div className={styles.paramsTable}>\n <TagsTable\n id=\"paramter-table\"\n data={tableRecords}\n headCells={tagsTableHeaders}\n isFormOpen={isFormOpen}\n setIsFormOpen={setIsFormOpen}\n saveNewRow={saveNewRow}\n readOnly={readOnly}\n />\n </div>\n <CommonDialog\n status=\"error\"\n content={\n <p\n style={{\n textAlign: 'center',\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: '1.4375rem',\n }}\n className=\"delete-msg-container\"\n >\n Are you sure you want to delete\n <span className=\"plan-name\">\n {' '}\n Tag <strong>{selectedTagName}</strong>\n </span>\n ?\n </p>\n }\n onSubmit={{\n onClick: confirmDeleteTag,\n text: 'Delete',\n color: 'error',\n fullWidth: true,\n }}\n onCancel={{\n text: 'Cancel',\n color: 'action',\n fullWidth: true,\n variant: 'outlined',\n }}\n onClose={() => setOpenDeleteDialog(false)}\n open={openDeleteDialog}\n icon={<SVGLoader src={DeleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\n />\n </form>\n )\n}\n\nexport default InfoForm\n"],"names":["InfoForm","readOnly","tableData","setTableData","useState","tableRecords","setTableRecords","authType","setAuthType","description","setDescription","url","setURL","values","setFieldValue","errors","useFormikContext","externalTooltipRefs","setExternalTooltipRefs","tooltipRefs","setTooltipRefs","selectedTagIndex","setSelectedTagIndex","selectedTagName","setSelectedTagName","openDeleteDialog","setOpenDeleteDialog","isFormOpen","setIsFormOpen","useEffect","components","securitySchemes","authenticatorKeys","Object","keys","length","_authType","scheme","type","toLowerCase","generateTableRecords","tags","onTableChange","key","value","index","newTableData","map","item","tIndex","assign","items","id","tagName","name","_jsxs","className","styles","paramDescContainer","children","_jsx","Tooltip","allowHTML","disabled","_a","content","style","padding","arrowWithBorder","placement","delay","onShow","hide","jsxs","alignSelf","fontWeight","fontSize","substring","trigger","onCreate","instance","prev","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","onChange","regex","ASCII","test","maxLength","jsx","Button","editDescTooltipContent_btn","variant","size","onClick","trim","_b","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","externalDocs","_c","_d","externalDocsLink","href","_f","_e","_j","_g","_h","indexOf","_l","_k","_o","_m","target","_p","textDecoration","pointerEvents","_s","_r","_t","_v","_u","_w","_x","restrictedCharsRegex","urlRegex","_y","_z","editExternalDocs","e","stopPropagation","_0","_2","_1","_3","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteClick","apiInfoForm","onSubmit","preventDefault","apiDocRow","Input","label","required","info","title","onClear","errorMsg","restrictedCharactersRegex","basic","version","paramsTable","TagsTable","data","headCells","tagsTableHeaders","saveNewRow","tag","oldTags","CommonDialog","status","textAlign","lineHeight","filter","_","i","text","fullWidth","onCancel","onClose","open","icon","DeleteOutlinedIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InfoForm.js","sources":["../../../../src/components/InfoForm/InfoForm.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\n// @ts-ignore\nimport { useFormikContext } from 'formik'\nimport { Button, Input, TextArea } from 'digitinary-ui'\nimport styles from './InfoForm.module.scss'\nimport regex from '../../constants/regex'\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\nimport Tooltip from '../../components/Tooltip/Tooltip'\nimport { CloseIcon, DeleteIcon, DeleteOutlinedIcon, EditIcon } from '../../assets/icons'\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\nimport CommonDialog from '../../components/dialog'\nimport { tagsTableHeaders } from '../../constants/index'\nimport TagsTable from '../../components/table/tags-table'\n\nconst InfoForm = ({ readOnly }: { readOnly?: boolean }) => {\n const [tableData, setTableData] = useState([])\n const [tableRecords, setTableRecords] = useState()\n const [authType, setAuthType] = useState('')\n const [description, setDescription] = useState('')\n const [url, setURL] = useState('')\n const { values, setFieldValue, errors } = useFormikContext<TransformedOpenApi>()\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\n const [selectedTagIndex, setSelectedTagIndex] = useState<number | null>(null)\n const [selectedTagName, setSelectedTagName] = useState<string | null>(null)\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\n const [isFormOpen, setIsFormOpen] = useState(false)\n\n useEffect(() => {\n if (values && values.components && values.components.securitySchemes) {\n const authenticatorKeys = Object.keys(values.components.securitySchemes)\n if (authenticatorKeys.length) {\n const _authType =\n values.components.securitySchemes[authenticatorKeys[0]].scheme ||\n values.components.securitySchemes[authenticatorKeys[0]].type\n\n setAuthType(_authType && _authType.toLowerCase() == 'public' ? 'Keyless' : _authType)\n }\n }\n }, [])\n\n useEffect(() => {\n setTableRecords(generateTableRecords(tableData))\n }, [tableData])\n\n useEffect(() => {\n if (values.tags && values.tags.length) {\n setTableData(values.tags)\n }\n }, [values.tags])\n\n const confirmDeleteTag = () => {\n if (selectedTagIndex !== null) {\n setTableData((prev) => prev.filter((_, i) => i !== selectedTagIndex))\n setFieldValue(\n `tags`,\n values.tags?.filter((_, i) => i !== selectedTagIndex)\n )\n }\n setOpenDeleteDialog(false)\n setSelectedTagIndex(null)\n }\n\n const capitalize = (str) => {\n if (!str) return ''\n return str.charAt(0).toUpperCase() + str.slice(1)\n }\n\n const onTableChange = (key, value, index) => {\n const newTableData = tableData.map((item, tIndex) => {\n if (tIndex === index) {\n return { ...item, [key]: value }\n } else {\n return item\n }\n })\n\n setTableData(newTableData)\n }\n\n const saveNewRow = (tag) => {\n setTableData([...tableData, tag])\n const oldTags = values.tags || []\n setFieldValue(`tags`, [...oldTags, tag])\n }\n\n const handleDeleteClick = (id: number, name: string) => {\n setSelectedTagIndex(id)\n setSelectedTagName(name)\n\n setOpenDeleteDialog(true)\n }\n\n const generateTableRecords = (items) => {\n return items.map((item, index) => ({\n id: index,\n tagName: item.name,\n description: (\n <div className={styles.paramDescContainer}>\n <Tooltip\n key={`${index}-description`}\n allowHTML\n disabled={values.tags[index].description?.length <= 12}\n content={<div style={{ padding: '0.625rem' }}>{values.tags[index].description}</div>}\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n delay={[0, 0]}\n onShow={() => tooltipRefs[index]?.hide()}\n >\n <p style={{ alignSelf: 'center', fontWeight: 600, fontSize: '1rem' }}>\n {values.tags[index].description\n ? values.tags[index].description.substring(0, 12)\n : readOnly && '-'}\n {values.tags[index].description && values.tags[index].description.length > 12\n ? '...'\n : ''}\n </p>\n </Tooltip>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n placeholder=\"Describe tag...\"\n value={item.description}\n disabled={readOnly}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value))\n onTableChange('description', value, index)\n }}\n maxLength={25}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(`tags[${index}].description`, item.description?.trim())\n tooltipRefs[index]?.hide()\n }}\n disabled={!item.description?.trim()}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly || values.tags[index].description ? (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n ></Button>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly || values.tags[index].description\n ? 'View Description'\n : 'Add Description'}\n </Button>\n )}\n </Tooltip>\n </div>\n ),\n externalDocs: (\n <div className={styles.paramDescContainer}>\n {values.tags[index].externalDocs?.description && values.tags[index].externalDocs?.url && (\n <a\n className={styles.externalDocsLink}\n href={\n values.tags[index]?.externalDocs?.url &&\n values.tags[index]?.externalDocs?.url?.indexOf('http') > -1\n ? values.tags[index]?.externalDocs?.url\n : `https://${values.tags[index]?.externalDocs?.url}`\n }\n target=\"_blank\"\n style={\n !values.tags[index].externalDocs?.description\n ? { textDecoration: 'none', pointerEvents: 'none' }\n : {}\n }\n >\n {values.tags[index].externalDocs?.description\n ? values.tags[index].externalDocs?.description?.substring(0, 12)\n : readOnly && '-'}\n {values.tags[index].externalDocs?.description &&\n values.tags[index].externalDocs?.description?.length > 12\n ? '...'\n : ''}\n </a>\n )}\n\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setExternalTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>External Docs Description</p>\n <TextArea\n placeholder=\"Describe External Doc...\"\n value={item.externalDocs?.description}\n disabled={readOnly}\n maxLength={25}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) {\n onTableChange(\n 'externalDocs',\n { ...item.externalDocs, description: value },\n index\n )\n setDescription(value)\n }\n }}\n />\n <p className={styles.editDescTooltipContent_header}>External Docs Link</p>\n <TextArea\n placeholder=\"External Docs Link...\"\n value={item.externalDocs?.url}\n disabled={readOnly}\n maxLength={200}\n restrictedCharsRegex={regex.urlRegex}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) {\n onTableChange('externalDocs', { ...item.externalDocs, url: value }, index)\n setURL(value)\n }\n }}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(`tags[${index}].externalDocs`, {\n description: description?.trim(),\n url: url?.trim(),\n })\n setDescription('')\n setURL('')\n externalTooltipRefs[index]?.hide()\n }}\n disabled={\n !(\n (values.tags[index].externalDocs?.url && !url?.trim()) ||\n (url?.trim() && regex.urlRegex.test(url))\n )\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly || values.tags[index].externalDocs?.description ? (\n <div className={styles.editExternalDocs}>\n <SVGLoader\n src={EditIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n onClick={(e) => {\n e?.stopPropagation()\n setDescription(item.externalDocs?.description)\n setURL(item.externalDocs?.url)\n }}\n />\n </div>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n onClick={() => {\n setDescription(item.externalDocs?.description)\n setURL(item.externalDocs?.url)\n }}\n >\n {readOnly ||\n (values.tags[index]?.externalDocs &&\n (values.tags[index]?.externalDocs?.url ||\n values.tags[index].externalDocs?.description))\n ? 'View '\n : 'Add '}{' '}\n External Docs Link\n </Button>\n )}\n </Tooltip>\n\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\n\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\n onClick={() => handleDeleteClick(index, item.name)}\n ></Button>\n )}\n </div>\n ),\n }))\n }\n\n return (\n <form className={styles.apiInfoForm} onSubmit={(e) => e.preventDefault()}>\n <div className={styles.apiDocRow}>\n <Input\n size=\"large\"\n placeholder=\"e.g. Payments\"\n label=\"API Name\"\n required\n value={values?.info?.title}\n maxLength={35}\n onChange={(value) => {\n setFieldValue('info.title', value)\n }}\n onClear={() => {\n setFieldValue('info.title', '')\n }}\n errorMsg={errors?.info?.title}\n restrictedCharactersRegex={regex.basic}\n />\n <Input size=\"large\" label=\"Version\" required value={values?.info?.version} disabled />\n </div>\n <TextArea\n size=\"large\"\n placeholder=\"Enter a description of the API's functionality...\"\n label=\"Description\"\n value={values?.info?.description}\n maxLength={120}\n required\n onChange={(value: string) => {\n if (value === '' || regex.ASCII.test(value)) {\n setFieldValue('info.description', value)\n }\n }}\n onClear={() => {\n setFieldValue('info.description', '')\n }}\n errorMsg={errors?.info?.description}\n />\n <div className={styles.paramsTable}>\n <TagsTable\n id=\"paramter-table\"\n data={tableRecords}\n headCells={tagsTableHeaders}\n isFormOpen={isFormOpen}\n setIsFormOpen={setIsFormOpen}\n saveNewRow={saveNewRow}\n readOnly={readOnly}\n />\n </div>\n <CommonDialog\n status=\"error\"\n content={\n <p\n style={{\n textAlign: 'center',\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: '1.4375rem',\n }}\n className=\"delete-msg-container\"\n >\n Are you sure you want to delete\n <span className=\"plan-name\">\n {' '}\n Tag <strong>{selectedTagName}</strong>\n </span>\n ?\n </p>\n }\n onSubmit={{\n onClick: confirmDeleteTag,\n text: 'Delete',\n color: 'error',\n fullWidth: true,\n }}\n onCancel={{\n text: 'Cancel',\n color: 'action',\n fullWidth: true,\n variant: 'outlined',\n }}\n onClose={() => setOpenDeleteDialog(false)}\n open={openDeleteDialog}\n icon={<SVGLoader src={DeleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\n closeIcon={\n <SVGLoader\n src={CloseIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n onClick={() => setOpenDeleteDialog(false)}\n />\n }\n />\n </form>\n )\n}\n\nexport default InfoForm\n"],"names":["InfoForm","readOnly","tableData","setTableData","useState","tableRecords","setTableRecords","authType","setAuthType","description","setDescription","url","setURL","values","setFieldValue","errors","useFormikContext","externalTooltipRefs","setExternalTooltipRefs","tooltipRefs","setTooltipRefs","selectedTagIndex","setSelectedTagIndex","selectedTagName","setSelectedTagName","openDeleteDialog","setOpenDeleteDialog","isFormOpen","setIsFormOpen","useEffect","components","securitySchemes","authenticatorKeys","Object","keys","length","_authType","scheme","type","toLowerCase","generateTableRecords","tags","onTableChange","key","value","index","newTableData","map","item","tIndex","assign","items","id","tagName","name","_jsxs","className","styles","paramDescContainer","children","_jsx","Tooltip","allowHTML","disabled","_a","content","style","padding","arrowWithBorder","placement","delay","onShow","hide","jsxs","alignSelf","fontWeight","fontSize","substring","trigger","onCreate","instance","prev","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","onChange","regex","ASCII","test","maxLength","jsx","Button","editDescTooltipContent_btn","variant","size","onClick","trim","_b","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","externalDocs","_c","_d","externalDocsLink","href","_f","_e","_j","_g","_h","indexOf","_l","_k","_o","_m","target","_p","textDecoration","pointerEvents","_s","_r","_t","_v","_u","_w","_x","restrictedCharsRegex","urlRegex","_y","_z","editExternalDocs","e","stopPropagation","_0","_2","_1","_3","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteClick","apiInfoForm","onSubmit","preventDefault","apiDocRow","Input","label","required","info","title","onClear","errorMsg","restrictedCharactersRegex","basic","version","paramsTable","TagsTable","data","headCells","tagsTableHeaders","saveNewRow","tag","oldTags","CommonDialog","status","textAlign","lineHeight","filter","_","i","text","fullWidth","onCancel","onClose","open","icon","DeleteOutlinedIcon","closeIcon","CloseIcon"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../_virtual/jsx-runtime.js";import{useState as t,useEffect as o}from"react";import{d as i}from"../../_virtual/index.js";import r from"../components/MethodAccordion/MethodAccordion.js";import s from"./layout.module.css.js";import n from"../components/InfoForm/InfoForm.js";import a from"../components/SectionHead/SectionHead.js";import{transformOpenApiObject as l,transformOpenApiObjectToOrigin as d}from"../helpers/layout.helper.js";import m from"../components/LivePreview/LivePreview.js";import{useFormik as c,FormikProvider as u}from"../../node_modules/formik/dist/formik.esm.js";import{schemaValidation as h}from"../validator/form.scheme.js";import{methodColorMapping as p}from"../constants/index.js";import v from"../components/dialog/index.js";const j=({openApiJson:j,handleSave:x,setIsFormDirty:f,openApiErrors:g})=>{const S=structuredClone(j),y=l(S),A=c({initialValues:structuredClone(y),validationSchema:h,validateOnMount:!0,onSubmit:(e,{validateForm:t,resetForm:o,setSubmitting:i})=>{try{const i=d(e);x(i),o({values:e}),t(e)}catch(e){i(!1)}}}),{dirty:b,isValid:F,isSubmitting:C,
|
|
1
|
+
import{j as e}from"../../_virtual/jsx-runtime.js";import{useState as t,useEffect as o}from"react";import{d as i}from"../../_virtual/index.js";import r from"../components/MethodAccordion/MethodAccordion.js";import s from"./layout.module.css.js";import n from"../components/InfoForm/InfoForm.js";import a from"../components/SectionHead/SectionHead.js";import{transformOpenApiObject as l,transformOpenApiObjectToOrigin as d}from"../helpers/layout.helper.js";import m from"../components/LivePreview/LivePreview.js";import{useFormik as c,FormikProvider as u}from"../../node_modules/formik/dist/formik.esm.js";import{schemaValidation as h}from"../validator/form.scheme.js";import{methodColorMapping as p}from"../constants/index.js";import v from"../components/dialog/index.js";const j=({openApiJson:j,handleSave:x,setIsFormDirty:f,openApiErrors:g})=>{const S=structuredClone(j),y=l(S),A=c({initialValues:structuredClone(y),validationSchema:h,validateOnMount:!0,onSubmit:(e,{validateForm:t,resetForm:o,setSubmitting:i})=>{try{const i=d(e);x(i),o({values:e}),t(e)}catch(e){i(!1)}}}),{dirty:b,isValid:F,isSubmitting:$,values:C,setFieldValue:N,handleSubmit:w,errors:H}=A,[I,P]=t(!1),[_,D]=t(null);return o((()=>{f&&f(b)}),[b]),e.jsxs("div",{className:s.docsLayout,children:[b&&e.jsx(i.Alert,{className:s.apiDocAlert,color:"warning",severity:"warning",children:"There are changes you made may not be saved"}),e.jsxs("div",{className:s.layoutContainer,children:[e.jsxs("div",{className:`${s.editorSide} ${s.docSide}`,children:[e.jsx(a,{className:s.editorSectionHead_title,text:e.jsxs("div",{className:s.editorSectionHead_content,children:["API Documentation",e.jsx(i.Button,{className:s.methodForm_submitBtn,size:"medium",fullWidth:!1,type:"submit",variant:"contained",color:"primary",onClick:()=>P(!0),disabled:!F||$||!b,children:"Save"})]})}),e.jsx(u,{value:A,children:e.jsx(n,{})}),e.jsx(a,{className:s.editorSectionHead,text:"Endpoints"}),e.jsx(u,{value:A,children:C.paths.map(((t,o)=>e.jsx(e.Fragment,{children:t.methods.sort(((e,t)=>p[e.type].order-p[t.type].order)).map(((i,s)=>{var n,a,l;return e.jsx(r,{tags:C.tags,method:i,path:t.path,setFieldValue:(e,t)=>{N(`paths[${o}].methods[${s}].${e}`,t)},isOpen:_===parseInt(`${o}${s}`),setIsOpen:e=>D(e?parseInt(`${o}${s}`):null),errors:null===(l=null===(a=null===(n=A.errors.paths)||void 0===n?void 0:n[o])||void 0===a?void 0:a.methods)||void 0===l?void 0:l[s]})}))})))})]}),e.jsx("div",{className:`${s.livePreviewSide} ${s.docSide}`,children:y&&e.jsx(u,{value:A,children:e.jsx(m,{transformedData:y,openApiErrors:g})})})]}),e.jsx(v,{status:"warning",content:e.jsxs(e.Fragment,{children:[e.jsx("h5",{style:{fontWeight:600,fontSize:"1.5rem",lineHeight:"1.875rem",color:"#FAAD14",textAlign:"center",margin:0},children:"Publish Changes"}),e.jsx("p",{style:{textAlign:"center",fontWeight:400,fontSize:"1rem",lineHeight:"1.4375rem"},children:"Are you sure to Publish the changes?"})]}),onSubmit:{onClick:()=>{w(),P(!1)},text:"Publish",color:"warning",fullWidth:!0},onCancel:{text:"Cancel",color:"action",fullWidth:!0,variant:"outlined"},onClose:()=>P(!1),open:I})]})};export{j as default};
|
|
2
2
|
//# sourceMappingURL=layout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sources":["../../../src/layout/layout.tsx"],"sourcesContent":["import { JSX, useEffect, useState } from 'react'\nimport { Alert, Button } from 'digitinary-ui'\nimport MethodsAccordion from '../components/MethodAccordion/MethodAccordion'\nimport styles from './layout.module.css'\nimport InfoForm from '../components/InfoForm/InfoForm'\nimport SectionHead from '../components/SectionHead/SectionHead'\nimport { transformOpenApiObject, transformOpenApiObjectToOrigin } from '../helpers/layout.helper'\nimport { OpenAPIFile } from '../types/openApi'\nimport LivePreview from '../components/LivePreview/LivePreview'\nimport { FormikProvider, useFormik } from 'formik'\nimport { schemaValidation } from '../validator/form.scheme'\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\nimport { methodColorMapping } from '../constants/index'\nimport CommonDialog from '../components/dialog'\n\ninterface ILayoutProps {\n openApiJson?: OpenAPIFile\n handleSave?: (values: unknown) => unknown\n setIsFormDirty?: any\n openApiErrors?: any\n}\n\nconst Layout = ({\n openApiJson,\n handleSave,\n setIsFormDirty,\n openApiErrors,\n}: ILayoutProps): JSX.Element => {\n const clonedOpenApiJson = structuredClone(openApiJson)\n const transformedOpenApi = transformOpenApiObject(clonedOpenApiJson)\n const formik = useFormik<TransformedOpenApi>({\n initialValues: structuredClone(transformedOpenApi),\n validationSchema: schemaValidation,\n validateOnMount: true,\n onSubmit: (values, { validateForm, resetForm, setSubmitting }) => {\n // Handle save logic\n try {\n const originalOpenApiForm = transformOpenApiObjectToOrigin(values)\n handleSave(originalOpenApiForm)\n resetForm({\n values: values, // You can reset it to the same values if you want\n })\n\n validateForm(values)\n } catch (err) {\n setSubmitting(false)\n }\n },\n })\n const { dirty, isValid, isSubmitting, values, setFieldValue, handleSubmit, errors } = formik\n const [isPublishDialogOpen, setIsPublishDialogOpen] = useState(false)\n\n const [openMethodIndex, setOpenMethodIndex] = useState<number | null>(null)\n\n useEffect(() => {\n if (setIsFormDirty) {\n setIsFormDirty(dirty)\n }\n }, [dirty])\n\n return (\n <div className={styles.docsLayout}>\n {dirty && (\n <Alert className={styles.apiDocAlert} color=\"warning\" severity=\"warning\">\n There are changes you made may not be saved\n </Alert>\n )}\n <div className={styles.layoutContainer}>\n <div className={`${styles.editorSide} ${styles.docSide}`}>\n <SectionHead\n className={styles.editorSectionHead_title}\n text={\n <div className={styles.editorSectionHead_content}>\n API Documentation\n <Button\n className={styles.methodForm_submitBtn}\n size=\"medium\"\n fullWidth={false}\n type=\"submit\"\n variant=\"contained\"\n color=\"primary\"\n onClick={() => setIsPublishDialogOpen(true)}\n disabled={!isValid || isSubmitting || !dirty}\n >\n Save\n </Button>\n </div>\n }\n />\n <FormikProvider value={formik}>\n <InfoForm />\n </FormikProvider>\n <SectionHead className={styles.editorSectionHead} text=\"Endpoints\" />\n <FormikProvider value={formik}>\n {values.paths.map((path, pathIndex) => (\n <>\n {path.methods\n .sort(\n (a, b) => methodColorMapping[a.type].order - methodColorMapping[b.type].order\n )\n .map((method, methodIndex) => (\n <MethodsAccordion\n tags={values.tags}\n method={method}\n path={path.path}\n setFieldValue={(key, value) => {\n const h = `paths[${pathIndex}].methods[${methodIndex}].${key}`\n setFieldValue(h, value)\n }}\n isOpen={openMethodIndex === methodIndex}\n setIsOpen={(open) => setOpenMethodIndex(open ? methodIndex : null)}\n errors={(formik.errors.paths?.[pathIndex] as any)?.methods?.[methodIndex]}\n />\n ))}\n </>\n ))}\n </FormikProvider>\n </div>\n <div className={`${styles.livePreviewSide} ${styles.docSide}`}>\n {transformedOpenApi && (\n <FormikProvider value={formik}>\n <LivePreview transformedData={transformedOpenApi} openApiErrors={openApiErrors} />\n </FormikProvider>\n )}\n </div>\n </div>\n <CommonDialog\n status=\"warning\"\n content={\n <>\n <h5\n style={{\n fontWeight: 600,\n fontSize: '1.5rem',\n lineHeight: '1.875rem',\n color: '#FAAD14',\n textAlign: 'center',\n margin: 0,\n }}\n >\n Publish Changes\n </h5>\n <p\n style={{\n textAlign: 'center',\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: '1.4375rem',\n }}\n >\n Are you sure to Publish the changes?\n </p>\n </>\n }\n onSubmit={{\n onClick: () => {\n handleSubmit()\n setIsPublishDialogOpen(false)\n },\n text: 'Publish',\n color: 'warning',\n fullWidth: true,\n }}\n onCancel={{\n text: 'Cancel',\n color: 'action',\n fullWidth: true,\n variant: 'outlined',\n }}\n onClose={() => setIsPublishDialogOpen(false)}\n open={isPublishDialogOpen}\n />\n </div>\n )\n}\n\nexport default Layout\n"],"names":["Layout","openApiJson","handleSave","setIsFormDirty","openApiErrors","clonedOpenApiJson","structuredClone","transformedOpenApi","transformOpenApiObject","formik","useFormik","initialValues","validationSchema","schemaValidation","validateOnMount","onSubmit","values","validateForm","resetForm","setSubmitting","originalOpenApiForm","transformOpenApiObjectToOrigin","err","dirty","isValid","isSubmitting","setFieldValue","handleSubmit","errors","isPublishDialogOpen","setIsPublishDialogOpen","useState","openMethodIndex","setOpenMethodIndex","useEffect","_jsxs","jsxs","className","styles","docsLayout","children","_jsx","Alert","apiDocAlert","color","severity","layoutContainer","editorSide","docSide","SectionHead","editorSectionHead_title","text","editorSectionHead_content","Button","methodForm_submitBtn","size","fullWidth","type","variant","onClick","disabled","FormikProvider","value","InfoForm","jsx","editorSectionHead","paths","map","path","pathIndex","_Fragment","methods","sort","a","b","methodColorMapping","order","method","methodIndex","MethodsAccordion","tags","key","isOpen","setIsOpen","open","_b","_a","livePreviewSide","LivePreview","transformedData","CommonDialog","status","content","style","fontWeight","fontSize","lineHeight","textAlign","margin","onCancel","onClose"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"layout.js","sources":["../../../src/layout/layout.tsx"],"sourcesContent":["import { JSX, useEffect, useState } from 'react'\nimport { Alert, Button } from 'digitinary-ui'\nimport MethodsAccordion from '../components/MethodAccordion/MethodAccordion'\nimport styles from './layout.module.css'\nimport InfoForm from '../components/InfoForm/InfoForm'\nimport SectionHead from '../components/SectionHead/SectionHead'\nimport { transformOpenApiObject, transformOpenApiObjectToOrigin } from '../helpers/layout.helper'\nimport { OpenAPIFile } from '../types/openApi'\nimport LivePreview from '../components/LivePreview/LivePreview'\nimport { FormikProvider, useFormik } from 'formik'\nimport { schemaValidation } from '../validator/form.scheme'\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\nimport { methodColorMapping } from '../constants/index'\nimport CommonDialog from '../components/dialog'\n\ninterface ILayoutProps {\n openApiJson?: OpenAPIFile\n handleSave?: (values: unknown) => unknown\n setIsFormDirty?: any\n openApiErrors?: any\n}\n\nconst Layout = ({\n openApiJson,\n handleSave,\n setIsFormDirty,\n openApiErrors,\n}: ILayoutProps): JSX.Element => {\n const clonedOpenApiJson = structuredClone(openApiJson)\n const transformedOpenApi = transformOpenApiObject(clonedOpenApiJson)\n const formik = useFormik<TransformedOpenApi>({\n initialValues: structuredClone(transformedOpenApi),\n validationSchema: schemaValidation,\n validateOnMount: true,\n onSubmit: (values, { validateForm, resetForm, setSubmitting }) => {\n // Handle save logic\n try {\n const originalOpenApiForm = transformOpenApiObjectToOrigin(values)\n handleSave(originalOpenApiForm)\n resetForm({\n values: values, // You can reset it to the same values if you want\n })\n\n validateForm(values)\n } catch (err) {\n setSubmitting(false)\n }\n },\n })\n const { dirty, isValid, isSubmitting, values, setFieldValue, handleSubmit, errors } = formik\n const [isPublishDialogOpen, setIsPublishDialogOpen] = useState(false)\n\n const [openMethodIndex, setOpenMethodIndex] = useState<number | null>(null)\n\n useEffect(() => {\n if (setIsFormDirty) {\n setIsFormDirty(dirty)\n }\n }, [dirty])\n\n return (\n <div className={styles.docsLayout}>\n {dirty && (\n <Alert className={styles.apiDocAlert} color=\"warning\" severity=\"warning\">\n There are changes you made may not be saved\n </Alert>\n )}\n <div className={styles.layoutContainer}>\n <div className={`${styles.editorSide} ${styles.docSide}`}>\n <SectionHead\n className={styles.editorSectionHead_title}\n text={\n <div className={styles.editorSectionHead_content}>\n API Documentation\n <Button\n className={styles.methodForm_submitBtn}\n size=\"medium\"\n fullWidth={false}\n type=\"submit\"\n variant=\"contained\"\n color=\"primary\"\n onClick={() => setIsPublishDialogOpen(true)}\n disabled={!isValid || isSubmitting || !dirty}\n >\n Save\n </Button>\n </div>\n }\n />\n <FormikProvider value={formik}>\n <InfoForm />\n </FormikProvider>\n <SectionHead className={styles.editorSectionHead} text=\"Endpoints\" />\n <FormikProvider value={formik}>\n {values.paths.map((path, pathIndex) => (\n <>\n {path.methods\n .sort(\n (a, b) => methodColorMapping[a.type].order - methodColorMapping[b.type].order\n )\n .map((method, methodIndex) => (\n <MethodsAccordion\n tags={values.tags}\n method={method}\n path={path.path}\n setFieldValue={(key, value) => {\n const h = `paths[${pathIndex}].methods[${methodIndex}].${key}`\n setFieldValue(h, value)\n }}\n isOpen={openMethodIndex === parseInt(`${pathIndex}${methodIndex}`)}\n setIsOpen={(open) => setOpenMethodIndex(open ? parseInt(`${pathIndex}${methodIndex}`) : null)}\n errors={(formik.errors.paths?.[pathIndex] as any)?.methods?.[methodIndex]}\n />\n ))}\n </>\n ))}\n </FormikProvider>\n </div>\n <div className={`${styles.livePreviewSide} ${styles.docSide}`}>\n {transformedOpenApi && (\n <FormikProvider value={formik}>\n <LivePreview transformedData={transformedOpenApi} openApiErrors={openApiErrors} />\n </FormikProvider>\n )}\n </div>\n </div>\n <CommonDialog\n status=\"warning\"\n content={\n <>\n <h5\n style={{\n fontWeight: 600,\n fontSize: '1.5rem',\n lineHeight: '1.875rem',\n color: '#FAAD14',\n textAlign: 'center',\n margin: 0,\n }}\n >\n Publish Changes\n </h5>\n <p\n style={{\n textAlign: 'center',\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: '1.4375rem',\n }}\n >\n Are you sure to Publish the changes?\n </p>\n </>\n }\n onSubmit={{\n onClick: () => {\n handleSubmit()\n setIsPublishDialogOpen(false)\n },\n text: 'Publish',\n color: 'warning',\n fullWidth: true,\n }}\n onCancel={{\n text: 'Cancel',\n color: 'action',\n fullWidth: true,\n variant: 'outlined',\n }}\n onClose={() => setIsPublishDialogOpen(false)}\n open={isPublishDialogOpen}\n />\n </div>\n )\n}\n\nexport default Layout\n"],"names":["Layout","openApiJson","handleSave","setIsFormDirty","openApiErrors","clonedOpenApiJson","structuredClone","transformedOpenApi","transformOpenApiObject","formik","useFormik","initialValues","validationSchema","schemaValidation","validateOnMount","onSubmit","values","validateForm","resetForm","setSubmitting","originalOpenApiForm","transformOpenApiObjectToOrigin","err","dirty","isValid","isSubmitting","setFieldValue","handleSubmit","errors","isPublishDialogOpen","setIsPublishDialogOpen","useState","openMethodIndex","setOpenMethodIndex","useEffect","_jsxs","jsxs","className","styles","docsLayout","children","_jsx","Alert","apiDocAlert","color","severity","layoutContainer","editorSide","docSide","SectionHead","editorSectionHead_title","text","editorSectionHead_content","Button","methodForm_submitBtn","size","fullWidth","type","variant","onClick","disabled","FormikProvider","value","InfoForm","jsx","editorSectionHead","paths","map","path","pathIndex","_Fragment","methods","sort","a","b","methodColorMapping","order","method","methodIndex","MethodsAccordion","tags","key","isOpen","parseInt","setIsOpen","open","_c","_b","_a","livePreviewSide","LivePreview","transformedData","CommonDialog","status","content","style","fontWeight","fontSize","lineHeight","textAlign","margin","onCancel","onClose"],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -2164,7 +2164,6 @@ div.endBtnIcon {
|
|
|
2164
2164
|
gap: 1rem;
|
|
2165
2165
|
}
|
|
2166
2166
|
.api-details-page .versions-section .version-list .version-btn {
|
|
2167
|
-
width: 3.9375rem;
|
|
2168
2167
|
height: 3rem;
|
|
2169
2168
|
padding: 0.4rem 0.8rem;
|
|
2170
2169
|
border: 1px solid #4d75d9;
|
|
@@ -2174,6 +2173,8 @@ div.endBtnIcon {
|
|
|
2174
2173
|
font-size: 0.875rem;
|
|
2175
2174
|
color: #4d75d9;
|
|
2176
2175
|
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2509803922);
|
|
2176
|
+
white-space: nowrap;
|
|
2177
|
+
min-width: 3.9375rem;
|
|
2177
2178
|
}main {
|
|
2178
2179
|
padding: 2rem;
|
|
2179
2180
|
}
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@ import styles from './InfoForm.module.scss'
|
|
|
6
6
|
import regex from '../../constants/regex'
|
|
7
7
|
import { TransformedOpenApi } from '../../types/transformedOpenApi'
|
|
8
8
|
import Tooltip from '../../components/Tooltip/Tooltip'
|
|
9
|
-
import { DeleteIcon, DeleteOutlinedIcon, EditIcon } from '../../assets/icons'
|
|
9
|
+
import { CloseIcon, DeleteIcon, DeleteOutlinedIcon, EditIcon } from '../../assets/icons'
|
|
10
10
|
import SVGLoader from '../../components/SVGLoader/SVGLoader'
|
|
11
11
|
import CommonDialog from '../../components/dialog'
|
|
12
12
|
import { tagsTableHeaders } from '../../constants/index'
|
|
@@ -416,6 +416,14 @@ const InfoForm = ({ readOnly }: { readOnly?: boolean }) => {
|
|
|
416
416
|
onClose={() => setOpenDeleteDialog(false)}
|
|
417
417
|
open={openDeleteDialog}
|
|
418
418
|
icon={<SVGLoader src={DeleteOutlinedIcon} width="4.0625rem" height="4.0625rem" />}
|
|
419
|
+
closeIcon={
|
|
420
|
+
<SVGLoader
|
|
421
|
+
src={CloseIcon}
|
|
422
|
+
width="1.5rem"
|
|
423
|
+
height="1.5rem"
|
|
424
|
+
onClick={() => setOpenDeleteDialog(false)}
|
|
425
|
+
/>
|
|
426
|
+
}
|
|
419
427
|
/>
|
|
420
428
|
</form>
|
|
421
429
|
)
|
|
@@ -268,16 +268,19 @@
|
|
|
268
268
|
gap: 1rem;
|
|
269
269
|
|
|
270
270
|
.version-btn {
|
|
271
|
-
width: 3.9375rem;
|
|
272
271
|
height: 3rem;
|
|
273
272
|
padding: 0.4rem 0.8rem;
|
|
274
273
|
border: 1px solid #4d75d9;
|
|
275
274
|
border-radius: 0.375rem;
|
|
276
275
|
background-color: #fff;
|
|
276
|
+
|
|
277
277
|
cursor: pointer;
|
|
278
278
|
font-size: 0.875rem;
|
|
279
279
|
color: #4d75d9;
|
|
280
280
|
box-shadow: inset 0 1px 3px #00000040;
|
|
281
|
+
|
|
282
|
+
white-space: nowrap;
|
|
283
|
+
min-width: 3.9375rem;
|
|
281
284
|
}
|
|
282
285
|
}
|
|
283
286
|
}
|
package/src/layout/layout.tsx
CHANGED
|
@@ -107,8 +107,8 @@ const Layout = ({
|
|
|
107
107
|
const h = `paths[${pathIndex}].methods[${methodIndex}].${key}`
|
|
108
108
|
setFieldValue(h, value)
|
|
109
109
|
}}
|
|
110
|
-
isOpen={openMethodIndex === methodIndex}
|
|
111
|
-
setIsOpen={(open) => setOpenMethodIndex(open ? methodIndex : null)}
|
|
110
|
+
isOpen={openMethodIndex === parseInt(`${pathIndex}${methodIndex}`)}
|
|
111
|
+
setIsOpen={(open) => setOpenMethodIndex(open ? parseInt(`${pathIndex}${methodIndex}`) : null)}
|
|
112
112
|
errors={(formik.errors.paths?.[pathIndex] as any)?.methods?.[methodIndex]}
|
|
113
113
|
/>
|
|
114
114
|
))}
|
package/variables.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export APP_VERSION=1.0.
|
|
1
|
+
export APP_VERSION=1.0.86
|