@digi-frontend/dgate-api-documentation 1.1.12 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/.editorconfig +13 -0
  2. package/.prettierignore +8 -0
  3. package/.prettierrc +15 -0
  4. package/dist/_virtual/index4.js +1 -1
  5. package/dist/_virtual/index5.js +1 -1
  6. package/dist/_virtual/index6.js +1 -1
  7. package/dist/_virtual/index7.js +1 -1
  8. package/dist/node_modules/@popperjs/core/lib/createPopper.js +1 -1
  9. package/dist/node_modules/@popperjs/core/lib/createPopper.js.map +1 -1
  10. package/dist/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js +1 -1
  11. package/dist/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js.map +1 -1
  12. package/dist/node_modules/@popperjs/core/lib/enums.js +1 -1
  13. package/dist/node_modules/@popperjs/core/lib/enums.js.map +1 -1
  14. package/dist/node_modules/@popperjs/core/lib/modifiers/applyStyles.js +1 -1
  15. package/dist/node_modules/@popperjs/core/lib/modifiers/applyStyles.js.map +1 -1
  16. package/dist/node_modules/@popperjs/core/lib/modifiers/eventListeners.js +1 -1
  17. package/dist/node_modules/@popperjs/core/lib/modifiers/eventListeners.js.map +1 -1
  18. package/dist/node_modules/@popperjs/core/lib/modifiers/flip.js +1 -1
  19. package/dist/node_modules/@popperjs/core/lib/modifiers/flip.js.map +1 -1
  20. package/dist/node_modules/@popperjs/core/lib/modifiers/hide.js +1 -1
  21. package/dist/node_modules/@popperjs/core/lib/modifiers/hide.js.map +1 -1
  22. package/dist/node_modules/@popperjs/core/lib/modifiers/offset.js +1 -1
  23. package/dist/node_modules/@popperjs/core/lib/modifiers/offset.js.map +1 -1
  24. package/dist/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js +1 -1
  25. package/dist/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js.map +1 -1
  26. package/dist/node_modules/@popperjs/core/lib/utils/debounce.js +1 -1
  27. package/dist/node_modules/@popperjs/core/lib/utils/debounce.js.map +1 -1
  28. package/dist/node_modules/@popperjs/core/lib/utils/detectOverflow.js +1 -1
  29. package/dist/node_modules/@popperjs/core/lib/utils/detectOverflow.js.map +1 -1
  30. package/dist/node_modules/@popperjs/core/lib/utils/expandToHashMap.js +1 -1
  31. package/dist/node_modules/@popperjs/core/lib/utils/expandToHashMap.js.map +1 -1
  32. package/dist/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js +1 -1
  33. package/dist/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js.map +1 -1
  34. package/dist/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js +1 -1
  35. package/dist/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js.map +1 -1
  36. package/dist/node_modules/@popperjs/core/lib/utils/mergeByName.js +1 -1
  37. package/dist/node_modules/@popperjs/core/lib/utils/mergeByName.js.map +1 -1
  38. package/dist/node_modules/@popperjs/core/lib/utils/orderModifiers.js +1 -1
  39. package/dist/node_modules/@popperjs/core/lib/utils/orderModifiers.js.map +1 -1
  40. package/dist/node_modules/@popperjs/core/lib/utils/userAgent.js +1 -1
  41. package/dist/node_modules/@popperjs/core/lib/utils/userAgent.js.map +1 -1
  42. package/dist/node_modules/@tippyjs/react/dist/tippy-react.esm.js +1 -1
  43. package/dist/node_modules/@tippyjs/react/dist/tippy-react.esm.js.map +1 -1
  44. package/dist/node_modules/digitinary-ui/dist/index.js +1 -1
  45. package/dist/node_modules/digitinary-ui/dist/index.js.map +1 -1
  46. package/dist/node_modules/dom-serializer/lib/foreignNames.js +1 -1
  47. package/dist/node_modules/dom-serializer/lib/foreignNames.js.map +1 -1
  48. package/dist/node_modules/dom-serializer/lib/index.js +1 -1
  49. package/dist/node_modules/dom-serializer/lib/index.js.map +1 -1
  50. package/dist/node_modules/dom-serializer/node_modules/entities/lib/decode.js +1 -1
  51. package/dist/node_modules/dom-serializer/node_modules/entities/lib/decode.js.map +1 -1
  52. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-html.js +1 -1
  53. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-html.js.map +1 -1
  54. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-xml.js +1 -1
  55. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-xml.js.map +1 -1
  56. package/dist/node_modules/domhandler/lib/node.js +1 -1
  57. package/dist/node_modules/domhandler/lib/node.js.map +1 -1
  58. package/dist/node_modules/domutils/lib/feeds.js +1 -1
  59. package/dist/node_modules/domutils/lib/feeds.js.map +1 -1
  60. package/dist/node_modules/domutils/lib/helpers.js +1 -1
  61. package/dist/node_modules/domutils/lib/helpers.js.map +1 -1
  62. package/dist/node_modules/domutils/lib/legacy.js +1 -1
  63. package/dist/node_modules/domutils/lib/legacy.js.map +1 -1
  64. package/dist/node_modules/domutils/lib/querying.js +1 -1
  65. package/dist/node_modules/domutils/lib/querying.js.map +1 -1
  66. package/dist/node_modules/domutils/lib/stringify.js +1 -1
  67. package/dist/node_modules/domutils/lib/stringify.js.map +1 -1
  68. package/dist/node_modules/entities/dist/commonjs/decode.js +1 -1
  69. package/dist/node_modules/entities/dist/commonjs/decode.js.map +1 -1
  70. package/dist/node_modules/entities/dist/commonjs/generated/decode-data-html.js +1 -1
  71. package/dist/node_modules/entities/dist/commonjs/generated/decode-data-html.js.map +1 -1
  72. package/dist/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +1 -1
  73. package/dist/node_modules/entities/dist/commonjs/generated/decode-data-xml.js.map +1 -1
  74. package/dist/node_modules/formik/dist/formik.esm.js +1 -1
  75. package/dist/node_modules/formik/dist/formik.esm.js.map +1 -1
  76. package/dist/node_modules/formik/node_modules/deepmerge/dist/es.js +1 -1
  77. package/dist/node_modules/formik/node_modules/deepmerge/dist/es.js.map +1 -1
  78. package/dist/node_modules/highlight.js/lib/core.js +1 -1
  79. package/dist/node_modules/highlight.js/lib/core.js.map +1 -1
  80. package/dist/node_modules/highlight.js/lib/languages/json.js +1 -1
  81. package/dist/node_modules/highlight.js/lib/languages/json.js.map +1 -1
  82. package/dist/node_modules/html-react-parser/lib/utilities.js.map +1 -1
  83. package/dist/node_modules/htmlparser2/dist/commonjs/Tokenizer.js +1 -1
  84. package/dist/node_modules/htmlparser2/dist/commonjs/Tokenizer.js.map +1 -1
  85. package/dist/node_modules/htmlparser2/dist/commonjs/index.js +1 -1
  86. package/dist/node_modules/htmlparser2/dist/commonjs/index.js.map +1 -1
  87. package/dist/node_modules/js-yaml/dist/js-yaml.mjs.js +1 -1
  88. package/dist/node_modules/js-yaml/dist/js-yaml.mjs.js.map +1 -1
  89. package/dist/node_modules/lodash-es/_baseClone.js +1 -1
  90. package/dist/node_modules/lodash-es/_baseClone.js.map +1 -1
  91. package/dist/node_modules/lodash-es/_getSymbols.js +1 -1
  92. package/dist/node_modules/lodash-es/_getSymbols.js.map +1 -1
  93. package/dist/node_modules/lodash-es/_memoizeCapped.js +1 -1
  94. package/dist/node_modules/lodash-es/_memoizeCapped.js.map +1 -1
  95. package/dist/node_modules/lodash-es/_stringToPath.js +1 -1
  96. package/dist/node_modules/lodash-es/_stringToPath.js.map +1 -1
  97. package/dist/node_modules/property-expr/index.js +1 -1
  98. package/dist/node_modules/property-expr/index.js.map +1 -1
  99. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js +1 -1
  100. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -1
  101. package/dist/node_modules/react-property/lib/index.js +1 -1
  102. package/dist/node_modules/react-property/lib/index.js.map +1 -1
  103. package/dist/node_modules/react-syntax-highlighter/dist/esm/create-element.js +1 -1
  104. package/dist/node_modules/react-syntax-highlighter/dist/esm/create-element.js.map +1 -1
  105. package/dist/node_modules/react-syntax-highlighter/dist/esm/highlight.js +1 -1
  106. package/dist/node_modules/react-syntax-highlighter/dist/esm/highlight.js.map +1 -1
  107. package/dist/node_modules/react-toastify/dist/index.mjs.js +1 -1
  108. package/dist/node_modules/react-toastify/dist/index.mjs.js.map +1 -1
  109. package/dist/node_modules/style-to-js/cjs/index.js +1 -1
  110. package/dist/node_modules/style-to-js/cjs/index.js.map +1 -1
  111. package/dist/node_modules/style-to-object/cjs/index.js +1 -1
  112. package/dist/node_modules/style-to-object/cjs/index.js.map +1 -1
  113. package/dist/node_modules/tiny-case/index.js +1 -1
  114. package/dist/node_modules/tiny-case/index.js.map +1 -1
  115. package/dist/node_modules/tippy.js/dist/tippy.esm.js +1 -1
  116. package/dist/node_modules/tippy.js/dist/tippy.esm.js.map +1 -1
  117. package/dist/node_modules/toposort/index.js +1 -1
  118. package/dist/node_modules/toposort/index.js.map +1 -1
  119. package/dist/node_modules/tslib/tslib.es6.js +1 -1
  120. package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
  121. package/dist/node_modules/yup/index.esm.js +1 -1
  122. package/dist/node_modules/yup/index.esm.js.map +1 -1
  123. package/dist/src/components/InfoForm/InfoForm.js +1 -1
  124. package/dist/src/components/InfoForm/InfoForm.js.map +1 -1
  125. package/dist/src/components/JsonInput/JsonInput.js +1 -1
  126. package/dist/src/components/JsonInput/JsonInput.js.map +1 -1
  127. package/dist/src/components/LivePreview/LivePreview.js +1 -1
  128. package/dist/src/components/LivePreview/LivePreview.js.map +1 -1
  129. package/dist/src/components/MethodAccordion/MethodAccordion.js +1 -1
  130. package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
  131. package/dist/src/components/SVGLoader/SVGLoader.js +1 -1
  132. package/dist/src/components/SVGLoader/SVGLoader.js.map +1 -1
  133. package/dist/src/components/Tooltip/Tooltip.js +1 -1
  134. package/dist/src/components/Tooltip/Tooltip.js.map +1 -1
  135. package/dist/src/components/table/table.js +1 -1
  136. package/dist/src/components/table/table.js.map +1 -1
  137. package/dist/src/components/table/tags-table.js +1 -1
  138. package/dist/src/components/table/tags-table.js.map +1 -1
  139. package/dist/src/constants/methods.constant.js +1 -1
  140. package/dist/src/constants/methods.constant.js.map +1 -1
  141. package/dist/src/context/SectionToggleContext.js +1 -1
  142. package/dist/src/context/SectionToggleContext.js.map +1 -1
  143. package/dist/src/helpers/docs.helper.js +1 -1
  144. package/dist/src/helpers/docs.helper.js.map +1 -1
  145. package/dist/src/helpers/layout.helper.js +1 -1
  146. package/dist/src/helpers/layout.helper.js.map +1 -1
  147. package/dist/src/layout/docsComponents/DocsAside/DocsAside.js +1 -1
  148. package/dist/src/layout/docsComponents/DocsAside/DocsAside.js.map +1 -1
  149. package/dist/src/layout/docsComponents/DocsContent/DocsContent.js +1 -1
  150. package/dist/src/layout/docsComponents/DocsContent/DocsContent.js.map +1 -1
  151. package/dist/src/layout/docsComponents/DocsContent/EndpointPage/index.js +1 -1
  152. package/dist/src/layout/docsComponents/DocsContent/EndpointPage/index.js.map +1 -1
  153. package/dist/src/layout/docsComponents/DocsContent/OverviewPage/index.js +1 -1
  154. package/dist/src/layout/docsComponents/DocsContent/OverviewPage/index.js.map +1 -1
  155. package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js +1 -1
  156. package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js.map +1 -1
  157. package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js +1 -1
  158. package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js.map +1 -1
  159. package/dist/src/layout/docsLayout.js +1 -1
  160. package/dist/src/layout/docsLayout.js.map +1 -1
  161. package/dist/src/layout/layout.js +1 -1
  162. package/dist/src/layout/layout.js.map +1 -1
  163. package/dist/src/utils/index.js +1 -1
  164. package/dist/src/utils/index.js.map +1 -1
  165. package/dist/src/validator/form.scheme.js +1 -1
  166. package/dist/src/validator/form.scheme.js.map +1 -1
  167. package/dist/styles.css +773 -773
  168. package/index.ts +2 -0
  169. package/package.json +4 -9
  170. package/rollup.config.js +37 -0
  171. package/src/assets/icons/AddRow.svg +3 -0
  172. package/src/assets/icons/ApiIcon.svg +12 -0
  173. package/src/assets/icons/ArrowBack.svg +3 -0
  174. package/src/assets/icons/BookIcon.svg +6 -0
  175. package/src/assets/icons/CheckMarkSquare.svg +5 -0
  176. package/src/assets/icons/CloseIcon.svg +4 -0
  177. package/src/assets/icons/CopySticker.svg +6 -0
  178. package/src/assets/icons/DeleteIcon.svg +3 -0
  179. package/src/assets/icons/DownArrow.svg +3 -0
  180. package/src/assets/icons/EditIcon.svg +3 -0
  181. package/src/assets/icons/FilterIcon.svg +4 -0
  182. package/src/assets/icons/Plus.svg +5 -0
  183. package/src/assets/icons/PlusSquare.svg +3 -0
  184. package/src/assets/icons/RequestOption.svg +5 -0
  185. package/src/assets/icons/UpArrow.svg +3 -0
  186. package/src/assets/icons/arrow-down.svg +3 -0
  187. package/src/assets/icons/arrow-up.svg +10 -0
  188. package/src/assets/icons/arrowDownGray.svg +3 -0
  189. package/src/assets/icons/arrowRightGray.svg +3 -0
  190. package/src/assets/icons/close-circle.svg +5 -0
  191. package/src/assets/icons/copy.svg +4 -0
  192. package/src/assets/icons/deleteOutlinedIcon.svg +8 -0
  193. package/src/assets/icons/document.svg +6 -0
  194. package/src/assets/icons/eye.svg +4 -0
  195. package/src/assets/icons/index.ts +27 -0
  196. package/src/assets/icons/infoIcon.svg +5 -0
  197. package/src/assets/icons/newCopyIcon.svg +4 -0
  198. package/src/assets/icons/searchIcon.svg +4 -0
  199. package/src/components/Chips/Chips.tsx +87 -0
  200. package/src/components/InfoForm/InfoForm.tsx +432 -0
  201. package/src/components/JsonInput/JsonInput.tsx +149 -0
  202. package/src/components/LivePreview/LivePreview.tsx +224 -0
  203. package/src/components/MethodAccordion/MethodAccordion.tsx +1070 -0
  204. package/src/components/SVGLoader/SVGLoader.tsx +96 -0
  205. package/src/components/SectionHead/SectionHead.tsx +22 -0
  206. package/src/components/SimpleLabelValue/SimpleLabelValue.tsx +31 -0
  207. package/src/components/SimpleLabelValue/index.ts +1 -0
  208. package/src/components/Tooltip/Tooltip.tsx +85 -0
  209. package/src/components/dialog/dialog.ts +61 -0
  210. package/src/components/dialog/index.tsx +88 -0
  211. package/src/components/table/table.tsx +508 -0
  212. package/src/components/table/tags-table.tsx +348 -0
  213. package/src/constants/index.ts +95 -0
  214. package/src/constants/methods.constant.ts +26 -0
  215. package/src/constants/regex.ts +7 -0
  216. package/src/context/SectionToggleContext.tsx +121 -0
  217. package/src/global.d.ts +13 -0
  218. package/src/helpers/docs.helper.ts +42 -0
  219. package/src/helpers/layout.helper.ts +290 -0
  220. package/src/helpers/methodAccordion.helper.ts +20 -0
  221. package/src/index.ts +2 -0
  222. package/src/layout/docsComponents/Codebox/Codebox.tsx +61 -0
  223. package/src/layout/docsComponents/DocsAside/DocsAside.tsx +112 -0
  224. package/src/layout/docsComponents/DocsContent/DocsContent.tsx +51 -0
  225. package/src/layout/docsComponents/DocsContent/EndpointPage/index.tsx +307 -0
  226. package/src/layout/docsComponents/DocsContent/OverviewPage/index.tsx +223 -0
  227. package/src/layout/docsComponents/DocsHeader/DocsHeader.tsx +188 -0
  228. package/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.tsx +229 -0
  229. package/src/layout/docsComponents/index.tsx +28 -0
  230. package/src/layout/docsLayout.tsx +123 -0
  231. package/src/layout/layout.module.css +65 -0
  232. package/src/layout/layout.tsx +177 -0
  233. package/src/types/docsLayout.type.ts +7 -0
  234. package/src/types/index.ts +28 -0
  235. package/src/types/layout.type.ts +32 -0
  236. package/src/types/openApi.ts +109 -0
  237. package/src/types/transformedOpenApi.ts +52 -0
  238. package/src/utils/index.ts +15 -0
  239. package/src/validator/form.scheme.ts +96 -0
  240. package/tsconfig.json +33 -0
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport './style.scss'\nimport { Button, Input, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\nimport Tooltip from '../Tooltip/Tooltip'\nimport SVGLoader from '../SVGLoader/SVGLoader'\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\nimport PlusIcon from '../../assets/icons/Plus.svg'\nimport PlusSquare from '../../assets/icons/PlusSquare.svg'\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\nimport { useFormik } from 'formik'\nimport * as yup from 'yup'\nimport { capitalize } from '../../helpers/methodAccordion.helper'\nimport regex from '../../constants/regex'\n\nconst ParamterTable = ({\n id,\n headCells,\n data,\n isFormOpen,\n setIsFormOpen,\n saveNewRow,\n readOnly,\n isRequest = true,\n}) => {\n const [text, setText] = useState('')\n const [tooltipRef, setTooltipRef] = useState(null)\n const [tooltipEnumRef, setTooltipEnumRef] = useState(null)\n const [enumFields, setEnumFields] = useState<string[]>([])\n const { values, errors, setFieldValue, isValid, submitForm, resetForm } = useFormik({\n validateOnMount: true,\n initialValues: {\n name: '',\n in: isRequest ? 'query' : 'header',\n schema: {\n type: 'string',\n enum: [],\n items: {\n type: 'string',\n },\n },\n required: true,\n description: '',\n },\n validationSchema: yup.object().shape({\n name: yup.string().default('').trim().required('Parameter name is required'),\n in: yup.string().required('Paramter type is required'),\n schema: yup.object().shape({\n type: yup.string().required('Parameter schema type is required'),\n enum: yup.array(yup.string()).optional(),\n items: yup.object().shape({\n type: yup.string().optional(),\n }),\n }),\n required: yup.boolean().when('in', {\n is: 'path',\n then: (schema) => schema.oneOf([true], 'Path parameters must be required.'),\n otherwise: (schema) => schema.optional(),\n }),\n description: yup.string().default('').trim().optional(),\n }),\n onSubmit: (values) => {\n if (values && !values?.schema?.items?.type) {\n delete values?.schema?.items?.type\n }\n saveNewRow(values)\n setIsFormOpen(undefined)\n setText('')\n resetForm()\n },\n })\n\n return (\n <div className=\"tableSectionContainer\">\n <div className=\"tableContainer\">\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\n <thead className=\"tableHead\">\n <tr>\n {headCells?.map((headCell) => (\n <th\n key={headCell.id}\n className={`tableHeadCell ${headCell.classes || ''}`}\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\n >\n <div\n className=\"headContainer\"\n data-id={`${\n typeof headCell.label === 'string'\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\n : 'UNKNOWN_LABEL'\n }_COLUMN`}\n >\n {headCell.label}\n </div>\n </th>\n ))}\n </tr>\n </thead>\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\n {data?.map((row, rowIndex) => {\n return (\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\n {headCells?.map((headCell) => {\n const cellContent = row[headCell.id] !== '_' && (\n <div\n data-id=\"TEXT_DESCRIPTION\"\n className=\"tableData\"\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {row[headCell.id]}\n </div>\n )\n\n return (\n <td\n key={headCell.id}\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {cellContent}\n </td>\n )\n })}\n </tr>\n )\n })}\n {data?.length === 0 && readOnly && (\n <tr className=\"fallbackTableRow\">\n <td className=\"fallbackContainer\" colSpan={headCells?.length}>\n <div className=\"fallbackTextContainer\">\n <span className=\"fallbackText\"> No Data Available</span>\n </div>\n </td>\n </tr>\n )}\n\n {isFormOpen && !readOnly ? (\n <tr className={`row`}>\n <td key={'Parameter name'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <Input\n placeholder=\"Parameter name\"\n size=\"large\"\n type=\"text\"\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value as string))\n setFieldValue('name', value)\n }}\n value={values.name}\n disabled={readOnly}\n />\n </div>\n </td>\n\n <td key={'parameter in'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <SelectGroupV2\n disabled={readOnly}\n value={{\n label: capitalize(values.in),\n value: values.in,\n }}\n onChange={(item) => {\n setFieldValue('in', item?.value?.toLowerCase())\n if (item?.value == 'in') {\n setFieldValue('required', true)\n }\n }} // Updates state on selection\n options={[\n {\n list: isRequest\n ? [\n { label: 'Query', value: 'query' },\n { label: 'Header', value: 'header' },\n { label: 'Path', value: 'path' },\n ]\n : [{ label: 'Header', value: 'header' }],\n },\n ]}\n errorMsg={!!errors.in && errors.in}\n isMultiple={false}\n withSearch={false}\n clearable={false}\n />{' '}\n </div>\n </td>\n\n <td key={'parameter schema type'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData select-inputs\">\n <SelectGroupV2\n disabled={readOnly}\n clearable={false}\n value={{\n label: capitalize(values?.schema?.type),\n value: values?.schema?.type,\n }}\n errorMsg={!!errors.schema && errors.schema}\n onChange={(item) => {\n setFieldValue('schema.type', item?.value?.toLowerCase())\n if (item.value?.toLowerCase() == 'array' && !values.schema.items) {\n setFieldValue('schema.items', {})\n }\n if (item.value?.toLowerCase() != 'array' && values.schema.items) {\n const newVal = { ...values.schema }\n delete newVal.items\n setFieldValue('schema', newVal)\n }\n }} // Updates state on selection\n options={[\n {\n list: [\n { label: 'String', value: 'string' },\n { label: 'Integer', value: 'integer' },\n { label: 'Boolean', value: 'boolean' },\n { label: 'Object', value: 'object' },\n { label: 'Array', value: 'array' },\n { label: 'Number', value: 'number' },\n ],\n },\n ]}\n isMultiple={false}\n withSearch={false}\n />{' '}\n {!!values?.schema?.type && values?.schema?.type.toLowerCase() === 'array' ? (\n <SelectGroupV2\n disabled={readOnly}\n clearable={false}\n value={{\n label: capitalize(values?.schema?.items?.type),\n value: values.schema?.items?.type,\n }}\n errorMsg={!!errors?.schema?.items?.type && errors?.schema?.items?.type}\n onChange={(item) => {\n setFieldValue('schema.items.type', item?.value?.toLowerCase())\n if (item.value?.toLowerCase() == 'array' && !values.schema.items?.items) {\n setFieldValue('schema.items.items', {})\n }\n if (item.value?.toLowerCase() != 'array' && values.schema.items?.items) {\n const newVal = { ...values.schema.items }\n delete newVal?.items\n setFieldValue('schema.items', newVal)\n }\n }} // Updates state on selection\n options={[\n {\n list: [\n { label: 'String', value: 'string' },\n { label: 'Integer', value: 'integer' },\n { label: 'Boolean', value: 'boolean' },\n { label: 'Object', value: 'object' },\n { label: 'Array', value: 'array' },\n { label: 'Number', value: 'number' },\n ],\n },\n ]}\n isMultiple={false}\n withSearch={false}\n />\n ) : (\n ''\n )}\n </div>\n </td>\n\n <td key={'parameter enum'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <Tooltip\n disabled={\n values?.schema?.type?.toLowerCase() == 'array' ||\n values?.schema?.type?.toLowerCase() == 'object'\n }\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipEnumRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Enum</p>\n {!!values?.schema?.enum &&\n !!values?.schema?.enum.length &&\n values?.schema?.enum?.map((item, index) => (\n <Input\n key={index}\n className={'methodDescForEnum'}\n required\n clearable={false}\n placeholder=\"Enter Enum value...\"\n value={item}\n onChange={(value) => {\n setFieldValue(`schema.enum[${index}]`, value)\n }}\n />\n ))}\n {enumFields &&\n enumFields?.map((item, index) => (\n <Input\n key={index}\n className={'methodDescForEnum'}\n required\n clearable={false}\n placeholder={`Enter Enum value...`}\n value={item}\n onChange={(value) => {\n let _values = [...enumFields]\n _values[index] = value\n setEnumFields(_values)\n }}\n />\n ))}\n <p\n className={'addEnumButton'}\n onClick={() => {\n setEnumFields((prev) => [...prev, ''])\n }}\n >\n <SVGLoader src={PlusSquare} />\n Add New Enum\n </p>\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n type=\"button\"\n onClick={() => {\n setFieldValue('schema.enum', [\n ...values?.schema?.enum,\n ...enumFields,\n ])\n setEnumFields([])\n tooltipEnumRef?.hide()\n }}\n disabled={\n (enumFields.length > 0 &&\n enumFields?.filter((item) => !item).length) ||\n (values?.schema?.enum.length > 0 &&\n values?.schema?.enum?.filter((item) => !item).length)\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n <Button\n className={styles.editDescBtn}\n id=\"EnumButton\"\n variant=\"link\"\n color=\"action\"\n disabled={\n values?.schema?.type?.toLowerCase() == 'array' ||\n values?.schema?.type?.toLowerCase() == 'object'\n }\n endIcon={\n <SVGLoader id=\"enumIcon\" src={PlusIcon} width=\"1.5rem\" height=\"1.5rem\" />\n }\n >\n Add\n </Button>\n </Tooltip>\n </div>\n </td>\n\n <td key={'parameter required'}>\n <div data-id=\"is required\" className=\"tableData\">\n {readOnly ? (\n <>{values.required ? 'True' : 'False'}</>\n ) : (\n <Switch\n checked={\n values && values.in && values.in.toLowerCase() == 'path'\n ? true\n : values.required\n }\n disabled={values && values.in && values.in.toLowerCase() == 'path'}\n onClick={() => {\n if (readOnly) {\n return\n }\n setFieldValue('required', !values.required)\n }}\n />\n )}\n </div>\n </td>\n\n <td key={'parameter schema desc'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <div className={styles.paramDescContainer}>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n value={text || values.description}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setText(value)\n }}\n disabled={readOnly}\n placeholder=\"Describe parameter...\"\n maxLength={120}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue('description', text?.trim())\n tooltipRef?.hide()\n }}\n disabled={text?.trim() === ''}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} Description\n </Button>\n </Tooltip>\n\n <div className={styles.paramDescContainer_separator}></div>\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\n }\n onClick={() => {\n resetForm()\n setText('')\n setIsFormOpen(undefined)\n }} // Correctly delete the new row\n />\n )}\n\n {!readOnly && (\n <Tooltip\n disabled={!!values.name.trim()}\n content={`Parameter name can't be empty `}\n >\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"success\"\n disabled={!values.name.trim()}\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\n onClick={() => {\n setText('')\n submitForm()\n }} // Save the new row when clicked\n />\n </Tooltip>\n )}\n </div>{' '}\n </div>\n </td>\n </tr>\n ) : (\n <>\n {!readOnly && (\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\n <td colSpan={6}>\n <Button\n variant=\"link\"\n color=\"primary\"\n onClick={() => {\n setIsFormOpen((prev) => (!prev ? (isRequest ? 'Req' : 'Res') : undefined))\n }}\n >\n + Add Parameter\n </Button>\n </td>\n </tr>\n )}\n </>\n )}\n </tbody>\n </table>\n </div>\n </div>\n )\n}\n\nexport default ParamterTable\n"],"names":["ParamterTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","isRequest","text","setText","useState","tooltipRef","setTooltipRef","tooltipEnumRef","setTooltipEnumRef","enumFields","setEnumFields","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","validateOnMount","initialValues","name","in","schema","type","enum","items","required","description","validationSchema","yup.object","shape","yup.string","default","trim","yup.array","optional","yup.boolean","when","is","then","oneOf","otherwise","onSubmit","_b","_a","_d","_c","undefined","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","length","colSpan","Input","placeholder","size","onChange","value","regex","ASCII","test","disabled","SelectGroupV2","capitalize","item","toLowerCase","options","list","errorMsg","isMultiple","withSearch","clearable","newVal","Object","assign","_f","_e","_g","_h","_k","_m","_l","Tooltip","_p","_o","_q","_r","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","styles","editDescTooltipContent","editDescTooltipContent_header","_s","_t","_v","_u","index","_values","onClick","prev","SVGLoader","src","PlusSquare","Button","editDescTooltipContent_btn","variant","hide","filter","_w","_y","_x","editDescBtn","color","_0","_z","_2","_1","endIcon","PlusIcon","height","_Fragment","Fragment","Switch","checked","paramDescContainer","TextArea","maxLength","EditIcon","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport './style.scss'\nimport { Button, Input, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\nimport Tooltip from '../Tooltip/Tooltip'\nimport SVGLoader from '../SVGLoader/SVGLoader'\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\nimport PlusIcon from '../../assets/icons/Plus.svg'\nimport PlusSquare from '../../assets/icons/PlusSquare.svg'\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\nimport { useFormik } from 'formik'\nimport * as yup from 'yup'\nimport { capitalize } from '../../helpers/methodAccordion.helper'\nimport regex from '../../constants/regex'\n\nconst ParamterTable = ({\n id,\n headCells,\n data,\n isFormOpen,\n setIsFormOpen,\n saveNewRow,\n readOnly,\n isRequest = true,\n}) => {\n const [text, setText] = useState('')\n const [tooltipRef, setTooltipRef] = useState(null)\n const [tooltipEnumRef, setTooltipEnumRef] = useState(null)\n const [enumFields, setEnumFields] = useState<string[]>([])\n const { values, errors, setFieldValue, isValid, submitForm, resetForm } = useFormik({\n validateOnMount: true,\n initialValues: {\n name: '',\n in: isRequest ? 'query' : 'header',\n schema: {\n type: 'string',\n enum: [],\n items: {\n type: 'string',\n },\n },\n required: true,\n description: '',\n },\n validationSchema: yup.object().shape({\n name: yup.string().default('').trim().required('Parameter name is required'),\n in: yup.string().required('Paramter type is required'),\n schema: yup.object().shape({\n type: yup.string().required('Parameter schema type is required'),\n enum: yup.array(yup.string()).optional(),\n items: yup.object().shape({\n type: yup.string().optional(),\n }),\n }),\n required: yup.boolean().when('in', {\n is: 'path',\n then: (schema) => schema.oneOf([true], 'Path parameters must be required.'),\n otherwise: (schema) => schema.optional(),\n }),\n description: yup.string().default('').trim().optional(),\n }),\n onSubmit: (values) => {\n if (values && !values?.schema?.items?.type) {\n delete values?.schema?.items?.type\n }\n saveNewRow(values)\n setIsFormOpen(undefined)\n setText('')\n resetForm()\n },\n })\n\n return (\n <div className=\"tableSectionContainer\">\n <div className=\"tableContainer\">\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\n <thead className=\"tableHead\">\n <tr>\n {headCells?.map((headCell) => (\n <th\n key={headCell.id}\n className={`tableHeadCell ${headCell.classes || ''}`}\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\n >\n <div\n className=\"headContainer\"\n data-id={`${\n typeof headCell.label === 'string'\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\n : 'UNKNOWN_LABEL'\n }_COLUMN`}\n >\n {headCell.label}\n </div>\n </th>\n ))}\n </tr>\n </thead>\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\n {data?.map((row, rowIndex) => {\n return (\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\n {headCells?.map((headCell) => {\n const cellContent = row[headCell.id] !== '_' && (\n <div\n data-id=\"TEXT_DESCRIPTION\"\n className=\"tableData\"\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {row[headCell.id]}\n </div>\n )\n\n return (\n <td\n key={headCell.id}\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {cellContent}\n </td>\n )\n })}\n </tr>\n )\n })}\n {data?.length === 0 && readOnly && (\n <tr className=\"fallbackTableRow\">\n <td className=\"fallbackContainer\" colSpan={headCells?.length}>\n <div className=\"fallbackTextContainer\">\n <span className=\"fallbackText\"> No Data Available</span>\n </div>\n </td>\n </tr>\n )}\n\n {isFormOpen && !readOnly ? (\n <tr className={`row`}>\n <td key={'Parameter name'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <Input\n placeholder=\"Parameter name\"\n size=\"large\"\n type=\"text\"\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value as string))\n setFieldValue('name', value)\n }}\n value={values.name}\n disabled={readOnly}\n />\n </div>\n </td>\n\n <td key={'parameter in'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <SelectGroupV2\n disabled={readOnly}\n value={{\n label: capitalize(values.in),\n value: values.in,\n }}\n onChange={(item) => {\n setFieldValue('in', item?.value?.toLowerCase())\n if (item?.value == 'in') {\n setFieldValue('required', true)\n }\n }} // Updates state on selection\n options={[\n {\n list: isRequest\n ? [\n { label: 'Query', value: 'query' },\n { label: 'Header', value: 'header' },\n { label: 'Path', value: 'path' },\n ]\n : [{ label: 'Header', value: 'header' }],\n },\n ]}\n errorMsg={!!errors.in && errors.in}\n isMultiple={false}\n withSearch={false}\n clearable={false}\n />{' '}\n </div>\n </td>\n\n <td key={'parameter schema type'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData select-inputs\">\n <SelectGroupV2\n disabled={readOnly}\n clearable={false}\n value={{\n label: capitalize(values?.schema?.type),\n value: values?.schema?.type,\n }}\n errorMsg={!!errors.schema && errors.schema}\n onChange={(item) => {\n setFieldValue('schema.type', item?.value?.toLowerCase())\n if (item.value?.toLowerCase() == 'array' && !values.schema.items) {\n setFieldValue('schema.items', {})\n }\n if (item.value?.toLowerCase() != 'array' && values.schema.items) {\n const newVal = { ...values.schema }\n delete newVal.items\n setFieldValue('schema', newVal)\n }\n }} // Updates state on selection\n options={[\n {\n list: [\n { label: 'String', value: 'string' },\n { label: 'Integer', value: 'integer' },\n { label: 'Boolean', value: 'boolean' },\n { label: 'Object', value: 'object' },\n { label: 'Array', value: 'array' },\n { label: 'Number', value: 'number' },\n ],\n },\n ]}\n isMultiple={false}\n withSearch={false}\n />{' '}\n {!!values?.schema?.type && values?.schema?.type.toLowerCase() === 'array' ? (\n <SelectGroupV2\n disabled={readOnly}\n clearable={false}\n value={{\n label: capitalize(values?.schema?.items?.type),\n value: values.schema?.items?.type,\n }}\n errorMsg={!!errors?.schema?.items?.type && errors?.schema?.items?.type}\n onChange={(item) => {\n setFieldValue('schema.items.type', item?.value?.toLowerCase())\n if (item.value?.toLowerCase() == 'array' && !values.schema.items?.items) {\n setFieldValue('schema.items.items', {})\n }\n if (item.value?.toLowerCase() != 'array' && values.schema.items?.items) {\n const newVal = { ...values.schema.items }\n delete newVal?.items\n setFieldValue('schema.items', newVal)\n }\n }} // Updates state on selection\n options={[\n {\n list: [\n { label: 'String', value: 'string' },\n { label: 'Integer', value: 'integer' },\n { label: 'Boolean', value: 'boolean' },\n { label: 'Object', value: 'object' },\n { label: 'Array', value: 'array' },\n { label: 'Number', value: 'number' },\n ],\n },\n ]}\n isMultiple={false}\n withSearch={false}\n />\n ) : (\n ''\n )}\n </div>\n </td>\n\n <td key={'parameter enum'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <Tooltip\n disabled={\n values?.schema?.type?.toLowerCase() == 'array' ||\n values?.schema?.type?.toLowerCase() == 'object'\n }\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipEnumRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Enum</p>\n {!!values?.schema?.enum &&\n !!values?.schema?.enum.length &&\n values?.schema?.enum?.map((item, index) => (\n <Input\n key={index}\n className={'methodDescForEnum'}\n required\n clearable={false}\n placeholder=\"Enter Enum value...\"\n value={item}\n onChange={(value) => {\n setFieldValue(`schema.enum[${index}]`, value)\n }}\n />\n ))}\n {enumFields &&\n enumFields?.map((item, index) => (\n <Input\n key={index}\n className={'methodDescForEnum'}\n required\n clearable={false}\n placeholder={`Enter Enum value...`}\n value={item}\n onChange={(value) => {\n let _values = [...enumFields]\n _values[index] = value\n setEnumFields(_values)\n }}\n />\n ))}\n <p\n className={'addEnumButton'}\n onClick={() => {\n setEnumFields((prev) => [...prev, ''])\n }}\n >\n <SVGLoader src={PlusSquare} />\n Add New Enum\n </p>\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n type=\"button\"\n onClick={() => {\n setFieldValue('schema.enum', [\n ...values?.schema?.enum,\n ...enumFields,\n ])\n setEnumFields([])\n tooltipEnumRef?.hide()\n }}\n disabled={\n (enumFields.length > 0 &&\n enumFields?.filter((item) => !item).length) ||\n (values?.schema?.enum.length > 0 &&\n values?.schema?.enum?.filter((item) => !item).length)\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n <Button\n className={styles.editDescBtn}\n id=\"EnumButton\"\n variant=\"link\"\n color=\"action\"\n disabled={\n values?.schema?.type?.toLowerCase() == 'array' ||\n values?.schema?.type?.toLowerCase() == 'object'\n }\n endIcon={\n <SVGLoader id=\"enumIcon\" src={PlusIcon} width=\"1.5rem\" height=\"1.5rem\" />\n }\n >\n Add\n </Button>\n </Tooltip>\n </div>\n </td>\n\n <td key={'parameter required'}>\n <div data-id=\"is required\" className=\"tableData\">\n {readOnly ? (\n <>{values.required ? 'True' : 'False'}</>\n ) : (\n <Switch\n checked={\n values && values.in && values.in.toLowerCase() == 'path'\n ? true\n : values.required\n }\n disabled={values && values.in && values.in.toLowerCase() == 'path'}\n onClick={() => {\n if (readOnly) {\n return\n }\n setFieldValue('required', !values.required)\n }}\n />\n )}\n </div>\n </td>\n\n <td key={'parameter schema desc'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <div className={styles.paramDescContainer}>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n value={text || values.description}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setText(value)\n }}\n disabled={readOnly}\n placeholder=\"Describe parameter...\"\n maxLength={120}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue('description', text?.trim())\n tooltipRef?.hide()\n }}\n disabled={text?.trim() === ''}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} Description\n </Button>\n </Tooltip>\n\n <div className={styles.paramDescContainer_separator}></div>\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\n }\n onClick={() => {\n resetForm()\n setText('')\n setIsFormOpen(undefined)\n }} // Correctly delete the new row\n />\n )}\n\n {!readOnly && (\n <Tooltip\n disabled={!!values.name.trim()}\n content={`Parameter name can't be empty `}\n >\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"success\"\n disabled={!values.name.trim()}\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\n onClick={() => {\n setText('')\n submitForm()\n }} // Save the new row when clicked\n />\n </Tooltip>\n )}\n </div>{' '}\n </div>\n </td>\n </tr>\n ) : (\n <>\n {!readOnly && (\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\n <td colSpan={6}>\n <Button\n variant=\"link\"\n color=\"primary\"\n onClick={() => {\n setIsFormOpen((prev) => (!prev ? (isRequest ? 'Req' : 'Res') : undefined))\n }}\n >\n + Add Parameter\n </Button>\n </td>\n </tr>\n )}\n </>\n )}\n </tbody>\n </table>\n </div>\n </div>\n )\n}\n\nexport default ParamterTable\n"],"names":["ParamterTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","isRequest","text","setText","useState","tooltipRef","setTooltipRef","tooltipEnumRef","setTooltipEnumRef","enumFields","setEnumFields","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","validateOnMount","initialValues","name","in","schema","type","enum","items","required","description","validationSchema","yup.object","shape","yup.string","default","trim","yup.array","optional","yup.boolean","when","is","then","oneOf","otherwise","onSubmit","_b","_a","_d","_c","undefined","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","length","colSpan","Input","placeholder","size","onChange","value","regex","ASCII","test","disabled","SelectGroupV2","capitalize","item","toLowerCase","options","list","errorMsg","isMultiple","withSearch","clearable","newVal","Object","assign","_f","_e","_g","_h","_k","_m","_l","Tooltip","_p","_o","_q","_r","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","styles","editDescTooltipContent","editDescTooltipContent_header","_s","_t","_v","_u","index","_values","onClick","prev","SVGLoader","src","PlusSquare","Button","editDescTooltipContent_btn","variant","hide","filter","_w","_y","_x","editDescBtn","color","_0","_z","_2","_1","endIcon","PlusIcon","height","_Fragment","Fragment","Switch","checked","paramDescContainer","TextArea","maxLength","EditIcon","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as i}from"react";import t from"../InfoForm/InfoForm.module.scss.js";import{d as s}from"../../../_virtual/index.js";import a from"../Tooltip/Tooltip.js";import n from"../SVGLoader/SVGLoader.js";import l from"../../assets/icons/DeleteIcon.svg.js";import r from"../../assets/icons/EditIcon.svg.js";import o from"../../assets/icons/AddRow.svg.js";import d from"../MethodAccordion/MethodAccordion.module.scss.js";import{useFormik as c}from"../../../node_modules/formik/dist/formik.esm.js";import{object as m,string as h}from"../../../node_modules/yup/index.esm.js";import p from"../../constants/regex.js";const x=({id:x,headCells:u,data:v,isFormOpen:j,setIsFormOpen:D,saveNewRow:g,readOnly:N})=>{var b,C,T,w,f,I,k,B,_;const[y,A]=i(""),[L,E]=i(""),[R,S]=i(""),[O,W]=i(null),[F,V]=i(null),{values:q,errors:P,setFieldValue:U,isValid:z,submitForm:H,resetForm:M,dirty:X}=c({validateOnMount:!0,initialValues:{name:"",description:"",externalDocs:{url:"",description:""}},validationSchema:m().shape({name:h().trim().required("Tag name is required"),description:h().optional(),externalDocs:m().shape({url:h().trim().matches(p.urlRegex,"Invalid URL").when("description",((e,i)=>(null==e?void 0:e.at(0))?i.required("URL is required when description is provided"):i.optional())),description:h().trim().optional()}).optional()}),onSubmit:e=>{g(e),A(""),M(),D(!1)},validateOnChange:!0});return e.jsx("div",{className:"tableSectionContainer",children:e.jsx("div",{className:"tableContainer",children:e.jsxs("table",{id:x||"",className:"table borderRadiusTop borderRadiusBottom",children:[e.jsx("thead",{className:"tableHead",children:e.jsx("tr",{children:null==u?void 0:u.map((i=>e.jsx("th",{className:`tableHeadCell ${i.classes||""}`,style:{width:i.width,minWidth:i.minWidth},children:e.jsx("div",{className:"headContainer","data-id":`${"string"==typeof i.label?i.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g,"_"):"UNKNOWN_LABEL"}_COLUMN`,children:i.label})},i.id)))})}),e.jsxs("tbody",{className:"tableBody","data-id":"TABLE_BODY",children:[null==v?void 0:v.map(((i,t)=>e.jsx("tr",{"data-i":t,className:"row",children:null==u?void 0:u.map((t=>{const s="_"!==i[t.id]&&e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",style:{width:t.width,minWidth:t.minWidth},children:i[t.id]});return e.jsx("td",{style:{width:t.width,minWidth:t.minWidth},children:s},t.id)}))},t))),j?e.jsxs("tr",{"data-i":"",className:"row",children:[e.jsx("td",{children:e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:e.jsx(s.Input,{placeholder:"Tag name",size:"large",type:"text",maxLength:25,onChange:e=>{!p.basic.test(e)&&U("name",e)},value:q.name,disabled:N})})},"tag name"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx("div",{className:d.paramDescContainer,children:e.jsx(a,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>W(e),onShow:()=>{A(q.description||"")},onHidden:()=>{A(q.description||"")},content:e.jsxs("div",{className:t.editDescTooltipContent,children:[e.jsx("p",{className:t.editDescTooltipContent_header,children:"Description"}),e.jsx(s.TextArea,{value:y||q.description,disabled:N,maxLength:25,placeholder:"Describe Tag...",onChange:e=>{(""===e||p.ASCII.test(e))&&A(e)}}),!N&&e.jsx(s.Button,{className:t.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{U("description",null==y?void 0:y.trim()),null==O||O.hide()},disabled:!(null===(b=y||q.description)||void 0===b?void 0:b.trim()),children:"Apply"})]}),children:e.jsxs(s.Button,{className:t.editDescBtn,style:{paddingLeft:0},variant:"link",color:"action",endIcon:e.jsx(n,{src:r,width:"1.5rem",height:"1.5rem"}),children:[N?"View ":"Add "," Description"]})})})," "]})},"tagDescRequired"),e.jsx("td",{children:e.jsx("div",{className:"tableData",children:e.jsxs("div",{className:t.paramDescContainer,children:[e.jsx(a,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>V(e),onShow:()=>{E(q.externalDocs.description||""),S(q.externalDocs.url||"")},onHidden:()=>{E(q.externalDocs.description||""),S(q.externalDocs.url||"")},content:e.jsxs("div",{className:t.editDescTooltipContent,children:[e.jsx("p",{className:t.editDescTooltipContent_header,children:"External Docs Description"}),e.jsx(s.TextArea,{placeholder:"Describe External Doc...",value:L||q.externalDocs.description,disabled:N,maxLength:25,onChange:e=>{(""===e||p.ASCII.test(e))&&E(e)}}),e.jsx("p",{className:t.editDescTooltipContent_header,children:"External Docs Link"}),e.jsx(s.TextArea,{placeholder:"External Docs Link...",restrictedCharsRegex:p.urlRegex,value:R||q.externalDocs.url,disabled:N,maxLength:200,onChange:e=>{(""===e||p.ASCII.test(e))&&S(e)}}),!N&&e.jsx(s.Button,{className:t.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{U("externalDocs",{description:L,url:R}),null==F||F.hide()},disabled:!(null===(C=R||q.externalDocs.url)||void 0===C?void 0:C.trim())||!p.urlRegex.test(R||q.externalDocs.url),children:"Apply"})]}),children:N?e.jsxs("a",{className:t.editDescBtn,variant:"link",color:"action",href:null===(T=q.externalDocs)||void 0===T?void 0:T.url,target:"_blank",children:[(null===(w=null==q?void 0:q.externalDocs)||void 0===w?void 0:w.description)?null===(I=null===(f=null==q?void 0:q.externalDocs)||void 0===f?void 0:f.description)||void 0===I?void 0:I.substring(0,12):"-",(null===(k=null==q?void 0:q.externalDocs)||void 0===k?void 0:k.description)&&(null===(_=null===(B=null==q?void 0:q.externalDocs)||void 0===B?void 0:B.description)||void 0===_?void 0:_.length)>12?"...":""]}):e.jsxs(s.Button,{className:t.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:r,width:"1.5rem",height:"1.5rem"}),children:[N?"View ":"Add "," External Docs Link"]})}),e.jsx("div",{className:t.paramDescContainer_separator}),!N&&e.jsx(s.Button,{className:t.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(n,{src:l,width:"1.125rem",height:"1.125rem"}),onClick:()=>{M(),A(""),D(!1)}}),!N&&e.jsx(s.Button,{className:t.deleteParamBtn,variant:"link",color:"success",disabled:!z||!X,endIcon:e.jsx(n,{src:o,width:"0.125rem",height:"0.125rem"}),onClick:()=>{A(""),H()}})]})})},"tagExternal")]},""):e.jsx(e.Fragment,{children:!N&&e.jsx("tr",{"data-i":"addNew",className:"row",children:e.jsx("td",{colSpan:5,children:e.jsx(s.Button,{variant:"link",color:"primary",onClick:()=>{D((e=>!e))},children:"+ Add Tag"})})},"addNew")})]})]})})})};export{x as default};
1
+ import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as i}from"react";import t from"../InfoForm/InfoForm.module.scss.js";import{d as s}from"../../../_virtual/index.js";import a from"../Tooltip/Tooltip.js";import n from"../SVGLoader/SVGLoader.js";import l from"../../assets/icons/DeleteIcon.svg.js";import r from"../../assets/icons/EditIcon.svg.js";import o from"../../assets/icons/AddRow.svg.js";import d from"../MethodAccordion/MethodAccordion.module.scss.js";import{useFormik as c}from"../../../node_modules/formik/dist/formik.esm.js";import{object as m,string as h}from"../../../node_modules/yup/index.esm.js";import p from"../../constants/regex.js";const x=({id:x,headCells:u,data:v,isFormOpen:j,setIsFormOpen:D,saveNewRow:g,readOnly:N})=>{var b,C,T,w,f,I,k,B,_;const[y,A]=i(""),[L,E]=i(""),[R,S]=i(""),[O,W]=i(null),[F,V]=i(null),{values:q,errors:P,setFieldValue:U,isValid:z,submitForm:H,resetForm:M,dirty:X}=c({validateOnMount:!0,initialValues:{name:"",description:"",externalDocs:{url:"",description:""}},validationSchema:m().shape({name:h().trim().required("Tag name is required"),description:h().optional(),externalDocs:m().shape({url:h().trim().matches(p.urlRegex,"Invalid URL").when("description",(e,i)=>(null==e?void 0:e.at(0))?i.required("URL is required when description is provided"):i.optional()),description:h().trim().optional()}).optional()}),onSubmit:e=>{g(e),A(""),M(),D(!1)},validateOnChange:!0});return e.jsx("div",{className:"tableSectionContainer",children:e.jsx("div",{className:"tableContainer",children:e.jsxs("table",{id:x||"",className:"table borderRadiusTop borderRadiusBottom",children:[e.jsx("thead",{className:"tableHead",children:e.jsx("tr",{children:null==u?void 0:u.map(i=>e.jsx("th",{className:`tableHeadCell ${i.classes||""}`,style:{width:i.width,minWidth:i.minWidth},children:e.jsx("div",{className:"headContainer","data-id":`${"string"==typeof i.label?i.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g,"_"):"UNKNOWN_LABEL"}_COLUMN`,children:i.label})},i.id))})}),e.jsxs("tbody",{className:"tableBody","data-id":"TABLE_BODY",children:[null==v?void 0:v.map((i,t)=>e.jsx("tr",{"data-i":t,className:"row",children:null==u?void 0:u.map(t=>{const s="_"!==i[t.id]&&e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",style:{width:t.width,minWidth:t.minWidth},children:i[t.id]});return e.jsx("td",{style:{width:t.width,minWidth:t.minWidth},children:s},t.id)})},t)),j?e.jsxs("tr",{"data-i":"",className:"row",children:[e.jsx("td",{children:e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:e.jsx(s.Input,{placeholder:"Tag name",size:"large",type:"text",maxLength:25,onChange:e=>{!p.basic.test(e)&&U("name",e)},value:q.name,disabled:N})})},"tag name"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx("div",{className:d.paramDescContainer,children:e.jsx(a,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>W(e),onShow:()=>{A(q.description||"")},onHidden:()=>{A(q.description||"")},content:e.jsxs("div",{className:t.editDescTooltipContent,children:[e.jsx("p",{className:t.editDescTooltipContent_header,children:"Description"}),e.jsx(s.TextArea,{value:y||q.description,disabled:N,maxLength:25,placeholder:"Describe Tag...",onChange:e=>{(""===e||p.ASCII.test(e))&&A(e)}}),!N&&e.jsx(s.Button,{className:t.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{U("description",null==y?void 0:y.trim()),null==O||O.hide()},disabled:!(null===(b=y||q.description)||void 0===b?void 0:b.trim()),children:"Apply"})]}),children:e.jsxs(s.Button,{className:t.editDescBtn,style:{paddingLeft:0},variant:"link",color:"action",endIcon:e.jsx(n,{src:r,width:"1.5rem",height:"1.5rem"}),children:[N?"View ":"Add "," Description"]})})})," "]})},"tagDescRequired"),e.jsx("td",{children:e.jsx("div",{className:"tableData",children:e.jsxs("div",{className:t.paramDescContainer,children:[e.jsx(a,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>V(e),onShow:()=>{E(q.externalDocs.description||""),S(q.externalDocs.url||"")},onHidden:()=>{E(q.externalDocs.description||""),S(q.externalDocs.url||"")},content:e.jsxs("div",{className:t.editDescTooltipContent,children:[e.jsx("p",{className:t.editDescTooltipContent_header,children:"External Docs Description"}),e.jsx(s.TextArea,{placeholder:"Describe External Doc...",value:L||q.externalDocs.description,disabled:N,maxLength:25,onChange:e=>{(""===e||p.ASCII.test(e))&&E(e)}}),e.jsx("p",{className:t.editDescTooltipContent_header,children:"External Docs Link"}),e.jsx(s.TextArea,{placeholder:"External Docs Link...",restrictedCharsRegex:p.urlRegex,value:R||q.externalDocs.url,disabled:N,maxLength:200,onChange:e=>{(""===e||p.ASCII.test(e))&&S(e)}}),!N&&e.jsx(s.Button,{className:t.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{U("externalDocs",{description:L,url:R}),null==F||F.hide()},disabled:!(null===(C=R||q.externalDocs.url)||void 0===C?void 0:C.trim())||!p.urlRegex.test(R||q.externalDocs.url),children:"Apply"})]}),children:N?e.jsxs("a",{className:t.editDescBtn,variant:"link",color:"action",href:null===(T=q.externalDocs)||void 0===T?void 0:T.url,target:"_blank",children:[(null===(w=null==q?void 0:q.externalDocs)||void 0===w?void 0:w.description)?null===(I=null===(f=null==q?void 0:q.externalDocs)||void 0===f?void 0:f.description)||void 0===I?void 0:I.substring(0,12):"-",(null===(k=null==q?void 0:q.externalDocs)||void 0===k?void 0:k.description)&&(null===(_=null===(B=null==q?void 0:q.externalDocs)||void 0===B?void 0:B.description)||void 0===_?void 0:_.length)>12?"...":""]}):e.jsxs(s.Button,{className:t.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:r,width:"1.5rem",height:"1.5rem"}),children:[N?"View ":"Add "," External Docs Link"]})}),e.jsx("div",{className:t.paramDescContainer_separator}),!N&&e.jsx(s.Button,{className:t.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(n,{src:l,width:"1.125rem",height:"1.125rem"}),onClick:()=>{M(),A(""),D(!1)}}),!N&&e.jsx(s.Button,{className:t.deleteParamBtn,variant:"link",color:"success",disabled:!z||!X,endIcon:e.jsx(n,{src:o,width:"0.125rem",height:"0.125rem"}),onClick:()=>{A(""),H()}})]})})},"tagExternal")]},""):e.jsx(e.Fragment,{children:!N&&e.jsx("tr",{"data-i":"addNew",className:"row",children:e.jsx("td",{colSpan:5,children:e.jsx(s.Button,{variant:"link",color:"primary",onClick:()=>{D(e=>!e)},children:"+ Add Tag"})})},"addNew")})]})]})})})};export{x as default};
2
2
  //# sourceMappingURL=tags-table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tags-table.js","sources":["../../../../src/components/table/tags-table.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\nimport './style.scss'\nimport _styles from '../InfoForm/InfoForm.module.scss'\nimport { Button, Input, TextArea } from 'digitinary-ui'\nimport Tooltip from '../Tooltip/Tooltip'\nimport SVGLoader from '../SVGLoader/SVGLoader'\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\nimport { useFormik } from 'formik'\nimport * as yup from 'yup'\nimport regex from '../../constants/regex'\n\nconst TagsTable = ({ id, headCells, data, isFormOpen, setIsFormOpen, saveNewRow, readOnly }) => {\n const [text, setText] = useState('')\n const [externalDesc, setExternalDesc] = useState('')\n const [externalUrl, setExternalUrl] = useState('')\n const [tooltipRef, setTooltipRef] = useState(null)\n const [externalTooltipRefs, setExternalTooltipRefs] = useState(null)\n const { values, errors, setFieldValue, isValid, submitForm, resetForm,dirty } = useFormik({\n validateOnMount: true,\n initialValues: {\n name: '',\n description: '',\n externalDocs: {\n url: '',\n description: '',\n },\n },\n validationSchema: yup.object().shape({\n name: yup.string().trim().required('Tag name is required'),\n description: yup.string().optional(),\n externalDocs: yup\n .object()\n .shape({\n url: yup\n .string()\n .trim()\n .matches(regex.urlRegex, 'Invalid URL')\n .when('description', (description, schema) => {\n return description?.at(0)\n ? schema.required('URL is required when description is provided')\n : schema.optional()\n }),\n description: yup.string().trim().optional(),\n })\n .optional(),\n }),\n onSubmit: (values) => {\n saveNewRow(values)\n setText('')\n resetForm()\n setIsFormOpen(false)\n },\n validateOnChange: true,\n })\n\n return (\n <div className=\"tableSectionContainer\">\n <div className=\"tableContainer\">\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\n <thead className=\"tableHead\">\n <tr>\n {headCells?.map((headCell) => (\n <th\n key={headCell.id}\n className={`tableHeadCell ${headCell.classes || ''}`}\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\n >\n <div\n className=\"headContainer\"\n data-id={`${\n typeof headCell.label === 'string'\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\n : 'UNKNOWN_LABEL'\n }_COLUMN`}\n >\n {headCell.label}\n </div>\n </th>\n ))}\n </tr>\n </thead>\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\n {data?.map((row, rowIndex) => {\n return (\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\n {headCells?.map((headCell) => {\n const cellContent = row[headCell.id] !== '_' && (\n <div\n data-id=\"TEXT_DESCRIPTION\"\n className=\"tableData\"\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {row[headCell.id]}\n </div>\n )\n\n return (\n <td\n key={headCell.id}\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {cellContent}\n </td>\n )\n })}\n </tr>\n )\n })}\n {isFormOpen ? (\n <tr key={''} data-i={''} className={`row`}>\n <td key={'tag name'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <Input\n placeholder=\"Tag name\"\n size=\"large\"\n type=\"text\"\n maxLength={25}\n onChange={(value) => {\n !regex.basic.test(value) && setFieldValue('name', value)\n }} // Pass the value directly\n value={values.name} // Bind value to the state\n disabled={readOnly}\n />\n </div>\n </td>\n\n <td key={'tagDescRequired'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <div className={styles.paramDescContainer}>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipRef(instance)}\n onShow={() => {\n setText(values.description || '') // Reset to current value when shown\n }}\n onHidden={() => {\n setText(values.description || '') // Reset on close\n }}\n content={\n <div className={_styles.editDescTooltipContent}>\n <p className={_styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n value={text || values.description}\n disabled={readOnly}\n maxLength={25}\n placeholder=\"Describe Tag...\"\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setText(value)\n }}\n />\n {!readOnly && (\n <Button\n className={_styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue('description', text?.trim())\n tooltipRef?.hide()\n }}\n disabled={!(text || values.description)?.trim()}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n <Button\n className={_styles.editDescBtn}\n style={{ paddingLeft: 0 }}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} Description\n </Button>\n </Tooltip>\n </div>{' '}\n </div>\n </td>\n <td key={'tagExternal'}>\n <div className=\"tableData\">\n <div className={_styles.paramDescContainer}>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setExternalTooltipRefs(instance)}\n onShow={() => {\n setExternalDesc(values.externalDocs.description || '')\n setExternalUrl(values.externalDocs.url || '')\n }}\n onHidden={() => {\n setExternalDesc(values.externalDocs.description || '')\n setExternalUrl(values.externalDocs.url || '')\n }}\n content={\n <div className={_styles.editDescTooltipContent}>\n <p className={_styles.editDescTooltipContent_header}>\n External Docs Description\n </p>\n <TextArea\n placeholder=\"Describe External Doc...\"\n value={externalDesc || values.externalDocs.description}\n disabled={readOnly}\n maxLength={25}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setExternalDesc(value)\n }}\n />\n <p className={_styles.editDescTooltipContent_header}>\n External Docs Link\n </p>\n <TextArea\n placeholder=\"External Docs Link...\"\n restrictedCharsRegex={regex.urlRegex}\n value={externalUrl || values.externalDocs.url}\n disabled={readOnly}\n maxLength={200}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setExternalUrl(value)\n }}\n />\n {!readOnly && (\n <Button\n className={_styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(`externalDocs`, {\n description: externalDesc,\n url: externalUrl,\n })\n\n externalTooltipRefs?.hide()\n }}\n disabled={\n !(externalUrl || values.externalDocs.url)?.trim() ||\n !regex.urlRegex.test(externalUrl || values.externalDocs.url)\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly ? (\n <a\n className={_styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n href={values.externalDocs?.url}\n target=\"_blank\"\n >\n {values?.externalDocs?.description\n ? values?.externalDocs?.description?.substring(0, 12)\n : '-'}\n {values?.externalDocs?.description &&\n values?.externalDocs?.description?.length > 12\n ? '...'\n : ''}\n </a>\n ) : (\n <Button\n className={_styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} External Docs Link\n </Button>\n )}\n </Tooltip>\n <div className={_styles.paramDescContainer_separator}></div>\n {!readOnly && (\n <Button\n className={_styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\n }\n onClick={() => {\n resetForm()\n setText('')\n setIsFormOpen(false)\n }} // Correctly delete the new row\n />\n )}\n\n {!readOnly && (\n <Button\n className={_styles.deleteParamBtn}\n variant=\"link\"\n color=\"success\"\n disabled={!isValid || !dirty}\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\n onClick={() => {\n setText('')\n submitForm()\n }} // Save the new row when clicked\n />\n )}\n </div>\n </div>\n </td>\n </tr>\n ) : (\n <>\n {!readOnly && (\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\n <td colSpan={5}>\n <Button\n variant=\"link\"\n color=\"primary\"\n onClick={() => {\n setIsFormOpen((prev) => !prev)\n }}\n >\n + Add Tag\n </Button>\n </td>\n </tr>\n )}\n </>\n )}\n </tbody>\n </table>\n </div>\n </div>\n )\n}\n\nexport default TagsTable\n"],"names":["TagsTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","text","setText","useState","externalDesc","setExternalDesc","externalUrl","setExternalUrl","tooltipRef","setTooltipRef","externalTooltipRefs","setExternalTooltipRefs","values","errors","setFieldValue","isValid","submitForm","resetForm","dirty","useFormik","validateOnMount","initialValues","name","description","externalDocs","url","validationSchema","yup.object","shape","yup.string","trim","required","optional","yup\n .object","yup\n .string","matches","regex","urlRegex","when","schema","at","onSubmit","validateOnChange","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","Input","placeholder","size","type","maxLength","onChange","value","basic","test","disabled","styles","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","onShow","onHidden","content","_styles","editDescTooltipContent","editDescTooltipContent_header","TextArea","ASCII","Button","editDescTooltipContent_btn","variant","onClick","hide","_a","editDescBtn","paddingLeft","color","endIcon","SVGLoader","src","EditIcon","height","restrictedCharsRegex","_b","href","_c","target","_d","_f","_e","substring","_g","_j","_h","length","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow","_Fragment","Fragment","colSpan","prev"],"mappings":"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"}
1
+ {"version":3,"file":"tags-table.js","sources":["../../../../src/components/table/tags-table.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\nimport './style.scss'\nimport _styles from '../InfoForm/InfoForm.module.scss'\nimport { Button, Input, TextArea } from 'digitinary-ui'\nimport Tooltip from '../Tooltip/Tooltip'\nimport SVGLoader from '../SVGLoader/SVGLoader'\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\nimport { useFormik } from 'formik'\nimport * as yup from 'yup'\nimport regex from '../../constants/regex'\n\nconst TagsTable = ({ id, headCells, data, isFormOpen, setIsFormOpen, saveNewRow, readOnly }) => {\n const [text, setText] = useState('')\n const [externalDesc, setExternalDesc] = useState('')\n const [externalUrl, setExternalUrl] = useState('')\n const [tooltipRef, setTooltipRef] = useState(null)\n const [externalTooltipRefs, setExternalTooltipRefs] = useState(null)\n const { values, errors, setFieldValue, isValid, submitForm, resetForm,dirty } = useFormik({\n validateOnMount: true,\n initialValues: {\n name: '',\n description: '',\n externalDocs: {\n url: '',\n description: '',\n },\n },\n validationSchema: yup.object().shape({\n name: yup.string().trim().required('Tag name is required'),\n description: yup.string().optional(),\n externalDocs: yup\n .object()\n .shape({\n url: yup\n .string()\n .trim()\n .matches(regex.urlRegex, 'Invalid URL')\n .when('description', (description, schema) => {\n return description?.at(0)\n ? schema.required('URL is required when description is provided')\n : schema.optional()\n }),\n description: yup.string().trim().optional(),\n })\n .optional(),\n }),\n onSubmit: (values) => {\n saveNewRow(values)\n setText('')\n resetForm()\n setIsFormOpen(false)\n },\n validateOnChange: true,\n })\n\n return (\n <div className=\"tableSectionContainer\">\n <div className=\"tableContainer\">\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\n <thead className=\"tableHead\">\n <tr>\n {headCells?.map((headCell) => (\n <th\n key={headCell.id}\n className={`tableHeadCell ${headCell.classes || ''}`}\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\n >\n <div\n className=\"headContainer\"\n data-id={`${\n typeof headCell.label === 'string'\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\n : 'UNKNOWN_LABEL'\n }_COLUMN`}\n >\n {headCell.label}\n </div>\n </th>\n ))}\n </tr>\n </thead>\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\n {data?.map((row, rowIndex) => {\n return (\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\n {headCells?.map((headCell) => {\n const cellContent = row[headCell.id] !== '_' && (\n <div\n data-id=\"TEXT_DESCRIPTION\"\n className=\"tableData\"\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {row[headCell.id]}\n </div>\n )\n\n return (\n <td\n key={headCell.id}\n style={{\n width: headCell.width,\n minWidth: headCell.minWidth,\n }}\n >\n {cellContent}\n </td>\n )\n })}\n </tr>\n )\n })}\n {isFormOpen ? (\n <tr key={''} data-i={''} className={`row`}>\n <td key={'tag name'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <Input\n placeholder=\"Tag name\"\n size=\"large\"\n type=\"text\"\n maxLength={25}\n onChange={(value) => {\n !regex.basic.test(value) && setFieldValue('name', value)\n }} // Pass the value directly\n value={values.name} // Bind value to the state\n disabled={readOnly}\n />\n </div>\n </td>\n\n <td key={'tagDescRequired'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <div className={styles.paramDescContainer}>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipRef(instance)}\n onShow={() => {\n setText(values.description || '') // Reset to current value when shown\n }}\n onHidden={() => {\n setText(values.description || '') // Reset on close\n }}\n content={\n <div className={_styles.editDescTooltipContent}>\n <p className={_styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n value={text || values.description}\n disabled={readOnly}\n maxLength={25}\n placeholder=\"Describe Tag...\"\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setText(value)\n }}\n />\n {!readOnly && (\n <Button\n className={_styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue('description', text?.trim())\n tooltipRef?.hide()\n }}\n disabled={!(text || values.description)?.trim()}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n <Button\n className={_styles.editDescBtn}\n style={{ paddingLeft: 0 }}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} Description\n </Button>\n </Tooltip>\n </div>{' '}\n </div>\n </td>\n <td key={'tagExternal'}>\n <div className=\"tableData\">\n <div className={_styles.paramDescContainer}>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setExternalTooltipRefs(instance)}\n onShow={() => {\n setExternalDesc(values.externalDocs.description || '')\n setExternalUrl(values.externalDocs.url || '')\n }}\n onHidden={() => {\n setExternalDesc(values.externalDocs.description || '')\n setExternalUrl(values.externalDocs.url || '')\n }}\n content={\n <div className={_styles.editDescTooltipContent}>\n <p className={_styles.editDescTooltipContent_header}>\n External Docs Description\n </p>\n <TextArea\n placeholder=\"Describe External Doc...\"\n value={externalDesc || values.externalDocs.description}\n disabled={readOnly}\n maxLength={25}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setExternalDesc(value)\n }}\n />\n <p className={_styles.editDescTooltipContent_header}>\n External Docs Link\n </p>\n <TextArea\n placeholder=\"External Docs Link...\"\n restrictedCharsRegex={regex.urlRegex}\n value={externalUrl || values.externalDocs.url}\n disabled={readOnly}\n maxLength={200}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setExternalUrl(value)\n }}\n />\n {!readOnly && (\n <Button\n className={_styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(`externalDocs`, {\n description: externalDesc,\n url: externalUrl,\n })\n\n externalTooltipRefs?.hide()\n }}\n disabled={\n !(externalUrl || values.externalDocs.url)?.trim() ||\n !regex.urlRegex.test(externalUrl || values.externalDocs.url)\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly ? (\n <a\n className={_styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n href={values.externalDocs?.url}\n target=\"_blank\"\n >\n {values?.externalDocs?.description\n ? values?.externalDocs?.description?.substring(0, 12)\n : '-'}\n {values?.externalDocs?.description &&\n values?.externalDocs?.description?.length > 12\n ? '...'\n : ''}\n </a>\n ) : (\n <Button\n className={_styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} External Docs Link\n </Button>\n )}\n </Tooltip>\n <div className={_styles.paramDescContainer_separator}></div>\n {!readOnly && (\n <Button\n className={_styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\n }\n onClick={() => {\n resetForm()\n setText('')\n setIsFormOpen(false)\n }} // Correctly delete the new row\n />\n )}\n\n {!readOnly && (\n <Button\n className={_styles.deleteParamBtn}\n variant=\"link\"\n color=\"success\"\n disabled={!isValid || !dirty}\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\n onClick={() => {\n setText('')\n submitForm()\n }} // Save the new row when clicked\n />\n )}\n </div>\n </div>\n </td>\n </tr>\n ) : (\n <>\n {!readOnly && (\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\n <td colSpan={5}>\n <Button\n variant=\"link\"\n color=\"primary\"\n onClick={() => {\n setIsFormOpen((prev) => !prev)\n }}\n >\n + Add Tag\n </Button>\n </td>\n </tr>\n )}\n </>\n )}\n </tbody>\n </table>\n </div>\n </div>\n )\n}\n\nexport default TagsTable\n"],"names":["TagsTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","text","setText","useState","externalDesc","setExternalDesc","externalUrl","setExternalUrl","tooltipRef","setTooltipRef","externalTooltipRefs","setExternalTooltipRefs","values","errors","setFieldValue","isValid","submitForm","resetForm","dirty","useFormik","validateOnMount","initialValues","name","description","externalDocs","url","validationSchema","yup.object","shape","yup.string","trim","required","optional","yup\n .object","yup\n .string","matches","regex","urlRegex","when","schema","at","onSubmit","validateOnChange","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","Input","placeholder","size","type","maxLength","onChange","value","basic","test","disabled","styles","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","onShow","onHidden","content","_styles","editDescTooltipContent","editDescTooltipContent_header","TextArea","ASCII","Button","editDescTooltipContent_btn","variant","onClick","hide","_a","editDescBtn","paddingLeft","color","endIcon","SVGLoader","src","EditIcon","height","restrictedCharsRegex","_b","href","_c","target","_d","_f","_e","substring","_g","_j","_h","length","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow","_Fragment","Fragment","colSpan","prev"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const l=[{label:"Post",value:"POST",color:"#10b981"},{label:"GET",value:"GET",color:"#3b82f6"},{label:"Delete",value:"DELETE",color:"#ef4444"},{label:"Put",value:"PUT",color:"#f59e0b"},{label:"PATCH",value:"PATCH",color:"#C0F4E8"},{label:"OPTIONS",value:"OPTIONS",color:"#6b7280"},{label:"HEAD",value:"HEAD",color:"#8b5cf6"},{label:"TRACE",value:"TRACE",color:"#ec4899"}];l.map((l=>({labelConfig:{color:l.color,text:l.label},value:l.value,data:l})));export{l as METHOD_OPTIONS};
1
+ const l=[{label:"Post",value:"POST",color:"#10b981"},{label:"GET",value:"GET",color:"#3b82f6"},{label:"Delete",value:"DELETE",color:"#ef4444"},{label:"Put",value:"PUT",color:"#f59e0b"},{label:"PATCH",value:"PATCH",color:"#C0F4E8"},{label:"OPTIONS",value:"OPTIONS",color:"#6b7280"},{label:"HEAD",value:"HEAD",color:"#8b5cf6"},{label:"TRACE",value:"TRACE",color:"#ec4899"}];l.map(l=>({labelConfig:{color:l.color,text:l.label},value:l.value,data:l}));export{l as METHOD_OPTIONS};
2
2
  //# sourceMappingURL=methods.constant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"methods.constant.js","sources":["../../../src/constants/methods.constant.ts"],"sourcesContent":["export type MethodOption = {\n label: string\n value: string\n color: string\n}\n\nexport const METHOD_OPTIONS: MethodOption[] = [\n { label: 'Post', value: 'POST', color: '#10b981' },\n { label: 'GET', value: 'GET', color: '#3b82f6' },\n { label: 'Delete', value: 'DELETE', color: '#ef4444' },\n { label: 'Put', value: 'PUT', color: '#f59e0b' },\n { label: 'PATCH', value: 'PATCH', color: '#C0F4E8' },\n { label: 'OPTIONS', value: 'OPTIONS', color: '#6b7280' },\n { label: 'HEAD', value: 'HEAD', color: '#8b5cf6' },\n { label: 'TRACE', value: 'TRACE', color: '#ec4899' },\n]\n\nexport const METHOD_OPTIONS_CONFIG = [\n {\n list: METHOD_OPTIONS.map((method) => ({\n labelConfig: { color: method.color, text: method.label },\n value: method.value,\n data: method,\n })),\n },\n]\n"],"names":["METHOD_OPTIONS","label","value","color","map","method","labelConfig","text","data"],"mappings":"AAMa,MAAAA,EAAiC,CAC5C,CAAEC,MAAO,OAAQC,MAAO,OAAQC,MAAO,WACvC,CAAEF,MAAO,MAAOC,MAAO,MAAOC,MAAO,WACrC,CAAEF,MAAO,SAAUC,MAAO,SAAUC,MAAO,WAC3C,CAAEF,MAAO,MAAOC,MAAO,MAAOC,MAAO,WACrC,CAAEF,MAAO,QAASC,MAAO,QAASC,MAAO,WACzC,CAAEF,MAAO,UAAWC,MAAO,UAAWC,MAAO,WAC7C,CAAEF,MAAO,OAAQC,MAAO,OAAQC,MAAO,WACvC,CAAEF,MAAO,QAASC,MAAO,QAASC,MAAO,YAKjCH,EAAeI,KAAKC,IAAY,CACpCC,YAAa,CAAEH,MAAOE,EAAOF,MAAOI,KAAMF,EAAOJ,OACjDC,MAAOG,EAAOH,MACdM,KAAMH"}
1
+ {"version":3,"file":"methods.constant.js","sources":["../../../src/constants/methods.constant.ts"],"sourcesContent":["export type MethodOption = {\n label: string\n value: string\n color: string\n}\n\nexport const METHOD_OPTIONS: MethodOption[] = [\n { label: 'Post', value: 'POST', color: '#10b981' },\n { label: 'GET', value: 'GET', color: '#3b82f6' },\n { label: 'Delete', value: 'DELETE', color: '#ef4444' },\n { label: 'Put', value: 'PUT', color: '#f59e0b' },\n { label: 'PATCH', value: 'PATCH', color: '#C0F4E8' },\n { label: 'OPTIONS', value: 'OPTIONS', color: '#6b7280' },\n { label: 'HEAD', value: 'HEAD', color: '#8b5cf6' },\n { label: 'TRACE', value: 'TRACE', color: '#ec4899' },\n]\n\nexport const METHOD_OPTIONS_CONFIG = [\n {\n list: METHOD_OPTIONS.map((method) => ({\n labelConfig: { color: method.color, text: method.label },\n value: method.value,\n data: method,\n })),\n },\n]\n"],"names":["METHOD_OPTIONS","label","value","color","map","method","labelConfig","text","data"],"mappings":"AAMa,MAAAA,EAAiC,CAC5C,CAAEC,MAAO,OAAQC,MAAO,OAAQC,MAAO,WACvC,CAAEF,MAAO,MAAOC,MAAO,MAAOC,MAAO,WACrC,CAAEF,MAAO,SAAUC,MAAO,SAAUC,MAAO,WAC3C,CAAEF,MAAO,MAAOC,MAAO,MAAOC,MAAO,WACrC,CAAEF,MAAO,QAASC,MAAO,QAASC,MAAO,WACzC,CAAEF,MAAO,UAAWC,MAAO,UAAWC,MAAO,WAC7C,CAAEF,MAAO,OAAQC,MAAO,OAAQC,MAAO,WACvC,CAAEF,MAAO,QAASC,MAAO,QAASC,MAAO,YAKjCH,EAAeI,IAAKC,IAAY,CACpCC,YAAa,CAAEH,MAAOE,EAAOF,MAAOI,KAAMF,EAAOJ,OACjDC,MAAOG,EAAOH,MACdM,KAAMH"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"../../_virtual/jsx-runtime.js";import{createContext as t,useState as i,useCallback as n,useMemo as r,useContext as o}from"react";var s;!function(e){e.OVERVIEW="overview",e.RESOURCE="resource",e.API_SECTION="apiSection",e.TAG_SECTION="tagSection",e.ENDPOINTS_SECTION="endpointsSection"}(s||(s={}));const c=t(null),d=()=>{const e=o(c);if(!e)throw new Error("useSectionToggle must be used within SectionToggleProvider");return e},a=({children:t})=>{const[o,s]=i({}),d=({apiId:e,type:t,index:i,id:n})=>{let r=`api_${e}_${t}`;return void 0!==i&&(r+=`_${i}`),void 0!==n&&(r+=`_${n}`),r},a=n(((e,t,i={})=>{const{resetOthers:n=!1,filterKeys:r=[]}=i,c=t.map((({type:t,index:i,id:n})=>d({apiId:e,type:t,index:i,id:n}))),a=Object.fromEntries(t.map((({type:t,index:i,setTo:n,id:r})=>{const s=d({apiId:e,type:t,index:i,id:r}),c=o[s];return[s,void 0!==n?n:!c]})));if(n&&r.length>0){const t=Object.fromEntries(Object.entries(o).filter((([t])=>t.includes(e)&&!r.some((e=>t.includes(e)))||c.includes(t)))),i=Object.assign(Object.assign({},t),a);s(i)}else s((e=>Object.assign(Object.assign({},e),a)))}),[o]),l=r((()=>({expandedSections:o,toggleSection:a,generateSectionKey:d})),[o,a]);return e.jsx(c.Provider,{value:l,children:t})};export{s as SectionEnum,a as SectionToggleProvider,d as useSectionToggle};
1
+ import{j as e}from"../../_virtual/jsx-runtime.js";import{createContext as t,useState as i,useCallback as n,useMemo as r,useContext as o}from"react";var s;!function(e){e.OVERVIEW="overview",e.RESOURCE="resource",e.API_SECTION="apiSection",e.TAG_SECTION="tagSection",e.ENDPOINTS_SECTION="endpointsSection"}(s||(s={}));const c=t(null),d=()=>{const e=o(c);if(!e)throw new Error("useSectionToggle must be used within SectionToggleProvider");return e},a=({children:t})=>{const[o,s]=i({}),d=({apiId:e,type:t,index:i,id:n})=>{let r=`api_${e}_${t}`;return void 0!==i&&(r+=`_${i}`),void 0!==n&&(r+=`_${n}`),r},a=n((e,t,i={})=>{const{resetOthers:n=!1,filterKeys:r=[]}=i,c=t.map(({type:t,index:i,id:n})=>d({apiId:e,type:t,index:i,id:n})),a=Object.fromEntries(t.map(({type:t,index:i,setTo:n,id:r})=>{const s=d({apiId:e,type:t,index:i,id:r}),c=o[s];return[s,void 0!==n?n:!c]}));if(n&&r.length>0){const t=Object.fromEntries(Object.entries(o).filter(([t])=>t.includes(e)&&!r.some(e=>t.includes(e))||c.includes(t))),i=Object.assign(Object.assign({},t),a);s(i)}else s(e=>Object.assign(Object.assign({},e),a))},[o]),l=r(()=>({expandedSections:o,toggleSection:a,generateSectionKey:d}),[o,a]);return e.jsx(c.Provider,{value:l,children:t})};export{s as SectionEnum,a as SectionToggleProvider,d as useSectionToggle};
2
2
  //# sourceMappingURL=SectionToggleContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SectionToggleContext.js","sources":["../../../src/context/SectionToggleContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useState, ReactNode, useMemo, useCallback } from 'react'\n\nexport enum SectionEnum {\n OVERVIEW = 'overview',\n RESOURCE = 'resource',\n API_SECTION = 'apiSection',\n TAG_SECTION = 'tagSection',\n ENDPOINTS_SECTION = 'endpointsSection',\n}\n\ntype SectionKey =\n | `api_${string}_${SectionEnum}`\n | `api_${string}_${SectionEnum}_${string | number}`\n | `api_${string}_${SectionEnum}_${string | number}_${string | number}`\ntype ExpandedSections = Record<SectionKey, boolean>\n\ninterface SectionToggleContextType {\n expandedSections: ExpandedSections\n toggleSection: (\n apiId: string,\n sections: ToggleSectionDescriptor[],\n options?: ToggleOptions\n ) => void\n generateSectionKey: ({ apiId, type, index, id }: GenerateSectionKeyParams) => SectionKey\n}\n\ninterface SectionToggleProviderProps {\n children: ReactNode\n}\n\nexport interface ToggleSectionDescriptor {\n type: SectionEnum\n index?: string | number\n setTo?: boolean\n id?: string\n}\n\nexport interface ToggleOptions {\n resetOthers?: boolean\n filterKeys?: SectionEnum[]\n}\n\ninterface GenerateSectionKeyParams {\n apiId: string\n type: SectionEnum\n index?: string | number\n id?: string | number\n}\n\nconst SectionToggleContext = createContext<SectionToggleContextType | null>(null)\n\nexport const useSectionToggle = () => {\n const context = useContext(SectionToggleContext)\n if (!context) {\n throw new Error('useSectionToggle must be used within SectionToggleProvider')\n }\n return context\n}\n\nexport const SectionToggleProvider = ({ children }: SectionToggleProviderProps) => {\n const [expandedSections, setExpandedSections] = useState<ExpandedSections>({})\n\n const generateSectionKey = ({ apiId, type, index, id }: GenerateSectionKeyParams): SectionKey => {\n let key = `api_${apiId}_${type}`\n\n if (index !== undefined) key += `_${index}`\n if (id !== undefined) key += `_${id}`\n\n return key as SectionKey\n }\n\n const toggleSection = useCallback(\n (apiId: string, sections: ToggleSectionDescriptor[], options: ToggleOptions = {}) => {\n const { resetOthers = false, filterKeys = [] } = options\n\n const sectionIds = sections.map(({ type, index, id }) =>\n generateSectionKey({ apiId, type, index, id })\n )\n\n const sectionToggles = Object.fromEntries(\n sections.map(({ type, index, setTo, id }) => {\n const sectionId = generateSectionKey({ apiId, type, index, id })\n const currentValue = expandedSections[sectionId]\n\n return [sectionId, setTo !== undefined ? setTo : !currentValue]\n })\n )\n\n if (resetOthers && filterKeys.length > 0) {\n const filtered = Object.fromEntries(\n Object.entries(expandedSections).filter(([key]) => {\n const shouldKeep = key.includes(apiId) && !filterKeys.some((k) => key.includes(k))\n return shouldKeep || sectionIds.includes(key as SectionKey)\n })\n )\n const newState = { ...filtered, ...sectionToggles }\n setExpandedSections(newState)\n } else {\n setExpandedSections((prev) => {\n const next = { ...prev, ...sectionToggles }\n\n return next\n })\n }\n },\n [expandedSections]\n )\n\n const contextValue = useMemo(\n () => ({\n expandedSections,\n toggleSection,\n generateSectionKey,\n }),\n [expandedSections, toggleSection]\n )\n\n return (\n <SectionToggleContext.Provider value={contextValue}>{children}</SectionToggleContext.Provider>\n )\n}\n"],"names":["SectionEnum","SectionToggleContext","createContext","useSectionToggle","context","useContext","Error","SectionToggleProvider","children","expandedSections","setExpandedSections","useState","generateSectionKey","apiId","type","index","id","key","undefined","toggleSection","useCallback","sections","options","resetOthers","filterKeys","sectionIds","map","sectionToggles","Object","fromEntries","setTo","sectionId","currentValue","length","filtered","entries","filter","includes","some","k","newState","assign","prev","contextValue","useMemo","_jsx","jsx","Provider","value"],"mappings":"wJAEYA,GAAZ,SAAYA,GACVA,EAAA,SAAA,WACAA,EAAA,SAAA,WACAA,EAAA,YAAA,aACAA,EAAA,YAAA,aACAA,EAAA,kBAAA,kBACD,CAND,CAAYA,IAAAA,EAMX,CAAA,IAyCD,MAAMC,EAAuBC,EAA+C,MAE/DC,EAAmB,KAC9B,MAAMC,EAAUC,EAAWJ,GAC3B,IAAKG,EACH,MAAM,IAAIE,MAAM,8DAElB,OAAOF,GAGIG,EAAwB,EAAGC,eACtC,MAAOC,EAAkBC,GAAuBC,EAA2B,CAAE,GAEvEC,EAAqB,EAAGC,QAAOC,OAAMC,QAAOC,SAChD,IAAIC,EAAM,OAAOJ,KAASC,IAK1B,YAHcI,IAAVH,IAAqBE,GAAO,IAAIF,UACzBG,IAAPF,IAAkBC,GAAO,IAAID,KAE1BC,GAGHE,EAAgBC,GACpB,CAACP,EAAeQ,EAAqCC,EAAyB,MAC5E,MAAMC,YAAEA,GAAc,EAAKC,WAAEA,EAAa,IAAOF,EAE3CG,EAAaJ,EAASK,KAAI,EAAGZ,OAAMC,QAAOC,QAC9CJ,EAAmB,CAAEC,QAAOC,OAAMC,QAAOC,SAGrCW,EAAiBC,OAAOC,YAC5BR,EAASK,KAAI,EAAGZ,OAAMC,QAAOe,QAAOd,SAClC,MAAMe,EAAYnB,EAAmB,CAAEC,QAAOC,OAAMC,QAAOC,OACrDgB,EAAevB,EAAiBsB,GAEtC,MAAO,CAACA,OAAqBb,IAAVY,EAAsBA,GAASE,OAItD,GAAIT,GAAeC,EAAWS,OAAS,EAAG,CACxC,MAAMC,EAAWN,OAAOC,YACtBD,OAAOO,QAAQ1B,GAAkB2B,QAAO,EAAEnB,KACrBA,EAAIoB,SAASxB,KAAWW,EAAWc,MAAMC,GAAMtB,EAAIoB,SAASE,MAC1Dd,EAAWY,SAASpB,MAGvCuB,EAAgBZ,OAAAa,OAAAb,OAAAa,OAAA,GAAAP,GAAaP,GACnCjB,EAAoB8B,EACrB,MACC9B,GAAqBgC,GACDd,OAAAa,OAAAb,OAAAa,OAAA,GAAAC,GAASf,OAMjC,CAAClB,IAGGkC,EAAeC,GACnB,KAAO,CACLnC,mBACAU,gBACAP,wBAEF,CAACH,EAAkBU,IAGrB,OACE0B,EAAAC,IAAC7C,EAAqB8C,SAAQ,CAACC,MAAOL,EAAYnC,SAAGA"}
1
+ {"version":3,"file":"SectionToggleContext.js","sources":["../../../src/context/SectionToggleContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useState, ReactNode, useMemo, useCallback } from 'react'\n\nexport enum SectionEnum {\n OVERVIEW = 'overview',\n RESOURCE = 'resource',\n API_SECTION = 'apiSection',\n TAG_SECTION = 'tagSection',\n ENDPOINTS_SECTION = 'endpointsSection',\n}\n\ntype SectionKey =\n | `api_${string}_${SectionEnum}`\n | `api_${string}_${SectionEnum}_${string | number}`\n | `api_${string}_${SectionEnum}_${string | number}_${string | number}`\ntype ExpandedSections = Record<SectionKey, boolean>\n\ninterface SectionToggleContextType {\n expandedSections: ExpandedSections\n toggleSection: (\n apiId: string,\n sections: ToggleSectionDescriptor[],\n options?: ToggleOptions\n ) => void\n generateSectionKey: ({ apiId, type, index, id }: GenerateSectionKeyParams) => SectionKey\n}\n\ninterface SectionToggleProviderProps {\n children: ReactNode\n}\n\nexport interface ToggleSectionDescriptor {\n type: SectionEnum\n index?: string | number\n setTo?: boolean\n id?: string\n}\n\nexport interface ToggleOptions {\n resetOthers?: boolean\n filterKeys?: SectionEnum[]\n}\n\ninterface GenerateSectionKeyParams {\n apiId: string\n type: SectionEnum\n index?: string | number\n id?: string | number\n}\n\nconst SectionToggleContext = createContext<SectionToggleContextType | null>(null)\n\nexport const useSectionToggle = () => {\n const context = useContext(SectionToggleContext)\n if (!context) {\n throw new Error('useSectionToggle must be used within SectionToggleProvider')\n }\n return context\n}\n\nexport const SectionToggleProvider = ({ children }: SectionToggleProviderProps) => {\n const [expandedSections, setExpandedSections] = useState<ExpandedSections>({})\n\n const generateSectionKey = ({ apiId, type, index, id }: GenerateSectionKeyParams): SectionKey => {\n let key = `api_${apiId}_${type}`\n\n if (index !== undefined) key += `_${index}`\n if (id !== undefined) key += `_${id}`\n\n return key as SectionKey\n }\n\n const toggleSection = useCallback(\n (apiId: string, sections: ToggleSectionDescriptor[], options: ToggleOptions = {}) => {\n const { resetOthers = false, filterKeys = [] } = options\n\n const sectionIds = sections.map(({ type, index, id }) =>\n generateSectionKey({ apiId, type, index, id })\n )\n\n const sectionToggles = Object.fromEntries(\n sections.map(({ type, index, setTo, id }) => {\n const sectionId = generateSectionKey({ apiId, type, index, id })\n const currentValue = expandedSections[sectionId]\n\n return [sectionId, setTo !== undefined ? setTo : !currentValue]\n })\n )\n\n if (resetOthers && filterKeys.length > 0) {\n const filtered = Object.fromEntries(\n Object.entries(expandedSections).filter(([key]) => {\n const shouldKeep = key.includes(apiId) && !filterKeys.some((k) => key.includes(k))\n return shouldKeep || sectionIds.includes(key as SectionKey)\n })\n )\n const newState = { ...filtered, ...sectionToggles }\n setExpandedSections(newState)\n } else {\n setExpandedSections((prev) => {\n const next = { ...prev, ...sectionToggles }\n\n return next\n })\n }\n },\n [expandedSections]\n )\n\n const contextValue = useMemo(\n () => ({\n expandedSections,\n toggleSection,\n generateSectionKey,\n }),\n [expandedSections, toggleSection]\n )\n\n return (\n <SectionToggleContext.Provider value={contextValue}>{children}</SectionToggleContext.Provider>\n )\n}\n"],"names":["SectionEnum","SectionToggleContext","createContext","useSectionToggle","context","useContext","Error","SectionToggleProvider","children","expandedSections","setExpandedSections","useState","generateSectionKey","apiId","type","index","id","key","undefined","toggleSection","useCallback","sections","options","resetOthers","filterKeys","sectionIds","map","sectionToggles","Object","fromEntries","setTo","sectionId","currentValue","length","filtered","entries","filter","includes","some","k","newState","assign","prev","contextValue","useMemo","_jsx","jsx","Provider","value"],"mappings":"wJAEYA,GAAZ,SAAYA,GACVA,EAAA,SAAA,WACAA,EAAA,SAAA,WACAA,EAAA,YAAA,aACAA,EAAA,YAAA,aACAA,EAAA,kBAAA,kBACD,CAND,CAAYA,IAAAA,EAMX,CAAA,IAyCD,MAAMC,EAAuBC,EAA+C,MAE/DC,EAAmB,KAC9B,MAAMC,EAAUC,EAAWJ,GAC3B,IAAKG,EACH,MAAM,IAAIE,MAAM,8DAElB,OAAOF,GAGIG,EAAwB,EAAGC,eACtC,MAAOC,EAAkBC,GAAuBC,EAA2B,CAAE,GAEvEC,EAAqB,EAAGC,QAAOC,OAAMC,QAAOC,SAChD,IAAIC,EAAM,OAAOJ,KAASC,IAK1B,YAHcI,IAAVH,IAAqBE,GAAO,IAAIF,UACzBG,IAAPF,IAAkBC,GAAO,IAAID,KAE1BC,GAGHE,EAAgBC,EACpB,CAACP,EAAeQ,EAAqCC,EAAyB,MAC5E,MAAMC,YAAEA,GAAc,EAAKC,WAAEA,EAAa,IAAOF,EAE3CG,EAAaJ,EAASK,IAAI,EAAGZ,OAAMC,QAAOC,QAC9CJ,EAAmB,CAAEC,QAAOC,OAAMC,QAAOC,QAGrCW,EAAiBC,OAAOC,YAC5BR,EAASK,IAAI,EAAGZ,OAAMC,QAAOe,QAAOd,SAClC,MAAMe,EAAYnB,EAAmB,CAAEC,QAAOC,OAAMC,QAAOC,OACrDgB,EAAevB,EAAiBsB,GAEtC,MAAO,CAACA,OAAqBb,IAAVY,EAAsBA,GAASE,MAItD,GAAIT,GAAeC,EAAWS,OAAS,EAAG,CACxC,MAAMC,EAAWN,OAAOC,YACtBD,OAAOO,QAAQ1B,GAAkB2B,OAAO,EAAEnB,KACrBA,EAAIoB,SAASxB,KAAWW,EAAWc,KAAMC,GAAMtB,EAAIoB,SAASE,KAC1Dd,EAAWY,SAASpB,KAGvCuB,EAAgBZ,OAAAa,OAAAb,OAAAa,OAAA,GAAAP,GAAaP,GACnCjB,EAAoB8B,EACrB,MACC9B,EAAqBgC,GACDd,OAAAa,OAAAb,OAAAa,OAAA,GAAAC,GAASf,KAMjC,CAAClB,IAGGkC,EAAeC,EACnB,KAAO,CACLnC,mBACAU,gBACAP,uBAEF,CAACH,EAAkBU,IAGrB,OACE0B,EAAAC,IAAC7C,EAAqB8C,SAAQ,CAACC,MAAOL,EAAYnC,SAAGA"}
@@ -1,2 +1,2 @@
1
- import{nanoid as s}from"../../node_modules/nanoid/index.js";const t=t=>{var e,a;const n="string"==typeof t.metaData.openApiJson?JSON.parse(t.metaData.openApiJson):t.metaData.openApiJson,o={default:[]},i=new Set((null===(e=null==n?void 0:n.tags)||void 0===e?void 0:e.map((({name:s})=>s)))||[]);for(const[t,e]of Object.entries(n.paths))for(const[n,c]of Object.entries(e)){const e=Object.assign(Object.assign({},c),{method:n,path:t}),r=(null!==(a=c.tags)&&void 0!==a?a:[]).filter((s=>i.has(s)));r.length>0?r.forEach((t=>{o[t]||(o[t]=[]),o[t].push(Object.assign(Object.assign({},e),{id:s(8)}))})):o.default.push(Object.assign(Object.assign({},e),{id:s(8)}))}return Object.assign(Object.assign({},n.info),{apiSpecId:t.apiSpecId,contextPath:t.contextPath,associatedProduct:t.associatedProduct,apiVersions:t.apiVersions,tags:o,servers:n.servers})};export{t as transformOpenApiToDocs};
1
+ import{nanoid as s}from"../../node_modules/nanoid/index.js";const t=t=>{var e,a;const n="string"==typeof t.metaData.openApiJson?JSON.parse(t.metaData.openApiJson):t.metaData.openApiJson,o={default:[]},i=new Set((null===(e=null==n?void 0:n.tags)||void 0===e?void 0:e.map(({name:s})=>s))||[]);for(const[t,e]of Object.entries(n.paths))for(const[n,c]of Object.entries(e)){const e=Object.assign(Object.assign({},c),{method:n,path:t}),r=(null!==(a=c.tags)&&void 0!==a?a:[]).filter(s=>i.has(s));r.length>0?r.forEach(t=>{o[t]||(o[t]=[]),o[t].push(Object.assign(Object.assign({},e),{id:s(8)}))}):o.default.push(Object.assign(Object.assign({},e),{id:s(8)}))}return Object.assign(Object.assign({},n.info),{apiSpecId:t.apiSpecId,contextPath:t.contextPath,associatedProduct:t.associatedProduct,apiVersions:t.apiVersions,tags:o,servers:n.servers})};export{t as transformOpenApiToDocs};
2
2
  //# sourceMappingURL=docs.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docs.helper.js","sources":["../../../src/helpers/docs.helper.ts"],"sourcesContent":["import { ApiSpecModel } from '@entities/index'\nimport { HTTPMethod, OpenAPIFile } from '@entities/openApi'\nimport { nanoid } from 'nanoid'\nimport { OverviewData, TagData } from 'src/layout/docsLayout'\n\nexport const transformOpenApiToDocs = (api: ApiSpecModel): OverviewData => {\n const parsedOpenApi: OpenAPIFile =\n typeof api.metaData.openApiJson === 'string'\n ? JSON.parse(api.metaData.openApiJson)\n : api.metaData.openApiJson\n\n const groupedPathsByTags: Record<string, TagData[]> = { default: [] }\n const validTags = new Set(parsedOpenApi?.tags?.map(({ name }) => name) || [])\n\n for (const [path, methods] of Object.entries(parsedOpenApi.paths)) {\n for (const [method, methodData] of Object.entries(methods)) {\n const entry = { ...methodData, method: method as HTTPMethod, path }\n const resourceTags = methodData.tags ?? []\n\n const matchedTags = resourceTags.filter((tag) => validTags.has(tag))\n\n if (matchedTags.length > 0) {\n matchedTags.forEach((tag) => {\n if (!groupedPathsByTags[tag]) groupedPathsByTags[tag] = []\n groupedPathsByTags[tag].push({ ...entry, id: nanoid(8) } as TagData)\n })\n } else {\n groupedPathsByTags.default.push({ ...entry, id: nanoid(8) } as TagData)\n }\n }\n }\n\n return {\n ...parsedOpenApi.info,\n apiSpecId: api.apiSpecId,\n contextPath: api.contextPath,\n associatedProduct: api.associatedProduct,\n apiVersions: api.apiVersions,\n tags: groupedPathsByTags,\n servers: parsedOpenApi.servers,\n }\n}\n"],"names":["transformOpenApiToDocs","api","parsedOpenApi","metaData","openApiJson","JSON","parse","groupedPathsByTags","default","validTags","Set","_a","tags","map","name","path","methods","Object","entries","paths","method","methodData","entry","assign","matchedTags","_b","filter","tag","has","length","forEach","push","id","nanoid","info","apiSpecId","contextPath","associatedProduct","apiVersions","servers"],"mappings":"4DAKa,MAAAA,EAA0BC,YACrC,MAAMC,EACgC,iBAA7BD,EAAIE,SAASC,YAChBC,KAAKC,MAAML,EAAIE,SAASC,aACxBH,EAAIE,SAASC,YAEbG,EAAgD,CAAEC,QAAS,IAC3DC,EAAY,IAAIC,KAAyB,QAArBC,EAAAT,aAAA,EAAAA,EAAeU,YAAM,IAAAD,OAAA,EAAAA,EAAAE,KAAI,EAAGC,UAAWA,MAAS,IAE1E,IAAK,MAAOC,EAAMC,KAAYC,OAAOC,QAAQhB,EAAciB,OACzD,IAAK,MAAOC,EAAQC,KAAeJ,OAAOC,QAAQF,GAAU,CAC1D,MAAMM,EAAaL,OAAAM,OAAAN,OAAAM,OAAA,CAAA,EAAAF,GAAY,CAAAD,OAAQA,EAAsBL,SAGvDS,GAF8B,QAAfC,EAAAJ,EAAWT,YAAI,IAAAa,EAAAA,EAAI,IAEPC,QAAQC,GAAQlB,EAAUmB,IAAID,KAE3DH,EAAYK,OAAS,EACvBL,EAAYM,SAASH,IACdpB,EAAmBoB,KAAMpB,EAAmBoB,GAAO,IACxDpB,EAAmBoB,GAAKI,KAAKd,OAAKM,OAAAN,OAAAM,OAAA,CAAA,EAAAD,GAAO,CAAAU,GAAIC,EAAO,SAGtD1B,EAAmBC,QAAQuB,KAAKd,+BAAKK,GAAK,CAAEU,GAAIC,EAAO,KAE1D,CAGH,OAAAhB,OAAAM,OAAAN,OAAAM,OAAA,CAAA,EACKrB,EAAcgC,MACjB,CAAAC,UAAWlC,EAAIkC,UACfC,YAAanC,EAAImC,YACjBC,kBAAmBpC,EAAIoC,kBACvBC,YAAarC,EAAIqC,YACjB1B,KAAML,EACNgC,QAASrC,EAAcqC"}
1
+ {"version":3,"file":"docs.helper.js","sources":["../../../src/helpers/docs.helper.ts"],"sourcesContent":["import { ApiSpecModel } from '@entities/index'\nimport { HTTPMethod, OpenAPIFile } from '@entities/openApi'\nimport { nanoid } from 'nanoid'\nimport { OverviewData, TagData } from 'src/layout/docsLayout'\n\nexport const transformOpenApiToDocs = (api: ApiSpecModel): OverviewData => {\n const parsedOpenApi: OpenAPIFile =\n typeof api.metaData.openApiJson === 'string'\n ? JSON.parse(api.metaData.openApiJson)\n : api.metaData.openApiJson\n\n const groupedPathsByTags: Record<string, TagData[]> = { default: [] }\n const validTags = new Set(parsedOpenApi?.tags?.map(({ name }) => name) || [])\n\n for (const [path, methods] of Object.entries(parsedOpenApi.paths)) {\n for (const [method, methodData] of Object.entries(methods)) {\n const entry = { ...methodData, method: method as HTTPMethod, path }\n const resourceTags = methodData.tags ?? []\n\n const matchedTags = resourceTags.filter((tag) => validTags.has(tag))\n\n if (matchedTags.length > 0) {\n matchedTags.forEach((tag) => {\n if (!groupedPathsByTags[tag]) groupedPathsByTags[tag] = []\n groupedPathsByTags[tag].push({ ...entry, id: nanoid(8) } as TagData)\n })\n } else {\n groupedPathsByTags.default.push({ ...entry, id: nanoid(8) } as TagData)\n }\n }\n }\n\n return {\n ...parsedOpenApi.info,\n apiSpecId: api.apiSpecId,\n contextPath: api.contextPath,\n associatedProduct: api.associatedProduct,\n apiVersions: api.apiVersions,\n tags: groupedPathsByTags,\n servers: parsedOpenApi.servers,\n }\n}\n"],"names":["transformOpenApiToDocs","api","parsedOpenApi","metaData","openApiJson","JSON","parse","groupedPathsByTags","default","validTags","Set","_a","tags","map","name","path","methods","Object","entries","paths","method","methodData","entry","assign","matchedTags","_b","filter","tag","has","length","forEach","push","id","nanoid","info","apiSpecId","contextPath","associatedProduct","apiVersions","servers"],"mappings":"4DAKa,MAAAA,EAA0BC,YACrC,MAAMC,EACgC,iBAA7BD,EAAIE,SAASC,YAChBC,KAAKC,MAAML,EAAIE,SAASC,aACxBH,EAAIE,SAASC,YAEbG,EAAgD,CAAEC,QAAS,IAC3DC,EAAY,IAAIC,KAAyB,QAArBC,EAAAT,aAAA,EAAAA,EAAeU,YAAM,IAAAD,OAAA,EAAAA,EAAAE,IAAI,EAAGC,UAAWA,KAAS,IAE1E,IAAK,MAAOC,EAAMC,KAAYC,OAAOC,QAAQhB,EAAciB,OACzD,IAAK,MAAOC,EAAQC,KAAeJ,OAAOC,QAAQF,GAAU,CAC1D,MAAMM,EAAaL,OAAAM,OAAAN,OAAAM,OAAA,CAAA,EAAAF,GAAY,CAAAD,OAAQA,EAAsBL,SAGvDS,GAF8B,QAAfC,EAAAJ,EAAWT,YAAI,IAAAa,EAAAA,EAAI,IAEPC,OAAQC,GAAQlB,EAAUmB,IAAID,IAE3DH,EAAYK,OAAS,EACvBL,EAAYM,QAASH,IACdpB,EAAmBoB,KAAMpB,EAAmBoB,GAAO,IACxDpB,EAAmBoB,GAAKI,KAAKd,OAAKM,OAAAN,OAAAM,OAAA,CAAA,EAAAD,GAAO,CAAAU,GAAIC,EAAO,QAGtD1B,EAAmBC,QAAQuB,KAAKd,+BAAKK,GAAK,CAAEU,GAAIC,EAAO,KAE1D,CAGH,OAAAhB,OAAAM,OAAAN,OAAAM,OAAA,CAAA,EACKrB,EAAcgC,MACjB,CAAAC,UAAWlC,EAAIkC,UACfC,YAAanC,EAAImC,YACjBC,kBAAmBpC,EAAIoC,kBACvBC,YAAarC,EAAIqC,YACjB1B,KAAML,EACNgC,QAASrC,EAAcqC"}
@@ -1,2 +1,2 @@
1
- import{__rest as e}from"../../node_modules/tslib/tslib.es6.js";const s=(e,s)=>e.replace(/^#\//,"").split("/").reduce(((e,s)=>null==e?void 0:e[s]),s),t=e=>{var s,t,o,i;if(e.components&&e.components.securitySchemes){const n=null===(s=Object.keys(e.components.securitySchemes))||void 0===s?void 0:s.at(0);n&&(e.components.securitySchemes[n].type=null===(i=null===(o=null===(t=null==e?void 0:e.components)||void 0===t?void 0:t.securitySchemes)||void 0===o?void 0:o[n])||void 0===i?void 0:i.type)}else e.components=Object.assign({securitySchemes:{Public:{type:"http",scheme:"public"}}},e.components||{});return e.tags||(e.tags=[]),Object.assign(Object.assign({},e),{paths:n(e)})},o=e=>{var s,t,o,n;const i=Object.assign(Object.assign({},e),{paths:l(e.paths)});if(i.components&&i.components.securitySchemes){const e=null===(s=Object.keys(i.components.securitySchemes))||void 0===s?void 0:s.at(0);e&&(i.components.securitySchemes[e].type.toLowerCase()=="APIKEY".toLowerCase()&&(i.components.securitySchemes[e].in=i.components.securitySchemes[e].in),i.components.securitySchemes[e].type=null===(n=null===(o=null===(t=null==i?void 0:i.components)||void 0===t?void 0:t.securitySchemes)||void 0===o?void 0:o[e])||void 0===n?void 0:n.type)}return i},n=t=>{const o=t.paths;return Object.entries(o).map((([o,n])=>({path:o,methods:Object.entries(n).map((([o,n])=>{var i,l,c,r,d,a;const u=Object.assign(Object.assign({},n),{type:o,tags:n.tags||[],summary:n.summary||"",responses:Object.entries(n.responses).map((([o,n])=>{var i,l,c,r,d;const a=Object.keys(n.content||{})[0];let u=null!==(i=null==n?void 0:n.headers)&&void 0!==i?i:{};Object.keys(u).map((e=>{var s,t,o,n;let i=u[e];(null==i?void 0:i.schema)&&(null===(s=null==i?void 0:i.schema)||void 0===s?void 0:s.type)&&"array"!=(null===(t=null==i?void 0:i.schema)||void 0===t?void 0:t.type)&&(null===(n=null===(o=u[e])||void 0===o?void 0:o.schema)||void 0===n||delete n.items)}));let v=null===(c=null===(l=n.content)||void 0===l?void 0:l[a])||void 0===c?void 0:c.schema;if(null==v?void 0:v.$ref)v=s(null==v?void 0:v.$ref,t);else if("array"==(null==v?void 0:v.type)&&(null===(r=null==v?void 0:v.items)||void 0===r?void 0:r.$ref)){const e=s(v.items.$ref,t);v=Object.assign(Object.assign({},v),{items:e})}if("array"!==(null==v?void 0:v.type)){v=e(v,["items"])}return{code:o,headers:u,content:{contentType:a,schema:Object.assign(Object.assign({},v),{properties:JSON.stringify((null==v?void 0:v.properties)||(null===(d=null==v?void 0:v.items)||void 0===d?void 0:d.properties))})}}}))});if(u.responses.find((e=>"200"==e.code))||u.responses.push({code:"200",content:{contentType:"application/json",schema:{}},headers:{}}),(null==n?void 0:n.parameters)?u.parameters=u.parameters.map((e=>{var s;const{schema:t}=e;return t&&(null==t?void 0:t.items)&&"array"!=(null===(s=null==t?void 0:t.type)||void 0===s?void 0:s.toLowerCase())&&delete t.items,Object.assign(Object.assign({},e),{schema:t})})):u.parameters=[],"get"!=o.toLowerCase()){const e=Object.keys((null===(i=null==n?void 0:n.requestBody)||void 0===i?void 0:i.content)||{})[0];let o=null===(r=null===(c=null===(l=null==n?void 0:n.requestBody)||void 0===l?void 0:l.content)||void 0===c?void 0:c[e])||void 0===r?void 0:r.schema;(null==o?void 0:o.$ref)?o=s(o.$ref,t):"array"===(null==o?void 0:o.type)&&(null===(d=o.items)||void 0===d?void 0:d.$ref)&&(o=Object.assign(Object.assign({},o),{items:s(o.items.$ref,t)}));const v=o?{content:{contentType:e,schema:Object.assign(Object.assign({},o),{properties:JSON.stringify((null==o?void 0:o.properties)||(null===(a=null==o?void 0:o.items)||void 0===a?void 0:a.properties))})}}:{content:{contentType:"application/json",schema:{properties:"{}",type:"object"}}};u.requestBody=v}return u}))})))},i=(e,s)=>{var t,o;if(!(null==e?void 0:e.schema)||!(null===(t=null==e?void 0:e.schema)||void 0===t?void 0:t.properties))return{};return JSON.parse(null===(o=null==e?void 0:e.schema)||void 0===o?void 0:o.properties)},l=s=>s.reduce(((s,{path:t,methods:o})=>(s[t]=o.reduce(((s,t)=>{var{type:o,tags:n,responses:l,summary:c,requestBody:r}=t,d=e(t,["type","tags","responses","summary","requestBody"]);let a=structuredClone(d||{});a&&a.parameters&&a.parameters.map((e=>{var s,t,o,n,i,l,c;return e&&(null===(s=null==e?void 0:e.schema)||void 0===s?void 0:s.items)&&"array"!=(null===(o=null===(t=null==e?void 0:e.schema)||void 0===t?void 0:t.type)||void 0===o?void 0:o.toLowerCase())&&(null===(n=null==e?void 0:e.schema)||void 0===n||delete n.items),e&&(null===(i=null==e?void 0:e.schema)||void 0===i?void 0:i.items)&&"array"==(null===(c=null===(l=null==e?void 0:e.schema)||void 0===l?void 0:l.items)||void 0===c?void 0:c.type)&&(e.schema.items.items={}),e}));const u=d.responses||{};s[o]=Object.assign(Object.assign({},a),{tags:n,summary:c,responses:l.reduce(((e,{code:s,content:t,headers:o})=>{var n,l,c,r,d;const a=!u[s],v=Object.keys(o||{}).length>0,m=Object.keys(i(t||{})||{}).length>0;if(a&&!v&&!m)return e;const p={};if(o)for(const[e,s]of Object.entries(o))(null==s?void 0:s.schema)&&(null===(n=null==s?void 0:s.schema)||void 0===n?void 0:n.items)&&"array"!=(null===(c=null===(l=null==s?void 0:s.schema)||void 0===l?void 0:l.type)||void 0===c?void 0:c.toLowerCase())&&(null===(r=null==s?void 0:s.schema)||void 0===r||delete r.items),p[e]={description:s.description||"",required:s.required||!1,schema:s.schema||{}};return e[s]={description:"Success",content:t.contentType?{[t.contentType]:{schema:Object.assign(Object.assign({},t.schema),{properties:i(t)})}}:(null===(d=u[s])||void 0===d?void 0:d.content)||{},headers:p},e}),{})});const v="get"!==o?JSON.parse(r.content.schema.properties):{};return"get"!==o&&(s[o].requestBody={content:{[r.content.contentType]:{schema:Object.assign(Object.assign({},r.content.schema),{properties:v})}}}),s}),{}),s)),{});export{t as transformOpenApiObject,o as transformOpenApiObjectToOrigin,l as transformPathsArrayToOrigin,n as transformPathsToArray};
1
+ import{__rest as e}from"../../node_modules/tslib/tslib.es6.js";const s=(e,s)=>e.replace(/^#\//,"").split("/").reduce((e,s)=>null==e?void 0:e[s],s),t=e=>{var s,t,o,i;if(e.components&&e.components.securitySchemes){const n=null===(s=Object.keys(e.components.securitySchemes))||void 0===s?void 0:s.at(0);n&&(e.components.securitySchemes[n].type=null===(i=null===(o=null===(t=null==e?void 0:e.components)||void 0===t?void 0:t.securitySchemes)||void 0===o?void 0:o[n])||void 0===i?void 0:i.type)}else e.components=Object.assign({securitySchemes:{Public:{type:"http",scheme:"public"}}},e.components||{});return e.tags||(e.tags=[]),Object.assign(Object.assign({},e),{paths:n(e)})},o=e=>{var s,t,o,n;const i=Object.assign(Object.assign({},e),{paths:l(e.paths)});if(i.components&&i.components.securitySchemes){const e=null===(s=Object.keys(i.components.securitySchemes))||void 0===s?void 0:s.at(0);e&&(i.components.securitySchemes[e].type.toLowerCase()=="APIKEY".toLowerCase()&&(i.components.securitySchemes[e].in=i.components.securitySchemes[e].in),i.components.securitySchemes[e].type=null===(n=null===(o=null===(t=null==i?void 0:i.components)||void 0===t?void 0:t.securitySchemes)||void 0===o?void 0:o[e])||void 0===n?void 0:n.type)}return i},n=t=>{const o=t.paths;return Object.entries(o).map(([o,n])=>({path:o,methods:Object.entries(n).map(([o,n])=>{var i,l,c,r,d,a;const u=Object.assign(Object.assign({},n),{type:o,tags:n.tags||[],summary:n.summary||"",responses:Object.entries(n.responses).map(([o,n])=>{var i,l,c,r,d;const a=Object.keys(n.content||{})[0];let u=null!==(i=null==n?void 0:n.headers)&&void 0!==i?i:{};Object.keys(u).map(e=>{var s,t,o,n;let i=u[e];(null==i?void 0:i.schema)&&(null===(s=null==i?void 0:i.schema)||void 0===s?void 0:s.type)&&"array"!=(null===(t=null==i?void 0:i.schema)||void 0===t?void 0:t.type)&&(null===(n=null===(o=u[e])||void 0===o?void 0:o.schema)||void 0===n||delete n.items)});let v=null===(c=null===(l=n.content)||void 0===l?void 0:l[a])||void 0===c?void 0:c.schema;if(null==v?void 0:v.$ref)v=s(null==v?void 0:v.$ref,t);else if("array"==(null==v?void 0:v.type)&&(null===(r=null==v?void 0:v.items)||void 0===r?void 0:r.$ref)){const e=s(v.items.$ref,t);v=Object.assign(Object.assign({},v),{items:e})}if("array"!==(null==v?void 0:v.type)){v=e(v,["items"])}return{code:o,headers:u,content:{contentType:a,schema:Object.assign(Object.assign({},v),{properties:JSON.stringify((null==v?void 0:v.properties)||(null===(d=null==v?void 0:v.items)||void 0===d?void 0:d.properties))})}}})});if(u.responses.find(e=>"200"==e.code)||u.responses.push({code:"200",content:{contentType:"application/json",schema:{}},headers:{}}),(null==n?void 0:n.parameters)?u.parameters=u.parameters.map(e=>{var s;const{schema:t}=e;return t&&(null==t?void 0:t.items)&&"array"!=(null===(s=null==t?void 0:t.type)||void 0===s?void 0:s.toLowerCase())&&delete t.items,Object.assign(Object.assign({},e),{schema:t})}):u.parameters=[],"get"!=o.toLowerCase()){const e=Object.keys((null===(i=null==n?void 0:n.requestBody)||void 0===i?void 0:i.content)||{})[0];let o=null===(r=null===(c=null===(l=null==n?void 0:n.requestBody)||void 0===l?void 0:l.content)||void 0===c?void 0:c[e])||void 0===r?void 0:r.schema;(null==o?void 0:o.$ref)?o=s(o.$ref,t):"array"===(null==o?void 0:o.type)&&(null===(d=o.items)||void 0===d?void 0:d.$ref)&&(o=Object.assign(Object.assign({},o),{items:s(o.items.$ref,t)}));const v=o?{content:{contentType:e,schema:Object.assign(Object.assign({},o),{properties:JSON.stringify((null==o?void 0:o.properties)||(null===(a=null==o?void 0:o.items)||void 0===a?void 0:a.properties))})}}:{content:{contentType:"application/json",schema:{properties:"{}",type:"object"}}};u.requestBody=v}return u})}))},i=(e,s)=>{var t,o;if(!(null==e?void 0:e.schema)||!(null===(t=null==e?void 0:e.schema)||void 0===t?void 0:t.properties))return{};return JSON.parse(null===(o=null==e?void 0:e.schema)||void 0===o?void 0:o.properties)},l=s=>s.reduce((s,{path:t,methods:o})=>(s[t]=o.reduce((s,t)=>{var{type:o,tags:n,responses:l,summary:c,requestBody:r}=t,d=e(t,["type","tags","responses","summary","requestBody"]);let a=structuredClone(d||{});a&&a.parameters&&a.parameters.map(e=>{var s,t,o,n,i,l,c;return e&&(null===(s=null==e?void 0:e.schema)||void 0===s?void 0:s.items)&&"array"!=(null===(o=null===(t=null==e?void 0:e.schema)||void 0===t?void 0:t.type)||void 0===o?void 0:o.toLowerCase())&&(null===(n=null==e?void 0:e.schema)||void 0===n||delete n.items),e&&(null===(i=null==e?void 0:e.schema)||void 0===i?void 0:i.items)&&"array"==(null===(c=null===(l=null==e?void 0:e.schema)||void 0===l?void 0:l.items)||void 0===c?void 0:c.type)&&(e.schema.items.items={}),e});const u=d.responses||{};s[o]=Object.assign(Object.assign({},a),{tags:n,summary:c,responses:l.reduce((e,{code:s,content:t,headers:o})=>{var n,l,c,r,d;const a=!u[s],v=Object.keys(o||{}).length>0,m=Object.keys(i(t||{})||{}).length>0;if(a&&!v&&!m)return e;const p={};if(o)for(const[e,s]of Object.entries(o))(null==s?void 0:s.schema)&&(null===(n=null==s?void 0:s.schema)||void 0===n?void 0:n.items)&&"array"!=(null===(c=null===(l=null==s?void 0:s.schema)||void 0===l?void 0:l.type)||void 0===c?void 0:c.toLowerCase())&&(null===(r=null==s?void 0:s.schema)||void 0===r||delete r.items),p[e]={description:s.description||"",required:s.required||!1,schema:s.schema||{}};return e[s]={description:"Success",content:t.contentType?{[t.contentType]:{schema:Object.assign(Object.assign({},t.schema),{properties:i(t)})}}:(null===(d=u[s])||void 0===d?void 0:d.content)||{},headers:p},e},{})});const v="get"!==o?JSON.parse(r.content.schema.properties):{};return"get"!==o&&(s[o].requestBody={content:{[r.content.contentType]:{schema:Object.assign(Object.assign({},r.content.schema),{properties:v})}}}),s},{}),s),{});export{t as transformOpenApiObject,o as transformOpenApiObjectToOrigin,l as transformPathsArrayToOrigin,n as transformPathsToArray};
2
2
  //# sourceMappingURL=layout.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.helper.js","sources":["../../../src/helpers/layout.helper.ts"],"sourcesContent":["import { TransformedPathsArray } from '@entities/layout.type'\nimport { OpenAPIFile, SecurityScheme } from '@entities/openApi'\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\n\nconst resolveRef = (ref: string, openApiJson: OpenAPIFile): Object => {\n const parts = ref.replace(/^#\\//, '').split('/')\n return parts.reduce((obj, key) => obj?.[key], openApiJson)\n}\n\nexport const transformOpenApiObject = (openApiJson: OpenAPIFile): TransformedOpenApi => {\n if (openApiJson.components && openApiJson.components.securitySchemes) {\n const authKey = Object.keys(openApiJson.components.securitySchemes)?.at(0)\n if (authKey) {\n openApiJson.components.securitySchemes[authKey].type = openApiJson?.components\n ?.securitySchemes?.[authKey]?.type as SecurityScheme['type']\n }\n } else {\n openApiJson.components = {\n securitySchemes: {\n Public: {\n type: 'http',\n scheme: 'public',\n },\n },\n ...(openApiJson.components || {}),\n }\n }\n\n if (!openApiJson.tags) {\n openApiJson.tags = []\n }\n\n return {\n ...openApiJson,\n paths: transformPathsToArray(openApiJson),\n } as TransformedOpenApi\n}\n\nexport const transformOpenApiObjectToOrigin = (values: TransformedOpenApi): OpenAPIFile => {\n const object = {\n ...values,\n paths: transformPathsArrayToOrigin(values.paths),\n }\n if (object.components && object.components.securitySchemes) {\n const authKey = Object.keys(object.components.securitySchemes)?.at(0)\n if (authKey) {\n if (object.components.securitySchemes[authKey].type.toLowerCase() == 'APIKEY'.toLowerCase()) {\n object.components.securitySchemes[authKey].in = object.components.securitySchemes[authKey]\n .in as SecurityScheme['in']\n }\n object.components.securitySchemes[authKey].type = object?.components?.securitySchemes?.[\n authKey\n ]?.type as SecurityScheme['type']\n }\n }\n return object\n}\n\nexport const transformPathsToArray = (openApiJson: OpenAPIFile): TransformedPathsArray | any => {\n const paths: OpenAPIFile['paths'] = openApiJson.paths\n const transformedPaths = Object.entries(paths).map(([path, methods]) => ({\n path,\n methods: Object.entries(methods).map(([method, methodProps]) => {\n const obj: any = {\n ...methodProps,\n type: method,\n tags: methodProps.tags || [],\n summary: methodProps.summary || '',\n responses: Object.entries(methodProps.responses).map(([code, codeProps]) => {\n const contentType = Object.keys(codeProps.content || {})[0]\n let headers = codeProps?.headers ?? {}\n\n // ? Fix headers with items property\n Object.keys(headers).map((header: string) => {\n let headerObj = headers[header]\n if (\n headerObj?.schema &&\n headerObj?.schema?.type &&\n headerObj?.schema?.type != 'array'\n ) {\n delete headers[header]?.schema?.items\n }\n })\n\n let schema = codeProps.content?.[contentType]?.schema\n if (schema?.$ref) {\n schema = resolveRef(schema?.$ref, openApiJson)\n } else if (schema?.type == 'array' && schema?.items?.$ref) {\n const resolvedItemSchema = resolveRef(schema.items.$ref, openApiJson)\n schema = {\n ...schema,\n items: resolvedItemSchema,\n }\n }\n // if the response content is not an array remove the (items) property\n if (schema?.type !== 'array') {\n const { items, ...schemaRest } = schema\n\n schema = schemaRest\n }\n\n return {\n code,\n headers,\n content: {\n contentType,\n schema: {\n ...schema,\n properties: JSON.stringify(schema?.properties || schema?.items?.properties),\n },\n },\n }\n }),\n }\n\n if (!obj.responses.find((item) => item.code == '200')) {\n obj.responses.push({\n code: '200',\n content: {\n contentType: 'application/json',\n schema: {},\n },\n headers: {},\n })\n }\n // Add parameters if it does not exist in the original JSON\n if (!methodProps?.parameters) {\n obj.parameters = []\n } else {\n obj.parameters = obj.parameters.map((param) => {\n const { schema } = param\n if (schema && schema?.items && schema?.type?.toLowerCase() != 'array') {\n delete schema.items\n }\n\n return { ...param, schema }\n })\n }\n\n // load response headers parameters\n\n if (method.toLowerCase() != 'get') {\n const contentType = Object.keys(methodProps?.requestBody?.content || {})[0]\n let reqSchema = methodProps?.requestBody?.content?.[contentType]?.schema\n\n if (reqSchema?.$ref) {\n reqSchema = resolveRef(reqSchema.$ref, openApiJson)\n } else if (reqSchema?.type === 'array' && reqSchema.items?.$ref) {\n reqSchema = {\n ...reqSchema,\n items: resolveRef(reqSchema.items.$ref, openApiJson),\n }\n }\n\n const requestBodyData = reqSchema\n ? {\n content: {\n contentType,\n schema: {\n ...reqSchema,\n properties: JSON.stringify(reqSchema?.properties || reqSchema?.items?.properties),\n },\n },\n }\n : {\n content: {\n contentType: 'application/json',\n schema: {\n properties: '{}',\n type: 'object',\n },\n },\n }\n\n obj['requestBody'] = requestBodyData\n }\n return obj\n }),\n }))\n\n return transformedPaths\n}\n\nconst validateBodyForResponse = (content, method) => {\n if (!(content?.schema as any) || !(content?.schema as any)?.properties) {\n return {}\n }\n let _content = JSON.parse((content?.schema as any)?.properties as string)\n\n return _content\n}\n\nexport const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenAPIFile['paths'] => {\n return paths.reduce((acc, { path, methods }) => {\n acc[path] = methods.reduce(\n (methodAcc, { type, tags, responses, summary, requestBody, ...rest }) => {\n // Initialize the method object\n // ? Validate (rest) [parameters]\n let copiedRest = structuredClone(rest || {})\n if (copiedRest && copiedRest.parameters) {\n copiedRest.parameters.map((param) => {\n if (param && param?.schema?.items && param?.schema?.type?.toLowerCase() != 'array') {\n delete param?.schema?.items\n }\n if (param && param?.schema?.items && param?.schema?.items?.type == 'array') {\n param.schema.items.items = {}\n }\n return param\n })\n }\n\n // Get the original responses from the rest object\n const originalResponses = rest.responses || {}\n\n methodAcc[type] = {\n ...copiedRest,\n tags,\n summary,\n responses: responses.reduce((respAcc, { code, content, headers }) => {\n // Skip if:\n // 1. This is a new code (not in original) AND\n // 2. Both headers and content are empty\n const isNewCode = !originalResponses[code]\n const hasHeaders = Object.keys(headers || {}).length > 0\n const hasContent =\n Object.keys(validateBodyForResponse(content || {}, type) || {}).length > 0\n\n if (isNewCode && !hasHeaders && !hasContent) {\n return respAcc\n }\n\n const formattedHeaders: Record<string, any> = {}\n if (headers) {\n for (const [key, value] of Object.entries(headers)) {\n if (\n value?.schema &&\n value?.schema?.items &&\n value?.schema?.type?.toLowerCase() != 'array'\n ) {\n delete value?.schema?.items\n }\n formattedHeaders[key] = {\n description: value.description || '',\n required: value.required || false,\n schema: value.schema || {},\n }\n }\n }\n respAcc[code] = {\n description: 'Success', // Assuming this is static from the original data\n content: content.contentType\n ? {\n [content.contentType]: {\n schema: {\n ...(content.schema as object),\n properties: validateBodyForResponse(content, type),\n },\n },\n }\n : originalResponses[code]?.content || {},\n headers: formattedHeaders,\n }\n return respAcc\n }, {} as Record<string, any>),\n }\n\n const parsedRequestBodyProps =\n type !== 'get' ? JSON.parse(requestBody.content.schema.properties) : {}\n // Add requestBody for non-GET methods\n if (type !== 'get') {\n methodAcc[type].requestBody = {\n content: {\n [requestBody.content.contentType]: {\n schema: {\n ...requestBody.content.schema,\n properties: parsedRequestBodyProps,\n },\n },\n },\n }\n }\n\n return methodAcc\n },\n {} as Record<string, any>\n )\n\n return acc\n }, {} as OpenAPIFile['paths'])\n}\n"],"names":["resolveRef","ref","openApiJson","replace","split","reduce","obj","key","transformOpenApiObject","components","securitySchemes","authKey","_a","Object","keys","at","type","_d","_c","_b","assign","Public","scheme","tags","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","summary","responses","code","codeProps","contentType","content","headers","header","headerObj","schema","items","$ref","resolvedItemSchema","__rest","properties","JSON","stringify","_e","find","item","push","parameters","param","requestBody","reqSchema","requestBodyData","_f","validateBodyForResponse","parse","acc","methodAcc","rest","copiedRest","structuredClone","_g","originalResponses","respAcc","isNewCode","hasHeaders","length","hasContent","formattedHeaders","value","description","required","parsedRequestBodyProps"],"mappings":"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"}
1
+ {"version":3,"file":"layout.helper.js","sources":["../../../src/helpers/layout.helper.ts"],"sourcesContent":["import { TransformedPathsArray } from '@entities/layout.type'\nimport { OpenAPIFile, SecurityScheme } from '@entities/openApi'\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\n\nconst resolveRef = (ref: string, openApiJson: OpenAPIFile): Object => {\n const parts = ref.replace(/^#\\//, '').split('/')\n return parts.reduce((obj, key) => obj?.[key], openApiJson)\n}\n\nexport const transformOpenApiObject = (openApiJson: OpenAPIFile): TransformedOpenApi => {\n if (openApiJson.components && openApiJson.components.securitySchemes) {\n const authKey = Object.keys(openApiJson.components.securitySchemes)?.at(0)\n if (authKey) {\n openApiJson.components.securitySchemes[authKey].type = openApiJson?.components\n ?.securitySchemes?.[authKey]?.type as SecurityScheme['type']\n }\n } else {\n openApiJson.components = {\n securitySchemes: {\n Public: {\n type: 'http',\n scheme: 'public',\n },\n },\n ...(openApiJson.components || {}),\n }\n }\n\n if (!openApiJson.tags) {\n openApiJson.tags = []\n }\n\n return {\n ...openApiJson,\n paths: transformPathsToArray(openApiJson),\n } as TransformedOpenApi\n}\n\nexport const transformOpenApiObjectToOrigin = (values: TransformedOpenApi): OpenAPIFile => {\n const object = {\n ...values,\n paths: transformPathsArrayToOrigin(values.paths),\n }\n if (object.components && object.components.securitySchemes) {\n const authKey = Object.keys(object.components.securitySchemes)?.at(0)\n if (authKey) {\n if (object.components.securitySchemes[authKey].type.toLowerCase() == 'APIKEY'.toLowerCase()) {\n object.components.securitySchemes[authKey].in = object.components.securitySchemes[authKey]\n .in as SecurityScheme['in']\n }\n object.components.securitySchemes[authKey].type = object?.components?.securitySchemes?.[\n authKey\n ]?.type as SecurityScheme['type']\n }\n }\n return object\n}\n\nexport const transformPathsToArray = (openApiJson: OpenAPIFile): TransformedPathsArray | any => {\n const paths: OpenAPIFile['paths'] = openApiJson.paths\n const transformedPaths = Object.entries(paths).map(([path, methods]) => ({\n path,\n methods: Object.entries(methods).map(([method, methodProps]) => {\n const obj: any = {\n ...methodProps,\n type: method,\n tags: methodProps.tags || [],\n summary: methodProps.summary || '',\n responses: Object.entries(methodProps.responses).map(([code, codeProps]) => {\n const contentType = Object.keys(codeProps.content || {})[0]\n let headers = codeProps?.headers ?? {}\n\n // ? Fix headers with items property\n Object.keys(headers).map((header: string) => {\n let headerObj = headers[header]\n if (\n headerObj?.schema &&\n headerObj?.schema?.type &&\n headerObj?.schema?.type != 'array'\n ) {\n delete headers[header]?.schema?.items\n }\n })\n\n let schema = codeProps.content?.[contentType]?.schema\n if (schema?.$ref) {\n schema = resolveRef(schema?.$ref, openApiJson)\n } else if (schema?.type == 'array' && schema?.items?.$ref) {\n const resolvedItemSchema = resolveRef(schema.items.$ref, openApiJson)\n schema = {\n ...schema,\n items: resolvedItemSchema,\n }\n }\n // if the response content is not an array remove the (items) property\n if (schema?.type !== 'array') {\n const { items, ...schemaRest } = schema\n\n schema = schemaRest\n }\n\n return {\n code,\n headers,\n content: {\n contentType,\n schema: {\n ...schema,\n properties: JSON.stringify(schema?.properties || schema?.items?.properties),\n },\n },\n }\n }),\n }\n\n if (!obj.responses.find((item) => item.code == '200')) {\n obj.responses.push({\n code: '200',\n content: {\n contentType: 'application/json',\n schema: {},\n },\n headers: {},\n })\n }\n // Add parameters if it does not exist in the original JSON\n if (!methodProps?.parameters) {\n obj.parameters = []\n } else {\n obj.parameters = obj.parameters.map((param) => {\n const { schema } = param\n if (schema && schema?.items && schema?.type?.toLowerCase() != 'array') {\n delete schema.items\n }\n\n return { ...param, schema }\n })\n }\n\n // load response headers parameters\n\n if (method.toLowerCase() != 'get') {\n const contentType = Object.keys(methodProps?.requestBody?.content || {})[0]\n let reqSchema = methodProps?.requestBody?.content?.[contentType]?.schema\n\n if (reqSchema?.$ref) {\n reqSchema = resolveRef(reqSchema.$ref, openApiJson)\n } else if (reqSchema?.type === 'array' && reqSchema.items?.$ref) {\n reqSchema = {\n ...reqSchema,\n items: resolveRef(reqSchema.items.$ref, openApiJson),\n }\n }\n\n const requestBodyData = reqSchema\n ? {\n content: {\n contentType,\n schema: {\n ...reqSchema,\n properties: JSON.stringify(reqSchema?.properties || reqSchema?.items?.properties),\n },\n },\n }\n : {\n content: {\n contentType: 'application/json',\n schema: {\n properties: '{}',\n type: 'object',\n },\n },\n }\n\n obj['requestBody'] = requestBodyData\n }\n return obj\n }),\n }))\n\n return transformedPaths\n}\n\nconst validateBodyForResponse = (content, method) => {\n if (!(content?.schema as any) || !(content?.schema as any)?.properties) {\n return {}\n }\n let _content = JSON.parse((content?.schema as any)?.properties as string)\n\n return _content\n}\n\nexport const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenAPIFile['paths'] => {\n return paths.reduce((acc, { path, methods }) => {\n acc[path] = methods.reduce(\n (methodAcc, { type, tags, responses, summary, requestBody, ...rest }) => {\n // Initialize the method object\n // ? Validate (rest) [parameters]\n let copiedRest = structuredClone(rest || {})\n if (copiedRest && copiedRest.parameters) {\n copiedRest.parameters.map((param) => {\n if (param && param?.schema?.items && param?.schema?.type?.toLowerCase() != 'array') {\n delete param?.schema?.items\n }\n if (param && param?.schema?.items && param?.schema?.items?.type == 'array') {\n param.schema.items.items = {}\n }\n return param\n })\n }\n\n // Get the original responses from the rest object\n const originalResponses = rest.responses || {}\n\n methodAcc[type] = {\n ...copiedRest,\n tags,\n summary,\n responses: responses.reduce((respAcc, { code, content, headers }) => {\n // Skip if:\n // 1. This is a new code (not in original) AND\n // 2. Both headers and content are empty\n const isNewCode = !originalResponses[code]\n const hasHeaders = Object.keys(headers || {}).length > 0\n const hasContent =\n Object.keys(validateBodyForResponse(content || {}, type) || {}).length > 0\n\n if (isNewCode && !hasHeaders && !hasContent) {\n return respAcc\n }\n\n const formattedHeaders: Record<string, any> = {}\n if (headers) {\n for (const [key, value] of Object.entries(headers)) {\n if (\n value?.schema &&\n value?.schema?.items &&\n value?.schema?.type?.toLowerCase() != 'array'\n ) {\n delete value?.schema?.items\n }\n formattedHeaders[key] = {\n description: value.description || '',\n required: value.required || false,\n schema: value.schema || {},\n }\n }\n }\n respAcc[code] = {\n description: 'Success', // Assuming this is static from the original data\n content: content.contentType\n ? {\n [content.contentType]: {\n schema: {\n ...(content.schema as object),\n properties: validateBodyForResponse(content, type),\n },\n },\n }\n : originalResponses[code]?.content || {},\n headers: formattedHeaders,\n }\n return respAcc\n }, {} as Record<string, any>),\n }\n\n const parsedRequestBodyProps =\n type !== 'get' ? JSON.parse(requestBody.content.schema.properties) : {}\n // Add requestBody for non-GET methods\n if (type !== 'get') {\n methodAcc[type].requestBody = {\n content: {\n [requestBody.content.contentType]: {\n schema: {\n ...requestBody.content.schema,\n properties: parsedRequestBodyProps,\n },\n },\n },\n }\n }\n\n return methodAcc\n },\n {} as Record<string, any>\n )\n\n return acc\n }, {} as OpenAPIFile['paths'])\n}\n"],"names":["resolveRef","ref","openApiJson","replace","split","reduce","obj","key","transformOpenApiObject","components","securitySchemes","authKey","_a","Object","keys","at","type","_d","_c","_b","assign","Public","scheme","tags","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","summary","responses","code","codeProps","contentType","content","headers","header","headerObj","schema","items","$ref","resolvedItemSchema","__rest","properties","JSON","stringify","_e","find","item","push","parameters","param","requestBody","reqSchema","requestBodyData","_f","validateBodyForResponse","parse","acc","methodAcc","rest","copiedRest","structuredClone","_g","originalResponses","respAcc","isNewCode","hasHeaders","length","hasContent","formattedHeaders","value","description","required","parsedRequestBodyProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"../../../../_virtual/jsx-runtime.js";import{useEffect as s,useState as o}from"react";import l from"../Codebox/Codebox.js";import{d as i}from"../../../../_virtual/index.js";import{handleStatusColor as d}from"../../../helpers/methodAccordion.helper.js";import t from"./style.module.scss.js";const n=({data:n})=>{var a,r;const c=Object.keys((null==n?void 0:n.responses)||{}).filter((e=>{var s,o,l;const i=n.responses[e],d=Object.keys((null==i?void 0:i.content)||{})[0];return null===(l=null===(o=null===(s=null==i?void 0:i.content)||void 0===s?void 0:s[d])||void 0===o?void 0:o.schema)||void 0===l?void 0:l.properties})),u=c.map((s=>({label:e.jsxs("div",{className:t.statusCodeOptionContainer,children:[e.jsx("div",{className:t.statusCodeOptionCircle,style:{backgroundColor:d(s)}}),e.jsx("span",{children:s})]}),value:String(s)})));s((()=>{m(c.includes("200")?u.find((e=>"200"===e.value)):u[0]||null)}),[n]);const[v,m]=o(u[4]),p=Object.entries(n.responses).map((([e,s])=>({code:e,data:s}))).find((e=>e.code===(null==v?void 0:v.value)));return e.jsxs("aside",{className:t.apiDocsAside,children:[e.jsx("h2",{className:t.apiDocsAside_title,children:n.summary}),e.jsxs("h4",{className:t.apiDocsAside_subtitle,children:[e.jsx("span",{className:t.apiDocsAside_subtitle_method,"data-method":n.method,children:n.method})," ",e.jsx("span",{children:n.path})]}),!["delete","get"].includes(n.method)&&(null===(a=null==n?void 0:n.requestBody)||void 0===a?void 0:a.content)&&e.jsxs("div",{className:t.codeboxSection,children:[e.jsx("div",{className:t.codeboxHeader,children:e.jsx("h6",{className:t.codeboxTitle,children:"Request"})}),e.jsx(l,{code:(()=>{var e,s,o,l,i;if(null===(e=null==n?void 0:n.requestBody)||void 0===e?void 0:e.content){const e=Object.keys(null===(s=null==n?void 0:n.requestBody)||void 0===s?void 0:s.content)[0];return JSON.stringify(null===(i=null===(l=null===(o=null==n?void 0:n.requestBody)||void 0===o?void 0:o.content[e])||void 0===l?void 0:l.schema)||void 0===i?void 0:i.properties,null,2)}return"{}"})()})]}),(null===(r=Object.keys((null==n?void 0:n.responses)||{}))||void 0===r?void 0:r.length)>0&&e.jsxs("div",{className:t.codeboxSection,children:[e.jsxs("div",{className:`${t.codeboxHeader}`,children:[e.jsx("h6",{className:t.codeboxTitle,children:"Response"}),e.jsx(i.SelectGroup,{size:"small",withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:u}],value:v,onChange:e=>{m(e)}})]}),e.jsx(l,{code:(()=>{var e,s,o,l;if(null==p?void 0:p.data){const i=Object.keys(null===(e=p.data)||void 0===e?void 0:e.content)[0];return JSON.stringify(null===(l=null===(o=null===(s=p.data)||void 0===s?void 0:s.content[i])||void 0===o?void 0:o.schema)||void 0===l?void 0:l.properties,null,2)}return"{}"})()})]})]})};export{n as default};
1
+ import{j as e}from"../../../../_virtual/jsx-runtime.js";import{useEffect as s,useState as o}from"react";import l from"../Codebox/Codebox.js";import{d as i}from"../../../../_virtual/index.js";import{handleStatusColor as d}from"../../../helpers/methodAccordion.helper.js";import t from"./style.module.scss.js";const n=({data:n})=>{var a,r;const c=Object.keys((null==n?void 0:n.responses)||{}).filter(e=>{var s,o,l;const i=n.responses[e],d=Object.keys((null==i?void 0:i.content)||{})[0];return null===(l=null===(o=null===(s=null==i?void 0:i.content)||void 0===s?void 0:s[d])||void 0===o?void 0:o.schema)||void 0===l?void 0:l.properties}),u=c.map(s=>({label:e.jsxs("div",{className:t.statusCodeOptionContainer,children:[e.jsx("div",{className:t.statusCodeOptionCircle,style:{backgroundColor:d(s)}}),e.jsx("span",{children:s})]}),value:String(s)}));s(()=>{m(c.includes("200")?u.find(e=>"200"===e.value):u[0]||null)},[n]);const[v,m]=o(u[4]),p=Object.entries(n.responses).map(([e,s])=>({code:e,data:s})).find(e=>e.code===(null==v?void 0:v.value));return e.jsxs("aside",{className:t.apiDocsAside,children:[e.jsx("h2",{className:t.apiDocsAside_title,children:n.summary}),e.jsxs("h4",{className:t.apiDocsAside_subtitle,children:[e.jsx("span",{className:t.apiDocsAside_subtitle_method,"data-method":n.method,children:n.method})," ",e.jsx("span",{children:n.path})]}),!["delete","get"].includes(n.method)&&(null===(a=null==n?void 0:n.requestBody)||void 0===a?void 0:a.content)&&e.jsxs("div",{className:t.codeboxSection,children:[e.jsx("div",{className:t.codeboxHeader,children:e.jsx("h6",{className:t.codeboxTitle,children:"Request"})}),e.jsx(l,{code:(()=>{var e,s,o,l,i;if(null===(e=null==n?void 0:n.requestBody)||void 0===e?void 0:e.content){const e=Object.keys(null===(s=null==n?void 0:n.requestBody)||void 0===s?void 0:s.content)[0];return JSON.stringify(null===(i=null===(l=null===(o=null==n?void 0:n.requestBody)||void 0===o?void 0:o.content[e])||void 0===l?void 0:l.schema)||void 0===i?void 0:i.properties,null,2)}return"{}"})()})]}),(null===(r=Object.keys((null==n?void 0:n.responses)||{}))||void 0===r?void 0:r.length)>0&&e.jsxs("div",{className:t.codeboxSection,children:[e.jsxs("div",{className:`${t.codeboxHeader}`,children:[e.jsx("h6",{className:t.codeboxTitle,children:"Response"}),e.jsx(i.SelectGroup,{size:"small",withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:u}],value:v,onChange:e=>{m(e)}})]}),e.jsx(l,{code:(()=>{var e,s,o,l;if(null==p?void 0:p.data){const i=Object.keys(null===(e=p.data)||void 0===e?void 0:e.content)[0];return JSON.stringify(null===(l=null===(o=null===(s=p.data)||void 0===s?void 0:s.content[i])||void 0===o?void 0:o.schema)||void 0===l?void 0:l.properties,null,2)}return"{}"})()})]})]})};export{n as default};
2
2
  //# sourceMappingURL=DocsAside.js.map