@digi-frontend/dgate-api-documentation 1.0.10 → 1.0.12
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/components/LivePreview/LivePreview.js +1 -1
- package/dist/src/components/LivePreview/LivePreview.js.map +1 -1
- package/dist/src/components/table/tags-table.js +1 -1
- package/dist/src/components/table/tags-table.js.map +1 -1
- package/dist/styles.css +211 -326
- package/package.json +1 -1
- package/src/components/InfoForm/InfoForm.tsx +12 -7
- package/src/components/LivePreview/LivePreview.tsx +132 -17
- package/src/components/table/tags-table.tsx +1 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as i,useEffect as n}from"react";import{useFormikContext as
|
|
1
|
+
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as i,useEffect as n}from"react";import{useFormikContext as t}from"../../../node_modules/formik/dist/formik.esm.js";import{d as o}from"../../../_virtual/index.js";import s from"./InfoForm.module.scss.js";import r from"../../constants/regex.js";import l from"../Tooltip/Tooltip.js";import a from"../../assets/icons/DeleteIcon.svg.js";import c from"../../assets/icons/EditIcon.svg.js";import d from"../../assets/icons/deleteOutlinedIcon.svg.js";import m from"../SVGLoader/SVGLoader.js";import p from"../dialog/index.js";import{tagsTableHeaders as u}from"../../constants/index.js";import v from"../table/tags-table.js";const x=({readOnly:x})=>{var h,g,j,D,f;const[b,C]=i([]),[N,k]=i(),[y,O]=i(""),[T,A]=i(""),[I,B]=i(""),{values:w,setFieldValue:_,errors:E}=t(),[S,z]=i({}),[L,V]=i({}),[F,P]=i(null),[W,R]=i(null),[q,M]=i(!1),[$,G]=i(!1);n((()=>{if(w&&w.components&&w.components.securitySchemes){const e=Object.keys(w.components.securitySchemes);e.length&&O(w.components.securitySchemes[e[0]].scheme)}}),[]),n((()=>{k(U(b))}),[b]),n((()=>{w.tags&&w.tags.length&&(k(U(w.tags)),C(w.tags))}),[]);const H=(e,i,n)=>{const t=b.map(((t,o)=>o===n?Object.assign(Object.assign({},t),{[e]:i}):t));C(t)},U=i=>i.map(((i,n)=>{var t,r,d,p,u,v,h,g,j,D;return{id:n,tagName:i.name,description:e.jsx("div",{className:s.paramDescContainer,children:e.jsx(l,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>V((i=>Object.assign(Object.assign({},i),{[n]:e}))),content:e.jsxs("div",{className:s.editDescTooltipContent,children:[e.jsx("p",{className:s.editDescTooltipContent_header,children:"Description"}),e.jsx(o.TextArea,{placeholder:"Describe parameter...",value:i.description,disabled:x,onChange:e=>H("description",e,n)}),!x&&e.jsx(o.Button,{className:s.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var e;_(`tags[${n}].description`,i.description),null===(e=L[n])||void 0===e||e.hide()},children:"Apply"})]}),children:x?e.jsxs(o.Button,{className:s.editDescBtn,variant:"link",color:"action",children:[i.description?i.description.substring(0,12):"-",i.description&&i.description.length>12?"...":""]}):e.jsx(o.Button,{className:s.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(m,{src:c,width:"1.5rem",height:"1.5rem"}),children:x||i.description?"View Description":"Add Description"})})}),externalDocs:e.jsxs("div",{className:s.paramDescContainer,children:[e.jsx(l,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>z((i=>Object.assign(Object.assign({},i),{[n]:e}))),content:e.jsxs("div",{className:s.editDescTooltipContent,children:[e.jsx("p",{className:s.editDescTooltipContent_header,children:"External Docs Description"}),e.jsx(o.TextArea,{placeholder:"Describe External Doc...",value:null===(t=i.externalDocs)||void 0===t?void 0:t.description,disabled:x,onChange:e=>{H("externalDocs",Object.assign(Object.assign({},i.externalDocs),{description:e}),n),A(e)}}),e.jsx("p",{className:s.editDescTooltipContent_header,children:"External Docs Link"}),e.jsx(o.TextArea,{placeholder:"External Docs Link...",value:null===(r=i.externalDocs)||void 0===r?void 0:r.url,disabled:x,onChange:e=>{H("externalDocs",Object.assign(Object.assign({},i.externalDocs),{url:e}),n),B(e)}}),!x&&e.jsx(o.Button,{className:s.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var e;_(`tags[${n}].externalDocs`,{description:T,url:I}),A(""),B(""),null===(e=S[n])||void 0===e||e.hide()},children:"Apply"})]}),children:x?e.jsxs(o.Button,{className:s.editDescBtn,variant:"link",color:"action",onClick:()=>{var e;const n=document.createElement("a");n.href=null===(e=i.externalDocs)||void 0===e?void 0:e.url,n.click()},children:[(null===(d=null==i?void 0:i.externalDocs)||void 0===d?void 0:d.description)?null===(u=null===(p=null==i?void 0:i.externalDocs)||void 0===p?void 0:p.description)||void 0===u?void 0:u.substring(0,12):"-",(null===(v=null==i?void 0:i.externalDocs)||void 0===v?void 0:v.description)&&(null===(g=null===(h=null==i?void 0:i.externalDocs)||void 0===h?void 0:h.description)||void 0===g?void 0:g.length)>12?"...":""]}):e.jsxs(o.Button,{className:s.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(m,{src:c,width:"1.5rem",height:"1.5rem"}),onClick:()=>{console.log("Move to url")},children:[x||i.externalDocs&&((null===(j=i.externalDocs)||void 0===j?void 0:j.url)||(null===(D=i.externalDocs)||void 0===D?void 0:D.description))?"View ":"Add "," ","External Docs Link"]})}),!x&&e.jsx("div",{className:s.paramDescContainer_separator}),!x&&e.jsx(o.Button,{className:s.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(m,{src:a,width:"1.125rem",height:"1.125rem"}),onClick:()=>{return e=n,t=i.name,P(e),R(t),void M(!0);var e,t}})]})}}));return e.jsxs("form",{className:s.apiInfoForm,onSubmit:e=>e.preventDefault(),children:[e.jsx(o.Input,{size:"large",placeholder:"e.g. Payments",label:"API Name",required:!0,value:null===(h=null==w?void 0:w.info)||void 0===h?void 0:h.title,maxLength:25,onChange:e=>{_("info.title",e)},onClear:()=>{_("info.title","")},errorMsg:null===(g=null==E?void 0:E.info)||void 0===g?void 0:g.title,restrictedCharsRegex:r.basic}),e.jsxs("div",{className:s.apiDocRow,children:[e.jsx(o.Input,{size:"large",label:"API Authentication Type",required:!0,value:(Y=y,Y?Y.charAt(0).toUpperCase()+Y.slice(1):""),disabled:!0}),e.jsx(o.Input,{size:"large",label:"Version",required:!0,value:null===(j=null==w?void 0:w.info)||void 0===j?void 0:j.version,disabled:!0})]}),e.jsx(o.TextArea,{size:"large",placeholder:"Enter a description of the API's functionality...",label:"Description",value:null===(D=null==w?void 0:w.info)||void 0===D?void 0:D.description,maxLength:120,onChange:e=>{_("info.description",e)},onClear:()=>{_("info.description","")},errorMessage:null===(f=null==E?void 0:E.info)||void 0===f?void 0:f.description,restrictedCharsRegex:r.restrictNone}),e.jsx("div",{className:s.paramsTable,children:e.jsx(v,{id:"paramter-table",data:N,headCells:u,isFormOpen:$,setIsFormOpen:G,saveNewRow:e=>{C([...b,e]),_("tags",[...w.tags,e])},readOnly:x})}),e.jsx(p,{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.jsx("span",{className:"plan-name",children:` Tag ${W} `}),"?"]}),onSubmit:{onClick:()=>{null!==F&&C((e=>e.filter(((e,i)=>i!==F)))),M(!1),P(null)},text:"Yes",color:"error",fullWidth:!0},onCancel:{text:"No",color:"normal",fullWidth:!0},onClose:()=>M(!1),open:q,icon:e.jsx(m,{src:d,width:"4.0625rem",height:"4.0625rem"})})]});var Y};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'\r\n// @ts-ignore\r\nimport { useFormikContext } from 'formik'\r\nimport { Button, Input, TextArea } from 'digitinary-ui'\r\nimport styles from './InfoForm.module.scss'\r\nimport regex from '../../constants/regex'\r\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\r\nimport Tooltip from '../../components/Tooltip/Tooltip'\r\nimport { DeleteIcon, deleteOutlinedIcon, EditIcon } from '../../assets/icons'\r\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\r\nimport CommonDialog from '../../components/dialog'\r\nimport { tagsTableHeaders } from '../../constants/index'\r\nimport TagsTable from '../../components/table/tags-table'\r\n\r\nconst InfoForm = ({ readOnly }: { readOnly?: boolean }) => {\r\n const [tableData, setTableData] = useState([])\r\n const [tableRecords, setTableRecords] = useState()\r\n const [authType, setAuthType] = useState('')\r\n const { values, setFieldValue, errors } = useFormikContext<TransformedOpenApi>()\r\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [selectedTagIndex, setSelectedTagIndex] = useState<number | null>(null)\r\n const [selectedTagName, setSelectedTagName] = useState<string | null>(null)\r\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\r\n const [isFormOpen, setIsFormOpen] = useState(false)\r\n\r\n useEffect(() => {\r\n if (values && values.components && values.components.securitySchemes) {\r\n const authenticatorKeys = Object.keys(values.components.securitySchemes)\r\n if (authenticatorKeys.length) {\r\n setAuthType(values.components.securitySchemes[authenticatorKeys[0]].scheme)\r\n }\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n setTableRecords(generateTableData(tableData))\r\n }, [tableData])\r\n\r\n useEffect(() => {\r\n if (values.tags && values.tags.length) {\r\n setTableRecords(generateTableData(values.tags))\r\n setTableData(values.tags)\r\n }\r\n }, [])\r\n\r\n const confirmDeleteTag = () => {\r\n if (selectedTagIndex !== null) {\r\n setTableData((prev) => prev.filter((_, i) => i !== selectedTagIndex))\r\n }\r\n setOpenDeleteDialog(false)\r\n setSelectedTagIndex(null)\r\n }\r\n\r\n const capitalize = (str) => {\r\n if (!str) return ''\r\n return str.charAt(0).toUpperCase() + str.slice(1)\r\n }\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 saveNewRow = (tag) => {\r\n setTableData([...tableData, tag])\r\n setFieldValue(`tags`, [...values.tags, tag])\r\n }\r\n\r\n const handleDeleteClick = (id: number, name: string) => {\r\n setSelectedTagIndex(id)\r\n setSelectedTagName(name)\r\n\r\n setOpenDeleteDialog(true)\r\n }\r\n\r\n const generateTableData = (items) => {\r\n return items.map((item, index) => ({\r\n id: index,\r\n tagName: item.name,\r\n description: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\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 onChange={(value) => onTableChange('description', value, index)}\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(`tags[${index}].description`, item.description)\r\n tooltipRefs[index]?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly ? (\r\n <Button className={styles.editDescBtn} variant=\"link\" color=\"action\">\r\n {item.description ? item.description.substring(0, 12) : '-'}\r\n {item.description && item.description.length > 12 ? '...' : ''}\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 || item.description ? 'View Description' : 'Add Description'}\r\n </Button>\r\n )}\r\n </Tooltip>\r\n </div>\r\n ),\r\n externalDocs: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\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 setExternalTooltipRefs((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}>External Docs Description</p>\r\n <TextArea\r\n placeholder=\"Describe External Doc...\"\r\n value={item.externalDocs?.description}\r\n disabled={readOnly}\r\n onChange={(value) =>\r\n onTableChange(\r\n 'externalDocs',\r\n { ...item.externalDocs, description: value },\r\n index\r\n )\r\n }\r\n />\r\n <p className={styles.editDescTooltipContent_header}>External Docs Link</p>\r\n <TextArea\r\n placeholder=\"External Docs Link...\"\r\n value={item.externalDocs?.url}\r\n disabled={readOnly}\r\n onChange={(value) =>\r\n onTableChange('externalDocs', { ...item.externalDocs, url: 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(`tags[${index}].externalDocs`, {\r\n description: item.externalDocDesc,\r\n url: item.externalDocLink,\r\n })\r\n console.log({ tags: values.tags })\r\n externalTooltipRefs[index]?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly ? (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n onClick={() => {\r\n const a = document.createElement('a')\r\n a.href = item.externalDocs?.url\r\n a.click()\r\n }}\r\n >\r\n {item?.externalDocs?.description\r\n ? item?.externalDocs?.description?.substring(0, 12)\r\n : '-'}\r\n {item?.externalDocs?.description && item?.externalDocs?.description?.length > 12\r\n ? '...'\r\n : ''}\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 onClick={() => {\r\n console.log('Move to url')\r\n }}\r\n >\r\n {readOnly ||\r\n (item.externalDocs && (item.externalDocs?.url || item.externalDocs?.description))\r\n ? 'View '\r\n : 'Add '}{' '}\r\n External Docs Link\r\n </Button>\r\n )}\r\n </Tooltip>\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 return (\r\n <form className={styles.apiInfoForm} onSubmit={(e) => e.preventDefault()}>\r\n <Input\r\n size=\"large\"\r\n placeholder=\"e.g. Payments\"\r\n label=\"API Name\"\r\n required\r\n value={values?.info?.title}\r\n maxLength={25}\r\n onChange={(value) => {\r\n setFieldValue('info.title', value)\r\n }}\r\n onClear={() => {\r\n setFieldValue('info.title', '')\r\n }}\r\n errorMsg={errors?.info?.title}\r\n restrictedCharsRegex={regex.basic}\r\n />\r\n <div className={styles.apiDocRow}>\r\n <Input\r\n size=\"large\"\r\n label=\"API Authentication Type\"\r\n required\r\n value={capitalize(authType)}\r\n disabled\r\n />\r\n <Input size=\"large\" label=\"Version\" required value={values?.info?.version} disabled />\r\n </div>\r\n <TextArea\r\n size=\"large\"\r\n placeholder=\"Enter a description of the API's functionality...\"\r\n label=\"Description\"\r\n value={values?.info?.description}\r\n maxLength={120}\r\n onChange={(value: string) => {\r\n setFieldValue('info.description', value)\r\n }}\r\n onClear={() => {\r\n setFieldValue('info.description', '')\r\n }}\r\n errorMessage={errors?.info?.description}\r\n restrictedCharsRegex={regex.restrictNone}\r\n />\r\n <div className={styles.paramsTable}>\r\n <TagsTable\r\n id=\"paramter-table\"\r\n data={tableRecords}\r\n headCells={tagsTableHeaders}\r\n isFormOpen={isFormOpen}\r\n setIsFormOpen={setIsFormOpen}\r\n saveNewRow={saveNewRow}\r\n readOnly={readOnly}\r\n />\r\n </div>\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\">{` Tag ${selectedTagName} `}</span>?\r\n </p>\r\n }\r\n onSubmit={{\r\n onClick: confirmDeleteTag,\r\n text: 'Yes',\r\n color: 'error',\r\n fullWidth: true,\r\n }}\r\n onCancel={{\r\n text: 'No',\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 </form>\r\n )\r\n}\r\n\r\nexport default InfoForm\r\n"],"names":["InfoForm","readOnly","tableData","setTableData","useState","tableRecords","setTableRecords","authType","setAuthType","values","setFieldValue","errors","useFormikContext","externalTooltipRefs","setExternalTooltipRefs","tooltipRefs","setTooltipRefs","selectedTagIndex","setSelectedTagIndex","selectedTagName","setSelectedTagName","openDeleteDialog","setOpenDeleteDialog","isFormOpen","setIsFormOpen","useEffect","components","securitySchemes","authenticatorKeys","Object","keys","length","scheme","generateTableData","tags","onTableChange","key","value","index","newTableData","map","item","tIndex","assign","items","id","tagName","name","description","_jsx","className","styles","paramDescContainer","children","Tooltip","arrowWithBorder","placement","type","trigger","delay","onCreate","instance","prev","content","_jsxs","jsxs","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","disabled","onChange","Button","editDescTooltipContent_btn","variant","size","onClick","_a","hide","editDescBtn","color","substring","jsx","endIcon","SVGLoader","src","EditIcon","width","height","externalDocs","_b","url","externalDocDesc","externalDocLink","console","log","a","document","createElement","href","click","_c","_e","_d","_f","_h","_g","_j","_k","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteClick","apiInfoForm","onSubmit","e","preventDefault","Input","label","required","info","title","maxLength","onClear","errorMsg","restrictedCharsRegex","regex","basic","apiDocRow","str","charAt","toUpperCase","slice","version","errorMessage","restrictNone","paramsTable","TagsTable","data","headCells","tagsTableHeaders","saveNewRow","tag","CommonDialog","status","style","textAlign","fontWeight","fontSize","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'\r\n// @ts-ignore\r\nimport { useFormikContext } from 'formik'\r\nimport { Button, Input, TextArea } from 'digitinary-ui'\r\nimport styles from './InfoForm.module.scss'\r\nimport regex from '../../constants/regex'\r\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\r\nimport Tooltip from '../../components/Tooltip/Tooltip'\r\nimport { DeleteIcon, deleteOutlinedIcon, EditIcon } from '../../assets/icons'\r\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\r\nimport CommonDialog from '../../components/dialog'\r\nimport { tagsTableHeaders } from '../../constants/index'\r\nimport TagsTable from '../../components/table/tags-table'\r\n\r\nconst InfoForm = ({ readOnly }: { readOnly?: boolean }) => {\r\n const [tableData, setTableData] = useState([])\r\n const [tableRecords, setTableRecords] = useState()\r\n const [authType, setAuthType] = useState('')\r\n const [description, setDescription] = useState('')\r\n const [url, setURL] = useState('')\r\n const { values, setFieldValue, errors } = useFormikContext<TransformedOpenApi>()\r\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [selectedTagIndex, setSelectedTagIndex] = useState<number | null>(null)\r\n const [selectedTagName, setSelectedTagName] = useState<string | null>(null)\r\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\r\n const [isFormOpen, setIsFormOpen] = useState(false)\r\n\r\n useEffect(() => {\r\n if (values && values.components && values.components.securitySchemes) {\r\n const authenticatorKeys = Object.keys(values.components.securitySchemes)\r\n if (authenticatorKeys.length) {\r\n setAuthType(values.components.securitySchemes[authenticatorKeys[0]].scheme)\r\n }\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n setTableRecords(generateTableData(tableData))\r\n }, [tableData])\r\n\r\n useEffect(() => {\r\n if (values.tags && values.tags.length) {\r\n setTableRecords(generateTableData(values.tags))\r\n setTableData(values.tags)\r\n }\r\n }, [])\r\n\r\n const confirmDeleteTag = () => {\r\n if (selectedTagIndex !== null) {\r\n setTableData((prev) => prev.filter((_, i) => i !== selectedTagIndex))\r\n }\r\n setOpenDeleteDialog(false)\r\n setSelectedTagIndex(null)\r\n }\r\n\r\n const capitalize = (str) => {\r\n if (!str) return ''\r\n return str.charAt(0).toUpperCase() + str.slice(1)\r\n }\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 saveNewRow = (tag) => {\r\n setTableData([...tableData, tag])\r\n setFieldValue(`tags`, [...values.tags, tag])\r\n }\r\n\r\n const handleDeleteClick = (id: number, name: string) => {\r\n setSelectedTagIndex(id)\r\n setSelectedTagName(name)\r\n\r\n setOpenDeleteDialog(true)\r\n }\r\n\r\n const generateTableData = (items) => {\r\n return items.map((item, index) => ({\r\n id: index,\r\n tagName: item.name,\r\n description: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\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 onChange={(value) => onTableChange('description', value, index)}\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(`tags[${index}].description`, item.description)\r\n tooltipRefs[index]?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly ? (\r\n <Button className={styles.editDescBtn} variant=\"link\" color=\"action\">\r\n {item.description ? item.description.substring(0, 12) : '-'}\r\n {item.description && item.description.length > 12 ? '...' : ''}\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 || item.description ? 'View Description' : 'Add Description'}\r\n </Button>\r\n )}\r\n </Tooltip>\r\n </div>\r\n ),\r\n externalDocs: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\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 setExternalTooltipRefs((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}>External Docs Description</p>\r\n <TextArea\r\n placeholder=\"Describe External Doc...\"\r\n value={item.externalDocs?.description}\r\n disabled={readOnly}\r\n onChange={(value) => {\r\n onTableChange(\r\n 'externalDocs',\r\n { ...item.externalDocs, description: value },\r\n index\r\n )\r\n setDescription(value)\r\n }}\r\n />\r\n <p className={styles.editDescTooltipContent_header}>External Docs Link</p>\r\n <TextArea\r\n placeholder=\"External Docs Link...\"\r\n value={item.externalDocs?.url}\r\n disabled={readOnly}\r\n onChange={(value) => {\r\n onTableChange('externalDocs', { ...item.externalDocs, url: value }, index)\r\n setURL(value)\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(`tags[${index}].externalDocs`, {\r\n description: description,\r\n url: url,\r\n })\r\n setDescription('')\r\n setURL('')\r\n externalTooltipRefs[index]?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly ? (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n onClick={() => {\r\n const a = document.createElement('a')\r\n a.href = item.externalDocs?.url\r\n a.click()\r\n }}\r\n >\r\n {item?.externalDocs?.description\r\n ? item?.externalDocs?.description?.substring(0, 12)\r\n : '-'}\r\n {item?.externalDocs?.description && item?.externalDocs?.description?.length > 12\r\n ? '...'\r\n : ''}\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 onClick={() => {\r\n console.log('Move to url')\r\n }}\r\n >\r\n {readOnly ||\r\n (item.externalDocs && (item.externalDocs?.url || item.externalDocs?.description))\r\n ? 'View '\r\n : 'Add '}{' '}\r\n External Docs Link\r\n </Button>\r\n )}\r\n </Tooltip>\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 return (\r\n <form className={styles.apiInfoForm} onSubmit={(e) => e.preventDefault()}>\r\n <Input\r\n size=\"large\"\r\n placeholder=\"e.g. Payments\"\r\n label=\"API Name\"\r\n required\r\n value={values?.info?.title}\r\n maxLength={25}\r\n onChange={(value) => {\r\n setFieldValue('info.title', value)\r\n }}\r\n onClear={() => {\r\n setFieldValue('info.title', '')\r\n }}\r\n errorMsg={errors?.info?.title}\r\n restrictedCharsRegex={regex.basic}\r\n />\r\n <div className={styles.apiDocRow}>\r\n <Input\r\n size=\"large\"\r\n label=\"API Authentication Type\"\r\n required\r\n value={capitalize(authType)}\r\n disabled\r\n />\r\n <Input size=\"large\" label=\"Version\" required value={values?.info?.version} disabled />\r\n </div>\r\n <TextArea\r\n size=\"large\"\r\n placeholder=\"Enter a description of the API's functionality...\"\r\n label=\"Description\"\r\n value={values?.info?.description}\r\n maxLength={120}\r\n onChange={(value: string) => {\r\n setFieldValue('info.description', value)\r\n }}\r\n onClear={() => {\r\n setFieldValue('info.description', '')\r\n }}\r\n errorMessage={errors?.info?.description}\r\n restrictedCharsRegex={regex.restrictNone}\r\n />\r\n <div className={styles.paramsTable}>\r\n <TagsTable\r\n id=\"paramter-table\"\r\n data={tableRecords}\r\n headCells={tagsTableHeaders}\r\n isFormOpen={isFormOpen}\r\n setIsFormOpen={setIsFormOpen}\r\n saveNewRow={saveNewRow}\r\n readOnly={readOnly}\r\n />\r\n </div>\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\">{` Tag ${selectedTagName} `}</span>?\r\n </p>\r\n }\r\n onSubmit={{\r\n onClick: confirmDeleteTag,\r\n text: 'Yes',\r\n color: 'error',\r\n fullWidth: true,\r\n }}\r\n onCancel={{\r\n text: 'No',\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 </form>\r\n )\r\n}\r\n\r\nexport default InfoForm\r\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","scheme","generateTableData","tags","onTableChange","key","value","index","newTableData","map","item","tIndex","assign","items","id","tagName","name","_jsx","className","styles","paramDescContainer","children","Tooltip","arrowWithBorder","placement","type","trigger","delay","onCreate","instance","prev","content","_jsxs","jsxs","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","disabled","onChange","Button","editDescTooltipContent_btn","variant","size","onClick","_a","hide","editDescBtn","color","substring","jsx","endIcon","SVGLoader","src","EditIcon","width","height","externalDocs","_b","a","document","createElement","href","click","_c","_e","_d","_f","_h","_g","console","log","_j","_k","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteClick","apiInfoForm","onSubmit","e","preventDefault","Input","label","required","info","title","maxLength","onClear","errorMsg","restrictedCharsRegex","regex","basic","apiDocRow","str","charAt","toUpperCase","slice","version","errorMessage","restrictNone","paramsTable","TagsTable","data","headCells","tagsTableHeaders","saveNewRow","tag","CommonDialog","status","style","textAlign","fontWeight","fontSize","lineHeight","filter","_","i","text","fullWidth","onCancel","onClose","open","icon","deleteOutlinedIcon"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../../_virtual/jsx-runtime.js";import s from"./LivePreview.module.scss.js";import i from"../SimpleLabelValue/SimpleLabelValue.js";import
|
|
1
|
+
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as t,useEffect as s}from"react";import o from"./LivePreview.module.scss.js";import i from"../SimpleLabelValue/SimpleLabelValue.js";import n from"../MethodAccordion/MethodAccordion.js";import{useFormikContext as l}from"../../../node_modules/formik/dist/formik.esm.js";import{tagsTableHeaders as a,methodColorMapping as r}from"../../constants/index.js";import c from"../table/tags-table.js";import{d}from"../../../_virtual/index.js";import m from"../Tooltip/Tooltip.js";const p=({transformedData:p})=>{const[u,v]=t(),[x,j]=t({}),[h,g]=t([]),[D,b]=t({}),{values:f}=l(),{info:N,components:C,tags:k}=f,{securitySchemes:y}=C,T=y&&"object"==typeof y&&Object.keys(y).length?Object.keys(y)[0]:null;s((()=>{console.log({updated:f.tags}),f.tags&&f.tags.length&&(v(O(f.tags,!0)),g(f.tags))}),[f.tags]);const O=(t,s)=>t.map(((t,i)=>{var n,l,a,r,c,p,u,v;return{id:i,tagName:t.name,description:e.jsx("div",{className:o.paramDescContainer,children:e.jsx(m,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>j((t=>Object.assign(Object.assign({},t),{[i]:e}))),content:e.jsxs("div",{className:o.editDescTooltipContent,children:[e.jsx("p",{className:o.editDescTooltipContent_header,children:"Description"}),e.jsx(d.TextArea,{placeholder:"Describe parameter...",value:t.description,disabled:s,onChange:e=>null})]}),children:e.jsxs(d.Button,{className:o.editDescBtn,variant:"link",color:"action",children:[t.description?t.description.substring(0,12):"-",t.description&&t.description.length>12?"...":""]})})}),externalDocs:e.jsxs("div",{className:o.paramDescContainer,children:[e.jsx(m,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>b((t=>Object.assign(Object.assign({},t),{[i]:e}))),content:e.jsxs("div",{className:o.editDescTooltipContent,children:[e.jsx("p",{className:o.editDescTooltipContent_header,children:"External Docs Description"}),e.jsx(d.TextArea,{placeholder:"Describe External Doc...",value:null===(n=t.externalDocs)||void 0===n?void 0:n.description,disabled:s,onChange:e=>null}),e.jsx("p",{className:o.editDescTooltipContent_header,children:"External Docs Link"}),e.jsx(d.TextArea,{placeholder:"External Docs Link...",value:null===(l=t.externalDocs)||void 0===l?void 0:l.url,disabled:s,onChange:e=>null})]}),children:e.jsxs(d.Button,{className:o.editDescBtn,variant:"link",color:"action",onClick:()=>{var e;const s=document.createElement("a");s.href=null===(e=t.externalDocs)||void 0===e?void 0:e.url,s.click()},children:[(null===(a=null==t?void 0:t.externalDocs)||void 0===a?void 0:a.description)?null===(c=null===(r=null==t?void 0:t.externalDocs)||void 0===r?void 0:r.description)||void 0===c?void 0:c.substring(0,12):"-",(null===(p=null==t?void 0:t.externalDocs)||void 0===p?void 0:p.description)&&(null===(v=null===(u=null==t?void 0:t.externalDocs)||void 0===u?void 0:u.description)||void 0===v?void 0:v.length)>12?"...":""]})}),!s&&e.jsx("div",{className:o.paramDescContainer_separator}),!s&&e.jsx(d.Button,{className:o.deleteParamBtn,variant:"link",color:"error",onClick:()=>null})]})}}));return e.jsx("div",{children:e.jsx("div",{className:"row",children:e.jsxs("div",{className:"col-md-12",children:[e.jsx("p",{className:o.apiName,children:null==N?void 0:N.title}),e.jsx(i,{label:"API authentication type: ",value:T?y[T].scheme:"-"},"APIAuthenticationType"),e.jsx(i,{label:"Version: ",value:(null==N?void 0:N.version)||"-"},"version"),e.jsx(i,{label:"Description: ",value:(null==N?void 0:N.description)||"-"},"description"),e.jsx(i,{label:"Tags: "},"tags"),e.jsx(c,{id:"tags-table",data:u,headCells:a,isFormOpen:!1,setIsFormOpen:()=>null,saveNewRow:()=>null,readOnly:!0}),e.jsx(i,{label:"Endpoints "},"endpoints"),f.paths.map((t=>e.jsx("div",{className:o.methodsContainer,children:t.methods.sort(((e,t)=>r[e.type].order+r[t.type].order)).map(((s,o)=>e.jsx(n,{readOnly:!0,method:s,path:t.path})))})))]})})})};export{p as default};
|
|
2
2
|
//# sourceMappingURL=LivePreview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LivePreview.js","sources":["../../../../src/components/LivePreview/LivePreview.tsx"],"sourcesContent":["import React from 'react'\r\nimport styles from './LivePreview.module.scss'\r\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\r\nimport Chips from '../../components/Chips/Chips'\r\nimport MethodsAccordion from '../../components/MethodAccordion/MethodAccordion'\r\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\r\nimport { useFormikContext } from 'formik'\r\nimport { methodColorMapping } from '../../constants/index'\r\n\r\ninterface LivePreviewProps {\r\n transformedData?: TransformedOpenApi\r\n}\r\n\r\nconst LivePreview: React.FC<LivePreviewProps> = ({ transformedData }) => {\r\n const { values } = useFormikContext<TransformedOpenApi>()\r\n const { info, components, tags } = values\r\n const { securitySchemes } = components\r\n const securityKey =\r\n securitySchemes && typeof securitySchemes == 'object' && Object.keys(securitySchemes).length\r\n ? Object.keys(securitySchemes)[0]\r\n : null\r\n return (\r\n <div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <p className={styles.apiName}>{info?.title}</p>\r\n <SimpleLabelValue\r\n key={'APIAuthenticationType'}\r\n label={'API authentication type: '}\r\n value={!!securityKey ? securitySchemes[securityKey].scheme : '-'}\r\n />\r\n <SimpleLabelValue key={'version'} label={'Version: '} value={info?.version || '-'} />\r\n <SimpleLabelValue\r\n key={'description'}\r\n label={'Description: '}\r\n value={info?.description || '-'}\r\n />\r\n\r\n <SimpleLabelValue\r\n key={'tags'}\r\n label={'Tags: '}\r\n value={\r\n tags && tags.length ? (\r\n <Chips\r\n className={styles.tagsChips}\r\n items={tags.map((t) => ({\r\n id: t.name,\r\n label: t.name,\r\n disabled: true,\r\n }))}\r\n />\r\n ) : (\r\n '-'\r\n )\r\n }\r\n />\r\n\r\n <SimpleLabelValue key={'endpoints'} label={'Endpoints '} />\r\n {values.paths.map((path) => (\r\n <div className={styles.methodsContainer}>\r\n {path.methods\r\n .sort((a, b) => methodColorMapping[a.type].order + methodColorMapping[b.type].order)\r\n .map((method, methodIndex) => (\r\n <MethodsAccordion readOnly method={method} path={path.path} />\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default LivePreview\r\n"],"names":["LivePreview","transformedData","values","useFormikContext","info","components","tags","securitySchemes","securityKey","Object","keys","length","_jsx","children","jsx","className","_jsxs","styles","apiName","title","SimpleLabelValue","label","value","scheme","version","description","Chips","tagsChips","items","map","t","id","name","disabled","paths","path","methodsContainer","methods","sort","a","b","methodColorMapping","type","order","method","methodIndex","MethodsAccordion","readOnly"],"mappings":"+XAaA,MAAMA,EAA0C,EAAGC,sBACjD,MAAMC,OAAEA,GAAWC,KACbC,KAAEA,EAAIC,WAAEA,EAAUC,KAAEA,GAASJ,GAC7BK,gBAAEA,GAAoBF,EACtBG,EACJD,GAA6C,iBAAnBA,GAA+BE,OAAOC,KAAKH,GAAiBI,OAClFF,OAAOC,KAAKH,GAAiB,GAC7B,KACN,OACEK,MAAA,MAAA,CAAAC,SACED,EAAKE,IAAA,MAAA,CAAAC,UAAU,MAAKF,SAClBG,OAAK,MAAA,CAAAD,UAAU,YACbF,SAAA,CAAAD,MAAA,IAAA,CAAGG,UAAWE,EAAOC,QAAUL,SAAAT,eAAAA,EAAMe,QACrCP,MAACQ,EAAgB,CAEfC,MAAO,4BACPC,MAASd,EAAcD,EAAgBC,GAAae,OAAS,KAFxD,yBAIPX,MAACQ,EAAiC,CAAAC,MAAO,YAAaC,OAAOlB,aAAA,EAAAA,EAAMoB,UAAW,KAAvD,WACvBZ,MAACQ,EAAgB,CAEfC,MAAO,gBACPC,OAAOlB,aAAI,EAAJA,EAAMqB,cAAe,KAFvB,eAKPb,MAACQ,EAAgB,CAEfC,MAAO,SACPC,MACEhB,GAAQA,EAAKK,OACXC,MAACc,EAAK,CACJX,UAAWE,EAAOU,UAClBC,MAAOtB,EAAKuB,KAAKC,IAAO,CACtBC,GAAID,EAAEE,KACNX,MAAOS,EAAEE,KACTC,UAAU,aATb,QAkBPrB,MAACQ,EAAgB,CAAmBC,MAAO,cAApB,aACtBnB,EAAOgC,MAAML,KAAKM,GACjBvB,EAAAA,IAAK,MAAA,CAAAG,UAAWE,EAAOmB,iBACpBvB,SAAAsB,EAAKE,QACHC,MAAK,CAACC,EAAGC,IAAMC,EAAmBF,EAAEG,MAAMC,MAAQF,EAAmBD,EAAEE,MAAMC,QAC7Ed,KAAI,CAACe,EAAQC,IACZjC,EAACE,IAAAgC,EAAiB,CAAAC,YAASH,OAAQA,EAAQT,KAAMA,EAAKA,mBAOrE"}
|
|
1
|
+
{"version":3,"file":"LivePreview.js","sources":["../../../../src/components/LivePreview/LivePreview.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\r\nimport styles from './LivePreview.module.scss'\r\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\r\n\r\nimport MethodsAccordion from '../../components/MethodAccordion/MethodAccordion'\r\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\r\nimport { useFormikContext } from 'formik'\r\nimport { methodColorMapping, tagsTableHeaders } from '../../constants/index'\r\nimport TagsTable from '../table/tags-table'\r\nimport { Button, TextArea } from 'digitinary-ui'\r\nimport Tooltip from '../../components/Tooltip/Tooltip'\r\nimport { DeleteIcon, deleteOutlinedIcon, EditIcon } from '../../assets/icons'\r\n\r\ninterface LivePreviewProps {\r\n transformedData?: TransformedOpenApi\r\n}\r\n\r\nconst LivePreview: React.FC<LivePreviewProps> = ({ transformedData }) => {\r\n const [tableRecords, setTableRecords] = useState()\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tableData, setTableData] = useState([])\r\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const { values } = useFormikContext<TransformedOpenApi>()\r\n const { info, components, tags } = values\r\n const { securitySchemes } = components\r\n const securityKey =\r\n securitySchemes && typeof securitySchemes == 'object' && Object.keys(securitySchemes).length\r\n ? Object.keys(securitySchemes)[0]\r\n : null\r\n\r\n useEffect(() => {\r\n console.log({updated: values.tags})\r\n if (values.tags && values.tags.length) {\r\n setTableRecords(generateTableData(values.tags, true))\r\n setTableData(values.tags)\r\n }\r\n }, [values.tags])\r\n\r\n const generateTableData = (items, readOnly) => {\r\n return items.map((item, index) => ({\r\n id: index,\r\n tagName: item.name,\r\n description: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\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 onChange={(value) => null}\r\n />\r\n </div>\r\n }\r\n >\r\n <Button className={styles.editDescBtn} variant=\"link\" color=\"action\">\r\n {item.description ? item.description.substring(0, 12) : '-'}\r\n {item.description && item.description.length > 12 ? '...' : ''}\r\n </Button>\r\n </Tooltip>\r\n </div>\r\n ),\r\n externalDocs: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\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 setExternalTooltipRefs((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}>External Docs Description</p>\r\n <TextArea\r\n placeholder=\"Describe External Doc...\"\r\n value={item.externalDocs?.description}\r\n disabled={readOnly}\r\n onChange={(value) => null}\r\n />\r\n <p className={styles.editDescTooltipContent_header}>External Docs Link</p>\r\n <TextArea\r\n placeholder=\"External Docs Link...\"\r\n value={item.externalDocs?.url}\r\n disabled={readOnly}\r\n onChange={(value) => null}\r\n />\r\n </div>\r\n }\r\n >\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n onClick={() => {\r\n const a = document.createElement('a')\r\n a.href = item.externalDocs?.url\r\n a.click()\r\n }}\r\n >\r\n {item?.externalDocs?.description\r\n ? item?.externalDocs?.description?.substring(0, 12)\r\n : '-'}\r\n {item?.externalDocs?.description && item?.externalDocs?.description?.length > 12\r\n ? '...'\r\n : ''}\r\n </Button>\r\n </Tooltip>\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 onClick={() => null}\r\n ></Button>\r\n )}\r\n </div>\r\n ),\r\n }))\r\n }\r\n return (\r\n <div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <p className={styles.apiName}>{info?.title}</p>\r\n <SimpleLabelValue\r\n key={'APIAuthenticationType'}\r\n label={'API authentication type: '}\r\n value={!!securityKey ? securitySchemes[securityKey].scheme : '-'}\r\n />\r\n <SimpleLabelValue key={'version'} label={'Version: '} value={info?.version || '-'} />\r\n <SimpleLabelValue\r\n key={'description'}\r\n label={'Description: '}\r\n value={info?.description || '-'}\r\n />\r\n\r\n <SimpleLabelValue\r\n key={'tags'}\r\n label={'Tags: '}\r\n />\r\n <TagsTable\r\n id=\"tags-table\"\r\n data={tableRecords}\r\n headCells={tagsTableHeaders}\r\n isFormOpen={false}\r\n setIsFormOpen={() => null}\r\n saveNewRow={() => null}\r\n readOnly={true}\r\n />\r\n\r\n <SimpleLabelValue key={'endpoints'} label={'Endpoints '} />\r\n {values.paths.map((path) => (\r\n <div className={styles.methodsContainer}>\r\n {path.methods\r\n .sort((a, b) => methodColorMapping[a.type].order + methodColorMapping[b.type].order)\r\n .map((method, methodIndex) => (\r\n <MethodsAccordion readOnly method={method} path={path.path} />\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default LivePreview\r\n"],"names":["LivePreview","transformedData","tableRecords","setTableRecords","useState","tooltipRefs","setTooltipRefs","tableData","setTableData","externalTooltipRefs","setExternalTooltipRefs","values","useFormikContext","info","components","tags","securitySchemes","securityKey","Object","keys","length","useEffect","console","log","updated","generateTableData","items","readOnly","map","item","index","id","tagName","name","description","_jsx","jsx","className","styles","paramDescContainer","children","Tooltip","arrowWithBorder","placement","type","trigger","delay","onCreate","instance","prev","assign","content","_jsxs","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","value","disabled","onChange","Button","editDescBtn","variant","color","substring","externalDocs","_a","_b","url","onClick","a","document","createElement","href","click","_c","_e","_d","_f","_h","_g","paramDescContainer_separator","deleteParamBtn","jsxs","apiName","title","SimpleLabelValue","label","scheme","version","TagsTable","data","headCells","tagsTableHeaders","isFormOpen","setIsFormOpen","saveNewRow","paths","path","methodsContainer","methods","sort","b","methodColorMapping","order","method","methodIndex","MethodsAccordion"],"mappings":"yhBAiBA,MAAMA,EAA0C,EAAGC,sBACjD,MAAOC,EAAcC,GAAmBC,KACjCC,EAAaC,GAAkBF,EAAiC,CAAE,IAClEG,EAAWC,GAAgBJ,EAAS,KACpCK,EAAqBC,GAA0BN,EAAiC,CAAE,IACnFO,OAAEA,GAAWC,KACbC,KAAEA,EAAIC,WAAEA,EAAUC,KAAEA,GAASJ,GAC7BK,gBAAEA,GAAoBF,EACtBG,EACJD,GAA6C,iBAAnBA,GAA+BE,OAAOC,KAAKH,GAAiBI,OAClFF,OAAOC,KAAKH,GAAiB,GAC7B,KAENK,GAAU,KACRC,QAAQC,IAAI,CAACC,QAASb,EAAOI,OACzBJ,EAAOI,MAAQJ,EAAOI,KAAKK,SAC7BjB,EAAgBsB,EAAkBd,EAAOI,MAAM,IAC/CP,EAAaG,EAAOI,MACrB,GACA,CAACJ,EAAOI,OAEX,MAAMU,EAAoB,CAACC,EAAOC,IACzBD,EAAME,KAAI,CAACC,EAAMC,yBAAU,MAAC,CACjCC,GAAID,EACJE,QAASH,EAAKI,KACdC,YACEC,EAAAC,IAAA,MAAA,CAAKC,UAAWC,EAAOC,mBACrBC,SAAAL,EAAAC,IAACK,EACC,CAAAC,mBACAC,UAAU,aACVC,KAAK,WACLC,QAAQ,QACRC,MAAO,CAAC,EAAG,GACXC,SAAWC,GACT1C,GAAgB2C,GACX/B,OAAAgC,OAAAhC,OAAAgC,OAAA,CAAA,EAAAD,GACH,CAAAnB,CAACA,GAAQkB,MAGbG,QACEC,OAAK,MAAA,CAAAf,UAAWC,EAAOe,uBAAsBb,SAAA,CAC3CL,WAAGE,UAAWC,EAAOgB,8BAA8Cd,SAAA,gBACnEL,EAAAA,IAACoB,EAAAA,SAAQ,CACPC,YAAY,wBACZC,MAAO5B,EAAKK,YACZwB,SAAU/B,EACVgC,SAAWF,GAAU,UAK3BjB,SAAAY,EAAAA,KAACQ,EAAMA,OAAC,CAAAvB,UAAWC,EAAOuB,YAAaC,QAAQ,OAAOC,MAAM,SAAQvB,SAAA,CACjEX,EAAKK,YAAcL,EAAKK,YAAY8B,UAAU,EAAG,IAAM,IACvDnC,EAAKK,aAAeL,EAAKK,YAAYd,OAAS,GAAK,MAAQ,UAKpE6C,aACEb,EAAAA,KAAA,MAAA,CAAKf,UAAWC,EAAOC,mBACrBC,SAAA,CAAAL,EAAAA,IAACM,EACC,CAAAC,mBACAC,UAAU,aACVC,KAAK,WACLC,QAAQ,QACRC,MAAO,CAAC,EAAG,GACXC,SAAWC,GACTtC,GAAwBuC,GACnB/B,OAAAgC,OAAAhC,OAAAgC,OAAA,CAAA,EAAAD,GACH,CAAAnB,CAACA,GAAQkB,MAGbG,QACEC,EAAAA,KAAK,MAAA,CAAAf,UAAWC,EAAOe,uBAAsBb,SAAA,CAC3CL,WAAGE,UAAWC,EAAOgB,8BAA4Dd,SAAA,8BACjFL,EAAAA,IAACoB,EAAAA,SAAQ,CACPC,YAAY,2BACZC,cAAOS,EAAArC,EAAKoC,mCAAc/B,YAC1BwB,SAAU/B,EACVgC,SAAWF,GAAU,OAEvBtB,EAAGC,IAAA,IAAA,CAAAC,UAAWC,EAAOgB,8BAA6Bd,SAAA,uBAClDL,EAAAA,IAACoB,EAAAA,SACC,CAAAC,YAAY,wBACZC,MAA0B,QAAnBU,EAAAtC,EAAKoC,oBAAc,IAAAE,OAAA,EAAAA,EAAAC,IAC1BV,SAAU/B,EACVgC,SAAWF,GAAU,UAEnBjB,SAGRY,EAAAA,KAACQ,EAAAA,QACCvB,UAAWC,EAAOuB,YAClBC,QAAQ,OACRC,MAAM,SACNM,QAAS,WACP,MAAMC,EAAIC,SAASC,cAAc,KACjCF,EAAEG,KAA0B,QAAnBP,EAAArC,EAAKoC,oBAAc,IAAAC,OAAA,EAAAA,EAAAE,IAC5BE,EAAEI,OAAO,EACVlC,SAAA,EAEkB,QAAlBmC,EAAA9C,aAAI,EAAJA,EAAMoC,oBAAY,IAAAU,OAAA,EAAAA,EAAEzC,aACgB,QAAjC0C,EAAkB,QAAlBC,EAAAhD,eAAAA,EAAMoC,oBAAY,IAAAY,OAAA,EAAAA,EAAE3C,mBAAa,IAAA0C,OAAA,EAAAA,EAAAZ,UAAU,EAAG,IAC9C,aACHc,EAAAjD,aAAA,EAAAA,EAAMoC,mCAAc/B,eAAgD,QAAjC6C,EAAoB,QAApBC,EAAAnD,aAAA,EAAAA,EAAMoC,oBAAc,IAAAe,OAAA,EAAAA,EAAA9C,mBAAa,IAAA6C,OAAA,EAAAA,EAAA3D,QAAS,GAC1E,MACA,SAINO,GAAYQ,EAAKC,IAAA,MAAA,CAAAC,UAAWC,EAAO2C,gCAEnCtD,GACAQ,EAAAA,IAACyB,EAAMA,OAAA,CACLvB,UAAWC,EAAO4C,eAClBpB,QAAQ,OACRC,MAAM,QACNM,QAAS,IAAM,UAKvB,IAEJ,OACElC,EACEC,IAAA,MAAA,CAAAI,SAAAL,EAAAA,IAAA,MAAA,CAAKE,UAAU,eACbe,EAAK+B,KAAA,MAAA,CAAA9C,UAAU,YAAWG,SAAA,CACxBL,EAAAA,SAAGE,UAAWC,EAAO8C,iBAAUvE,aAAI,EAAJA,EAAMwE,QACrClD,EAAAA,IAACmD,EAEC,CAAAC,MAAO,4BACP9B,MAASxC,EAAcD,EAAgBC,GAAauE,OAAS,KAFxD,yBAIPrD,EAAAA,IAACmD,EAAiC,CAAAC,MAAO,YAAa9B,OAAO5C,eAAAA,EAAM4E,UAAW,KAAvD,WACvBtD,EAAAA,IAACmD,GAECC,MAAO,gBACP9B,OAAO5C,eAAAA,EAAMqB,cAAe,KAFvB,eAKPC,EAACC,IAAAkD,GAECC,MAAO,UADF,QAGPpD,EAAAA,IAACuD,EAAS,CACV3D,GAAG,aACD4D,KAAMzF,EACN0F,UAAWC,EACXC,YAAY,EACZC,cAAe,IAAM,KACrBC,WAAY,IAAM,KAClBrE,UAAU,IAGZQ,EAAAA,IAACmD,EAAgB,CAAmBC,MAAO,cAApB,aACtB5E,EAAOsF,MAAMrE,KAAKsE,GACjB/D,EAAAA,IAAK,MAAA,CAAAE,UAAWC,EAAO6D,iBACpB3D,SAAA0D,EAAKE,QACHC,MAAK,CAAC/B,EAAGgC,IAAMC,EAAmBjC,EAAE1B,MAAM4D,MAAQD,EAAmBD,EAAE1D,MAAM4D,QAC7E5E,KAAI,CAAC6E,EAAQC,IACZvE,EAACC,IAAAuE,EAAiB,CAAAhF,YAAS8E,OAAQA,EAAQP,KAAMA,EAAKA,mBAOrE"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as i}from"react";import t from"../InfoForm/InfoForm.module.scss.js";import{d as
|
|
1
|
+
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as i}from"react";import t from"../InfoForm/InfoForm.module.scss.js";import{d as a}from"../../../_virtual/index.js";import s from"../Tooltip/Tooltip.js";import n from"../SVGLoader/SVGLoader.js";import l from"../../assets/icons/DeleteIcon.svg.js";import o from"../../assets/icons/EditIcon.svg.js";import r from"../../assets/icons/AddRow.svg.js";import d from"../MethodAccordion/MethodAccordion.module.scss.js";import{useFormik as c}from"../../../node_modules/formik/dist/formik.esm.js";import{object as m,string as h}from"../../../node_modules/yup/index.esm.js";const p=({id:p,headCells:x,data:u,isFormOpen:j,setIsFormOpen:v,saveNewRow:D,readOnly:N})=>{var b,C,g,T,f,w;const[k,B]=i(""),[_,y]=i(""),[E,I]=i(""),[A,L]=i(null),[O,S]=i(null),{values:W,errors:F,setFieldValue:R,isValid:V,submitForm:P,resetForm:z}=c({initialValues:{name:"",description:"",externalDocs:{url:"",description:""}},validationSchema:m().shape({name:h().required("Tag name is required"),description:h().optional(),externalDocs:m().optional()}),onSubmit:e=>{B(""),y(""),I(""),z(),v(!1),D(e)}});return e.jsx("div",{className:"tableSectionContainer",children:e.jsx("div",{className:"tableContainer",children:e.jsxs("table",{id:p||"",className:"table borderRadiusTop borderRadiusBottom",children:[e.jsx("thead",{className:"tableHead",children:e.jsx("tr",{children:null==x?void 0:x.map((i=>e.jsx("th",{className:`tableHeadCell ${i.classes||""}`,style:{width:i.width,minWidth:i.minWidth},children:e.jsx("div",{className:"headContainer","data-id":`${"string"==typeof i.label?i.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g,"_"):"UNKNOWN_LABEL"}_COLUMN`,children:i.label})},i.id)))})}),e.jsxs("tbody",{className:"tableBody","data-id":"TABLE_BODY",children:[null==u?void 0:u.map(((i,t)=>e.jsx("tr",{"data-i":t,className:"row",children:null==x?void 0:x.map((t=>{const a="_"!==i[t.id]&&e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",style:{width:t.width,minWidth:t.minWidth},children:i[t.id]});return e.jsx("td",{style:{width:t.width,minWidth:t.minWidth},children:a},t.id)}))},t))),j?e.jsxs("tr",{"data-i":"",className:"row",children:[e.jsx("td",{children:e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:e.jsx(a.Input,{placeholder:"Tag name",size:"large",type:"text",onChange:e=>{R("name",e)},value:W.name,disabled:N})})},"tag name"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx("div",{className:d.paramDescContainer,children:e.jsx(s,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>L(e),content:e.jsxs("div",{className:t.editDescTooltipContent,children:[e.jsx("p",{className:t.editDescTooltipContent_header,children:"Description"}),e.jsx(a.TextArea,{value:k||W.description,onChange:e=>{B(e)},disabled:N,placeholder:"Describe Tag..."}),!N&&e.jsx(a.Button,{className:t.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{R("description",k),null==A||A.hide()},children:"Apply"})]}),children:e.jsxs(a.Button,{className:t.editDescBtn,style:{paddingLeft:0},variant:"link",color:"action",endIcon:e.jsx(n,{src:o,width:"1.5rem",height:"1.5rem"}),children:[N?"View ":"Add "," Description"]})})})," "]})},"tagDescRequired"),e.jsx("td",{children:e.jsx("div",{className:"tableData",children:e.jsxs("div",{className:t.paramDescContainer,children:[e.jsx(s,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>S(e),content:e.jsxs("div",{className:t.editDescTooltipContent,children:[e.jsx("p",{className:t.editDescTooltipContent_header,children:"External Docs Description"}),e.jsx(a.TextArea,{placeholder:"Describe External Doc...",value:_||W.externalDocs.description,disabled:N,onChange:e=>y(e)}),e.jsx("p",{className:t.editDescTooltipContent_header,children:"External Docs Link"}),e.jsx(a.TextArea,{placeholder:"External Docs Link...",value:E||W.externalDocs.url,disabled:N,onChange:e=>I(e)}),!N&&e.jsx(a.Button,{className:t.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{R("externalDocs",{description:_,url:E}),y(""),I(""),null==O||O.hide()},children:"Apply"})]}),children:N?e.jsxs(a.Button,{className:t.editDescBtn,variant:"link",color:"action",onClick:()=>{var e;const i=document.createElement("a");i.href=null===(e=W.externalDocs)||void 0===e?void 0:e.url,i.target="_blank",i.click()},children:[(null===(b=null==W?void 0:W.externalDocs)||void 0===b?void 0:b.description)?null===(g=null===(C=null==W?void 0:W.externalDocs)||void 0===C?void 0:C.description)||void 0===g?void 0:g.substring(0,12):"-",(null===(T=null==W?void 0:W.externalDocs)||void 0===T?void 0:T.description)&&(null===(w=null===(f=null==W?void 0:W.externalDocs)||void 0===f?void 0:f.description)||void 0===w?void 0:w.length)>12?"...":""]}):e.jsxs(a.Button,{className:t.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:o,width:"1.5rem",height:"1.5rem"}),children:[N?"View ":"Add "," External Docs Link"]})}),e.jsx("div",{className:t.paramDescContainer_separator}),!N&&e.jsx(a.Button,{className:t.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(n,{src:l,width:"1.125rem",height:"1.125rem"}),onClick:()=>{z(),B(""),v(!1)}}),!N&&e.jsx(a.Button,{className:t.deleteParamBtn,variant:"link",color:"success",disabled:!V,endIcon:e.jsx(n,{src:r,width:"0.125rem",height:"0.125rem"}),onClick:()=>{B(""),P()}})]})})},"tagExternal")]},""):e.jsx(e.Fragment,{children:!N&&e.jsx("tr",{"data-i":"addNew",className:"row",children:e.jsx("td",{colSpan:5,children:e.jsx(a.Button,{variant:"link",color:"primary",onClick:()=>{v((e=>!e))},children:"+ Add Tag"})})},"addNew")})]})]})})})};export{p as default};
|
|
2
2
|
//# sourceMappingURL=tags-table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags-table.js","sources":["../../../../src/components/table/tags-table.tsx"],"sourcesContent":["import { useState } from 'react'\r\nimport './style.scss'\r\nimport _styles from '../InfoForm/InfoForm.module.scss'\r\nimport { Button, Input, TextArea } from 'digitinary-ui'\r\nimport Tooltip from '../Tooltip/Tooltip'\r\nimport SVGLoader from '../SVGLoader/SVGLoader'\r\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\r\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\r\nimport { useFormik } from 'formik'\r\nimport * as yup from 'yup'\r\n\r\nconst TagsTable = ({ id, headCells, data, isFormOpen, setIsFormOpen, saveNewRow, readOnly }) => {\r\n const [text, setText] = useState('')\r\n const [externalDesc, setExternalDesc] = useState('')\r\n const [externalUrl, setExternalUrl] = useState('')\r\n const [tooltipRef, setTooltipRef] = useState(null)\r\n const [externalTooltipRefs, setExternalTooltipRefs] = useState(null)\r\n const { values, errors, setFieldValue, isValid, submitForm, resetForm } = useFormik({\r\n initialValues: {\r\n name: '',\r\n description: '',\r\n externalDocs: {\r\n url: '',\r\n description: '',\r\n },\r\n },\r\n validationSchema: yup.object().shape({\r\n name: yup.string().required('Tag name is required'),\r\n description: yup.string().optional(),\r\n externalDocs: yup.object().optional(),\r\n }),\r\n onSubmit: (values) => {\r\n setText('')\r\n setExternalDesc('')\r\n setExternalUrl('')\r\n resetForm()\r\n setIsFormOpen(false)\r\n saveNewRow(values)\r\n },\r\n })\r\n return (\r\n <div className=\"tableSectionContainer\">\r\n <div className=\"tableContainer\">\r\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\r\n <thead className=\"tableHead\">\r\n <tr>\r\n {headCells?.map((headCell) => (\r\n <th\r\n key={headCell.id}\r\n className={`tableHeadCell ${headCell.classes || ''}`}\r\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\r\n >\r\n <div\r\n className=\"headContainer\"\r\n data-id={`${\r\n typeof headCell.label === 'string'\r\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\r\n : 'UNKNOWN_LABEL'\r\n }_COLUMN`}\r\n >\r\n {headCell.label}\r\n </div>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\r\n {data?.map((row, rowIndex) => {\r\n return (\r\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\r\n {headCells?.map((headCell) => {\r\n const cellContent = row[headCell.id] !== '_' && (\r\n <div\r\n data-id=\"TEXT_DESCRIPTION\"\r\n className=\"tableData\"\r\n style={{\r\n width: headCell.width,\r\n minWidth: headCell.minWidth,\r\n }}\r\n >\r\n {row[headCell.id]}\r\n </div>\r\n )\r\n\r\n return (\r\n <td\r\n key={headCell.id}\r\n style={{\r\n width: headCell.width,\r\n minWidth: headCell.minWidth,\r\n }}\r\n >\r\n {cellContent}\r\n </td>\r\n )\r\n })}\r\n </tr>\r\n )\r\n })}\r\n {isFormOpen ? (\r\n <tr key={''} data-i={''} className={`row`}>\r\n <td key={'tag name'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <Input\r\n placeholder=\"Tag name\"\r\n size=\"large\"\r\n type=\"text\"\r\n onChange={(value) => {\r\n setFieldValue('name', value)\r\n }} // Pass the value directly\r\n value={values.name} // Bind value to the state\r\n disabled={readOnly}\r\n />\r\n </div>\r\n </td>\r\n\r\n <td key={'tagDescRequired'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\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) => setTooltipRef(instance)}\r\n content={\r\n <div className={_styles.editDescTooltipContent}>\r\n <p className={_styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n value={text || values.description}\r\n onChange={(value) => {\r\n setText(value)\r\n }}\r\n disabled={readOnly}\r\n placeholder=\"Describe Tag...\"\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('description', text)\r\n tooltipRef?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n <Button\r\n className={_styles.editDescBtn}\r\n style={{ paddingLeft: 0 }}\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 </Tooltip>\r\n </div>{' '}\r\n </div>\r\n </td>\r\n <td key={'tagExternal'}>\r\n <div className=\"tableData\">\r\n <div className={_styles.paramDescContainer}>\r\n <Tooltip\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) => setExternalTooltipRefs(instance)}\r\n content={\r\n <div className={_styles.editDescTooltipContent}>\r\n <p className={_styles.editDescTooltipContent_header}>\r\n External Docs Description\r\n </p>\r\n <TextArea\r\n placeholder=\"Describe External Doc...\"\r\n value={externalDesc || values.externalDocs.description}\r\n disabled={readOnly}\r\n onChange={(value) => setExternalDesc(value)}\r\n />\r\n <p className={_styles.editDescTooltipContent_header}>\r\n External Docs Link\r\n </p>\r\n <TextArea\r\n placeholder=\"External Docs Link...\"\r\n value={externalUrl || values.externalDocs.url}\r\n disabled={readOnly}\r\n onChange={(value) => setExternalUrl(value)}\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(`externalDocs`, {\r\n description: externalDesc,\r\n url: externalUrl,\r\n })\r\n setExternalDesc('')\r\n setExternalUrl('')\r\n externalTooltipRefs?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly ? (\r\n <Button\r\n className={_styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n onClick={() => {\r\n const a = document.createElement('a')\r\n a.href = values.externalDocs?.url\r\n a.click()\r\n }}\r\n >\r\n {values?.externalDocs?.description\r\n ? values?.externalDocs?.description?.substring(0, 12)\r\n : '-'}\r\n {values?.externalDocs?.description &&\r\n values?.externalDocs?.description?.length > 12\r\n ? '...'\r\n : ''}\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 '} External Docs Link\r\n </Button>\r\n )}\r\n </Tooltip>\r\n <div className={_styles.paramDescContainer_separator}></div>\r\n {!readOnly && (\r\n <Button\r\n className={_styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={\r\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\r\n }\r\n onClick={() => {\r\n resetForm()\r\n setText('')\r\n setIsFormOpen(false)\r\n }} // Correctly delete the new row\r\n />\r\n )}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={_styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"success\"\r\n disabled={!isValid}\r\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\r\n onClick={() => {\r\n setText('')\r\n submitForm()\r\n }} // Save the new row when clicked\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n ) : (\r\n <>\r\n {!readOnly && (\r\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\r\n <td colSpan={5}>\r\n <Button\r\n variant=\"link\"\r\n color=\"primary\"\r\n onClick={() => {\r\n setIsFormOpen((prev) => !prev)\r\n }}\r\n >\r\n + Add Tag\r\n </Button>\r\n </td>\r\n </tr>\r\n )}\r\n </>\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default TagsTable\r\n"],"names":["TagsTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","text","setText","useState","externalDesc","setExternalDesc","externalUrl","setExternalUrl","tooltipRef","setTooltipRef","externalTooltipRefs","setExternalTooltipRefs","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","initialValues","name","description","externalDocs","url","validationSchema","yup.object","shape","yup.string","required","optional","onSubmit","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","Input","placeholder","size","type","onChange","value","disabled","styles","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","_styles","editDescTooltipContent","editDescTooltipContent_header","TextArea","Button","editDescTooltipContent_btn","variant","onClick","hide","editDescBtn","paddingLeft","color","endIcon","SVGLoader","src","EditIcon","height","a","document","createElement","href","_a","click","_c","_b","substring","_d","_f","_e","length","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow","_Fragment","Fragment","colSpan","prev"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tags-table.js","sources":["../../../../src/components/table/tags-table.tsx"],"sourcesContent":["import { useState } from 'react'\r\nimport './style.scss'\r\nimport _styles from '../InfoForm/InfoForm.module.scss'\r\nimport { Button, Input, TextArea } from 'digitinary-ui'\r\nimport Tooltip from '../Tooltip/Tooltip'\r\nimport SVGLoader from '../SVGLoader/SVGLoader'\r\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\r\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\r\nimport { useFormik } from 'formik'\r\nimport * as yup from 'yup'\r\n\r\nconst TagsTable = ({ id, headCells, data, isFormOpen, setIsFormOpen, saveNewRow, readOnly }) => {\r\n const [text, setText] = useState('')\r\n const [externalDesc, setExternalDesc] = useState('')\r\n const [externalUrl, setExternalUrl] = useState('')\r\n const [tooltipRef, setTooltipRef] = useState(null)\r\n const [externalTooltipRefs, setExternalTooltipRefs] = useState(null)\r\n const { values, errors, setFieldValue, isValid, submitForm, resetForm } = useFormik({\r\n initialValues: {\r\n name: '',\r\n description: '',\r\n externalDocs: {\r\n url: '',\r\n description: '',\r\n },\r\n },\r\n validationSchema: yup.object().shape({\r\n name: yup.string().required('Tag name is required'),\r\n description: yup.string().optional(),\r\n externalDocs: yup.object().optional(),\r\n }),\r\n onSubmit: (values) => {\r\n setText('')\r\n setExternalDesc('')\r\n setExternalUrl('')\r\n resetForm()\r\n setIsFormOpen(false)\r\n saveNewRow(values)\r\n },\r\n })\r\n return (\r\n <div className=\"tableSectionContainer\">\r\n <div className=\"tableContainer\">\r\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\r\n <thead className=\"tableHead\">\r\n <tr>\r\n {headCells?.map((headCell) => (\r\n <th\r\n key={headCell.id}\r\n className={`tableHeadCell ${headCell.classes || ''}`}\r\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\r\n >\r\n <div\r\n className=\"headContainer\"\r\n data-id={`${\r\n typeof headCell.label === 'string'\r\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\r\n : 'UNKNOWN_LABEL'\r\n }_COLUMN`}\r\n >\r\n {headCell.label}\r\n </div>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\r\n {data?.map((row, rowIndex) => {\r\n return (\r\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\r\n {headCells?.map((headCell) => {\r\n const cellContent = row[headCell.id] !== '_' && (\r\n <div\r\n data-id=\"TEXT_DESCRIPTION\"\r\n className=\"tableData\"\r\n style={{\r\n width: headCell.width,\r\n minWidth: headCell.minWidth,\r\n }}\r\n >\r\n {row[headCell.id]}\r\n </div>\r\n )\r\n\r\n return (\r\n <td\r\n key={headCell.id}\r\n style={{\r\n width: headCell.width,\r\n minWidth: headCell.minWidth,\r\n }}\r\n >\r\n {cellContent}\r\n </td>\r\n )\r\n })}\r\n </tr>\r\n )\r\n })}\r\n {isFormOpen ? (\r\n <tr key={''} data-i={''} className={`row`}>\r\n <td key={'tag name'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <Input\r\n placeholder=\"Tag name\"\r\n size=\"large\"\r\n type=\"text\"\r\n onChange={(value) => {\r\n setFieldValue('name', value)\r\n }} // Pass the value directly\r\n value={values.name} // Bind value to the state\r\n disabled={readOnly}\r\n />\r\n </div>\r\n </td>\r\n\r\n <td key={'tagDescRequired'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\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) => setTooltipRef(instance)}\r\n content={\r\n <div className={_styles.editDescTooltipContent}>\r\n <p className={_styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n value={text || values.description}\r\n onChange={(value) => {\r\n setText(value)\r\n }}\r\n disabled={readOnly}\r\n placeholder=\"Describe Tag...\"\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('description', text)\r\n tooltipRef?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n <Button\r\n className={_styles.editDescBtn}\r\n style={{ paddingLeft: 0 }}\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 </Tooltip>\r\n </div>{' '}\r\n </div>\r\n </td>\r\n <td key={'tagExternal'}>\r\n <div className=\"tableData\">\r\n <div className={_styles.paramDescContainer}>\r\n <Tooltip\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) => setExternalTooltipRefs(instance)}\r\n content={\r\n <div className={_styles.editDescTooltipContent}>\r\n <p className={_styles.editDescTooltipContent_header}>\r\n External Docs Description\r\n </p>\r\n <TextArea\r\n placeholder=\"Describe External Doc...\"\r\n value={externalDesc || values.externalDocs.description}\r\n disabled={readOnly}\r\n onChange={(value) => setExternalDesc(value)}\r\n />\r\n <p className={_styles.editDescTooltipContent_header}>\r\n External Docs Link\r\n </p>\r\n <TextArea\r\n placeholder=\"External Docs Link...\"\r\n value={externalUrl || values.externalDocs.url}\r\n disabled={readOnly}\r\n onChange={(value) => setExternalUrl(value)}\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(`externalDocs`, {\r\n description: externalDesc,\r\n url: externalUrl,\r\n })\r\n setExternalDesc('')\r\n setExternalUrl('')\r\n externalTooltipRefs?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly ? (\r\n <Button\r\n className={_styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n onClick={() => {\r\n const a = document.createElement('a')\r\n a.href = values.externalDocs?.url\r\n a.target = '_blank'\r\n a.click()\r\n }}\r\n >\r\n {values?.externalDocs?.description\r\n ? values?.externalDocs?.description?.substring(0, 12)\r\n : '-'}\r\n {values?.externalDocs?.description &&\r\n values?.externalDocs?.description?.length > 12\r\n ? '...'\r\n : ''}\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 '} External Docs Link\r\n </Button>\r\n )}\r\n </Tooltip>\r\n <div className={_styles.paramDescContainer_separator}></div>\r\n {!readOnly && (\r\n <Button\r\n className={_styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={\r\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\r\n }\r\n onClick={() => {\r\n resetForm()\r\n setText('')\r\n setIsFormOpen(false)\r\n }} // Correctly delete the new row\r\n />\r\n )}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={_styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"success\"\r\n disabled={!isValid}\r\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\r\n onClick={() => {\r\n setText('')\r\n submitForm()\r\n }} // Save the new row when clicked\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n ) : (\r\n <>\r\n {!readOnly && (\r\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\r\n <td colSpan={5}>\r\n <Button\r\n variant=\"link\"\r\n color=\"primary\"\r\n onClick={() => {\r\n setIsFormOpen((prev) => !prev)\r\n }}\r\n >\r\n + Add Tag\r\n </Button>\r\n </td>\r\n </tr>\r\n )}\r\n </>\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default TagsTable\r\n"],"names":["TagsTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","text","setText","useState","externalDesc","setExternalDesc","externalUrl","setExternalUrl","tooltipRef","setTooltipRef","externalTooltipRefs","setExternalTooltipRefs","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","initialValues","name","description","externalDocs","url","validationSchema","yup.object","shape","yup.string","required","optional","onSubmit","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","Input","placeholder","size","type","onChange","value","disabled","styles","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","_styles","editDescTooltipContent","editDescTooltipContent_header","TextArea","Button","editDescTooltipContent_btn","variant","onClick","hide","editDescBtn","paddingLeft","color","endIcon","SVGLoader","src","EditIcon","height","a","document","createElement","href","_a","target","click","_c","_b","substring","_d","_f","_e","length","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow","_Fragment","Fragment","colSpan","prev"],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -1,4 +1,117 @@
|
|
|
1
|
-
.
|
|
1
|
+
.containerTitleDrawer {
|
|
2
|
+
height: 64px;
|
|
3
|
+
min-height: 64px;
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: row;
|
|
6
|
+
justify-content: space-between;
|
|
7
|
+
align-items: center;
|
|
8
|
+
background-color: #f1f2f6;
|
|
9
|
+
padding: 0 30px 0 30px;
|
|
10
|
+
width: 100%;
|
|
11
|
+
}
|
|
12
|
+
.containerTitleDrawer span {
|
|
13
|
+
color: #12131a;
|
|
14
|
+
font-weight: 600;
|
|
15
|
+
font-size: 18px;
|
|
16
|
+
line-height: 25px;
|
|
17
|
+
letter-spacing: 0em;
|
|
18
|
+
}
|
|
19
|
+
.containerTitleDrawer svg path {
|
|
20
|
+
stroke: #000 !important;
|
|
21
|
+
}
|
|
22
|
+
.containerTitleDrawer .closeIcon {
|
|
23
|
+
cursor: pointer;
|
|
24
|
+
}.tooltip-custom-wrapper {
|
|
25
|
+
display: flex;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.tippy-box {
|
|
29
|
+
background-color: #202f5b;
|
|
30
|
+
font-size: 0.875rem;
|
|
31
|
+
border-radius: 0.3125rem;
|
|
32
|
+
width: max-content;
|
|
33
|
+
max-width: 100%;
|
|
34
|
+
overflow-wrap: break-word;
|
|
35
|
+
word-break: break-word;
|
|
36
|
+
position: relative;
|
|
37
|
+
border: 1px solid #d8dae5;
|
|
38
|
+
}
|
|
39
|
+
.tippy-box.function .tippy-content {
|
|
40
|
+
background-color: #fff !important;
|
|
41
|
+
color: #000 !important;
|
|
42
|
+
}
|
|
43
|
+
.tippy-box[data-placement] > .tippy-arrow:before {
|
|
44
|
+
color: #fff !important;
|
|
45
|
+
}
|
|
46
|
+
.tippy-box.info .tippy-arrow {
|
|
47
|
+
color: #202f5b;
|
|
48
|
+
}
|
|
49
|
+
.tippy-box.success {
|
|
50
|
+
border-radius: 1.875rem;
|
|
51
|
+
background-color: #3aaa35;
|
|
52
|
+
padding-inline: 0.625rem;
|
|
53
|
+
}
|
|
54
|
+
.tippy-box .tippy-content {
|
|
55
|
+
text-align: justify;
|
|
56
|
+
font-size: 0.875rem;
|
|
57
|
+
line-height: 1.25rem;
|
|
58
|
+
padding: 0.625rem;
|
|
59
|
+
}
|
|
60
|
+
.tippy-box .tippy-arrow {
|
|
61
|
+
position: relative;
|
|
62
|
+
width: 1rem;
|
|
63
|
+
height: 1rem;
|
|
64
|
+
}
|
|
65
|
+
.tippy-box[data-placement^=top] .tippy-arrow:before {
|
|
66
|
+
bottom: -0.4375rem;
|
|
67
|
+
border-width: 0.5rem 0.5rem 0 !important;
|
|
68
|
+
}
|
|
69
|
+
.tippy-box[data-placement^=right] .tippy-arrow:before {
|
|
70
|
+
left: -0.4375rem;
|
|
71
|
+
border-width: 0.5rem 0.5rem 0.5rem 0 !important;
|
|
72
|
+
}
|
|
73
|
+
.tippy-box[data-placement^=bottom] .tippy-arrow:before {
|
|
74
|
+
top: -0.4375rem;
|
|
75
|
+
border-width: 0 0.5rem 0.5rem !important;
|
|
76
|
+
}
|
|
77
|
+
.tippy-box[data-placement^=left] .tippy-arrow:before {
|
|
78
|
+
right: -0.4375rem;
|
|
79
|
+
border-width: 0.5rem 0 0.5rem 0.5rem !important;
|
|
80
|
+
}
|
|
81
|
+
.tippy-box[data-placement^=bottom-start] .tippy-arrow {
|
|
82
|
+
transform: translate(0.937rem, 0) !important;
|
|
83
|
+
}
|
|
84
|
+
.tippy-box[data-placement^=bottom-end] .tippy-arrow {
|
|
85
|
+
margin-left: calc(100% - 1.937rem);
|
|
86
|
+
transform: translate(0, 0) !important;
|
|
87
|
+
}
|
|
88
|
+
.tippy-box[data-placement^=top-start] .tippy-arrow {
|
|
89
|
+
transform: translate(0.937rem, 0) !important;
|
|
90
|
+
}
|
|
91
|
+
.tippy-box[data-placement^=top-end] .tippy-arrow {
|
|
92
|
+
transform: translate(0.937rem, 0) !important;
|
|
93
|
+
}
|
|
94
|
+
.tippy-box.arrow-with-border {
|
|
95
|
+
border: 1px solid #d8dae5;
|
|
96
|
+
}
|
|
97
|
+
.tippy-box.arrow-with-border[data-placement] .tippy-arrow {
|
|
98
|
+
top: 1px;
|
|
99
|
+
background-color: white;
|
|
100
|
+
z-index: 9999;
|
|
101
|
+
height: 1px;
|
|
102
|
+
}
|
|
103
|
+
.tippy-box.arrow-with-border[data-placement] .tippy-arrow:before {
|
|
104
|
+
width: 1rem;
|
|
105
|
+
height: 1rem;
|
|
106
|
+
background-color: white;
|
|
107
|
+
transform: rotate(45deg);
|
|
108
|
+
border: none;
|
|
109
|
+
border-left: 1px solid #d8dae5 !important;
|
|
110
|
+
border-top: 1px solid #d8dae5 !important;
|
|
111
|
+
z-index: 20000000000;
|
|
112
|
+
top: -0.6rem;
|
|
113
|
+
transform-origin: center !important;
|
|
114
|
+
}.methodAccordion {
|
|
2
115
|
border: none !important;
|
|
3
116
|
box-shadow: none !important;
|
|
4
117
|
margin-bottom: 0 !important;
|
|
@@ -262,121 +375,6 @@
|
|
|
262
375
|
}
|
|
263
376
|
.methodAccordion.readOnly .methodSummaryContainer .methodExpandArrowContainer {
|
|
264
377
|
background-color: #ebecf2;
|
|
265
|
-
}p.apiName {
|
|
266
|
-
font-size: 40px;
|
|
267
|
-
line-height: 30px;
|
|
268
|
-
font-weight: 500;
|
|
269
|
-
}.json-editor-container {
|
|
270
|
-
overflow: hidden;
|
|
271
|
-
border-bottom-right-radius: 0.3125rem;
|
|
272
|
-
border-bottom-left-radius: 0.3125rem;
|
|
273
|
-
}
|
|
274
|
-
.json-editor-container .json-editor-label {
|
|
275
|
-
font-size: 0.875rem;
|
|
276
|
-
font-weight: 600;
|
|
277
|
-
line-height: 1.25rem;
|
|
278
|
-
margin-bottom: 0.3125rem;
|
|
279
|
-
}
|
|
280
|
-
.json-editor-container .json-editor {
|
|
281
|
-
display: flex;
|
|
282
|
-
flex-direction: column;
|
|
283
|
-
background-color: #142452;
|
|
284
|
-
width: 100%;
|
|
285
|
-
outline: 1px solid transparent;
|
|
286
|
-
position: relative;
|
|
287
|
-
overflow: hidden;
|
|
288
|
-
}
|
|
289
|
-
.json-editor-container .json-editor .actions-container {
|
|
290
|
-
width: 100%;
|
|
291
|
-
height: 5rem;
|
|
292
|
-
padding: 1.25rem;
|
|
293
|
-
border-radius: 0 0 0.3125rem 0.3125rem;
|
|
294
|
-
background: #101e47;
|
|
295
|
-
display: flex;
|
|
296
|
-
flex-direction: row;
|
|
297
|
-
gap: 1.25rem;
|
|
298
|
-
align-items: center;
|
|
299
|
-
}
|
|
300
|
-
.json-editor-container .json-editor .actions-container .validate {
|
|
301
|
-
color: #fff;
|
|
302
|
-
text-align: center;
|
|
303
|
-
font-size: 1rem;
|
|
304
|
-
font-style: normal;
|
|
305
|
-
font-weight: 600;
|
|
306
|
-
line-height: 1.25rem;
|
|
307
|
-
width: 8.75rem;
|
|
308
|
-
padding: 0.625rem 2.25rem;
|
|
309
|
-
background-color: rgba(240, 248, 255, 0);
|
|
310
|
-
border-radius: 0.3125rem;
|
|
311
|
-
border: 0.0625rem solid #4d75d8;
|
|
312
|
-
cursor: pointer;
|
|
313
|
-
}
|
|
314
|
-
.json-editor-container .json-editor .actions-container .validate:disabled {
|
|
315
|
-
color: #babdcc;
|
|
316
|
-
border-color: #a2a5b6;
|
|
317
|
-
}
|
|
318
|
-
.json-editor-container .json-editor .actions-container .beautify {
|
|
319
|
-
color: #fff;
|
|
320
|
-
text-align: center;
|
|
321
|
-
font-size: 1rem;
|
|
322
|
-
font-style: normal;
|
|
323
|
-
font-weight: 600;
|
|
324
|
-
line-height: 1.25rem;
|
|
325
|
-
width: 8.75rem;
|
|
326
|
-
padding: 0.625rem 2.25rem;
|
|
327
|
-
background-color: rgba(240, 248, 255, 0);
|
|
328
|
-
border-radius: 0.3125rem;
|
|
329
|
-
border: 1px solid #babdcc;
|
|
330
|
-
cursor: pointer;
|
|
331
|
-
}
|
|
332
|
-
.json-editor-container .json-editor .actions-container .beautify:disabled {
|
|
333
|
-
color: #a2a5b6;
|
|
334
|
-
border-color: #a2a5b6;
|
|
335
|
-
}
|
|
336
|
-
.json-editor-container .json-editor textarea {
|
|
337
|
-
width: 100%;
|
|
338
|
-
padding: 1.25rem;
|
|
339
|
-
font-size: 0.875rem;
|
|
340
|
-
font-style: normal;
|
|
341
|
-
font-weight: 400;
|
|
342
|
-
line-height: 1.25rem;
|
|
343
|
-
color: white;
|
|
344
|
-
height: 25rem;
|
|
345
|
-
background-color: #142452;
|
|
346
|
-
border: none;
|
|
347
|
-
resize: none;
|
|
348
|
-
}
|
|
349
|
-
.json-editor-container .json-editor textarea:focus, .json-editor-container .json-editor textarea:focus-within, .json-editor-container .json-editor textarea:focus-visible .json-editor-container .json-editor textarea:active {
|
|
350
|
-
outline: none;
|
|
351
|
-
border: none;
|
|
352
|
-
}
|
|
353
|
-
.json-editor-container .json-editor textarea::-webkit-scrollbar {
|
|
354
|
-
width: 0.5rem;
|
|
355
|
-
}
|
|
356
|
-
.json-editor-container .json-editor textarea::-webkit-scrollbar-track {
|
|
357
|
-
background-color: #828699;
|
|
358
|
-
border: none;
|
|
359
|
-
border-color: transparent;
|
|
360
|
-
border-top-left-radius: 0;
|
|
361
|
-
}
|
|
362
|
-
.json-editor-container .json-editor textarea::-webkit-scrollbar-thumb {
|
|
363
|
-
background-color: #d8dae5;
|
|
364
|
-
border: none;
|
|
365
|
-
border-color: transparent;
|
|
366
|
-
border-radius: 0;
|
|
367
|
-
}
|
|
368
|
-
.json-editor-container .json-editor.invalid {
|
|
369
|
-
outline: 1px solid #ce2828 !important;
|
|
370
|
-
}
|
|
371
|
-
.json-editor-container .error-message {
|
|
372
|
-
color: #ce2828;
|
|
373
|
-
font-size: 0.75rem;
|
|
374
|
-
line-height: 1.25rem;
|
|
375
|
-
margin-top: 0.625rem;
|
|
376
|
-
}
|
|
377
|
-
.json-editor-container.disabled .json-editor textarea {
|
|
378
|
-
background-color: white;
|
|
379
|
-
color: #12131a;
|
|
380
378
|
}.apiInfoForm {
|
|
381
379
|
display: grid;
|
|
382
380
|
padding: 1.25rem 1.875rem;
|
|
@@ -467,29 +465,6 @@
|
|
|
467
465
|
content: "*";
|
|
468
466
|
color: red;
|
|
469
467
|
transform: translateX(0.125rem);
|
|
470
|
-
}.containerTitleDrawer {
|
|
471
|
-
height: 64px;
|
|
472
|
-
min-height: 64px;
|
|
473
|
-
display: flex;
|
|
474
|
-
flex-direction: row;
|
|
475
|
-
justify-content: space-between;
|
|
476
|
-
align-items: center;
|
|
477
|
-
background-color: #f1f2f6;
|
|
478
|
-
padding: 0 30px 0 30px;
|
|
479
|
-
width: 100%;
|
|
480
|
-
}
|
|
481
|
-
.containerTitleDrawer span {
|
|
482
|
-
color: #12131a;
|
|
483
|
-
font-weight: 600;
|
|
484
|
-
font-size: 18px;
|
|
485
|
-
line-height: 25px;
|
|
486
|
-
letter-spacing: 0em;
|
|
487
|
-
}
|
|
488
|
-
.containerTitleDrawer svg path {
|
|
489
|
-
stroke: #000 !important;
|
|
490
|
-
}
|
|
491
|
-
.containerTitleDrawer .closeIcon {
|
|
492
|
-
cursor: pointer;
|
|
493
468
|
}:root {
|
|
494
469
|
--white: #fff;
|
|
495
470
|
--Gray-5: #f1f2f6;
|
|
@@ -719,121 +694,10 @@
|
|
|
719
694
|
.tableSectionContainer .descArrow path,
|
|
720
695
|
.tableSectionContainer .defaultSortArrow path {
|
|
721
696
|
fill: var(--Gray-50);
|
|
722
|
-
}.
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
max-height: 4.25rem;
|
|
727
|
-
overflow: hidden;
|
|
728
|
-
}
|
|
729
|
-
.chips-container .overflow-dropdown-div .dropdown-list {
|
|
730
|
-
display: flex;
|
|
731
|
-
flex-wrap: wrap;
|
|
732
|
-
gap: 0.625rem;
|
|
733
|
-
margin-top: 0.625rem;
|
|
734
|
-
}
|
|
735
|
-
.chips-container .overflow-dropdown-div .dropdown-list .chip {
|
|
736
|
-
display: flex;
|
|
737
|
-
justify-content: center;
|
|
738
|
-
align-items: center;
|
|
739
|
-
background: #ebecf2;
|
|
740
|
-
border-radius: 3.125rem;
|
|
741
|
-
width: max-content;
|
|
742
|
-
height: 1.5rem;
|
|
743
|
-
overflow: hidden;
|
|
744
|
-
transition: all 0.4s ease-in-out;
|
|
745
|
-
padding-right: 0.9375rem;
|
|
746
|
-
cursor: default;
|
|
747
|
-
}
|
|
748
|
-
.chips-container .overflow-dropdown-div .dropdown-list .chip:not(.disabled):hover {
|
|
749
|
-
background: #d8dae5;
|
|
750
|
-
}
|
|
751
|
-
.chips-container .overflow-dropdown-div .dropdown-list .chip:not(.disabled):active {
|
|
752
|
-
background: #696c80;
|
|
753
|
-
color: #fff;
|
|
754
|
-
}
|
|
755
|
-
.chips-container .overflow-dropdown-div .dropdown-list .chip:not(.disabled):active .chip-close-icon path {
|
|
756
|
-
stroke: #fff;
|
|
757
|
-
}
|
|
758
|
-
.chips-container .overflow-dropdown-div .dropdown-list .chip:not(.disabled) .chip-close-icon {
|
|
759
|
-
cursor: pointer;
|
|
760
|
-
}
|
|
761
|
-
.chips-container .overflow-dropdown-div .dropdown-list .chip.clickable {
|
|
762
|
-
cursor: pointer;
|
|
763
|
-
}
|
|
764
|
-
.chips-container .overflow-dropdown-div .dropdown-list .chip .chip-text {
|
|
765
|
-
display: flex;
|
|
766
|
-
align-items: center;
|
|
767
|
-
font-size: 0.95rem;
|
|
768
|
-
height: 100%;
|
|
769
|
-
padding-left: 0.9375rem;
|
|
770
|
-
margin-top: -0.125rem;
|
|
771
|
-
}
|
|
772
|
-
.chips-container .overflow-dropdown-div .dropdown-list .chip .chip-close-icon {
|
|
773
|
-
display: block;
|
|
774
|
-
height: 0.75rem;
|
|
775
|
-
width: 0.75rem;
|
|
776
|
-
margin-block: auto;
|
|
777
|
-
margin-left: 0.625rem;
|
|
778
|
-
}
|
|
779
|
-
.chips-container .overflow-dropdown-div .dropdown-list .chip .chip-close-icon path {
|
|
780
|
-
stroke: #12131a;
|
|
781
|
-
}
|
|
782
|
-
.chips-container .dropdown-max-height {
|
|
783
|
-
max-height: -moz-fit-content;
|
|
784
|
-
max-height: fit-content !important;
|
|
785
|
-
}
|
|
786
|
-
.chips-container .dropdown-overflow {
|
|
787
|
-
overflow: visible !important;
|
|
788
|
-
}
|
|
789
|
-
.chips-container .show-btn {
|
|
790
|
-
display: flex;
|
|
791
|
-
flex-direction: row;
|
|
792
|
-
flex-wrap: nowrap;
|
|
793
|
-
justify-content: center;
|
|
794
|
-
align-items: center;
|
|
795
|
-
width: auto;
|
|
796
|
-
height: 1.25rem;
|
|
797
|
-
cursor: pointer;
|
|
798
|
-
border: none;
|
|
799
|
-
margin-top: 0.625rem;
|
|
800
|
-
color: #9a9eb2;
|
|
801
|
-
background-color: transparent;
|
|
802
|
-
}
|
|
803
|
-
.chips-container .show-btn .show-btn-text-container {
|
|
804
|
-
flex: 1 1 auto;
|
|
805
|
-
}
|
|
806
|
-
.chips-container .show-btn .show-btn-text-container .show-btn-text {
|
|
807
|
-
font-size: 0.75rem;
|
|
808
|
-
text-decoration-line: underline;
|
|
809
|
-
}
|
|
810
|
-
.chips-container .show-btn .show-btn-icon-container {
|
|
811
|
-
display: flex;
|
|
812
|
-
justify-content: center;
|
|
813
|
-
align-items: center;
|
|
814
|
-
height: 1.25rem;
|
|
815
|
-
width: 1.25rem;
|
|
816
|
-
margin-top: 0.1875rem;
|
|
817
|
-
margin-left: 0.125rem;
|
|
818
|
-
}
|
|
819
|
-
.chips-container .show-btn .show-btn-icon-container .show-btn-icon {
|
|
820
|
-
height: 1.25rem;
|
|
821
|
-
width: 1.25rem;
|
|
822
|
-
}
|
|
823
|
-
.chips-container .show-btn .show-btn-icon-container .show-btn-icon path {
|
|
824
|
-
fill: #9a9eb2;
|
|
825
|
-
}
|
|
826
|
-
.chips-container .show-btn:hover {
|
|
827
|
-
color: #7c9bea;
|
|
828
|
-
}
|
|
829
|
-
.chips-container .show-btn:hover .show-btn-icon-container .show-btn-icon path {
|
|
830
|
-
fill: #7c9bea;
|
|
831
|
-
}
|
|
832
|
-
.chips-container .show-btn:active {
|
|
833
|
-
color: #2c4fa4;
|
|
834
|
-
}
|
|
835
|
-
.chips-container .show-btn:active .show-btn-icon-container .show-btn-icon path {
|
|
836
|
-
fill: #2c4fa4;
|
|
697
|
+
}p.apiName {
|
|
698
|
+
font-size: 40px;
|
|
699
|
+
line-height: 30px;
|
|
700
|
+
font-weight: 500;
|
|
837
701
|
}#common-dialog.dialog-content-wrapper {
|
|
838
702
|
overflow: visible !important;
|
|
839
703
|
max-height: 100%;
|
|
@@ -1016,94 +880,115 @@
|
|
|
1016
880
|
}
|
|
1017
881
|
.drawerItemContainer .color-red {
|
|
1018
882
|
color: var(--color-error);
|
|
1019
|
-
}.
|
|
1020
|
-
|
|
883
|
+
}.json-editor-container {
|
|
884
|
+
overflow: hidden;
|
|
885
|
+
border-bottom-right-radius: 0.3125rem;
|
|
886
|
+
border-bottom-left-radius: 0.3125rem;
|
|
1021
887
|
}
|
|
1022
|
-
|
|
1023
|
-
.tippy-box {
|
|
1024
|
-
background-color: #202f5b;
|
|
888
|
+
.json-editor-container .json-editor-label {
|
|
1025
889
|
font-size: 0.875rem;
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
overflow-wrap: break-word;
|
|
1030
|
-
word-break: break-word;
|
|
1031
|
-
position: relative;
|
|
1032
|
-
border: 1px solid #d8dae5;
|
|
1033
|
-
}
|
|
1034
|
-
.tippy-box.function .tippy-content {
|
|
1035
|
-
background-color: #fff !important;
|
|
1036
|
-
color: #000 !important;
|
|
1037
|
-
}
|
|
1038
|
-
.tippy-box[data-placement] > .tippy-arrow:before {
|
|
1039
|
-
color: #fff !important;
|
|
890
|
+
font-weight: 600;
|
|
891
|
+
line-height: 1.25rem;
|
|
892
|
+
margin-bottom: 0.3125rem;
|
|
1040
893
|
}
|
|
1041
|
-
.
|
|
1042
|
-
|
|
894
|
+
.json-editor-container .json-editor {
|
|
895
|
+
display: flex;
|
|
896
|
+
flex-direction: column;
|
|
897
|
+
background-color: #142452;
|
|
898
|
+
width: 100%;
|
|
899
|
+
outline: 1px solid transparent;
|
|
900
|
+
position: relative;
|
|
901
|
+
overflow: hidden;
|
|
1043
902
|
}
|
|
1044
|
-
.
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
padding
|
|
903
|
+
.json-editor-container .json-editor .actions-container {
|
|
904
|
+
width: 100%;
|
|
905
|
+
height: 5rem;
|
|
906
|
+
padding: 1.25rem;
|
|
907
|
+
border-radius: 0 0 0.3125rem 0.3125rem;
|
|
908
|
+
background: #101e47;
|
|
909
|
+
display: flex;
|
|
910
|
+
flex-direction: row;
|
|
911
|
+
gap: 1.25rem;
|
|
912
|
+
align-items: center;
|
|
1048
913
|
}
|
|
1049
|
-
.
|
|
1050
|
-
|
|
1051
|
-
|
|
914
|
+
.json-editor-container .json-editor .actions-container .validate {
|
|
915
|
+
color: #fff;
|
|
916
|
+
text-align: center;
|
|
917
|
+
font-size: 1rem;
|
|
918
|
+
font-style: normal;
|
|
919
|
+
font-weight: 600;
|
|
1052
920
|
line-height: 1.25rem;
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
921
|
+
width: 8.75rem;
|
|
922
|
+
padding: 0.625rem 2.25rem;
|
|
923
|
+
background-color: rgba(240, 248, 255, 0);
|
|
924
|
+
border-radius: 0.3125rem;
|
|
925
|
+
border: 0.0625rem solid #4d75d8;
|
|
926
|
+
cursor: pointer;
|
|
1059
927
|
}
|
|
1060
|
-
.
|
|
1061
|
-
|
|
1062
|
-
border-
|
|
928
|
+
.json-editor-container .json-editor .actions-container .validate:disabled {
|
|
929
|
+
color: #babdcc;
|
|
930
|
+
border-color: #a2a5b6;
|
|
1063
931
|
}
|
|
1064
|
-
.
|
|
1065
|
-
|
|
1066
|
-
|
|
932
|
+
.json-editor-container .json-editor .actions-container .beautify {
|
|
933
|
+
color: #fff;
|
|
934
|
+
text-align: center;
|
|
935
|
+
font-size: 1rem;
|
|
936
|
+
font-style: normal;
|
|
937
|
+
font-weight: 600;
|
|
938
|
+
line-height: 1.25rem;
|
|
939
|
+
width: 8.75rem;
|
|
940
|
+
padding: 0.625rem 2.25rem;
|
|
941
|
+
background-color: rgba(240, 248, 255, 0);
|
|
942
|
+
border-radius: 0.3125rem;
|
|
943
|
+
border: 1px solid #babdcc;
|
|
944
|
+
cursor: pointer;
|
|
1067
945
|
}
|
|
1068
|
-
.
|
|
1069
|
-
|
|
1070
|
-
border-
|
|
946
|
+
.json-editor-container .json-editor .actions-container .beautify:disabled {
|
|
947
|
+
color: #a2a5b6;
|
|
948
|
+
border-color: #a2a5b6;
|
|
1071
949
|
}
|
|
1072
|
-
.
|
|
1073
|
-
|
|
1074
|
-
|
|
950
|
+
.json-editor-container .json-editor textarea {
|
|
951
|
+
width: 100%;
|
|
952
|
+
padding: 1.25rem;
|
|
953
|
+
font-size: 0.875rem;
|
|
954
|
+
font-style: normal;
|
|
955
|
+
font-weight: 400;
|
|
956
|
+
line-height: 1.25rem;
|
|
957
|
+
color: white;
|
|
958
|
+
height: 25rem;
|
|
959
|
+
background-color: #142452;
|
|
960
|
+
border: none;
|
|
961
|
+
resize: none;
|
|
1075
962
|
}
|
|
1076
|
-
.
|
|
1077
|
-
|
|
963
|
+
.json-editor-container .json-editor textarea:focus, .json-editor-container .json-editor textarea:focus-within, .json-editor-container .json-editor textarea:focus-visible .json-editor-container .json-editor textarea:active {
|
|
964
|
+
outline: none;
|
|
965
|
+
border: none;
|
|
1078
966
|
}
|
|
1079
|
-
.
|
|
1080
|
-
|
|
1081
|
-
transform: translate(0, 0) !important;
|
|
967
|
+
.json-editor-container .json-editor textarea::-webkit-scrollbar {
|
|
968
|
+
width: 0.5rem;
|
|
1082
969
|
}
|
|
1083
|
-
.
|
|
1084
|
-
|
|
970
|
+
.json-editor-container .json-editor textarea::-webkit-scrollbar-track {
|
|
971
|
+
background-color: #828699;
|
|
972
|
+
border: none;
|
|
973
|
+
border-color: transparent;
|
|
974
|
+
border-top-left-radius: 0;
|
|
1085
975
|
}
|
|
1086
|
-
.
|
|
1087
|
-
|
|
976
|
+
.json-editor-container .json-editor textarea::-webkit-scrollbar-thumb {
|
|
977
|
+
background-color: #d8dae5;
|
|
978
|
+
border: none;
|
|
979
|
+
border-color: transparent;
|
|
980
|
+
border-radius: 0;
|
|
1088
981
|
}
|
|
1089
|
-
.
|
|
1090
|
-
|
|
982
|
+
.json-editor-container .json-editor.invalid {
|
|
983
|
+
outline: 1px solid #ce2828 !important;
|
|
1091
984
|
}
|
|
1092
|
-
.
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
985
|
+
.json-editor-container .error-message {
|
|
986
|
+
color: #ce2828;
|
|
987
|
+
font-size: 0.75rem;
|
|
988
|
+
line-height: 1.25rem;
|
|
989
|
+
margin-top: 0.625rem;
|
|
1097
990
|
}
|
|
1098
|
-
.
|
|
1099
|
-
width: 1rem;
|
|
1100
|
-
height: 1rem;
|
|
991
|
+
.json-editor-container.disabled .json-editor textarea {
|
|
1101
992
|
background-color: white;
|
|
1102
|
-
|
|
1103
|
-
border: none;
|
|
1104
|
-
border-left: 1px solid #d8dae5 !important;
|
|
1105
|
-
border-top: 1px solid #d8dae5 !important;
|
|
1106
|
-
z-index: 20000000000;
|
|
1107
|
-
top: -0.6rem;
|
|
1108
|
-
transform-origin: center !important;
|
|
993
|
+
color: #12131a;
|
|
1109
994
|
}
|
package/package.json
CHANGED
|
@@ -16,6 +16,8 @@ const InfoForm = ({ readOnly }: { readOnly?: boolean }) => {
|
|
|
16
16
|
const [tableData, setTableData] = useState([])
|
|
17
17
|
const [tableRecords, setTableRecords] = useState()
|
|
18
18
|
const [authType, setAuthType] = useState('')
|
|
19
|
+
const [description, setDescription] = useState('')
|
|
20
|
+
const [url, setURL] = useState('')
|
|
19
21
|
const { values, setFieldValue, errors } = useFormikContext<TransformedOpenApi>()
|
|
20
22
|
const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})
|
|
21
23
|
const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})
|
|
@@ -163,22 +165,24 @@ const InfoForm = ({ readOnly }: { readOnly?: boolean }) => {
|
|
|
163
165
|
placeholder="Describe External Doc..."
|
|
164
166
|
value={item.externalDocs?.description}
|
|
165
167
|
disabled={readOnly}
|
|
166
|
-
onChange={(value) =>
|
|
168
|
+
onChange={(value) => {
|
|
167
169
|
onTableChange(
|
|
168
170
|
'externalDocs',
|
|
169
171
|
{ ...item.externalDocs, description: value },
|
|
170
172
|
index
|
|
171
173
|
)
|
|
172
|
-
|
|
174
|
+
setDescription(value)
|
|
175
|
+
}}
|
|
173
176
|
/>
|
|
174
177
|
<p className={styles.editDescTooltipContent_header}>External Docs Link</p>
|
|
175
178
|
<TextArea
|
|
176
179
|
placeholder="External Docs Link..."
|
|
177
180
|
value={item.externalDocs?.url}
|
|
178
181
|
disabled={readOnly}
|
|
179
|
-
onChange={(value) =>
|
|
182
|
+
onChange={(value) => {
|
|
180
183
|
onTableChange('externalDocs', { ...item.externalDocs, url: value }, index)
|
|
181
|
-
|
|
184
|
+
setURL(value)
|
|
185
|
+
}}
|
|
182
186
|
/>
|
|
183
187
|
{!readOnly && (
|
|
184
188
|
<Button
|
|
@@ -187,10 +191,11 @@ const InfoForm = ({ readOnly }: { readOnly?: boolean }) => {
|
|
|
187
191
|
size="small"
|
|
188
192
|
onClick={() => {
|
|
189
193
|
setFieldValue(`tags[${index}].externalDocs`, {
|
|
190
|
-
description:
|
|
191
|
-
url:
|
|
194
|
+
description: description,
|
|
195
|
+
url: url,
|
|
192
196
|
})
|
|
193
|
-
|
|
197
|
+
setDescription('')
|
|
198
|
+
setURL('')
|
|
194
199
|
externalTooltipRefs[index]?.hide()
|
|
195
200
|
}}
|
|
196
201
|
>
|
|
@@ -1,17 +1,25 @@
|
|
|
1
|
-
import React from 'react'
|
|
1
|
+
import React, { useEffect, useState } from 'react'
|
|
2
2
|
import styles from './LivePreview.module.scss'
|
|
3
3
|
import SimpleLabelValue from '../../components/SimpleLabelValue'
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
import MethodsAccordion from '../../components/MethodAccordion/MethodAccordion'
|
|
6
6
|
import { TransformedOpenApi } from '../../types/transformedOpenApi'
|
|
7
7
|
import { useFormikContext } from 'formik'
|
|
8
|
-
import { methodColorMapping } from '../../constants/index'
|
|
8
|
+
import { methodColorMapping, tagsTableHeaders } from '../../constants/index'
|
|
9
|
+
import TagsTable from '../table/tags-table'
|
|
10
|
+
import { Button, TextArea } from 'digitinary-ui'
|
|
11
|
+
import Tooltip from '../../components/Tooltip/Tooltip'
|
|
12
|
+
import { DeleteIcon, deleteOutlinedIcon, EditIcon } from '../../assets/icons'
|
|
9
13
|
|
|
10
14
|
interface LivePreviewProps {
|
|
11
15
|
transformedData?: TransformedOpenApi
|
|
12
16
|
}
|
|
13
17
|
|
|
14
18
|
const LivePreview: React.FC<LivePreviewProps> = ({ transformedData }) => {
|
|
19
|
+
const [tableRecords, setTableRecords] = useState()
|
|
20
|
+
const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})
|
|
21
|
+
const [tableData, setTableData] = useState([])
|
|
22
|
+
const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})
|
|
15
23
|
const { values } = useFormikContext<TransformedOpenApi>()
|
|
16
24
|
const { info, components, tags } = values
|
|
17
25
|
const { securitySchemes } = components
|
|
@@ -19,6 +27,118 @@ const LivePreview: React.FC<LivePreviewProps> = ({ transformedData }) => {
|
|
|
19
27
|
securitySchemes && typeof securitySchemes == 'object' && Object.keys(securitySchemes).length
|
|
20
28
|
? Object.keys(securitySchemes)[0]
|
|
21
29
|
: null
|
|
30
|
+
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
console.log({updated: values.tags})
|
|
33
|
+
if (values.tags && values.tags.length) {
|
|
34
|
+
setTableRecords(generateTableData(values.tags, true))
|
|
35
|
+
setTableData(values.tags)
|
|
36
|
+
}
|
|
37
|
+
}, [values.tags])
|
|
38
|
+
|
|
39
|
+
const generateTableData = (items, readOnly) => {
|
|
40
|
+
return items.map((item, index) => ({
|
|
41
|
+
id: index,
|
|
42
|
+
tagName: item.name,
|
|
43
|
+
description: (
|
|
44
|
+
<div className={styles.paramDescContainer}>
|
|
45
|
+
<Tooltip
|
|
46
|
+
arrowWithBorder
|
|
47
|
+
placement="bottom-end"
|
|
48
|
+
type="function"
|
|
49
|
+
trigger="click"
|
|
50
|
+
delay={[0, 0]}
|
|
51
|
+
onCreate={(instance) =>
|
|
52
|
+
setTooltipRefs((prev) => ({
|
|
53
|
+
...prev,
|
|
54
|
+
[index]: instance,
|
|
55
|
+
}))
|
|
56
|
+
}
|
|
57
|
+
content={
|
|
58
|
+
<div className={styles.editDescTooltipContent}>
|
|
59
|
+
<p className={styles.editDescTooltipContent_header}>Description</p>
|
|
60
|
+
<TextArea
|
|
61
|
+
placeholder="Describe parameter..."
|
|
62
|
+
value={item.description}
|
|
63
|
+
disabled={readOnly}
|
|
64
|
+
onChange={(value) => null}
|
|
65
|
+
/>
|
|
66
|
+
</div>
|
|
67
|
+
}
|
|
68
|
+
>
|
|
69
|
+
<Button className={styles.editDescBtn} variant="link" color="action">
|
|
70
|
+
{item.description ? item.description.substring(0, 12) : '-'}
|
|
71
|
+
{item.description && item.description.length > 12 ? '...' : ''}
|
|
72
|
+
</Button>
|
|
73
|
+
</Tooltip>
|
|
74
|
+
</div>
|
|
75
|
+
),
|
|
76
|
+
externalDocs: (
|
|
77
|
+
<div className={styles.paramDescContainer}>
|
|
78
|
+
<Tooltip
|
|
79
|
+
arrowWithBorder
|
|
80
|
+
placement="bottom-end"
|
|
81
|
+
type="function"
|
|
82
|
+
trigger="click"
|
|
83
|
+
delay={[0, 0]}
|
|
84
|
+
onCreate={(instance) =>
|
|
85
|
+
setExternalTooltipRefs((prev) => ({
|
|
86
|
+
...prev,
|
|
87
|
+
[index]: instance,
|
|
88
|
+
}))
|
|
89
|
+
}
|
|
90
|
+
content={
|
|
91
|
+
<div className={styles.editDescTooltipContent}>
|
|
92
|
+
<p className={styles.editDescTooltipContent_header}>External Docs Description</p>
|
|
93
|
+
<TextArea
|
|
94
|
+
placeholder="Describe External Doc..."
|
|
95
|
+
value={item.externalDocs?.description}
|
|
96
|
+
disabled={readOnly}
|
|
97
|
+
onChange={(value) => null}
|
|
98
|
+
/>
|
|
99
|
+
<p className={styles.editDescTooltipContent_header}>External Docs Link</p>
|
|
100
|
+
<TextArea
|
|
101
|
+
placeholder="External Docs Link..."
|
|
102
|
+
value={item.externalDocs?.url}
|
|
103
|
+
disabled={readOnly}
|
|
104
|
+
onChange={(value) => null}
|
|
105
|
+
/>
|
|
106
|
+
</div>
|
|
107
|
+
}
|
|
108
|
+
>
|
|
109
|
+
<Button
|
|
110
|
+
className={styles.editDescBtn}
|
|
111
|
+
variant="link"
|
|
112
|
+
color="action"
|
|
113
|
+
onClick={() => {
|
|
114
|
+
const a = document.createElement('a')
|
|
115
|
+
a.href = item.externalDocs?.url
|
|
116
|
+
a.click()
|
|
117
|
+
}}
|
|
118
|
+
>
|
|
119
|
+
{item?.externalDocs?.description
|
|
120
|
+
? item?.externalDocs?.description?.substring(0, 12)
|
|
121
|
+
: '-'}
|
|
122
|
+
{item?.externalDocs?.description && item?.externalDocs?.description?.length > 12
|
|
123
|
+
? '...'
|
|
124
|
+
: ''}
|
|
125
|
+
</Button>
|
|
126
|
+
</Tooltip>
|
|
127
|
+
|
|
128
|
+
{!readOnly && <div className={styles.paramDescContainer_separator}></div>}
|
|
129
|
+
|
|
130
|
+
{!readOnly && (
|
|
131
|
+
<Button
|
|
132
|
+
className={styles.deleteParamBtn}
|
|
133
|
+
variant="link"
|
|
134
|
+
color="error"
|
|
135
|
+
onClick={() => null}
|
|
136
|
+
></Button>
|
|
137
|
+
)}
|
|
138
|
+
</div>
|
|
139
|
+
),
|
|
140
|
+
}))
|
|
141
|
+
}
|
|
22
142
|
return (
|
|
23
143
|
<div>
|
|
24
144
|
<div className="row">
|
|
@@ -39,20 +159,15 @@ const LivePreview: React.FC<LivePreviewProps> = ({ transformedData }) => {
|
|
|
39
159
|
<SimpleLabelValue
|
|
40
160
|
key={'tags'}
|
|
41
161
|
label={'Tags: '}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
/>
|
|
52
|
-
) : (
|
|
53
|
-
'-'
|
|
54
|
-
)
|
|
55
|
-
}
|
|
162
|
+
/>
|
|
163
|
+
<TagsTable
|
|
164
|
+
id="tags-table"
|
|
165
|
+
data={tableRecords}
|
|
166
|
+
headCells={tagsTableHeaders}
|
|
167
|
+
isFormOpen={false}
|
|
168
|
+
setIsFormOpen={() => null}
|
|
169
|
+
saveNewRow={() => null}
|
|
170
|
+
readOnly={true}
|
|
56
171
|
/>
|
|
57
172
|
|
|
58
173
|
<SimpleLabelValue key={'endpoints'} label={'Endpoints '} />
|