@digi-frontend/dgate-api-documentation 1.0.57 → 1.0.60
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/_virtual/index4.js +1 -1
- package/dist/_virtual/index5.js +1 -1
- package/dist/_virtual/index6.js +1 -1
- package/dist/_virtual/index7.js +1 -1
- package/dist/node_modules/digitinary-ui/dist/index.js.map +1 -1
- package/dist/node_modules/highlight.js/lib/core.js.map +1 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.js +1 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -1
- package/dist/node_modules/react-fast-compare/index.js +1 -1
- package/dist/node_modules/react-fast-compare/index.js.map +1 -1
- package/dist/node_modules/react-property/lib/index.js.map +1 -1
- package/dist/node_modules/toposort/index.js +1 -1
- package/dist/node_modules/yup/index.esm.js +1 -1
- package/dist/node_modules/yup/index.esm.js.map +1 -1
- 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.map +1 -1
- package/dist/src/components/LivePreview/LivePreview.js.map +1 -1
- package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
- package/dist/src/components/SVGLoader/SVGLoader.js.map +1 -1
- package/dist/src/components/SectionHead/SectionHead.js.map +1 -1
- package/dist/src/components/SimpleLabelValue/SimpleLabelValue.js.map +1 -1
- package/dist/src/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/src/components/dialog/index.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.map +1 -1
- package/dist/src/context/SectionToggleContext.js +2 -0
- package/dist/src/context/SectionToggleContext.js.map +1 -0
- package/dist/src/helpers/docs.helper.js +1 -1
- package/dist/src/helpers/docs.helper.js.map +1 -1
- package/dist/src/helpers/layout.helper.js.map +1 -1
- package/dist/src/layout/docsComponents/Codebox/Codebox.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsAside/DocsAside.js +1 -1
- package/dist/src/layout/docsComponents/DocsAside/DocsAside.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsContent/DocsContent.js +1 -1
- package/dist/src/layout/docsComponents/DocsContent/DocsContent.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsContent/EndpointPage/index.js +1 -1
- package/dist/src/layout/docsComponents/DocsContent/EndpointPage/index.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsContent/OverviewPage/index.js +1 -1
- package/dist/src/layout/docsComponents/DocsContent/OverviewPage/index.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js +1 -1
- package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js.map +1 -1
- package/dist/src/layout/docsLayout.js +1 -1
- package/dist/src/layout/docsLayout.js.map +1 -1
- package/dist/src/layout/layout.js +1 -1
- package/dist/src/layout/layout.js.map +1 -1
- package/dist/src/utils/index.js +1 -1
- package/dist/src/utils/index.js.map +1 -1
- package/dist/styles.css +753 -753
- package/dist/types/context/SectionToggleContext.d.ts +37 -0
- package/dist/types/layout/docsComponents/DocsContent/DocsContent.d.ts +2 -3
- package/dist/types/layout/docsComponents/DocsContent/EndpointPage/index.d.ts +4 -2
- package/dist/types/layout/docsComponents/DocsContent/OverviewPage/index.d.ts +2 -2
- package/dist/types/layout/docsComponents/DocsHeader/DocsHeader.d.ts +5 -2
- package/dist/types/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.d.ts +3 -4
- package/dist/types/layout/docsLayout.d.ts +1 -6
- package/dist/types/types/docsLayout.type.d.ts +7 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/package.json +1 -1
- package/src/components/InfoForm/InfoForm.tsx +2 -1
- package/src/components/table/table.tsx +1 -3
- package/src/context/SectionToggleContext.tsx +121 -0
- package/src/helpers/docs.helper.ts +1 -1
- package/src/layout/docsComponents/DocsAside/DocsAside.tsx +3 -3
- package/src/layout/docsComponents/DocsAside/style.module.scss +3 -3
- package/src/layout/docsComponents/DocsContent/DocsContent.tsx +18 -7
- package/src/layout/docsComponents/DocsContent/EndpointPage/index.tsx +46 -10
- package/src/layout/docsComponents/DocsContent/OverviewPage/index.tsx +37 -30
- package/src/layout/docsComponents/DocsHeader/DocsHeader.tsx +4 -3
- package/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.tsx +68 -44
- package/src/layout/docsLayout.tsx +35 -96
- package/src/layout/layout.tsx +1 -0
- package/src/types/docsLayout.type.ts +7 -0
- package/src/utils/index.ts +5 -0
- package/the_npm_commands.sh +12 -0
- package/variables.txt +4 -0
- package/dist/src/layout/docsComponents/DocsContent/TagPage/index.js +0 -2
- package/dist/src/layout/docsComponents/DocsContent/TagPage/index.js.map +0 -1
- package/dist/types/layout/docsComponents/DocsContent/TagPage/index.d.ts +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport './style.scss'\nimport { Button, Input, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\nimport Tooltip from '../Tooltip/Tooltip'\nimport SVGLoader from '../SVGLoader/SVGLoader'\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\nimport PlusIcon from '../../assets/icons/Plus.svg'\nimport PlusSquare from '../../assets/icons/PlusSquare.svg'\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\nimport { useFormik } from 'formik'\nimport * as yup from 'yup'\nimport { capitalize } from '../../helpers/methodAccordion.helper'\nimport regex from '../../constants/regex'\n\nconst ParamterTable = ({\n id,\n headCells,\n data,\n isFormOpen,\n setIsFormOpen,\n saveNewRow,\n readOnly,\n isRequest = true,\n}) => {\n const [text, setText] = useState('')\n const [tooltipRef, setTooltipRef] = useState(null)\n const [tooltipEnumRef, setTooltipEnumRef] = useState(null)\n const [enumFields, setEnumFields] = useState<string[]>([])\n const { values, errors, setFieldValue, isValid, submitForm, resetForm } = useFormik({\n validateOnMount: true,\n initialValues: {\n name: '',\n in: isRequest ? 'query' : 'header',\n schema: {\n type: 'string',\n enum: [],\n items: {\n type: 'string',\n },\n },\n required: true,\n description: '',\n },\n validationSchema: yup.object().shape({\n name: yup.string().default('').trim().required('Parameter name is required'),\n in: yup.string().required('Paramter type is required'),\n schema: yup.object().shape({\n type: yup.string().required('Parameter schema type is required'),\n enum: yup.array(yup.string()).optional(),\n items: yup.object().shape({\n type: yup.string().optional(),\n }),\n }),\n required: yup.boolean().when('in', {\n is: 'path',\n then: (schema) => schema.oneOf([true], 'Path parameters must be required.'),\n otherwise: (schema) => schema.optional(),\n }),\n description: yup.string().default('').trim().optional(),\n }),\n onSubmit: (values) => {\n if (values && !values?.schema?.items?.type) {\n delete values?.schema?.items?.type\n }\n saveNewRow(values)\n setIsFormOpen(undefined)\n setText('')\n resetForm()\n },\n })\n\n return (\n <div className=\"tableSectionContainer\">\n <div className=\"tableContainer\">\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\n <thead className=\"tableHead\">\n <tr>\n {headCells?.map((headCell) => (\n <th\n key={headCell.id}\n className={`tableHeadCell ${headCell.classes || ''}`}\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\n >\n <div\n className=\"headContainer\"\n data-id={`${\n typeof headCell.label === 'string'\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\n : 'UNKNOWN_LABEL'\n }_COLUMN`}\n >\n {headCell.label}\n </div>\n </th>\n ))}\n </tr>\n </thead>\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\n {data?.map((row, rowIndex) => {\n return (\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\n {headCells?.map((headCell) => {\n const cellContent = row[headCell.id] !== '_' && (\n <div\n data-id=\"TEXT_DESCRIPTION\"\n className=\"tableData\"\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {row[headCell.id]}\n </div>\n )\n\n return (\n <td\n key={headCell.id}\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {cellContent}\n </td>\n )\n })}\n </tr>\n )\n })}\n {data?.length === 0 && readOnly && (\n <tr className=\"fallbackTableRow\">\n <td className=\"fallbackContainer\" colSpan={headCells?.length}>\n <div className=\"fallbackTextContainer\">\n <span className=\"fallbackText\"> No Data Available</span>\n </div>\n </td>\n </tr>\n )}\n\n {isFormOpen && !readOnly ? (\n <tr className={`row`}>\n <td key={'Parameter name'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <Input\n placeholder=\"Parameter name\"\n size=\"large\"\n type=\"text\"\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value as string))\n setFieldValue('name', value)\n }}\n value={values.name}\n disabled={readOnly}\n />\n </div>\n </td>\n\n <td key={'parameter in'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <SelectGroupV2\n disabled={readOnly}\n value={{\n label: capitalize(values.in),\n value: values.in,\n }}\n onChange={(item) => {\n setFieldValue('in', item?.value?.toLowerCase())\n if (item?.value == 'in') {\n setFieldValue('required', true)\n }\n }} // Updates state on selection\n options={[\n {\n list: isRequest\n ? [\n { label: 'Query', value: 'query' },\n { label: 'Header', value: 'header' },\n { label: 'Path', value: 'path' },\n { label: 'Body', value: 'body' },\n ]\n : [{ label: 'Header', value: 'header' }],\n },\n ]}\n errorMsg={!!errors.in && errors.in}\n isMultiple={false}\n withSearch={false}\n clearable={false}\n />{' '}\n </div>\n </td>\n\n <td key={'parameter schema type'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData select-inputs\">\n <SelectGroupV2\n disabled={readOnly}\n clearable={false}\n value={{\n label: capitalize(values?.schema?.type),\n value: values?.schema?.type,\n }}\n errorMsg={!!errors.schema && errors.schema}\n onChange={(item) => setFieldValue('schema.type', item?.value?.toLowerCase())} // Updates state on selection\n options={[\n {\n list: [\n { label: 'String', value: 'string' },\n { label: 'Integer', value: 'integer' },\n { label: 'Boolean', value: 'boolean' },\n { label: 'Object', value: 'object' },\n { label: 'Array', value: 'array' },\n { label: 'Number', value: 'number' },\n ],\n },\n ]}\n isMultiple={false}\n withSearch={false}\n />{' '}\n {!!values?.schema?.type && values?.schema?.type.toLowerCase() === 'array' ? (\n <SelectGroupV2\n disabled={readOnly}\n clearable={false}\n value={{\n label: capitalize(values?.schema?.items?.type),\n value: values.schema?.items?.type,\n }}\n errorMsg={!!errors?.schema?.items?.type && errors?.schema?.items?.type}\n onChange={(item) =>\n setFieldValue('schema.items.type', item?.value?.toLowerCase())\n } // Updates state on selection\n options={[\n {\n list: [\n { label: 'String', value: 'string' },\n { label: 'Integer', value: 'integer' },\n { label: 'Boolean', value: 'boolean' },\n { label: 'Object', value: 'object' },\n { label: 'Array', value: 'array' },\n { label: 'Number', value: 'number' },\n ],\n },\n ]}\n isMultiple={false}\n withSearch={false}\n />\n ) : (\n ''\n )}\n </div>\n </td>\n\n <td key={'parameter enum'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n {values?.schema &&\n values?.schema?.type?.toLowerCase() != 'array' &&\n values?.schema?.type?.toLowerCase() != 'object' ? (\n <Tooltip\n disabled={\n values?.schema?.type?.toLowerCase() == 'array' ||\n values?.schema?.type?.toLowerCase() == 'object'\n }\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipEnumRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Enum</p>\n {!!values?.schema?.enum &&\n !!values?.schema?.enum.length &&\n values?.schema?.enum?.map((item, index) => (\n <Input\n key={index}\n className={'methodDescForEnum'}\n required\n clearable={false}\n placeholder=\"Enter Enum value...\"\n value={item}\n onChange={(value) => {\n setFieldValue(`schema.enum[${index}]`, value)\n }}\n />\n ))}\n {enumFields &&\n enumFields?.map((item, index) => (\n <Input\n key={index}\n className={'methodDescForEnum'}\n required\n clearable={false}\n placeholder={`Enter Enum value...`}\n value={item}\n onChange={(value) => {\n let _values = [...enumFields]\n _values[index] = value\n setEnumFields(_values)\n }}\n />\n ))}\n <p\n className={'addEnumButton'}\n onClick={() => {\n setEnumFields((prev) => [...prev, ''])\n }}\n >\n <SVGLoader src={PlusSquare} />\n Add New Enum\n </p>\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n type=\"button\"\n onClick={() => {\n setFieldValue('schema.enum', [\n ...values?.schema?.enum,\n ...enumFields,\n ])\n setEnumFields([])\n tooltipEnumRef?.hide()\n }}\n disabled={\n (enumFields.length > 0 &&\n enumFields?.filter((item) => !item).length) ||\n (values?.schema?.enum.length > 0 &&\n values?.schema?.enum?.filter((item) => !item).length)\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n <Button\n className={styles.editDescBtn}\n id=\"EnumButton\"\n variant=\"link\"\n color=\"action\"\n endIcon={\n <SVGLoader\n id=\"enumIcon\"\n src={PlusIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n />\n }\n >\n Add\n </Button>\n </Tooltip>\n ) : (\n '-'\n )}{' '}\n </div>\n </td>\n\n <td key={'parameter required'}>\n <div data-id=\"is required\" className=\"tableData\">\n {readOnly ? (\n <>{values.required ? 'True' : 'False'}</>\n ) : (\n <Switch\n checked={\n values && values.in && values.in.toLowerCase() == 'path'\n ? true\n : values.required\n }\n disabled={values && values.in && values.in.toLowerCase() == 'path'}\n onClick={() => {\n if (readOnly) {\n return\n }\n setFieldValue('required', !values.required)\n }}\n />\n )}\n </div>\n </td>\n\n <td key={'parameter schema desc'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <div className={styles.paramDescContainer}>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n value={text || values.description}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setText(value)\n }}\n disabled={readOnly}\n placeholder=\"Describe parameter...\"\n maxLength={120}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue('description', text?.trim())\n tooltipRef?.hide()\n }}\n disabled={text?.trim() === ''}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} Description\n </Button>\n </Tooltip>\n\n <div className={styles.paramDescContainer_separator}></div>\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\n }\n onClick={() => {\n resetForm()\n setText('')\n setIsFormOpen(undefined)\n }} // Correctly delete the new row\n />\n )}\n\n {!readOnly && (\n <Tooltip\n disabled={!!values.name.trim()}\n content={`Parameter name can't be empty `}\n >\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"success\"\n disabled={!values.name.trim()}\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\n onClick={() => {\n setText('')\n submitForm()\n }} // Save the new row when clicked\n />\n </Tooltip>\n )}\n </div>{' '}\n </div>\n </td>\n </tr>\n ) : (\n <>\n {!readOnly && (\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\n <td colSpan={5}>\n <Button\n variant=\"link\"\n color=\"primary\"\n onClick={() => {\n setIsFormOpen((prev) => (!prev ? (isRequest ? 'Req' : 'Res') : undefined))\n }}\n >\n + Add Parameter\n </Button>\n </td>\n </tr>\n )}\n </>\n )}\n </tbody>\n </table>\n </div>\n </div>\n )\n}\n\nexport default ParamterTable\n"],"names":["ParamterTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","isRequest","text","setText","useState","tooltipRef","setTooltipRef","tooltipEnumRef","setTooltipEnumRef","enumFields","setEnumFields","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","validateOnMount","initialValues","name","in","schema","type","enum","items","required","description","validationSchema","yup.object","shape","yup.string","default","trim","yup.array","optional","yup.boolean","when","is","then","oneOf","otherwise","onSubmit","_b","_a","_d","_c","undefined","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","length","colSpan","Input","placeholder","size","onChange","value","regex","ASCII","test","disabled","SelectGroupV2","capitalize","item","toLowerCase","options","list","errorMsg","isMultiple","withSearch","clearable","_f","_e","_g","_h","_k","_j","_m","_l","_p","_o","_q","Tooltip","_t","_s","_u","_v","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","styles","editDescTooltipContent","editDescTooltipContent_header","_w","_x","_z","_y","index","_values","onClick","prev","SVGLoader","src","PlusSquare","Button","editDescTooltipContent_btn","variant","hide","filter","_0","_2","_1","editDescBtn","color","endIcon","PlusIcon","height","Switch","checked","paramDescContainer","TextArea","maxLength","EditIcon","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.js","sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport './style.scss'\nimport { Button, Input, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\nimport Tooltip from '../Tooltip/Tooltip'\nimport SVGLoader from '../SVGLoader/SVGLoader'\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\nimport PlusIcon from '../../assets/icons/Plus.svg'\nimport PlusSquare from '../../assets/icons/PlusSquare.svg'\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\nimport { useFormik } from 'formik'\nimport * as yup from 'yup'\nimport { capitalize } from '../../helpers/methodAccordion.helper'\nimport regex from '../../constants/regex'\n\nconst ParamterTable = ({\n id,\n headCells,\n data,\n isFormOpen,\n setIsFormOpen,\n saveNewRow,\n readOnly,\n isRequest = true,\n}) => {\n const [text, setText] = useState('')\n const [tooltipRef, setTooltipRef] = useState(null)\n const [tooltipEnumRef, setTooltipEnumRef] = useState(null)\n const [enumFields, setEnumFields] = useState<string[]>([])\n const { values, errors, setFieldValue, isValid, submitForm, resetForm } = useFormik({\n validateOnMount: true,\n initialValues: {\n name: '',\n in: isRequest ? 'query' : 'header',\n schema: {\n type: 'string',\n enum: [],\n items: {\n type: 'string',\n },\n },\n required: true,\n description: '',\n },\n validationSchema: yup.object().shape({\n name: yup.string().default('').trim().required('Parameter name is required'),\n in: yup.string().required('Paramter type is required'),\n schema: yup.object().shape({\n type: yup.string().required('Parameter schema type is required'),\n enum: yup.array(yup.string()).optional(),\n items: yup.object().shape({\n type: yup.string().optional(),\n }),\n }),\n required: yup.boolean().when('in', {\n is: 'path',\n then: (schema) => schema.oneOf([true], 'Path parameters must be required.'),\n otherwise: (schema) => schema.optional(),\n }),\n description: yup.string().default('').trim().optional(),\n }),\n onSubmit: (values) => {\n if (values && !values?.schema?.items?.type) {\n delete values?.schema?.items?.type\n }\n saveNewRow(values)\n setIsFormOpen(undefined)\n setText('')\n resetForm()\n },\n })\n\n return (\n <div className=\"tableSectionContainer\">\n <div className=\"tableContainer\">\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\n <thead className=\"tableHead\">\n <tr>\n {headCells?.map((headCell) => (\n <th\n key={headCell.id}\n className={`tableHeadCell ${headCell.classes || ''}`}\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\n >\n <div\n className=\"headContainer\"\n data-id={`${\n typeof headCell.label === 'string'\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\n : 'UNKNOWN_LABEL'\n }_COLUMN`}\n >\n {headCell.label}\n </div>\n </th>\n ))}\n </tr>\n </thead>\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\n {data?.map((row, rowIndex) => {\n return (\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\n {headCells?.map((headCell) => {\n const cellContent = row[headCell.id] !== '_' && (\n <div\n data-id=\"TEXT_DESCRIPTION\"\n className=\"tableData\"\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {row[headCell.id]}\n </div>\n )\n\n return (\n <td\n key={headCell.id}\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {cellContent}\n </td>\n )\n })}\n </tr>\n )\n })}\n {data?.length === 0 && readOnly && (\n <tr className=\"fallbackTableRow\">\n <td className=\"fallbackContainer\" colSpan={headCells?.length}>\n <div className=\"fallbackTextContainer\">\n <span className=\"fallbackText\"> No Data Available</span>\n </div>\n </td>\n </tr>\n )}\n\n {isFormOpen && !readOnly ? (\n <tr className={`row`}>\n <td key={'Parameter name'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <Input\n placeholder=\"Parameter name\"\n size=\"large\"\n type=\"text\"\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value as string))\n setFieldValue('name', value)\n }}\n value={values.name}\n disabled={readOnly}\n />\n </div>\n </td>\n\n <td key={'parameter in'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <SelectGroupV2\n disabled={readOnly}\n value={{\n label: capitalize(values.in),\n value: values.in,\n }}\n onChange={(item) => {\n setFieldValue('in', item?.value?.toLowerCase())\n if (item?.value == 'in') {\n setFieldValue('required', true)\n }\n }} // Updates state on selection\n options={[\n {\n list: isRequest\n ? [\n { label: 'Query', value: 'query' },\n { label: 'Header', value: 'header' },\n { label: 'Path', value: 'path' },\n { label: 'Body', value: 'body' },\n ]\n : [{ label: 'Header', value: 'header' }],\n },\n ]}\n errorMsg={!!errors.in && errors.in}\n isMultiple={false}\n withSearch={false}\n clearable={false}\n />{' '}\n </div>\n </td>\n\n <td key={'parameter schema type'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData select-inputs\">\n <SelectGroupV2\n disabled={readOnly}\n clearable={false}\n value={{\n label: capitalize(values?.schema?.type),\n value: values?.schema?.type,\n }}\n errorMsg={!!errors.schema && errors.schema}\n onChange={(item) => setFieldValue('schema.type', item?.value?.toLowerCase())} // Updates state on selection\n options={[\n {\n list: [\n { label: 'String', value: 'string' },\n { label: 'Integer', value: 'integer' },\n { label: 'Boolean', value: 'boolean' },\n { label: 'Object', value: 'object' },\n { label: 'Array', value: 'array' },\n { label: 'Number', value: 'number' },\n ],\n },\n ]}\n isMultiple={false}\n withSearch={false}\n />{' '}\n {!!values?.schema?.type && values?.schema?.type.toLowerCase() === 'array' ? (\n <SelectGroupV2\n disabled={readOnly}\n clearable={false}\n value={{\n label: capitalize(values?.schema?.items?.type),\n value: values.schema?.items?.type,\n }}\n errorMsg={!!errors?.schema?.items?.type && errors?.schema?.items?.type}\n onChange={(item) =>\n setFieldValue('schema.items.type', item?.value?.toLowerCase())\n } // Updates state on selection\n options={[\n {\n list: [\n { label: 'String', value: 'string' },\n { label: 'Integer', value: 'integer' },\n { label: 'Boolean', value: 'boolean' },\n { label: 'Object', value: 'object' },\n { label: 'Array', value: 'array' },\n { label: 'Number', value: 'number' },\n ],\n },\n ]}\n isMultiple={false}\n withSearch={false}\n />\n ) : (\n ''\n )}\n </div>\n </td>\n\n <td key={'parameter enum'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n {!!values?.schema ? (\n <Tooltip\n disabled={\n values?.schema?.type?.toLowerCase() == 'array' ||\n values?.schema?.type?.toLowerCase() == 'object'\n }\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipEnumRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Enum</p>\n {!!values?.schema?.enum &&\n !!values?.schema?.enum.length &&\n values?.schema?.enum?.map((item, index) => (\n <Input\n key={index}\n className={'methodDescForEnum'}\n required\n clearable={false}\n placeholder=\"Enter Enum value...\"\n value={item}\n onChange={(value) => {\n setFieldValue(`schema.enum[${index}]`, value)\n }}\n />\n ))}\n {enumFields &&\n enumFields?.map((item, index) => (\n <Input\n key={index}\n className={'methodDescForEnum'}\n required\n clearable={false}\n placeholder={`Enter Enum value...`}\n value={item}\n onChange={(value) => {\n let _values = [...enumFields]\n _values[index] = value\n setEnumFields(_values)\n }}\n />\n ))}\n <p\n className={'addEnumButton'}\n onClick={() => {\n setEnumFields((prev) => [...prev, ''])\n }}\n >\n <SVGLoader src={PlusSquare} />\n Add New Enum\n </p>\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n type=\"button\"\n onClick={() => {\n setFieldValue('schema.enum', [\n ...values?.schema?.enum,\n ...enumFields,\n ])\n setEnumFields([])\n tooltipEnumRef?.hide()\n }}\n disabled={\n (enumFields.length > 0 &&\n enumFields?.filter((item) => !item).length) ||\n (values?.schema?.enum.length > 0 &&\n values?.schema?.enum?.filter((item) => !item).length)\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n <Button\n className={styles.editDescBtn}\n id=\"EnumButton\"\n variant=\"link\"\n color=\"action\"\n endIcon={\n <SVGLoader\n id=\"enumIcon\"\n src={PlusIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n />\n }\n >\n Add\n </Button>\n </Tooltip>\n ) : (\n '-'\n )}{' '}\n </div>\n </td>\n\n <td key={'parameter required'}>\n <div data-id=\"is required\" className=\"tableData\">\n {readOnly ? (\n <>{values.required ? 'True' : 'False'}</>\n ) : (\n <Switch\n checked={\n values && values.in && values.in.toLowerCase() == 'path'\n ? true\n : values.required\n }\n disabled={values && values.in && values.in.toLowerCase() == 'path'}\n onClick={() => {\n if (readOnly) {\n return\n }\n setFieldValue('required', !values.required)\n }}\n />\n )}\n </div>\n </td>\n\n <td key={'parameter schema desc'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <div className={styles.paramDescContainer}>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n value={text || values.description}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setText(value)\n }}\n disabled={readOnly}\n placeholder=\"Describe parameter...\"\n maxLength={120}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue('description', text?.trim())\n tooltipRef?.hide()\n }}\n disabled={text?.trim() === ''}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} Description\n </Button>\n </Tooltip>\n\n <div className={styles.paramDescContainer_separator}></div>\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\n }\n onClick={() => {\n resetForm()\n setText('')\n setIsFormOpen(undefined)\n }} // Correctly delete the new row\n />\n )}\n\n {!readOnly && (\n <Tooltip\n disabled={!!values.name.trim()}\n content={`Parameter name can't be empty `}\n >\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"success\"\n disabled={!values.name.trim()}\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\n onClick={() => {\n setText('')\n submitForm()\n }} // Save the new row when clicked\n />\n </Tooltip>\n )}\n </div>{' '}\n </div>\n </td>\n </tr>\n ) : (\n <>\n {!readOnly && (\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\n <td colSpan={5}>\n <Button\n variant=\"link\"\n color=\"primary\"\n onClick={() => {\n setIsFormOpen((prev) => (!prev ? (isRequest ? 'Req' : 'Res') : undefined))\n }}\n >\n + Add Parameter\n </Button>\n </td>\n </tr>\n )}\n </>\n )}\n </tbody>\n </table>\n </div>\n </div>\n )\n}\n\nexport default ParamterTable\n"],"names":["ParamterTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","isRequest","text","setText","useState","tooltipRef","setTooltipRef","tooltipEnumRef","setTooltipEnumRef","enumFields","setEnumFields","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","validateOnMount","initialValues","name","in","schema","type","enum","items","required","description","validationSchema","yup.object","shape","yup.string","default","trim","yup.array","optional","yup.boolean","when","is","then","oneOf","otherwise","onSubmit","_b","_a","_d","_c","undefined","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","length","colSpan","Input","placeholder","size","onChange","value","regex","ASCII","test","disabled","SelectGroupV2","capitalize","item","toLowerCase","options","list","errorMsg","isMultiple","withSearch","clearable","_f","_e","_g","_h","_k","_j","_m","_l","Tooltip","_p","_o","_q","_r","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","styles","editDescTooltipContent","editDescTooltipContent_header","_s","_t","_v","_u","index","_values","onClick","prev","SVGLoader","src","PlusSquare","Button","editDescTooltipContent_btn","variant","hide","filter","_w","_y","_x","editDescBtn","color","endIcon","PlusIcon","height","Switch","checked","paramDescContainer","TextArea","maxLength","EditIcon","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow"],"mappings":"syBAcM,MAAAA,EAAgB,EACpBC,KACAC,YACAC,OACAC,aACAC,gBACAC,aACAC,WACAC,aAAY,wDAEZ,MAAOC,EAAMC,GAAWC,EAAS,KAC1BC,EAAYC,GAAiBF,EAAS,OACtCG,EAAgBC,IAAqBJ,EAAS,OAC9CK,GAAYC,IAAiBN,EAAmB,KACjDO,OAAEA,GAAMC,OAAEA,GAAMC,cAAEA,GAAaC,QAAEA,GAAOC,WAAEA,GAAUC,UAAEA,IAAcC,EAAU,CAClFC,iBAAiB,EACjBC,cAAe,CACbC,KAAM,GACNC,GAAIpB,EAAY,QAAU,SAC1BqB,OAAQ,CACNC,KAAM,SACNC,KAAM,GACNC,MAAO,CACLF,KAAM,WAGVG,UAAU,EACVC,YAAa,IAEfC,iBAAkBC,IAAaC,MAAM,CACnCV,KAAMW,IAAaC,QAAQ,IAAIC,OAAOP,SAAS,8BAC/CL,GAAIU,IAAaL,SAAS,6BAC1BJ,OAAQO,IAAaC,MAAM,CACzBP,KAAMQ,IAAaL,SAAS,qCAC5BF,KAAMU,EAAUH,KAAcI,WAC9BV,MAAOI,IAAaC,MAAM,CACxBP,KAAMQ,IAAaI,eAGvBT,SAAUU,IAAcC,KAAK,KAAM,CACjCC,GAAI,OACJC,KAAOjB,GAAWA,EAAOkB,MAAM,EAAC,GAAO,qCACvCC,UAAYnB,GAAWA,EAAOa,aAEhCR,YAAaI,IAAaC,QAAQ,IAAIC,OAAOE,aAE/CO,SAAW/B,gBACLA,aAAWgC,EAAgB,QAAhBC,EAAAjC,eAAAA,EAAQW,cAAQ,IAAAsB,OAAA,EAAAA,EAAAnB,4BAAOF,QACN,QAAvBsB,EAAgB,QAAhBC,EAAAnC,aAAA,EAAAA,EAAQW,cAAQ,IAAAwB,OAAA,EAAAA,EAAArB,aAAO,IAAAoB,UAAAA,EAAAtB,MAEhCxB,EAAWY,GACXb,OAAciD,GACd5C,EAAQ,IACRa,QAIJ,OACEgC,EAAAA,IAAK,MAAA,CAAAC,UAAU,iCACbD,MAAK,MAAA,CAAAC,UAAU,0BACbC,EAAOC,KAAA,QAAA,CAAAzD,GAAIA,GAAM,GAAIuD,UAAW,qDAC9BD,EAAAA,IAAO,QAAA,CAAAC,UAAU,qBACfD,EAAAA,IACG,KAAA,CAAAI,SAAAzD,eAAAA,EAAW0D,KAAKC,GACfN,EAAAA,UAEEC,UAAW,iBAAiBK,EAASC,SAAW,KAChDC,MAAO,CAAEC,MAAOH,EAASG,MAAOC,SAAUJ,EAASI,mBAEnDV,EACEW,IAAA,MAAA,CAAAV,UAAU,0BACD,GACmB,iBAAnBK,EAASM,MACZN,EAASM,MAAMC,cAAcC,QAAQ,iBAAkB,KACvD,yBAGLV,SAAAE,EAASM,SAZPN,EAAS5D,UAkBtBwD,EAAAA,KAAA,QAAA,CAAOD,UAAU,YAAoB,UAAA,aAClCG,SAAA,CAAAxD,aAAI,EAAJA,EAAMyD,KAAI,CAACU,EAAKC,IAEbhB,EAA2BW,IAAA,KAAA,CAAA,SAAAK,EAAUf,UAAW,MAC7CG,SAAAzD,aAAS,EAATA,EAAW0D,KAAKC,IACf,MAAMW,EAAmC,MAArBF,EAAIT,EAAS5D,KAC/BsD,EAAAA,IAAA,MAAA,CAAA,UACU,mBACRC,UAAU,YACVO,MAAO,CACLC,MAAOH,EAASG,MAChBC,SAAUJ,EAASI,UAGpBN,SAAAW,EAAIT,EAAS5D,MAIlB,OACEsD,EAEEW,IAAA,KAAA,CAAAH,MAAO,CACLC,MAAOH,EAASG,MAChBC,SAAUJ,EAASI,UACpBN,SAEAa,GANIX,EAAS5D,QAjBbsE,KA8BK,KAAjBpE,aAAI,EAAJA,EAAMsE,SAAgBlE,GACrBgD,YAAIC,UAAU,mBACZG,SAAAJ,EAAAA,IAAA,KAAA,CAAIC,UAAU,oBAAoBkB,QAASxE,eAAAA,EAAWuE,OACpDd,SAAAJ,EAAAW,IAAA,MAAA,CAAKV,UAAU,iCACbD,EAAMW,IAAA,OAAA,CAAAV,UAAU,eAAcG,SAAA,6BAMrCvD,IAAeG,EACdkD,OAAI,KAAA,CAAAD,UAAW,MAAKG,SAAA,CAClBJ,EAAAA,mBACEA,EAAaW,IAAA,MAAA,CAAA,UAAA,mBAAmBV,UAAU,YACxCG,SAAAJ,EAAAW,IAACS,EAAKA,MACJ,CAAAC,YAAY,iBACZC,KAAK,QACL/C,KAAK,OACLgD,SAAWC,KACK,KAAVA,GAAgBC,EAAMC,MAAMC,KAAKH,KACnC3D,GAAc,OAAQ2D,IAE1BA,MAAO7D,GAAOS,KACdwD,SAAU5E,OAXP,kBAgBTgD,MACE,KAAA,CAAAI,SAAAF,OAAA,MAAA,CAAA,UAAa,mBAAmBD,UAAU,YACxCG,SAAA,CAAAJ,EAAAA,IAAC6B,EAAAA,cAAa,CACZD,SAAU5E,EACVwE,MAAO,CACLZ,MAAOkB,EAAWnE,GAAOU,IACzBmD,MAAO7D,GAAOU,IAEhBkD,SAAWQ,UACTlE,GAAc,KAAiB,QAAX+B,EAAAmC,aAAA,EAAAA,EAAMP,aAAK,IAAA5B,OAAA,EAAAA,EAAEoC,eACd,OAAfD,aAAI,EAAJA,EAAMP,QACR3D,GAAc,YAAY,IAG9BoE,QAAS,CACP,CACEC,KAAMjF,EACF,CACE,CAAE2D,MAAO,QAASY,MAAO,SACzB,CAAEZ,MAAO,SAAUY,MAAO,UAC1B,CAAEZ,MAAO,OAAQY,MAAO,QACxB,CAAEZ,MAAO,OAAQY,MAAO,SAE1B,CAAC,CAAEZ,MAAO,SAAUY,MAAO,aAGnCW,WAAYvE,GAAOS,IAAMT,GAAOS,GAChC+D,YAAY,EACZC,YAAY,EACZC,WAAW,IACV,QA9BE,gBAkCTtC,EAAAW,IAAA,KAAA,CAAAP,SACEF,wBAAa,mBAAmBD,UAAU,0BAAyBG,SAAA,CACjEJ,EAAAA,IAAC6B,EAAAA,cAAa,CACZD,SAAU5E,EACVsF,WAAW,EACXd,MAAO,CACLZ,MAAOkB,EAAyB,QAAdlC,EAAAjC,cAAM,EAANA,GAAQW,cAAM,IAAAsB,OAAA,EAAAA,EAAErB,MAClCiD,MAAqB,QAAd7B,EAAAhC,gBAAAA,GAAQW,cAAM,IAAAqB,OAAA,EAAAA,EAAEpB,MAEzB4D,WAAYvE,GAAOU,QAAUV,GAAOU,OACpCiD,SAAWQ,IAAS,IAAAnC,EAAA,OAAA/B,GAAc,cAA0B,QAAX+B,EAAAmC,eAAAA,EAAMP,aAAK,IAAA5B,OAAA,EAAAA,EAAEoC,gBAC9DC,QAAS,CACP,CACEC,KAAM,CACJ,CAAEtB,MAAO,SAAUY,MAAO,UAC1B,CAAEZ,MAAO,UAAWY,MAAO,WAC3B,CAAEZ,MAAO,UAAWY,MAAO,WAC3B,CAAEZ,MAAO,SAAUY,MAAO,UAC1B,CAAEZ,MAAO,QAASY,MAAO,SACzB,CAAEZ,MAAO,SAAUY,MAAO,aAIhCY,YAAY,EACZC,YAAY,IACX,KACc,QAAdvC,EAAAnC,cAAM,EAANA,GAAQW,cAAM,IAAAwB,OAAA,EAAAA,EAAEvB,OAA+C,WAAzB,QAAdsB,EAAAlC,cAAM,EAANA,GAAQW,cAAM,IAAAuB,OAAA,EAAAA,EAAEtB,KAAKyD,eAC9ChC,EAACW,IAAAkB,gBACC,CAAAD,SAAU5E,EACVsF,WAAW,EACXd,MAAO,CACLZ,MAAOkB,EAAgC,QAArBS,EAAc,QAAdC,EAAA7E,cAAA,EAAAA,GAAQW,cAAM,IAAAkE,OAAA,EAAAA,EAAE/D,aAAK,IAAA8D,OAAA,EAAAA,EAAEhE,MACzCiD,MAA2B,UAAP,QAAbiB,EAAA9E,GAAOW,cAAM,IAAAmE,OAAA,EAAAA,EAAEhE,aAAK,IAAAiE,OAAA,EAAAA,EAAEnE,MAE/B4D,YAAmC,QAAvBQ,EAAgB,QAAhBC,EAAAhF,cAAA,EAAAA,GAAQU,cAAQ,IAAAsE,OAAA,EAAAA,EAAAnE,aAAO,IAAAkE,OAAA,EAAAA,EAAApE,QAA+B,QAAvBsE,EAAgB,QAAhBC,EAAAlF,cAAM,EAANA,GAAQU,cAAQ,IAAAwE,OAAA,EAAAA,EAAArE,aAAO,IAAAoE,OAAA,EAAAA,EAAAtE,MAClEgD,SAAWQ,IACT,IAAAnC,EAAA,OAAA/B,GAAc,oBAAgC,QAAX+B,EAAAmC,aAAI,EAAJA,EAAMP,aAAK,IAAA5B,OAAA,EAAAA,EAAEoC,gBAElDC,QAAS,CACP,CACEC,KAAM,CACJ,CAAEtB,MAAO,SAAUY,MAAO,UAC1B,CAAEZ,MAAO,UAAWY,MAAO,WAC3B,CAAEZ,MAAO,UAAWY,MAAO,WAC3B,CAAEZ,MAAO,SAAUY,MAAO,UAC1B,CAAEZ,MAAO,QAASY,MAAO,SACzB,CAAEZ,MAAO,SAAUY,MAAO,aAIhCY,YAAY,EACZC,YAAY,IACZ,OApDC,yBA2DTrC,EAAAW,IAAA,KAAA,CAAAP,SACEF,EAAAA,KAAa,MAAA,CAAA,UAAA,mBAAmBD,UAAU,YACvCG,SAAA,EAAEzC,cAAA,EAAAA,GAAQW,QACT0B,EAAAA,IAAC+C,EAAO,CACNnB,SACyC,UAAnB,QAApBoB,EAAc,QAAdC,EAAAtF,cAAM,EAANA,GAAQW,cAAM,IAAA2E,OAAA,EAAAA,EAAE1E,YAAI,IAAAyE,OAAA,EAAAA,EAAEhB,gBACiB,WAAjB,UAAR,QAAdkB,EAAAvF,gBAAAA,GAAQW,cAAM,IAAA4E,OAAA,EAAAA,EAAE3E,YAAM,IAAA4E,OAAA,EAAAA,EAAAnB,eAExBoB,iBAAe,EACfC,UAAU,aACV9E,KAAK,WACL+E,QAAQ,QACRC,MAAO,CAAC,EAAG,GACXC,SAAWC,GAAajG,GAAkBiG,GAC1CC,QACExD,EAAKC,KAAA,MAAA,CAAAF,UAAW0D,EAAOC,uBACrBxD,SAAA,CAAAJ,MAAA,IAAA,CAAGC,UAAW0D,EAAOE,mDACJ,QAAdC,EAAAnG,cAAA,EAAAA,GAAQW,cAAM,IAAAwF,OAAA,EAAAA,EAAEtF,UACD,QAAduF,EAAApG,cAAM,EAANA,GAAQW,cAAM,IAAAyF,OAAA,EAAAA,EAAEvF,KAAK0C,kBACvB8C,EAAgB,QAAhBC,EAAAtG,gBAAAA,GAAQW,cAAQ,IAAA2F,OAAA,EAAAA,EAAAzF,2BAAM6B,KAAI,CAAC0B,EAAMmC,IAC/BlE,MAACoB,EAAAA,OAECnB,UAAW,oBACXvB,YACA4D,WAAW,EACXjB,YAAY,sBACZG,MAAOO,EACPR,SAAWC,IACT3D,GAAc,eAAeqG,KAAU1C,KAPpC0C,MAWVzG,KACCA,cAAU,EAAVA,GAAY4C,KAAI,CAAC0B,EAAMmC,IACrBlE,EAAAA,IAACoB,EAAAA,OAECnB,UAAW,oBACXvB,UACA,EAAA4D,WAAW,EACXjB,YAAa,sBACbG,MAAOO,EACPR,SAAWC,IACT,IAAI2C,EAAU,IAAI1G,IAClB0G,EAAQD,GAAS1C,EACjB9D,GAAcyG,KATXD,MAaXhE,EAAAA,KACE,IAAA,CAAAD,UAAW,gBACXmE,QAAS,KACP1G,IAAe2G,GAAS,IAAIA,EAAM,iBAGpCrE,MAACsE,EAAU,CAAAC,IAAKC,IAEd,mBACFxH,GACAgD,EAAAA,IAACyE,EAAMA,QACLxE,UAAW0D,EAAOe,2BAClBC,QAAQ,WACRrD,KAAK,QACL/C,KAAK,SACL6F,QAAS,WACPvG,GAAc,cAAe,IACV,QAAd+B,EAAAjC,gBAAAA,GAAQW,cAAM,IAAAsB,OAAA,EAAAA,EAAEpB,QAChBf,KAELC,GAAc,IACdH,SAAAA,EAAgBqH,QAElBhD,SACGnE,GAAWyD,OAAS,IACnBzD,cAAU,EAAVA,GAAYoH,QAAQ9C,IAAUA,IAAMb,UACrB,QAAhB4D,EAAAnH,cAAA,EAAAA,GAAQW,cAAQ,IAAAwG,OAAA,EAAAA,EAAAtG,KAAK0C,QAAS,IACP,QAAtB6D,EAAgB,QAAhBC,EAAArH,cAAA,EAAAA,GAAQW,cAAQ,IAAA0G,OAAA,EAAAA,EAAAxG,YAAM,IAAAuG,OAAA,EAAAA,EAAAF,QAAQ9C,IAAUA,IAAMb,QAAOd,SAAA,aASjEA,SAAAJ,EAAAW,IAAC8D,SACC,CAAAxE,UAAW0D,EAAOsB,YAClBvI,GAAG,aACHiI,QAAQ,OACRO,MAAM,SACNC,QACEnF,EAAAA,IAACsE,EACC,CAAA5H,GAAG,WACH6H,IAAKa,EACL3E,MAAM,SACN4E,OAAO,WACPjF,SAAA,UAKE,IAGT,QAvGE,kBA2GTJ,EAAAA,IACE,KAAA,CAAAI,SAAAJ,EAAAW,IAAA,MAAA,CAAA,UAAa,cAAcV,UAAU,YAClCG,SAAApD,EACCgD,2BAAGrC,GAAOe,SAAW,OAAS,UAE9BsB,EAACW,IAAA2E,SACC,CAAAC,WACE5H,KAAUA,GAAOU,IAAiC,QAA3BV,GAAOU,GAAG2D,gBAE7BrE,GAAOe,SAEbkD,SAAUjE,IAAUA,GAAOU,IAAiC,QAA3BV,GAAOU,GAAG2D,cAC3CoC,QAAS,KACHpH,GAGJa,GAAc,YAAaF,GAAOe,gBAhBnC,sBAuBTsB,qBACEE,EAAaC,KAAA,MAAA,CAAA,UAAA,mBAAmBF,UAAU,YACxCG,SAAA,CAAAF,EAAAC,KAAA,MAAA,CAAKF,UAAW0D,EAAO6B,mBAAkBpF,SAAA,CACvCJ,MAAC+C,EAAO,CACNK,iBACA,EAAAC,UAAU,aACV9E,KAAK,WACL+E,QAAQ,QACRC,MAAO,CAAC,EAAG,GACXC,SAAWC,GAAanG,EAAcmG,GACtCC,QACExD,EAAAA,YAAKD,UAAW0D,EAAOC,iCACrB5D,EAAAA,IAAG,IAAA,CAAAC,UAAW0D,EAAOE,8BAA8CzD,SAAA,gBACnEJ,EAAAA,IAACyF,EAAAA,SAAQ,CACPjE,MAAOtE,GAAQS,GAAOgB,YACtB4C,SAAWC,KACK,KAAVA,GAAgBC,EAAMC,MAAMC,KAAKH,KAAQrE,EAAQqE,IAEvDI,SAAU5E,EACVqE,YAAY,wBACZqE,UAAW,OAEX1I,GACAgD,EAAAA,IAACyE,EAAAA,OAAM,CACLxE,UAAW0D,EAAOe,2BAClBC,QAAQ,WACRrD,KAAK,QACL8C,QAAS,KACPvG,GAAc,cAAeX,aAAA,EAAAA,EAAM+B,QACnC5B,SAAAA,EAAYuH,QAEdhD,SAA2B,MAAjB1E,aAAI,EAAJA,EAAM+B,QAAamB,SAAA,aAQrCA,SAAAF,EAAAA,KAACuE,EAAAA,OAAM,CACLxE,UAAW0D,EAAOsB,YAClBN,QAAQ,OACRO,MAAM,SACNC,QAASnF,EAAAA,IAACsE,EAAS,CAACC,IAAKoB,EAAUlF,MAAM,SAAS4E,OAAO,WAAWjF,SAAA,CAEnEpD,EAAW,QAAU,OACf,oBAGXgD,EAAAW,IAAA,MAAA,CAAKV,UAAW0D,EAAOiC,gCACrB5I,GACAgD,EAACW,IAAA8D,SACC,CAAAxE,UAAW0D,EAAOkC,eAClBlB,QAAQ,OACRO,MAAM,QACNC,QACEnF,MAACsE,EAAU,CAAAC,IAAKuB,EAAYrF,MAAM,WAAW4E,OAAO,aAEtDjB,QAAS,KACPpG,KACAb,EAAQ,IACRL,OAAciD,OAKlB/C,GACAgD,EAAAA,IAAC+C,GACCnB,WAAYjE,GAAOS,KAAKa,OACxByE,QAAS,iCAETtD,SAAAJ,EAAAA,IAACyE,EAAMA,OAAA,CACLxE,UAAW0D,EAAOkC,eAClBlB,QAAQ,OACRO,MAAM,UACNtD,UAAWjE,GAAOS,KAAKa,OACvBkG,QAASnF,EAAAA,IAACsE,EAAS,CAACC,IAAKwB,EAAQtF,MAAM,WAAW4E,OAAO,aACzDjB,QAAS,KACPjH,EAAQ,IACRY,aAKH,QApFF,4BAyFXiC,EAAAA,0BACIhD,GACAgD,EAAAA,IAA2B,KAAA,CAAA,SAAA,SAAUC,UAAW,MAC9CG,SAAAJ,MAAA,KAAA,CAAImB,QAAS,EACXf,SAAAJ,EAAAW,IAAC8D,EAAMA,OAAA,CACLE,QAAQ,OACRO,MAAM,UACNd,QAAS,KACPtH,GAAeuH,GAAWA,OAAqCtE,EAA7B9C,EAAY,MAAQ,SAIjDmD,SAAA,uBAVJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags-table.js","sources":["../../../../src/components/table/tags-table.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\nimport './style.scss'\nimport _styles from '../InfoForm/InfoForm.module.scss'\nimport { Button, Input, TextArea } from 'digitinary-ui'\nimport Tooltip from '../Tooltip/Tooltip'\nimport SVGLoader from '../SVGLoader/SVGLoader'\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\nimport { useFormik } from 'formik'\nimport * as yup from 'yup'\nimport regex from '../../constants/regex'\n\nconst TagsTable = ({ id, headCells, data, isFormOpen, setIsFormOpen, saveNewRow, readOnly }) => {\n const [text, setText] = useState('')\n const [externalDesc, setExternalDesc] = useState('')\n const [externalUrl, setExternalUrl] = useState('')\n const [tooltipRef, setTooltipRef] = useState(null)\n const [externalTooltipRefs, setExternalTooltipRefs] = useState(null)\n const { values, errors, setFieldValue, isValid, submitForm, resetForm,dirty } = useFormik({\n validateOnMount: true,\n initialValues: {\n name: '',\n description: '',\n externalDocs: {\n url: '',\n description: '',\n },\n },\n validationSchema: yup.object().shape({\n name: yup.string().trim().required('Tag name is required'),\n description: yup.string().optional(),\n externalDocs: yup\n .object()\n .shape({\n url: yup\n .string()\n .trim()\n .matches(regex.urlRegex, 'Invalid URL')\n .when('description', (description, schema) => {\n return description?.at(0)\n ? schema.required('URL is required when description is provided')\n : schema.optional()\n }),\n description: yup.string().trim().optional(),\n })\n .optional(),\n }),\n onSubmit: (values) => {\n saveNewRow(values)\n setText('')\n resetForm()\n setIsFormOpen(false)\n },\n validateOnChange: true,\n })\n\n return (\n <div className=\"tableSectionContainer\">\n <div className=\"tableContainer\">\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\n <thead className=\"tableHead\">\n <tr>\n {headCells?.map((headCell) => (\n <th\n key={headCell.id}\n className={`tableHeadCell ${headCell.classes || ''}`}\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\n >\n <div\n className=\"headContainer\"\n data-id={`${\n typeof headCell.label === 'string'\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\n : 'UNKNOWN_LABEL'\n }_COLUMN`}\n >\n {headCell.label}\n </div>\n </th>\n ))}\n </tr>\n </thead>\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\n {data?.map((row, rowIndex) => {\n return (\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\n {headCells?.map((headCell) => {\n const cellContent = row[headCell.id] !== '_' && (\n <div\n data-id=\"TEXT_DESCRIPTION\"\n className=\"tableData\"\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {row[headCell.id]}\n </div>\n )\n\n return (\n <td\n key={headCell.id}\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {cellContent}\n </td>\n )\n })}\n </tr>\n )\n })}\n {isFormOpen ? (\n <tr key={''} data-i={''} className={`row`}>\n <td key={'tag name'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <Input\n placeholder=\"Tag name\"\n size=\"large\"\n type=\"text\"\n maxLength={25}\n onChange={(value) => {\n !regex.basic.test(value) && setFieldValue('name', value)\n }} // Pass the value directly\n value={values.name} // Bind value to the state\n disabled={readOnly}\n />\n </div>\n </td>\n\n <td key={'tagDescRequired'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <div className={styles.paramDescContainer}>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipRef(instance)}\n onShow={() => {\n setText(values.description || '') // Reset to current value when shown\n }}\n onHidden={() => {\n setText(values.description || '') // Reset on close\n }}\n content={\n <div className={_styles.editDescTooltipContent}>\n <p className={_styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n value={text || values.description}\n disabled={readOnly}\n maxLength={25}\n placeholder=\"Describe Tag...\"\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setText(value)\n }}\n />\n {!readOnly && (\n <Button\n className={_styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue('description', text?.trim())\n tooltipRef?.hide()\n }}\n disabled={!(text || values.description)?.trim()}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n <Button\n className={_styles.editDescBtn}\n style={{ paddingLeft: 0 }}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} Description\n </Button>\n </Tooltip>\n </div>{' '}\n </div>\n </td>\n <td key={'tagExternal'}>\n <div className=\"tableData\">\n <div className={_styles.paramDescContainer}>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setExternalTooltipRefs(instance)}\n onShow={() => {\n setExternalDesc(values.externalDocs.description || '')\n setExternalUrl(values.externalDocs.url || '')\n }}\n onHidden={() => {\n setExternalDesc(values.externalDocs.description || '')\n setExternalUrl(values.externalDocs.url || '')\n }}\n content={\n <div className={_styles.editDescTooltipContent}>\n <p className={_styles.editDescTooltipContent_header}>\n External Docs Description\n </p>\n <TextArea\n placeholder=\"Describe External Doc...\"\n value={externalDesc || values.externalDocs.description}\n disabled={readOnly}\n maxLength={25}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setExternalDesc(value)\n }}\n />\n <p className={_styles.editDescTooltipContent_header}>\n External Docs Link\n </p>\n <TextArea\n placeholder=\"External Docs Link...\"\n restrictedCharsRegex={regex.urlRegex}\n value={externalUrl || values.externalDocs.url}\n disabled={readOnly}\n maxLength={200}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setExternalUrl(value)\n }}\n />\n {!readOnly && (\n <Button\n className={_styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(`externalDocs`, {\n description: externalDesc,\n url: externalUrl,\n })\n\n externalTooltipRefs?.hide()\n }}\n disabled={\n !(externalUrl || values.externalDocs.url)?.trim() ||\n !regex.urlRegex.test(externalUrl || values.externalDocs.url)\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly ? (\n <a\n className={_styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n href={values.externalDocs?.url}\n target=\"_blank\"\n >\n {values?.externalDocs?.description\n ? values?.externalDocs?.description?.substring(0, 12)\n : '-'}\n {values?.externalDocs?.description &&\n values?.externalDocs?.description?.length > 12\n ? '...'\n : ''}\n </a>\n ) : (\n <Button\n className={_styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} External Docs Link\n </Button>\n )}\n </Tooltip>\n <div className={_styles.paramDescContainer_separator}></div>\n {!readOnly && (\n <Button\n className={_styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\n }\n onClick={() => {\n resetForm()\n setText('')\n setIsFormOpen(false)\n }} // Correctly delete the new row\n />\n )}\n\n {!readOnly && (\n <Button\n className={_styles.deleteParamBtn}\n variant=\"link\"\n color=\"success\"\n disabled={!isValid || !dirty}\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\n onClick={() => {\n setText('')\n submitForm()\n }} // Save the new row when clicked\n />\n )}\n </div>\n </div>\n </td>\n </tr>\n ) : (\n <>\n {!readOnly && (\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\n <td colSpan={5}>\n <Button\n variant=\"link\"\n color=\"primary\"\n onClick={() => {\n setIsFormOpen((prev) => !prev)\n }}\n >\n + Add Tag\n </Button>\n </td>\n </tr>\n )}\n </>\n )}\n </tbody>\n </table>\n </div>\n </div>\n )\n}\n\nexport default TagsTable\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","dirty","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","onShow","onHidden","content","_styles","editDescTooltipContent","editDescTooltipContent_header","TextArea","ASCII","Button","editDescTooltipContent_btn","variant","onClick","hide","_a","editDescBtn","paddingLeft","color","endIcon","SVGLoader","src","EditIcon","height","restrictedCharsRegex","_b","href","_c","target","_d","_f","_e","substring","_g","_j","_h","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'\nimport './style.scss'\nimport _styles from '../InfoForm/InfoForm.module.scss'\nimport { Button, Input, TextArea } from 'digitinary-ui'\nimport Tooltip from '../Tooltip/Tooltip'\nimport SVGLoader from '../SVGLoader/SVGLoader'\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\nimport { useFormik } from 'formik'\nimport * as yup from 'yup'\nimport regex from '../../constants/regex'\n\nconst TagsTable = ({ id, headCells, data, isFormOpen, setIsFormOpen, saveNewRow, readOnly }) => {\n const [text, setText] = useState('')\n const [externalDesc, setExternalDesc] = useState('')\n const [externalUrl, setExternalUrl] = useState('')\n const [tooltipRef, setTooltipRef] = useState(null)\n const [externalTooltipRefs, setExternalTooltipRefs] = useState(null)\n const { values, errors, setFieldValue, isValid, submitForm, resetForm,dirty } = useFormik({\n validateOnMount: true,\n initialValues: {\n name: '',\n description: '',\n externalDocs: {\n url: '',\n description: '',\n },\n },\n validationSchema: yup.object().shape({\n name: yup.string().trim().required('Tag name is required'),\n description: yup.string().optional(),\n externalDocs: yup\n .object()\n .shape({\n url: yup\n .string()\n .trim()\n .matches(regex.urlRegex, 'Invalid URL')\n .when('description', (description, schema) => {\n return description?.at(0)\n ? schema.required('URL is required when description is provided')\n : schema.optional()\n }),\n description: yup.string().trim().optional(),\n })\n .optional(),\n }),\n onSubmit: (values) => {\n saveNewRow(values)\n setText('')\n resetForm()\n setIsFormOpen(false)\n },\n validateOnChange: true,\n })\n\n return (\n <div className=\"tableSectionContainer\">\n <div className=\"tableContainer\">\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\n <thead className=\"tableHead\">\n <tr>\n {headCells?.map((headCell) => (\n <th\n key={headCell.id}\n className={`tableHeadCell ${headCell.classes || ''}`}\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\n >\n <div\n className=\"headContainer\"\n data-id={`${\n typeof headCell.label === 'string'\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\n : 'UNKNOWN_LABEL'\n }_COLUMN`}\n >\n {headCell.label}\n </div>\n </th>\n ))}\n </tr>\n </thead>\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\n {data?.map((row, rowIndex) => {\n return (\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\n {headCells?.map((headCell) => {\n const cellContent = row[headCell.id] !== '_' && (\n <div\n data-id=\"TEXT_DESCRIPTION\"\n className=\"tableData\"\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {row[headCell.id]}\n </div>\n )\n\n return (\n <td\n key={headCell.id}\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {cellContent}\n </td>\n )\n })}\n </tr>\n )\n })}\n {isFormOpen ? (\n <tr key={''} data-i={''} className={`row`}>\n <td key={'tag name'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <Input\n placeholder=\"Tag name\"\n size=\"large\"\n type=\"text\"\n maxLength={25}\n onChange={(value) => {\n !regex.basic.test(value) && setFieldValue('name', value)\n }} // Pass the value directly\n value={values.name} // Bind value to the state\n disabled={readOnly}\n />\n </div>\n </td>\n\n <td key={'tagDescRequired'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <div className={styles.paramDescContainer}>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipRef(instance)}\n onShow={() => {\n setText(values.description || '') // Reset to current value when shown\n }}\n onHidden={() => {\n setText(values.description || '') // Reset on close\n }}\n content={\n <div className={_styles.editDescTooltipContent}>\n <p className={_styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n value={text || values.description}\n disabled={readOnly}\n maxLength={25}\n placeholder=\"Describe Tag...\"\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setText(value)\n }}\n />\n {!readOnly && (\n <Button\n className={_styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue('description', text?.trim())\n tooltipRef?.hide()\n }}\n disabled={!(text || values.description)?.trim()}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n <Button\n className={_styles.editDescBtn}\n style={{ paddingLeft: 0 }}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} Description\n </Button>\n </Tooltip>\n </div>{' '}\n </div>\n </td>\n <td key={'tagExternal'}>\n <div className=\"tableData\">\n <div className={_styles.paramDescContainer}>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setExternalTooltipRefs(instance)}\n onShow={() => {\n setExternalDesc(values.externalDocs.description || '')\n setExternalUrl(values.externalDocs.url || '')\n }}\n onHidden={() => {\n setExternalDesc(values.externalDocs.description || '')\n setExternalUrl(values.externalDocs.url || '')\n }}\n content={\n <div className={_styles.editDescTooltipContent}>\n <p className={_styles.editDescTooltipContent_header}>\n External Docs Description\n </p>\n <TextArea\n placeholder=\"Describe External Doc...\"\n value={externalDesc || values.externalDocs.description}\n disabled={readOnly}\n maxLength={25}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setExternalDesc(value)\n }}\n />\n <p className={_styles.editDescTooltipContent_header}>\n External Docs Link\n </p>\n <TextArea\n placeholder=\"External Docs Link...\"\n restrictedCharsRegex={regex.urlRegex}\n value={externalUrl || values.externalDocs.url}\n disabled={readOnly}\n maxLength={200}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setExternalUrl(value)\n }}\n />\n {!readOnly && (\n <Button\n className={_styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(`externalDocs`, {\n description: externalDesc,\n url: externalUrl,\n })\n\n externalTooltipRefs?.hide()\n }}\n disabled={\n !(externalUrl || values.externalDocs.url)?.trim() ||\n !regex.urlRegex.test(externalUrl || values.externalDocs.url)\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly ? (\n <a\n className={_styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n href={values.externalDocs?.url}\n target=\"_blank\"\n >\n {values?.externalDocs?.description\n ? values?.externalDocs?.description?.substring(0, 12)\n : '-'}\n {values?.externalDocs?.description &&\n values?.externalDocs?.description?.length > 12\n ? '...'\n : ''}\n </a>\n ) : (\n <Button\n className={_styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} External Docs Link\n </Button>\n )}\n </Tooltip>\n <div className={_styles.paramDescContainer_separator}></div>\n {!readOnly && (\n <Button\n className={_styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\n }\n onClick={() => {\n resetForm()\n setText('')\n setIsFormOpen(false)\n }} // Correctly delete the new row\n />\n )}\n\n {!readOnly && (\n <Button\n className={_styles.deleteParamBtn}\n variant=\"link\"\n color=\"success\"\n disabled={!isValid || !dirty}\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\n onClick={() => {\n setText('')\n submitForm()\n }} // Save the new row when clicked\n />\n )}\n </div>\n </div>\n </td>\n </tr>\n ) : (\n <>\n {!readOnly && (\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\n <td colSpan={5}>\n <Button\n variant=\"link\"\n color=\"primary\"\n onClick={() => {\n setIsFormOpen((prev) => !prev)\n }}\n >\n + Add Tag\n </Button>\n </td>\n </tr>\n )}\n </>\n )}\n </tbody>\n </table>\n </div>\n </div>\n )\n}\n\nexport default TagsTable\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","dirty","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","onShow","onHidden","content","_styles","editDescTooltipContent","editDescTooltipContent_header","TextArea","ASCII","Button","editDescTooltipContent_btn","variant","onClick","hide","_a","editDescBtn","paddingLeft","color","endIcon","SVGLoader","src","EditIcon","height","restrictedCharsRegex","_b","href","_c","target","_d","_f","_e","substring","_g","_j","_h","length","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow","_Fragment","Fragment","colSpan","prev"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as e}from"../../_virtual/jsx-runtime.js";import{createContext as t,useState as i,useCallback as n,useMemo as r,useContext as o}from"react";var s;!function(e){e.OVERVIEW="overview",e.RESOURCE="resource",e.API_SECTION="apiSection",e.TAG_SECTION="tagSection",e.ENDPOINTS_SECTION="endpointsSection"}(s||(s={}));const c=t(null),d=()=>{const e=o(c);if(!e)throw new Error("useSectionToggle must be used within SectionToggleProvider");return e},a=({children:t})=>{const[o,s]=i({}),d=({apiId:e,type:t,index:i,id:n})=>{let r=`api_${e}_${t}`;return void 0!==i&&(r+=`_${i}`),void 0!==n&&(r+=`_${n}`),r},a=n(((e,t,i={})=>{const{resetOthers:n=!1,filterKeys:r=[]}=i,c=t.map((({type:t,index:i,id:n})=>d({apiId:e,type:t,index:i,id:n}))),a=Object.fromEntries(t.map((({type:t,index:i,setTo:n,id:r})=>{const s=d({apiId:e,type:t,index:i,id:r}),c=o[s];return[s,void 0!==n?n:!c]})));if(n&&r.length>0){const t=Object.fromEntries(Object.entries(o).filter((([t])=>t.includes(e)&&!r.some((e=>t.includes(e)))||c.includes(t)))),i=Object.assign(Object.assign({},t),a);s(i)}else s((e=>Object.assign(Object.assign({},e),a)))}),[o]),l=r((()=>({expandedSections:o,toggleSection:a,generateSectionKey:d})),[o,a]);return e.jsx(c.Provider,{value:l,children:t})};export{s as SectionEnum,a as SectionToggleProvider,d as useSectionToggle};
|
|
2
|
+
//# sourceMappingURL=SectionToggleContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionToggleContext.js","sources":["../../../src/context/SectionToggleContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useState, ReactNode, useMemo, useCallback } from 'react'\n\nexport enum SectionEnum {\n OVERVIEW = 'overview',\n RESOURCE = 'resource',\n API_SECTION = 'apiSection',\n TAG_SECTION = 'tagSection',\n ENDPOINTS_SECTION = 'endpointsSection',\n}\n\ntype SectionKey =\n | `api_${string}_${SectionEnum}`\n | `api_${string}_${SectionEnum}_${string | number}`\n | `api_${string}_${SectionEnum}_${string | number}_${string | number}`\ntype ExpandedSections = Record<SectionKey, boolean>\n\ninterface SectionToggleContextType {\n expandedSections: ExpandedSections\n toggleSection: (\n apiId: string,\n sections: ToggleSectionDescriptor[],\n options?: ToggleOptions\n ) => void\n generateSectionKey: ({ apiId, type, index, id }: GenerateSectionKeyParams) => SectionKey\n}\n\ninterface SectionToggleProviderProps {\n children: ReactNode\n}\n\nexport interface ToggleSectionDescriptor {\n type: SectionEnum\n index?: string | number\n setTo?: boolean\n id?: string\n}\n\nexport interface ToggleOptions {\n resetOthers?: boolean\n filterKeys?: SectionEnum[]\n}\n\ninterface GenerateSectionKeyParams {\n apiId: string\n type: SectionEnum\n index?: string | number\n id?: string | number\n}\n\nconst SectionToggleContext = createContext<SectionToggleContextType | null>(null)\n\nexport const useSectionToggle = () => {\n const context = useContext(SectionToggleContext)\n if (!context) {\n throw new Error('useSectionToggle must be used within SectionToggleProvider')\n }\n return context\n}\n\nexport const SectionToggleProvider = ({ children }: SectionToggleProviderProps) => {\n const [expandedSections, setExpandedSections] = useState<ExpandedSections>({})\n\n const generateSectionKey = ({ apiId, type, index, id }: GenerateSectionKeyParams): SectionKey => {\n let key = `api_${apiId}_${type}`\n\n if (index !== undefined) key += `_${index}`\n if (id !== undefined) key += `_${id}`\n\n return key as SectionKey\n }\n\n const toggleSection = useCallback(\n (apiId: string, sections: ToggleSectionDescriptor[], options: ToggleOptions = {}) => {\n const { resetOthers = false, filterKeys = [] } = options\n\n const sectionIds = sections.map(({ type, index, id }) =>\n generateSectionKey({ apiId, type, index, id })\n )\n\n const sectionToggles = Object.fromEntries(\n sections.map(({ type, index, setTo, id }) => {\n const sectionId = generateSectionKey({ apiId, type, index, id })\n const currentValue = expandedSections[sectionId]\n\n return [sectionId, setTo !== undefined ? setTo : !currentValue]\n })\n )\n\n if (resetOthers && filterKeys.length > 0) {\n const filtered = Object.fromEntries(\n Object.entries(expandedSections).filter(([key]) => {\n const shouldKeep = key.includes(apiId) && !filterKeys.some((k) => key.includes(k))\n return shouldKeep || sectionIds.includes(key as SectionKey)\n })\n )\n const newState = { ...filtered, ...sectionToggles }\n setExpandedSections(newState)\n } else {\n setExpandedSections((prev) => {\n const next = { ...prev, ...sectionToggles }\n\n return next\n })\n }\n },\n [expandedSections]\n )\n\n const contextValue = useMemo(\n () => ({\n expandedSections,\n toggleSection,\n generateSectionKey,\n }),\n [expandedSections, toggleSection]\n )\n\n return (\n <SectionToggleContext.Provider value={contextValue}>{children}</SectionToggleContext.Provider>\n )\n}\n"],"names":["SectionEnum","SectionToggleContext","createContext","useSectionToggle","context","useContext","Error","SectionToggleProvider","children","expandedSections","setExpandedSections","useState","generateSectionKey","apiId","type","index","id","key","undefined","toggleSection","useCallback","sections","options","resetOthers","filterKeys","sectionIds","map","sectionToggles","Object","fromEntries","setTo","sectionId","currentValue","length","filtered","entries","filter","includes","some","k","newState","assign","prev","contextValue","useMemo","_jsx","jsx","Provider","value"],"mappings":"wJAEYA,GAAZ,SAAYA,GACVA,EAAA,SAAA,WACAA,EAAA,SAAA,WACAA,EAAA,YAAA,aACAA,EAAA,YAAA,aACAA,EAAA,kBAAA,kBACD,CAND,CAAYA,IAAAA,EAMX,CAAA,IAyCD,MAAMC,EAAuBC,EAA+C,MAE/DC,EAAmB,KAC9B,MAAMC,EAAUC,EAAWJ,GAC3B,IAAKG,EACH,MAAM,IAAIE,MAAM,8DAElB,OAAOF,GAGIG,EAAwB,EAAGC,eACtC,MAAOC,EAAkBC,GAAuBC,EAA2B,CAAE,GAEvEC,EAAqB,EAAGC,QAAOC,OAAMC,QAAOC,SAChD,IAAIC,EAAM,OAAOJ,KAASC,IAK1B,YAHcI,IAAVH,IAAqBE,GAAO,IAAIF,UACzBG,IAAPF,IAAkBC,GAAO,IAAID,KAE1BC,GAGHE,EAAgBC,GACpB,CAACP,EAAeQ,EAAqCC,EAAyB,MAC5E,MAAMC,YAAEA,GAAc,EAAKC,WAAEA,EAAa,IAAOF,EAE3CG,EAAaJ,EAASK,KAAI,EAAGZ,OAAMC,QAAOC,QAC9CJ,EAAmB,CAAEC,QAAOC,OAAMC,QAAOC,SAGrCW,EAAiBC,OAAOC,YAC5BR,EAASK,KAAI,EAAGZ,OAAMC,QAAOe,QAAOd,SAClC,MAAMe,EAAYnB,EAAmB,CAAEC,QAAOC,OAAMC,QAAOC,OACrDgB,EAAevB,EAAiBsB,GAEtC,MAAO,CAACA,OAAqBb,IAAVY,EAAsBA,GAASE,OAItD,GAAIT,GAAeC,EAAWS,OAAS,EAAG,CACxC,MAAMC,EAAWN,OAAOC,YACtBD,OAAOO,QAAQ1B,GAAkB2B,QAAO,EAAEnB,KACrBA,EAAIoB,SAASxB,KAAWW,EAAWc,MAAMC,GAAMtB,EAAIoB,SAASE,MAC1Dd,EAAWY,SAASpB,MAGvCuB,EAAgBZ,OAAAa,OAAAb,OAAAa,OAAA,GAAAP,GAAaP,GACnCjB,EAAoB8B,EACrB,MACC9B,GAAqBgC,GACDd,OAAAa,OAAAb,OAAAa,OAAA,GAAAC,GAASf,OAMjC,CAAClB,IAGGkC,EAAeC,GACnB,KAAO,CACLnC,mBACAU,gBACAP,wBAEF,CAACH,EAAkBU,IAGrB,OACE0B,EAAAC,IAAC7C,EAAqB8C,SAAQ,CAACC,MAAOL,EAAYnC,SAAGA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{nanoid as s}from"../../node_modules/nanoid/index.js";const t=t=>{var e;const
|
|
1
|
+
import{nanoid as s}from"../../node_modules/nanoid/index.js";const t=t=>{var e,a;const n="string"==typeof t.metaData.openApiJson?JSON.parse(t.metaData.openApiJson):t.metaData.openApiJson,o={default:[]},i=new Set((null===(e=null==n?void 0:n.tags)||void 0===e?void 0:e.map((({name:s})=>s)))||[]);for(const[t,e]of Object.entries(n.paths))for(const[n,c]of Object.entries(e)){const e=Object.assign(Object.assign({},c),{method:n,path:t}),r=(null!==(a=c.tags)&&void 0!==a?a:[]).filter((s=>i.has(s)));r.length>0?r.forEach((t=>{o[t]||(o[t]=[]),o[t].push(Object.assign(Object.assign({},e),{id:s(8)}))})):o.default.push(Object.assign(Object.assign({},e),{id:s(8)}))}return Object.assign(Object.assign({},n.info),{apiSpecId:t.apiSpecId,contextPath:t.contextPath,associatedProduct:t.associatedProduct,apiVersions:t.apiVersions,tags:o,servers:n.servers})};export{t as transformOpenApiToDocs};
|
|
2
2
|
//# sourceMappingURL=docs.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.helper.js","sources":["../../../src/helpers/docs.helper.ts"],"sourcesContent":["import { ApiSpecModel } from '@entities/index'\nimport { HTTPMethod, OpenAPIFile } from '@entities/openApi'\nimport { nanoid } from 'nanoid'\nimport { OverviewData, TagData } from 'src/layout/docsLayout'\n\nexport const transformOpenApiToDocs = (api: ApiSpecModel): OverviewData => {\n const parsedOpenApi: OpenAPIFile =\n typeof api.metaData.openApiJson === 'string'\n ? JSON.parse(api.metaData.openApiJson)\n : api.metaData.openApiJson\n\n const groupedPathsByTags: Record<string, TagData[]> = { default: [] }\n const validTags = new Set(parsedOpenApi
|
|
1
|
+
{"version":3,"file":"docs.helper.js","sources":["../../../src/helpers/docs.helper.ts"],"sourcesContent":["import { ApiSpecModel } from '@entities/index'\nimport { HTTPMethod, OpenAPIFile } from '@entities/openApi'\nimport { nanoid } from 'nanoid'\nimport { OverviewData, TagData } from 'src/layout/docsLayout'\n\nexport const transformOpenApiToDocs = (api: ApiSpecModel): OverviewData => {\n const parsedOpenApi: OpenAPIFile =\n typeof api.metaData.openApiJson === 'string'\n ? JSON.parse(api.metaData.openApiJson)\n : api.metaData.openApiJson\n\n const groupedPathsByTags: Record<string, TagData[]> = { default: [] }\n const validTags = new Set(parsedOpenApi?.tags?.map(({ name }) => name) || [])\n\n for (const [path, methods] of Object.entries(parsedOpenApi.paths)) {\n for (const [method, methodData] of Object.entries(methods)) {\n const entry = { ...methodData, method: method as HTTPMethod, path }\n const resourceTags = methodData.tags ?? []\n\n const matchedTags = resourceTags.filter((tag) => validTags.has(tag))\n\n if (matchedTags.length > 0) {\n matchedTags.forEach((tag) => {\n if (!groupedPathsByTags[tag]) groupedPathsByTags[tag] = []\n groupedPathsByTags[tag].push({ ...entry, id: nanoid(8) } as TagData)\n })\n } else {\n groupedPathsByTags.default.push({ ...entry, id: nanoid(8) } as TagData)\n }\n }\n }\n\n return {\n ...parsedOpenApi.info,\n apiSpecId: api.apiSpecId,\n contextPath: api.contextPath,\n associatedProduct: api.associatedProduct,\n apiVersions: api.apiVersions,\n tags: groupedPathsByTags,\n servers: parsedOpenApi.servers,\n }\n}\n"],"names":["transformOpenApiToDocs","api","parsedOpenApi","metaData","openApiJson","JSON","parse","groupedPathsByTags","default","validTags","Set","_a","tags","map","name","path","methods","Object","entries","paths","method","methodData","entry","assign","matchedTags","_b","filter","tag","has","length","forEach","push","id","nanoid","info","apiSpecId","contextPath","associatedProduct","apiVersions","servers"],"mappings":"4DAKa,MAAAA,EAA0BC,YACrC,MAAMC,EACgC,iBAA7BD,EAAIE,SAASC,YAChBC,KAAKC,MAAML,EAAIE,SAASC,aACxBH,EAAIE,SAASC,YAEbG,EAAgD,CAAEC,QAAS,IAC3DC,EAAY,IAAIC,KAAyB,QAArBC,EAAAT,aAAA,EAAAA,EAAeU,YAAM,IAAAD,OAAA,EAAAA,EAAAE,KAAI,EAAGC,UAAWA,MAAS,IAE1E,IAAK,MAAOC,EAAMC,KAAYC,OAAOC,QAAQhB,EAAciB,OACzD,IAAK,MAAOC,EAAQC,KAAeJ,OAAOC,QAAQF,GAAU,CAC1D,MAAMM,EAAaL,OAAAM,OAAAN,OAAAM,OAAA,CAAA,EAAAF,GAAY,CAAAD,OAAQA,EAAsBL,SAGvDS,GAF8B,QAAfC,EAAAJ,EAAWT,YAAI,IAAAa,EAAAA,EAAI,IAEPC,QAAQC,GAAQlB,EAAUmB,IAAID,KAE3DH,EAAYK,OAAS,EACvBL,EAAYM,SAASH,IACdpB,EAAmBoB,KAAMpB,EAAmBoB,GAAO,IACxDpB,EAAmBoB,GAAKI,KAAKd,OAAKM,OAAAN,OAAAM,OAAA,CAAA,EAAAD,GAAO,CAAAU,GAAIC,EAAO,SAGtD1B,EAAmBC,QAAQuB,KAAKd,+BAAKK,GAAK,CAAEU,GAAIC,EAAO,KAE1D,CAGH,OAAAhB,OAAAM,OAAAN,OAAAM,OAAA,CAAA,EACKrB,EAAcgC,MACjB,CAAAC,UAAWlC,EAAIkC,UACfC,YAAanC,EAAImC,YACjBC,kBAAmBpC,EAAIoC,kBACvBC,YAAarC,EAAIqC,YACjB1B,KAAML,EACNgC,QAASrC,EAAcqC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.helper.js","sources":["../../../src/helpers/layout.helper.ts"],"sourcesContent":["import { TransformedPathsArray } from '@entities/layout.type'\nimport { OpenAPIFile, SecurityScheme } from '@entities/openApi'\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\n\nexport const transformOpenApiObject = (openApiJson: OpenAPIFile): TransformedOpenApi => {\n if (openApiJson.components && openApiJson.components.securitySchemes) {\n const authKey = Object.keys(openApiJson.components.securitySchemes)?.at(0)\n if (authKey) {\n openApiJson.components.securitySchemes[authKey].type = openApiJson?.components\n ?.securitySchemes?.[authKey]?.type as SecurityScheme['type']\n }\n } else {\n openApiJson.components = {\n securitySchemes: {\n Public: {\n type: 'http',\n scheme: 'public',\n },\n },\n }\n }\n\n if (!openApiJson.tags) {\n openApiJson.tags = []\n }\n\n return {\n ...openApiJson,\n paths: transformPathsToArray(openApiJson.paths),\n } as TransformedOpenApi\n}\n\nexport const transformOpenApiObjectToOrigin = (values: TransformedOpenApi): OpenAPIFile => {\n const object = {\n ...values,\n paths: transformPathsArrayToOrigin(values.paths),\n }\n if (object.components && object.components.securitySchemes) {\n const authKey = Object.keys(object.components.securitySchemes)?.at(0)\n if (authKey) {\n if (object.components.securitySchemes[authKey].type.toLowerCase() == 'APIKEY'.toLowerCase()) {\n object.components.securitySchemes[authKey].in = object.components.securitySchemes[authKey]\n .in as SecurityScheme['in']\n }\n object.components.securitySchemes[authKey].type = object?.components?.securitySchemes?.[\n authKey\n ]?.type as SecurityScheme['type']\n }\n }\n return object\n}\n\nexport const transformPathsToArray = (paths: OpenAPIFile['paths']): TransformedPathsArray | any => {\n const transformedPaths = Object.entries(paths).map(([path, methods]) => ({\n path,\n methods: Object.entries(methods).map(([method, methodProps]) => {\n const obj: any = {\n ...methodProps,\n type: method,\n tags: methodProps.tags || [],\n summary: methodProps.summary || '',\n responses: Object.entries(methodProps.responses).map(([code, codeProps]) => {\n const contentType = Object.keys(codeProps.content || {})[0]\n const headers = !codeProps?.headers ? {} : codeProps.headers\n return {\n code,\n headers,\n content: {\n contentType,\n schema: {\n ...codeProps.content?.[contentType]?.schema,\n properties: JSON.stringify(codeProps.content?.[contentType]?.schema?.properties),\n },\n },\n }\n }),\n }\n // Add parameters if it does not exist in the original JSON\n if (!methodProps?.parameters) {\n obj.parameters = []\n }\n\n // load response headers parameters\n\n if (method.toLowerCase() != 'get') {\n const contentType = Object.keys(methodProps?.requestBody?.content || {})[0]\n const reqSchema = methodProps?.requestBody?.content?.schema\n const requestBodyData = methodProps?.requestBody?.content?.schema?.properties\n ? {\n content: {\n contentType,\n schema: {\n ...reqSchema,\n properties: reqSchema?.properties ? JSON.stringify(reqSchema?.properties) : '{}',\n },\n },\n }\n : {\n content: {\n contentType: 'application/json',\n schema: {\n properties: '{}',\n type: 'object',\n },\n },\n }\n\n obj['requestBody'] = requestBodyData\n }\n return obj\n }),\n }))\n\n return transformedPaths\n}\n\nconst validateBodyForResponse = (content, method) => {\n if (!(content?.schema as any) || !(content?.schema as any)?.properties) {\n return {}\n }\n let _content = JSON.parse((content?.schema as any)?.properties as string)\n\n return _content\n}\n\nexport const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenAPIFile['paths'] => {\n return paths.reduce((acc, { path, methods }) => {\n acc[path] = methods.reduce(\n (methodAcc, { type, tags, responses, summary, requestBody, ...rest }) => {\n // Initialize the method object\n methodAcc[type] = {\n ...rest,\n tags,\n summary,\n responses: responses.reduce((respAcc, { code, content, headers }) => {\n const formattedHeaders: Record<string, any> = {}\n if (headers) {\n for (const [key, value] of Object.entries(headers)) {\n formattedHeaders[key] = {\n description: value.description || '',\n required: value.required || false,\n schema: value.schema || {},\n }\n }\n }\n respAcc[code] = {\n description: 'Success', // Assuming this is static from the original data\n content: content.contentType\n ? {\n [content.contentType]: {\n schema: {\n ...(content.schema as object),\n properties: validateBodyForResponse(content, type),\n },\n },\n }\n : {},\n headers: formattedHeaders,\n }\n return respAcc\n }, {} as Record<string, any>),\n }\n\n const parsedRequestBodyProps =\n type !== 'get' ? JSON.parse(requestBody.content.schema.properties) : {}\n // Add requestBody for non-GET methods\n if (type !== 'get') {\n methodAcc[type].requestBody = {\n content: {\n [requestBody.content.contentType]: {\n schema: {\n ...requestBody.content.schema,\n properties: parsedRequestBodyProps,\n },\n },\n },\n }\n }\n\n return methodAcc\n },\n {} as Record<string, any>\n )\n\n return acc\n }, {} as OpenAPIFile['paths'])\n}\n"],"names":["transformOpenApiObject","openApiJson","components","securitySchemes","authKey","_a","Object","keys","at","type","_d","_c","_b","Public","scheme","tags","assign","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","obj","summary","responses","code","codeProps","contentType","content","headers","schema","properties","JSON","stringify","_e","parameters","requestBody","reqSchema","requestBodyData","validateBodyForResponse","parse","reduce","acc","methodAcc","rest","__rest","respAcc","formattedHeaders","key","value","description","required","parsedRequestBodyProps"],"mappings":"+DAIa,MAAAA,EAA0BC,gBACrC,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,KAChB,QADuBC,EACpC,QADoCC,EAAuB,QAAvBC,EAAAX,aAAW,EAAXA,EAAaC,kBAAU,IAAAU,OAAA,EAAAA,EAC1ET,uBAAe,IAAAQ,OAAA,EAAAA,EAAGP,UAAU,IAAAM,OAAA,EAAAA,EAAAD,KAEnC,MACCR,EAAYC,WAAa,CACvBC,gBAAiB,CACfU,OAAQ,CACNJ,KAAM,OACNK,OAAQ,YAUhB,OAJKb,EAAYc,OACfd,EAAYc,KAAO,IAGdT,OACFU,OAAAV,OAAAU,OAAA,CAAA,EAAAf,GACH,CAAAgB,MAAOC,EAAsBjB,EAAYgB,QACpB,EAGZE,EAAkCC,gBAC7C,MAAMC,EAAMf,OAAAU,OAAAV,OAAAU,OAAA,CAAA,EACPI,GAAM,CACTH,MAAOK,EAA4BF,EAAOH,SAE5C,GAAII,EAAOnB,YAAcmB,EAAOnB,WAAWC,gBAAiB,CAC1D,MAAMC,EAAwD,QAA9CC,EAAAC,OAAOC,KAAKc,EAAOnB,WAAWC,wBAAgB,IAAAE,OAAA,EAAAA,EAAEG,GAAG,GAC/DJ,IACEiB,EAAOnB,WAAWC,gBAAgBC,GAASK,KAAKc,eAAiB,SAASA,gBAC5EF,EAAOnB,WAAWC,gBAAgBC,GAASoB,GAAKH,EAAOnB,WAAWC,gBAAgBC,GAC/EoB,IAELH,EAAOnB,WAAWC,gBAAgBC,GAASK,KAExC,QAF+CC,EAAmC,QAAnCC,EAAkB,QAAlBC,EAAAS,aAAM,EAANA,EAAQnB,kBAAU,IAAAU,OAAA,EAAAA,EAAET,uBAAe,IAAAQ,OAAA,EAAAA,EACnFP,UACC,IAAAM,OAAA,EAAAA,EAAAD,KAEN,CACD,OAAOY,CAAM,EAGFH,EAAyBD,GACXX,OAAOmB,QAAQR,GAAOS,KAAI,EAAEC,EAAMC,MAAc,CACvED,OACAC,QAAStB,OAAOmB,QAAQG,GAASF,KAAI,EAAEG,EAAQC,sBAC7C,MAAMC,iCACDD,GAAW,CACdrB,KAAMoB,EACNd,KAAMe,EAAYf,MAAQ,GAC1BiB,QAASF,EAAYE,SAAW,GAChCC,UAAW3B,OAAOmB,QAAQK,EAAYG,WAAWP,KAAI,EAAEQ,EAAMC,oBAC3D,MAAMC,EAAc9B,OAAOC,KAAK4B,EAAUE,SAAW,CAAE,GAAE,GAEzD,MAAO,CACLH,OACAI,SAHeH,aAAA,EAAAA,EAAWG,SAAeH,EAAUG,QAAf,CAAA,EAIpCD,QAAS,CACPD,cACAG,OACKjC,OAAAU,OAAAV,OAAAU,OAAA,CAAA,EAAkC,QAAlCJ,EAAiB,QAAjBP,EAAA8B,EAAUE,eAAO,IAAAhC,OAAA,EAAAA,EAAG+B,UAAc,IAAAxB,OAAA,EAAAA,EAAA2B,QACrC,CAAAC,WAAYC,KAAKC,UAAoD,QAA1CC,EAAkC,QAAlCjC,EAAiB,QAAjBC,EAAAwB,EAAUE,eAAO,IAAA1B,OAAA,EAAAA,EAAGyB,UAAc,IAAA1B,OAAA,EAAAA,EAAA6B,cAAQ,IAAAI,OAAA,EAAAA,EAAAH,eAG1E,MAUL,IANKV,aAAA,EAAAA,EAAac,cAChBb,EAAIa,WAAa,IAKS,OAAxBf,EAAON,cAAwB,CACjC,MAAMa,EAAc9B,OAAOC,MAA6B,QAAxBF,EAAAyB,eAAAA,EAAae,mBAAW,IAAAxC,OAAA,EAAAA,EAAEgC,UAAW,IAAI,GACnES,EAA6C,QAAjCnC,EAAwB,QAAxBC,EAAAkB,aAAA,EAAAA,EAAae,mBAAW,IAAAjC,OAAA,EAAAA,EAAEyB,eAAO,IAAA1B,OAAA,EAAAA,EAAE4B,OAC/CQ,aAAqD,QAAnCJ,EAAwB,QAAxBjC,EAAAoB,aAAA,EAAAA,EAAae,mBAAW,IAAAnC,OAAA,EAAAA,EAAE2B,eAAS,IAAAM,OAAA,EAAAA,EAAAJ,6BAAQC,YAC/D,CACEH,QAAS,CACPD,cACAG,OACKjC,OAAAU,OAAAV,OAAAU,OAAA,CAAA,EAAA8B,GACH,CAAAN,YAAYM,aAAA,EAAAA,EAAWN,YAAaC,KAAKC,UAAUI,aAAA,EAAAA,EAAWN,YAAc,SAIlF,CACEH,QAAS,CACPD,YAAa,mBACbG,OAAQ,CACNC,WAAY,KACZ/B,KAAM,YAKhBsB,EAAiB,YAAIgB,CACtB,CACD,OAAOhB,CAAG,QAOViB,EAA0B,CAACX,EAASR,aACxC,KAAMQ,eAAAA,EAASE,WAA6C,QAAzBlC,EAAAgC,aAAA,EAAAA,EAASE,cAAgB,IAAAlC,OAAA,EAAAA,EAAAmC,YAC1D,MAAO,GAIT,OAFeC,KAAKQ,MAAgC,QAAzBrC,EAAAyB,eAAAA,EAASE,cAAgB,IAAA3B,OAAA,EAAAA,EAAA4B,WAErC,EAGJlB,EAA+BL,GACnCA,EAAMiC,QAAO,CAACC,GAAOxB,OAAMC,cAChCuB,EAAIxB,GAAQC,EAAQsB,QAClB,CAACE,EAAW/C,KAAA,IAAAI,KAAEA,EAAIM,KAAEA,EAAIkB,UAAEA,EAASD,QAAEA,EAAOa,YAAEA,GAAsBxC,EAANgD,EAAIC,EAAAjD,EAAtD,qDAEV+C,EAAU3C,GACLH,OAAAU,OAAAV,OAAAU,OAAA,CAAA,EAAAqC,IACHtC,OACAiB,UACAC,UAAWA,EAAUiB,QAAO,CAACK,GAAWrB,OAAMG,UAASC,cACrD,MAAMkB,EAAwC,CAAA,EAC9C,GAAIlB,EACF,IAAK,MAAOmB,EAAKC,KAAUpD,OAAOmB,QAAQa,GACxCkB,EAAiBC,GAAO,CACtBE,YAAaD,EAAMC,aAAe,GAClCC,SAAUF,EAAME,WAAY,EAC5BrB,OAAQmB,EAAMnB,QAAU,CAAE,GAkBhC,OAdAgB,EAAQrB,GAAQ,CACdyB,YAAa,UACbtB,QAASA,EAAQD,YACb,CACE,CAACC,EAAQD,aAAc,CACrBG,OACMjC,OAAAU,OAAAV,OAAAU,OAAA,CAAA,EAAAqB,EAAQE,QACZ,CAAAC,WAAYQ,EAAwBX,OAI1C,CAAE,EACNC,QAASkB,GAEJD,CAAO,GACb,CAAA,KAGL,MAAMM,EACK,QAATpD,EAAiBgC,KAAKQ,MAAMJ,EAAYR,QAAQE,OAAOC,YAAc,CAAA,EAevE,MAba,QAAT/B,IACF2C,EAAU3C,GAAMoC,YAAc,CAC5BR,QAAS,CACP,CAACQ,EAAYR,QAAQD,aAAc,CACjCG,OAAMjC,OAAAU,OAAAV,OAAAU,OAAA,CAAA,EACD6B,EAAYR,QAAQE,QACvB,CAAAC,WAAYqB,QAOfT,CAAS,GAElB,CAAyB,GAGpBD,IACN,CAA0B"}
|
|
1
|
+
{"version":3,"file":"layout.helper.js","sources":["../../../src/helpers/layout.helper.ts"],"sourcesContent":["import { TransformedPathsArray } from '@entities/layout.type'\nimport { OpenAPIFile, SecurityScheme } from '@entities/openApi'\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\n\nexport const transformOpenApiObject = (openApiJson: OpenAPIFile): TransformedOpenApi => {\n if (openApiJson.components && openApiJson.components.securitySchemes) {\n const authKey = Object.keys(openApiJson.components.securitySchemes)?.at(0)\n if (authKey) {\n openApiJson.components.securitySchemes[authKey].type = openApiJson?.components\n ?.securitySchemes?.[authKey]?.type as SecurityScheme['type']\n }\n } else {\n openApiJson.components = {\n securitySchemes: {\n Public: {\n type: 'http',\n scheme: 'public',\n },\n },\n }\n }\n\n if (!openApiJson.tags) {\n openApiJson.tags = []\n }\n\n return {\n ...openApiJson,\n paths: transformPathsToArray(openApiJson.paths),\n } as TransformedOpenApi\n}\n\nexport const transformOpenApiObjectToOrigin = (values: TransformedOpenApi): OpenAPIFile => {\n const object = {\n ...values,\n paths: transformPathsArrayToOrigin(values.paths),\n }\n if (object.components && object.components.securitySchemes) {\n const authKey = Object.keys(object.components.securitySchemes)?.at(0)\n if (authKey) {\n if (object.components.securitySchemes[authKey].type.toLowerCase() == 'APIKEY'.toLowerCase()) {\n object.components.securitySchemes[authKey].in = object.components.securitySchemes[authKey]\n .in as SecurityScheme['in']\n }\n object.components.securitySchemes[authKey].type = object?.components?.securitySchemes?.[\n authKey\n ]?.type as SecurityScheme['type']\n }\n }\n return object\n}\n\nexport const transformPathsToArray = (paths: OpenAPIFile['paths']): TransformedPathsArray | any => {\n const transformedPaths = Object.entries(paths).map(([path, methods]) => ({\n path,\n methods: Object.entries(methods).map(([method, methodProps]) => {\n const obj: any = {\n ...methodProps,\n type: method,\n tags: methodProps.tags || [],\n summary: methodProps.summary || '',\n responses: Object.entries(methodProps.responses).map(([code, codeProps]) => {\n const contentType = Object.keys(codeProps.content || {})[0]\n const headers = !codeProps?.headers ? {} : codeProps.headers\n return {\n code,\n headers,\n content: {\n contentType,\n schema: {\n ...codeProps.content?.[contentType]?.schema,\n properties: JSON.stringify(codeProps.content?.[contentType]?.schema?.properties),\n },\n },\n }\n }),\n }\n // Add parameters if it does not exist in the original JSON\n if (!methodProps?.parameters) {\n obj.parameters = []\n }\n\n // load response headers parameters\n\n if (method.toLowerCase() != 'get') {\n const contentType = Object.keys(methodProps?.requestBody?.content || {})[0]\n const reqSchema = methodProps?.requestBody?.content?.schema\n const requestBodyData = methodProps?.requestBody?.content?.schema?.properties\n ? {\n content: {\n contentType,\n schema: {\n ...reqSchema,\n properties: reqSchema?.properties ? JSON.stringify(reqSchema?.properties) : '{}',\n },\n },\n }\n : {\n content: {\n contentType: 'application/json',\n schema: {\n properties: '{}',\n type: 'object',\n },\n },\n }\n\n obj['requestBody'] = requestBodyData\n }\n return obj\n }),\n }))\n\n return transformedPaths\n}\n\nconst validateBodyForResponse = (content, method) => {\n if (!(content?.schema as any) || !(content?.schema as any)?.properties) {\n return {}\n }\n let _content = JSON.parse((content?.schema as any)?.properties as string)\n\n return _content\n}\n\nexport const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenAPIFile['paths'] => {\n return paths.reduce((acc, { path, methods }) => {\n acc[path] = methods.reduce(\n (methodAcc, { type, tags, responses, summary, requestBody, ...rest }) => {\n // Initialize the method object\n methodAcc[type] = {\n ...rest,\n tags,\n summary,\n responses: responses.reduce((respAcc, { code, content, headers }) => {\n const formattedHeaders: Record<string, any> = {}\n if (headers) {\n for (const [key, value] of Object.entries(headers)) {\n formattedHeaders[key] = {\n description: value.description || '',\n required: value.required || false,\n schema: value.schema || {},\n }\n }\n }\n respAcc[code] = {\n description: 'Success', // Assuming this is static from the original data\n content: content.contentType\n ? {\n [content.contentType]: {\n schema: {\n ...(content.schema as object),\n properties: validateBodyForResponse(content, type),\n },\n },\n }\n : {},\n headers: formattedHeaders,\n }\n return respAcc\n }, {} as Record<string, any>),\n }\n\n const parsedRequestBodyProps =\n type !== 'get' ? JSON.parse(requestBody.content.schema.properties) : {}\n // Add requestBody for non-GET methods\n if (type !== 'get') {\n methodAcc[type].requestBody = {\n content: {\n [requestBody.content.contentType]: {\n schema: {\n ...requestBody.content.schema,\n properties: parsedRequestBodyProps,\n },\n },\n },\n }\n }\n\n return methodAcc\n },\n {} as Record<string, any>\n )\n\n return acc\n }, {} as OpenAPIFile['paths'])\n}\n"],"names":["transformOpenApiObject","openApiJson","components","securitySchemes","authKey","_a","Object","keys","at","type","_d","_c","_b","Public","scheme","tags","assign","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","obj","summary","responses","code","codeProps","contentType","content","headers","schema","properties","JSON","stringify","_e","parameters","requestBody","reqSchema","requestBodyData","validateBodyForResponse","parse","reduce","acc","methodAcc","rest","__rest","respAcc","formattedHeaders","key","value","description","required","parsedRequestBodyProps"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Codebox.js","sources":["../../../../../src/layout/docsComponents/Codebox/Codebox.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Light as SyntaxHighlighter } from 'react-syntax-highlighter'\nimport {\n stackoverflowDark,\n stackoverflowLight,\n} from 'react-syntax-highlighter/dist/esm/styles/hljs'\nimport styles from './style.module.scss'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { Copy } from '../../../assets/icons'\nimport { copyToClipboard } from '../../../utils'\n\nconst Codebox = ({ code }: { code: string }) => {\n const [theme, setTheme] = useState<'LIGHT' | 'DARK'>('DARK')\n\n return (\n <div className={styles.codebox}>\n <div className={styles.codebox_header}>\n <div\n role=\"button\"\n tabIndex={-1}\n onClick={() => theme !== 'LIGHT' && setTheme('LIGHT')}\n className={`${styles.codebox_header_themeToggle} ${styles.codebox_header_themeToggle_light}`}\n title=\"Light theme\"\n ></div>\n <div\n role=\"button\"\n tabIndex={-1}\n onClick={() => theme !== 'DARK' && setTheme('DARK')}\n className={`${styles.codebox_header_themeToggle} ${styles.codebox_header_themeToggle_dark}`}\n title=\"Dark theme\"\n ></div>\n <SVGLoader\n src={Copy}\n width=\"0.75rem\"\n height=\"0.75rem\"\n className={styles.codebox_header_copyIcon}\n onClick={() => copyToClipboard(code)}\n />\n </div>\n <SyntaxHighlighter\n language=\"json\"\n style={theme === 'LIGHT' ? stackoverflowLight : stackoverflowDark}\n showLineNumbers\n wrapLines\n customStyle={{\n margin: 0,\n height: '13.75rem',\n overflowY: 'auto',\n padding: '0.75rem 1rem 0 1.5rem',\n backgroundColor: theme === 'DARK' ? '#455162' : '#F7F7F7',\n fontSize: '0.75rem',\n }}\n lineProps={{ className: 'custom-code-line' }}\n >\n {code}\n </SyntaxHighlighter>\n </div>\n )\n}\n\nexport default Codebox\n"],"names":["Codebox","code","theme","setTheme","useState","_jsxs","className","styles","codebox","children","codebox_header","_jsx","role","tabIndex","onClick","codebox_header_themeToggle","codebox_header_themeToggle_light","title","jsx","codebox_header_themeToggle_dark","SVGLoader","src","Copy","width","height","codebox_header_copyIcon","copyToClipboard","SyntaxHighlighter","language","style","stackoverflowLight","stackoverflowDark","showLineNumbers","wrapLines","customStyle","margin","overflowY","padding","backgroundColor","fontSize","lineProps"],"mappings":"glBAWA,MAAMA,EAAU,EAAGC,WACjB,MAAOC,EAAOC,GAAYC,EAA2B,QAErD,OACEC,OAAK,MAAA,CAAAC,UAAWC,EAAOC,QAAOC,SAAA,CAC5BJ,EAAAA,KAAK,MAAA,CAAAC,UAAWC,EAAOG,eAAcD,SAAA,CACnCE,aACEC,KAAK,SACLC,UAAW,EACXC,QAAS,IAAgB,UAAVZ,GAAqBC,EAAS,SAC7CG,UAAW,GAAGC,EAAOQ,8BAA8BR,EAAOS,mCAC1DC,MAAM,gBAERN,EACEO,IAAA,MAAA,CAAAN,KAAK,SACLC,UAAW,EACXC,QAAS,IAAgB,SAAVZ,GAAoBC,EAAS,QAC5CG,UAAW,GAAGC,EAAOQ,8BAA8BR,EAAOY,kCAC1DF,MAAM,eAERN,EAAAO,IAACE,EAAS,CACRC,IAAKC,EACLC,MAAM,UACNC,OAAO,UACPlB,UAAWC,EAAOkB,wBAClBX,QAAS,IAAMY,EAAgBzB,QAGnCU,MAACgB,EAAiB,CAChBC,SAAS,OACTC,MAAiB,UAAV3B,EAAoB4B,EAAqBC,EAChDC,iBAAe,EACfC,WAAS,EACTC,YAAa,CACXC,OAAQ,EACRX,OAAQ,WACRY,UAAW,OACXC,QAAS,wBACTC,gBAA2B,SAAVpC,EAAmB,UAAY,UAChDqC,SAAU,WAEZC,UAAW,CAAElC,UAAW,oBAAoBG,SAE3CR
|
|
1
|
+
{"version":3,"file":"Codebox.js","sources":["../../../../../src/layout/docsComponents/Codebox/Codebox.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Light as SyntaxHighlighter } from 'react-syntax-highlighter'\nimport {\n stackoverflowDark,\n stackoverflowLight,\n} from 'react-syntax-highlighter/dist/esm/styles/hljs'\nimport styles from './style.module.scss'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { Copy } from '../../../assets/icons'\nimport { copyToClipboard } from '../../../utils'\n\nconst Codebox = ({ code }: { code: string }) => {\n const [theme, setTheme] = useState<'LIGHT' | 'DARK'>('DARK')\n\n return (\n <div className={styles.codebox}>\n <div className={styles.codebox_header}>\n <div\n role=\"button\"\n tabIndex={-1}\n onClick={() => theme !== 'LIGHT' && setTheme('LIGHT')}\n className={`${styles.codebox_header_themeToggle} ${styles.codebox_header_themeToggle_light}`}\n title=\"Light theme\"\n ></div>\n <div\n role=\"button\"\n tabIndex={-1}\n onClick={() => theme !== 'DARK' && setTheme('DARK')}\n className={`${styles.codebox_header_themeToggle} ${styles.codebox_header_themeToggle_dark}`}\n title=\"Dark theme\"\n ></div>\n <SVGLoader\n src={Copy}\n width=\"0.75rem\"\n height=\"0.75rem\"\n className={styles.codebox_header_copyIcon}\n onClick={() => copyToClipboard(code)}\n />\n </div>\n <SyntaxHighlighter\n language=\"json\"\n style={theme === 'LIGHT' ? stackoverflowLight : stackoverflowDark}\n showLineNumbers\n wrapLines\n customStyle={{\n margin: 0,\n height: '13.75rem',\n overflowY: 'auto',\n padding: '0.75rem 1rem 0 1.5rem',\n backgroundColor: theme === 'DARK' ? '#455162' : '#F7F7F7',\n fontSize: '0.75rem',\n }}\n lineProps={{ className: 'custom-code-line' }}\n >\n {code}\n </SyntaxHighlighter>\n </div>\n )\n}\n\nexport default Codebox\n"],"names":["Codebox","code","theme","setTheme","useState","_jsxs","className","styles","codebox","children","codebox_header","_jsx","role","tabIndex","onClick","codebox_header_themeToggle","codebox_header_themeToggle_light","title","jsx","codebox_header_themeToggle_dark","SVGLoader","src","Copy","width","height","codebox_header_copyIcon","copyToClipboard","SyntaxHighlighter","language","style","stackoverflowLight","stackoverflowDark","showLineNumbers","wrapLines","customStyle","margin","overflowY","padding","backgroundColor","fontSize","lineProps"],"mappings":"glBAWA,MAAMA,EAAU,EAAGC,WACjB,MAAOC,EAAOC,GAAYC,EAA2B,QAErD,OACEC,OAAK,MAAA,CAAAC,UAAWC,EAAOC,QAAOC,SAAA,CAC5BJ,EAAAA,KAAK,MAAA,CAAAC,UAAWC,EAAOG,eAAcD,SAAA,CACnCE,aACEC,KAAK,SACLC,UAAW,EACXC,QAAS,IAAgB,UAAVZ,GAAqBC,EAAS,SAC7CG,UAAW,GAAGC,EAAOQ,8BAA8BR,EAAOS,mCAC1DC,MAAM,gBAERN,EACEO,IAAA,MAAA,CAAAN,KAAK,SACLC,UAAW,EACXC,QAAS,IAAgB,SAAVZ,GAAoBC,EAAS,QAC5CG,UAAW,GAAGC,EAAOQ,8BAA8BR,EAAOY,kCAC1DF,MAAM,eAERN,EAAAO,IAACE,EAAS,CACRC,IAAKC,EACLC,MAAM,UACNC,OAAO,UACPlB,UAAWC,EAAOkB,wBAClBX,QAAS,IAAMY,EAAgBzB,QAGnCU,MAACgB,EAAiB,CAChBC,SAAS,OACTC,MAAiB,UAAV3B,EAAoB4B,EAAqBC,EAChDC,iBAAe,EACfC,WAAS,EACTC,YAAa,CACXC,OAAQ,EACRX,OAAQ,WACRY,UAAW,OACXC,QAAS,wBACTC,gBAA2B,SAAVpC,EAAmB,UAAY,UAChDqC,SAAU,WAEZC,UAAW,CAAElC,UAAW,oBAAoBG,SAE3CR"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../../../_virtual/jsx-runtime.js";import{useState as s}from"react";import o from"../Codebox/Codebox.js";import{d as i}from"../../../../_virtual/index.js";import{httpStatusCodes as l}from"../../../constants/index.js";import{handleStatusColor as
|
|
1
|
+
import{j as e}from"../../../../_virtual/jsx-runtime.js";import{useState as s}from"react";import o from"../Codebox/Codebox.js";import{d as i}from"../../../../_virtual/index.js";import{httpStatusCodes as l}from"../../../constants/index.js";import{handleStatusColor as d}from"../../../helpers/methodAccordion.helper.js";import t from"./style.module.scss.js";const n=l.map((s=>({label:e.jsxs("div",{className:t.statusCodeOptionContainer,children:[e.jsx("div",{className:t.statusCodeOptionCircle,style:{backgroundColor:d(s)}}),e.jsx("span",{children:s})]}),value:String(s)}))),a=({data:l})=>{var d,a;const[r,c]=s(n[4]),u=Object.entries(l.responses).map((([e,s])=>({code:e,data:s}))).find((e=>e.code===r.value));return e.jsxs("aside",{className:t.apiDocsAside,children:[e.jsx("h2",{className:t.apiDocsAside_title,children:l.summary}),e.jsxs("h4",{className:t.apiDocsAside_subtitle,children:[e.jsx("span",{className:t.apiDocsAside_subtitle_method,"data-method":l.method,children:l.method})," ",e.jsx("span",{children:l.path})]}),!["delete","get"].includes(l.method)&&(null===(d=null==l?void 0:l.requestBody)||void 0===d?void 0:d.content)&&e.jsxs("div",{className:t.codeboxSection,children:[e.jsx("div",{className:t.codeboxHeader,children:e.jsx("h6",{className:t.codeboxTitle,children:"Request"})}),e.jsx(o,{code:(()=>{var e,s,o,i,d;if(null===(e=null==l?void 0:l.requestBody)||void 0===e?void 0:e.content){const e=Object.keys(null===(s=null==l?void 0:l.requestBody)||void 0===s?void 0:s.content)[0];return JSON.stringify(null===(d=null===(i=null===(o=null==l?void 0:l.requestBody)||void 0===o?void 0:o.content[e])||void 0===i?void 0:i.schema)||void 0===d?void 0:d.properties,null,2)}return"{}"})()})]}),(null===(a=Object.keys((null==l?void 0:l.responses)||{}))||void 0===a?void 0:a.length)>0&&e.jsxs("div",{className:t.codeboxSection,children:[e.jsxs("div",{className:`${t.codeboxHeader}`,children:[e.jsx("h6",{className:t.codeboxTitle,children:"Response"}),e.jsx(i.SelectGroup,{size:"small",withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:n}],value:r,onChange:e=>{c(e)}})]}),e.jsx(o,{code:(()=>{var e,s,o,i;if(null==u?void 0:u.data){const l=Object.keys(null===(e=u.data)||void 0===e?void 0:e.content)[0];return JSON.stringify(null===(i=null===(o=null===(s=u.data)||void 0===s?void 0:s.content[l])||void 0===o?void 0:o.schema)||void 0===i?void 0:i.properties,null,2)}return"{}"})()})]})]})};export{a as default};
|
|
2
2
|
//# sourceMappingURL=DocsAside.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocsAside.js","sources":["../../../../../src/layout/docsComponents/DocsAside/DocsAside.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { EndpointData } from 'src/layout/docsLayout'\nimport Codebox from '../Codebox/Codebox'\nimport { Option, SelectGroup } from 'digitinary-ui'\nimport { httpStatusCodes } from '../../../constants/index'\nimport { handleStatusColor } from '../../../helpers/methodAccordion.helper'\nimport styles from './style.module.scss'\n\nconst httpStatusCodeOptions: Option[] = httpStatusCodes.map((code) => ({\n label: (\n <div className={styles.statusCodeOptionContainer}>\n <div\n className={styles.statusCodeOptionCircle}\n style={{ backgroundColor: handleStatusColor(code) }}\n ></div>\n <span>{code}</span>\n </div>\n ),\n value: String(code),\n}))\n\nconst DocsAside = ({ data }: { data: EndpointData }) => {\n const [selectedResStatusCode, setSelectedResStatusCode] = useState(httpStatusCodeOptions[4])\n const currentResponse = Object.entries(data.responses)\n .map(([code, data]) => ({ code, data }))\n .find((res) => res.code === selectedResStatusCode.value)\n\n const stringifyRequestBody = () => {\n if (data?.requestBody?.content) {\n const contentKey = Object.keys(data?.requestBody?.content)[0]\n return JSON.stringify(data?.requestBody?.content[contentKey], null, 2)\n } else {\n return '{}'\n }\n }\n\n const stringifyResponseBody = () => {\n if (currentResponse?.data) {\n const contentKey = Object.keys(currentResponse.data?.content)[0]\n return JSON.stringify(currentResponse.data?.content[contentKey], null, 2)\n } else {\n return '{}'\n }\n }\n\n return (\n <aside className={styles.apiDocsAside}>\n <h2 className={styles.apiDocsAside_title}>{data.summary}</h2>\n <h4 className={styles.apiDocsAside_subtitle}>\n <span className={styles.apiDocsAside_subtitle_method} data-method={data.method}>\n {data.method}\n </span>{' '}\n <span>{data.path}</span>\n </h4>\n {data?.requestBody?.content && (\n <div className={styles.codeboxSection}>\n <div className={styles.codeboxHeader}>\n <h6 className={styles.codeboxTitle}>Request</h6>\n </div>\n\n <Codebox code={stringifyRequestBody()} />\n </div>\n )}\n {Object.keys(data?.responses || {})?.length > 0 && (\n <div className={styles.codeboxSection}>\n <div className={`${styles.codeboxHeader}`}>\n <h6 className={styles.codeboxTitle}>Response</h6>\n <SelectGroup\n size=\"small\"\n withSearch={false}\n isMultiple={false}\n clearable={false}\n placeholder=\"200\"\n options={[\n {\n list: httpStatusCodeOptions,\n },\n ]}\n value={selectedResStatusCode}\n onChange={(value) => {\n setSelectedResStatusCode(value)\n }}\n />\n </div>\n\n <Codebox code={stringifyResponseBody()} />\n </div>\n )}\n </aside>\n )\n}\n\nexport default DocsAside\n"],"names":["httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","className","styles","statusCodeOptionContainer","children","_jsx","statusCodeOptionCircle","style","backgroundColor","handleStatusColor","value","String","DocsAside","data","selectedResStatusCode","setSelectedResStatusCode","useState","currentResponse","Object","entries","responses","find","res","
|
|
1
|
+
{"version":3,"file":"DocsAside.js","sources":["../../../../../src/layout/docsComponents/DocsAside/DocsAside.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { EndpointData } from 'src/layout/docsLayout'\nimport Codebox from '../Codebox/Codebox'\nimport { Option, SelectGroup } from 'digitinary-ui'\nimport { httpStatusCodes } from '../../../constants/index'\nimport { handleStatusColor } from '../../../helpers/methodAccordion.helper'\nimport styles from './style.module.scss'\n\nconst httpStatusCodeOptions: Option[] = httpStatusCodes.map((code) => ({\n label: (\n <div className={styles.statusCodeOptionContainer}>\n <div\n className={styles.statusCodeOptionCircle}\n style={{ backgroundColor: handleStatusColor(code) }}\n ></div>\n <span>{code}</span>\n </div>\n ),\n value: String(code),\n}))\n\nconst DocsAside = ({ data }: { data: EndpointData }) => {\n const [selectedResStatusCode, setSelectedResStatusCode] = useState(httpStatusCodeOptions[4])\n const currentResponse = Object.entries(data.responses)\n .map(([code, data]) => ({ code, data }))\n .find((res) => res.code === selectedResStatusCode.value)\n\n const stringifyRequestBody = () => {\n if (data?.requestBody?.content) {\n const contentKey = Object.keys(data?.requestBody?.content)[0]\n return JSON.stringify(data?.requestBody?.content[contentKey]?.schema?.properties, null, 2)\n } else {\n return '{}'\n }\n }\n\n const stringifyResponseBody = () => {\n if (currentResponse?.data) {\n const contentKey = Object.keys(currentResponse.data?.content)[0]\n return JSON.stringify(currentResponse.data?.content[contentKey]?.schema?.properties, null, 2)\n } else {\n return '{}'\n }\n }\n\n return (\n <aside className={styles.apiDocsAside}>\n <h2 className={styles.apiDocsAside_title}>{data.summary}</h2>\n <h4 className={styles.apiDocsAside_subtitle}>\n <span className={styles.apiDocsAside_subtitle_method} data-method={data.method}>\n {data.method}\n </span>{' '}\n <span>{data.path}</span>\n </h4>\n {!['delete', 'get'].includes(data.method) && data?.requestBody?.content && (\n <div className={styles.codeboxSection}>\n <div className={styles.codeboxHeader}>\n <h6 className={styles.codeboxTitle}>Request</h6>\n </div>\n\n <Codebox code={stringifyRequestBody()} />\n </div>\n )}\n {Object.keys(data?.responses || {})?.length > 0 && (\n <div className={styles.codeboxSection}>\n <div className={`${styles.codeboxHeader}`}>\n <h6 className={styles.codeboxTitle}>Response</h6>\n <SelectGroup\n size=\"small\"\n withSearch={false}\n isMultiple={false}\n clearable={false}\n placeholder=\"200\"\n options={[\n {\n list: httpStatusCodeOptions,\n },\n ]}\n value={selectedResStatusCode}\n onChange={(value) => {\n setSelectedResStatusCode(value)\n }}\n />\n </div>\n\n <Codebox code={stringifyResponseBody()} />\n </div>\n )}\n </aside>\n )\n}\n\nexport default DocsAside\n"],"names":["httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","className","styles","statusCodeOptionContainer","children","_jsx","statusCodeOptionCircle","style","backgroundColor","handleStatusColor","value","String","DocsAside","data","selectedResStatusCode","setSelectedResStatusCode","useState","currentResponse","Object","entries","responses","find","res","jsxs","apiDocsAside","apiDocsAside_title","summary","apiDocsAside_subtitle","apiDocsAside_subtitle_method","method","path","includes","_a","requestBody","content","codeboxSection","codeboxHeader","codeboxTitle","jsx","Codebox","contentKey","keys","_b","JSON","stringify","_e","_d","_c","schema","properties","stringifyRequestBody","length","SelectGroup","size","withSearch","isMultiple","clearable","placeholder","options","list","onChange","stringifyResponseBody"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as t}from"../../../../_virtual/jsx-runtime.js";import{
|
|
1
|
+
import{j as t}from"../../../../_virtual/jsx-runtime.js";import{useRef as e,useEffect as a}from"react";import{OverviewPage as i}from"./OverviewPage/index.js";import{EndpointPage as r}from"./EndpointPage/index.js";const o=({data:o,activeType:s,setActiveItemData:n,setActiveType:v,onProductNavigate:c,apis:m})=>{const d=e(null);return a((()=>{var t;"OVERVIEW"===s&&(null==d?void 0:d.current)&&(null===(t=null==d?void 0:d.current)||void 0===t||t.scrollTo({top:0,behavior:"smooth"}))}),[o,s]),t.jsx("main",{ref:d,children:"OVERVIEW"===s?t.jsx(i,{data:o,setActiveItemData:n,setActiveType:v,onProductNavigate:c,apis:m}):t.jsx(r,{data:o,setActiveType:v,setActiveItemData:n})})};export{o as default};
|
|
2
2
|
//# sourceMappingURL=DocsContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocsContent.js","sources":["../../../../../src/layout/docsComponents/DocsContent/DocsContent.tsx"],"sourcesContent":["import React from 'react'\nimport './style.scss'\nimport { OverviewPage } from './OverviewPage'\nimport { EndpointPage } from './EndpointPage'\nimport { EndpointData, OverviewData } from 'src/layout/docsLayout'\n\nconst DocsContent = ({\n data,\n activeType,\n setActiveItemData,\n setActiveType,\n
|
|
1
|
+
{"version":3,"file":"DocsContent.js","sources":["../../../../../src/layout/docsComponents/DocsContent/DocsContent.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react'\nimport './style.scss'\nimport { OverviewPage } from './OverviewPage'\nimport { EndpointPage } from './EndpointPage'\nimport { EndpointData, OverviewData } from 'src/layout/docsLayout'\n\nconst DocsContent = ({\n data,\n activeType,\n setActiveItemData,\n setActiveType,\n onProductNavigate,\n apis,\n}: {\n data: OverviewData | EndpointData\n activeType: 'OVERVIEW' | 'ENDPOINT'\n setActiveItemData: React.Dispatch<React.SetStateAction<OverviewData | EndpointData>>\n setActiveType: React.Dispatch<React.SetStateAction<'OVERVIEW' | 'ENDPOINT'>>\n onProductNavigate?: (productId: number) => void\n apis: OverviewData[]\n}) => {\n const containerRef = useRef(null)\n\n useEffect(() => {\n // This will scroll to the top when changing the overview\n if (activeType === 'OVERVIEW' && containerRef?.current) {\n containerRef?.current?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n }, [data, activeType])\n return (\n <main ref={containerRef}>\n {activeType === 'OVERVIEW' ? (\n <OverviewPage\n data={data as OverviewData}\n setActiveItemData={setActiveItemData}\n setActiveType={setActiveType}\n onProductNavigate={onProductNavigate}\n apis={apis}\n />\n ) : (\n <EndpointPage\n data={data as EndpointData}\n setActiveType={setActiveType}\n setActiveItemData={setActiveItemData}\n />\n )}\n </main>\n )\n}\n\nexport default DocsContent\n"],"names":["DocsContent","data","activeType","setActiveItemData","setActiveType","onProductNavigate","apis","containerRef","useRef","useEffect","current","_a","scrollTo","top","behavior","_jsx","ref","children","OverviewPage","EndpointPage"],"mappings":"oNAMA,MAAMA,EAAc,EAClBC,OACAC,aACAC,oBACAC,gBACAC,oBACAC,WASA,MAAMC,EAAeC,EAAO,MAQ5B,OANAC,GAAU,WAEW,aAAfP,IAA6BK,aAAY,EAAZA,EAAcG,mBAC7CC,EAAAJ,aAAY,EAAZA,EAAcG,wBAASE,SAAS,CAAEC,IAAK,EAAGC,SAAU,cAErD,CAACb,EAAMC,IAERa,EAAAA,IAAM,OAAA,CAAAC,IAAKT,EACRU,SAAe,aAAff,EACCa,EAAAA,IAACG,EACC,CAAAjB,KAAMA,EACNE,kBAAmBA,EACnBC,cAAeA,EACfC,kBAAmBA,EACnBC,KAAMA,IAGRS,EAAAA,IAACI,EACC,CAAAlB,KAAMA,EACNG,cAAeA,EACfD,kBAAmBA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../../../../_virtual/jsx-runtime.js";import s from"../../../../components/SVGLoader/SVGLoader.js";import l from"../../../../assets/icons/DownArrow.svg.js";import
|
|
1
|
+
import{j as e}from"../../../../../_virtual/jsx-runtime.js";import s from"../../../../components/SVGLoader/SVGLoader.js";import l from"../../../../assets/icons/DownArrow.svg.js";import i from"../../../../assets/icons/CopySticker.svg.js";import a from"../../../../assets/icons/RequestOption.svg.js";import t from"../../../../assets/icons/ArrowBack.svg.js";import{d}from"../../../../../_virtual/index.js";import{useState as o,useEffect as r}from"react";import{handleStatusColor as n}from"../../../../helpers/methodAccordion.helper.js";import{httpStatusCodes as c}from"../../../../constants/index.js";import h from"../../Codebox/style.module.scss.js";import m from"../../../../components/Tooltip/Tooltip.js";import{useSectionToggle as v,SectionEnum as p}from"../../../../context/SectionToggleContext.js";import{capitalizeFirstLetter as j}from"../../../../utils/index.js";const x=({data:x,setActiveType:u,setActiveItemData:b})=>{var N,y,f;const[C,g]=o("header"),{toggleSection:w}=v(),S=c.map((s=>({label:e.jsxs("div",{className:"statusCodeOptionContainer",children:[e.jsx("div",{className:"statusCodeOptionCircle",style:{backgroundColor:n(s)}}),e.jsx("span",{children:s})]}),value:s}))),[T,k]=o(null),[q,O]=o(S[4]),[R,A]=o({});return((null==x?void 0:x.parameters)||[]).filter((e=>{var s;return(null===(s=e.in)||void 0===s?void 0:s.toLowerCase())===C.toLowerCase()})),r((()=>{if(q&&q.value){const e=null==x?void 0:x.responses[q.value];A(null==e?void 0:e.headers)}}),[q]),e.jsxs("div",{className:"api-details-expanded",children:[e.jsxs("div",{className:"test-button",children:[e.jsx("button",{className:"back-button",onClick:()=>{w(x.api.apiSpecId,[{type:p.OVERVIEW,setTo:!0}],{resetOthers:!0,filterKeys:[p.RESOURCE]}),u("OVERVIEW"),b(x.api)},children:e.jsx(s,{src:t})}),e.jsx(m,{content:"Comming soon",children:e.jsx("button",{className:"disabled",children:"Test"})})]}),e.jsx("h3",{children:x.api.title}),e.jsx("h1",{className:"api-title",children:null==x?void 0:x.summary}),e.jsxs("div",{className:"url-box",children:[e.jsxs("div",{style:{textAlign:"center"},children:[e.jsx("span",{className:`method-label ${null===(N=null==x?void 0:x.method)||void 0===N?void 0:N.toLowerCase()}`,children:x.method}),e.jsx("span",{className:"url-text",children:null==x?void 0:x.path})]}),e.jsx("span",{className:"icon",onClick:()=>navigator.clipboard.writeText(null==x?void 0:x.path),children:e.jsx(s,{src:i})})]}),e.jsx("p",{className:"api-desc",children:(null==x?void 0:x.description)||"No Description"}),e.jsx("h3",{children:"Request"}),e.jsxs("div",{className:"request-section",children:[e.jsx("div",{className:"request-tabs",children:["header","path","query","Body"].map((l=>e.jsxs("button",{className:"tab "+(C===l?"active":""),onClick:()=>g(l),children:[e.jsx(s,{src:a,className:"icon-left"}),e.jsx("span",{className:"tab-label",children:"requestBody"===l?"Request Body":l.charAt(0).toUpperCase()+l.slice(1)})]},l)))}),e.jsx("div",{className:"table-wrapper",children:e.jsxs("table",{className:"param-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"head-table-label",children:"Parameter Name"}),e.jsx("th",{className:"head-table-label",children:"Required"}),e.jsx("th",{className:"head-table-label",children:"Type"}),e.jsx("th",{className:"head-table-label",children:"Enum"}),e.jsx("th",{className:"head-table-label",children:"Description"})]})}),e.jsx("tbody",{children:null===(y=x.parameters)||void 0===y?void 0:y.filter((e=>{var s;return(null===(s=e.in)||void 0===s?void 0:s.toLowerCase())===C.toLowerCase()})).map(((i,a)=>{var t,d,o,r,n,c,h;return e.jsxs("tr",{children:[e.jsx("td",{children:i.name}),e.jsx("td",{children:i.required?"True":"False"}),e.jsxs("td",{style:{textTransform:"capitalize"},children:[e.jsx("span",{children:(null===(t=null==i?void 0:i.schema)||void 0===t?void 0:t.type)||"-"}),"array"===(null===(d=null==i?void 0:i.schema)||void 0===d?void 0:d.type)&&(null===(r=null===(o=null==i?void 0:i.schema)||void 0===o?void 0:o.items)||void 0===r?void 0:r.type)&&e.jsxs("span",{style:{color:"#616874",fontSize:"0.75rem"},children:["_",j(null===(c=null===(n=i.schema)||void 0===n?void 0:n.items)||void 0===c?void 0:c.type)]})]}),e.jsx("td",{children:Array.isArray(null===(h=i.schema)||void 0===h?void 0:h.enum)?i.schema.enum.join(" / "):"-"}),e.jsxs("td",{className:"desc-cell",children:[e.jsx("div",{className:"desc-text "+(T===a?"expanded":""),children:i.description||"No description"}),e.jsx("button",{className:"desc-toggle",onClick:()=>k(T===a?null:a),children:e.jsx(s,{src:l,className:T===a?"rotated":""})})]})]},a)}))})]})})]}),e.jsxs("div",{className:"response-section",children:[e.jsx("h3",{children:"Response"}),e.jsx("div",{style:{width:"7.5rem",marginLeft:"auto"},children:(null===(f=Object.keys((null==x?void 0:x.responses)||{}))||void 0===f?void 0:f.length)>0&&e.jsx("div",{className:h.codeboxSection,children:e.jsx("div",{className:`${h.codeboxHeader}`,children:e.jsx(d.SelectGroup,{size:"small",withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:S}],value:q,onChange:e=>{O(e)}})})})}),e.jsxs("button",{className:"tab active ",children:[e.jsx(s,{src:a,className:"icon-left"}),"Header"]}),e.jsx("div",{className:"table-wrapper",children:e.jsxs("table",{className:"param-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"head-table-label",children:"Header Name"}),e.jsx("th",{className:"head-table-label",children:"Required"}),e.jsx("th",{className:"head-table-label",children:"Type"}),e.jsx("th",{className:"head-table-label",children:"Enum"}),e.jsx("th",{className:"head-table-label",children:"Description"})]})}),e.jsx("tbody",{children:!!R&&Object.keys(R)&&Object.keys(R).map((s=>{var l,i,a,t,d,o,r,n,c,h,m,v,p,x,u;return e.jsxs("tr",{children:[e.jsx("td",{children:s}),e.jsx("td",{children:null===(l=R[s])||void 0===l?void 0:l.required.toString()}),e.jsxs("td",{style:{textTransform:"capitalize"},children:[e.jsx("span",{children:(null===(a=null===(i=R[s])||void 0===i?void 0:i.schema)||void 0===a?void 0:a.type)||"-"}),"array"===(null===(d=null===(t=R[s])||void 0===t?void 0:t.schema)||void 0===d?void 0:d.type)&&(null===(n=null===(r=null===(o=R[s])||void 0===o?void 0:o.schema)||void 0===r?void 0:r.items)||void 0===n?void 0:n.type)&&e.jsxs("span",{style:{color:"#616874",fontSize:"0.75rem"},children:["_",j(null===(m=null===(h=null===(c=R[s])||void 0===c?void 0:c.schema)||void 0===h?void 0:h.items)||void 0===m?void 0:m.type)]})]}),e.jsx("td",{children:null===(x=null===(p=null===(v=R[s])||void 0===v?void 0:v.schema)||void 0===p?void 0:p.enum)||void 0===x?void 0:x.join("/")}),e.jsx("td",{children:null===(u=R[s])||void 0===u?void 0:u.description})]})}))})]})})]})]})};export{x as EndpointPage};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|