@digi-frontend/dgate-api-documentation 1.0.18 → 1.0.21

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.
Files changed (30) hide show
  1. package/dist/_virtual/index3.js +1 -1
  2. package/dist/_virtual/index4.js +1 -1
  3. package/dist/_virtual/index5.js +1 -1
  4. package/dist/_virtual/index6.js +1 -1
  5. package/dist/node_modules/toposort/index.js +1 -1
  6. package/dist/node_modules/yup/index.esm.js +1 -1
  7. package/dist/src/components/InfoForm/InfoForm.js +1 -1
  8. package/dist/src/components/InfoForm/InfoForm.js.map +1 -1
  9. package/dist/src/components/LivePreview/LivePreview.js +1 -1
  10. package/dist/src/components/LivePreview/LivePreview.js.map +1 -1
  11. package/dist/src/components/MethodAccordion/MethodAccordion.js +1 -1
  12. package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
  13. package/dist/src/components/table/table.js +1 -1
  14. package/dist/src/components/table/table.js.map +1 -1
  15. package/dist/src/components/table/tags-table.js +1 -1
  16. package/dist/src/components/table/tags-table.js.map +1 -1
  17. package/dist/src/layout/layout.js +1 -1
  18. package/dist/src/layout/layout.js.map +1 -1
  19. package/dist/styles.css +298 -280
  20. package/dist/types/components/MethodAccordion/MethodAccordion.d.ts +4 -3
  21. package/dist/types/layout/layout.d.ts +2 -1
  22. package/package.json +2 -2
  23. package/src/components/InfoForm/InfoForm.module.scss +13 -0
  24. package/src/components/InfoForm/InfoForm.tsx +32 -18
  25. package/src/components/LivePreview/LivePreview.tsx +29 -6
  26. package/src/components/MethodAccordion/MethodAccordion.module.scss +13 -0
  27. package/src/components/MethodAccordion/MethodAccordion.tsx +60 -18
  28. package/src/components/table/table.tsx +1 -0
  29. package/src/components/table/tags-table.tsx +2 -2
  30. package/src/layout/layout.tsx +15 -3
