@digi-frontend/dgate-api-documentation 1.0.21 → 1.0.26
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/JsonInput/JsonInput.js +1 -1
- package/dist/src/components/JsonInput/JsonInput.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/MethodAccordion/MethodAccordion.js +1 -1
- package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
- package/dist/src/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/src/components/table/table.js +1 -1
- package/dist/src/components/table/table.js.map +1 -1
- package/dist/src/components/table/tags-table.js +1 -1
- package/dist/src/components/table/tags-table.js.map +1 -1
- package/dist/src/constants/regex.js +1 -1
- package/dist/src/constants/regex.js.map +1 -1
- package/dist/src/helpers/layout.helper.js +1 -1
- package/dist/src/helpers/layout.helper.js.map +1 -1
- package/dist/src/layout/layout.js +1 -1
- package/dist/src/layout/layout.js.map +1 -1
- package/dist/src/layout/layout.module.css.js +1 -1
- package/dist/src/validator/form.scheme.js +1 -1
- package/dist/src/validator/form.scheme.js.map +1 -1
- package/dist/styles.css +344 -311
- package/dist/types/components/MethodAccordion/MethodAccordion.d.ts +3 -1
- package/dist/types/components/Tooltip/Tooltip.d.ts +2 -2
- package/dist/types/constants/regex.d.ts +2 -0
- package/dist/types/validator/form.scheme.d.ts +1 -1
- package/package.json +2 -2
- package/src/components/InfoForm/InfoForm.module.scss +24 -1
- package/src/components/InfoForm/InfoForm.tsx +89 -47
- package/src/components/JsonInput/JsonInput.tsx +18 -7
- package/src/components/LivePreview/LivePreview.module.scss +18 -5
- package/src/components/LivePreview/LivePreview.tsx +47 -25
- package/src/components/MethodAccordion/MethodAccordion.tsx +103 -67
- package/src/components/Tooltip/Tooltip.scss +12 -9
- package/src/components/Tooltip/Tooltip.tsx +2 -3
- package/src/components/table/style.scss +1 -1
- package/src/components/table/table.tsx +11 -8
- package/src/components/table/tags-table.tsx +49 -14
- package/src/constants/regex.ts +2 -0
- package/src/helpers/layout.helper.ts +1 -1
- package/src/layout/layout.module.css +5 -0
- package/src/layout/layout.tsx +45 -7
- package/src/validator/form.scheme.ts +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, { useState, useEffect, ReactNode } from 'react'\r\nimport Tippy from '@tippyjs/react'\r\nimport 'tippy.js/dist/tippy.css'\r\nimport './Tooltip.scss'\r\n\r\ninterface TooltipProps {\r\n
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, { useState, useEffect, ReactNode } from 'react'\r\nimport Tippy, { TippyProps } from '@tippyjs/react'\r\nimport 'tippy.js/dist/tippy.css'\r\nimport './Tooltip.scss'\r\n\r\ninterface TooltipProps extends TippyProps {\r\n content: ReactNode\r\n success?: boolean\r\n onMouseEnter?: (event: React.MouseEvent<HTMLDivElement>) => void\r\n onMouseLeave?: (event: React.MouseEvent<HTMLDivElement>) => void\r\n visible?: boolean\r\n delay?: [number, number]\r\n type?: 'info' | 'function'\r\n maxWidth?: number\r\n className?: string\r\n arrowWithBorder?: boolean\r\n disabled?: boolean\r\n}\r\n\r\nconst Tooltip: React.FC<TooltipProps> = ({\r\n children,\r\n content,\r\n success,\r\n onMouseEnter,\r\n onMouseLeave,\r\n visible,\r\n delay = [200, 400],\r\n type = 'info',\r\n maxWidth = 390,\r\n className,\r\n arrowWithBorder,\r\n disabled,\r\n ...props\r\n}) => {\r\n const [rootFontSize, setRootFontSize] = useState(16)\r\n\r\n useEffect(() => {\r\n const handleFontSizeChange = (fontSize: number) => {\r\n setRootFontSize((prev) => (prev !== fontSize ? fontSize : prev))\r\n }\r\n\r\n if (\r\n // @ts-ignore - Ignoring if `applicationUIScaling` doesn't exist\r\n window.applicationUIScaling &&\r\n // @ts-ignore - Ignoring if `applicationUIScaling` doesn't exist\r\n typeof window.applicationUIScaling.addEventHandler === 'function'\r\n ) {\r\n // @ts-ignore - Ignoring if `applicationUIScaling` doesn't exist\r\n window.applicationUIScaling.addEventHandler(handleFontSizeChange)\r\n }\r\n }, [])\r\n\r\n return (\r\n <Tippy\r\n visible={visible}\r\n allowHTML={typeof content !== 'string'}\r\n interactive\r\n maxWidth={(maxWidth / 16) * rootFontSize}\r\n delay={delay}\r\n content={content}\r\n placement=\"bottom-start\"\r\n className={`${success ? 'success' : ''} ${type} ${className || ''} ${\r\n arrowWithBorder ? 'arrow-with-border' : ''\r\n }`}\r\n disabled={disabled}\r\n {...props}\r\n >\r\n <div\r\n className=\"tooltip-custom-wrapper\"\r\n onMouseEnter={onMouseEnter}\r\n onMouseLeave={onMouseLeave}\r\n >\r\n <div\r\n className=\"tooltip-custom-wrapper\"\r\n onMouseEnter={onMouseEnter}\r\n onMouseLeave={onMouseLeave}\r\n >\r\n {children}\r\n </div>\r\n </div>\r\n </Tippy>\r\n )\r\n}\r\n\r\nexport default Tooltip\r\n"],"names":["Tooltip","_a","children","content","success","onMouseEnter","onMouseLeave","visible","delay","type","maxWidth","className","arrowWithBorder","disabled","props","__rest","rootFontSize","setRootFontSize","useState","useEffect","handleFontSizeChange","fontSize","prev","window","applicationUIScaling","addEventHandler","_jsx","Tippy","Object","assign","allowHTML","interactive","placement"],"mappings":"4SAmBA,MAAMA,EAAmCC,IAAA,IAAAC,SACvCA,EAAQC,QACRA,EAAOC,QACPA,EAAOC,aACPA,EAAYC,aACZA,EAAYC,QACZA,EAAOC,MACPA,EAAQ,CAAC,IAAK,KAAIC,KAClBA,EAAO,OAAMC,SACbA,EAAW,IAAGC,UACdA,EAASC,gBACTA,EAAeC,SACfA,GAAQZ,EACLa,EAAKC,EAAAd,EAb+B,6IAevC,MAAOe,EAAcC,GAAmBC,EAAS,IAkBjD,OAhBAC,GAAU,KACR,MAAMC,EAAwBC,IAC5BJ,GAAiBK,GAAUA,IAASD,EAAWA,EAAWC,GAAM,EAKhEC,OAAOC,sBAEgD,mBAAhDD,OAAOC,qBAAqBC,iBAGnCF,OAAOC,qBAAqBC,gBAAgBL,EAC7C,GACA,IAGDM,EAAAA,IAACC,EAAKC,OAAAC,OAAA,CACJtB,QAASA,EACTuB,UAA8B,iBAAZ3B,EAClB4B,aACA,EAAArB,SAAWA,EAAW,GAAMM,EAC5BR,MAAOA,EACPL,QAASA,EACT6B,UAAU,eACVrB,UAAW,GAAGP,EAAU,UAAY,MAAMK,KAAQE,GAAa,MAC7DC,EAAkB,oBAAsB,KAE1CC,SAAUA,GACNC,EAEJ,CAAAZ,SAAAwB,EAAAA,IAAA,MAAA,CACEf,UAAU,yBACVN,aAAcA,EACdC,aAAcA,WAEdoB,EAAAA,IACE,MAAA,CAAAf,UAAU,yBACVN,aAAcA,EACdC,aAAcA,EAAYJ,SAEzBA,QAIR"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as a}from"react";import{d as i}from"../../../_virtual/index.js";import r from"../Tooltip/Tooltip.js";import l from"../SVGLoader/SVGLoader.js";import
|
|
1
|
+
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as a}from"react";import{d as i}from"../../../_virtual/index.js";import r from"../Tooltip/Tooltip.js";import l from"../SVGLoader/SVGLoader.js";import t from"../../assets/icons/DeleteIcon.svg.js";import s from"../../assets/icons/EditIcon.svg.js";import d from"../../assets/icons/AddRow.svg.js";import n from"../MethodAccordion/MethodAccordion.module.scss.js";import{useFormik as o}from"../../../node_modules/formik/dist/formik.esm.js";import{object as c,string as m,bool as h}from"../../../node_modules/yup/index.esm.js";import{capitalize as u}from"../../helpers/methodAccordion.helper.js";import p from"../../constants/regex.js";const j=({id:j,headCells:v,data:b,isFormOpen:x,setIsFormOpen:N,saveNewRow:C,readOnly:g})=>{const[y,T]=a(""),[w,D]=a(null),{values:f,errors:I,setFieldValue:S,isValid:k,submitForm:_,resetForm:B}=o({validateOnMount:!0,initialValues:{name:"",in:"Query",schema:{type:"String"},required:!0,description:""},validationSchema:c().shape({name:m().trim().required("Parameter name is required"),in:m().required("Paramter type is required"),schema:c().shape({type:m().required("Parameter schema type is required")}),required:h().optional(),description:m().trim().optional()}),onSubmit:e=>{C(e),N(!1),T(""),B()}});return e.jsx("div",{className:"tableSectionContainer",children:e.jsx("div",{className:"tableContainer",children:e.jsxs("table",{id:j||"",className:"table borderRadiusTop borderRadiusBottom",children:[e.jsx("thead",{className:"tableHead",children:e.jsx("tr",{children:null==v?void 0:v.map((a=>e.jsx("th",{className:`tableHeadCell ${a.classes||""}`,style:{width:a.width,minWidth:a.minWidth},children:e.jsx("div",{className:"headContainer","data-id":`${"string"==typeof a.label?a.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g,"_"):"UNKNOWN_LABEL"}_COLUMN`,children:a.label})},a.id)))})}),e.jsxs("tbody",{className:"tableBody","data-id":"TABLE_BODY",children:[null==b?void 0:b.map(((a,i)=>e.jsx("tr",{"data-i":i,className:"row",children:null==v?void 0:v.map((i=>{const r="_"!==a[i.id]&&e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",style:{width:i.width,minWidth:i.minWidth},children:a[i.id]});return e.jsx("td",{style:{width:i.width,minWidth:i.minWidth},children:r},i.id)}))},i))),0===(null==b?void 0:b.length)&&g&&e.jsx("tr",{className:"fallbackTableRow",children:e.jsx("td",{className:"fallbackContainer",colSpan:null==v?void 0:v.length,children:e.jsx("div",{className:"fallbackTextContainer",children:e.jsx("span",{className:"fallbackText",children:" No Data Available"})})})}),x&&!g?e.jsxs("tr",{className:"row",children:[e.jsx("td",{children:e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:e.jsx(i.Input,{placeholder:"Parameter name",size:"large",type:"text",onChange:e=>{(""===e||p.ASCII.test(e))&&S("name",e)},value:f.name,disabled:g})})},"Parameter name"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx(i.SelectGroupV2,{disabled:g,value:{label:u(f.in),value:u(f.in)},onChange:e=>{var a;return S("in",null===(a=null==e?void 0:e.value)||void 0===a?void 0:a.toLowerCase())},options:[{list:[{label:"Query",value:"query"},{label:"Header",value:"header"},{label:"Path",value:"path"},{label:"Body",value:"body"}]}],errorMsg:!!I.in&&I.in,isMultiple:!1,withSearch:!1,clearable:!1})," "]})},"parameter in"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx(i.SelectGroupV2,{disabled:g,clearable:!1,value:{label:u(f.schema.type),value:u(f.schema.type)},errorMsg:!!I.schema&&I.schema,onChange:e=>{var a;return S("schema.type",null===(a=null==e?void 0:e.value)||void 0===a?void 0:a.toLowerCase())},options:[{list:[{label:"String",value:"string"},{label:"Integer",value:"integer"},{label:"Boolean",value:"boolean"},{label:"Object",value:"object"},{label:"Array",value:"array"},{label:"Number",value:"number"}]}],isMultiple:!1,withSearch:!1})," "]})},"parameter schema type"),e.jsx("td",{children:e.jsx("div",{"data-id":"is required",className:"tableData",children:g?e.jsx(e.Fragment,{children:f.required?"True":"False"}):e.jsx(i.Switch,{checked:f.required,onClick:()=>{g||S("required",!f.required)}})})},"parameter required"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsxs("div",{className:n.paramDescContainer,children:[e.jsx(r,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>D(e),content:e.jsxs("div",{className:n.editDescTooltipContent,children:[e.jsx("p",{className:n.editDescTooltipContent_header,children:"Description"}),e.jsx(i.TextArea,{value:y||f.description,onChange:e=>{(""===e||p.ASCII.test(e))&&T(e)},disabled:g,placeholder:"Describe parameter...",maxLength:120}),!g&&e.jsx(i.Button,{className:n.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{S("description",null==y?void 0:y.trim()),null==w||w.hide()},disabled:""===(null==y?void 0:y.trim()),children:"Apply"})]}),children:e.jsxs(i.Button,{className:n.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(l,{src:s,width:"1.5rem",height:"1.5rem"}),children:[g?"View ":"Add "," Description"]})}),e.jsx("div",{className:n.paramDescContainer_separator}),!g&&e.jsx(i.Button,{className:n.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(l,{src:t,width:"1.125rem",height:"1.125rem"}),onClick:()=>{B(),T(""),N(!1)}}),!g&&e.jsx(i.Button,{className:n.deleteParamBtn,variant:"link",color:"success",disabled:!k,endIcon:e.jsx(l,{src:d,width:"0.125rem",height:"0.125rem"}),onClick:()=>{T(""),_()}})]})," "]})},"parameter schema desc")]}):e.jsx(e.Fragment,{children:!g&&e.jsx("tr",{"data-i":"addNew",className:"row",children:e.jsx("td",{colSpan:5,children:e.jsx(i.Button,{variant:"link",color:"primary",onClick:()=>{N((e=>!e))},children:"+ Add Parameter"})})},"addNew")})]})]})})})};export{j as default};
|
|
2
2
|
//# sourceMappingURL=table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["import React, { useState } from 'react'\r\nimport './style.scss'\r\nimport { Button, Input, SelectGroupV2, Switch, 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\nimport { capitalize } from '../../helpers/methodAccordion.helper'\r\n\r\nconst ParamterTable = ({\r\n id,\r\n headCells,\r\n data,\r\n isFormOpen,\r\n setIsFormOpen,\r\n saveNewRow,\r\n readOnly,\r\n}) => {\r\n const [text, setText] = useState('')\r\n const [tooltipRef, setTooltipRef] = useState(null)\r\n const { values, errors, setFieldValue, isValid, submitForm, resetForm } = useFormik({\r\n validateOnMount: true,\r\n initialValues: {\r\n name: '',\r\n in: 'Query',\r\n schema: {\r\n type: 'String',\r\n },\r\n required: true,\r\n description: '',\r\n },\r\n validationSchema: yup.object().shape({\r\n name: yup.string().required('Parameter name is required'),\r\n in: yup.string().required('Paramter type is required'),\r\n schema: yup.object().shape({\r\n type: yup.string().required('Parameter schema type is required'),\r\n }),\r\n required: yup.boolean().optional(),\r\n description: yup.string().optional(),\r\n }),\r\n onSubmit: (values) => {\r\n saveNewRow(values)\r\n setIsFormOpen(false)\r\n setText('')\r\n resetForm()\r\n },\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 {data?.length === 0 && readOnly && (\r\n <tr className=\"fallbackTableRow\">\r\n <td className=\"fallbackContainer\" colSpan={headCells?.length}>\r\n <div className=\"fallbackTextContainer\">\r\n <span className=\"fallbackText\"> No Data Available</span>\r\n </div>\r\n </td>\r\n </tr>\r\n )}\r\n\r\n {isFormOpen && !readOnly ? (\r\n <tr className={`row`}>\r\n <td key={'Parameter name'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <Input\r\n placeholder=\"Parameter name\"\r\n size=\"large\"\r\n type=\"text\"\r\n // errorMsg={!!errors.name && errors.name}\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={'parameter in'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <SelectGroupV2\r\n disabled={readOnly}\r\n value={{\r\n label: capitalize(values.in),\r\n value: capitalize(values.in),\r\n }}\r\n onChange={(item) => setFieldValue('in', item?.value?.toLowerCase())} // Updates state on selection\r\n options={[\r\n {\r\n list: [\r\n { label: 'Query', value: 'query' },\r\n { label: 'Header', value: 'header' },\r\n { label: 'Path', value: 'path' },\r\n { label: 'Body', value: 'body' },\r\n ],\r\n },\r\n ]}\r\n errorMsg={!!errors.in && errors.in}\r\n isMultiple={false}\r\n withSearch={false}\r\n clearable={false}\r\n />{' '}\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter schema type'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <SelectGroupV2\r\n disabled={readOnly}\r\n clearable={false}\r\n value={{\r\n label: capitalize(values.schema.type),\r\n value: capitalize(values.schema.type),\r\n }}\r\n errorMsg={!!errors.schema && errors.schema}\r\n onChange={(item) => setFieldValue('schema.type', item?.value?.toLowerCase())} // Updates state on selection\r\n options={[\r\n {\r\n list: [\r\n { label: 'String', value: 'string' },\r\n { label: 'Integer', value: 'integer' },\r\n { label: 'Boolean', value: 'boolean' },\r\n { label: 'Object', value: 'object' },\r\n { label: 'Array', value: 'array' },\r\n { label: 'Number', value: 'number' },\r\n ],\r\n },\r\n ]}\r\n isMultiple={false}\r\n withSearch={false}\r\n />{' '}\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter required'}>\r\n <div data-id=\"is required\" className=\"tableData\">\r\n {readOnly ? (\r\n <>{values.required ? 'True' : 'False'}</>\r\n ) : (\r\n <Switch\r\n checked={values.required}\r\n onClick={() => {\r\n if (readOnly) {\r\n return\r\n }\r\n setFieldValue('required', !values.required)\r\n }}\r\n />\r\n )}\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter schema desc'}>\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 parameter...\"\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 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\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 Parameter\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 ParamterTable\r\n"],"names":["ParamterTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","text","setText","useState","tooltipRef","setTooltipRef","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","validateOnMount","initialValues","name","in","schema","type","required","description","validationSchema","yup.object","shape","yup.string","yup.boolean","optional","onSubmit","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","length","colSpan","Input","placeholder","size","onChange","value","disabled","SelectGroupV2","capitalize","item","_a","toLowerCase","options","list","errorMsg","isMultiple","withSearch","clearable","_Fragment","Fragment","Switch","checked","onClick","styles","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","editDescTooltipContent","editDescTooltipContent_header","TextArea","Button","editDescTooltipContent_btn","variant","hide","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","height","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow","prev"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.js","sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["import React, { useState } from 'react'\r\nimport './style.scss'\r\nimport { Button, Input, SelectGroupV2, Switch, 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\nimport { capitalize } from '../../helpers/methodAccordion.helper'\r\nimport regex from '../../constants/regex'\r\n\r\nconst ParamterTable = ({\r\n id,\r\n headCells,\r\n data,\r\n isFormOpen,\r\n setIsFormOpen,\r\n saveNewRow,\r\n readOnly,\r\n}) => {\r\n const [text, setText] = useState('')\r\n const [tooltipRef, setTooltipRef] = useState(null)\r\n const { values, errors, setFieldValue, isValid, submitForm, resetForm } = useFormik({\r\n validateOnMount: true,\r\n initialValues: {\r\n name: '',\r\n in: 'Query',\r\n schema: {\r\n type: 'String',\r\n },\r\n required: true,\r\n description: '',\r\n },\r\n validationSchema: yup.object().shape({\r\n name: yup.string().trim().required('Parameter name is required'),\r\n in: yup.string().required('Paramter type is required'),\r\n schema: yup.object().shape({\r\n type: yup.string().required('Parameter schema type is required'),\r\n }),\r\n required: yup.boolean().optional(),\r\n description: yup.string().trim().optional(),\r\n }),\r\n onSubmit: (values) => {\r\n saveNewRow(values)\r\n setIsFormOpen(false)\r\n setText('')\r\n resetForm()\r\n },\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 {data?.length === 0 && readOnly && (\r\n <tr className=\"fallbackTableRow\">\r\n <td className=\"fallbackContainer\" colSpan={headCells?.length}>\r\n <div className=\"fallbackTextContainer\">\r\n <span className=\"fallbackText\"> No Data Available</span>\r\n </div>\r\n </td>\r\n </tr>\r\n )}\r\n\r\n {isFormOpen && !readOnly ? (\r\n <tr className={`row`}>\r\n <td key={'Parameter name'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <Input\r\n placeholder=\"Parameter name\"\r\n size=\"large\"\r\n type=\"text\"\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value as string))\r\n setFieldValue('name', value)\r\n }}\r\n value={values.name}\r\n disabled={readOnly}\r\n />\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter in'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <SelectGroupV2\r\n disabled={readOnly}\r\n value={{\r\n label: capitalize(values.in),\r\n value: capitalize(values.in),\r\n }}\r\n onChange={(item) => setFieldValue('in', item?.value?.toLowerCase())} // Updates state on selection\r\n options={[\r\n {\r\n list: [\r\n { label: 'Query', value: 'query' },\r\n { label: 'Header', value: 'header' },\r\n { label: 'Path', value: 'path' },\r\n { label: 'Body', value: 'body' },\r\n ],\r\n },\r\n ]}\r\n errorMsg={!!errors.in && errors.in}\r\n isMultiple={false}\r\n withSearch={false}\r\n clearable={false}\r\n />{' '}\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter schema type'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <SelectGroupV2\r\n disabled={readOnly}\r\n clearable={false}\r\n value={{\r\n label: capitalize(values.schema.type),\r\n value: capitalize(values.schema.type),\r\n }}\r\n errorMsg={!!errors.schema && errors.schema}\r\n onChange={(item) => setFieldValue('schema.type', item?.value?.toLowerCase())} // Updates state on selection\r\n options={[\r\n {\r\n list: [\r\n { label: 'String', value: 'string' },\r\n { label: 'Integer', value: 'integer' },\r\n { label: 'Boolean', value: 'boolean' },\r\n { label: 'Object', value: 'object' },\r\n { label: 'Array', value: 'array' },\r\n { label: 'Number', value: 'number' },\r\n ],\r\n },\r\n ]}\r\n isMultiple={false}\r\n withSearch={false}\r\n />{' '}\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter required'}>\r\n <div data-id=\"is required\" className=\"tableData\">\r\n {readOnly ? (\r\n <>{values.required ? 'True' : 'False'}</>\r\n ) : (\r\n <Switch\r\n checked={values.required}\r\n onClick={() => {\r\n if (readOnly) {\r\n return\r\n }\r\n setFieldValue('required', !values.required)\r\n }}\r\n />\r\n )}\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter schema desc'}>\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 if (value === '' || regex.ASCII.test(value)) setText(value)\r\n }}\r\n disabled={readOnly}\r\n placeholder=\"Describe parameter...\"\r\n maxLength={120}\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?.trim())\r\n tooltipRef?.hide()\r\n }}\r\n disabled={text?.trim() === ''}\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 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\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 Parameter\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 ParamterTable\r\n"],"names":["ParamterTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","text","setText","useState","tooltipRef","setTooltipRef","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","validateOnMount","initialValues","name","in","schema","type","required","description","validationSchema","yup.object","shape","yup.string","trim","yup.boolean","optional","onSubmit","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","length","colSpan","Input","placeholder","size","onChange","value","regex","ASCII","test","disabled","SelectGroupV2","capitalize","item","_a","toLowerCase","options","list","errorMsg","isMultiple","withSearch","clearable","_Fragment","Fragment","Switch","checked","onClick","styles","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","editDescTooltipContent","editDescTooltipContent_header","TextArea","maxLength","Button","editDescTooltipContent_btn","variant","hide","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","height","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow","prev"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as i}from"react";import
|
|
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 s}from"../../../_virtual/index.js";import a 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";import p from"../../constants/regex.js";const x=({id:x,headCells:u,data:v,isFormOpen:j,setIsFormOpen:D,saveNewRow:g,readOnly:N})=>{var b,C,T,w,f,I,k,B,_,y;const[A,L]=i(""),[E,R]=i(""),[S,O]=i(""),[W,F]=i(null),[V,q]=i(null),{values:P,errors:U,setFieldValue:z,isValid:H,submitForm:M,resetForm:X}=c({validateOnMount:!0,initialValues:{name:"",description:"",externalDocs:{url:"",description:""}},validationSchema:m().shape({name:h().trim().required("Tag name is required"),description:h().optional(),externalDocs:m().shape({url:h().trim().matches(p.urlRegex,"Invalid URL").when("description",((e,i)=>(null==e?void 0:e.at(0))?i.required("URL is required when description is provided"):i.optional())),description:h().trim().optional()}).optional()}),onSubmit:e=>{g(e),L(""),X(),D(!1)},validateOnChange:!0});return e.jsx("div",{className:"tableSectionContainer",children:e.jsx("div",{className:"tableContainer",children:e.jsxs("table",{id:x||"",className:"table borderRadiusTop borderRadiusBottom",children:[e.jsx("thead",{className:"tableHead",children:e.jsx("tr",{children:null==u?void 0:u.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==v?void 0:v.map(((i,t)=>e.jsx("tr",{"data-i":t,className:"row",children:null==u?void 0:u.map((t=>{const s="_"!==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:s},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(s.Input,{placeholder:"Tag name",size:"large",type:"text",maxLength:25,onChange:e=>{!p.basic.test(e)&&z("name",e)},value:P.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(a,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>F(e),onHidden:()=>{L(P.description)},content:e.jsxs("div",{className:t.editDescTooltipContent,children:[e.jsx("p",{className:t.editDescTooltipContent_header,children:"Description"}),e.jsx(s.TextArea,{value:A||P.description,disabled:N,maxLength:25,placeholder:"Describe Tag...",onChange:e=>{(""===e||p.ASCII.test(e))&&L(e)}}),!N&&e.jsx(s.Button,{className:t.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{z("description",null==A?void 0:A.trim()),null==W||W.hide()},disabled:!(null===(b=A||P.description)||void 0===b?void 0:b.trim()),children:"Apply"})]}),children:e.jsxs(s.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(a,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>q(e),onHidden:()=>{R(P.externalDocs.description),O(P.externalDocs.url)},content:e.jsxs("div",{className:t.editDescTooltipContent,children:[e.jsx("p",{className:t.editDescTooltipContent_header,children:"External Docs Description"}),e.jsx(s.TextArea,{placeholder:"Describe External Doc...",value:E||P.externalDocs.description,disabled:N,maxLength:25,onChange:e=>{(""===e||p.ASCII.test(e))&&R(e)}}),e.jsx("p",{className:t.editDescTooltipContent_header,children:"External Docs Link"}),e.jsx(s.TextArea,{placeholder:"External Docs Link...",value:S||P.externalDocs.url,disabled:N,maxLength:200,onChange:e=>{(""===e||p.ASCII.test(e))&&O(e)}}),!N&&e.jsx(s.Button,{className:t.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{z("externalDocs",{description:E,url:S}),null==V||V.hide()},disabled:!(null===(C=E||P.externalDocs.description)||void 0===C?void 0:C.trim())||!(null===(T=S||P.externalDocs.url)||void 0===T?void 0:T.trim())||!p.urlRegex.test(S||P.externalDocs.url),children:"Apply"})]}),children:N?e.jsxs("a",{className:t.editDescBtn,variant:"link",color:"action",href:null===(w=P.externalDocs)||void 0===w?void 0:w.url,target:"_blank",children:[(null===(f=null==P?void 0:P.externalDocs)||void 0===f?void 0:f.description)?null===(k=null===(I=null==P?void 0:P.externalDocs)||void 0===I?void 0:I.description)||void 0===k?void 0:k.substring(0,12):"-",(null===(B=null==P?void 0:P.externalDocs)||void 0===B?void 0:B.description)&&(null===(y=null===(_=null==P?void 0:P.externalDocs)||void 0===_?void 0:_.description)||void 0===y?void 0:y.length)>12?"...":""]}):e.jsxs(s.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(s.Button,{className:t.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(n,{src:l,width:"1.125rem",height:"1.125rem"}),onClick:()=>{X(),L(""),D(!1)}}),!N&&e.jsx(s.Button,{className:t.deleteParamBtn,variant:"link",color:"success",disabled:!H,endIcon:e.jsx(n,{src:r,width:"0.125rem",height:"0.125rem"}),onClick:()=>{L(""),M()}})]})})},"tagExternal")]},""):e.jsx(e.Fragment,{children:!N&&e.jsx("tr",{"data-i":"addNew",className:"row",children:e.jsx("td",{colSpan:5,children:e.jsx(s.Button,{variant:"link",color:"primary",onClick:()=>{D((e=>!e))},children:"+ Add Tag"})})},"addNew")})]})]})})})};export{x 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 validateOnMount: true,\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 saveNewRow(values)\r\n setText('')\r\n setExternalDesc('')\r\n setExternalUrl('')\r\n resetForm()\r\n setIsFormOpen(false)\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 <a\r\n className={_styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n href={values.externalDocs?.url}\r\n target=\"_blank\"\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 </a>\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","validateOnMount","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","href","_a","target","_b","_d","_c","substring","_e","_g","_f","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 { useEffect, 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\nimport regex from '../../constants/regex'\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 validateOnMount: true,\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().trim().required('Tag name is required'),\r\n description: yup.string().optional(),\r\n externalDocs: yup\r\n .object()\r\n .shape({\r\n url: yup\r\n .string()\r\n .trim()\r\n .matches(regex.urlRegex, 'Invalid URL')\r\n .when('description', (description, schema) => {\r\n return description?.at(0)\r\n ? schema.required('URL is required when description is provided')\r\n : schema.optional()\r\n }),\r\n description: yup.string().trim().optional(),\r\n })\r\n .optional(),\r\n }),\r\n onSubmit: (values) => {\r\n saveNewRow(values)\r\n setText('')\r\n resetForm()\r\n setIsFormOpen(false)\r\n },\r\n validateOnChange: true,\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 maxLength={25}\r\n onChange={(value) => {\r\n !regex.basic.test(value) && 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 onHidden={() => {\r\n setText(values.description)\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 value={text || values.description}\r\n disabled={readOnly}\r\n maxLength={25}\r\n placeholder=\"Describe Tag...\"\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value)) setText(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('description', text?.trim())\r\n tooltipRef?.hide()\r\n }}\r\n disabled={!(text || values.description)?.trim()}\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 onHidden={() => {\r\n setExternalDesc(values.externalDocs.description)\r\n setExternalUrl(values.externalDocs.url)\r\n }}\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 maxLength={25}\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value)) setExternalDesc(value)\r\n }}\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 maxLength={200}\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value)) setExternalUrl(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(`externalDocs`, {\r\n description: externalDesc,\r\n url: externalUrl,\r\n })\r\n\r\n externalTooltipRefs?.hide()\r\n }}\r\n disabled={\r\n !(externalDesc || values.externalDocs.description)?.trim() ||\r\n !(externalUrl || values.externalDocs.url)?.trim() ||\r\n !regex.urlRegex.test(externalUrl || values.externalDocs.url)\r\n }\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly ? (\r\n <a\r\n className={_styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n href={values.externalDocs?.url}\r\n target=\"_blank\"\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 </a>\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","validateOnMount","initialValues","name","description","externalDocs","url","validationSchema","yup.object","shape","yup.string","trim","required","optional","yup\n .object","yup\n .string","matches","regex","urlRegex","when","schema","at","onSubmit","validateOnChange","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","Input","placeholder","size","type","maxLength","onChange","value","basic","test","disabled","styles","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","onHidden","content","_styles","editDescTooltipContent","editDescTooltipContent_header","TextArea","ASCII","Button","editDescTooltipContent_btn","variant","onClick","hide","_a","editDescBtn","paddingLeft","color","endIcon","SVGLoader","src","EditIcon","height","_b","_c","href","_d","target","_e","_g","_f","substring","_h","_k","_j","length","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow","_Fragment","Fragment","colSpan","prev"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const t={basic:/[^a-zA-Z0-9-_ ]/,restrictNone
|
|
1
|
+
const t={basic:/[^a-zA-Z0-9-_ ]/,restrictNone:/^$/,ASCII:/^[\x00-\x7F]+$/,urlRegex:/^(https?:\/\/)?(www\.)?([a-zA-Z0-9-]+(\.[a-zA-Z]{2,})+)(\/[^\s]*)?$/};export{t as default};
|
|
2
2
|
//# sourceMappingURL=regex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regex.js","sources":["../../../src/constants/regex.ts"],"sourcesContent":["const regex = {\r\n basic: /[^a-zA-Z0-9-_ ]/, // not (alphanumeric + underscore + dash + space)\r\n restrictNone: /^$/, // restrict nothing\r\n}\r\nexport default regex\r\n"],"names":["regex","basic","restrictNone"],"mappings":"AAAA,MAAMA,EAAQ,CACZC,MAAO,kBACPC,aAAc"}
|
|
1
|
+
{"version":3,"file":"regex.js","sources":["../../../src/constants/regex.ts"],"sourcesContent":["const regex = {\r\n basic: /[^a-zA-Z0-9-_ ]/, // not (alphanumeric + underscore + dash + space)\r\n restrictNone: /^$/, // restrict nothing\r\n ASCII: /^[\\x00-\\x7F]+$/,\r\n urlRegex: /^(https?:\\/\\/)?(www\\.)?([a-zA-Z0-9-]+(\\.[a-zA-Z]{2,})+)(\\/[^\\s]*)?$/,\r\n}\r\nexport default regex\r\n"],"names":["regex","basic","restrictNone","ASCII","urlRegex"],"mappings":"AAAA,MAAMA,EAAQ,CACZC,MAAO,kBACPC,aAAc,KACdC,MAAO,iBACPC,SAAU"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e}from"../../node_modules/tslib/tslib.es6.js";const t=e=>{var t,s,n,c,i;if(e.components&&e.components.securitySchemes){const o=null===(t=Object.keys(e.components.securitySchemes))||void 0===t?void 0:t.at(0);o&&(e.components.securitySchemes[o].type=null===(i=null===(c=null===(n=null===(s=null==e?void 0:e.components)||void 0===s?void 0:s.securitySchemes)||void 0===n?void 0:n[o])||void 0===c?void 0:c.type)||void 0===i?void 0:i.toUpperCase())}else e.components={securitySchemes:{Public:{type:"http",scheme:"public"}}};return Object.assign(Object.assign({},e),{paths:o(e.paths)})},s=e=>{var t,s,o,c,i;const r=Object.assign(Object.assign({},e),{paths:n(e.paths)});if(r.components&&r.components.securitySchemes){const e=null===(t=Object.keys(r.components.securitySchemes))||void 0===t?void 0:t.at(0);e&&(r.components.securitySchemes[e].type.toLowerCase()=="APIKEY".toLowerCase()&&(r.components.securitySchemes[e].in=r.components.securitySchemes[e].in.toUpperCase()),r.components.securitySchemes[e].type=null===(i=null===(c=null===(o=null===(s=null==r?void 0:r.components)||void 0===s?void 0:s.securitySchemes)||void 0===o?void 0:o[e])||void 0===c?void 0:c.type)||void 0===i?void 0:i.toUpperCase())}return r},o=e=>Object.entries(e).map((([e,t])=>({path:e,methods:Object.entries(t).map((([e,t])=>{var s,o,n,c,i,r;const p=Object.assign(Object.assign({},t),{type:e,tags:t.tags,responses:Object.entries(t.responses).map((([e,t])=>{var s,o,n,c,i;const r=Object.keys(t.content||{})[0];return{code:e,content:{contentType:r,schema:Object.assign(Object.assign({},null===(o=null===(s=t.content)||void 0===s?void 0:s[r])||void 0===o?void 0:o.schema),{properties:JSON.stringify(null===(i=null===(c=null===(n=t.content)||void 0===n?void 0:n[r])||void 0===c?void 0:c.schema)||void 0===i?void 0:i.properties)})}}}))});if((null==t?void 0:t.parameters)||(p.parameters=[]),"get"!=e.toLowerCase()){const e=Object.keys((null===(s=null==t?void 0:t.requestBody)||void 0===s?void 0:s.content)||{})[0],d=null===(n=null===(o=null==t?void 0:t.requestBody)||void 0===o?void 0:o.content)||void 0===n?void 0:n.schema,l=(null===(r=null===(i=null===(c=null==t?void 0:t.requestBody)||void 0===c?void 0:c.content)||void 0===i?void 0:i.schema)||void 0===r?void 0:r.properties)?{content:{contentType:e,schema:Object.assign(Object.assign({},d),{properties:(null==d?void 0:d.properties)?JSON.stringify(null==d?void 0:d.properties):"{}"})}}:{content:{contentType:"application/json",schema:{properties:"{}",type:"object"}}};p.requestBody=l}return p}))}))),n=t=>t.reduce(((t,{path:s,methods:o})=>(t[s]=o.reduce(((t,s)=>{var{type:o,tags:n,responses:c,requestBody:i}=s,r=e(s,["type","tags","responses","requestBody"]);t[o]=Object.assign(Object.assign({},r),{tags:n,responses:c.reduce(((e,{code:t,content:s})=>{var o;return e[t]={description:"Success",content:s.contentType?{[s.contentType]:{schema:Object.assign(Object.assign({},s.schema),{properties:JSON.parse(null===(o=null==s?void 0:s.schema)||void 0===o?void 0:o.properties)})}}:{}},e}),{})});const p="get"!==o?JSON.parse(i.content.schema.properties):{};return"get"!==o&&(t[o].requestBody={content:{[i.content.contentType]:{schema:Object.assign(Object.assign({},i.content.schema),{properties:p})}}}),t}),{}),t)),{});export{t as transformOpenApiObject,s as transformOpenApiObjectToOrigin,n as transformPathsArrayToOrigin,o as transformPathsToArray};
|
|
1
|
+
import{__rest as e}from"../../node_modules/tslib/tslib.es6.js";const t=e=>{var t,s,n,c,i;if(e.components&&e.components.securitySchemes){const o=null===(t=Object.keys(e.components.securitySchemes))||void 0===t?void 0:t.at(0);o&&(e.components.securitySchemes[o].type=null===(i=null===(c=null===(n=null===(s=null==e?void 0:e.components)||void 0===s?void 0:s.securitySchemes)||void 0===n?void 0:n[o])||void 0===c?void 0:c.type)||void 0===i?void 0:i.toUpperCase())}else e.components={securitySchemes:{Public:{type:"http",scheme:"public"}}};return Object.assign(Object.assign({},e),{paths:o(e.paths)})},s=e=>{var t,s,o,c,i;const r=Object.assign(Object.assign({},e),{paths:n(e.paths)});if(r.components&&r.components.securitySchemes){const e=null===(t=Object.keys(r.components.securitySchemes))||void 0===t?void 0:t.at(0);e&&(r.components.securitySchemes[e].type.toLowerCase()=="APIKEY".toLowerCase()&&(r.components.securitySchemes[e].in=r.components.securitySchemes[e].in.toUpperCase()),r.components.securitySchemes[e].type=null===(i=null===(c=null===(o=null===(s=null==r?void 0:r.components)||void 0===s?void 0:s.securitySchemes)||void 0===o?void 0:o[e])||void 0===c?void 0:c.type)||void 0===i?void 0:i.toUpperCase())}return r},o=e=>Object.entries(e).map((([e,t])=>({path:e,methods:Object.entries(t).map((([e,t])=>{var s,o,n,c,i,r;const p=Object.assign(Object.assign({},t),{type:e,tags:t.tags||[],responses:Object.entries(t.responses).map((([e,t])=>{var s,o,n,c,i;const r=Object.keys(t.content||{})[0];return{code:e,content:{contentType:r,schema:Object.assign(Object.assign({},null===(o=null===(s=t.content)||void 0===s?void 0:s[r])||void 0===o?void 0:o.schema),{properties:JSON.stringify(null===(i=null===(c=null===(n=t.content)||void 0===n?void 0:n[r])||void 0===c?void 0:c.schema)||void 0===i?void 0:i.properties)})}}}))});if((null==t?void 0:t.parameters)||(p.parameters=[]),"get"!=e.toLowerCase()){const e=Object.keys((null===(s=null==t?void 0:t.requestBody)||void 0===s?void 0:s.content)||{})[0],d=null===(n=null===(o=null==t?void 0:t.requestBody)||void 0===o?void 0:o.content)||void 0===n?void 0:n.schema,l=(null===(r=null===(i=null===(c=null==t?void 0:t.requestBody)||void 0===c?void 0:c.content)||void 0===i?void 0:i.schema)||void 0===r?void 0:r.properties)?{content:{contentType:e,schema:Object.assign(Object.assign({},d),{properties:(null==d?void 0:d.properties)?JSON.stringify(null==d?void 0:d.properties):"{}"})}}:{content:{contentType:"application/json",schema:{properties:"{}",type:"object"}}};p.requestBody=l}return p}))}))),n=t=>t.reduce(((t,{path:s,methods:o})=>(t[s]=o.reduce(((t,s)=>{var{type:o,tags:n,responses:c,requestBody:i}=s,r=e(s,["type","tags","responses","requestBody"]);t[o]=Object.assign(Object.assign({},r),{tags:n,responses:c.reduce(((e,{code:t,content:s})=>{var o;return e[t]={description:"Success",content:s.contentType?{[s.contentType]:{schema:Object.assign(Object.assign({},s.schema),{properties:JSON.parse(null===(o=null==s?void 0:s.schema)||void 0===o?void 0:o.properties)})}}:{}},e}),{})});const p="get"!==o?JSON.parse(i.content.schema.properties):{};return"get"!==o&&(t[o].requestBody={content:{[i.content.contentType]:{schema:Object.assign(Object.assign({},i.content.schema),{properties:p})}}}),t}),{}),t)),{});export{t as transformOpenApiObject,s as transformOpenApiObjectToOrigin,n as transformPathsArrayToOrigin,o as transformPathsToArray};
|
|
2
2
|
//# sourceMappingURL=layout.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.helper.js","sources":["../../../src/helpers/layout.helper.ts"],"sourcesContent":["import { TransformedPathsArray } from '@entities/layout.type'\r\nimport { OpenAPIFile, SecurityScheme } from '@entities/openApi'\r\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\r\n\r\nexport const transformOpenApiObject = (openApiJson: OpenAPIFile): TransformedOpenApi => {\r\n if (openApiJson.components && openApiJson.components.securitySchemes) {\r\n const authKey = Object.keys(openApiJson.components.securitySchemes)?.at(0)\r\n if (authKey) {\r\n openApiJson.components.securitySchemes[authKey].type =\r\n openApiJson?.components?.securitySchemes?.[\r\n authKey\r\n ]?.type?.toUpperCase() as SecurityScheme['type']\r\n }\r\n } else {\r\n openApiJson.components = {\r\n securitySchemes: {\r\n Public: {\r\n type: 'http',\r\n scheme: 'public',\r\n },\r\n },\r\n }\r\n }\r\n\r\n return {\r\n ...openApiJson,\r\n paths: transformPathsToArray(openApiJson.paths),\r\n } as TransformedOpenApi\r\n}\r\n\r\nexport const transformOpenApiObjectToOrigin = (values: TransformedOpenApi): OpenAPIFile => {\r\n const object = {\r\n ...values,\r\n paths: transformPathsArrayToOrigin(values.paths),\r\n }\r\n if (object.components && object.components.securitySchemes) {\r\n const authKey = Object.keys(object.components.securitySchemes)?.at(0)\r\n if (authKey) {\r\n if (object.components.securitySchemes[authKey].type.toLowerCase() == 'APIKEY'.toLowerCase()) {\r\n object.components.securitySchemes[authKey].in = object.components.securitySchemes[\r\n authKey\r\n ].in.toUpperCase() as SecurityScheme['in']\r\n }\r\n object.components.securitySchemes[authKey].type = object?.components?.securitySchemes?.[\r\n authKey\r\n ]?.type?.toUpperCase() as SecurityScheme['type']\r\n }\r\n }\r\n return object\r\n}\r\n\r\nexport const transformPathsToArray = (paths: OpenAPIFile['paths']): TransformedPathsArray | any => {\r\n const transformedPaths = Object.entries(paths).map(([path, methods]) => ({\r\n path,\r\n methods: Object.entries(methods).map(([method, methodProps]) => {\r\n const obj: any = {\r\n ...methodProps,\r\n type: method,\r\n tags: methodProps.tags,\r\n responses: Object.entries(methodProps.responses).map(([code, codeProps]) => {\r\n const contentType = Object.keys(codeProps.content || {})[0]\r\n return {\r\n code,\r\n content: {\r\n contentType,\r\n schema: {\r\n ...codeProps.content?.[contentType]?.schema,\r\n properties: JSON.stringify(codeProps.content?.[contentType]?.schema?.properties),\r\n },\r\n },\r\n }\r\n }),\r\n }\r\n // Add parameters if it does not exist in the original JSON\r\n if (!methodProps?.parameters) {\r\n obj.parameters = []\r\n }\r\n\r\n if (method.toLowerCase() != 'get') {\r\n const contentType = Object.keys(methodProps?.requestBody?.content || {})[0]\r\n const reqSchema = methodProps?.requestBody?.content?.schema\r\n const requestBodyData = methodProps?.requestBody?.content?.schema?.properties\r\n ? {\r\n content: {\r\n contentType,\r\n schema: {\r\n ...reqSchema,\r\n properties: reqSchema?.properties ? JSON.stringify(reqSchema?.properties) : '{}',\r\n },\r\n },\r\n }\r\n : {\r\n content: {\r\n contentType: 'application/json',\r\n schema: {\r\n properties: '{}',\r\n type: 'object',\r\n },\r\n },\r\n }\r\n\r\n obj['requestBody'] = requestBodyData\r\n }\r\n\r\n return obj\r\n }),\r\n }))\r\n return transformedPaths\r\n}\r\n\r\nexport const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenAPIFile['paths'] => {\r\n return paths.reduce((acc, { path, methods }) => {\r\n acc[path] = methods.reduce((methodAcc, { type, tags, responses, requestBody, ...rest }) => {\r\n // Initialize the method object\r\n methodAcc[type] = {\r\n ...rest,\r\n tags,\r\n responses: responses.reduce((respAcc, { code, content }) => {\r\n respAcc[code] = {\r\n description: 'Success', // Assuming this is static from the original data\r\n content: content.contentType\r\n ? {\r\n [content.contentType]: {\r\n schema: {\r\n ...(content.schema as object),\r\n properties: JSON.parse((content?.schema as any)?.properties as string),\r\n },\r\n },\r\n }\r\n : {},\r\n }\r\n return respAcc\r\n }, {} as Record<string, any>),\r\n }\r\n\r\n const parsedRequestBodyProps =\r\n type !== 'get' ? JSON.parse(requestBody.content.schema.properties) : {}\r\n // Add requestBody for non-GET methods\r\n if (type !== 'get') {\r\n methodAcc[type].requestBody = {\r\n content: {\r\n [requestBody.content.contentType]: {\r\n schema: {\r\n ...requestBody.content.schema,\r\n properties: parsedRequestBodyProps,\r\n },\r\n },\r\n },\r\n }\r\n }\r\n\r\n return methodAcc\r\n }, {} as Record<string, any>)\r\n\r\n return acc\r\n }, {} as OpenAPIFile['paths'])\r\n}\r\n"],"names":["transformOpenApiObject","openApiJson","components","securitySchemes","authKey","_a","Object","keys","at","type","_e","_d","_b","_c","toUpperCase","Public","scheme","assign","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","obj","tags","responses","code","codeProps","contentType","content","schema","properties","JSON","stringify","parameters","requestBody","reqSchema","requestBodyData","reduce","acc","methodAcc","rest","__rest","respAcc","description","parse","parsedRequestBodyProps"],"mappings":"+DAIa,MAAAA,EAA0BC,kBACrC,GAAIA,EAAYC,YAAcD,EAAYC,WAAWC,gBAAiB,CACpE,MAAMC,EAA6D,QAAnDC,EAAAC,OAAOC,KAAKN,EAAYC,WAAWC,wBAAgB,IAAAE,OAAA,EAAAA,EAAEG,GAAG,GACpEJ,IACFH,EAAYC,WAAWC,gBAAgBC,GAASK,KAGrC,QAFTC,EAEC,QAFDC,EAAwC,kBAAxCC,EAAAX,aAAW,EAAXA,EAAaC,iCAAYC,uBAAe,IAAAU,OAAA,EAAAA,EACtCT,UACD,IAAAO,OAAA,EAAAA,EAAEF,YAAM,IAAAC,OAAA,EAAAA,EAAAI,cAEd,MACCb,EAAYC,WAAa,CACvBC,gBAAiB,CACfY,OAAQ,CACNN,KAAM,OACNO,OAAQ,YAMhB,OAAOV,OACFW,OAAAX,OAAAW,OAAA,CAAA,EAAAhB,GACH,CAAAiB,MAAOC,EAAsBlB,EAAYiB,QACpB,EAGZE,EAAkCC,kBAC7C,MAAMC,EAAMhB,OAAAW,OAAAX,OAAAW,OAAA,CAAA,EACPI,GAAM,CACTH,MAAOK,EAA4BF,EAAOH,SAE5C,GAAII,EAAOpB,YAAcoB,EAAOpB,WAAWC,gBAAiB,CAC1D,MAAMC,EAAwD,QAA9CC,EAAAC,OAAOC,KAAKe,EAAOpB,WAAWC,wBAAgB,IAAAE,OAAA,EAAAA,EAAEG,GAAG,GAC/DJ,IACEkB,EAAOpB,WAAWC,gBAAgBC,GAASK,KAAKe,eAAiB,SAASA,gBAC5EF,EAAOpB,WAAWC,gBAAgBC,GAASqB,GAAKH,EAAOpB,WAAWC,gBAChEC,GACAqB,GAAGX,eAEPQ,EAAOpB,WAAWC,gBAAgBC,GAASK,KAElC,QAFyCC,EAE/C,QAF+CC,EAAmC,kBAAnCC,EAAAU,aAAA,EAAAA,EAAQpB,iCAAYC,uBAAe,IAAAU,OAAA,EAAAA,EACnFT,UACC,IAAAO,OAAA,EAAAA,EAAAF,YAAM,IAAAC,OAAA,EAAAA,EAAAI,cAEZ,CACD,OAAOQ,CAAM,EAGFH,EAAyBD,GACXZ,OAAOoB,QAAQR,GAAOS,KAAI,EAAEC,EAAMC,MAAc,CACvED,OACAC,QAASvB,OAAOoB,QAAQG,GAASF,KAAI,EAAEG,EAAQC,sBAC7C,MAAMC,
|
|
1
|
+
{"version":3,"file":"layout.helper.js","sources":["../../../src/helpers/layout.helper.ts"],"sourcesContent":["import { TransformedPathsArray } from '@entities/layout.type'\r\nimport { OpenAPIFile, SecurityScheme } from '@entities/openApi'\r\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\r\n\r\nexport const transformOpenApiObject = (openApiJson: OpenAPIFile): TransformedOpenApi => {\r\n if (openApiJson.components && openApiJson.components.securitySchemes) {\r\n const authKey = Object.keys(openApiJson.components.securitySchemes)?.at(0)\r\n if (authKey) {\r\n openApiJson.components.securitySchemes[authKey].type =\r\n openApiJson?.components?.securitySchemes?.[\r\n authKey\r\n ]?.type?.toUpperCase() as SecurityScheme['type']\r\n }\r\n } else {\r\n openApiJson.components = {\r\n securitySchemes: {\r\n Public: {\r\n type: 'http',\r\n scheme: 'public',\r\n },\r\n },\r\n }\r\n }\r\n\r\n return {\r\n ...openApiJson,\r\n paths: transformPathsToArray(openApiJson.paths),\r\n } as TransformedOpenApi\r\n}\r\n\r\nexport const transformOpenApiObjectToOrigin = (values: TransformedOpenApi): OpenAPIFile => {\r\n const object = {\r\n ...values,\r\n paths: transformPathsArrayToOrigin(values.paths),\r\n }\r\n if (object.components && object.components.securitySchemes) {\r\n const authKey = Object.keys(object.components.securitySchemes)?.at(0)\r\n if (authKey) {\r\n if (object.components.securitySchemes[authKey].type.toLowerCase() == 'APIKEY'.toLowerCase()) {\r\n object.components.securitySchemes[authKey].in = object.components.securitySchemes[\r\n authKey\r\n ].in.toUpperCase() as SecurityScheme['in']\r\n }\r\n object.components.securitySchemes[authKey].type = object?.components?.securitySchemes?.[\r\n authKey\r\n ]?.type?.toUpperCase() as SecurityScheme['type']\r\n }\r\n }\r\n return object\r\n}\r\n\r\nexport const transformPathsToArray = (paths: OpenAPIFile['paths']): TransformedPathsArray | any => {\r\n const transformedPaths = Object.entries(paths).map(([path, methods]) => ({\r\n path,\r\n methods: Object.entries(methods).map(([method, methodProps]) => {\r\n const obj: any = {\r\n ...methodProps,\r\n type: method,\r\n tags: methodProps.tags || [],\r\n responses: Object.entries(methodProps.responses).map(([code, codeProps]) => {\r\n const contentType = Object.keys(codeProps.content || {})[0]\r\n return {\r\n code,\r\n content: {\r\n contentType,\r\n schema: {\r\n ...codeProps.content?.[contentType]?.schema,\r\n properties: JSON.stringify(codeProps.content?.[contentType]?.schema?.properties),\r\n },\r\n },\r\n }\r\n }),\r\n }\r\n // Add parameters if it does not exist in the original JSON\r\n if (!methodProps?.parameters) {\r\n obj.parameters = []\r\n }\r\n\r\n if (method.toLowerCase() != 'get') {\r\n const contentType = Object.keys(methodProps?.requestBody?.content || {})[0]\r\n const reqSchema = methodProps?.requestBody?.content?.schema\r\n const requestBodyData = methodProps?.requestBody?.content?.schema?.properties\r\n ? {\r\n content: {\r\n contentType,\r\n schema: {\r\n ...reqSchema,\r\n properties: reqSchema?.properties ? JSON.stringify(reqSchema?.properties) : '{}',\r\n },\r\n },\r\n }\r\n : {\r\n content: {\r\n contentType: 'application/json',\r\n schema: {\r\n properties: '{}',\r\n type: 'object',\r\n },\r\n },\r\n }\r\n\r\n obj['requestBody'] = requestBodyData\r\n }\r\n\r\n return obj\r\n }),\r\n }))\r\n return transformedPaths\r\n}\r\n\r\nexport const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenAPIFile['paths'] => {\r\n return paths.reduce((acc, { path, methods }) => {\r\n acc[path] = methods.reduce((methodAcc, { type, tags, responses, requestBody, ...rest }) => {\r\n // Initialize the method object\r\n methodAcc[type] = {\r\n ...rest,\r\n tags,\r\n responses: responses.reduce((respAcc, { code, content }) => {\r\n respAcc[code] = {\r\n description: 'Success', // Assuming this is static from the original data\r\n content: content.contentType\r\n ? {\r\n [content.contentType]: {\r\n schema: {\r\n ...(content.schema as object),\r\n properties: JSON.parse((content?.schema as any)?.properties as string),\r\n },\r\n },\r\n }\r\n : {},\r\n }\r\n return respAcc\r\n }, {} as Record<string, any>),\r\n }\r\n\r\n const parsedRequestBodyProps =\r\n type !== 'get' ? JSON.parse(requestBody.content.schema.properties) : {}\r\n // Add requestBody for non-GET methods\r\n if (type !== 'get') {\r\n methodAcc[type].requestBody = {\r\n content: {\r\n [requestBody.content.contentType]: {\r\n schema: {\r\n ...requestBody.content.schema,\r\n properties: parsedRequestBodyProps,\r\n },\r\n },\r\n },\r\n }\r\n }\r\n\r\n return methodAcc\r\n }, {} as Record<string, any>)\r\n\r\n return acc\r\n }, {} as OpenAPIFile['paths'])\r\n}\r\n"],"names":["transformOpenApiObject","openApiJson","components","securitySchemes","authKey","_a","Object","keys","at","type","_e","_d","_b","_c","toUpperCase","Public","scheme","assign","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","obj","tags","responses","code","codeProps","contentType","content","schema","properties","JSON","stringify","parameters","requestBody","reqSchema","requestBodyData","reduce","acc","methodAcc","rest","__rest","respAcc","description","parse","parsedRequestBodyProps"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../_virtual/jsx-runtime.js";import{useEffect as o}from"react";import{d as
|
|
1
|
+
import{j as e}from"../../_virtual/jsx-runtime.js";import{useState as t,useEffect as o}from"react";import{d as s}from"../../_virtual/index.js";import i from"../components/MethodAccordion/MethodAccordion.js";import r from"./layout.module.css.js";import n from"../components/InfoForm/InfoForm.js";import a from"../components/SectionHead/SectionHead.js";import{transformOpenApiObject as l,transformOpenApiObjectToOrigin as d}from"../helpers/layout.helper.js";import m from"../components/LivePreview/LivePreview.js";import{useFormik as c,FormikProvider as u}from"../../node_modules/formik/dist/formik.esm.js";import{schemaValidation as p}from"../validator/form.scheme.js";import{methodColorMapping as h}from"../constants/index.js";import j from"../components/dialog/index.js";const v=({openApiJson:v,handleSave:x,setIsFormDirty:f})=>{const y=structuredClone(v),S=l(y),g=c({initialValues:structuredClone(S),validationSchema:p,validateOnMount:!0,onSubmit:(e,{validateForm:t,resetForm:o})=>{const s=d(e);x(s),o({values:e}),t(e)}}),[b,F]=t(!1),[N,w]=t(null);return o((()=>{f&&f(g.dirty)}),[g.dirty]),e.jsxs("div",{className:r.docsLayout,children:[g.dirty&&e.jsx(s.Alert,{className:r.apiDocAlert,color:"warning",severity:"warning",children:"There are changes you made may not be saved"}),e.jsxs("div",{className:r.layoutContainer,children:[e.jsxs("div",{className:`${r.editorSide} ${r.docSide}`,children:[e.jsx(a,{className:r.editorSectionHead,text:e.jsxs("div",{className:r.editorSectionHead_content,children:["API Information",e.jsx(s.Button,{className:r.methodForm_submitBtn,size:"medium",fullWidth:!1,type:"submit",variant:"contained",color:"primary",onClick:()=>F(!0),disabled:!g.isValid||g.isSubmitting,children:"Save"})]})}),e.jsx(u,{value:g,children:e.jsx(n,{})}),e.jsx(a,{className:r.editorSectionHead,text:"Endpoints"}),e.jsx(u,{value:g,children:g.values.paths.map(((t,o)=>e.jsx(e.Fragment,{children:t.methods.sort(((e,t)=>h[e.type].order-h[t.type].order)).map(((s,r)=>e.jsx(i,{tags:g.values.tags,method:s,path:t.path,setFieldValue:(e,t)=>{const s=`paths[${o}].methods[${r}].${e}`;g.setFieldValue(s,t)},isOpen:N===r,setIsOpen:e=>w(e?r:null)})))})))})]}),e.jsx("div",{className:`${r.livePreviewSide} ${r.docSide}`,children:S&&e.jsx(u,{value:g,children:e.jsx(m,{transformedData:S})})})]}),e.jsx(j,{status:"warning",content:e.jsx("p",{style:{textAlign:"center",fontWeight:400,fontSize:"1rem",lineHeight:"1.4375rem"},children:"Are you sure you want to Publish your changes?"}),onSubmit:{onClick:()=>{g.handleSubmit(),F(!1)},text:"Publish",color:"warning",fullWidth:!0},onCancel:{text:"Cancel",color:"normal",fullWidth:!0},onClose:()=>F(!1),open:b})]})};export{v as default};
|
|
2
2
|
//# sourceMappingURL=layout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sources":["../../../src/layout/layout.tsx"],"sourcesContent":["import { JSX, useEffect } from 'react'\r\nimport { Alert, Button } from 'digitinary-ui'\r\nimport MethodsAccordion from '../components/MethodAccordion/MethodAccordion'\r\nimport styles from './layout.module.css'\r\nimport InfoForm from '../components/InfoForm/InfoForm'\r\nimport SectionHead from '../components/SectionHead/SectionHead'\r\nimport { transformOpenApiObject, transformOpenApiObjectToOrigin } from '../helpers/layout.helper'\r\nimport { OpenAPIFile } from '../types/openApi'\r\nimport LivePreview from '../components/LivePreview/LivePreview'\r\nimport { FormikProvider, useFormik } from 'formik'\r\nimport { schemaValidation } from '../validator/form.scheme'\r\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\r\nimport { methodColorMapping } from '../constants/index'\r\n\r\ninterface ILayoutProps {\r\n openApiJson?: OpenAPIFile\r\n handleSave?: (values: unknown) => unknown\r\n setIsFormDirty?: any\r\n}\r\n\r\nconst Layout = ({ openApiJson, handleSave, setIsFormDirty }: ILayoutProps): JSX.Element => {\r\n const clonedOpenApiJson = structuredClone(openApiJson)\r\n const transformedOpenApi = transformOpenApiObject(clonedOpenApiJson)\r\n const formik = useFormik<TransformedOpenApi>({\r\n initialValues: structuredClone(transformedOpenApi),\r\n validationSchema: schemaValidation,\r\n validateOnMount: true,\r\n onSubmit: (values, { validateForm, resetForm }) => {\r\n // Handle save logic\r\n const originalOpenApiForm = transformOpenApiObjectToOrigin(values)\r\n handleSave(originalOpenApiForm)\r\n resetForm({\r\n values: values, // You can reset it to the same values if you want\r\n })\r\n\r\n validateForm(values)\r\n },\r\n })\r\n\r\n useEffect(() => {\r\n if (setIsFormDirty) {\r\n setIsFormDirty(formik.dirty)\r\n }\r\n }, [formik.dirty])\r\n\r\n return (\r\n <div className={styles.docsLayout}>\r\n <Alert className={styles.apiDocAlert} color=\"
|
|
1
|
+
{"version":3,"file":"layout.js","sources":["../../../src/layout/layout.tsx"],"sourcesContent":["import { JSX, useEffect, useState } from 'react'\r\nimport { Alert, Button } from 'digitinary-ui'\r\nimport MethodsAccordion from '../components/MethodAccordion/MethodAccordion'\r\nimport styles from './layout.module.css'\r\nimport InfoForm from '../components/InfoForm/InfoForm'\r\nimport SectionHead from '../components/SectionHead/SectionHead'\r\nimport { transformOpenApiObject, transformOpenApiObjectToOrigin } from '../helpers/layout.helper'\r\nimport { OpenAPIFile } from '../types/openApi'\r\nimport LivePreview from '../components/LivePreview/LivePreview'\r\nimport { FormikProvider, useFormik } from 'formik'\r\nimport { schemaValidation } from '../validator/form.scheme'\r\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\r\nimport { methodColorMapping } from '../constants/index'\r\nimport CommonDialog from '../components/dialog'\r\n\r\ninterface ILayoutProps {\r\n openApiJson?: OpenAPIFile\r\n handleSave?: (values: unknown) => unknown\r\n setIsFormDirty?: any\r\n}\r\n\r\nconst Layout = ({ openApiJson, handleSave, setIsFormDirty }: ILayoutProps): JSX.Element => {\r\n const clonedOpenApiJson = structuredClone(openApiJson)\r\n const transformedOpenApi = transformOpenApiObject(clonedOpenApiJson)\r\n const formik = useFormik<TransformedOpenApi>({\r\n initialValues: structuredClone(transformedOpenApi),\r\n validationSchema: schemaValidation,\r\n validateOnMount: true,\r\n onSubmit: (values, { validateForm, resetForm }) => {\r\n // Handle save logic\r\n const originalOpenApiForm = transformOpenApiObjectToOrigin(values)\r\n handleSave(originalOpenApiForm)\r\n resetForm({\r\n values: values, // You can reset it to the same values if you want\r\n })\r\n\r\n validateForm(values)\r\n },\r\n })\r\n const [isPublishDialogOpen, setIsPublishDialogOpen] = useState(false)\r\n const [openMethodIndex, setOpenMethodIndex] = useState<number | null>(null)\r\n\r\n useEffect(() => {\r\n if (setIsFormDirty) {\r\n setIsFormDirty(formik.dirty)\r\n }\r\n }, [formik.dirty])\r\n\r\n return (\r\n <div className={styles.docsLayout}>\r\n {formik.dirty && (\r\n <Alert className={styles.apiDocAlert} color=\"warning\" severity=\"warning\">\r\n There are changes you made may not be saved\r\n </Alert>\r\n )}\r\n <div className={styles.layoutContainer}>\r\n <div className={`${styles.editorSide} ${styles.docSide}`}>\r\n <SectionHead\r\n className={styles.editorSectionHead}\r\n text={\r\n <div className={styles.editorSectionHead_content}>\r\n API Information\r\n <Button\r\n className={styles.methodForm_submitBtn}\r\n size=\"medium\"\r\n fullWidth={false}\r\n type=\"submit\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n onClick={() => setIsPublishDialogOpen(true)}\r\n disabled={!formik.isValid || formik.isSubmitting}\r\n >\r\n Save\r\n </Button>\r\n </div>\r\n }\r\n />\r\n <FormikProvider value={formik}>\r\n <InfoForm />\r\n </FormikProvider>\r\n <SectionHead className={styles.editorSectionHead} text=\"Endpoints\" />\r\n <FormikProvider value={formik}>\r\n {formik.values.paths.map((path, pathIndex) => (\r\n <>\r\n {path.methods\r\n .sort(\r\n (a, b) => methodColorMapping[a.type].order - methodColorMapping[b.type].order\r\n )\r\n .map((method, methodIndex) => (\r\n <MethodsAccordion\r\n tags={formik.values.tags}\r\n method={method}\r\n path={path.path}\r\n setFieldValue={(key, value) => {\r\n const h = `paths[${pathIndex}].methods[${methodIndex}].${key}`\r\n formik.setFieldValue(h, value)\r\n }}\r\n isOpen={openMethodIndex === methodIndex}\r\n setIsOpen={(open) => setOpenMethodIndex(open ? methodIndex : null)}\r\n />\r\n ))}\r\n </>\r\n ))}\r\n </FormikProvider>\r\n </div>\r\n <div className={`${styles.livePreviewSide} ${styles.docSide}`}>\r\n {transformedOpenApi && (\r\n <FormikProvider value={formik}>\r\n <LivePreview transformedData={transformedOpenApi} />\r\n </FormikProvider>\r\n )}\r\n </div>\r\n </div>\r\n <CommonDialog\r\n status=\"warning\"\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 >\r\n Are you sure you want to Publish your changes?\r\n </p>\r\n }\r\n onSubmit={{\r\n onClick: () => {\r\n formik.handleSubmit()\r\n setIsPublishDialogOpen(false)\r\n },\r\n text: 'Publish',\r\n color: 'warning',\r\n fullWidth: true,\r\n }}\r\n onCancel={{\r\n text: 'Cancel',\r\n color: 'normal',\r\n fullWidth: true,\r\n }}\r\n onClose={() => setIsPublishDialogOpen(false)}\r\n open={isPublishDialogOpen}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default Layout\r\n"],"names":["Layout","openApiJson","handleSave","setIsFormDirty","clonedOpenApiJson","structuredClone","transformedOpenApi","transformOpenApiObject","formik","useFormik","initialValues","validationSchema","schemaValidation","validateOnMount","onSubmit","values","validateForm","resetForm","originalOpenApiForm","transformOpenApiObjectToOrigin","isPublishDialogOpen","setIsPublishDialogOpen","useState","openMethodIndex","setOpenMethodIndex","useEffect","dirty","_jsxs","jsxs","className","styles","docsLayout","children","_jsx","Alert","apiDocAlert","color","severity","layoutContainer","editorSide","docSide","SectionHead","editorSectionHead","text","editorSectionHead_content","Button","methodForm_submitBtn","size","fullWidth","type","variant","onClick","disabled","isValid","isSubmitting","FormikProvider","value","jsx","InfoForm","paths","map","path","pathIndex","_Fragment","methods","sort","a","b","methodColorMapping","order","method","methodIndex","MethodsAccordion","tags","setFieldValue","key","h","isOpen","setIsOpen","open","livePreviewSide","LivePreview","transformedData","CommonDialog","status","content","style","textAlign","fontWeight","fontSize","lineHeight","handleSubmit","onCancel","onClose"],"mappings":"mwBAqBM,MAAAA,EAAS,EAAGC,cAAaC,aAAYC,qBACzC,MAAMC,EAAoBC,gBAAgBJ,GACpCK,EAAqBC,EAAuBH,GAC5CI,EAASC,EAA8B,CAC3CC,cAAeL,gBAAgBC,GAC/BK,iBAAkBC,EAClBC,iBAAiB,EACjBC,SAAU,CAACC,GAAUC,eAAcC,gBAEjC,MAAMC,EAAsBC,EAA+BJ,GAC3Db,EAAWgB,GACXD,EAAU,CACRF,OAAQA,IAGVC,EAAaD,EAAO,KAGjBK,EAAqBC,GAA0BC,GAAS,IACxDC,EAAiBC,GAAsBF,EAAwB,MAQtE,OANAG,GAAU,KACJtB,GACFA,EAAeK,EAAOkB,MACvB,GACA,CAAClB,EAAOkB,QAGTC,EAAKC,KAAA,MAAA,CAAAC,UAAWC,EAAOC,WACpBC,SAAA,CAAAxB,EAAOkB,OACNO,EAAAA,IAACC,EAAAA,MAAM,CAAAL,UAAWC,EAAOK,YAAaC,MAAM,UAAUC,SAAS,UAEvDL,SAAA,gDAEVL,EAAAC,KAAA,MAAA,CAAKC,UAAWC,EAAOQ,gBAAeN,SAAA,CACpCL,cAAKE,UAAW,GAAGC,EAAOS,cAAcT,EAAOU,UAC7CR,SAAA,CAAAC,EAAAA,IAACQ,EAAW,CACVZ,UAAWC,EAAOY,kBAClBC,KACEhB,EAAAA,KAAA,MAAA,CAAKE,UAAWC,EAAOc,sDAErBX,EAAAA,IAACY,EAAAA,QACChB,UAAWC,EAAOgB,qBAClBC,KAAK,SACLC,WAAW,EACXC,KAAK,SACLC,QAAQ,YACRd,MAAM,UACNe,QAAS,IAAM9B,GAAuB,GACtC+B,UAAW5C,EAAO6C,SAAW7C,EAAO8C,aAAYtB,SAAA,cAOxDC,MAACsB,EAAc,CAACC,MAAOhD,WACrByB,EAACwB,IAAAC,EAAW,CAAA,KAEdzB,EAAAA,IAACQ,GAAYZ,UAAWC,EAAOY,kBAAmBC,KAAK,cACvDV,EAACwB,IAAAF,GAAeC,MAAOhD,EAAMwB,SAC1BxB,EAAOO,OAAO4C,MAAMC,KAAI,CAACC,EAAMC,IAC9B7B,EAAAA,IACG8B,EAAAA,SAAA,CAAA/B,SAAA6B,EAAKG,QACHC,MACC,CAACC,EAAGC,IAAMC,EAAmBF,EAAEjB,MAAMoB,MAAQD,EAAmBD,EAAElB,MAAMoB,QAEzET,KAAI,CAACU,EAAQC,IACZtC,EAAAA,IAACuC,EACC,CAAAC,KAAMjE,EAAOO,OAAO0D,KACpBH,OAAQA,EACRT,KAAMA,EAAKA,KACXa,cAAe,CAACC,EAAKnB,KACnB,MAAMoB,EAAI,SAASd,cAAsBS,MAAgBI,IACzDnE,EAAOkE,cAAcE,EAAGpB,EAAM,EAEhCqB,OAAQtD,IAAoBgD,EAC5BO,UAAYC,GAASvD,EAAmBuD,EAAOR,EAAc,mBAO3EtC,EAAAA,IAAK,MAAA,CAAAJ,UAAW,GAAGC,EAAOkD,mBAAmBlD,EAAOU,mBACjDlC,GACC2B,MAACsB,EAAe,CAAAC,MAAOhD,EAAMwB,SAC3BC,EAAAA,IAACgD,EAAW,CAACC,gBAAiB5E,WAKtC2B,EAAAA,IAACkD,EACC,CAAAC,OAAO,UACPC,QACEpD,EAAAA,IAAA,IAAA,CACEqD,MAAO,CACLC,UAAW,SACXC,WAAY,IACZC,SAAU,OACVC,WAAY,aAIZ1D,SAAA,mDAENlB,SAAU,CACRqC,QAAS,KACP3C,EAAOmF,eACPtE,GAAuB,EAAM,EAE/BsB,KAAM,UACNP,MAAO,UACPY,WAAW,GAEb4C,SAAU,CACRjD,KAAM,SACNP,MAAO,SACPY,WAAW,GAEb6C,QAAS,IAAMxE,GAAuB,GACtC0D,KAAM3D,MAGX"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"../../node_modules/style-inject/dist/style-inject.es.js";var o={docsLayout:"layout-module_docsLayout__vDeK7",apiDocAlert:"layout-module_apiDocAlert__cSDp2",layoutContainer:"layout-module_layoutContainer__qBWib",editorSide:"layout-module_editorSide__hWc6O",editorSectionHead:"layout-module_editorSectionHead__chDdH",editorSectionHead_content:"layout-module_editorSectionHead_content__DQa6a",livePreviewSide:"layout-module_livePreviewSide__Q5HsZ",docSide:"layout-module_docSide__qLt4E"};e(".layout-module_docsLayout__vDeK7{display:flex;flex-direction:column;height:100vh;max-height:100%;overflow:hidden;.layout-module_apiDocAlert__cSDp2{border-radius:0}.layout-module_layoutContainer__qBWib{display:grid;grid-template-columns:60% 40%;height:100%;max-height:100%;max-width:100%;overflow:hidden;width:100%;.layout-module_editorSide__hWc6O{background-color:#fff;padding-bottom:1.25rem;.layout-module_editorSectionHead__chDdH{span{width:100%}.layout-module_editorSectionHead_content__DQa6a{align-items:center;display:flex;justify-content:space-between;button{width:6.25rem}}}}.layout-module_livePreviewSide__Q5HsZ{background-color:#f8f9fb;padding:1.25rem 1.875rem}.layout-module_docSide__qLt4E{max-height:100%;overflow-x:clip;overflow-y:overlay;scroll-behavior:smooth}}}");export{o as default};
|
|
1
|
+
import e from"../../node_modules/style-inject/dist/style-inject.es.js";var o={docsLayout:"layout-module_docsLayout__vDeK7",apiDocAlert:"layout-module_apiDocAlert__cSDp2",layoutContainer:"layout-module_layoutContainer__qBWib",editorSide:"layout-module_editorSide__hWc6O",editorSectionHead:"layout-module_editorSectionHead__chDdH",editorSectionHead_content:"layout-module_editorSectionHead_content__DQa6a",livePreviewSide:"layout-module_livePreviewSide__Q5HsZ",docSide:"layout-module_docSide__qLt4E"};e(".layout-module_docsLayout__vDeK7{display:flex;flex-direction:column;height:100vh;max-height:100%;overflow:hidden;.layout-module_apiDocAlert__cSDp2{border-radius:0;z-index:3}.layout-module_layoutContainer__qBWib{display:grid;grid-template-columns:60% 40%;height:100%;max-height:100%;max-width:100%;overflow:hidden;width:100%;.layout-module_editorSide__hWc6O{background-color:#fff;padding-bottom:1.25rem;.layout-module_editorSectionHead__chDdH{span{width:100%}.layout-module_editorSectionHead_content__DQa6a{align-items:center;display:flex;justify-content:space-between;button{width:6.25rem}}}}.layout-module_livePreviewSide__Q5HsZ{background-color:#f8f9fb;padding:1.25rem 1.875rem}.layout-module_docSide__qLt4E{max-height:100%;overflow-x:clip;overflow-y:overlay;scroll-behavior:smooth}}.textArea .inputField{padding-inline-end:2.5rem}}");export{o as default};
|
|
2
2
|
//# sourceMappingURL=layout.module.css.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{object as e,string as
|
|
1
|
+
import{object as e,string as i,array as o,mixed as r,lazy as t}from"../../node_modules/yup/index.esm.js";const s=e({openapi:i().required(),info:e({title:i().trim().required("API Name is required."),description:i().trim().required(),version:i().required("API Version is required")}).required(),servers:o(e({url:i().url().required(),description:i().optional()})).optional(),paths:r().required(),components:e({schemas:t((s=>e(s?Object.keys(s).reduce(((s,a)=>(s[a]=e({type:i().optional(),format:i().optional(),properties:t((i=>e(i?Object.keys(i).reduce(((e,i)=>(e[i]=r(),e)),{}):{}))).optional(),items:r().optional(),enum:o(i()).optional(),required:o(i()).optional()}),s)),{}):{}))).optional(),securitySchemes:e().optional()}).optional(),security:o(e().shape({schemeName:o(i()).optional()})).optional(),tags:o(e({name:i().required(),description:i().optional()})).optional()});export{s as schemaValidation};
|
|
2
2
|
//# sourceMappingURL=form.scheme.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.scheme.js","sources":["../../../src/validator/form.scheme.ts"],"sourcesContent":["import * as yup from
|
|
1
|
+
{"version":3,"file":"form.scheme.js","sources":["../../../src/validator/form.scheme.ts"],"sourcesContent":["import * as yup from 'yup'\r\nexport const schemaValidation = yup.object({\r\n openapi: yup.string().required(),\r\n info: yup\r\n .object({\r\n title: yup.string().trim().required('API Name is required.'),\r\n description: yup.string().trim().required(),\r\n version: yup.string().required('API Version is required'),\r\n })\r\n .required(),\r\n servers: yup\r\n .array(\r\n yup.object({\r\n url: yup.string().url().required(),\r\n description: yup.string().optional(),\r\n })\r\n )\r\n .optional(),\r\n paths: yup.mixed().required(), // Assuming TransformedPathsArray is validated elsewhere\r\n components: yup\r\n .object({\r\n schemas: yup\r\n .lazy((value) =>\r\n yup.object(\r\n value\r\n ? Object.keys(value).reduce((acc, key) => {\r\n acc[key] = yup.object({\r\n type: yup.string().optional(),\r\n format: yup.string().optional(),\r\n properties: yup\r\n .lazy((props) =>\r\n yup.object(\r\n props\r\n ? Object.keys(props).reduce((acc, propKey) => {\r\n acc[propKey] = yup.mixed()\r\n return acc\r\n }, {})\r\n : {}\r\n )\r\n )\r\n .optional(),\r\n items: yup.mixed().optional(),\r\n enum: yup.array(yup.string()).optional(),\r\n required: yup.array(yup.string()).optional(),\r\n })\r\n return acc\r\n }, {})\r\n : {}\r\n )\r\n )\r\n .optional(),\r\n securitySchemes: yup.object().optional(),\r\n })\r\n .optional(),\r\n security: yup\r\n .array(\r\n yup.object().shape({\r\n schemeName: yup.array(yup.string()).optional(),\r\n })\r\n )\r\n .optional(),\r\n tags: yup\r\n .array(\r\n yup.object({\r\n name: yup.string().required(),\r\n description: yup.string().optional(),\r\n })\r\n )\r\n .optional(),\r\n})\r\n"],"names":["schemaValidation","yup.object","openapi","yup.string","required","info","yup\n .object","title","trim","description","version","servers","yup\n .array","url","optional","paths","yup.mixed","components","schemas","yup\n .lazy","value","Object","keys","reduce","acc","key","type","format","properties","yup\n .lazy","props","propKey","items","enum","yup.array","securitySchemes","security","shape","schemeName","tags","name"],"mappings":"yGACa,MAAAA,EAAmBC,EAAW,CACzCC,QAASC,IAAaC,WACtBC,KAAMC,EACI,CACNC,MAAOJ,IAAaK,OAAOJ,SAAS,yBACpCK,YAAaN,IAAaK,OAAOJ,WACjCM,QAASP,IAAaC,SAAS,6BAEhCA,WACHO,QAASC,EAELX,EAAW,CACTY,IAAKV,IAAaU,MAAMT,WACxBK,YAAaN,IAAaW,cAG7BA,WACHC,MAAOC,IAAYZ,WACnBa,WAAYX,EACF,CACNY,QAASC,GACAC,GACLnB,EACEmB,EACIC,OAAOC,KAAKF,GAAOG,QAAO,CAACC,EAAKC,KAC9BD,EAAIC,GAAOxB,EAAW,CACpByB,KAAMvB,IAAaW,WACnBa,OAAQxB,IAAaW,WACrBc,WAAYC,GACHC,GACL7B,EACE6B,EACIT,OAAOC,KAAKQ,GAAOP,QAAO,CAACC,EAAKO,KAC9BP,EAAIO,GAAWf,IACRQ,IACN,IACH,CAAA,KAGPV,WACHkB,MAAOhB,IAAYF,WACnBmB,KAAMC,EAAU/B,KAAcW,WAC9BV,SAAU8B,EAAU/B,KAAcW,aAE7BU,IACN,IACH,CAAA,KAGPV,WACHqB,gBAAiBlC,IAAaa,aAE/BA,WACHsB,SAAUxB,EAENX,IAAaoC,MAAM,CACjBC,WAAYJ,EAAU/B,KAAcW,cAGvCA,WACHyB,KAAM3B,EAEFX,EAAW,CACTuC,KAAMrC,IAAaC,WACnBK,YAAaN,IAAaW,cAG7BA"}
|