@digi-frontend/dgate-api-documentation 1.0.28 → 1.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +12 -12
- package/.prettierignore +7 -7
- package/.prettierrc +15 -15
- package/dist/{a7568b270e175038.svg → 070dc6ecd197bc80.svg} +8 -8
- package/dist/{43595976d1fdccbf.svg → 2e10bbdb265df50e.svg} +4 -4
- package/dist/{b82c7612e73342f3.svg → 7f54eeb0bb2d1150.svg} +3 -3
- package/dist/{56dc416b683db280.svg → 8789eb84283ea95b.svg} +5 -5
- package/dist/{af16a554be8c4d69.svg → 9bdff13f8d8fa48a.svg} +3 -3
- package/dist/_virtual/index4.js +1 -1
- package/dist/_virtual/index5.js +1 -1
- package/dist/_virtual/index6.js +1 -1
- package/dist/{64efc2716808c4a4.svg → bb8b87cace25e052.svg} +3 -3
- package/dist/{72db3b05a96dd600.svg → d32ce84bbd78babd.svg} +3 -3
- package/dist/{844eba3f2e42a9eb.svg → d501922060662842.svg} +3 -3
- package/dist/node_modules/toposort/index.js +1 -1
- package/dist/node_modules/yup/index.esm.js +1 -1
- package/dist/src/assets/icons/AddRow.svg.js +1 -1
- package/dist/src/assets/icons/AddRow.svg.js.map +1 -1
- package/dist/src/assets/icons/CheckMarkSquare.svg.js +1 -1
- package/dist/src/assets/icons/CheckMarkSquare.svg.js.map +1 -1
- package/dist/src/assets/icons/CloseIcon.svg.js +1 -1
- package/dist/src/assets/icons/CloseIcon.svg.js.map +1 -1
- package/dist/src/assets/icons/DeleteIcon.svg.js +1 -1
- package/dist/src/assets/icons/DeleteIcon.svg.js.map +1 -1
- package/dist/src/assets/icons/DownArrow.svg.js +1 -1
- package/dist/src/assets/icons/DownArrow.svg.js.map +1 -1
- package/dist/src/assets/icons/EditIcon.svg.js +1 -1
- package/dist/src/assets/icons/EditIcon.svg.js.map +1 -1
- package/dist/src/assets/icons/UpArrow.svg.js +1 -1
- package/dist/src/assets/icons/UpArrow.svg.js.map +1 -1
- package/dist/src/assets/icons/deleteOutlinedIcon.svg.js +1 -1
- package/dist/src/assets/icons/deleteOutlinedIcon.svg.js.map +1 -1
- package/dist/src/components/Chips/Chips.js.map +1 -1
- package/dist/src/components/InfoForm/InfoForm.js.map +1 -1
- package/dist/src/components/JsonInput/JsonInput.js.map +1 -1
- package/dist/src/components/LivePreview/LivePreview.js.map +1 -1
- package/dist/src/components/MethodAccordion/MethodAccordion.js +1 -1
- package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
- package/dist/src/components/SVGLoader/SVGLoader.js.map +1 -1
- package/dist/src/components/SectionHead/SectionHead.js.map +1 -1
- package/dist/src/components/SimpleLabelValue/SimpleLabelValue.js.map +1 -1
- package/dist/src/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/src/components/dialog/index.js.map +1 -1
- package/dist/src/components/table/table.js +1 -1
- package/dist/src/components/table/table.js.map +1 -1
- package/dist/src/components/table/tags-table.js +1 -1
- package/dist/src/components/table/tags-table.js.map +1 -1
- package/dist/src/constants/index.js.map +1 -1
- package/dist/src/constants/regex.js.map +1 -1
- package/dist/src/helpers/layout.helper.js.map +1 -1
- package/dist/src/helpers/methodAccordion.helper.js.map +1 -1
- package/dist/src/layout/layout.js.map +1 -1
- package/dist/src/validator/form.scheme.js.map +1 -1
- package/dist/styles.css +212 -212
- package/package.json +43 -43
- package/rollup.config.js +35 -35
- package/src/assets/icons/AddRow.svg +3 -3
- package/src/assets/icons/CheckMarkSquare.svg +5 -5
- package/src/assets/icons/CloseIcon.svg +4 -4
- package/src/assets/icons/DeleteIcon.svg +3 -3
- package/src/assets/icons/DownArrow.svg +3 -3
- package/src/assets/icons/EditIcon.svg +3 -3
- package/src/assets/icons/UpArrow.svg +3 -3
- package/src/assets/icons/deleteOutlinedIcon.svg +8 -8
- package/src/assets/icons/index.ts +8 -8
- package/src/components/Chips/Chips.tsx +87 -87
- package/src/components/Chips/style.scss +147 -147
- package/src/components/InfoForm/InfoForm.module.scss +165 -165
- package/src/components/InfoForm/InfoForm.tsx +426 -426
- package/src/components/JsonInput/JsonInput.tsx +149 -149
- package/src/components/JsonInput/style.module.scss +133 -133
- package/src/components/LivePreview/LivePreview.module.scss +24 -24
- package/src/components/LivePreview/LivePreview.tsx +184 -184
- package/src/components/MethodAccordion/MethodAccordion.module.scss +338 -338
- package/src/components/MethodAccordion/MethodAccordion.tsx +515 -514
- package/src/components/SVGLoader/SVGLoader.tsx +94 -94
- package/src/components/SectionHead/SectionHead.scss +29 -29
- package/src/components/SectionHead/SectionHead.tsx +22 -22
- package/src/components/SimpleLabelValue/SimpleLabelValue.tsx +31 -31
- package/src/components/SimpleLabelValue/index.ts +1 -1
- package/src/components/SimpleLabelValue/style.scss +30 -30
- package/src/components/Tooltip/Tooltip.scss +133 -133
- package/src/components/Tooltip/Tooltip.tsx +85 -85
- package/src/components/_global.scss +337 -337
- package/src/components/dialog/dialog.ts +54 -54
- package/src/components/dialog/index.tsx +85 -85
- package/src/components/dialog/style.scss +104 -104
- package/src/components/table/style.scss +190 -190
- package/src/components/table/table.tsx +327 -322
- package/src/components/table/tags-table.tsx +348 -341
- package/src/constants/index.ts +93 -93
- package/src/constants/regex.ts +7 -7
- package/src/global.d.ts +13 -13
- package/src/helpers/layout.helper.ts +162 -162
- package/src/helpers/methodAccordion.helper.ts +19 -19
- package/src/index.ts +1 -1
- package/src/layout/layout.module.css +61 -61
- package/src/layout/layout.tsx +150 -150
- package/src/types/layout.type.ts +30 -30
- package/src/types/openApi.ts +108 -108
- package/src/types/transformedOpenApi.ts +52 -52
- package/src/validator/form.scheme.ts +70 -70
- package/tsconfig.json +33 -33
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfoForm.js","sources":["../../../../src/components/InfoForm/InfoForm.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\r\n// @ts-ignore\r\nimport { useFormikContext } from 'formik'\r\nimport { Button, Input, TextArea } from 'digitinary-ui'\r\nimport styles from './InfoForm.module.scss'\r\nimport regex from '../../constants/regex'\r\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\r\nimport Tooltip from '../../components/Tooltip/Tooltip'\r\nimport { DeleteIcon, deleteOutlinedIcon, EditIcon } from '../../assets/icons'\r\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\r\nimport CommonDialog from '../../components/dialog'\r\nimport { tagsTableHeaders } from '../../constants/index'\r\nimport TagsTable from '../../components/table/tags-table'\r\n\r\nconst InfoForm = ({ readOnly }: { readOnly?: boolean }) => {\r\n const [tableData, setTableData] = useState([])\r\n const [tableRecords, setTableRecords] = useState()\r\n const [authType, setAuthType] = useState('')\r\n const [description, setDescription] = useState('')\r\n const [url, setURL] = useState('')\r\n const { values, setFieldValue, errors } = useFormikContext<TransformedOpenApi>()\r\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [selectedTagIndex, setSelectedTagIndex] = useState<number | null>(null)\r\n const [selectedTagName, setSelectedTagName] = useState<string | null>(null)\r\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\r\n const [isFormOpen, setIsFormOpen] = useState(false)\r\n\r\n useEffect(() => {\r\n if (values && values.components && values.components.securitySchemes) {\r\n const authenticatorKeys = Object.keys(values.components.securitySchemes)\r\n if (authenticatorKeys.length) {\r\n setAuthType(\r\n values.components.securitySchemes[authenticatorKeys[0]].scheme ||\r\n values.components.securitySchemes[authenticatorKeys[0]].type\r\n )\r\n }\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n setTableRecords(generateTableRecords(tableData))\r\n }, [tableData])\r\n\r\n useEffect(() => {\r\n if (values.tags && values.tags.length) {\r\n setTableData(values.tags)\r\n }\r\n }, [values.tags])\r\n\r\n const confirmDeleteTag = () => {\r\n if (selectedTagIndex !== null) {\r\n setTableData((prev) => prev.filter((_, i) => i !== selectedTagIndex))\r\n setFieldValue(\r\n `tags`,\r\n values.tags?.filter((_, i) => i !== selectedTagIndex)\r\n )\r\n }\r\n setOpenDeleteDialog(false)\r\n setSelectedTagIndex(null)\r\n }\r\n\r\n const capitalize = (str) => {\r\n if (!str) return ''\r\n return str.charAt(0).toUpperCase() + str.slice(1)\r\n }\r\n\r\n const onTableChange = (key, value, index) => {\r\n const newTableData = tableData.map((item, tIndex) => {\r\n if (tIndex === index) {\r\n return { ...item, [key]: value }\r\n } else {\r\n return item\r\n }\r\n })\r\n\r\n setTableData(newTableData)\r\n }\r\n\r\n const saveNewRow = (tag) => {\r\n setTableData([...tableData, tag])\r\n const oldTags = values.tags || []\r\n setFieldValue(`tags`, [...oldTags, tag])\r\n }\r\n\r\n const handleDeleteClick = (id: number, name: string) => {\r\n setSelectedTagIndex(id)\r\n setSelectedTagName(name)\r\n\r\n setOpenDeleteDialog(true)\r\n }\r\n\r\n const generateTableRecords = (items) => {\r\n return items.map((item, index) => ({\r\n id: index,\r\n tagName: item.name,\r\n description: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n key={`${index}-description`}\r\n allowHTML\r\n disabled={values.tags[index].description?.length <= 12}\r\n content={<div style={{ padding: '0.625rem' }}>{values.tags[index].description}</div>}\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n delay={[0, 0]}\r\n onShow={() => tooltipRefs[index]?.hide()}\r\n >\r\n <p style={{ alignSelf: 'center', fontWeight: 600, fontSize: '1rem' }}>\r\n {values.tags[index].description\r\n ? values.tags[index].description.substring(0, 12)\r\n : readOnly && '-'}\r\n {values.tags[index].description && values.tags[index].description.length > 12\r\n ? '...'\r\n : ''}\r\n </p>\r\n </Tooltip>\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 tag...\"\r\n value={item.description}\r\n disabled={readOnly}\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value))\r\n onTableChange('description', value, index)\r\n }}\r\n maxLength={25}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(`tags[${index}].description`, item.description?.trim())\r\n tooltipRefs[index]?.hide()\r\n }}\r\n disabled={!item.description?.trim()}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly || values.tags[index].description ? (\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 ></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 || values.tags[index].description\r\n ? 'View Description'\r\n : 'Add Description'}\r\n </Button>\r\n )}\r\n </Tooltip>\r\n </div>\r\n ),\r\n externalDocs: (\r\n <div className={styles.paramDescContainer}>\r\n {values.tags[index].externalDocs?.description && values.tags[index].externalDocs?.url && (\r\n <a\r\n className={styles.externalDocsLink}\r\n href={values.tags[index].externalDocs?.url}\r\n target=\"_blank\"\r\n style={\r\n !values.tags[index].externalDocs?.description\r\n ? { textDecoration: 'none', pointerEvents: 'none' }\r\n : {}\r\n }\r\n >\r\n {values.tags[index].externalDocs?.description\r\n ? values.tags[index].externalDocs?.description?.substring(0, 12)\r\n : readOnly && '-'}\r\n {values.tags[index].externalDocs?.description &&\r\n values.tags[index].externalDocs?.description?.length > 12\r\n ? '...'\r\n : ''}\r\n </a>\r\n )}\r\n\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) =>\r\n setExternalTooltipRefs((prev) => ({\r\n ...prev,\r\n [index]: instance,\r\n }))\r\n }\r\n content={\r\n <div className={styles.editDescTooltipContent}>\r\n <p className={styles.editDescTooltipContent_header}>External Docs Description</p>\r\n <TextArea\r\n placeholder=\"Describe External Doc...\"\r\n value={item.externalDocs?.description}\r\n disabled={readOnly}\r\n maxLength={25}\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value)) {\r\n onTableChange(\r\n 'externalDocs',\r\n { ...item.externalDocs, description: value },\r\n index\r\n )\r\n setDescription(value)\r\n }\r\n }}\r\n />\r\n <p className={styles.editDescTooltipContent_header}>External Docs Link</p>\r\n <TextArea\r\n placeholder=\"External Docs Link...\"\r\n value={item.externalDocs?.url}\r\n disabled={readOnly}\r\n maxLength={200}\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value)) {\r\n onTableChange('externalDocs', { ...item.externalDocs, url: value }, index)\r\n setURL(value)\r\n }\r\n }}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(`tags[${index}].externalDocs`, {\r\n description: description?.trim(),\r\n url: url?.trim(),\r\n })\r\n setDescription('')\r\n setURL('')\r\n externalTooltipRefs[index]?.hide()\r\n }}\r\n disabled={\r\n !(\r\n (values.tags[index].externalDocs?.description &&\r\n values.tags[index].externalDocs?.url &&\r\n !description?.trim() &&\r\n !url?.trim()) ||\r\n (description?.trim() && url?.trim() && regex.urlRegex.test(url))\r\n )\r\n }\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly || values.tags[index].externalDocs?.description ? (\r\n <div className={styles.editExternalDocs}>\r\n <SVGLoader\r\n src={EditIcon}\r\n width=\"1.5rem\"\r\n height=\"1.5rem\"\r\n onClick={(e) => {\r\n e?.stopPropagation()\r\n setDescription(item.externalDocs?.description)\r\n setURL(item.externalDocs?.url)\r\n }}\r\n />\r\n </div>\r\n ) : (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n onClick={() => {\r\n setDescription(item.externalDocs?.description)\r\n setURL(item.externalDocs?.url)\r\n }}\r\n >\r\n {readOnly ||\r\n (values.tags[index]?.externalDocs &&\r\n (values.tags[index]?.externalDocs?.url ||\r\n values.tags[index].externalDocs?.description))\r\n ? 'View '\r\n : 'Add '}{' '}\r\n External Docs Link\r\n </Button>\r\n )}\r\n </Tooltip>\r\n\r\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\r\n onClick={() => handleDeleteClick(index, item.name)}\r\n ></Button>\r\n )}\r\n </div>\r\n ),\r\n }))\r\n }\r\n\r\n return (\r\n <form className={styles.apiInfoForm} onSubmit={(e) => e.preventDefault()}>\r\n <Input\r\n size=\"large\"\r\n placeholder=\"e.g. Payments\"\r\n label=\"API Name\"\r\n required\r\n value={values?.info?.title}\r\n maxLength={35}\r\n onChange={(value) => {\r\n setFieldValue('info.title', value)\r\n }}\r\n onClear={() => {\r\n setFieldValue('info.title', '')\r\n }}\r\n errorMsg={errors?.info?.title}\r\n restrictedCharactersRegex={regex.basic}\r\n />\r\n <div className={styles.apiDocRow}>\r\n <Input\r\n size=\"large\"\r\n label=\"API Authentication Type\"\r\n required\r\n value={capitalize(authType)}\r\n disabled\r\n />\r\n <Input size=\"large\" label=\"Version\" required value={values?.info?.version} disabled />\r\n </div>\r\n <TextArea\r\n size=\"large\"\r\n placeholder=\"Enter a description of the API's functionality...\"\r\n label=\"Description\"\r\n value={values?.info?.description}\r\n maxLength={120}\r\n required\r\n onChange={(value: string) => {\r\n if (value === '' || regex.ASCII.test(value)) {\r\n setFieldValue('info.description', value)\r\n }\r\n }}\r\n onClear={() => {\r\n setFieldValue('info.description', '')\r\n }}\r\n errorMsg={errors?.info?.description}\r\n />\r\n <div className={styles.paramsTable}>\r\n <TagsTable\r\n id=\"paramter-table\"\r\n data={tableRecords}\r\n headCells={tagsTableHeaders}\r\n isFormOpen={isFormOpen}\r\n setIsFormOpen={setIsFormOpen}\r\n saveNewRow={saveNewRow}\r\n readOnly={readOnly}\r\n />\r\n </div>\r\n <CommonDialog\r\n status=\"error\"\r\n content={\r\n <p\r\n style={{\r\n textAlign: 'center',\r\n fontWeight: 400,\r\n fontSize: '1rem',\r\n lineHeight: '1.4375rem',\r\n }}\r\n className=\"delete-msg-container\"\r\n >\r\n Are you sure you want to delete\r\n <span className=\"plan-name\">\r\n {' '}\r\n Tag <strong>{selectedTagName}</strong>\r\n </span>\r\n ?\r\n </p>\r\n }\r\n onSubmit={{\r\n onClick: confirmDeleteTag,\r\n text: 'Delete',\r\n color: 'error',\r\n fullWidth: true,\r\n }}\r\n onCancel={{\r\n text: 'Cancel',\r\n color: 'normal',\r\n fullWidth: true,\r\n }}\r\n onClose={() => setOpenDeleteDialog(false)}\r\n open={openDeleteDialog}\r\n icon={<SVGLoader src={deleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\r\n />\r\n </form>\r\n )\r\n}\r\n\r\nexport default InfoForm\r\n"],"names":["InfoForm","readOnly","tableData","setTableData","useState","tableRecords","setTableRecords","authType","setAuthType","description","setDescription","url","setURL","values","setFieldValue","errors","useFormikContext","externalTooltipRefs","setExternalTooltipRefs","tooltipRefs","setTooltipRefs","selectedTagIndex","setSelectedTagIndex","selectedTagName","setSelectedTagName","openDeleteDialog","setOpenDeleteDialog","isFormOpen","setIsFormOpen","useEffect","components","securitySchemes","authenticatorKeys","Object","keys","length","scheme","type","generateTableRecords","tags","onTableChange","key","value","index","newTableData","map","item","tIndex","assign","items","id","tagName","name","_jsxs","className","styles","paramDescContainer","children","_jsx","Tooltip","allowHTML","disabled","_a","content","style","padding","arrowWithBorder","placement","delay","onShow","hide","jsxs","alignSelf","fontWeight","fontSize","substring","trigger","onCreate","instance","prev","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","onChange","regex","ASCII","test","maxLength","jsx","Button","editDescTooltipContent_btn","variant","size","onClick","trim","_b","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","externalDocs","_c","_d","externalDocsLink","href","_e","target","_f","textDecoration","pointerEvents","_j","_h","_k","_m","_l","_o","_p","_q","_r","urlRegex","_s","editExternalDocs","e","stopPropagation","_t","_v","_u","_w","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteClick","apiInfoForm","onSubmit","preventDefault","Input","label","required","info","title","onClear","errorMsg","restrictedCharactersRegex","basic","apiDocRow","str","charAt","toUpperCase","slice","version","paramsTable","TagsTable","data","headCells","tagsTableHeaders","saveNewRow","tag","oldTags","CommonDialog","status","textAlign","lineHeight","filter","_","i","text","fullWidth","onCancel","onClose","open","icon","deleteOutlinedIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InfoForm.js","sources":["../../../../src/components/InfoForm/InfoForm.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\n// @ts-ignore\nimport { useFormikContext } from 'formik'\nimport { Button, Input, TextArea } from 'digitinary-ui'\nimport styles from './InfoForm.module.scss'\nimport regex from '../../constants/regex'\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\nimport Tooltip from '../../components/Tooltip/Tooltip'\nimport { DeleteIcon, deleteOutlinedIcon, EditIcon } from '../../assets/icons'\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\nimport CommonDialog from '../../components/dialog'\nimport { tagsTableHeaders } from '../../constants/index'\nimport TagsTable from '../../components/table/tags-table'\n\nconst InfoForm = ({ readOnly }: { readOnly?: boolean }) => {\n const [tableData, setTableData] = useState([])\n const [tableRecords, setTableRecords] = useState()\n const [authType, setAuthType] = useState('')\n const [description, setDescription] = useState('')\n const [url, setURL] = useState('')\n const { values, setFieldValue, errors } = useFormikContext<TransformedOpenApi>()\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\n const [selectedTagIndex, setSelectedTagIndex] = useState<number | null>(null)\n const [selectedTagName, setSelectedTagName] = useState<string | null>(null)\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\n const [isFormOpen, setIsFormOpen] = useState(false)\n\n useEffect(() => {\n if (values && values.components && values.components.securitySchemes) {\n const authenticatorKeys = Object.keys(values.components.securitySchemes)\n if (authenticatorKeys.length) {\n setAuthType(\n values.components.securitySchemes[authenticatorKeys[0]].scheme ||\n values.components.securitySchemes[authenticatorKeys[0]].type\n )\n }\n }\n }, [])\n\n useEffect(() => {\n setTableRecords(generateTableRecords(tableData))\n }, [tableData])\n\n useEffect(() => {\n if (values.tags && values.tags.length) {\n setTableData(values.tags)\n }\n }, [values.tags])\n\n const confirmDeleteTag = () => {\n if (selectedTagIndex !== null) {\n setTableData((prev) => prev.filter((_, i) => i !== selectedTagIndex))\n setFieldValue(\n `tags`,\n values.tags?.filter((_, i) => i !== selectedTagIndex)\n )\n }\n setOpenDeleteDialog(false)\n setSelectedTagIndex(null)\n }\n\n const capitalize = (str) => {\n if (!str) return ''\n return str.charAt(0).toUpperCase() + str.slice(1)\n }\n\n const onTableChange = (key, value, index) => {\n const newTableData = tableData.map((item, tIndex) => {\n if (tIndex === index) {\n return { ...item, [key]: value }\n } else {\n return item\n }\n })\n\n setTableData(newTableData)\n }\n\n const saveNewRow = (tag) => {\n setTableData([...tableData, tag])\n const oldTags = values.tags || []\n setFieldValue(`tags`, [...oldTags, tag])\n }\n\n const handleDeleteClick = (id: number, name: string) => {\n setSelectedTagIndex(id)\n setSelectedTagName(name)\n\n setOpenDeleteDialog(true)\n }\n\n const generateTableRecords = (items) => {\n return items.map((item, index) => ({\n id: index,\n tagName: item.name,\n description: (\n <div className={styles.paramDescContainer}>\n <Tooltip\n key={`${index}-description`}\n allowHTML\n disabled={values.tags[index].description?.length <= 12}\n content={<div style={{ padding: '0.625rem' }}>{values.tags[index].description}</div>}\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n delay={[0, 0]}\n onShow={() => tooltipRefs[index]?.hide()}\n >\n <p style={{ alignSelf: 'center', fontWeight: 600, fontSize: '1rem' }}>\n {values.tags[index].description\n ? values.tags[index].description.substring(0, 12)\n : readOnly && '-'}\n {values.tags[index].description && values.tags[index].description.length > 12\n ? '...'\n : ''}\n </p>\n </Tooltip>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n placeholder=\"Describe tag...\"\n value={item.description}\n disabled={readOnly}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value))\n onTableChange('description', value, index)\n }}\n maxLength={25}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(`tags[${index}].description`, item.description?.trim())\n tooltipRefs[index]?.hide()\n }}\n disabled={!item.description?.trim()}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly || values.tags[index].description ? (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n ></Button>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly || values.tags[index].description\n ? 'View Description'\n : 'Add Description'}\n </Button>\n )}\n </Tooltip>\n </div>\n ),\n externalDocs: (\n <div className={styles.paramDescContainer}>\n {values.tags[index].externalDocs?.description && values.tags[index].externalDocs?.url && (\n <a\n className={styles.externalDocsLink}\n href={values.tags[index].externalDocs?.url}\n target=\"_blank\"\n style={\n !values.tags[index].externalDocs?.description\n ? { textDecoration: 'none', pointerEvents: 'none' }\n : {}\n }\n >\n {values.tags[index].externalDocs?.description\n ? values.tags[index].externalDocs?.description?.substring(0, 12)\n : readOnly && '-'}\n {values.tags[index].externalDocs?.description &&\n values.tags[index].externalDocs?.description?.length > 12\n ? '...'\n : ''}\n </a>\n )}\n\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setExternalTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>External Docs Description</p>\n <TextArea\n placeholder=\"Describe External Doc...\"\n value={item.externalDocs?.description}\n disabled={readOnly}\n maxLength={25}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) {\n onTableChange(\n 'externalDocs',\n { ...item.externalDocs, description: value },\n index\n )\n setDescription(value)\n }\n }}\n />\n <p className={styles.editDescTooltipContent_header}>External Docs Link</p>\n <TextArea\n placeholder=\"External Docs Link...\"\n value={item.externalDocs?.url}\n disabled={readOnly}\n maxLength={200}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) {\n onTableChange('externalDocs', { ...item.externalDocs, url: value }, index)\n setURL(value)\n }\n }}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(`tags[${index}].externalDocs`, {\n description: description?.trim(),\n url: url?.trim(),\n })\n setDescription('')\n setURL('')\n externalTooltipRefs[index]?.hide()\n }}\n disabled={\n !(\n (values.tags[index].externalDocs?.description &&\n values.tags[index].externalDocs?.url &&\n !description?.trim() &&\n !url?.trim()) ||\n (description?.trim() && url?.trim() && regex.urlRegex.test(url))\n )\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly || values.tags[index].externalDocs?.description ? (\n <div className={styles.editExternalDocs}>\n <SVGLoader\n src={EditIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n onClick={(e) => {\n e?.stopPropagation()\n setDescription(item.externalDocs?.description)\n setURL(item.externalDocs?.url)\n }}\n />\n </div>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n onClick={() => {\n setDescription(item.externalDocs?.description)\n setURL(item.externalDocs?.url)\n }}\n >\n {readOnly ||\n (values.tags[index]?.externalDocs &&\n (values.tags[index]?.externalDocs?.url ||\n values.tags[index].externalDocs?.description))\n ? 'View '\n : 'Add '}{' '}\n External Docs Link\n </Button>\n )}\n </Tooltip>\n\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\n\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\n onClick={() => handleDeleteClick(index, item.name)}\n ></Button>\n )}\n </div>\n ),\n }))\n }\n\n return (\n <form className={styles.apiInfoForm} onSubmit={(e) => e.preventDefault()}>\n <Input\n size=\"large\"\n placeholder=\"e.g. Payments\"\n label=\"API Name\"\n required\n value={values?.info?.title}\n maxLength={35}\n onChange={(value) => {\n setFieldValue('info.title', value)\n }}\n onClear={() => {\n setFieldValue('info.title', '')\n }}\n errorMsg={errors?.info?.title}\n restrictedCharactersRegex={regex.basic}\n />\n <div className={styles.apiDocRow}>\n <Input\n size=\"large\"\n label=\"API Authentication Type\"\n required\n value={capitalize(authType)}\n disabled\n />\n <Input size=\"large\" label=\"Version\" required value={values?.info?.version} disabled />\n </div>\n <TextArea\n size=\"large\"\n placeholder=\"Enter a description of the API's functionality...\"\n label=\"Description\"\n value={values?.info?.description}\n maxLength={120}\n required\n onChange={(value: string) => {\n if (value === '' || regex.ASCII.test(value)) {\n setFieldValue('info.description', value)\n }\n }}\n onClear={() => {\n setFieldValue('info.description', '')\n }}\n errorMsg={errors?.info?.description}\n />\n <div className={styles.paramsTable}>\n <TagsTable\n id=\"paramter-table\"\n data={tableRecords}\n headCells={tagsTableHeaders}\n isFormOpen={isFormOpen}\n setIsFormOpen={setIsFormOpen}\n saveNewRow={saveNewRow}\n readOnly={readOnly}\n />\n </div>\n <CommonDialog\n status=\"error\"\n content={\n <p\n style={{\n textAlign: 'center',\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: '1.4375rem',\n }}\n className=\"delete-msg-container\"\n >\n Are you sure you want to delete\n <span className=\"plan-name\">\n {' '}\n Tag <strong>{selectedTagName}</strong>\n </span>\n ?\n </p>\n }\n onSubmit={{\n onClick: confirmDeleteTag,\n text: 'Delete',\n color: 'error',\n fullWidth: true,\n }}\n onCancel={{\n text: 'Cancel',\n color: 'normal',\n fullWidth: true,\n }}\n onClose={() => setOpenDeleteDialog(false)}\n open={openDeleteDialog}\n icon={<SVGLoader src={deleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\n />\n </form>\n )\n}\n\nexport default InfoForm\n"],"names":["InfoForm","readOnly","tableData","setTableData","useState","tableRecords","setTableRecords","authType","setAuthType","description","setDescription","url","setURL","values","setFieldValue","errors","useFormikContext","externalTooltipRefs","setExternalTooltipRefs","tooltipRefs","setTooltipRefs","selectedTagIndex","setSelectedTagIndex","selectedTagName","setSelectedTagName","openDeleteDialog","setOpenDeleteDialog","isFormOpen","setIsFormOpen","useEffect","components","securitySchemes","authenticatorKeys","Object","keys","length","scheme","type","generateTableRecords","tags","onTableChange","key","value","index","newTableData","map","item","tIndex","assign","items","id","tagName","name","_jsxs","className","styles","paramDescContainer","children","_jsx","Tooltip","allowHTML","disabled","_a","content","style","padding","arrowWithBorder","placement","delay","onShow","hide","jsxs","alignSelf","fontWeight","fontSize","substring","trigger","onCreate","instance","prev","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","onChange","regex","ASCII","test","maxLength","jsx","Button","editDescTooltipContent_btn","variant","size","onClick","trim","_b","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","externalDocs","_c","_d","externalDocsLink","href","_e","target","_f","textDecoration","pointerEvents","_j","_h","_k","_m","_l","_o","_p","_q","_r","urlRegex","_s","editExternalDocs","e","stopPropagation","_t","_v","_u","_w","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteClick","apiInfoForm","onSubmit","preventDefault","Input","label","required","info","title","onClear","errorMsg","restrictedCharactersRegex","basic","apiDocRow","str","charAt","toUpperCase","slice","version","paramsTable","TagsTable","data","headCells","tagsTableHeaders","saveNewRow","tag","oldTags","CommonDialog","status","textAlign","lineHeight","filter","_","i","text","fullWidth","onCancel","onClose","open","icon","deleteOutlinedIcon"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonInput.js","sources":["../../../../src/components/JsonInput/JsonInput.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\
|
|
1
|
+
{"version":3,"file":"JsonInput.js","sources":["../../../../src/components/JsonInput/JsonInput.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport yaml from 'js-yaml'\nimport styles from './style.module.scss'\nimport regex from '../../constants/regex'\n\nconst errorMapping = {\n BOTH: 'Invalid JSON or YAML format',\n JSON: 'Invalid JSON format',\n YML: 'Invalid YAML format',\n}\n\nconst JsonInput = ({\n placeholder,\n label,\n value,\n onValidation,\n onChange,\n dataId,\n className = '',\n errorMessage,\n acceptType = 'BOTH',\n fieldIsDisabled,\n withFooter = true,\n}) => {\n const [isValid, setIsValid] = useState()\n const [disabledBeautify, setDisabledBeautify] = useState(true)\n\n const handlePrettify = (e) => {\n if (value === '') return\n e.preventDefault()\n try {\n let prettifiedData\n if ((acceptType === 'BOTH' || acceptType === 'JSON') && isValidJson(value)) {\n // If it's valid JSON, prettify JSON\n prettifiedData = JSON.stringify(JSON.parse(value), null, 2)\n } else if (acceptType === 'BOTH' || acceptType === 'YML') {\n // If it's not valid JSON, prettify YAML\n prettifiedData = yaml.dump(yaml.load(value), { indent: 0 })\n }\n onChange(prettifiedData)\n setIsValid(true) // Reset validity status\n } catch (error) {\n console.error(error)\n setIsValid(false)\n }\n }\n\n // Function to check if input is valid JSON\n const isValidJson = (str) => {\n try {\n JSON.parse(str)\n return true\n } catch (error) {\n return false\n }\n }\n\n const checkIsValid = () => {\n if (acceptType === 'BOTH' || acceptType === 'JSON') {\n return isValidJson(value)\n } else if (acceptType === 'BOTH' || acceptType === 'YML') {\n try {\n // Try parsing as YAML\n yaml.load(value)\n return true\n } catch (error) {\n console.error(error)\n return false\n }\n }\n }\n\n useEffect(() => {\n try {\n handlePrettify(value)\n } catch {}\n }, [])\n\n return (\n <div\n className={`${styles['json-editor-container']} ${className} ${\n fieldIsDisabled ? styles.disabled : ''\n }`}\n >\n {label && <p className={`${styles['json-editor-label']}`}>{label}</p>}\n <div\n className={`${styles['json-editor']} ${\n value !== '' && isValid === false ? styles.invalid : ''\n }`}\n >\n <textarea\n disabled={fieldIsDisabled}\n data-id={dataId}\n value={value}\n onChange={(e) => {\n if (fieldIsDisabled) return\n if (regex.ASCII.test(e.target.value)) {\n setIsValid(undefined)\n setDisabledBeautify(true)\n onChange(e.target.value)\n }\n }}\n onPaste={(e) => {\n if (fieldIsDisabled) return\n if (regex.ASCII.test(e.target.value)) {\n setIsValid(undefined)\n setDisabledBeautify(true)\n onChange(e.target.value)\n }\n }}\n min=\"1\"\n placeholder={placeholder}\n />\n {withFooter && (\n <div className={`${styles['actions-container']}`}>\n <button\n type=\"button\"\n className={styles.validate}\n onClick={() => {\n const valid = checkIsValid()\n setIsValid(valid)\n onValidation(valid)\n setDisabledBeautify(!checkIsValid())\n }}\n data-id={`${dataId}-VALIDATE-BUTTON`}\n disabled={value === ''}\n >\n Validate\n </button>\n <button\n type=\"button\"\n disabled={value === '' || disabledBeautify}\n data-id={`${dataId}-BEAUTIFY-BUTTON`}\n className={styles.beautify}\n onClick={handlePrettify}\n >\n Beautify\n </button>\n </div>\n )}\n </div>\n {(errorMessage || (value !== '' && isValid === false)) && (\n <p className={styles['error-message']}>{errorMessage || errorMapping[acceptType]}</p>\n )}\n </div>\n )\n}\n\nexport default JsonInput\n"],"names":["errorMapping","BOTH","JSON","YML","JsonInput","placeholder","label","value","onValidation","onChange","dataId","className","errorMessage","acceptType","fieldIsDisabled","withFooter","isValid","setIsValid","useState","disabledBeautify","setDisabledBeautify","handlePrettify","e","preventDefault","prettifiedData","isValidJson","yaml","dump","load","indent","stringify","parse","error","console","str","checkIsValid","useEffect","_a","_jsxs","jsxs","styles","disabled","children","_jsx","jsx","invalid","regex","ASCII","test","target","undefined","onPaste","min","type","validate","onClick","valid","beautify"],"mappings":"oPAKA,MAAMA,EAAe,CACnBC,KAAM,8BACNC,KAAM,sBACNC,IAAK,uBAGDC,EAAY,EAChBC,cACAC,QACAC,QACAC,eACAC,WACAC,SACAC,YAAY,GACZC,eACAC,aAAa,OACbC,kBACAC,cAAa,MAEb,MAAOC,EAASC,GAAcC,KACvBC,EAAkBC,GAAuBF,GAAS,GAEnDG,EAAkBC,IACtB,GAAc,KAAVf,EAAJ,CACAe,EAAEC,iBACF,IACE,IAAIC,EACgB,SAAfX,GAAwC,SAAfA,IAA0BY,EAAYlB,GAG1C,SAAfM,GAAwC,QAAfA,IAElCW,EAAiBE,EAAKC,KAAKD,EAAKE,KAAKrB,GAAQ,CAAEsB,OAAQ,KAHvDL,EAAiBtB,KAAK4B,UAAU5B,KAAK6B,MAAMxB,GAAQ,KAAM,GAK3DE,EAASe,GACTP,GAAW,EACZ,CAAC,MAAOe,GACPC,QAAQD,MAAMA,GACdf,GAAW,EACZ,CAhBuB,CAgBvB,EAIGQ,EAAeS,IACnB,IAEE,OADAhC,KAAK6B,MAAMG,IACJ,CACR,CAAC,MAAOF,GACP,OAAO,CACR,GAGGG,EAAe,KACnB,GAAmB,SAAftB,GAAwC,SAAfA,EAC3B,OAAOY,EAAYlB,GACd,GAAmB,SAAfM,GAAwC,QAAfA,EAClC,IAGE,OADAa,EAAKE,KAAKrB,IACH,CACR,CAAC,MAAOyB,GAEP,OADAC,QAAQD,MAAMA,IACP,CACR,CACF,EASH,OANAI,GAAU,KACR,IACEf,EAAed,EAChB,CAAC,MAAM8B,GAAE,IACT,IAGDC,EACEC,KAAA,MAAA,CAAA5B,UAAW,GAAG6B,EAAO,4BAA4B7B,KAC/CG,EAAkB0B,EAAOC,SAAW,KACpCC,SAAA,CAEDpC,GAASqC,EAAAC,IAAA,IAAA,CAAGjC,UAAW,GAAG6B,EAAO,gCAAyBlC,IAC3DgC,EACEC,KAAA,MAAA,CAAA5B,UAAW,GAAG6B,EAAO,kBACT,KAAVjC,IAA4B,IAAZS,EAAoBwB,EAAOK,QAAU,KAGvDH,SAAA,CAAAC,EAAAC,IAAA,WAAA,CACEH,SAAU3B,YACDJ,EACTH,MAAOA,EACPE,SAAWa,IACLR,GACAgC,EAAMC,MAAMC,KAAK1B,EAAE2B,OAAO1C,SAC5BU,OAAWiC,GACX9B,GAAoB,GACpBX,EAASa,EAAE2B,OAAO1C,OACnB,EAEH4C,QAAU7B,IACJR,GACAgC,EAAMC,MAAMC,KAAK1B,EAAE2B,OAAO1C,SAC5BU,OAAWiC,GACX9B,GAAoB,GACpBX,EAASa,EAAE2B,OAAO1C,OACnB,EAEH6C,IAAI,IACJ/C,YAAaA,IAEdU,GACCuB,EAAAA,KAAK,MAAA,CAAA3B,UAAW,GAAG6B,EAAO,uBAAsBE,SAAA,CAC9CC,EAAAA,IACE,SAAA,CAAAU,KAAK,SACL1C,UAAW6B,EAAOc,SAClBC,QAAS,KACP,MAAMC,EAAQrB,IACdlB,EAAWuC,GACXhD,EAAagD,GACbpC,GAAqBe,IAAe,YAE7B,GAAGzB,oBACZ+B,SAAoB,KAAVlC,wBAIZoC,EAAAC,IAAA,SAAA,CACES,KAAK,SACLZ,SAAoB,KAAVlC,GAAgBY,EAAgB,UACjC,GAAGT,oBACZC,UAAW6B,EAAOiB,SAClBF,QAASlC,EAGFqB,SAAA,oBAIb9B,GAA2B,KAAVL,IAA4B,IAAZS,IACjC2B,EAAGC,IAAA,IAAA,CAAAjC,UAAW6B,EAAO,0BAAmB5B,GAAgBZ,EAAaa,OAG1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LivePreview.js","sources":["../../../../src/components/LivePreview/LivePreview.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\r\nimport styles from './LivePreview.module.scss'\r\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\r\nimport MethodsAccordion from '../../components/MethodAccordion/MethodAccordion'\r\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\r\nimport { useFormikContext } from 'formik'\r\nimport { methodColorMapping, tagsTableHeaders } from '../../constants/index'\r\nimport TagsTable from '../table/tags-table'\r\nimport { Button, Chip } from 'digitinary-ui'\r\nimport Tooltip from '../../components/Tooltip/Tooltip'\r\n\r\ninterface LivePreviewProps {\r\n transformedData?: TransformedOpenApi\r\n}\r\n\r\nconst LivePreview: React.FC<LivePreviewProps> = ({ transformedData }) => {\r\n const [tableRecords, setTableRecords] = useState()\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tableData, setTableData] = useState([])\r\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const { values } = useFormikContext<TransformedOpenApi>()\r\n const { info, components, tags } = values\r\n const { securitySchemes } = components\r\n const securityKey =\r\n securitySchemes && typeof securitySchemes == 'object' && Object.keys(securitySchemes).length\r\n ? Object.keys(securitySchemes)[0]\r\n : null\r\n\r\n useEffect(() => {\r\n if (values.tags) {\r\n setTableRecords(generateTableData(values.tags, true))\r\n setTableData(values.tags)\r\n }\r\n }, [values.tags])\r\n\r\n const generateTableData = (items, readOnly) => {\r\n return items.map((item, index) => ({\r\n id: index,\r\n tagName: item.name,\r\n description: (\r\n <Tooltip\r\n key={`${index}-description`}\r\n allowHTML\r\n disabled={item.description?.length <= 12}\r\n content={<div style={{ padding: '0.625rem' }}>{item.description}</div>}\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n delay={[0, 0]}\r\n >\r\n <div className={styles.paramDescContainer}>\r\n <p className={styles.editDescBtn}>\r\n {item.description ? item.description.substring(0, 12) : '-'}\r\n {item.description && item.description.length > 12 ? '...' : ''}\r\n </p>\r\n </div>\r\n </Tooltip>\r\n ),\r\n externalDocs: (\r\n <div className={styles.paramDescContainer}>\r\n {item.externalDocs && item.externalDocs.url && item.externalDocs.url != '-' ? (\r\n <a\r\n className={styles.editDescBtn}\r\n href={\r\n item.externalDocs?.url && item.externalDocs?.url.indexOf('http') > -1\r\n ? item.externalDocs?.url\r\n : `https://${item.externalDocs?.url}`\r\n }\r\n rel=\"noopener noreferrer\"\r\n target=\"_blank\"\r\n >\r\n {item?.externalDocs?.description\r\n ? item?.externalDocs?.description?.substring(0, 12)\r\n : '-'}\r\n {item?.externalDocs?.description && item?.externalDocs?.description?.length > 12\r\n ? '...'\r\n : ''}\r\n </a>\r\n ) : (\r\n <Button className={styles.editDescBtn} variant=\"link\" color=\"action\">\r\n {item.externalDocs?.description\r\n ? item.externalDocs?.description.substring(0, 12)\r\n : '-'}\r\n {item.externalDocs?.description && item.externalDocs?.description.length > 12\r\n ? '...'\r\n : ''}\r\n </Button>\r\n )}\r\n\r\n {/* </Tooltip> */}\r\n\r\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n onClick={() => null}\r\n ></Button>\r\n )}\r\n </div>\r\n ),\r\n }))\r\n }\r\n\r\n return (\r\n <div className={styles.livePreviewContainer}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <div className={styles.titleContainer}>\r\n <p className={styles.apiName}>{info?.title?.trim() || '-'}</p>\r\n <Chip className={styles.livePreviewChip}>Live Preview</Chip>\r\n </div>\r\n <SimpleLabelValue\r\n key={'APIAuthenticationType'}\r\n label={'API authentication type: '}\r\n value={\r\n !!securityKey\r\n ? securitySchemes[securityKey].scheme || securitySchemes[securityKey].type\r\n : '-'\r\n }\r\n />\r\n <SimpleLabelValue key={'version'} label={'Version: '} value={info?.version || '-'} />\r\n <SimpleLabelValue\r\n key={'description'}\r\n label={'Description: '}\r\n value={info?.description?.trim() || '-'}\r\n />\r\n\r\n <SimpleLabelValue key={'tags'} label={'Tags: '} />\r\n <TagsTable\r\n id=\"tags-table\"\r\n data={tableRecords}\r\n headCells={tagsTableHeaders}\r\n isFormOpen={false}\r\n setIsFormOpen={() => null}\r\n saveNewRow={() => null}\r\n readOnly={true}\r\n />\r\n\r\n <SimpleLabelValue key={'endpoints'} label={'Endpoints '} />\r\n {values.paths.map((path) => (\r\n <div className={styles.methodsContainer} key={path.path}>\r\n {Object.entries(\r\n path.methods\r\n .sort(\r\n (a, b) => methodColorMapping[a.type].order + methodColorMapping[b.type].order\r\n )\r\n .reduce((groupedMethods, method) => {\r\n // Handle methods without tags\r\n const tags = method.tags?.length ? method?.tags : ['default']\r\n\r\n tags.forEach((tag) => {\r\n if (!groupedMethods[tag]) {\r\n groupedMethods[tag] = []\r\n }\r\n groupedMethods[tag].push(method)\r\n })\r\n\r\n return groupedMethods\r\n }, {})\r\n ).map(([tag, methods]) => (\r\n <div key={tag}>\r\n <h3>{tag}</h3>\r\n {methods?.map((method, methodIndex) => (\r\n <MethodsAccordion\r\n readOnly\r\n method={method}\r\n path={path.path}\r\n tags={values.tags}\r\n />\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default LivePreview\r\n"],"names":["LivePreview","transformedData","tableRecords","setTableRecords","useState","tableData","setTableData","values","useFormikContext","info","components","tags","securitySchemes","securityKey","Object","keys","length","useEffect","generateTableData","items","readOnly","map","item","index","id","tagName","name","description","_jsx","jsx","Tooltip","allowHTML","disabled","_a","content","style","padding","children","arrowWithBorder","placement","type","delay","className","styles","paramDescContainer","_jsxs","jsxs","editDescBtn","substring","externalDocs","url","href","_b","_c","indexOf","_d","_e","rel","target","_f","_h","_g","_j","_l","_k","Button","variant","color","_m","_o","_p","_q","paramDescContainer_separator","deleteParamBtn","onClick","livePreviewContainer","titleContainer","apiName","title","trim","Chip","livePreviewChip","SimpleLabelValue","label","value","scheme","version","TagsTable","data","headCells","tagsTableHeaders","isFormOpen","setIsFormOpen","saveNewRow","paths","path","methodsContainer","entries","methods","sort","a","b","methodColorMapping","order","reduce","groupedMethods","method","forEach","tag","push","methodIndex","MethodsAccordion"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LivePreview.js","sources":["../../../../src/components/LivePreview/LivePreview.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport styles from './LivePreview.module.scss'\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\nimport MethodsAccordion from '../../components/MethodAccordion/MethodAccordion'\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\nimport { useFormikContext } from 'formik'\nimport { methodColorMapping, tagsTableHeaders } from '../../constants/index'\nimport TagsTable from '../table/tags-table'\nimport { Button, Chip } from 'digitinary-ui'\nimport Tooltip from '../../components/Tooltip/Tooltip'\n\ninterface LivePreviewProps {\n transformedData?: TransformedOpenApi\n}\n\nconst LivePreview: React.FC<LivePreviewProps> = ({ transformedData }) => {\n const [tableRecords, setTableRecords] = useState()\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\n const [tableData, setTableData] = useState([])\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\n const { values } = useFormikContext<TransformedOpenApi>()\n const { info, components, tags } = values\n const { securitySchemes } = components\n const securityKey =\n securitySchemes && typeof securitySchemes == 'object' && Object.keys(securitySchemes).length\n ? Object.keys(securitySchemes)[0]\n : null\n\n useEffect(() => {\n if (values.tags) {\n setTableRecords(generateTableData(values.tags, true))\n setTableData(values.tags)\n }\n }, [values.tags])\n\n const generateTableData = (items, readOnly) => {\n return items.map((item, index) => ({\n id: index,\n tagName: item.name,\n description: (\n <Tooltip\n key={`${index}-description`}\n allowHTML\n disabled={item.description?.length <= 12}\n content={<div style={{ padding: '0.625rem' }}>{item.description}</div>}\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n delay={[0, 0]}\n >\n <div className={styles.paramDescContainer}>\n <p className={styles.editDescBtn}>\n {item.description ? item.description.substring(0, 12) : '-'}\n {item.description && item.description.length > 12 ? '...' : ''}\n </p>\n </div>\n </Tooltip>\n ),\n externalDocs: (\n <div className={styles.paramDescContainer}>\n {item.externalDocs && item.externalDocs.url && item.externalDocs.url != '-' ? (\n <a\n className={styles.editDescBtn}\n href={\n item.externalDocs?.url && item.externalDocs?.url.indexOf('http') > -1\n ? item.externalDocs?.url\n : `https://${item.externalDocs?.url}`\n }\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {item?.externalDocs?.description\n ? item?.externalDocs?.description?.substring(0, 12)\n : '-'}\n {item?.externalDocs?.description && item?.externalDocs?.description?.length > 12\n ? '...'\n : ''}\n </a>\n ) : (\n <Button className={styles.editDescBtn} variant=\"link\" color=\"action\">\n {item.externalDocs?.description\n ? item.externalDocs?.description.substring(0, 12)\n : '-'}\n {item.externalDocs?.description && item.externalDocs?.description.length > 12\n ? '...'\n : ''}\n </Button>\n )}\n\n {/* </Tooltip> */}\n\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\n\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n onClick={() => null}\n ></Button>\n )}\n </div>\n ),\n }))\n }\n\n return (\n <div className={styles.livePreviewContainer}>\n <div className=\"row\">\n <div className=\"col-md-12\">\n <div className={styles.titleContainer}>\n <p className={styles.apiName}>{info?.title?.trim() || '-'}</p>\n <Chip className={styles.livePreviewChip}>Live Preview</Chip>\n </div>\n <SimpleLabelValue\n key={'APIAuthenticationType'}\n label={'API authentication type: '}\n value={\n !!securityKey\n ? securitySchemes[securityKey].scheme || securitySchemes[securityKey].type\n : '-'\n }\n />\n <SimpleLabelValue key={'version'} label={'Version: '} value={info?.version || '-'} />\n <SimpleLabelValue\n key={'description'}\n label={'Description: '}\n value={info?.description?.trim() || '-'}\n />\n\n <SimpleLabelValue key={'tags'} label={'Tags: '} />\n <TagsTable\n id=\"tags-table\"\n data={tableRecords}\n headCells={tagsTableHeaders}\n isFormOpen={false}\n setIsFormOpen={() => null}\n saveNewRow={() => null}\n readOnly={true}\n />\n\n <SimpleLabelValue key={'endpoints'} label={'Endpoints '} />\n {values.paths.map((path) => (\n <div className={styles.methodsContainer} key={path.path}>\n {Object.entries(\n path.methods\n .sort(\n (a, b) => methodColorMapping[a.type].order + methodColorMapping[b.type].order\n )\n .reduce((groupedMethods, method) => {\n // Handle methods without tags\n const tags = method.tags?.length ? method?.tags : ['default']\n\n tags.forEach((tag) => {\n if (!groupedMethods[tag]) {\n groupedMethods[tag] = []\n }\n groupedMethods[tag].push(method)\n })\n\n return groupedMethods\n }, {})\n ).map(([tag, methods]) => (\n <div key={tag}>\n <h3>{tag}</h3>\n {methods?.map((method, methodIndex) => (\n <MethodsAccordion\n readOnly\n method={method}\n path={path.path}\n tags={values.tags}\n />\n ))}\n </div>\n ))}\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\nexport default LivePreview\n"],"names":["LivePreview","transformedData","tableRecords","setTableRecords","useState","tableData","setTableData","values","useFormikContext","info","components","tags","securitySchemes","securityKey","Object","keys","length","useEffect","generateTableData","items","readOnly","map","item","index","id","tagName","name","description","_jsx","jsx","Tooltip","allowHTML","disabled","_a","content","style","padding","children","arrowWithBorder","placement","type","delay","className","styles","paramDescContainer","_jsxs","jsxs","editDescBtn","substring","externalDocs","url","href","_b","_c","indexOf","_d","_e","rel","target","_f","_h","_g","_j","_l","_k","Button","variant","color","_m","_o","_p","_q","paramDescContainer_separator","deleteParamBtn","onClick","livePreviewContainer","titleContainer","apiName","title","trim","Chip","livePreviewChip","SimpleLabelValue","label","value","scheme","version","TagsTable","data","headCells","tagsTableHeaders","isFormOpen","setIsFormOpen","saveNewRow","paths","path","methodsContainer","entries","methods","sort","a","b","methodColorMapping","order","reduce","groupedMethods","method","forEach","tag","push","methodIndex","MethodsAccordion"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as s,useEffect as r}from"react";import{d as o}from"../../../_virtual/index.js";import n from"../SVGLoader/SVGLoader.js";import t from"../../assets/icons/DownArrow.svg.js";import i from"../../assets/icons/DeleteIcon.svg.js";import a from"../../assets/icons/EditIcon.svg.js";import l from"../../assets/icons/deleteOutlinedIcon.svg.js";import{httpStatusCodes as d,methodColorMapping as c,paramsTableHeaders as m}from"../../constants/index.js";import p from"../Tooltip/Tooltip.js";import u from"../SimpleLabelValue/SimpleLabelValue.js";import{handleStatusColor as h,capitalize as v}from"../../helpers/methodAccordion.helper.js";import j from"../table/table.js";import x from"../dialog/index.js";import g from"../JsonInput/JsonInput.js";import b from"./MethodAccordion.module.scss.js";import y from"../../constants/regex.js";const N=d.map((s=>({label:e.jsxs("div",{className:b.statusCodeOptionContainer,children:[e.jsx("div",{className:b.statusCodeOptionCircle,style:{backgroundColor:h(s)}}),e.jsx("span",{children:s})]}),value:s}))),C=({method:d,path:h,setFieldValue:C,readOnly:f,tags:S,isOpen:w,setIsOpen:A})=>{var O,D,q,I,T,k,B,F;const[L,$]=s({request:!1,response:!1,method:!1}),[V,_]=s(!1),[J,M]=s({}),[W,E]=s([]),[G,H]=s(!1),[P,R]=s(null),[z,K]=s(null),[Q,U]=s(),[X,Y]=s([]),[Z,ee]=s(N[4]),se=d.responses.find((e=>Number(e.code)===Z.value))||"{}",re=(e,s,r)=>{const o=W.map(((o,n)=>n===r?Object.assign(Object.assign({},o),{[e]:s}):o));E(o)},oe=(e,s)=>{R(e),K(s),H(!0)};return r((()=>{U(W.map(((s,r)=>{var t,l,c,m;return{id:r,paramName:s.name,paramType:v(s.in),schemaType:v(null===(t=s.schema)||void 0===t?void 0:t.type)||"",required:e.jsx(e.Fragment,{children:f?s.required?"True":"False":e.jsx(o.Switch,{checked:s.required,onClick:()=>{if(f)return null;re("required",!s.required,r),C(`parameters[${r}][required]`,!s.required)}})}),description:e.jsxs("div",{className:b.paramDescContainer,children:[e.jsx(p,{allowHTML:!0,disabled:(null===(l=d.parameters[r].description)||void 0===l?void 0:l.length)<=12,content:e.jsx("div",{style:{padding:"0.625rem"},children:d.parameters[r].description}),arrowWithBorder:!0,placement:"bottom-end",type:"function",delay:[0,0],onShow:()=>{var e;return null===(e=J[r])||void 0===e?void 0:e.hide()},children:e.jsxs("p",{style:{alignSelf:"center"},children:[d.parameters[r].description?d.parameters[r].description.substring(0,12):f&&"-",d.parameters[r].description&&d.parameters[r].description.length>12?"...":""]})},`${r}-description`),!f&&e.jsx(p,{allowHTML:!0,arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>M((s=>Object.assign(Object.assign({},s),{[r]:e}))),content:e.jsxs("div",{className:b.editDescTooltipContent,children:[e.jsx("p",{className:b.editDescTooltipContent_header,children:"Description"}),e.jsx(o.TextArea,{placeholder:"Describe parameter...",value:s.description,disabled:f,maxLength:120,onChange:e=>{(""===e||y.ASCII.test(e))&&re("description",e,r)}}),!f&&e.jsx(o.Button,{className:b.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var e,o;C(`parameters[${r}].description`,null===(e=s.description)||void 0===e?void 0:e.trim()),null===(o=J[r])||void 0===o||o.hide()},disabled:!(null===(c=s.description)||void 0===c?void 0:c.trim()),children:"Apply"})]}),children:f||(null===(m=d.parameters[r].description)||void 0===m?void 0:m.length)>0?e.jsx(o.Button,{className:b.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:a,width:"1.5rem",height:"1.5rem"})}):e.jsxs(o.Button,{className:b.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:a,width:"1.5rem",height:"1.5rem"}),children:[f?"View ":"Add "," Description"]})},`${r}-add-edit-description`),!f&&e.jsx("div",{className:b.paramDescContainer_separator}),!f&&e.jsx(o.Button,{className:b.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(n,{src:i,width:"1.125rem",height:"1.125rem"}),onClick:()=>oe(r,s.name)})]})}})))}),[W]),r((()=>{(null==d?void 0:d.parameters)&&E(d.parameters)}),[d,h]),r((()=>{var e;if((null==d?void 0:d.tags.length)||(null==S?void 0:S.length)){const s=[...null===(e=(null==d?void 0:d.tags)||[])||void 0===e?void 0:e.map((e=>({label:v(e),value:e}))),...(S||[]).map((e=>({label:v(e.name),value:e.name})))].filter(((e,s,r)=>s===r.findIndex((s=>s.value===e.value))));Y(s)}}),[S,d]),e.jsxs("div",{children:[e.jsx(o.Accordion,{expanded:w,onChange:()=>A(!w),className:`${b.methodAccordion} ${f?b.readOnly:""}`,summary:e.jsxs("div",{className:b.methodSummaryContainer,children:[e.jsxs("div",{className:b.methodSummary,children:[e.jsx("span",{style:{backgroundColor:(null===(O=null==c?void 0:c[null==d?void 0:d.type])||void 0===O?void 0:O.color)||"#3A6CD1"},className:b.methodLabel,children:(null===(D=null==c?void 0:c[null==d?void 0:d.type])||void 0===D?void 0:D.label)||(null==d?void 0:d.type)}),e.jsx("span",{className:b.methodPath,children:h})]}),e.jsx("div",{className:`${b.methodExpandArrowContainer} ${w?b.expanded:""}`,children:e.jsx(n,{src:t,width:"2rem",height:"2rem"})})]}),children:e.jsxs("div",{className:b.methodAccordionContent,children:[e.jsx(o.SelectGroup,{className:b.methodDesc,disabled:f,placeholder:"Select Tags",label:"Tags",value:null===(q=d.tags)||void 0===q?void 0:q.map((e=>({label:v(e),value:e}))),onChange:e=>{C("tags",e.map((e=>e.value)))},options:[{list:X}],isMultiple:!0,withSearch:!1,clearable:!1}),f?e.jsx(u,{label:"Description: ",value:(null==d?void 0:d.description)||"-"},"description"):e.jsx(o.TextArea,{className:b.methodDesc,label:"Description",placeholder:"Describe the method's purpose and functionality...",maxLength:120,value:null==d?void 0:d.description,onChange:e=>{(""===e||y.ASCII.test(e))&&C("description",e)}}),e.jsx("div",{className:b.paramsTable,children:e.jsx(j,{id:"paramter-table",data:Q,headCells:m,isFormOpen:V,setIsFormOpen:_,saveNewRow:e=>{E([...W,e]),C("parameters",[...d.parameters,e])},readOnly:f})}),"get"!==(null==d?void 0:d.type)&&e.jsx(o.Accordion,{expanded:L.request,onChange:()=>null,className:b.requestAccordion,summary:e.jsx("span",{className:b.requestAccordionSummary,children:e.jsxs("div",{className:b.requestAccordionSummary_title,onClick:()=>$((e=>Object.assign(Object.assign({},e),{request:!e.request}))),children:[e.jsx(n,{className:L.request?b.expanded:"",src:t,width:"2rem",height:"2rem"}),"Request","delete"!==(null==d?void 0:d.type)&&e.jsx("span",{style:{color:"red"},children:"*"})]})}),children:e.jsx(g,{acceptType:"JSON",withFooter:!f,className:"jsonField",placeholder:"Enter your request body as a JSON object....",fieldIsDisabled:f,value:(null===(k=null===(T=null===(I=null==d?void 0:d.requestBody)||void 0===I?void 0:I.content)||void 0===T?void 0:T.schema)||void 0===k?void 0:k.properties)||"{}",onChange:e=>{C("requestBody.content.schema.properties",e)},onValidation:()=>null})}),e.jsx(o.Accordion,{expanded:L.response,onChange:()=>null,className:b.responseAccordion,summary:e.jsxs("span",{className:b.responseAccordionSummary,children:[e.jsxs("div",{className:b.responseAccordionSummary_title,onClick:()=>$((e=>Object.assign(Object.assign({},e),{response:!e.response}))),children:[e.jsx(n,{className:L.response?b.expanded:"",src:t,width:"2rem",height:"2rem"}),"Response",e.jsx("span",{style:{color:"red"},children:"*"})]}),e.jsx(o.SelectGroup,{withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:N}],value:Z,onChange:e=>{ee(e)}})]}),children:e.jsx(g,{acceptType:"JSON",withFooter:!f,className:"jsonField",placeholder:"Enter your response as a JSON object...",fieldIsDisabled:f,value:(null===(F=null===(B=null==se?void 0:se.content)||void 0===B?void 0:B.schema)||void 0===F?void 0:F.properties)||"{}",onChange:e=>{const s=d.responses.findIndex((e=>e.code===se.code));if(-1!==s)C(`responses[${s}].content.schema.properties`,e);else{const s=structuredClone(d.responses);s.push({code:Z.value.toString(),content:{contentType:"application/json",schema:{type:"object",properties:e}}}),C("responses",s)}},onValidation:()=>null})})]})}),e.jsx(x,{status:"error",content:e.jsxs("p",{style:{textAlign:"center",fontWeight:400,fontSize:"1rem",lineHeight:"1.4375rem"},className:"delete-msg-container",children:["Are you sure you want to delete",e.jsxs("span",{className:"plan-name",children:["Parameter ",e.jsx("strong",{children:z})]}),"?"]}),onSubmit:{onClick:()=>{var e;null!==P&&(E((e=>e.filter(((e,s)=>s!==P)))),C("parameters",null===(e=null==d?void 0:d.parameters)||void 0===e?void 0:e.filter(((e,s)=>s!==P)))),H(!1),R(null)},text:"Delete",color:"error",fullWidth:!0},onCancel:{text:"Cancel",color:"normal",fullWidth:!0},onClose:()=>H(!1),open:G,icon:e.jsx(n,{src:l,width:"4.0625rem",height:"4.0625rem"})})]})};export{C as default};
|
|
1
|
+
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as s,useEffect as r}from"react";import{d as o}from"../../../_virtual/index.js";import n from"../SVGLoader/SVGLoader.js";import t from"../../assets/icons/DownArrow.svg.js";import i from"../../assets/icons/DeleteIcon.svg.js";import a from"../../assets/icons/EditIcon.svg.js";import l from"../../assets/icons/deleteOutlinedIcon.svg.js";import{httpStatusCodes as d,methodColorMapping as c,paramsTableHeaders as m}from"../../constants/index.js";import p from"../Tooltip/Tooltip.js";import u from"../SimpleLabelValue/SimpleLabelValue.js";import{handleStatusColor as h,capitalize as v}from"../../helpers/methodAccordion.helper.js";import j from"../table/table.js";import x from"../dialog/index.js";import g from"../JsonInput/JsonInput.js";import b from"./MethodAccordion.module.scss.js";import y from"../../constants/regex.js";const N=d.map((s=>({label:e.jsxs("div",{className:b.statusCodeOptionContainer,children:[e.jsx("div",{className:b.statusCodeOptionCircle,style:{backgroundColor:h(s)}}),e.jsx("span",{children:s})]}),value:s}))),C=({method:d,path:h,setFieldValue:C,readOnly:f,tags:S,isOpen:w,setIsOpen:A})=>{var O,D,q,I,T,k,B,F;const[L,$]=s({request:!1,response:!1,method:!1}),[V,_]=s(!1),[J,M]=s({}),[W,E]=s([]),[G,H]=s(!1),[P,R]=s(null),[z,K]=s(null),[Q,U]=s(),[X,Y]=s([]),[Z,ee]=s(N[4]),se=d.responses.find((e=>Number(e.code)===Z.value))||"{}",re=(e,s,r)=>{const o=W.map(((o,n)=>n===r?Object.assign(Object.assign({},o),{[e]:s}):o));E(o)},oe=(e,s)=>{R(e),K(s),H(!0)};return r((()=>{U(W.map(((s,r)=>{var t,l,c,m;return{id:r,paramName:s.name,paramType:v(s.in),schemaType:v(null===(t=s.schema)||void 0===t?void 0:t.type)||"",required:e.jsx(e.Fragment,{children:f?s.required?"True":"False":e.jsx(o.Switch,{checked:s.required,onClick:()=>{if(f)return null;re("required",!s.required,r),C(`parameters[${r}][required]`,!s.required)}})}),description:e.jsxs("div",{className:b.paramDescContainer,children:[e.jsx(p,{allowHTML:!0,disabled:(null===(l=d.parameters[r].description)||void 0===l?void 0:l.length)<=12,content:e.jsx("div",{style:{padding:"0.625rem"},children:d.parameters[r].description}),arrowWithBorder:!0,placement:"bottom-end",type:"function",delay:[0,0],onShow:()=>{var e;return null===(e=J[r])||void 0===e?void 0:e.hide()},children:e.jsxs("p",{style:{alignSelf:"center"},children:[d.parameters[r].description?d.parameters[r].description.substring(0,12):f&&"-",d.parameters[r].description&&d.parameters[r].description.length>12?"...":""]})},`${r}-description`),!f&&e.jsx(p,{allowHTML:!0,arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>M((s=>Object.assign(Object.assign({},s),{[r]:e}))),content:e.jsxs("div",{className:b.editDescTooltipContent,children:[e.jsx("p",{className:b.editDescTooltipContent_header,children:"Description"}),e.jsx(o.TextArea,{placeholder:"Describe parameter...",value:s.description,disabled:f,maxLength:120,onChange:e=>{(""===e||y.ASCII.test(e))&&re("description",e,r)}}),!f&&e.jsx(o.Button,{className:b.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var e,o;C(`parameters[${r}].description`,null===(e=s.description)||void 0===e?void 0:e.trim()),null===(o=J[r])||void 0===o||o.hide()},disabled:!(null===(c=s.description)||void 0===c?void 0:c.trim()),children:"Apply"})]}),children:f||(null===(m=d.parameters[r].description)||void 0===m?void 0:m.length)>0?e.jsx(o.Button,{className:b.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:a,width:"1.5rem",height:"1.5rem"})}):e.jsxs(o.Button,{className:b.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:a,width:"1.5rem",height:"1.5rem"}),children:[f?"View ":"Add "," Description"]})},`${r}-add-edit-description`),!f&&e.jsx("div",{className:b.paramDescContainer_separator}),!f&&e.jsx(o.Button,{className:b.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(n,{src:i,width:"1.125rem",height:"1.125rem"}),onClick:()=>oe(r,s.name)})]})}})))}),[W]),r((()=>{(null==d?void 0:d.parameters)&&E(d.parameters)}),[d,h]),r((()=>{var e;if((null==d?void 0:d.tags.length)||(null==S?void 0:S.length)){const s=[...null===(e=(null==d?void 0:d.tags)||[])||void 0===e?void 0:e.map((e=>({label:v(e),value:e}))),...(S||[]).map((e=>({label:v(e.name),value:e.name})))].filter(((e,s,r)=>s===r.findIndex((s=>s.value===e.value))));Y(s)}}),[S,d]),e.jsxs("div",{children:[e.jsx(o.Accordion,{expanded:w,onChange:()=>A(!w),className:`${b.methodAccordion} ${f?b.readOnly:""}`,summary:e.jsxs("div",{className:b.methodSummaryContainer,children:[e.jsxs("div",{className:b.methodSummary,children:[e.jsx("span",{style:{backgroundColor:(null===(O=null==c?void 0:c[null==d?void 0:d.type])||void 0===O?void 0:O.color)||"#3A6CD1"},className:b.methodLabel,children:(null===(D=null==c?void 0:c[null==d?void 0:d.type])||void 0===D?void 0:D.label)||(null==d?void 0:d.type)}),e.jsx("span",{className:b.methodPath,children:h})]}),e.jsx("div",{className:`${b.methodExpandArrowContainer} ${w?b.expanded:""}`,children:e.jsx(n,{src:t,width:"2rem",height:"2rem"})})]}),children:e.jsxs("div",{className:b.methodAccordionContent,children:[e.jsx(o.SelectGroup,{className:b.methodDesc,disabled:f,placeholder:"Select Tags",label:"Tags",value:null===(q=d.tags)||void 0===q?void 0:q.map((e=>({label:v(e),value:e}))),onChange:e=>{C("tags",e.map((e=>e.value)))},options:[{list:X}],isMultiple:!0,withSearch:!1,clearable:!1}),f?e.jsx(u,{label:"Description: ",value:(null==d?void 0:d.description)||"-"},"description"):e.jsx(o.TextArea,{className:b.methodDesc,label:"Description",placeholder:"Describe the method's purpose and functionality...",maxLength:120,value:null==d?void 0:d.description,onChange:e=>{(""===e||y.ASCII.test(e))&&C("description",e)}}),e.jsx("div",{className:b.paramsTable,children:e.jsx(j,{id:"paramter-table",data:Q,headCells:m,isFormOpen:V,setIsFormOpen:_,saveNewRow:e=>{E([...W,e]),C("parameters",[...d.parameters,e])},readOnly:f})}),"get"!==(null==d?void 0:d.type)&&e.jsx(o.Accordion,{expanded:L.request,onChange:()=>null,className:b.requestAccordion,summary:e.jsx("span",{className:b.requestAccordionSummary,children:e.jsxs("div",{className:b.requestAccordionSummary_title,onClick:()=>$((e=>Object.assign(Object.assign({},e),{request:!e.request}))),children:[e.jsx(n,{className:L.request?b.expanded:"",src:t,width:"2rem",height:"2rem"}),"Request","delete"!==(null==d?void 0:d.type)&&e.jsx("span",{style:{color:"red"},children:"*"})]})}),children:e.jsx(g,{acceptType:"JSON",withFooter:!f,className:"jsonField",placeholder:"Enter your request body as a JSON object....",fieldIsDisabled:f,value:(null===(k=null===(T=null===(I=null==d?void 0:d.requestBody)||void 0===I?void 0:I.content)||void 0===T?void 0:T.schema)||void 0===k?void 0:k.properties)||"{}",onChange:e=>{C("requestBody.content.schema.properties",e)},onValidation:()=>null})}),e.jsx(o.Accordion,{expanded:L.response,onChange:()=>null,className:b.responseAccordion,summary:e.jsxs("span",{className:b.responseAccordionSummary,children:[e.jsxs("div",{className:b.responseAccordionSummary_title,onClick:()=>$((e=>Object.assign(Object.assign({},e),{response:!e.response}))),children:[e.jsx(n,{className:L.response?b.expanded:"",src:t,width:"2rem",height:"2rem"}),"Response",e.jsx("span",{style:{color:"red"},children:"*"})]}),e.jsx(o.SelectGroup,{withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:N}],value:Z,onChange:e=>{ee(e)}})]}),children:e.jsx(g,{acceptType:"JSON",withFooter:!f,className:"jsonField",placeholder:"Enter your response as a JSON object...",fieldIsDisabled:f,value:(null===(F=null===(B=null==se?void 0:se.content)||void 0===B?void 0:B.schema)||void 0===F?void 0:F.properties)||"{}",onChange:e=>{const s=d.responses.findIndex((e=>e.code===se.code));if(-1!==s)C(`responses[${s}].content.schema.properties`,e);else{const s=structuredClone(d.responses);s.push({code:Z.value.toString(),content:{contentType:"application/json",schema:{type:"object",properties:e}}}),C("responses",s)}},onValidation:()=>null})})]})}),e.jsx(x,{status:"error",content:e.jsxs("p",{style:{textAlign:"center",fontWeight:400,fontSize:"1rem",lineHeight:"1.4375rem"},className:"delete-msg-container",children:["Are you sure you want to delete",e.jsxs("span",{className:"plan-name",children:[" ","Parameter ",e.jsx("strong",{children:z})]}),"?"]}),onSubmit:{onClick:()=>{var e;null!==P&&(E((e=>e.filter(((e,s)=>s!==P)))),C("parameters",null===(e=null==d?void 0:d.parameters)||void 0===e?void 0:e.filter(((e,s)=>s!==P)))),H(!1),R(null)},text:"Delete",color:"error",fullWidth:!0},onCancel:{text:"Cancel",color:"normal",fullWidth:!0},onClose:()=>H(!1),open:G,icon:e.jsx(n,{src:l,width:"4.0625rem",height:"4.0625rem"})})]})};export{C as default};
|
|
2
2
|
//# sourceMappingURL=MethodAccordion.js.map
|
|
@@ -1 +1 @@
|
|
|
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\nimport regex from '../../constants/regex'\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 isOpen,\r\n setIsOpen,\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 isOpen: boolean\r\n setIsOpen: (open: boolean) => 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 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 key={`${index}-description`}\r\n allowHTML\r\n disabled={method.parameters[index].description?.length <= 12}\r\n content={\r\n <div style={{ padding: '0.625rem' }}>{method.parameters[index].description}</div>\r\n }\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n delay={[0, 0]}\r\n onShow={() => tooltipRefs[index]?.hide()}\r\n >\r\n <p style={{ alignSelf: 'center' }}>\r\n {method.parameters[index].description\r\n ? method.parameters[index].description.substring(0, 12)\r\n : readOnly && '-'}\r\n {method.parameters[index].description &&\r\n method.parameters[index].description.length > 12\r\n ? '...'\r\n : ''}\r\n </p>\r\n </Tooltip>\r\n {!readOnly && (\r\n <Tooltip\r\n key={`${index}-add-edit-description`}\r\n allowHTML\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 maxLength={120}\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value))\r\n onTableChange('description', value, index)\r\n }}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(\r\n `parameters[${index}].description`,\r\n item.description?.trim()\r\n )\r\n tooltipRefs[index]?.hide()\r\n }}\r\n disabled={!item.description?.trim()}\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 ></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\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 setTableData(method.parameters)\r\n }\r\n }, [method, path])\r\n\r\n useEffect(() => {\r\n // prepare tags selection list\r\n if (method?.tags.length || tags?.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\r\n setSelectionTags(filteredArray)\r\n }\r\n }, [tags, method])\r\n\r\n return (\r\n <div>\r\n <Accordion\r\n expanded={isOpen}\r\n onChange={() => setIsOpen(!isOpen)}\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} ${isOpen ? styles.expanded : ''}`}\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 maxLength={120}\r\n value={method?.description}\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value)) setFieldValue('description', value)\r\n }}\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 acceptType=\"JSON\"\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 acceptType=\"JSON\"\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\">\r\n Parameter <strong>{selectedParamName}</strong>\r\n </span>\r\n ?\r\n </p>\r\n }\r\n onSubmit={{\r\n onClick: confirmDeleteParameter,\r\n text: 'Delete',\r\n color: 'error',\r\n fullWidth: true,\r\n }}\r\n onCancel={{\r\n text: 'Cancel',\r\n color: 'normal',\r\n fullWidth: true,\r\n }}\r\n onClose={() => 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","isOpen","setIsOpen","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","handleDeleteClick","id","name","useEffect","paramName","paramType","capitalize","in","schemaType","_a","schema","type","required","jsx","_Fragment","Switch","checked","onClick","description","paramDescContainer","Tooltip","allowHTML","disabled","parameters","_b","length","content","padding","arrowWithBorder","placement","delay","onShow","hide","alignSelf","substring","trigger","onCreate","instance","prev","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","maxLength","onChange","regex","ASCII","test","Button","editDescTooltipContent_btn","variant","size","trim","_c","_d","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","jsxs","paramDescContainer_separator","deleteParamBtn","DeleteIcon","filteredArray","filter","self","findIndex","t","Accordion","expanded","methodAccordion","summary","methodSummaryContainer","methodSummary","methodColorMapping","methodLabel","methodPath","methodExpandArrowContainer","DownArrowIcon","methodAccordionContent","SelectGroup","methodDesc","i","options","list","isMultiple","withSearch","clearable","SimpleLabelValue","paramsTable","ParamterTable","data","headCells","paramsTableHeaders","saveNewRow","values","requestAccordion","requestAccordionSummary","requestAccordionSummary_title","JsonInput","acceptType","withFooter","fieldIsDisabled","_f","_e","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
|
+
{"version":3,"file":"MethodAccordion.js","sources":["../../../../src/components/MethodAccordion/MethodAccordion.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\nimport { Accordion, Button, SelectGroup, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\nimport { DeleteIcon, DownArrowIcon, EditIcon, deleteOutlinedIcon } from '../../assets/icons'\nimport { httpStatusCodes, methodColorMapping, paramsTableHeaders } from '../../constants/index'\nimport Tooltip from '../../components/Tooltip/Tooltip'\nimport { TransformedMethod } from '../../types/layout.type'\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\nimport { capitalize, handleStatusColor } from '../../helpers/methodAccordion.helper'\nimport ParamterTable from '../table/table'\nimport CommonDialog from '../../components/dialog'\nimport JsonInput from '../../components/JsonInput/JsonInput'\nimport styles from './MethodAccordion.module.scss'\nimport { Tags } from '@entities/openApi'\nimport regex from '../../constants/regex'\n\nconst httpStatusCodeOptions = httpStatusCodes.map((code) => ({\n label: (\n <div className={styles.statusCodeOptionContainer}>\n <div\n className={styles.statusCodeOptionCircle}\n style={{ backgroundColor: handleStatusColor(code) }}\n ></div>\n <span>{code}</span>\n </div>\n ),\n value: code,\n}))\n\nconst MethodsAccordion = ({\n method,\n path,\n setFieldValue,\n readOnly,\n tags,\n isOpen,\n setIsOpen,\n}: {\n method: TransformedMethod\n path: string\n setFieldValue?: (key: string, value: string | string[]) => void\n readOnly?: boolean\n tags: Tags[]\n isOpen: boolean\n setIsOpen: (open: boolean) => void\n}) => {\n const [isExpanded, setIsExpanded] = useState({\n request: false,\n response: false,\n method: false,\n })\n const [isFormOpen, setIsFormOpen] = useState(false)\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\n const [tableData, setTableData] = useState([])\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\n const [selectedParamIndex, setSelectedParamIndex] = useState<number | null>(null)\n const [selectedParamName, setSelectedParamName] = useState<string | null>(null)\n const [tableRecords, setTableRecords] = useState()\n const [selectionTags, setSelectionTags] = useState([])\n const [selectedStatusCode, setSelectedStatusCode] = useState(httpStatusCodeOptions[4])\n const currentResponse =\n method.responses.find((res) => Number(res.code) === selectedStatusCode.value) || '{}'\n\n const onTableChange = (key, value, index) => {\n const newTableData = tableData.map((item, tIndex) => {\n if (tIndex === index) {\n return { ...item, [key]: value }\n } else {\n return item\n }\n })\n\n setTableData(newTableData)\n }\n\n const generateTableData = (items) => {\n return items.map((item, index) => {\n return {\n id: index,\n paramName: item.name,\n paramType: capitalize(item.in),\n schemaType: capitalize(item.schema?.type) || '',\n required: (\n <>\n {readOnly ? (\n item.required ? (\n 'True'\n ) : (\n 'False'\n )\n ) : (\n <Switch\n checked={item.required}\n onClick={() => {\n if (readOnly) {\n return null\n }\n onTableChange('required', !item.required, index)\n setFieldValue(`parameters[${index}][required]`, !item.required)\n }}\n />\n )}\n </>\n ),\n description: (\n <div className={styles.paramDescContainer}>\n <Tooltip\n key={`${index}-description`}\n allowHTML\n disabled={method.parameters[index].description?.length <= 12}\n content={\n <div style={{ padding: '0.625rem' }}>{method.parameters[index].description}</div>\n }\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n delay={[0, 0]}\n onShow={() => tooltipRefs[index]?.hide()}\n >\n <p style={{ alignSelf: 'center' }}>\n {method.parameters[index].description\n ? method.parameters[index].description.substring(0, 12)\n : readOnly && '-'}\n {method.parameters[index].description &&\n method.parameters[index].description.length > 12\n ? '...'\n : ''}\n </p>\n </Tooltip>\n {!readOnly && (\n <Tooltip\n key={`${index}-add-edit-description`}\n allowHTML\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n placeholder=\"Describe parameter...\"\n value={item.description}\n disabled={readOnly}\n maxLength={120}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value))\n onTableChange('description', value, index)\n }}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(\n `parameters[${index}].description`,\n item.description?.trim()\n )\n tooltipRefs[index]?.hide()\n }}\n disabled={!item.description?.trim()}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly || method.parameters[index].description?.length > 0 ? (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n ></Button>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} Description\n </Button>\n )}\n </Tooltip>\n )}\n\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\n\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\n onClick={() => handleDeleteClick(index, item.name)}\n ></Button>\n )}\n </div>\n ),\n }\n })\n }\n\n const confirmDeleteParameter = () => {\n if (selectedParamIndex !== null) {\n setTableData((prev) => prev.filter((_, i) => i !== selectedParamIndex))\n setFieldValue(\n `parameters`,\n method?.parameters?.filter((_, i) => i !== selectedParamIndex)\n )\n }\n setOpenDeleteDialog(false)\n setSelectedParamIndex(null)\n }\n\n const handleDeleteClick = (id: number, name: string) => {\n setSelectedParamIndex(id)\n setSelectedParamName(name)\n\n setOpenDeleteDialog(true)\n }\n\n const saveNewRow = (values) => {\n setTableData([...tableData, values])\n setFieldValue(`parameters`, [...method.parameters, values])\n }\n\n useEffect(() => {\n setTableRecords(generateTableData(tableData))\n }, [tableData])\n\n useEffect(() => {\n if (method?.parameters) {\n setTableData(method.parameters)\n }\n }, [method, path])\n\n useEffect(() => {\n // prepare tags selection list\n if (method?.tags.length || tags?.length) {\n const convertedStringArray = (method?.tags || [])?.map((item) => ({\n label: capitalize(item),\n value: item,\n }))\n const mergedArray = [\n ...convertedStringArray,\n ...(tags || []).map((item) => ({ label: capitalize(item.name), value: item.name })),\n ]\n\n const filteredArray = mergedArray.filter(\n (value, index, self) => index === self.findIndex((t) => t.value === value.value)\n )\n\n setSelectionTags(filteredArray)\n }\n }, [tags, method])\n\n return (\n <div>\n <Accordion\n expanded={isOpen}\n onChange={() => setIsOpen(!isOpen)}\n className={`${styles.methodAccordion} ${readOnly ? styles.readOnly : ''}`}\n summary={\n <div className={styles.methodSummaryContainer}>\n <div className={styles.methodSummary}>\n <span\n style={{\n backgroundColor: methodColorMapping?.[method?.type]?.color || '#3A6CD1',\n }}\n className={styles.methodLabel}\n >\n {methodColorMapping?.[method?.type]?.label || method?.type}\n </span>\n <span className={styles.methodPath}>{path}</span>\n </div>\n <div\n className={`${styles.methodExpandArrowContainer} ${isOpen ? styles.expanded : ''}`}\n >\n <SVGLoader src={DownArrowIcon} width=\"2rem\" height=\"2rem\" />\n </div>\n </div>\n }\n children={\n <div className={styles.methodAccordionContent}>\n <SelectGroup\n className={styles.methodDesc}\n disabled={readOnly}\n placeholder=\"Select Tags\"\n label=\"Tags\"\n value={method.tags?.map((t) => ({\n label: capitalize(t),\n value: t,\n }))}\n onChange={(item) => {\n setFieldValue(\n 'tags',\n item.map((i) => i.value)\n )\n }}\n options={[\n {\n list: selectionTags,\n },\n ]}\n isMultiple={true}\n withSearch={false}\n clearable={false}\n />\n {!readOnly ? (\n <TextArea\n className={styles.methodDesc}\n label=\"Description\"\n placeholder=\"Describe the method's purpose and functionality...\"\n maxLength={120}\n value={method?.description}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setFieldValue('description', value)\n }}\n />\n ) : (\n <SimpleLabelValue\n key={'description'}\n label={'Description: '}\n value={method?.description || '-'}\n />\n )}\n <div className={styles.paramsTable}>\n <ParamterTable\n id=\"paramter-table\"\n data={tableRecords}\n headCells={paramsTableHeaders}\n isFormOpen={isFormOpen}\n setIsFormOpen={setIsFormOpen}\n saveNewRow={saveNewRow}\n readOnly={readOnly}\n />\n </div>\n {method?.type !== 'get' && (\n <Accordion\n expanded={isExpanded.request}\n onChange={() => null}\n className={styles.requestAccordion}\n summary={\n <span className={styles.requestAccordionSummary}>\n <div\n className={styles.requestAccordionSummary_title}\n onClick={() =>\n setIsExpanded((prev) => ({\n ...prev,\n request: !prev.request,\n }))\n }\n >\n <SVGLoader\n className={isExpanded.request ? styles.expanded : ''}\n src={DownArrowIcon}\n width=\"2rem\"\n height=\"2rem\"\n />\n Request\n {method?.type !== 'delete' && <span style={{ color: 'red' }}>*</span>}\n </div>\n </span>\n }\n children={\n <JsonInput\n acceptType=\"JSON\"\n withFooter={!readOnly}\n className={'jsonField'}\n placeholder=\"Enter your request body as a JSON object....\"\n fieldIsDisabled={readOnly}\n value={method?.requestBody?.content?.schema?.properties || '{}'}\n onChange={(value: string) => {\n setFieldValue('requestBody.content.schema.properties', value)\n }}\n onValidation={() => null}\n />\n }\n />\n )}\n <Accordion\n expanded={isExpanded.response}\n onChange={() => null}\n className={styles.responseAccordion}\n summary={\n <span className={styles.responseAccordionSummary}>\n <div\n className={styles.responseAccordionSummary_title}\n onClick={() =>\n setIsExpanded((prev) => ({\n ...prev,\n response: !prev.response,\n }))\n }\n >\n <SVGLoader\n className={isExpanded.response ? styles.expanded : ''}\n src={DownArrowIcon}\n width=\"2rem\"\n height=\"2rem\"\n />\n Response<span style={{ color: 'red' }}>*</span>\n </div>\n\n <SelectGroup\n withSearch={false}\n isMultiple={false}\n clearable={false}\n placeholder=\"200\"\n options={[\n {\n list: httpStatusCodeOptions,\n },\n ]}\n value={selectedStatusCode}\n onChange={(value) => {\n setSelectedStatusCode(value)\n }}\n />\n </span>\n }\n children={\n <JsonInput\n acceptType=\"JSON\"\n withFooter={!readOnly}\n className={'jsonField'}\n placeholder=\"Enter your response as a JSON object...\"\n fieldIsDisabled={readOnly}\n value={currentResponse?.content?.schema?.properties || '{}'}\n onChange={(value) => {\n const currentResIndex = method.responses.findIndex(\n (res) => res.code === currentResponse.code\n )\n\n if (currentResIndex !== -1) {\n setFieldValue(\n `responses[${currentResIndex}].content.schema.properties`,\n value\n )\n } else {\n const clonedResponses = structuredClone(method.responses)\n\n clonedResponses.push({\n code: selectedStatusCode.value.toString(),\n content: {\n contentType: 'application/json',\n schema: {\n type: 'object',\n properties: value,\n },\n },\n })\n\n setFieldValue('responses', clonedResponses)\n }\n }}\n onValidation={() => null}\n />\n }\n />\n </div>\n }\n />\n <CommonDialog\n status=\"error\"\n content={\n <p\n style={{\n textAlign: 'center',\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: '1.4375rem',\n }}\n className=\"delete-msg-container\"\n >\n Are you sure you want to delete\n <span className=\"plan-name\">\n {' '}\n Parameter <strong>{selectedParamName}</strong>\n </span>\n ?\n </p>\n }\n onSubmit={{\n onClick: confirmDeleteParameter,\n text: 'Delete',\n color: 'error',\n fullWidth: true,\n }}\n onCancel={{\n text: 'Cancel',\n color: 'normal',\n fullWidth: true,\n }}\n onClose={() => setOpenDeleteDialog(false)}\n open={openDeleteDialog}\n icon={<SVGLoader src={deleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\n />\n </div>\n )\n}\n\nexport default MethodsAccordion\n"],"names":["httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","className","styles","statusCodeOptionContainer","children","_jsx","statusCodeOptionCircle","style","backgroundColor","handleStatusColor","value","MethodsAccordion","method","path","setFieldValue","readOnly","tags","isOpen","setIsOpen","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","handleDeleteClick","id","name","useEffect","paramName","paramType","capitalize","in","schemaType","_a","schema","type","required","jsx","_Fragment","Switch","checked","onClick","description","paramDescContainer","Tooltip","allowHTML","disabled","parameters","_b","length","content","padding","arrowWithBorder","placement","delay","onShow","hide","alignSelf","substring","trigger","onCreate","instance","prev","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","maxLength","onChange","regex","ASCII","test","Button","editDescTooltipContent_btn","variant","size","trim","_c","_d","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","jsxs","paramDescContainer_separator","deleteParamBtn","DeleteIcon","filteredArray","filter","self","findIndex","t","Accordion","expanded","methodAccordion","summary","methodSummaryContainer","methodSummary","methodColorMapping","methodLabel","methodPath","methodExpandArrowContainer","DownArrowIcon","methodAccordionContent","SelectGroup","methodDesc","i","options","list","isMultiple","withSearch","clearable","SimpleLabelValue","paramsTable","ParamterTable","data","headCells","paramsTableHeaders","saveNewRow","values","requestAccordion","requestAccordionSummary","requestAccordionSummary_title","JsonInput","acceptType","withFooter","fieldIsDisabled","_f","_e","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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SVGLoader.js","sources":["../../../../src/components/SVGLoader/SVGLoader.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react'\
|
|
1
|
+
{"version":3,"file":"SVGLoader.js","sources":["../../../../src/components/SVGLoader/SVGLoader.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react'\nimport parse from 'html-react-parser'\n\n// Utility function to create an SVG element from a string\nconst createSvgElement = (svgString: string): SVGSVGElement | null => {\n const parser = new DOMParser()\n const doc = parser.parseFromString(svgString, 'image/svg+xml')\n return doc.querySelector('svg')\n}\n\n// Define the type for SVG attributes\ntype SVGAttributes = React.SVGProps<SVGSVGElement>\n\ninterface SVGLoaderProps extends SVGAttributes {\n src: string\n cache?: boolean\n}\n\nconst SVGLoader: React.FC<SVGLoaderProps> | any = ({ src, cache = true, ...props }) => {\n const [svgMarkup, setSvgMarkup] = useState<string | null>(null)\n\n useEffect(() => {\n if (!src) return\n if (typeof src !== 'string') console.log({ src })\n const isUrl = src.startsWith('http') || src.startsWith('/')\n\n const cacheName = 'svg-cache'\n\n const fetchSvg = async () => {\n try {\n let svgString: string | null = null\n\n // Use the Cache API if caching is enabled\n if (cache && isUrl && 'caches' in window) {\n const cacheStorage = await caches.open(cacheName)\n const cachedResponse = await cacheStorage.match(src)\n\n // If SVG is found in cache, use it\n if (cachedResponse && cachedResponse.ok) {\n svgString = await cachedResponse.text()\n setSvgMarkup(svgString)\n return\n }\n }\n\n // If not cached, fetch from URL\n if (isUrl) {\n const response = await fetch(src)\n\n // Clone the response before consuming it\n const responseClone = response.clone()\n\n // Consume the response body for the SVG content\n svgString = await response.text()\n\n // Store the cloned response in the cache\n if (cache && 'caches' in window) {\n const cacheStorage = await caches.open(cacheName)\n await cacheStorage.put(src, responseClone)\n }\n } else {\n // If it's not a URL (it's inline), just use the source string\n svgString = src\n }\n\n // If we have valid SVG content, set it\n if (svgString) {\n const svg = createSvgElement(svgString)\n if (svg) {\n const svgStringWithProps = new XMLSerializer().serializeToString(svg)\n setSvgMarkup(svgStringWithProps)\n }\n }\n } catch (error) {\n console.error('Error loading SVG:', error)\n }\n }\n\n fetchSvg()\n }, [src, props])\n\n if (!svgMarkup) return null\n\n // Parse the SVG string and return it as JSX\n const parsedSvg = parse(svgMarkup)\n // Sometimes parse returns an array which includes the element\n const toBeClonedElement = Array.isArray(parsedSvg) ? parsedSvg.find((item) => React.isValidElement(item)) : parsedSvg\n // Clone the parsed SVG element to apply the props\n const clonedSvg = React.cloneElement(toBeClonedElement as React.ReactElement, props)\n\n return <>{clonedSvg}</>\n}\n\nexport default SVGLoader\n"],"names":["SVGLoader","_a","src","cache","props","__rest","svgMarkup","setSvgMarkup","useState","useEffect","console","log","isUrl","startsWith","cacheName","__awaiter","svgString","window","cacheStorage","caches","open","cachedResponse","match","ok","text","response","fetch","responseClone","clone","put","svg","DOMParser","parseFromString","querySelector","createSvgElement","svgStringWithProps","XMLSerializer","serializeToString","error","parsedSvg","parse","toBeClonedElement","Array","isArray","find","item","React","isValidElement","clonedSvg","cloneElement","_jsx","jsx","_Fragment","Fragment","children"],"mappings":"iQAIA,MAcMA,EAA6CC,QAAAC,IAAEA,EAAGC,MAAEA,GAAQ,KAASC,EAAxBC,EAAAJ,EAAA,CAAA,MAAA,UACjD,MAAOK,EAAWC,GAAgBC,EAAwB,MA8D1D,GA5DAC,GAAU,KACR,IAAKP,EAAK,OACS,iBAARA,GAAkBQ,QAAQC,IAAI,CAAET,QAC3C,MAAMU,EAAQV,EAAIW,WAAW,SAAWX,EAAIW,WAAW,KAEjDC,EAAY,YAEUC,OAAA,OAAA,OAAA,GAAA,YAC1B,IACE,IAAIC,EAA2B,KAG/B,GAAIb,GAASS,GAAS,WAAYK,OAAQ,CACxC,MAAMC,QAAqBC,OAAOC,KAAKN,GACjCO,QAAuBH,EAAaI,MAAMpB,GAGhD,GAAImB,GAAkBA,EAAeE,GAGnC,OAFAP,QAAkBK,EAAeG,YACjCjB,EAAaS,EAGhB,CAGD,GAAIJ,EAAO,CACT,MAAMa,QAAiBC,MAAMxB,GAGvByB,EAAgBF,EAASG,QAM/B,GAHAZ,QAAkBS,EAASD,OAGvBrB,GAAS,WAAYc,OAAQ,CAC/B,MAAMC,QAAqBC,OAAOC,KAAKN,SACjCI,EAAaW,IAAI3B,EAAKyB,EAC7B,CACF,MAECX,EAAYd,EAId,GAAIc,EAAW,CACb,MAAMc,EA/DS,CAACd,IACT,IAAIe,WACAC,gBAAgBhB,EAAW,iBACnCiB,cAAc,OA4DLC,CAAiBlB,GAC7B,GAAIc,EAAK,CACP,MAAMK,GAAqB,IAAIC,eAAgBC,kBAAkBP,GACjEvB,EAAa4B,EACd,CACF,CACF,CAAC,MAAOG,GACP5B,QAAQ4B,MAAM,qBAAsBA,EACrC,CACH,GAEU,GACT,CAACpC,EAAKE,KAEJE,EAAW,OAAO,KAGvB,MAAMiC,EAAYC,EAAMlC,GAElBmC,EAAoBC,MAAMC,QAAQJ,GAAaA,EAAUK,MAAMC,GAASC,EAAMC,eAAeF,KAASN,EAEtGS,EAAYF,EAAMG,aAAaR,EAAyCrC,GAE9E,OAAO8C,EAAAC,IAAAC,EAAAC,SAAA,CAAAC,SAAGN,GAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionHead.js","sources":["../../../../src/components/SectionHead/SectionHead.tsx"],"sourcesContent":["import React, { type JSX } from 'react'\
|
|
1
|
+
{"version":3,"file":"SectionHead.js","sources":["../../../../src/components/SectionHead/SectionHead.tsx"],"sourcesContent":["import React, { type JSX } from 'react'\nimport './SectionHead.scss'\nimport SVGLoader from '../SVGLoader/SVGLoader'\n\ntype SectionHeadProps = {\n text: string | JSX.Element\n closeFunction?: () => void\n children?: JSX.Element\n className?: string\n}\n\nconst SectionHead: React.FC<SectionHeadProps> = ({ text, closeFunction, children, className = '' }: SectionHeadProps): any => {\n return (\n <div className={`containerTitleDrawer ${className}`}>\n <span data-id={`${String(text)?.toUpperCase()?.replaceAll(' ', '_')}_ID`}>{text}</span>\n {children}\n\n {closeFunction && <SVGLoader className='closeIcon' onClick={closeFunction} width='1.5rem' height='1.5rem' />}\n </div>\n )\n}\nexport default SectionHead\n"],"names":["SectionHead","text","closeFunction","children","className","_jsxs","jsxs","_jsx","_b","_a","String","toUpperCase","replaceAll","SVGLoader","onClick","width","height"],"mappings":"8FAWA,MAAMA,EAA0C,EAAGC,OAAMC,gBAAeC,WAAUC,YAAY,eAC5F,OACEC,EAAKC,KAAA,MAAA,CAAAF,UAAW,wBAAwBA,IACtCD,SAAA,CAAAI,EAAAA,IAAA,OAAA,CAAA,UAAe,GAA8B,QAA3BC,EAAc,QAAdC,EAAAC,OAAOT,UAAO,IAAAQ,OAAA,EAAAA,EAAAE,qBAAa,IAAAH,OAAA,EAAAA,EAAEI,WAAW,IAAK,UAAST,SAAGF,IAC1EE,EAEAD,GAAiBK,EAAAA,IAACM,EAAU,CAAAT,UAAU,YAAYU,QAASZ,EAAea,MAAM,SAASC,OAAO,aAEpG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleLabelValue.js","sources":["../../../../src/components/SimpleLabelValue/SimpleLabelValue.tsx"],"sourcesContent":["import React from 'react'\
|
|
1
|
+
{"version":3,"file":"SimpleLabelValue.js","sources":["../../../../src/components/SimpleLabelValue/SimpleLabelValue.tsx"],"sourcesContent":["import React from 'react'\nimport './style.scss'\n\ntype SimpleLabelValueProps = {\n label?: string | JSX.Element\n value?: string | number | JSX.Element | JSX.Element[]\n color?: string\n className?: string\n dataId?: string\n}\n\nconst SimpleLabelValue: React.FC<SimpleLabelValueProps> = ({\n label,\n value,\n color,\n className = '',\n dataId,\n}: SimpleLabelValueProps) => {\n const dataIdLabel =\n typeof label === 'string' ? label?.toUpperCase()?.replaceAll(' ', '_') + '_LABEL_ID' : dataId\n return (\n <div className={`drawerItemContainer ${className}`}>\n <span className=\"title\" data-id={dataIdLabel}>\n {label}\n </span>\n <span className={`text ${color ? `color-${color}` : ''}`}>{value}</span>\n </div>\n )\n}\n\nexport default SimpleLabelValue\n"],"names":["SimpleLabelValue","label","value","color","className","dataId","dataIdLabel","_a","toUpperCase","replaceAll","_jsxs","children","_jsx","jsx"],"mappings":"qDAWA,MAAMA,EAAoD,EACxDC,QACAC,QACAC,QACAC,YAAY,GACZC,mBAEA,MAAMC,EACa,iBAAVL,GAAyC,QAApBM,EAAAN,aAAA,EAAAA,EAAOO,qBAAa,IAAAD,OAAA,EAAAA,EAAEE,WAAW,IAAK,MAAO,YAAcJ,EACzF,OACEK,EAAAA,KAAK,MAAA,CAAAN,UAAW,uBAAuBA,IAAWO,SAAA,CAChDC,EAAMC,IAAA,OAAA,CAAAT,UAAU,QAAO,UAAUE,EAC9BK,SAAAV,IAEHW,EAAAA,IAAA,OAAA,CAAMR,UAAW,SAAQD,EAAQ,SAASA,IAAU,IAAIQ,SAAGT,MAE9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, { useState, useEffect, ReactNode } from 'react'\
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, { useState, useEffect, ReactNode } from 'react'\nimport Tippy, { TippyProps } from '@tippyjs/react'\nimport 'tippy.js/dist/tippy.css'\nimport './Tooltip.scss'\n\ninterface TooltipProps extends TippyProps {\n content: ReactNode\n success?: boolean\n onMouseEnter?: (event: React.MouseEvent<HTMLDivElement>) => void\n onMouseLeave?: (event: React.MouseEvent<HTMLDivElement>) => void\n visible?: boolean\n delay?: [number, number]\n type?: 'info' | 'function'\n maxWidth?: number\n className?: string\n arrowWithBorder?: boolean\n disabled?: boolean\n}\n\nconst Tooltip: React.FC<TooltipProps> = ({\n children,\n content,\n success,\n onMouseEnter,\n onMouseLeave,\n visible,\n delay = [200, 400],\n type = 'info',\n maxWidth = 390,\n className,\n arrowWithBorder,\n disabled,\n ...props\n}) => {\n const [rootFontSize, setRootFontSize] = useState(16)\n\n useEffect(() => {\n const handleFontSizeChange = (fontSize: number) => {\n setRootFontSize((prev) => (prev !== fontSize ? fontSize : prev))\n }\n\n if (\n // @ts-ignore - Ignoring if `applicationUIScaling` doesn't exist\n window.applicationUIScaling &&\n // @ts-ignore - Ignoring if `applicationUIScaling` doesn't exist\n typeof window.applicationUIScaling.addEventHandler === 'function'\n ) {\n // @ts-ignore - Ignoring if `applicationUIScaling` doesn't exist\n window.applicationUIScaling.addEventHandler(handleFontSizeChange)\n }\n }, [])\n\n return (\n <Tippy\n visible={visible}\n allowHTML={typeof content !== 'string'}\n interactive\n maxWidth={(maxWidth / 16) * rootFontSize}\n delay={delay}\n content={content}\n placement=\"bottom-start\"\n className={`${success ? 'success' : ''} ${type} ${className || ''} ${\n arrowWithBorder ? 'arrow-with-border' : ''\n }`}\n disabled={disabled}\n {...props}\n >\n <div\n className=\"tooltip-custom-wrapper\"\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <div\n className=\"tooltip-custom-wrapper\"\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {children}\n </div>\n </div>\n </Tippy>\n )\n}\n\nexport default Tooltip\n"],"names":["Tooltip","_a","children","content","success","onMouseEnter","onMouseLeave","visible","delay","type","maxWidth","className","arrowWithBorder","disabled","props","__rest","rootFontSize","setRootFontSize","useState","useEffect","handleFontSizeChange","fontSize","prev","window","applicationUIScaling","addEventHandler","_jsx","Tippy","Object","assign","allowHTML","interactive","placement"],"mappings":"4SAmBA,MAAMA,EAAmCC,IAAA,IAAAC,SACvCA,EAAQC,QACRA,EAAOC,QACPA,EAAOC,aACPA,EAAYC,aACZA,EAAYC,QACZA,EAAOC,MACPA,EAAQ,CAAC,IAAK,KAAIC,KAClBA,EAAO,OAAMC,SACbA,EAAW,IAAGC,UACdA,EAASC,gBACTA,EAAeC,SACfA,GAAQZ,EACLa,EAAKC,EAAAd,EAb+B,6IAevC,MAAOe,EAAcC,GAAmBC,EAAS,IAkBjD,OAhBAC,GAAU,KACR,MAAMC,EAAwBC,IAC5BJ,GAAiBK,GAAUA,IAASD,EAAWA,EAAWC,GAAM,EAKhEC,OAAOC,sBAEgD,mBAAhDD,OAAOC,qBAAqBC,iBAGnCF,OAAOC,qBAAqBC,gBAAgBL,EAC7C,GACA,IAGDM,EAAAA,IAACC,EAAKC,OAAAC,OAAA,CACJtB,QAASA,EACTuB,UAA8B,iBAAZ3B,EAClB4B,aACA,EAAArB,SAAWA,EAAW,GAAMM,EAC5BR,MAAOA,EACPL,QAASA,EACT6B,UAAU,eACVrB,UAAW,GAAGP,EAAU,UAAY,MAAMK,KAAQE,GAAa,MAC7DC,EAAkB,oBAAsB,KAE1CC,SAAUA,GACNC,EAEJ,CAAAZ,SAAAwB,EAAAA,IAAA,MAAA,CACEf,UAAU,yBACVN,aAAcA,EACdC,aAAcA,WAEdoB,EAAAA,IACE,MAAA,CAAAf,UAAU,yBACVN,aAAcA,EACdC,aAAcA,EAAYJ,SAEzBA,QAIR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/dialog/index.tsx"],"sourcesContent":["import React from 'react'\
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/dialog/index.tsx"],"sourcesContent":["import React from 'react'\n// @ts-ignore\nimport { Dialog, Button, CloseIcon, infoIcon } from '@digi-frontend/dgate-ui'\nimport SVGLoader from '../SVGLoader/SVGLoader'\nimport './style.scss'\nimport { CommonDialogProps } from './dialog'\n\nconst CommonDialog = ({\n status = 'info',\n content,\n onSubmit,\n onCancel,\n onClose,\n open,\n size = 'xs',\n icon = (\n <>\n <SVGLoader src={infoIcon} width=\"4.0625rem\" height=\"4.0625rem\" />\n </>\n ),\n}: CommonDialogProps) => {\n const handleClose = () => {\n onClose() // Always close the dialog first\n\n if (onCancel && onCancel.onClick) {\n onCancel.onClick() // If onCancel.onClick is provided, invoke it after closing the dialog\n }\n }\n\n const body = (\n <div className=\"common-dialog\">\n {icon && (\n <div className=\"confirmation-dialog-header\">\n <div className={`icon ${status}`}>{icon}</div>\n </div>\n )}\n <SVGLoader\n src={CloseIcon}\n width={'1.5rem'}\n height={'1.5rem'}\n onClick={handleClose}\n className=\"close-icon\"\n />\n\n {content}\n <div\n className=\"confirmation-dialog-footer\"\n style={{ marginBottom: onCancel || onSubmit ? '1.5rem' : '1rem' }}\n >\n {onCancel && (\n <Button\n {...onCancel}\n onClick={handleClose}\n variant={onCancel.variant || 'outlined'}\n color={onCancel.color || 'normal'}\n >\n {onCancel.text}\n </Button>\n )}\n {onSubmit && (\n <Button\n {...onSubmit}\n variant={onSubmit.variant || 'contained'}\n color={onSubmit.color || 'secondary'}\n >\n {onSubmit.text}\n </Button>\n )}\n </div>\n </div>\n )\n\n return (\n <Dialog\n open={open}\n onClose={handleClose}\n content={body}\n fullWidth={false}\n size={size}\n id=\"common-dialog\"\n />\n )\n}\n\nexport default CommonDialog\n"],"names":["CommonDialog","status","content","onSubmit","onCancel","onClose","open","size","icon","_jsx","jsx","SVGLoader","src","infoIcon","width","height","handleClose","onClick","body","_jsxs","className","children","CloseIcon","jsxs","style","marginBottom","Button","Object","assign","variant","color","text","Dialog","fullWidth","id"],"mappings":"wLAOM,MAAAA,EAAe,EACnBC,SAAS,OACTC,UACAC,WACAC,WACAC,UACAC,OACAC,OAAO,KACPC,OACEC,2BACEA,EAACC,IAAAC,GAAUC,IAAKC,EAAUC,MAAM,YAAYC,OAAO,oBAIvD,MAAMC,EAAc,KAClBX,IAEID,GAAYA,EAASa,SACvBb,EAASa,SACV,EAGGC,EACJC,EAAAA,KAAA,MAAA,CAAKC,UAAU,gBACZC,SAAA,CAAAb,GACCC,EAAKC,IAAA,MAAA,CAAAU,UAAU,6BAA4BC,SACzCZ,EAAAA,IAAK,MAAA,CAAAW,UAAW,QAAQnB,aAAWO,MAGvCC,MAACE,EAAS,CACRC,IAAKU,EACLR,MAAO,SACPC,OAAQ,SACRE,QAASD,EACTI,UAAU,eAGXlB,EACDiB,EACEI,KAAA,MAAA,CAAAH,UAAU,6BACVI,MAAO,CAAEC,aAAcrB,GAAYD,EAAW,SAAW,QAAQkB,SAAA,CAEhEjB,GACCK,MAACiB,EACKC,OAAAC,OAAA,CAAA,EAAAxB,EACJ,CAAAa,QAASD,EACTa,QAASzB,EAASyB,SAAW,WAC7BC,MAAO1B,EAAS0B,OAAS,SAAQT,SAEhCjB,EAAS2B,QAGb5B,GACCM,MAACiB,EAAMC,OAAAC,OAAA,GACDzB,EAAQ,CACZ0B,QAAS1B,EAAS0B,SAAW,YAC7BC,MAAO3B,EAAS2B,OAAS,YAAWT,SAEnClB,EAAS4B,cAOpB,OACEtB,EAAAA,IAACuB,EAAM,CACL1B,KAAMA,EACND,QAASW,EACTd,QAASgB,EACTe,WAAW,EACX1B,KAAMA,EACN2B,GAAG,iBAEN"}
|