@@ -1 +1 @@
1
- {"version":3,"file":"MethodAccordion.js","sources":["../../../../src/components/MethodAccordion/MethodAccordion.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\r\nimport { Accordion, Button, SelectGroup, Switch, TextArea } from 'digitinary-ui'\r\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\r\nimport {\r\n CheckMarkSquare,\r\n DeleteIcon,\r\n DownArrowIcon,\r\n EditIcon,\r\n deleteOutlinedIcon,\r\n} from '../../assets/icons'\r\nimport { httpStatusCodes, methodColorMapping, paramsTableHeaders } from '../../constants/index'\r\nimport Tooltip from '../../components/Tooltip/Tooltip'\r\nimport { TransformedMethod } from '../../types/layout.type'\r\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\r\nimport { capitalize, handleStatusColor } from '../../helpers/methodAccordion.helper'\r\nimport ParamterTable from '../table/table'\r\nimport CommonDialog from '../../components/dialog'\r\nimport JsonInput from '../../components/JsonInput/JsonInput'\r\nimport styles from './MethodAccordion.module.scss'\r\n\r\nconst httpStatusCodeOptions = httpStatusCodes.map((code) => ({\r\n label: (\r\n <div className={styles.statusCodeOptionContainer}>\r\n <div\r\n className={styles.statusCodeOptionCircle}\r\n style={{ backgroundColor: handleStatusColor(code) }}\r\n ></div>\r\n <span>{code}</span>\r\n </div>\r\n ),\r\n value: code,\r\n}))\r\n\r\nconst MethodsAccordion = ({\r\n method,\r\n path,\r\n setFieldValue,\r\n readOnly,\r\n}: {\r\n method: TransformedMethod\r\n path: string\r\n setFieldValue?: (key: string, value: string) => void\r\n readOnly?: boolean\r\n handleSave: () => void\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState({\r\n request: false,\r\n response: false,\r\n method: false,\r\n })\r\n const [isFormOpen, setIsFormOpen] = useState(false)\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tableData, setTableData] = useState([])\r\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\r\n const [selectedParamIndex, setSelectedParamIndex] = useState<number | null>(null)\r\n const [selectedParamName, setSelectedParamName] = useState<string | null>(null)\r\n const [tableRecords, setTableRecords] = useState()\r\n\r\n const [selectedStatusCode, setSelectedStatusCode] = useState(httpStatusCodeOptions[4])\r\n const currentResponse =\r\n method.responses.find((res) => Number(res.code) === selectedStatusCode.value) || '{}'\r\n\r\n const onTableChange = (key, value, index) => {\r\n const newTableData = tableData.map((item, tIndex) => {\r\n if (tIndex === index) {\r\n return { ...item, [key]: value }\r\n } else {\r\n return item\r\n }\r\n })\r\n\r\n setTableData(newTableData)\r\n }\r\n\r\n const generateTableData = (items) => {\r\n return items.map((item, index) => {\r\n return {\r\n id: index,\r\n paramName: item.name,\r\n paramType: capitalize(item.in),\r\n schemaType: capitalize(item.schema?.type) || '',\r\n required: (\r\n <>\r\n {readOnly ? (\r\n item.required ? (\r\n 'True'\r\n ) : (\r\n 'False'\r\n )\r\n ) : (\r\n <Switch\r\n checked={item.required}\r\n onClick={() => {\r\n if (readOnly) {\r\n return null\r\n }\r\n onTableChange('required', !item.required, index)\r\n setFieldValue(`parameters[${index}][required]`, !item.required)\r\n }}\r\n />\r\n )}\r\n </>\r\n ),\r\n description: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) =>\r\n setTooltipRefs((prev) => ({\r\n ...prev,\r\n [index]: instance,\r\n }))\r\n }\r\n content={\r\n <div className={styles.editDescTooltipContent}>\r\n <p className={styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n placeholder=\"Describe parameter...\"\r\n value={item.description}\r\n disabled={readOnly}\r\n onChange={(value) => onTableChange('description', value, index)}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(`parameters[${index}].description`, item.description)\r\n tooltipRefs[index]?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly ? (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n // endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {item.description ? item.description.substring(0, 12) : '-'}\r\n {item.description && item.description.length > 12 ? '...' : ''}\r\n </Button>\r\n ) : (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly ? 'View ' : 'Add '} Description\r\n </Button>\r\n )}\r\n </Tooltip>\r\n\r\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\r\n onClick={() => handleDeleteClick(index, item.name)}\r\n ></Button>\r\n )}\r\n </div>\r\n ),\r\n }\r\n })\r\n }\r\n\r\n const confirmDeleteParameter = () => {\r\n if (selectedParamIndex !== null) {\r\n setTableData((prev) => prev.filter((_, i) => i !== selectedParamIndex))\r\n setFieldValue(\r\n `parameters`,\r\n method?.parameters?.filter((_, i) => i !== selectedParamIndex)\r\n )\r\n }\r\n setOpenDeleteDialog(false)\r\n setSelectedParamIndex(null)\r\n }\r\n\r\n const handleDeleteClick = (id: number, name: string) => {\r\n setSelectedParamIndex(id)\r\n setSelectedParamName(name)\r\n\r\n setOpenDeleteDialog(true)\r\n }\r\n\r\n const saveNewRow = (values) => {\r\n setTableData([...tableData, values])\r\n setFieldValue(`parameters`, [...method.parameters, values])\r\n }\r\n\r\n useEffect(() => {\r\n setTableRecords(generateTableData(tableData))\r\n }, [tableData])\r\n\r\n useEffect(() => {\r\n if (method?.parameters) {\r\n setTableRecords(generateTableData(method.parameters))\r\n setTableData(method.parameters)\r\n }\r\n }, [method, path])\r\n\r\n return (\r\n <div>\r\n <Accordion\r\n expanded={isExpanded.method}\r\n onChange={() => setIsExpanded((prev) => ({ ...prev, method: !prev.method }))}\r\n className={`${styles.methodAccordion} ${readOnly ? styles.readOnly : ''}`}\r\n summary={\r\n <div className={styles.methodSummaryContainer}>\r\n <div className={styles.methodSummary}>\r\n <span\r\n style={{\r\n backgroundColor: methodColorMapping?.[method?.type]?.color || '#3A6CD1',\r\n }}\r\n className={styles.methodLabel}\r\n >\r\n {methodColorMapping?.[method?.type]?.label || method?.type}\r\n </span>\r\n <span className={styles.methodPath}>{path}</span>\r\n </div>\r\n <div\r\n className={`${styles.methodExpandArrowContainer} ${\r\n isExpanded.method ? styles.expanded : ''\r\n }`}\r\n >\r\n <SVGLoader src={DownArrowIcon} width=\"2rem\" height=\"2rem\" />\r\n </div>\r\n </div>\r\n }\r\n children={\r\n <div className={styles.methodAccordionContent}>\r\n {!readOnly ? (\r\n <TextArea\r\n className={styles.methodDesc}\r\n label=\"Description\"\r\n placeholder=\"Describe the method's purpose and functionality...\"\r\n value={method?.description}\r\n onChange={(value) => setFieldValue('description', value)}\r\n />\r\n ) : (\r\n <SimpleLabelValue\r\n key={'description'}\r\n label={'Description: '}\r\n value={method?.description || '-'}\r\n />\r\n )}\r\n <div className={styles.paramsTable}>\r\n <ParamterTable\r\n id=\"paramter-table\"\r\n data={tableRecords}\r\n headCells={paramsTableHeaders}\r\n isFormOpen={isFormOpen}\r\n setIsFormOpen={setIsFormOpen}\r\n saveNewRow={saveNewRow}\r\n readOnly={readOnly}\r\n />\r\n </div>\r\n\r\n {method?.type !== 'get' && (\r\n <Accordion\r\n expanded={isExpanded.request}\r\n onChange={() => null}\r\n className={styles.requestAccordion}\r\n summary={\r\n <span className={styles.requestAccordionSummary}>\r\n <div\r\n className={styles.requestAccordionSummary_title}\r\n onClick={() =>\r\n setIsExpanded((prev) => ({\r\n ...prev,\r\n request: !prev.request,\r\n }))\r\n }\r\n >\r\n <SVGLoader\r\n className={isExpanded.request ? styles.expanded : ''}\r\n src={DownArrowIcon}\r\n width=\"2rem\"\r\n height=\"2rem\"\r\n />\r\n Request\r\n {method?.type !== 'delete' && <span style={{ color: 'red' }}>*</span>}\r\n </div>\r\n </span>\r\n }\r\n children={\r\n <JsonInput\r\n withFooter={!readOnly}\r\n className={'jsonField'}\r\n placeholder=\"Enter your request body as a JSON object....\"\r\n fieldIsDisabled={readOnly}\r\n value={method?.requestBody?.content?.schema?.properties || '{}'}\r\n onChange={(value: string) => {\r\n setFieldValue('requestBody.content.schema.properties', value)\r\n }}\r\n onValidation={() => null}\r\n />\r\n }\r\n />\r\n )}\r\n\r\n <Accordion\r\n expanded={isExpanded.response}\r\n onChange={() => null}\r\n className={styles.responseAccordion}\r\n summary={\r\n <span className={styles.responseAccordionSummary}>\r\n <div\r\n className={styles.responseAccordionSummary_title}\r\n onClick={() =>\r\n setIsExpanded((prev) => ({\r\n ...prev,\r\n response: !prev.response,\r\n }))\r\n }\r\n >\r\n <SVGLoader\r\n className={isExpanded.response ? styles.expanded : ''}\r\n src={DownArrowIcon}\r\n width=\"2rem\"\r\n height=\"2rem\"\r\n />\r\n Response<span style={{ color: 'red' }}>*</span>\r\n </div>\r\n\r\n <SelectGroup\r\n withSearch={false}\r\n isMultiple={false}\r\n clearable={false}\r\n placeholder=\"200\"\r\n options={[\r\n {\r\n list: httpStatusCodeOptions,\r\n },\r\n ]}\r\n value={selectedStatusCode}\r\n onChange={(value) => {\r\n setSelectedStatusCode(value)\r\n }}\r\n />\r\n </span>\r\n }\r\n children={\r\n <JsonInput\r\n withFooter={!readOnly}\r\n className={'jsonField'}\r\n placeholder=\"Enter your response as a JSON object...\"\r\n fieldIsDisabled={readOnly}\r\n value={currentResponse?.content?.schema?.properties || '{}'}\r\n onChange={(value) => {\r\n const currentResIndex = method.responses.findIndex(\r\n (res) => res.code === currentResponse.code\r\n )\r\n\r\n if (currentResIndex !== -1) {\r\n setFieldValue(\r\n `responses[${currentResIndex}].content.schema.properties`,\r\n value\r\n )\r\n } else {\r\n const clonedResponses = structuredClone(method.responses)\r\n\r\n clonedResponses.push({\r\n code: selectedStatusCode.value.toString(),\r\n content: {\r\n contentType: 'application/json',\r\n schema: {\r\n type: 'object',\r\n properties: value,\r\n },\r\n },\r\n })\r\n\r\n setFieldValue('responses', clonedResponses)\r\n }\r\n }}\r\n onValidation={() => null}\r\n />\r\n }\r\n />\r\n </div>\r\n }\r\n />\r\n <CommonDialog\r\n status=\"error\"\r\n content={\r\n <p\r\n style={{\r\n textAlign: 'center',\r\n fontWeight: 400,\r\n fontSize: '1rem',\r\n lineHeight: '1.4375rem',\r\n }}\r\n className=\"delete-msg-container\"\r\n >\r\n Are you sure you want to delete\r\n <span className=\"plan-name\">{` Parameter ${selectedParamName} `}</span>?\r\n </p>\r\n }\r\n onSubmit={{\r\n onClick: confirmDeleteParameter,\r\n text: 'Yes',\r\n color: 'error',\r\n fullWidth: true,\r\n }}\r\n onCancel={{\r\n text: 'No',\r\n color: 'normal',\r\n fullWidth: true,\r\n }}\r\n onClose={() => setOpenDeleteDialog(false)}\r\n open={openDeleteDialog}\r\n icon={<SVGLoader src={deleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default MethodsAccordion\r\n"],"names":["httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","className","styles","statusCodeOptionContainer","children","_jsx","statusCodeOptionCircle","style","backgroundColor","handleStatusColor","value","MethodsAccordion","method","path","setFieldValue","readOnly","isExpanded","setIsExpanded","useState","request","response","isFormOpen","setIsFormOpen","tooltipRefs","setTooltipRefs","tableData","setTableData","openDeleteDialog","setOpenDeleteDialog","selectedParamIndex","setSelectedParamIndex","selectedParamName","setSelectedParamName","tableRecords","setTableRecords","selectedStatusCode","setSelectedStatusCode","currentResponse","responses","find","res","Number","onTableChange","key","index","newTableData","item","tIndex","Object","assign","generateTableData","items","id","paramName","name","paramType","capitalize","in","schemaType","_a","schema","type","required","jsx","_Fragment","Switch","checked","onClick","description","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","prev","content","jsxs","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","disabled","onChange","Button","editDescTooltipContent_btn","variant","size","hide","editDescBtn","color","substring","length","endIcon","SVGLoader","src","EditIcon","width","height","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteClick","useEffect","parameters","Accordion","expanded","methodAccordion","summary","methodSummaryContainer","methodSummary","methodColorMapping","methodLabel","methodPath","methodExpandArrowContainer","DownArrowIcon","methodAccordionContent","SimpleLabelValue","methodDesc","paramsTable","ParamterTable","data","headCells","paramsTableHeaders","saveNewRow","values","requestAccordion","requestAccordionSummary","requestAccordionSummary_title","JsonInput","withFooter","fieldIsDisabled","_e","_c","requestBody","_d","properties","onValidation","responseAccordion","responseAccordionSummary","responseAccordionSummary_title","SelectGroup","withSearch","isMultiple","clearable","options","list","_g","_f","currentResIndex","findIndex","clonedResponses","structuredClone","push","toString","contentType","CommonDialog","status","textAlign","fontWeight","fontSize","lineHeight","onSubmit","filter","_","i","text","fullWidth","onCancel","onClose","open","icon","deleteOutlinedIcon"],"mappings":"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"}
1
+ {"version":3,"file":"MethodAccordion.js","sources":["../../../../src/components/MethodAccordion/MethodAccordion.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\r\nimport { Accordion, Button, SelectGroup, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\r\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\r\nimport { DeleteIcon, DownArrowIcon, EditIcon, deleteOutlinedIcon } from '../../assets/icons'\r\nimport { httpStatusCodes, methodColorMapping, paramsTableHeaders } from '../../constants/index'\r\nimport Tooltip from '../../components/Tooltip/Tooltip'\r\nimport { TransformedMethod } from '../../types/layout.type'\r\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\r\nimport { capitalize, handleStatusColor } from '../../helpers/methodAccordion.helper'\r\nimport ParamterTable from '../table/table'\r\nimport CommonDialog from '../../components/dialog'\r\nimport JsonInput from '../../components/JsonInput/JsonInput'\r\nimport styles from './MethodAccordion.module.scss'\r\nimport { Tags } from '@entities/openApi'\r\n\r\nconst httpStatusCodeOptions = httpStatusCodes.map((code) => ({\r\n label: (\r\n <div className={styles.statusCodeOptionContainer}>\r\n <div\r\n className={styles.statusCodeOptionCircle}\r\n style={{ backgroundColor: handleStatusColor(code) }}\r\n ></div>\r\n <span>{code}</span>\r\n </div>\r\n ),\r\n value: code,\r\n}))\r\n\r\nconst MethodsAccordion = ({\r\n method,\r\n path,\r\n setFieldValue,\r\n readOnly,\r\n tags,\r\n}: {\r\n method: TransformedMethod\r\n path: string\r\n setFieldValue?: (key: string, value: string | string[]) => void\r\n readOnly?: boolean\r\n tags: Tags[]\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState({\r\n request: false,\r\n response: false,\r\n method: false,\r\n })\r\n const [isFormOpen, setIsFormOpen] = useState(false)\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tableData, setTableData] = useState([])\r\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\r\n const [selectedParamIndex, setSelectedParamIndex] = useState<number | null>(null)\r\n const [selectedParamName, setSelectedParamName] = useState<string | null>(null)\r\n const [tableRecords, setTableRecords] = useState()\r\n const [selectionTags, setSelectionTags] = useState([])\r\n const [selectedStatusCode, setSelectedStatusCode] = useState(httpStatusCodeOptions[4])\r\n const currentResponse =\r\n method.responses.find((res) => Number(res.code) === selectedStatusCode.value) || '{}'\r\n\r\n const onTableChange = (key, value, index) => {\r\n const newTableData = tableData.map((item, tIndex) => {\r\n if (tIndex === index) {\r\n return { ...item, [key]: value }\r\n } else {\r\n return item\r\n }\r\n })\r\n\r\n setTableData(newTableData)\r\n }\r\n\r\n const generateTableData = (items) => {\r\n return items.map((item, index) => {\r\n return {\r\n id: index,\r\n paramName: item.name,\r\n paramType: capitalize(item.in),\r\n schemaType: capitalize(item.schema?.type) || '',\r\n required: (\r\n <>\r\n {readOnly ? (\r\n item.required ? (\r\n 'True'\r\n ) : (\r\n 'False'\r\n )\r\n ) : (\r\n <Switch\r\n checked={item.required}\r\n onClick={() => {\r\n if (readOnly) {\r\n return null\r\n }\r\n onTableChange('required', !item.required, index)\r\n setFieldValue(`parameters[${index}][required]`, !item.required)\r\n }}\r\n />\r\n )}\r\n </>\r\n ),\r\n description: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) =>\r\n setTooltipRefs((prev) => ({\r\n ...prev,\r\n [index]: instance,\r\n }))\r\n }\r\n content={\r\n <div className={styles.editDescTooltipContent}>\r\n <p className={styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n placeholder=\"Describe parameter...\"\r\n value={item.description}\r\n disabled={readOnly}\r\n onChange={(value) => onTableChange('description', value, index)}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(`parameters[${index}].description`, item.description)\r\n tooltipRefs[index]?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly || method.parameters[index].description?.length > 0 ? (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {method.parameters[index].description\r\n ? method.parameters[index].description.substring(0, 12)\r\n : '-'}\r\n {method.parameters[index].description &&\r\n method.parameters[index].description.length > 12\r\n ? '...'\r\n : ''}\r\n </Button>\r\n ) : (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly ? 'View ' : 'Add '} Description\r\n </Button>\r\n )}\r\n </Tooltip>\r\n\r\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\r\n onClick={() => handleDeleteClick(index, item.name)}\r\n ></Button>\r\n )}\r\n </div>\r\n ),\r\n }\r\n })\r\n }\r\n\r\n const confirmDeleteParameter = () => {\r\n if (selectedParamIndex !== null) {\r\n setTableData((prev) => prev.filter((_, i) => i !== selectedParamIndex))\r\n setFieldValue(\r\n `parameters`,\r\n method?.parameters?.filter((_, i) => i !== selectedParamIndex)\r\n )\r\n }\r\n setOpenDeleteDialog(false)\r\n setSelectedParamIndex(null)\r\n }\r\n\r\n const handleDeleteClick = (id: number, name: string) => {\r\n setSelectedParamIndex(id)\r\n setSelectedParamName(name)\r\n\r\n setOpenDeleteDialog(true)\r\n }\r\n\r\n const saveNewRow = (values) => {\r\n setTableData([...tableData, values])\r\n setFieldValue(`parameters`, [...method.parameters, values])\r\n }\r\n\r\n useEffect(() => {\r\n setTableRecords(generateTableData(tableData))\r\n }, [tableData])\r\n\r\n useEffect(() => {\r\n if (method?.parameters) {\r\n setTableRecords(generateTableData(method.parameters))\r\n setTableData(method.parameters)\r\n }\r\n }, [method, path])\r\n\r\n useEffect(() => {\r\n // prepare tags selection list\r\n if (!selectionTags.length) {\r\n const convertedStringArray = (method?.tags || [])?.map((item) => ({\r\n label: capitalize(item),\r\n value: item,\r\n }))\r\n const mergedArray = [\r\n ...convertedStringArray,\r\n ...(tags || []).map((item) => ({ label: capitalize(item.name), value: item.name })),\r\n ]\r\n\r\n const filteredArray = mergedArray.filter(\r\n (value, index, self) => index === self.findIndex((t) => t.value === value.value)\r\n )\r\n setSelectionTags(filteredArray)\r\n }\r\n }, [tags, method])\r\n\r\n return (\r\n <div>\r\n <Accordion\r\n expanded={isExpanded.method}\r\n onChange={() => setIsExpanded((prev) => ({ ...prev, method: !prev.method }))}\r\n className={`${styles.methodAccordion} ${readOnly ? styles.readOnly : ''}`}\r\n summary={\r\n <div className={styles.methodSummaryContainer}>\r\n <div className={styles.methodSummary}>\r\n <span\r\n style={{\r\n backgroundColor: methodColorMapping?.[method?.type]?.color || '#3A6CD1',\r\n }}\r\n className={styles.methodLabel}\r\n >\r\n {methodColorMapping?.[method?.type]?.label || method?.type}\r\n </span>\r\n <span className={styles.methodPath}>{path}</span>\r\n </div>\r\n <div\r\n className={`${styles.methodExpandArrowContainer} ${\r\n isExpanded.method ? styles.expanded : ''\r\n }`}\r\n >\r\n <SVGLoader src={DownArrowIcon} width=\"2rem\" height=\"2rem\" />\r\n </div>\r\n </div>\r\n }\r\n children={\r\n <div className={styles.methodAccordionContent}>\r\n <SelectGroup\r\n className={styles.methodDesc}\r\n disabled={readOnly}\r\n placeholder=\"Select Tags\"\r\n label=\"Tags\"\r\n value={method.tags?.map((t) => ({\r\n label: capitalize(t),\r\n value: t,\r\n }))}\r\n onChange={(item) => {\r\n setFieldValue(\r\n 'tags',\r\n item.map((i) => i.value)\r\n )\r\n }}\r\n options={[\r\n {\r\n list: selectionTags,\r\n },\r\n ]}\r\n isMultiple={true}\r\n withSearch={false}\r\n clearable={false}\r\n />\r\n {!readOnly ? (\r\n <TextArea\r\n className={styles.methodDesc}\r\n label=\"Description\"\r\n placeholder=\"Describe the method's purpose and functionality...\"\r\n value={method?.description}\r\n onChange={(value) => setFieldValue('description', value)}\r\n />\r\n ) : (\r\n <SimpleLabelValue\r\n key={'description'}\r\n label={'Description: '}\r\n value={method?.description || '-'}\r\n />\r\n )}\r\n <div className={styles.paramsTable}>\r\n <ParamterTable\r\n id=\"paramter-table\"\r\n data={tableRecords}\r\n headCells={paramsTableHeaders}\r\n isFormOpen={isFormOpen}\r\n setIsFormOpen={setIsFormOpen}\r\n saveNewRow={saveNewRow}\r\n readOnly={readOnly}\r\n />\r\n </div>\r\n {method?.type !== 'get' && (\r\n <Accordion\r\n expanded={isExpanded.request}\r\n onChange={() => null}\r\n className={styles.requestAccordion}\r\n summary={\r\n <span className={styles.requestAccordionSummary}>\r\n <div\r\n className={styles.requestAccordionSummary_title}\r\n onClick={() =>\r\n setIsExpanded((prev) => ({\r\n ...prev,\r\n request: !prev.request,\r\n }))\r\n }\r\n >\r\n <SVGLoader\r\n className={isExpanded.request ? styles.expanded : ''}\r\n src={DownArrowIcon}\r\n width=\"2rem\"\r\n height=\"2rem\"\r\n />\r\n Request\r\n {method?.type !== 'delete' && <span style={{ color: 'red' }}>*</span>}\r\n </div>\r\n </span>\r\n }\r\n children={\r\n <JsonInput\r\n withFooter={!readOnly}\r\n className={'jsonField'}\r\n placeholder=\"Enter your request body as a JSON object....\"\r\n fieldIsDisabled={readOnly}\r\n value={method?.requestBody?.content?.schema?.properties || '{}'}\r\n onChange={(value: string) => {\r\n setFieldValue('requestBody.content.schema.properties', value)\r\n }}\r\n onValidation={() => null}\r\n />\r\n }\r\n />\r\n )}\r\n <Accordion\r\n expanded={isExpanded.response}\r\n onChange={() => null}\r\n className={styles.responseAccordion}\r\n summary={\r\n <span className={styles.responseAccordionSummary}>\r\n <div\r\n className={styles.responseAccordionSummary_title}\r\n onClick={() =>\r\n setIsExpanded((prev) => ({\r\n ...prev,\r\n response: !prev.response,\r\n }))\r\n }\r\n >\r\n <SVGLoader\r\n className={isExpanded.response ? styles.expanded : ''}\r\n src={DownArrowIcon}\r\n width=\"2rem\"\r\n height=\"2rem\"\r\n />\r\n Response<span style={{ color: 'red' }}>*</span>\r\n </div>\r\n\r\n <SelectGroup\r\n withSearch={false}\r\n isMultiple={false}\r\n clearable={false}\r\n placeholder=\"200\"\r\n options={[\r\n {\r\n list: httpStatusCodeOptions,\r\n },\r\n ]}\r\n value={selectedStatusCode}\r\n onChange={(value) => {\r\n setSelectedStatusCode(value)\r\n }}\r\n />\r\n </span>\r\n }\r\n children={\r\n <JsonInput\r\n withFooter={!readOnly}\r\n className={'jsonField'}\r\n placeholder=\"Enter your response as a JSON object...\"\r\n fieldIsDisabled={readOnly}\r\n value={currentResponse?.content?.schema?.properties || '{}'}\r\n onChange={(value) => {\r\n const currentResIndex = method.responses.findIndex(\r\n (res) => res.code === currentResponse.code\r\n )\r\n\r\n if (currentResIndex !== -1) {\r\n setFieldValue(\r\n `responses[${currentResIndex}].content.schema.properties`,\r\n value\r\n )\r\n } else {\r\n const clonedResponses = structuredClone(method.responses)\r\n\r\n clonedResponses.push({\r\n code: selectedStatusCode.value.toString(),\r\n content: {\r\n contentType: 'application/json',\r\n schema: {\r\n type: 'object',\r\n properties: value,\r\n },\r\n },\r\n })\r\n\r\n setFieldValue('responses', clonedResponses)\r\n }\r\n }}\r\n onValidation={() => null}\r\n />\r\n }\r\n />\r\n </div>\r\n }\r\n />\r\n <CommonDialog\r\n status=\"error\"\r\n content={\r\n <p\r\n style={{\r\n textAlign: 'center',\r\n fontWeight: 400,\r\n fontSize: '1rem',\r\n lineHeight: '1.4375rem',\r\n }}\r\n className=\"delete-msg-container\"\r\n >\r\n Are you sure you want to delete\r\n <span className=\"plan-name\">{` Parameter ${selectedParamName} `}</span>?\r\n </p>\r\n }\r\n onSubmit={{\r\n onClick: confirmDeleteParameter,\r\n text: 'Yes',\r\n color: 'error',\r\n fullWidth: true,\r\n }}\r\n onCancel={{\r\n text: 'No',\r\n color: 'normal',\r\n fullWidth: true,\r\n }}\r\n onClose={() => setOpenDeleteDialog(false)}\r\n open={openDeleteDialog}\r\n icon={<SVGLoader src={deleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default MethodsAccordion\r\n"],"names":["httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","className","styles","statusCodeOptionContainer","children","_jsx","statusCodeOptionCircle","style","backgroundColor","handleStatusColor","value","MethodsAccordion","method","path","setFieldValue","readOnly","tags","isExpanded","setIsExpanded","useState","request","response","isFormOpen","setIsFormOpen","tooltipRefs","setTooltipRefs","tableData","setTableData","openDeleteDialog","setOpenDeleteDialog","selectedParamIndex","setSelectedParamIndex","selectedParamName","setSelectedParamName","tableRecords","setTableRecords","selectionTags","setSelectionTags","selectedStatusCode","setSelectedStatusCode","currentResponse","responses","find","res","Number","onTableChange","key","index","newTableData","item","tIndex","Object","assign","generateTableData","items","id","paramName","name","paramType","capitalize","in","schemaType","_a","schema","type","required","jsx","_Fragment","Switch","checked","onClick","description","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","prev","content","jsxs","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","disabled","onChange","Button","editDescTooltipContent_btn","variant","size","hide","_b","parameters","length","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","substring","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteClick","useEffect","filteredArray","filter","self","findIndex","t","Accordion","expanded","methodAccordion","summary","methodSummaryContainer","methodSummary","methodColorMapping","methodLabel","methodPath","methodExpandArrowContainer","DownArrowIcon","methodAccordionContent","SelectGroup","methodDesc","_c","i","options","list","isMultiple","withSearch","clearable","SimpleLabelValue","paramsTable","ParamterTable","data","headCells","paramsTableHeaders","saveNewRow","values","requestAccordion","requestAccordionSummary","requestAccordionSummary_title","JsonInput","withFooter","fieldIsDisabled","_f","_e","_d","requestBody","properties","onValidation","responseAccordion","responseAccordionSummary","responseAccordionSummary_title","_h","_g","currentResIndex","clonedResponses","structuredClone","push","toString","contentType","CommonDialog","status","textAlign","fontWeight","fontSize","lineHeight","onSubmit","_","text","fullWidth","onCancel","onClose","open","icon","deleteOutlinedIcon"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as a}from"react";import{d as r}from"../../../_virtual/index.js";import i from"../Tooltip/Tooltip.js";import l from"../SVGLoader/SVGLoader.js";import s from"../../assets/icons/DeleteIcon.svg.js";import t from"../../assets/icons/EditIcon.svg.js";import d from"../../assets/icons/AddRow.svg.js";import n from"../MethodAccordion/MethodAccordion.module.scss.js";import{useFormik as o}from"../../../node_modules/formik/dist/formik.esm.js";import{object as c,string as m,bool as h}from"../../../node_modules/yup/index.esm.js";import{capitalize as u}from"../../helpers/methodAccordion.helper.js";const p=({id:p,headCells:j,data:v,isFormOpen:b,setIsFormOpen:x,saveNewRow:N,readOnly:C})=>{const[y,g]=a(""),[T,w]=a(null),{values:D,errors:f,setFieldValue:S,isValid:I,submitForm:k,resetForm:_}=o({initialValues:{name:"",in:"Query",schema:{type:"String"},required:!0,description:""},validationSchema:c().shape({name:m().required("Parameter name is required"),in:m().required("Paramter type is required"),schema:c().shape({type:m().required("Parameter schema type is required")}),required:h().optional(),description:m().optional()}),onSubmit:e=>{N(e),x(!1),g(""),_()}});return e.jsx("div",{className:"tableSectionContainer",children:e.jsx("div",{className:"tableContainer",children:e.jsxs("table",{id:p||"",className:"table borderRadiusTop borderRadiusBottom",children:[e.jsx("thead",{className:"tableHead",children:e.jsx("tr",{children:null==j?void 0:j.map((a=>e.jsx("th",{className:`tableHeadCell ${a.classes||""}`,style:{width:a.width,minWidth:a.minWidth},children:e.jsx("div",{className:"headContainer","data-id":`${"string"==typeof a.label?a.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g,"_"):"UNKNOWN_LABEL"}_COLUMN`,children:a.label})},a.id)))})}),e.jsxs("tbody",{className:"tableBody","data-id":"TABLE_BODY",children:[null==v?void 0:v.map(((a,r)=>e.jsx("tr",{"data-i":r,className:"row",children:null==j?void 0:j.map((r=>{const i="_"!==a[r.id]&&e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",style:{width:r.width,minWidth:r.minWidth},children:a[r.id]});return e.jsx("td",{style:{width:r.width,minWidth:r.minWidth},children:i},r.id)}))},r))),0===(null==v?void 0:v.length)&&C&&e.jsx("tr",{className:"fallbackTableRow",children:e.jsx("td",{className:"fallbackContainer",colSpan:null==j?void 0:j.length,children:e.jsx("div",{className:"fallbackTextContainer",children:e.jsx("span",{className:"fallbackText",children:" No Data Available"})})})}),b&&!C?e.jsxs("tr",{className:"row",children:[e.jsx("td",{children:e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:e.jsx(r.Input,{placeholder:"Parameter name",size:"large",type:"text",onChange:e=>{S("name",e)},value:D.name,disabled:C})})},"Parameter name"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx(r.SelectGroupV2,{disabled:C,value:{label:u(D.in),value:u(D.in)},onChange:e=>{var a;return S("in",null===(a=null==e?void 0:e.value)||void 0===a?void 0:a.toLowerCase())},options:[{list:[{label:"Query",value:"query"},{label:"Header",value:"header"},{label:"Path",value:"path"},{label:"Body",value:"body"}]}],errorMsg:!!f.in&&f.in,isMultiple:!1,withSearch:!1,clearable:!1})," "]})},"parameter in"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx(r.SelectGroupV2,{disabled:C,clearable:!1,value:{label:u(D.schema.type),value:u(D.schema.type)},errorMsg:!!f.schema&&f.schema,onChange:e=>{var a;return S("schema.type",null===(a=null==e?void 0:e.value)||void 0===a?void 0:a.toLowerCase())},options:[{list:[{label:"String",value:"string"},{label:"Integer",value:"integer"},{label:"Boolean",value:"boolean"},{label:"Object",value:"object"},{label:"Array",value:"array"},{label:"Number",value:"number"}]}],isMultiple:!1,withSearch:!1})," "]})},"parameter schema type"),e.jsx("td",{children:e.jsx("div",{"data-id":"is required",className:"tableData",children:C?e.jsx(e.Fragment,{children:D.required?"True":"False"}):e.jsx(r.Switch,{checked:D.required,onClick:()=>{C||S("required",!D.required)}})})},"parameter required"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsxs("div",{className:n.paramDescContainer,children:[e.jsx(i,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>w(e),content:e.jsxs("div",{className:n.editDescTooltipContent,children:[e.jsx("p",{className:n.editDescTooltipContent_header,children:"Description"}),e.jsx(r.TextArea,{value:y||D.description,onChange:e=>{g(e)},disabled:C,placeholder:"Describe parameter..."}),!C&&e.jsx(r.Button,{className:n.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{S("description",y),null==T||T.hide()},children:"Apply"})]}),children:e.jsxs(r.Button,{className:n.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(l,{src:t,width:"1.5rem",height:"1.5rem"}),children:[C?"View ":"Add "," Description"]})}),e.jsx("div",{className:n.paramDescContainer_separator}),!C&&e.jsx(r.Button,{className:n.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(l,{src:s,width:"1.125rem",height:"1.125rem"}),onClick:()=>{_(),g(""),x(!1)}}),!C&&e.jsx(r.Button,{className:n.deleteParamBtn,variant:"link",color:"success",disabled:!I,endIcon:e.jsx(l,{src:d,width:"0.125rem",height:"0.125rem"}),onClick:()=>{g(""),k()}})]})," "]})},"parameter schema desc")]}):e.jsx(e.Fragment,{children:!C&&e.jsx("tr",{"data-i":"addNew",className:"row",children:e.jsx("td",{colSpan:5,children:e.jsx(r.Button,{variant:"link",color:"primary",onClick:()=>{x((e=>!e))},children:"+ Add Parameter"})})},"addNew")})]})]})})})};export{p as default};
1
+ import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as a}from"react";import{d as i}from"../../../_virtual/index.js";import r from"../Tooltip/Tooltip.js";import l from"../SVGLoader/SVGLoader.js";import s from"../../assets/icons/DeleteIcon.svg.js";import t from"../../assets/icons/EditIcon.svg.js";import d from"../../assets/icons/AddRow.svg.js";import n from"../MethodAccordion/MethodAccordion.module.scss.js";import{useFormik as o}from"../../../node_modules/formik/dist/formik.esm.js";import{object as c,string as m,bool as h}from"../../../node_modules/yup/index.esm.js";import{capitalize as u}from"../../helpers/methodAccordion.helper.js";const p=({id:p,headCells:j,data:v,isFormOpen:b,setIsFormOpen:x,saveNewRow:N,readOnly:C})=>{const[y,g]=a(""),[T,w]=a(null),{values:D,errors:f,setFieldValue:S,isValid:I,submitForm:k,resetForm:_}=o({validateOnMount:!0,initialValues:{name:"",in:"Query",schema:{type:"String"},required:!0,description:""},validationSchema:c().shape({name:m().required("Parameter name is required"),in:m().required("Paramter type is required"),schema:c().shape({type:m().required("Parameter schema type is required")}),required:h().optional(),description:m().optional()}),onSubmit:e=>{N(e),x(!1),g(""),_()}});return e.jsx("div",{className:"tableSectionContainer",children:e.jsx("div",{className:"tableContainer",children:e.jsxs("table",{id:p||"",className:"table borderRadiusTop borderRadiusBottom",children:[e.jsx("thead",{className:"tableHead",children:e.jsx("tr",{children:null==j?void 0:j.map((a=>e.jsx("th",{className:`tableHeadCell ${a.classes||""}`,style:{width:a.width,minWidth:a.minWidth},children:e.jsx("div",{className:"headContainer","data-id":`${"string"==typeof a.label?a.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g,"_"):"UNKNOWN_LABEL"}_COLUMN`,children:a.label})},a.id)))})}),e.jsxs("tbody",{className:"tableBody","data-id":"TABLE_BODY",children:[null==v?void 0:v.map(((a,i)=>e.jsx("tr",{"data-i":i,className:"row",children:null==j?void 0:j.map((i=>{const r="_"!==a[i.id]&&e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",style:{width:i.width,minWidth:i.minWidth},children:a[i.id]});return e.jsx("td",{style:{width:i.width,minWidth:i.minWidth},children:r},i.id)}))},i))),0===(null==v?void 0:v.length)&&C&&e.jsx("tr",{className:"fallbackTableRow",children:e.jsx("td",{className:"fallbackContainer",colSpan:null==j?void 0:j.length,children:e.jsx("div",{className:"fallbackTextContainer",children:e.jsx("span",{className:"fallbackText",children:" No Data Available"})})})}),b&&!C?e.jsxs("tr",{className:"row",children:[e.jsx("td",{children:e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:e.jsx(i.Input,{placeholder:"Parameter name",size:"large",type:"text",onChange:e=>{S("name",e)},value:D.name,disabled:C})})},"Parameter name"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx(i.SelectGroupV2,{disabled:C,value:{label:u(D.in),value:u(D.in)},onChange:e=>{var a;return S("in",null===(a=null==e?void 0:e.value)||void 0===a?void 0:a.toLowerCase())},options:[{list:[{label:"Query",value:"query"},{label:"Header",value:"header"},{label:"Path",value:"path"},{label:"Body",value:"body"}]}],errorMsg:!!f.in&&f.in,isMultiple:!1,withSearch:!1,clearable:!1})," "]})},"parameter in"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx(i.SelectGroupV2,{disabled:C,clearable:!1,value:{label:u(D.schema.type),value:u(D.schema.type)},errorMsg:!!f.schema&&f.schema,onChange:e=>{var a;return S("schema.type",null===(a=null==e?void 0:e.value)||void 0===a?void 0:a.toLowerCase())},options:[{list:[{label:"String",value:"string"},{label:"Integer",value:"integer"},{label:"Boolean",value:"boolean"},{label:"Object",value:"object"},{label:"Array",value:"array"},{label:"Number",value:"number"}]}],isMultiple:!1,withSearch:!1})," "]})},"parameter schema type"),e.jsx("td",{children:e.jsx("div",{"data-id":"is required",className:"tableData",children:C?e.jsx(e.Fragment,{children:D.required?"True":"False"}):e.jsx(i.Switch,{checked:D.required,onClick:()=>{C||S("required",!D.required)}})})},"parameter required"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsxs("div",{className:n.paramDescContainer,children:[e.jsx(r,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>w(e),content:e.jsxs("div",{className:n.editDescTooltipContent,children:[e.jsx("p",{className:n.editDescTooltipContent_header,children:"Description"}),e.jsx(i.TextArea,{value:y||D.description,onChange:e=>{g(e)},disabled:C,placeholder:"Describe parameter..."}),!C&&e.jsx(i.Button,{className:n.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{S("description",y),null==T||T.hide()},children:"Apply"})]}),children:e.jsxs(i.Button,{className:n.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(l,{src:t,width:"1.5rem",height:"1.5rem"}),children:[C?"View ":"Add "," Description"]})}),e.jsx("div",{className:n.paramDescContainer_separator}),!C&&e.jsx(i.Button,{className:n.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(l,{src:s,width:"1.125rem",height:"1.125rem"}),onClick:()=>{_(),g(""),x(!1)}}),!C&&e.jsx(i.Button,{className:n.deleteParamBtn,variant:"link",color:"success",disabled:!I,endIcon:e.jsx(l,{src:d,width:"0.125rem",height:"0.125rem"}),onClick:()=>{g(""),k()}})]})," "]})},"parameter schema desc")]}):e.jsx(e.Fragment,{children:!C&&e.jsx("tr",{"data-i":"addNew",className:"row",children:e.jsx("td",{colSpan:5,children:e.jsx(i.Button,{variant:"link",color:"primary",onClick:()=>{x((e=>!e))},children:"+ Add Parameter"})})},"addNew")})]})]})})})};export{p as default};
2
2
  //# sourceMappingURL=table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["import React, { useState } from 'react'\r\nimport './style.scss'\r\nimport { Button, Input, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\r\nimport Tooltip from '../Tooltip/Tooltip'\r\nimport SVGLoader from '../SVGLoader/SVGLoader'\r\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\r\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\r\nimport { useFormik } from 'formik'\r\nimport * as yup from 'yup'\r\nimport { capitalize } from '../../helpers/methodAccordion.helper'\r\n\r\nconst ParamterTable = ({\r\n id,\r\n headCells,\r\n data,\r\n isFormOpen,\r\n setIsFormOpen,\r\n saveNewRow,\r\n readOnly,\r\n}) => {\r\n const [text, setText] = useState('')\r\n const [tooltipRef, setTooltipRef] = useState(null)\r\n const { values, errors, setFieldValue, isValid, submitForm, resetForm } = useFormik({\r\n initialValues: {\r\n name: '',\r\n in: 'Query',\r\n schema: {\r\n type: 'String',\r\n },\r\n required: true,\r\n description: '',\r\n },\r\n validationSchema: yup.object().shape({\r\n name: yup.string().required('Parameter name is required'),\r\n in: yup.string().required('Paramter type is required'),\r\n schema: yup.object().shape({\r\n type: yup.string().required('Parameter schema type is required'),\r\n }),\r\n required: yup.boolean().optional(),\r\n description: yup.string().optional(),\r\n }),\r\n onSubmit: (values) => {\r\n saveNewRow(values)\r\n setIsFormOpen(false)\r\n setText('')\r\n resetForm()\r\n },\r\n })\r\n\r\n return (\r\n <div className=\"tableSectionContainer\">\r\n <div className=\"tableContainer\">\r\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\r\n <thead className=\"tableHead\">\r\n <tr>\r\n {headCells?.map((headCell) => (\r\n <th\r\n key={headCell.id}\r\n className={`tableHeadCell ${headCell.classes || ''}`}\r\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\r\n >\r\n <div\r\n className=\"headContainer\"\r\n data-id={`${\r\n typeof headCell.label === 'string'\r\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\r\n : 'UNKNOWN_LABEL'\r\n }_COLUMN`}\r\n >\r\n {headCell.label}\r\n </div>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\r\n {data?.map((row, rowIndex) => {\r\n return (\r\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\r\n {headCells?.map((headCell) => {\r\n const cellContent = row[headCell.id] !== '_' && (\r\n <div\r\n data-id=\"TEXT_DESCRIPTION\"\r\n className=\"tableData\"\r\n style={{\r\n width: headCell.width,\r\n minWidth: headCell.minWidth,\r\n }}\r\n >\r\n {row[headCell.id]}\r\n </div>\r\n )\r\n\r\n return (\r\n <td\r\n key={headCell.id}\r\n style={{\r\n width: headCell.width,\r\n minWidth: headCell.minWidth,\r\n }}\r\n >\r\n {cellContent}\r\n </td>\r\n )\r\n })}\r\n </tr>\r\n )\r\n })}\r\n {data?.length === 0 && readOnly && (\r\n <tr className=\"fallbackTableRow\">\r\n <td className=\"fallbackContainer\" colSpan={headCells?.length}>\r\n <div className=\"fallbackTextContainer\">\r\n <span className=\"fallbackText\"> No Data Available</span>\r\n </div>\r\n </td>\r\n </tr>\r\n )}\r\n\r\n {isFormOpen && !readOnly ? (\r\n <tr className={`row`}>\r\n <td key={'Parameter name'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <Input\r\n placeholder=\"Parameter name\"\r\n size=\"large\"\r\n type=\"text\"\r\n // errorMsg={!!errors.name && errors.name}\r\n onChange={(value) => {\r\n setFieldValue('name', value)\r\n }} // Pass the value directly\r\n value={values.name} // Bind value to the state\r\n disabled={readOnly}\r\n />\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter in'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <SelectGroupV2\r\n disabled={readOnly}\r\n value={{\r\n label: capitalize(values.in),\r\n value: capitalize(values.in),\r\n }}\r\n onChange={(item) => setFieldValue('in', item?.value?.toLowerCase())} // Updates state on selection\r\n options={[\r\n {\r\n list: [\r\n { label: 'Query', value: 'query' },\r\n { label: 'Header', value: 'header' },\r\n { label: 'Path', value: 'path' },\r\n { label: 'Body', value: 'body' },\r\n ],\r\n },\r\n ]}\r\n errorMsg={!!errors.in && errors.in}\r\n isMultiple={false}\r\n withSearch={false}\r\n clearable={false}\r\n />{' '}\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter schema type'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <SelectGroupV2\r\n disabled={readOnly}\r\n clearable={false}\r\n value={{\r\n label: capitalize(values.schema.type),\r\n value: capitalize(values.schema.type),\r\n }}\r\n errorMsg={!!errors.schema && errors.schema}\r\n onChange={(item) => setFieldValue('schema.type', item?.value?.toLowerCase())} // Updates state on selection\r\n options={[\r\n {\r\n list: [\r\n { label: 'String', value: 'string' },\r\n { label: 'Integer', value: 'integer' },\r\n { label: 'Boolean', value: 'boolean' },\r\n { label: 'Object', value: 'object' },\r\n { label: 'Array', value: 'array' },\r\n { label: 'Number', value: 'number' },\r\n ],\r\n },\r\n ]}\r\n isMultiple={false}\r\n withSearch={false}\r\n />{' '}\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter required'}>\r\n <div data-id=\"is required\" className=\"tableData\">\r\n {readOnly ? (\r\n <>{values.required ? 'True' : 'False'}</>\r\n ) : (\r\n <Switch\r\n checked={values.required}\r\n onClick={() => {\r\n if (readOnly) {\r\n return\r\n }\r\n setFieldValue('required', !values.required)\r\n }}\r\n />\r\n )}\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter schema desc'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) => setTooltipRef(instance)}\r\n content={\r\n <div className={styles.editDescTooltipContent}>\r\n <p className={styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n value={text || values.description}\r\n onChange={(value) => {\r\n setText(value)\r\n }}\r\n disabled={readOnly}\r\n placeholder=\"Describe parameter...\"\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue('description', text)\r\n tooltipRef?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly ? 'View ' : 'Add '} Description\r\n </Button>\r\n </Tooltip>\r\n\r\n <div className={styles.paramDescContainer_separator}></div>\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={\r\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\r\n }\r\n onClick={() => {\r\n resetForm()\r\n setText('')\r\n setIsFormOpen(false)\r\n }} // Correctly delete the new row\r\n />\r\n )}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"success\"\r\n disabled={!isValid}\r\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\r\n onClick={() => {\r\n setText('')\r\n submitForm()\r\n }} // Save the new row when clicked\r\n />\r\n )}\r\n </div>{' '}\r\n </div>\r\n </td>\r\n </tr>\r\n ) : (\r\n <>\r\n {!readOnly && (\r\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\r\n <td colSpan={5}>\r\n <Button\r\n variant=\"link\"\r\n color=\"primary\"\r\n onClick={() => {\r\n setIsFormOpen((prev) => !prev)\r\n }}\r\n >\r\n + Add Parameter\r\n </Button>\r\n </td>\r\n </tr>\r\n )}\r\n </>\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ParamterTable\r\n"],"names":["ParamterTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","text","setText","useState","tooltipRef","setTooltipRef","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","initialValues","name","in","schema","type","required","description","validationSchema","yup.object","shape","yup.string","yup.boolean","optional","onSubmit","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","length","colSpan","Input","placeholder","size","onChange","value","disabled","SelectGroupV2","capitalize","item","_a","toLowerCase","options","list","errorMsg","isMultiple","withSearch","clearable","_Fragment","Fragment","Switch","checked","onClick","styles","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","editDescTooltipContent","editDescTooltipContent_header","TextArea","Button","editDescTooltipContent_btn","variant","hide","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","height","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow","prev"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["import React, { useState } from 'react'\r\nimport './style.scss'\r\nimport { Button, Input, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\r\nimport Tooltip from '../Tooltip/Tooltip'\r\nimport SVGLoader from '../SVGLoader/SVGLoader'\r\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\r\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\r\nimport { useFormik } from 'formik'\r\nimport * as yup from 'yup'\r\nimport { capitalize } from '../../helpers/methodAccordion.helper'\r\n\r\nconst ParamterTable = ({\r\n id,\r\n headCells,\r\n data,\r\n isFormOpen,\r\n setIsFormOpen,\r\n saveNewRow,\r\n readOnly,\r\n}) => {\r\n const [text, setText] = useState('')\r\n const [tooltipRef, setTooltipRef] = useState(null)\r\n const { values, errors, setFieldValue, isValid, submitForm, resetForm } = useFormik({\r\n validateOnMount: true,\r\n initialValues: {\r\n name: '',\r\n in: 'Query',\r\n schema: {\r\n type: 'String',\r\n },\r\n required: true,\r\n description: '',\r\n },\r\n validationSchema: yup.object().shape({\r\n name: yup.string().required('Parameter name is required'),\r\n in: yup.string().required('Paramter type is required'),\r\n schema: yup.object().shape({\r\n type: yup.string().required('Parameter schema type is required'),\r\n }),\r\n required: yup.boolean().optional(),\r\n description: yup.string().optional(),\r\n }),\r\n onSubmit: (values) => {\r\n saveNewRow(values)\r\n setIsFormOpen(false)\r\n setText('')\r\n resetForm()\r\n },\r\n })\r\n\r\n return (\r\n <div className=\"tableSectionContainer\">\r\n <div className=\"tableContainer\">\r\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\r\n <thead className=\"tableHead\">\r\n <tr>\r\n {headCells?.map((headCell) => (\r\n <th\r\n key={headCell.id}\r\n className={`tableHeadCell ${headCell.classes || ''}`}\r\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\r\n >\r\n <div\r\n className=\"headContainer\"\r\n data-id={`${\r\n typeof headCell.label === 'string'\r\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\r\n : 'UNKNOWN_LABEL'\r\n }_COLUMN`}\r\n >\r\n {headCell.label}\r\n </div>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\r\n {data?.map((row, rowIndex) => {\r\n return (\r\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\r\n {headCells?.map((headCell) => {\r\n const cellContent = row[headCell.id] !== '_' && (\r\n <div\r\n data-id=\"TEXT_DESCRIPTION\"\r\n className=\"tableData\"\r\n style={{\r\n width: headCell.width,\r\n minWidth: headCell.minWidth,\r\n }}\r\n >\r\n {row[headCell.id]}\r\n </div>\r\n )\r\n\r\n return (\r\n <td\r\n key={headCell.id}\r\n style={{\r\n width: headCell.width,\r\n minWidth: headCell.minWidth,\r\n }}\r\n >\r\n {cellContent}\r\n </td>\r\n )\r\n })}\r\n </tr>\r\n )\r\n })}\r\n {data?.length === 0 && readOnly && (\r\n <tr className=\"fallbackTableRow\">\r\n <td className=\"fallbackContainer\" colSpan={headCells?.length}>\r\n <div className=\"fallbackTextContainer\">\r\n <span className=\"fallbackText\"> No Data Available</span>\r\n </div>\r\n </td>\r\n </tr>\r\n )}\r\n\r\n {isFormOpen && !readOnly ? (\r\n <tr className={`row`}>\r\n <td key={'Parameter name'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <Input\r\n placeholder=\"Parameter name\"\r\n size=\"large\"\r\n type=\"text\"\r\n // errorMsg={!!errors.name && errors.name}\r\n onChange={(value) => {\r\n setFieldValue('name', value)\r\n }} // Pass the value directly\r\n value={values.name} // Bind value to the state\r\n disabled={readOnly}\r\n />\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter in'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <SelectGroupV2\r\n disabled={readOnly}\r\n value={{\r\n label: capitalize(values.in),\r\n value: capitalize(values.in),\r\n }}\r\n onChange={(item) => setFieldValue('in', item?.value?.toLowerCase())} // Updates state on selection\r\n options={[\r\n {\r\n list: [\r\n { label: 'Query', value: 'query' },\r\n { label: 'Header', value: 'header' },\r\n { label: 'Path', value: 'path' },\r\n { label: 'Body', value: 'body' },\r\n ],\r\n },\r\n ]}\r\n errorMsg={!!errors.in && errors.in}\r\n isMultiple={false}\r\n withSearch={false}\r\n clearable={false}\r\n />{' '}\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter schema type'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <SelectGroupV2\r\n disabled={readOnly}\r\n clearable={false}\r\n value={{\r\n label: capitalize(values.schema.type),\r\n value: capitalize(values.schema.type),\r\n }}\r\n errorMsg={!!errors.schema && errors.schema}\r\n onChange={(item) => setFieldValue('schema.type', item?.value?.toLowerCase())} // Updates state on selection\r\n options={[\r\n {\r\n list: [\r\n { label: 'String', value: 'string' },\r\n { label: 'Integer', value: 'integer' },\r\n { label: 'Boolean', value: 'boolean' },\r\n { label: 'Object', value: 'object' },\r\n { label: 'Array', value: 'array' },\r\n { label: 'Number', value: 'number' },\r\n ],\r\n },\r\n ]}\r\n isMultiple={false}\r\n withSearch={false}\r\n />{' '}\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter required'}>\r\n <div data-id=\"is required\" className=\"tableData\">\r\n {readOnly ? (\r\n <>{values.required ? 'True' : 'False'}</>\r\n ) : (\r\n <Switch\r\n checked={values.required}\r\n onClick={() => {\r\n if (readOnly) {\r\n return\r\n }\r\n setFieldValue('required', !values.required)\r\n }}\r\n />\r\n )}\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter schema desc'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) => setTooltipRef(instance)}\r\n content={\r\n <div className={styles.editDescTooltipContent}>\r\n <p className={styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n value={text || values.description}\r\n onChange={(value) => {\r\n setText(value)\r\n }}\r\n disabled={readOnly}\r\n placeholder=\"Describe parameter...\"\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue('description', text)\r\n tooltipRef?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly ? 'View ' : 'Add '} Description\r\n </Button>\r\n </Tooltip>\r\n\r\n <div className={styles.paramDescContainer_separator}></div>\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={\r\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\r\n }\r\n onClick={() => {\r\n resetForm()\r\n setText('')\r\n setIsFormOpen(false)\r\n }} // Correctly delete the new row\r\n />\r\n )}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"success\"\r\n disabled={!isValid}\r\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\r\n onClick={() => {\r\n setText('')\r\n submitForm()\r\n }} // Save the new row when clicked\r\n />\r\n )}\r\n </div>{' '}\r\n </div>\r\n </td>\r\n </tr>\r\n ) : (\r\n <>\r\n {!readOnly && (\r\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\r\n <td colSpan={5}>\r\n <Button\r\n variant=\"link\"\r\n color=\"primary\"\r\n onClick={() => {\r\n setIsFormOpen((prev) => !prev)\r\n }}\r\n >\r\n + Add Parameter\r\n </Button>\r\n </td>\r\n </tr>\r\n )}\r\n </>\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ParamterTable\r\n"],"names":["ParamterTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","text","setText","useState","tooltipRef","setTooltipRef","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","validateOnMount","initialValues","name","in","schema","type","required","description","validationSchema","yup.object","shape","yup.string","yup.boolean","optional","onSubmit","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","length","colSpan","Input","placeholder","size","onChange","value","disabled","SelectGroupV2","capitalize","item","_a","toLowerCase","options","list","errorMsg","isMultiple","withSearch","clearable","_Fragment","Fragment","Switch","checked","onClick","styles","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","editDescTooltipContent","editDescTooltipContent_header","TextArea","Button","editDescTooltipContent_btn","variant","hide","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","height","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow","prev"],"mappings":"ipBAWA,MAAMA,EAAgB,EACpBC,KACAC,YACAC,OACAC,aACAC,gBACAC,aACAC,eAEA,MAAOC,EAAMC,GAAWC,EAAS,KAC1BC,EAAYC,GAAiBF,EAAS,OACvCG,OAAEA,EAAMC,OAAEA,EAAMC,cAAEA,EAAaC,QAAEA,EAAOC,WAAEA,EAAUC,UAAEA,GAAcC,EAAU,CAClFC,iBAAiB,EACjBC,cAAe,CACbC,KAAM,GACNC,GAAI,QACJC,OAAQ,CACNC,KAAM,UAERC,UAAU,EACVC,YAAa,IAEfC,iBAAkBC,IAAaC,MAAM,CACnCR,KAAMS,IAAaL,SAAS,8BAC5BH,GAAIQ,IAAaL,SAAS,6BAC1BF,OAAQK,IAAaC,MAAM,CACzBL,KAAMM,IAAaL,SAAS,uCAE9BA,SAAUM,IAAcC,WACxBN,YAAaI,IAAaE,aAE5BC,SAAWrB,IACTP,EAAWO,GACXR,GAAc,GACdI,EAAQ,IACRS,GAAW,IAIf,OACEiB,EAAAA,IAAK,MAAA,CAAAC,UAAU,iCACbD,MAAK,MAAA,CAAAC,UAAU,0BACbC,EAAOC,KAAA,QAAA,CAAArC,GAAIA,GAAM,GAAImC,UAAW,qDAC9BD,EAAAA,IAAO,QAAA,CAAAC,UAAU,qBACfD,EAAAA,IACG,KAAA,CAAAI,SAAArC,eAAAA,EAAWsC,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,EAASxC,UAkBtBoC,EAAAA,KAAA,QAAA,CAAOD,UAAU,YAAoB,UAAA,aAClCG,SAAA,CAAApC,aAAI,EAAJA,EAAMqC,KAAI,CAACU,EAAKC,IAEbhB,EAA2BW,IAAA,KAAA,CAAA,SAAAK,EAAUf,UAAW,MAC7CG,SAAArC,aAAS,EAATA,EAAWsC,KAAKC,IACf,MAAMW,EAAmC,MAArBF,EAAIT,EAASxC,KAC/BkC,EAAAA,IAAA,MAAA,CAAA,UACU,mBACRC,UAAU,YACVO,MAAO,CACLC,MAAOH,EAASG,MAChBC,SAAUJ,EAASI,UAGpBN,SAAAW,EAAIT,EAASxC,MAIlB,OACEkC,EAEEW,IAAA,KAAA,CAAAH,MAAO,CACLC,MAAOH,EAASG,MAChBC,SAAUJ,EAASI,UACpBN,SAEAa,GANIX,EAASxC,GAQjB,KAzBIkD,KA8BK,KAAjBhD,eAAAA,EAAMkD,SAAgB9C,GACrB4B,EAAAA,IAAA,KAAA,CAAIC,UAAU,mBACZG,SAAAJ,MAAA,KAAA,CAAIC,UAAU,oBAAoBkB,QAASpD,aAAA,EAAAA,EAAWmD,OAAMd,SAC1DJ,aAAKC,UAAU,wBACbG,SAAAJ,EAAAW,IAAA,OAAA,CAAMV,UAAU,eAAwCG,SAAA,6BAM/DnC,IAAeG,EACd8B,EAAAA,KAAI,KAAA,CAAAD,UAAW,MAAKG,SAAA,CAClBJ,EACEW,IAAA,KAAA,CAAAP,SAAAJ,EAAAW,IAAA,MAAA,CAAA,UAAa,mBAAmBV,UAAU,YAAWG,SACnDJ,MAACoB,EAAKA,MAAA,CACJC,YAAY,iBACZC,KAAK,QACLhC,KAAK,OAELiC,SAAWC,IACT5C,EAAc,OAAQ4C,EAAM,EAE9BA,MAAO9C,EAAOS,KACdsC,SAAUrD,OAXP,kBAgBT4B,MACE,KAAA,CAAAI,SAAAF,OAAA,MAAA,CAAA,UAAa,mBAAmBD,UAAU,YACxCG,SAAA,CAAAJ,EAAAA,IAAC0B,EAAAA,cAAa,CACZD,SAAUrD,EACVoD,MAAO,CACLZ,MAAOe,EAAWjD,EAAOU,IACzBoC,MAAOG,EAAWjD,EAAOU,KAE3BmC,SAAWK,IAAS,IAAAC,EAAA,OAAAjD,EAAc,KAAmB,QAAbiD,EAAAD,aAAA,EAAAA,EAAMJ,aAAO,IAAAK,OAAA,EAAAA,EAAAC,cAAc,EACnEC,QAAS,CACP,CACEC,KAAM,CACJ,CAAEpB,MAAO,QAASY,MAAO,SACzB,CAAEZ,MAAO,SAAUY,MAAO,UAC1B,CAAEZ,MAAO,OAAQY,MAAO,QACxB,CAAEZ,MAAO,OAAQY,MAAO,WAI9BS,WAAYtD,EAAOS,IAAMT,EAAOS,GAChC8C,YAAY,EACZC,YAAY,EACZC,WAAW,IACV,QAvBE,gBA2BTpC,EAAAW,IAAA,KAAA,CAAAP,SACEF,wBAAa,mBAAmBD,UAAU,YAAWG,SAAA,CACnDJ,EAAAA,IAAC0B,EAAAA,cAAa,CACZD,SAAUrD,EACVgE,WAAW,EACXZ,MAAO,CACLZ,MAAOe,EAAWjD,EAAOW,OAAOC,MAChCkC,MAAOG,EAAWjD,EAAOW,OAAOC,OAElC2C,WAAYtD,EAAOU,QAAUV,EAAOU,OACpCkC,SAAWK,IAAS,IAAAC,EAAA,OAAAjD,EAAc,cAA0B,QAAXiD,EAAAD,eAAAA,EAAMJ,aAAK,IAAAK,OAAA,EAAAA,EAAEC,cAAc,EAC5EC,QAAS,CACP,CACEC,KAAM,CACJ,CAAEpB,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,aAIhCU,YAAY,EACZC,YAAY,IACX,QAzBE,yBA6BTnC,EACEW,IAAA,KAAA,CAAAP,SAAAJ,EAAAW,IAAA,MAAA,CAAA,UAAa,cAAcV,UAAU,YAAWG,SAC7ChC,EACC4B,EAAAW,IAAA0B,EAAAC,SAAA,CAAAlC,SAAG1B,EAAOa,SAAW,OAAS,UAE9BS,EAACW,IAAA4B,SACC,CAAAC,QAAS9D,EAAOa,SAChBkD,QAAS,KACHrE,GAGJQ,EAAc,YAAaF,EAAOa,SAAS,OAX5C,sBAkBTS,qBACEE,EAAaC,KAAA,MAAA,CAAA,UAAA,mBAAmBF,UAAU,YACxCG,SAAA,CAAAF,EAAAC,KAAA,MAAA,CAAKF,UAAWyC,EAAOC,mBAAkBvC,SAAA,CACvCJ,MAAC4C,EAAO,CACNC,iBACA,EAAAC,UAAU,aACVxD,KAAK,WACLyD,QAAQ,QACRC,MAAO,CAAC,EAAG,GACXC,SAAWC,GAAazE,EAAcyE,GACtCC,QACEjD,EAAAA,YAAKD,UAAWyC,EAAOU,iCACrBpD,EAAAA,IAAG,IAAA,CAAAC,UAAWyC,EAAOW,8BAA8CjD,SAAA,gBACnEJ,EAAAA,IAACsD,EAAAA,SAAQ,CACP9B,MAAOnD,GAAQK,EAAOc,YACtB+B,SAAWC,IACTlD,EAAQkD,EAAM,EAEhBC,SAAUrD,EACViD,YAAY,2BAEZjD,GACA4B,MAACuD,EAAAA,OAAM,CACLtD,UAAWyC,EAAOc,2BAClBC,QAAQ,WACRnC,KAAK,QACLmB,QAAS,KACP7D,EAAc,cAAeP,GAC7BG,SAAAA,EAAYkF,MAAM,EACnBtD,SAAA,aAKDA,SAGRF,EAAAA,KAACqD,EAAAA,OAAM,CACLtD,UAAWyC,EAAOiB,YAClBF,QAAQ,OACRG,MAAM,SACNC,QAAS7D,EAAAW,IAACmD,EAAU,CAAAC,IAAKC,EAAUvD,MAAM,SAASwD,OAAO,WAExD7D,SAAA,CAAAhC,EAAW,QAAU,OACf,oBAGX4B,EAAKW,IAAA,MAAA,CAAAV,UAAWyC,EAAOwB,gCACrB9F,GACA4B,MAACuD,EAAMA,OAAA,CACLtD,UAAWyC,EAAOyB,eAClBV,QAAQ,OACRG,MAAM,QACNC,QACE7D,MAAC8D,EAAS,CAACC,IAAKK,EAAY3D,MAAM,WAAWwD,OAAO,aAEtDxB,QAAS,KACP1D,IACAT,EAAQ,IACRJ,GAAc,EAAM,KAKxBE,GACA4B,EAAAA,IAACuD,EAAAA,OACC,CAAAtD,UAAWyC,EAAOyB,eAClBV,QAAQ,OACRG,MAAM,UACNnC,UAAW5C,EACXgF,QAAS7D,EAAAA,IAAC8D,EAAS,CAACC,IAAKM,EAAQ5D,MAAM,WAAWwD,OAAO,aACzDxB,QAAS,KACPnE,EAAQ,IACRQ,GAAY,OAIb,QA7EF,4BAkFXkB,EAAAW,IAAA0B,EAAAC,SAAA,CAAAlC,UACIhC,GACA4B,EAAAW,IAAA,KAAA,CAAA,SAA2B,SAAUV,UAAW,eAC9CD,EAAAA,IAAI,KAAA,CAAAmB,QAAS,EAACf,SACZJ,MAACuD,EAAMA,OAAA,CACLE,QAAQ,OACRG,MAAM,UACNnB,QAAS,KACPvE,GAAeoG,IAAUA,GAAK,EAIzBlE,SAAA,uBAVJ,qBAoBxB"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as i}from"react";import s from"../InfoForm/InfoForm.module.scss.js";import{d as a}from"../../../_virtual/index.js";import t from"../Tooltip/Tooltip.js";import n from"../SVGLoader/SVGLoader.js";import l from"../../assets/icons/DeleteIcon.svg.js";import o from"../../assets/icons/EditIcon.svg.js";import r from"../../assets/icons/AddRow.svg.js";import d from"../MethodAccordion/MethodAccordion.module.scss.js";import{useFormik as c}from"../../../node_modules/formik/dist/formik.esm.js";import{object as m,string as h}from"../../../node_modules/yup/index.esm.js";const p=({id:p,headCells:x,data:j,isFormOpen:u,setIsFormOpen:v,saveNewRow:D,readOnly:N})=>{var b,g,C,T,f,w,k;const[B,_]=i(""),[y,I]=i(""),[E,A]=i(""),[L,O]=i(null),[S,W]=i(null),{values:F,errors:R,setFieldValue:V,isValid:P,submitForm:z,resetForm:q}=c({initialValues:{name:"",description:"",externalDocs:{url:"",description:""}},validationSchema:m().shape({name:h().required("Tag name is required"),description:h().optional(),externalDocs:m().optional()}),onSubmit:e=>{D(e),_(""),I(""),A(""),q(),v(!1)}});return e.jsx("div",{className:"tableSectionContainer",children:e.jsx("div",{className:"tableContainer",children:e.jsxs("table",{id:p||"",className:"table borderRadiusTop borderRadiusBottom",children:[e.jsx("thead",{className:"tableHead",children:e.jsx("tr",{children:null==x?void 0:x.map((i=>e.jsx("th",{className:`tableHeadCell ${i.classes||""}`,style:{width:i.width,minWidth:i.minWidth},children:e.jsx("div",{className:"headContainer","data-id":`${"string"==typeof i.label?i.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g,"_"):"UNKNOWN_LABEL"}_COLUMN`,children:i.label})},i.id)))})}),e.jsxs("tbody",{className:"tableBody","data-id":"TABLE_BODY",children:[null==j?void 0:j.map(((i,s)=>e.jsx("tr",{"data-i":s,className:"row",children:null==x?void 0:x.map((s=>{const a="_"!==i[s.id]&&e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",style:{width:s.width,minWidth:s.minWidth},children:i[s.id]});return e.jsx("td",{style:{width:s.width,minWidth:s.minWidth},children:a},s.id)}))},s))),u?e.jsxs("tr",{"data-i":"",className:"row",children:[e.jsx("td",{children:e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:e.jsx(a.Input,{placeholder:"Tag name",size:"large",type:"text",onChange:e=>{V("name",e)},value:F.name,disabled:N})})},"tag name"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx("div",{className:d.paramDescContainer,children:e.jsx(t,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>O(e),content:e.jsxs("div",{className:s.editDescTooltipContent,children:[e.jsx("p",{className:s.editDescTooltipContent_header,children:"Description"}),e.jsx(a.TextArea,{value:B||F.description,onChange:e=>{_(e)},disabled:N,placeholder:"Describe Tag..."}),!N&&e.jsx(a.Button,{className:s.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{V("description",B),null==L||L.hide()},children:"Apply"})]}),children:e.jsxs(a.Button,{className:s.editDescBtn,style:{paddingLeft:0},variant:"link",color:"action",endIcon:e.jsx(n,{src:o,width:"1.5rem",height:"1.5rem"}),children:[N?"View ":"Add "," Description"]})})})," "]})},"tagDescRequired"),e.jsx("td",{children:e.jsx("div",{className:"tableData",children:e.jsxs("div",{className:s.paramDescContainer,children:[e.jsx(t,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>W(e),content:e.jsxs("div",{className:s.editDescTooltipContent,children:[e.jsx("p",{className:s.editDescTooltipContent_header,children:"External Docs Description"}),e.jsx(a.TextArea,{placeholder:"Describe External Doc...",value:y||F.externalDocs.description,disabled:N,onChange:e=>I(e)}),e.jsx("p",{className:s.editDescTooltipContent_header,children:"External Docs Link"}),e.jsx(a.TextArea,{placeholder:"External Docs Link...",value:E||F.externalDocs.url,disabled:N,onChange:e=>A(e)}),!N&&e.jsx(a.Button,{className:s.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{V("externalDocs",{description:y,url:E}),I(""),A(""),null==S||S.hide()},children:"Apply"})]}),children:N?e.jsxs("a",{className:s.editDescBtn,variant:"link",color:"action",href:null===(b=F.externalDocs)||void 0===b?void 0:b.url,target:"_blank",children:[(null===(g=null==F?void 0:F.externalDocs)||void 0===g?void 0:g.description)?null===(T=null===(C=null==F?void 0:F.externalDocs)||void 0===C?void 0:C.description)||void 0===T?void 0:T.substring(0,12):"-",(null===(f=null==F?void 0:F.externalDocs)||void 0===f?void 0:f.description)&&(null===(k=null===(w=null==F?void 0:F.externalDocs)||void 0===w?void 0:w.description)||void 0===k?void 0:k.length)>12?"...":""]}):e.jsxs(a.Button,{className:s.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:o,width:"1.5rem",height:"1.5rem"}),children:[N?"View ":"Add "," External Docs Link"]})}),e.jsx("div",{className:s.paramDescContainer_separator}),!N&&e.jsx(a.Button,{className:s.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(n,{src:l,width:"1.125rem",height:"1.125rem"}),onClick:()=>{q(),_(""),v(!1)}}),!N&&e.jsx(a.Button,{className:s.deleteParamBtn,variant:"link",color:"success",disabled:!P,endIcon:e.jsx(n,{src:r,width:"0.125rem",height:"0.125rem"}),onClick:()=>{_(""),z()}})]})})},"tagExternal")]},""):e.jsx(e.Fragment,{children:!N&&e.jsx("tr",{"data-i":"addNew",className:"row",children:e.jsx("td",{colSpan:5,children:e.jsx(a.Button,{variant:"link",color:"primary",onClick:()=>{v((e=>!e))},children:"+ Add Tag"})})},"addNew")})]})]})})})};export{p as default};
1
+ import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as i}from"react";import a from"../InfoForm/InfoForm.module.scss.js";import{d as t}from"../../../_virtual/index.js";import s from"../Tooltip/Tooltip.js";import n from"../SVGLoader/SVGLoader.js";import l from"../../assets/icons/DeleteIcon.svg.js";import o from"../../assets/icons/EditIcon.svg.js";import r from"../../assets/icons/AddRow.svg.js";import d from"../MethodAccordion/MethodAccordion.module.scss.js";import{useFormik as c}from"../../../node_modules/formik/dist/formik.esm.js";import{object as m,string as h}from"../../../node_modules/yup/index.esm.js";const p=({id:p,headCells:x,data:u,isFormOpen:j,setIsFormOpen:v,saveNewRow:D,readOnly:N})=>{var b,g,C,T,f,w,k;const[B,_]=i(""),[y,I]=i(""),[E,A]=i(""),[L,O]=i(null),[S,W]=i(null),{values:F,errors:R,setFieldValue:V,isValid:P,submitForm:z,resetForm:M}=c({validateOnMount:!0,initialValues:{name:"",description:"",externalDocs:{url:"",description:""}},validationSchema:m().shape({name:h().required("Tag name is required"),description:h().optional(),externalDocs:m().optional()}),onSubmit:e=>{D(e),_(""),I(""),A(""),M(),v(!1)}});return e.jsx("div",{className:"tableSectionContainer",children:e.jsx("div",{className:"tableContainer",children:e.jsxs("table",{id:p||"",className:"table borderRadiusTop borderRadiusBottom",children:[e.jsx("thead",{className:"tableHead",children:e.jsx("tr",{children:null==x?void 0:x.map((i=>e.jsx("th",{className:`tableHeadCell ${i.classes||""}`,style:{width:i.width,minWidth:i.minWidth},children:e.jsx("div",{className:"headContainer","data-id":`${"string"==typeof i.label?i.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g,"_"):"UNKNOWN_LABEL"}_COLUMN`,children:i.label})},i.id)))})}),e.jsxs("tbody",{className:"tableBody","data-id":"TABLE_BODY",children:[null==u?void 0:u.map(((i,a)=>e.jsx("tr",{"data-i":a,className:"row",children:null==x?void 0:x.map((a=>{const t="_"!==i[a.id]&&e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",style:{width:a.width,minWidth:a.minWidth},children:i[a.id]});return e.jsx("td",{style:{width:a.width,minWidth:a.minWidth},children:t},a.id)}))},a))),j?e.jsxs("tr",{"data-i":"",className:"row",children:[e.jsx("td",{children:e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:e.jsx(t.Input,{placeholder:"Tag name",size:"large",type:"text",onChange:e=>{V("name",e)},value:F.name,disabled:N})})},"tag name"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx("div",{className:d.paramDescContainer,children:e.jsx(s,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>O(e),content:e.jsxs("div",{className:a.editDescTooltipContent,children:[e.jsx("p",{className:a.editDescTooltipContent_header,children:"Description"}),e.jsx(t.TextArea,{value:B||F.description,onChange:e=>{_(e)},disabled:N,placeholder:"Describe Tag..."}),!N&&e.jsx(t.Button,{className:a.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{V("description",B),null==L||L.hide()},children:"Apply"})]}),children:e.jsxs(t.Button,{className:a.editDescBtn,style:{paddingLeft:0},variant:"link",color:"action",endIcon:e.jsx(n,{src:o,width:"1.5rem",height:"1.5rem"}),children:[N?"View ":"Add "," Description"]})})})," "]})},"tagDescRequired"),e.jsx("td",{children:e.jsx("div",{className:"tableData",children:e.jsxs("div",{className:a.paramDescContainer,children:[e.jsx(s,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>W(e),content:e.jsxs("div",{className:a.editDescTooltipContent,children:[e.jsx("p",{className:a.editDescTooltipContent_header,children:"External Docs Description"}),e.jsx(t.TextArea,{placeholder:"Describe External Doc...",value:y||F.externalDocs.description,disabled:N,onChange:e=>I(e)}),e.jsx("p",{className:a.editDescTooltipContent_header,children:"External Docs Link"}),e.jsx(t.TextArea,{placeholder:"External Docs Link...",value:E||F.externalDocs.url,disabled:N,onChange:e=>A(e)}),!N&&e.jsx(t.Button,{className:a.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{V("externalDocs",{description:y,url:E}),I(""),A(""),null==S||S.hide()},children:"Apply"})]}),children:N?e.jsxs("a",{className:a.editDescBtn,variant:"link",color:"action",href:null===(b=F.externalDocs)||void 0===b?void 0:b.url,target:"_blank",children:[(null===(g=null==F?void 0:F.externalDocs)||void 0===g?void 0:g.description)?null===(T=null===(C=null==F?void 0:F.externalDocs)||void 0===C?void 0:C.description)||void 0===T?void 0:T.substring(0,12):"-",(null===(f=null==F?void 0:F.externalDocs)||void 0===f?void 0:f.description)&&(null===(k=null===(w=null==F?void 0:F.externalDocs)||void 0===w?void 0:w.description)||void 0===k?void 0:k.length)>12?"...":""]}):e.jsxs(t.Button,{className:a.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:o,width:"1.5rem",height:"1.5rem"}),children:[N?"View ":"Add "," External Docs Link"]})}),e.jsx("div",{className:a.paramDescContainer_separator}),!N&&e.jsx(t.Button,{className:a.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(n,{src:l,width:"1.125rem",height:"1.125rem"}),onClick:()=>{M(),_(""),v(!1)}}),!N&&e.jsx(t.Button,{className:a.deleteParamBtn,variant:"link",color:"success",disabled:!P,endIcon:e.jsx(n,{src:r,width:"0.125rem",height:"0.125rem"}),onClick:()=>{_(""),z()}})]})})},"tagExternal")]},""):e.jsx(e.Fragment,{children:!N&&e.jsx("tr",{"data-i":"addNew",className:"row",children:e.jsx("td",{colSpan:5,children:e.jsx(t.Button,{variant:"link",color:"primary",onClick:()=>{v((e=>!e))},children:"+ Add Tag"})})},"addNew")})]})]})})})};export{p as default};
2
2
  //# sourceMappingURL=tags-table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tags-table.js","sources":["../../../../src/components/table/tags-table.tsx"],"sourcesContent":["import { useState } from 'react'\r\nimport './style.scss'\r\nimport _styles from '../InfoForm/InfoForm.module.scss'\r\nimport { Button, Input, TextArea } from 'digitinary-ui'\r\nimport Tooltip from '../Tooltip/Tooltip'\r\nimport SVGLoader from '../SVGLoader/SVGLoader'\r\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\r\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\r\nimport { useFormik } from 'formik'\r\nimport * as yup from 'yup'\r\n\r\nconst TagsTable = ({ id, headCells, data, isFormOpen, setIsFormOpen, saveNewRow, readOnly }) => {\r\n const [text, setText] = useState('')\r\n const [externalDesc, setExternalDesc] = useState('')\r\n const [externalUrl, setExternalUrl] = useState('')\r\n const [tooltipRef, setTooltipRef] = useState(null)\r\n const [externalTooltipRefs, setExternalTooltipRefs] = useState(null)\r\n const { values, errors, setFieldValue, isValid, submitForm, resetForm } = useFormik({\r\n initialValues: {\r\n name: '',\r\n description: '',\r\n externalDocs: {\r\n url: '',\r\n description: '',\r\n },\r\n },\r\n validationSchema: yup.object().shape({\r\n name: yup.string().required('Tag name is required'),\r\n description: yup.string().optional(),\r\n externalDocs: yup.object().optional(),\r\n }),\r\n onSubmit: (values) => {\r\n saveNewRow(values)\r\n setText('')\r\n setExternalDesc('')\r\n setExternalUrl('')\r\n resetForm()\r\n setIsFormOpen(false)\r\n },\r\n })\r\n return (\r\n <div className=\"tableSectionContainer\">\r\n <div className=\"tableContainer\">\r\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\r\n <thead className=\"tableHead\">\r\n <tr>\r\n {headCells?.map((headCell) => (\r\n <th\r\n key={headCell.id}\r\n className={`tableHeadCell ${headCell.classes || ''}`}\r\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\r\n >\r\n <div\r\n className=\"headContainer\"\r\n data-id={`${\r\n typeof headCell.label === 'string'\r\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\r\n : 'UNKNOWN_LABEL'\r\n }_COLUMN`}\r\n >\r\n {headCell.label}\r\n </div>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\r\n {data?.map((row, rowIndex) => {\r\n return (\r\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\r\n {headCells?.map((headCell) => {\r\n const cellContent = row[headCell.id] !== '_' && (\r\n <div\r\n data-id=\"TEXT_DESCRIPTION\"\r\n className=\"tableData\"\r\n style={{\r\n width: headCell.width,\r\n minWidth: headCell.minWidth,\r\n }}\r\n >\r\n {row[headCell.id]}\r\n </div>\r\n )\r\n\r\n return (\r\n <td\r\n key={headCell.id}\r\n style={{\r\n width: headCell.width,\r\n minWidth: headCell.minWidth,\r\n }}\r\n >\r\n {cellContent}\r\n </td>\r\n )\r\n })}\r\n </tr>\r\n )\r\n })}\r\n {isFormOpen ? (\r\n <tr key={''} data-i={''} className={`row`}>\r\n <td key={'tag name'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <Input\r\n placeholder=\"Tag name\"\r\n size=\"large\"\r\n type=\"text\"\r\n onChange={(value) => {\r\n setFieldValue('name', value)\r\n }} // Pass the value directly\r\n value={values.name} // Bind value to the state\r\n disabled={readOnly}\r\n />\r\n </div>\r\n </td>\r\n\r\n <td key={'tagDescRequired'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) => setTooltipRef(instance)}\r\n content={\r\n <div className={_styles.editDescTooltipContent}>\r\n <p className={_styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n value={text || values.description}\r\n onChange={(value) => {\r\n setText(value)\r\n }}\r\n disabled={readOnly}\r\n placeholder=\"Describe Tag...\"\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={_styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue('description', text)\r\n tooltipRef?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n <Button\r\n className={_styles.editDescBtn}\r\n style={{ paddingLeft: 0 }}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly ? 'View ' : 'Add '} Description\r\n </Button>\r\n </Tooltip>\r\n </div>{' '}\r\n </div>\r\n </td>\r\n <td key={'tagExternal'}>\r\n <div className=\"tableData\">\r\n <div className={_styles.paramDescContainer}>\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) => setExternalTooltipRefs(instance)}\r\n content={\r\n <div className={_styles.editDescTooltipContent}>\r\n <p className={_styles.editDescTooltipContent_header}>\r\n External Docs Description\r\n </p>\r\n <TextArea\r\n placeholder=\"Describe External Doc...\"\r\n value={externalDesc || values.externalDocs.description}\r\n disabled={readOnly}\r\n onChange={(value) => setExternalDesc(value)}\r\n />\r\n <p className={_styles.editDescTooltipContent_header}>\r\n External Docs Link\r\n </p>\r\n <TextArea\r\n placeholder=\"External Docs Link...\"\r\n value={externalUrl || values.externalDocs.url}\r\n disabled={readOnly}\r\n onChange={(value) => setExternalUrl(value)}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={_styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(`externalDocs`, {\r\n description: externalDesc,\r\n url: externalUrl,\r\n })\r\n setExternalDesc('')\r\n setExternalUrl('')\r\n externalTooltipRefs?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly ? (\r\n <a\r\n className={_styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n href={values.externalDocs?.url}\r\n target='_blank'\r\n \r\n >\r\n {values?.externalDocs?.description\r\n ? values?.externalDocs?.description?.substring(0, 12)\r\n : '-'}\r\n {values?.externalDocs?.description &&\r\n values?.externalDocs?.description?.length > 12\r\n ? '...'\r\n : ''}\r\n </a>\r\n ) : (\r\n <Button\r\n className={_styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly ? 'View ' : 'Add '} External Docs Link\r\n </Button>\r\n )}\r\n </Tooltip>\r\n <div className={_styles.paramDescContainer_separator}></div>\r\n {!readOnly && (\r\n <Button\r\n className={_styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={\r\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\r\n }\r\n onClick={() => {\r\n resetForm()\r\n setText('')\r\n setIsFormOpen(false)\r\n }} // Correctly delete the new row\r\n />\r\n )}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={_styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"success\"\r\n disabled={!isValid}\r\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\r\n onClick={() => {\r\n setText('')\r\n submitForm()\r\n }} // Save the new row when clicked\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n ) : (\r\n <>\r\n {!readOnly && (\r\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\r\n <td colSpan={5}>\r\n <Button\r\n variant=\"link\"\r\n color=\"primary\"\r\n onClick={() => {\r\n setIsFormOpen((prev) => !prev)\r\n }}\r\n >\r\n + Add Tag\r\n </Button>\r\n </td>\r\n </tr>\r\n )}\r\n </>\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default TagsTable\r\n"],"names":["TagsTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","text","setText","useState","externalDesc","setExternalDesc","externalUrl","setExternalUrl","tooltipRef","setTooltipRef","externalTooltipRefs","setExternalTooltipRefs","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","initialValues","name","description","externalDocs","url","validationSchema","yup.object","shape","yup.string","required","optional","onSubmit","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","Input","placeholder","size","type","onChange","value","disabled","styles","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","_styles","editDescTooltipContent","editDescTooltipContent_header","TextArea","Button","editDescTooltipContent_btn","variant","onClick","hide","editDescBtn","paddingLeft","color","endIcon","SVGLoader","src","EditIcon","height","href","_a","target","_b","_d","_c","substring","_e","_g","_f","length","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow","_Fragment","Fragment","colSpan","prev"],"mappings":"qnBAWA,MAAMA,EAAY,EAAGC,KAAIC,YAAWC,OAAMC,aAAYC,gBAAeC,aAAYC,iCAC/E,MAAOC,EAAMC,GAAWC,EAAS,KAC1BC,EAAcC,GAAmBF,EAAS,KAC1CG,EAAaC,GAAkBJ,EAAS,KACxCK,EAAYC,GAAiBN,EAAS,OACtCO,EAAqBC,GAA0BR,EAAS,OACzDS,OAAEA,EAAMC,OAAEA,EAAMC,cAAEA,EAAaC,QAAEA,EAAOC,WAAEA,EAAUC,UAAEA,GAAcC,EAAU,CAClFC,cAAe,CACbC,KAAM,GACNC,YAAa,GACbC,aAAc,CACZC,IAAK,GACLF,YAAa,KAGjBG,iBAAkBC,IAAaC,MAAM,CACnCN,KAAMO,IAAaC,SAAS,wBAC5BP,YAAaM,IAAaE,WAC1BP,aAAcG,IAAaI,aAE7BC,SAAWlB,IACTb,EAAWa,GACXV,EAAQ,IACRG,EAAgB,IAChBE,EAAe,IACfU,IACAnB,GAAc,EAAM,IAGxB,OACEiC,EAAAA,IAAK,MAAA,CAAAC,UAAU,iCACbD,MAAK,MAAA,CAAAC,UAAU,0BACbC,EAAOC,KAAA,QAAA,CAAAxC,GAAIA,GAAM,GAAIsC,UAAW,qDAC9BD,EAAAA,IAAO,QAAA,CAAAC,UAAU,qBACfD,EAAAA,IACG,KAAA,CAAAI,SAAAxC,eAAAA,EAAWyC,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,EAAS3C,UAkBtBuC,EAAAA,KAAA,QAAA,CAAOD,UAAU,YAAoB,UAAA,aAClCG,SAAA,CAAAvC,aAAI,EAAJA,EAAMwC,KAAI,CAACU,EAAKC,IAEbhB,EAA2BW,IAAA,KAAA,CAAA,SAAAK,EAAUf,UAAW,MAC7CG,SAAAxC,aAAS,EAATA,EAAWyC,KAAKC,IACf,MAAMW,EAAmC,MAArBF,EAAIT,EAAS3C,KAC/BqC,EAAAA,IAAA,MAAA,CAAA,UACU,mBACRC,UAAU,YACVO,MAAO,CACLC,MAAOH,EAASG,MAChBC,SAAUJ,EAASI,UAGpBN,SAAAW,EAAIT,EAAS3C,MAIlB,OACEqC,EAEEW,IAAA,KAAA,CAAAH,MAAO,CACLC,MAAOH,EAASG,MAChBC,SAAUJ,EAASI,UACpBN,SAEAa,GANIX,EAAS3C,GAQjB,KAzBIqD,KA8BZlD,EACCoC,EAAqBC,KAAA,KAAA,CAAA,SAAA,GAAIF,UAAW,MAClCG,SAAA,CAAAJ,EAAAA,IAAA,KAAA,CAAAI,SACEJ,uBAAa,mBAAmBC,UAAU,YACxCG,SAAAJ,EAAAW,IAACO,QACC,CAAAC,YAAY,WACZC,KAAK,QACLC,KAAK,OACLC,SAAWC,IACTxC,EAAc,OAAQwC,EAAM,EAE9BA,MAAO1C,EAAOQ,KACdmC,SAAUvD,OAVP,YAeT+B,EAAAA,IAAA,KAAA,CAAAI,SACEF,EAAAA,sBAAa,mBAAmBD,UAAU,YAAWG,SAAA,CACnDJ,aAAKC,UAAWwB,EAAOC,4BACrB1B,EAACW,IAAAgB,EACC,CAAAC,iBACA,EAAAC,UAAU,aACVR,KAAK,WACLS,QAAQ,QACRC,MAAO,CAAC,EAAG,GACXC,SAAWC,GAAavD,EAAcuD,GACtCC,QACEhC,OAAK,MAAA,CAAAD,UAAWkC,EAAQC,iCACtBpC,EAAAA,IAAG,IAAA,CAAAC,UAAWkC,EAAQE,8BAA8CjC,SAAA,gBACpEJ,EAACW,IAAA2B,EAAQA,SACP,CAAAf,MAAOrD,GAAQW,EAAOS,YACtBgC,SAAWC,IACTpD,EAAQoD,EAAM,EAEhBC,SAAUvD,EACVkD,YAAY,qBAEZlD,GACA+B,MAACuC,EAAAA,OAAM,CACLtC,UAAWkC,EAAQK,2BACnBC,QAAQ,WACRrB,KAAK,QACLsB,QAAS,KACP3D,EAAc,cAAeb,GAC7BO,SAAAA,EAAYkE,MAAM,EACnBvC,SAAA,aAQTA,SAAAF,EAAAA,KAACqC,EAAMA,OACL,CAAAtC,UAAWkC,EAAQS,YACnBpC,MAAO,CAAEqC,YAAa,GACtBJ,QAAQ,OACRK,MAAM,SACNC,QAAS/C,MAACgD,EAAS,CAACC,IAAKC,EAAUzC,MAAM,SAAS0C,OAAO,WAAW/C,SAAA,CAEnEnC,EAAW,QAAU,OAAM,sBAG3B,QA/CF,mBAkDT+B,EAAAW,IAAA,KAAA,CAAAP,SACEJ,EAAKW,IAAA,MAAA,CAAAV,UAAU,qBACbC,EAAAA,KAAK,MAAA,CAAAD,UAAWkC,EAAQT,mBACtBtB,SAAA,CAAAJ,EAAAA,IAAC2B,EAAO,CACNC,iBAAe,EACfC,UAAU,aACVR,KAAK,WACLS,QAAQ,QACRC,MAAO,CAAC,EAAG,GACXC,SAAWC,GAAarD,EAAuBqD,GAC/CC,QACEhC,EAAAA,KAAA,MAAA,CAAKD,UAAWkC,EAAQC,uBACtBhC,SAAA,CAAAJ,EAAAA,IAAA,IAAA,CAAGC,UAAWkC,EAAQE,8BAElBjC,SAAA,8BACJJ,EAAAA,IAACsC,EAAAA,SACC,CAAAnB,YAAY,2BACZI,MAAOlD,GAAgBQ,EAAOU,aAAaD,YAC3CkC,SAAUvD,EACVqD,SAAWC,GAAUjD,EAAgBiD,KAEvCvB,EAAAA,IAAG,IAAA,CAAAC,UAAWkC,EAAQE,8BAElBjC,SAAA,uBACJJ,MAACsC,EAAAA,SAAQ,CACPnB,YAAY,wBACZI,MAAOhD,GAAeM,EAAOU,aAAaC,IAC1CgC,SAAUvD,EACVqD,SAAWC,GAAU/C,EAAe+C,MAEpCtD,GACA+B,MAACuC,EAAAA,OAAM,CACLtC,UAAWkC,EAAQK,2BACnBC,QAAQ,WACRrB,KAAK,QACLsB,QAAS,KACP3D,EAAc,eAAgB,CAC5BO,YAAajB,EACbmB,IAAKjB,IAEPD,EAAgB,IAChBE,EAAe,IACfG,SAAAA,EAAqBgE,MAAM,EAC5BvC,SAAA,aAKDA,SAGPnC,EACCiC,EAAAA,KAAA,IAAA,CACED,UAAWkC,EAAQS,YACnBH,QAAQ,OACRK,MAAM,SACNM,KAA2B,UAArBvE,EAAOU,oBAAc,IAAA8D,OAAA,EAAAA,EAAA7D,IAC3B8D,OAAO,oBAGc,QAApBC,EAAA1E,eAAAA,EAAQU,oBAAY,IAAAgE,OAAA,EAAAA,EAAEjE,aACgB,QAAnCkE,EAAoB,QAApBC,EAAA5E,eAAAA,EAAQU,oBAAY,IAAAkE,OAAA,EAAAA,EAAEnE,mBAAa,IAAAkE,OAAA,EAAAA,EAAAE,UAAU,EAAG,IAChD,aACHC,EAAA9E,aAAA,EAAAA,EAAQU,mCAAcD,eACY,QAAnCsE,EAAsB,QAAtBC,EAAAhF,aAAA,EAAAA,EAAQU,oBAAc,IAAAsE,OAAA,EAAAA,EAAAvE,mBAAa,IAAAsE,OAAA,EAAAA,EAAAE,QAAS,GACxC,MACA,MAGN5D,EAAAC,KAACoC,EAAMA,OAAA,CACLtC,UAAWkC,EAAQS,YACnBH,QAAQ,OACRK,MAAM,SACNC,QAAS/C,EAAAA,IAACgD,EAAS,CAACC,IAAKC,EAAUzC,MAAM,SAAS0C,OAAO,WAExD/C,SAAA,CAAAnC,EAAW,QAAU,OAAM,2BAIlC+B,EAAAA,WAAKC,UAAWkC,EAAQ4B,gCACtB9F,GACA+B,EAAAA,IAACuC,EAAAA,OAAM,CACLtC,UAAWkC,EAAQ6B,eACnBvB,QAAQ,OACRK,MAAM,QACNC,QACE/C,EAAAA,IAACgD,EAAS,CAACC,IAAKgB,EAAYxD,MAAM,WAAW0C,OAAO,aAEtDT,QAAS,KACPxD,IACAf,EAAQ,IACRJ,GAAc,EAAM,KAKxBE,GACA+B,EAAAA,IAACuC,EAAAA,OACC,CAAAtC,UAAWkC,EAAQ6B,eACnBvB,QAAQ,OACRK,MAAM,UACNtB,UAAWxC,EACX+D,QAAS/C,EAAAA,IAACgD,EAAS,CAACC,IAAKiB,EAAQzD,MAAM,WAAW0C,OAAO,aACzDT,QAAS,KACPvE,EAAQ,IACRc,GAAY,UAzGf,iBAlEF,IAoLTe,EAAAW,IAAAwD,EAAAC,SAAA,CAAAhE,UACInC,GACA+B,EAAAW,IAAA,KAAA,CAAA,SAA2B,SAAUV,UAAW,eAC9CD,EAAAA,IAAI,KAAA,CAAAqE,QAAS,EAACjE,SACZJ,MAACuC,EAAMA,OAAA,CACLE,QAAQ,OACRK,MAAM,UACNJ,QAAS,KACP3E,GAAeuG,IAAUA,GAAK,EAIzBlE,SAAA,iBAVJ,qBAoBxB"}
1
+ {"version":3,"file":"tags-table.js","sources":["../../../../src/components/table/tags-table.tsx"],"sourcesContent":["import { useState } from 'react'\r\nimport './style.scss'\r\nimport _styles from '../InfoForm/InfoForm.module.scss'\r\nimport { Button, Input, TextArea } from 'digitinary-ui'\r\nimport Tooltip from '../Tooltip/Tooltip'\r\nimport SVGLoader from '../SVGLoader/SVGLoader'\r\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\r\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\r\nimport { useFormik } from 'formik'\r\nimport * as yup from 'yup'\r\n\r\nconst TagsTable = ({ id, headCells, data, isFormOpen, setIsFormOpen, saveNewRow, readOnly }) => {\r\n const [text, setText] = useState('')\r\n const [externalDesc, setExternalDesc] = useState('')\r\n const [externalUrl, setExternalUrl] = useState('')\r\n const [tooltipRef, setTooltipRef] = useState(null)\r\n const [externalTooltipRefs, setExternalTooltipRefs] = useState(null)\r\n const { values, errors, setFieldValue, isValid, submitForm, resetForm } = useFormik({\r\n validateOnMount: true,\r\n initialValues: {\r\n name: '',\r\n description: '',\r\n externalDocs: {\r\n url: '',\r\n description: '',\r\n },\r\n },\r\n validationSchema: yup.object().shape({\r\n name: yup.string().required('Tag name is required'),\r\n description: yup.string().optional(),\r\n externalDocs: yup.object().optional(),\r\n }),\r\n onSubmit: (values) => {\r\n saveNewRow(values)\r\n setText('')\r\n setExternalDesc('')\r\n setExternalUrl('')\r\n resetForm()\r\n setIsFormOpen(false)\r\n },\r\n })\r\n return (\r\n <div className=\"tableSectionContainer\">\r\n <div className=\"tableContainer\">\r\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\r\n <thead className=\"tableHead\">\r\n <tr>\r\n {headCells?.map((headCell) => (\r\n <th\r\n key={headCell.id}\r\n className={`tableHeadCell ${headCell.classes || ''}`}\r\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\r\n >\r\n <div\r\n className=\"headContainer\"\r\n data-id={`${\r\n typeof headCell.label === 'string'\r\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\r\n : 'UNKNOWN_LABEL'\r\n }_COLUMN`}\r\n >\r\n {headCell.label}\r\n </div>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\r\n {data?.map((row, rowIndex) => {\r\n return (\r\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\r\n {headCells?.map((headCell) => {\r\n const cellContent = row[headCell.id] !== '_' && (\r\n <div\r\n data-id=\"TEXT_DESCRIPTION\"\r\n className=\"tableData\"\r\n style={{\r\n width: headCell.width,\r\n minWidth: headCell.minWidth,\r\n }}\r\n >\r\n {row[headCell.id]}\r\n </div>\r\n )\r\n\r\n return (\r\n <td\r\n key={headCell.id}\r\n style={{\r\n width: headCell.width,\r\n minWidth: headCell.minWidth,\r\n }}\r\n >\r\n {cellContent}\r\n </td>\r\n )\r\n })}\r\n </tr>\r\n )\r\n })}\r\n {isFormOpen ? (\r\n <tr key={''} data-i={''} className={`row`}>\r\n <td key={'tag name'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <Input\r\n placeholder=\"Tag name\"\r\n size=\"large\"\r\n type=\"text\"\r\n onChange={(value) => {\r\n setFieldValue('name', value)\r\n }} // Pass the value directly\r\n value={values.name} // Bind value to the state\r\n disabled={readOnly}\r\n />\r\n </div>\r\n </td>\r\n\r\n <td key={'tagDescRequired'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) => setTooltipRef(instance)}\r\n content={\r\n <div className={_styles.editDescTooltipContent}>\r\n <p className={_styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n value={text || values.description}\r\n onChange={(value) => {\r\n setText(value)\r\n }}\r\n disabled={readOnly}\r\n placeholder=\"Describe Tag...\"\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={_styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue('description', text)\r\n tooltipRef?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n <Button\r\n className={_styles.editDescBtn}\r\n style={{ paddingLeft: 0 }}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly ? 'View ' : 'Add '} Description\r\n </Button>\r\n </Tooltip>\r\n </div>{' '}\r\n </div>\r\n </td>\r\n <td key={'tagExternal'}>\r\n <div className=\"tableData\">\r\n <div className={_styles.paramDescContainer}>\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) => setExternalTooltipRefs(instance)}\r\n content={\r\n <div className={_styles.editDescTooltipContent}>\r\n <p className={_styles.editDescTooltipContent_header}>\r\n External Docs Description\r\n </p>\r\n <TextArea\r\n placeholder=\"Describe External Doc...\"\r\n value={externalDesc || values.externalDocs.description}\r\n disabled={readOnly}\r\n onChange={(value) => setExternalDesc(value)}\r\n />\r\n <p className={_styles.editDescTooltipContent_header}>\r\n External Docs Link\r\n </p>\r\n <TextArea\r\n placeholder=\"External Docs Link...\"\r\n value={externalUrl || values.externalDocs.url}\r\n disabled={readOnly}\r\n onChange={(value) => setExternalUrl(value)}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={_styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(`externalDocs`, {\r\n description: externalDesc,\r\n url: externalUrl,\r\n })\r\n setExternalDesc('')\r\n setExternalUrl('')\r\n externalTooltipRefs?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly ? (\r\n <a\r\n className={_styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n href={values.externalDocs?.url}\r\n target=\"_blank\"\r\n >\r\n {values?.externalDocs?.description\r\n ? values?.externalDocs?.description?.substring(0, 12)\r\n : '-'}\r\n {values?.externalDocs?.description &&\r\n values?.externalDocs?.description?.length > 12\r\n ? '...'\r\n : ''}\r\n </a>\r\n ) : (\r\n <Button\r\n className={_styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly ? 'View ' : 'Add '} External Docs Link\r\n </Button>\r\n )}\r\n </Tooltip>\r\n <div className={_styles.paramDescContainer_separator}></div>\r\n {!readOnly && (\r\n <Button\r\n className={_styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={\r\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\r\n }\r\n onClick={() => {\r\n resetForm()\r\n setText('')\r\n setIsFormOpen(false)\r\n }} // Correctly delete the new row\r\n />\r\n )}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={_styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"success\"\r\n disabled={!isValid}\r\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\r\n onClick={() => {\r\n setText('')\r\n submitForm()\r\n }} // Save the new row when clicked\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n ) : (\r\n <>\r\n {!readOnly && (\r\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\r\n <td colSpan={5}>\r\n <Button\r\n variant=\"link\"\r\n color=\"primary\"\r\n onClick={() => {\r\n setIsFormOpen((prev) => !prev)\r\n }}\r\n >\r\n + Add Tag\r\n </Button>\r\n </td>\r\n </tr>\r\n )}\r\n </>\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default TagsTable\r\n"],"names":["TagsTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","text","setText","useState","externalDesc","setExternalDesc","externalUrl","setExternalUrl","tooltipRef","setTooltipRef","externalTooltipRefs","setExternalTooltipRefs","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","validateOnMount","initialValues","name","description","externalDocs","url","validationSchema","yup.object","shape","yup.string","required","optional","onSubmit","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","Input","placeholder","size","type","onChange","value","disabled","styles","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","_styles","editDescTooltipContent","editDescTooltipContent_header","TextArea","Button","editDescTooltipContent_btn","variant","onClick","hide","editDescBtn","paddingLeft","color","endIcon","SVGLoader","src","EditIcon","height","href","_a","target","_b","_d","_c","substring","_e","_g","_f","length","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow","_Fragment","Fragment","colSpan","prev"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"../../_virtual/jsx-runtime.js";import{d as o}from"../../_virtual/index.js";import t from"../components/MethodAccordion/MethodAccordion.js";import s from"./layout.module.css.js";import i from"../components/InfoForm/InfoForm.js";import r from"../components/SectionHead/SectionHead.js";import{transformOpenApiObject as a,transformOpenApiObjectToOrigin as d}from"../helpers/layout.helper.js";import n from"../components/LivePreview/LivePreview.js";import{useFormik as m,FormikProvider as l}from"../../node_modules/formik/dist/formik.esm.js";import{schemaValidation as c}from"../validator/form.scheme.js";import{methodColorMapping as p}from"../constants/index.js";const u=({openApiJson:u,handleSave:h})=>{const j=structuredClone(u),v=a(j),f=m({initialValues:structuredClone(v),validationSchema:c,validateOnMount:!0,onSubmit:(e,{validateForm:o})=>{const t=d(e);h(t),o(e)}});return e.jsxs("div",{className:s.docsLayout,children:[e.jsx(o.Alert,{className:s.apiDocAlert,color:"info",children:"Changes are saved and published for API information and each endpoint individually as you update."}),e.jsxs("div",{className:s.layoutContainer,children:[e.jsxs("div",{className:`${s.editorSide} ${s.docSide}`,children:[e.jsx(r,{className:s.editorSectionHead,text:e.jsxs("div",{className:s.editorSectionHead_content,children:["API Information",e.jsx(o.Button,{className:s.methodForm_submitBtn,size:"medium",fullWidth:!1,type:"submit",variant:"contained",color:"primary",onClick:f.submitForm,children:"Save"})]})}),e.jsx(l,{value:f,children:e.jsx(i,{})}),e.jsx(r,{className:s.editorSectionHead,text:"API Methods"}),e.jsx(l,{value:f,children:f.values.paths.map(((o,s)=>e.jsx(e.Fragment,{children:o.methods.sort(((e,o)=>p[e.type].order-p[o.type].order)).map(((i,r)=>e.jsx(t,{method:i,path:o.path,setFieldValue:(e,o)=>{const t=`paths[${s}].methods[${r}].${e}`;f.setFieldValue(t,o)}})))})))})]}),e.jsx("div",{className:`${s.livePreviewSide} ${s.docSide}`,children:v&&e.jsx(l,{value:f,children:e.jsx(n,{transformedData:v})})})]})]})};export{u as default};
1
+ import{j as e}from"../../_virtual/jsx-runtime.js";import{useEffect as o}from"react";import{d as t}from"../../_virtual/index.js";import s from"../components/MethodAccordion/MethodAccordion.js";import i from"./layout.module.css.js";import r from"../components/InfoForm/InfoForm.js";import a from"../components/SectionHead/SectionHead.js";import{transformOpenApiObject as d,transformOpenApiObjectToOrigin as n}from"../helpers/layout.helper.js";import m from"../components/LivePreview/LivePreview.js";import{useFormik as l,FormikProvider as c}from"../../node_modules/formik/dist/formik.esm.js";import{schemaValidation as u}from"../validator/form.scheme.js";import{methodColorMapping as p}from"../constants/index.js";const h=({openApiJson:h,handleSave:j,setIsFormDirty:v})=>{const f=structuredClone(h),x=d(f),y=l({initialValues:structuredClone(x),validationSchema:u,validateOnMount:!0,onSubmit:(e,{validateForm:o,resetForm:t})=>{const s=n(e);j(s),t({values:e}),o(e)}});return o((()=>{v&&v(y.dirty)}),[y.dirty]),e.jsxs("div",{className:i.docsLayout,children:[e.jsx(t.Alert,{className:i.apiDocAlert,color:"info",children:"Changes are saved and published for API information and each endpoint individually as you update."}),e.jsxs("div",{className:i.layoutContainer,children:[e.jsxs("div",{className:`${i.editorSide} ${i.docSide}`,children:[e.jsx(a,{className:i.editorSectionHead,text:e.jsxs("div",{className:i.editorSectionHead_content,children:["API Information",e.jsx(t.Button,{className:i.methodForm_submitBtn,size:"medium",fullWidth:!1,type:"submit",variant:"contained",color:"primary",onClick:y.submitForm,children:"Save"})]})}),e.jsx(c,{value:y,children:e.jsx(r,{})}),e.jsx(a,{className:i.editorSectionHead,text:"API Methods"}),e.jsx(c,{value:y,children:y.values.paths.map(((o,t)=>e.jsx(e.Fragment,{children:o.methods.sort(((e,o)=>p[e.type].order-p[o.type].order)).map(((i,r)=>e.jsx(s,{tags:y.values.tags,method:i,path:o.path,setFieldValue:(e,o)=>{const s=`paths[${t}].methods[${r}].${e}`;y.setFieldValue(s,o)}})))})))})]}),e.jsx("div",{className:`${i.livePreviewSide} ${i.docSide}`,children:x&&e.jsx(c,{value:y,children:e.jsx(m,{transformedData:x})})})]})]})};export{h as default};
2
2
  //# sourceMappingURL=layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sources":["../../../src/layout/layout.tsx"],"sourcesContent":["import { JSX } from 'react'\r\nimport { Alert, Button } from 'digitinary-ui'\r\nimport MethodsAccordion from '../components/MethodAccordion/MethodAccordion'\r\nimport styles from './layout.module.css'\r\nimport InfoForm from '../components/InfoForm/InfoForm'\r\nimport SectionHead from '../components/SectionHead/SectionHead'\r\nimport { transformOpenApiObject, transformOpenApiObjectToOrigin } from '../helpers/layout.helper'\r\nimport { OpenAPIFile } from '../types/openApi'\r\nimport LivePreview from '../components/LivePreview/LivePreview'\r\nimport { FormikProvider, useFormik } from 'formik'\r\nimport { schemaValidation } from '../validator/form.scheme'\r\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\r\nimport { methodColorMapping } from '../constants/index'\r\n\r\ninterface ILayoutProps {\r\n openApiJson?: OpenAPIFile\r\n handleSave?: (values: unknown) => unknown\r\n}\r\n\r\nconst Layout = ({ openApiJson, handleSave }: ILayoutProps): JSX.Element => {\r\n const clonedOpenApiJson = structuredClone(openApiJson)\r\n const transformedOpenApi = transformOpenApiObject(clonedOpenApiJson)\r\n const formik = useFormik<TransformedOpenApi>({\r\n initialValues: structuredClone(transformedOpenApi),\r\n validationSchema: schemaValidation,\r\n validateOnMount: true,\r\n onSubmit: (values, { validateForm }) => {\r\n // Handle save logic\r\n const originalOpenApiForm = transformOpenApiObjectToOrigin(values)\r\n handleSave(originalOpenApiForm)\r\n validateForm(values)\r\n },\r\n })\r\n\r\n return (\r\n <div className={styles.docsLayout}>\r\n <Alert className={styles.apiDocAlert} color=\"info\">\r\n Changes are saved and published for API information and each endpoint individually as you\r\n update.\r\n </Alert>\r\n <div className={styles.layoutContainer}>\r\n <div className={`${styles.editorSide} ${styles.docSide}`}>\r\n <SectionHead\r\n className={styles.editorSectionHead}\r\n text={\r\n <div className={styles.editorSectionHead_content}>\r\n API Information\r\n <Button\r\n className={styles.methodForm_submitBtn}\r\n size=\"medium\"\r\n fullWidth={false}\r\n type=\"submit\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n onClick={formik.submitForm}\r\n >\r\n Save\r\n </Button>\r\n </div>\r\n }\r\n />\r\n <FormikProvider value={formik}>\r\n <InfoForm />\r\n </FormikProvider>\r\n <SectionHead className={styles.editorSectionHead} text=\"API Methods\" />\r\n <FormikProvider value={formik}>\r\n {formik.values.paths.map((path, pathIndex) => (\r\n <>\r\n {path.methods\r\n .sort(\r\n (a, b) => methodColorMapping[a.type].order - methodColorMapping[b.type].order\r\n )\r\n .map((method, methodIndex) => (\r\n <MethodsAccordion\r\n method={method}\r\n path={path.path}\r\n setFieldValue={(key, value) => {\r\n const h = `paths[${pathIndex}].methods[${methodIndex}].${key}`\r\n formik.setFieldValue(h, value)\r\n }}\r\n />\r\n ))}\r\n </>\r\n ))}\r\n </FormikProvider>\r\n </div>\r\n <div className={`${styles.livePreviewSide} ${styles.docSide}`}>\r\n {transformedOpenApi && (\r\n <FormikProvider value={formik}>\r\n <LivePreview transformedData={transformedOpenApi} />\r\n </FormikProvider>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Layout\r\n"],"names":["Layout","openApiJson","handleSave","clonedOpenApiJson","structuredClone","transformedOpenApi","transformOpenApiObject","formik","useFormik","initialValues","validationSchema","schemaValidation","validateOnMount","onSubmit","values","validateForm","originalOpenApiForm","transformOpenApiObjectToOrigin","_jsxs","jsxs","className","styles","docsLayout","children","_jsx","jsx","Alert","apiDocAlert","color","layoutContainer","editorSide","docSide","SectionHead","editorSectionHead","text","editorSectionHead_content","Button","methodForm_submitBtn","size","fullWidth","type","variant","onClick","submitForm","FormikProvider","value","InfoForm","paths","map","path","pathIndex","_Fragment","methods","sort","a","b","methodColorMapping","order","method","methodIndex","MethodsAccordion","setFieldValue","key","h","livePreviewSide","LivePreview","transformedData"],"mappings":"sqBAmBM,MAAAA,EAAS,EAAGC,cAAaC,iBAC7B,MAAMC,EAAoBC,gBAAgBH,GACpCI,EAAqBC,EAAuBH,GAC5CI,EAASC,EAA8B,CAC3CC,cAAeL,gBAAgBC,GAC/BK,iBAAkBC,EAClBC,iBAAiB,EACjBC,SAAU,CAACC,GAAUC,mBAEnB,MAAMC,EAAsBC,EAA+BH,GAC3DZ,EAAWc,GACXD,EAAaD,EAAO,IAIxB,OACEI,EAAAC,KAAA,MAAA,CAAKC,UAAWC,EAAOC,WACrBC,SAAA,CAAAC,EAAAC,IAACC,EAAKA,MAAC,CAAAN,UAAWC,EAAOM,YAAaC,MAAM,OAAML,SAAA,sGAIlDL,EAAAC,KAAA,MAAA,CAAKC,UAAWC,EAAOQ,0BACrBX,EAAKC,KAAA,MAAA,CAAAC,UAAW,GAAGC,EAAOS,cAAcT,EAAOU,UAASR,SAAA,CACtDC,EAAAA,IAACQ,EAAW,CACVZ,UAAWC,EAAOY,kBAClBC,KACEhB,EAAKC,KAAA,MAAA,CAAAC,UAAWC,EAAOc,0BAAyBZ,SAAA,CAAA,kBAE9CC,MAACY,EAAAA,QACChB,UAAWC,EAAOgB,qBAClBC,KAAK,SACLC,WAAW,EACXC,KAAK,SACLC,QAAQ,YACRb,MAAM,UACNc,QAASnC,EAAOoC,WAGTpB,SAAA,cAIfC,EAAAA,IAACoB,GAAeC,MAAOtC,EAAMgB,SAC3BC,MAACsB,EAAQ,MAEXtB,MAACQ,EAAW,CAACZ,UAAWC,EAAOY,kBAAmBC,KAAK,gBACvDV,MAACoB,EAAc,CAACC,MAAOtC,EACpBgB,SAAAhB,EAAOO,OAAOiC,MAAMC,KAAI,CAACC,EAAMC,IAC9B1B,EAAAA,IACG2B,EAAAA,SAAA,CAAA5B,SAAA0B,EAAKG,QACHC,MACC,CAACC,EAAGC,IAAMC,EAAmBF,EAAEd,MAAMiB,MAAQD,EAAmBD,EAAEf,MAAMiB,QAEzET,KAAI,CAACU,EAAQC,IACZnC,EAAAA,IAACoC,EAAgB,CACfF,OAAQA,EACRT,KAAMA,EAAKA,KACXY,cAAe,CAACC,EAAKjB,KACnB,MAAMkB,EAAI,SAASb,cAAsBS,MAAgBG,IACzDvD,EAAOsD,cAAcE,EAAGlB,EAAM,eAQ9CrB,EAAAC,IAAA,MAAA,CAAKL,UAAW,GAAGC,EAAO2C,mBAAmB3C,EAAOU,UAASR,SAC1DlB,GACCmB,MAACoB,EAAc,CAACC,MAAOtC,WACrBiB,EAAAA,IAACyC,GAAYC,gBAAiB7D,aAMzC"}
1
+ {"version":3,"file":"layout.js","sources":["../../../src/layout/layout.tsx"],"sourcesContent":["import { JSX, useEffect } from 'react'\r\nimport { Alert, Button } from 'digitinary-ui'\r\nimport MethodsAccordion from '../components/MethodAccordion/MethodAccordion'\r\nimport styles from './layout.module.css'\r\nimport InfoForm from '../components/InfoForm/InfoForm'\r\nimport SectionHead from '../components/SectionHead/SectionHead'\r\nimport { transformOpenApiObject, transformOpenApiObjectToOrigin } from '../helpers/layout.helper'\r\nimport { OpenAPIFile } from '../types/openApi'\r\nimport LivePreview from '../components/LivePreview/LivePreview'\r\nimport { FormikProvider, useFormik } from 'formik'\r\nimport { schemaValidation } from '../validator/form.scheme'\r\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\r\nimport { methodColorMapping } from '../constants/index'\r\n\r\ninterface ILayoutProps {\r\n openApiJson?: OpenAPIFile\r\n handleSave?: (values: unknown) => unknown\r\n setIsFormDirty?: any\r\n}\r\n\r\nconst Layout = ({ openApiJson, handleSave, setIsFormDirty }: ILayoutProps): JSX.Element => {\r\n const clonedOpenApiJson = structuredClone(openApiJson)\r\n const transformedOpenApi = transformOpenApiObject(clonedOpenApiJson)\r\n const formik = useFormik<TransformedOpenApi>({\r\n initialValues: structuredClone(transformedOpenApi),\r\n validationSchema: schemaValidation,\r\n validateOnMount: true,\r\n onSubmit: (values, { validateForm, resetForm }) => {\r\n // Handle save logic\r\n const originalOpenApiForm = transformOpenApiObjectToOrigin(values)\r\n handleSave(originalOpenApiForm)\r\n resetForm({\r\n values: values, // You can reset it to the same values if you want\r\n })\r\n\r\n validateForm(values)\r\n },\r\n })\r\n\r\n useEffect(() => {\r\n if (setIsFormDirty) {\r\n setIsFormDirty(formik.dirty)\r\n }\r\n }, [formik.dirty])\r\n\r\n return (\r\n <div className={styles.docsLayout}>\r\n <Alert className={styles.apiDocAlert} color=\"info\">\r\n Changes are saved and published for API information and each endpoint individually as you\r\n update.\r\n </Alert>\r\n <div className={styles.layoutContainer}>\r\n <div className={`${styles.editorSide} ${styles.docSide}`}>\r\n <SectionHead\r\n className={styles.editorSectionHead}\r\n text={\r\n <div className={styles.editorSectionHead_content}>\r\n API Information\r\n <Button\r\n className={styles.methodForm_submitBtn}\r\n size=\"medium\"\r\n fullWidth={false}\r\n type=\"submit\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n onClick={formik.submitForm}\r\n >\r\n Save\r\n </Button>\r\n </div>\r\n }\r\n />\r\n <FormikProvider value={formik}>\r\n <InfoForm />\r\n </FormikProvider>\r\n <SectionHead className={styles.editorSectionHead} text=\"API Methods\" />\r\n <FormikProvider value={formik}>\r\n {formik.values.paths.map((path, pathIndex) => (\r\n <>\r\n {path.methods\r\n .sort(\r\n (a, b) => methodColorMapping[a.type].order - methodColorMapping[b.type].order\r\n )\r\n .map((method, methodIndex) => (\r\n <MethodsAccordion\r\n tags={formik.values.tags}\r\n method={method}\r\n path={path.path}\r\n setFieldValue={(key, value) => {\r\n const h = `paths[${pathIndex}].methods[${methodIndex}].${key}`\r\n formik.setFieldValue(h, value)\r\n }}\r\n />\r\n ))}\r\n </>\r\n ))}\r\n </FormikProvider>\r\n </div>\r\n <div className={`${styles.livePreviewSide} ${styles.docSide}`}>\r\n {transformedOpenApi && (\r\n <FormikProvider value={formik}>\r\n <LivePreview transformedData={transformedOpenApi} />\r\n </FormikProvider>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Layout\r\n"],"names":["Layout","openApiJson","handleSave","setIsFormDirty","clonedOpenApiJson","structuredClone","transformedOpenApi","transformOpenApiObject","formik","useFormik","initialValues","validationSchema","schemaValidation","validateOnMount","onSubmit","values","validateForm","resetForm","originalOpenApiForm","transformOpenApiObjectToOrigin","useEffect","dirty","_jsxs","jsxs","className","styles","docsLayout","children","_jsx","jsx","Alert","apiDocAlert","color","layoutContainer","editorSide","docSide","SectionHead","editorSectionHead","text","editorSectionHead_content","Button","methodForm_submitBtn","size","fullWidth","type","variant","onClick","submitForm","FormikProvider","value","InfoForm","paths","map","path","pathIndex","_Fragment","methods","sort","a","b","methodColorMapping","order","method","methodIndex","MethodsAccordion","tags","setFieldValue","key","h","livePreviewSide","LivePreview","transformedData"],"mappings":"wsBAoBM,MAAAA,EAAS,EAAGC,cAAaC,aAAYC,qBACzC,MAAMC,EAAoBC,gBAAgBJ,GACpCK,EAAqBC,EAAuBH,GAC5CI,EAASC,EAA8B,CAC3CC,cAAeL,gBAAgBC,GAC/BK,iBAAkBC,EAClBC,iBAAiB,EACjBC,SAAU,CAACC,GAAUC,eAAcC,gBAEjC,MAAMC,EAAsBC,EAA+BJ,GAC3Db,EAAWgB,GACXD,EAAU,CACRF,OAAQA,IAGVC,EAAaD,EAAO,IAUxB,OANAK,GAAU,KACJjB,GACFA,EAAeK,EAAOa,MACvB,GACA,CAACb,EAAOa,QAGTC,EAAAC,KAAA,MAAA,CAAKC,UAAWC,EAAOC,WACrBC,SAAA,CAAAC,EAAAC,IAACC,EAAKA,MAAC,CAAAN,UAAWC,EAAOM,YAAaC,MAAM,OAAML,SAAA,sGAIlDL,EAAAC,KAAA,MAAA,CAAKC,UAAWC,EAAOQ,0BACrBX,EAAKC,KAAA,MAAA,CAAAC,UAAW,GAAGC,EAAOS,cAAcT,EAAOU,UAASR,SAAA,CACtDC,EAAAA,IAACQ,EAAW,CACVZ,UAAWC,EAAOY,kBAClBC,KACEhB,EAAKC,KAAA,MAAA,CAAAC,UAAWC,EAAOc,0BAAyBZ,SAAA,CAAA,kBAE9CC,MAACY,EAAAA,QACChB,UAAWC,EAAOgB,qBAClBC,KAAK,SACLC,WAAW,EACXC,KAAK,SACLC,QAAQ,YACRb,MAAM,UACNc,QAAStC,EAAOuC,WAGTpB,SAAA,cAIfC,EAAAA,IAACoB,GAAeC,MAAOzC,EAAMmB,SAC3BC,MAACsB,EAAQ,MAEXtB,MAACQ,EAAW,CAACZ,UAAWC,EAAOY,kBAAmBC,KAAK,gBACvDV,MAACoB,EAAc,CAACC,MAAOzC,EACpBmB,SAAAnB,EAAOO,OAAOoC,MAAMC,KAAI,CAACC,EAAMC,IAC9B1B,EAAAA,IACG2B,EAAAA,SAAA,CAAA5B,SAAA0B,EAAKG,QACHC,MACC,CAACC,EAAGC,IAAMC,EAAmBF,EAAEd,MAAMiB,MAAQD,EAAmBD,EAAEf,MAAMiB,QAEzET,KAAI,CAACU,EAAQC,IACZnC,EAAAA,IAACoC,EACC,CAAAC,KAAMzD,EAAOO,OAAOkD,KACpBH,OAAQA,EACRT,KAAMA,EAAKA,KACXa,cAAe,CAACC,EAAKlB,KACnB,MAAMmB,EAAI,SAASd,cAAsBS,MAAgBI,IACzD3D,EAAO0D,cAAcE,EAAGnB,EAAM,eAQ9CrB,EAAAC,IAAA,MAAA,CAAKL,UAAW,GAAGC,EAAO4C,mBAAmB5C,EAAOU,UAASR,SAC1DrB,GACCsB,MAACoB,EAAc,CAACC,MAAOzC,WACrBoB,EAAAA,IAAC0C,GAAYC,gBAAiBjE,aAMzC"}