@digi-frontend/dgate-api-documentation 1.0.39 → 1.0.50

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 (430) hide show
  1. package/.editorconfig +12 -12
  2. package/.prettierignore +7 -7
  3. package/.prettierrc +15 -15
  4. package/dist/{a7568b270e175038.svg → 070dc6ecd197bc80.svg} +8 -8
  5. package/dist/16702d92fd6d1730.svg +6 -0
  6. package/dist/2b546d6e9fdf604a.svg +3 -0
  7. package/dist/2c3c6c2c3b835504.svg +5 -0
  8. package/dist/{43595976d1fdccbf.svg → 2e10bbdb265df50e.svg} +4 -4
  9. package/dist/55b5994c5781482b.svg +5 -0
  10. package/dist/60bef8083c55f46b.svg +6 -0
  11. package/dist/68c710e0583e19e6.svg +5 -0
  12. package/dist/731221b3f242672d.svg +4 -0
  13. package/dist/{b82c7612e73342f3.svg → 7f54eeb0bb2d1150.svg} +3 -3
  14. package/dist/8520b6792278d9df.svg +6 -0
  15. package/dist/{56dc416b683db280.svg → 8789eb84283ea95b.svg} +5 -5
  16. package/dist/9506ef7a26a74147.svg +12 -0
  17. package/dist/9b7aee27757b5036.svg +3 -0
  18. package/dist/{af16a554be8c4d69.svg → 9bdff13f8d8fa48a.svg} +3 -3
  19. package/dist/_virtual/core.js +2 -0
  20. package/dist/_virtual/core.js.map +1 -0
  21. package/dist/_virtual/core2.js +2 -0
  22. package/dist/_virtual/core2.js.map +1 -0
  23. package/dist/_virtual/format.js +2 -0
  24. package/dist/_virtual/format.js.map +1 -0
  25. package/dist/_virtual/index3.js +1 -1
  26. package/dist/_virtual/index6.js +1 -1
  27. package/dist/{64efc2716808c4a4.svg → bb8b87cace25e052.svg} +3 -3
  28. package/dist/cceb1e5dc06b0b85.svg +4 -0
  29. package/dist/d140a601c85bac25.svg +3 -0
  30. package/dist/{72db3b05a96dd600.svg → d32ce84bbd78babd.svg} +3 -3
  31. package/dist/{844eba3f2e42a9eb.svg → d501922060662842.svg} +3 -3
  32. package/dist/d6d0a98ec38e6b77.svg +3 -0
  33. package/dist/e04479ad425e7d58.svg +4 -0
  34. package/dist/f4452c3ebcf0d5da.svg +4 -0
  35. package/dist/f4a32992f02af522.svg +5 -0
  36. package/dist/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +2 -0
  37. package/dist/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js.map +1 -0
  38. package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +2 -0
  39. package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js.map +1 -0
  40. package/dist/node_modules/@babel/runtime/helpers/esm/defineProperty.js +2 -0
  41. package/dist/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +1 -0
  42. package/dist/node_modules/@babel/runtime/helpers/esm/extends.js +2 -0
  43. package/dist/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -0
  44. package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +2 -0
  45. package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArray.js.map +1 -0
  46. package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +2 -0
  47. package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js.map +1 -0
  48. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +2 -0
  49. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js.map +1 -0
  50. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +2 -0
  51. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -0
  52. package/dist/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +2 -0
  53. package/dist/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js.map +1 -0
  54. package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +2 -0
  55. package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
  56. package/dist/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +2 -0
  57. package/dist/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
  58. package/dist/node_modules/@babel/runtime/helpers/esm/typeof.js +2 -0
  59. package/dist/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
  60. package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +2 -0
  61. package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js.map +1 -0
  62. package/dist/node_modules/dom-serializer/lib/foreignNames.js +2 -0
  63. package/dist/node_modules/dom-serializer/lib/foreignNames.js.map +1 -0
  64. package/dist/node_modules/dom-serializer/lib/index.js +2 -0
  65. package/dist/node_modules/dom-serializer/lib/index.js.map +1 -0
  66. package/dist/node_modules/dom-serializer/node_modules/entities/lib/decode.js +2 -0
  67. package/dist/node_modules/dom-serializer/node_modules/entities/lib/decode.js.map +1 -0
  68. package/dist/node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.js +2 -0
  69. package/dist/node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.js.map +1 -0
  70. package/dist/node_modules/dom-serializer/node_modules/entities/lib/encode.js +2 -0
  71. package/dist/node_modules/dom-serializer/node_modules/entities/lib/encode.js.map +1 -0
  72. package/dist/node_modules/dom-serializer/node_modules/entities/lib/escape.js +2 -0
  73. package/dist/node_modules/dom-serializer/node_modules/entities/lib/escape.js.map +1 -0
  74. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-html.js +2 -0
  75. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-html.js.map +1 -0
  76. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-xml.js +2 -0
  77. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-xml.js.map +1 -0
  78. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/encode-html.js +2 -0
  79. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/encode-html.js.map +1 -0
  80. package/dist/node_modules/dom-serializer/node_modules/entities/lib/index.js +2 -0
  81. package/dist/node_modules/dom-serializer/node_modules/entities/lib/index.js.map +1 -0
  82. package/dist/node_modules/domhandler/lib/index.js +2 -0
  83. package/dist/node_modules/domhandler/lib/index.js.map +1 -0
  84. package/dist/node_modules/domhandler/lib/node.js +2 -0
  85. package/dist/node_modules/domhandler/lib/node.js.map +1 -0
  86. package/dist/node_modules/domutils/lib/feeds.js +2 -0
  87. package/dist/node_modules/domutils/lib/feeds.js.map +1 -0
  88. package/dist/node_modules/domutils/lib/helpers.js +2 -0
  89. package/dist/node_modules/domutils/lib/helpers.js.map +1 -0
  90. package/dist/node_modules/domutils/lib/index.js +2 -0
  91. package/dist/node_modules/domutils/lib/index.js.map +1 -0
  92. package/dist/node_modules/domutils/lib/legacy.js +2 -0
  93. package/dist/node_modules/domutils/lib/legacy.js.map +1 -0
  94. package/dist/node_modules/domutils/lib/manipulation.js +2 -0
  95. package/dist/node_modules/domutils/lib/manipulation.js.map +1 -0
  96. package/dist/node_modules/domutils/lib/querying.js +2 -0
  97. package/dist/node_modules/domutils/lib/querying.js.map +1 -0
  98. package/dist/node_modules/domutils/lib/stringify.js +2 -0
  99. package/dist/node_modules/domutils/lib/stringify.js.map +1 -0
  100. package/dist/node_modules/domutils/lib/traversal.js +2 -0
  101. package/dist/node_modules/domutils/lib/traversal.js.map +1 -0
  102. package/dist/node_modules/entities/dist/commonjs/decode-codepoint.js +2 -0
  103. package/dist/node_modules/entities/dist/commonjs/decode-codepoint.js.map +1 -0
  104. package/dist/node_modules/entities/dist/commonjs/decode.js +2 -0
  105. package/dist/node_modules/entities/dist/commonjs/decode.js.map +1 -0
  106. package/dist/node_modules/entities/dist/commonjs/generated/decode-data-html.js +2 -0
  107. package/dist/node_modules/entities/dist/commonjs/generated/decode-data-html.js.map +1 -0
  108. package/dist/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +2 -0
  109. package/dist/node_modules/entities/dist/commonjs/generated/decode-data-xml.js.map +1 -0
  110. package/dist/node_modules/fault/index.js +2 -0
  111. package/dist/node_modules/fault/index.js.map +1 -0
  112. package/dist/node_modules/format/format.js +2 -0
  113. package/dist/node_modules/format/format.js.map +1 -0
  114. package/dist/node_modules/highlight.js/lib/core.js +2 -0
  115. package/dist/node_modules/highlight.js/lib/core.js.map +1 -0
  116. package/dist/node_modules/html-dom-parser/lib/server/html-to-dom.js +1 -1
  117. package/dist/node_modules/html-dom-parser/lib/server/html-to-dom.js.map +1 -1
  118. package/dist/node_modules/html-react-parser/lib/index.js +1 -1
  119. package/dist/node_modules/html-react-parser/lib/index.js.map +1 -1
  120. package/dist/node_modules/htmlparser2/dist/commonjs/Parser.js +1 -1
  121. package/dist/node_modules/htmlparser2/dist/commonjs/Parser.js.map +1 -1
  122. package/dist/node_modules/htmlparser2/dist/commonjs/Tokenizer.js +1 -1
  123. package/dist/node_modules/htmlparser2/dist/commonjs/Tokenizer.js.map +1 -1
  124. package/dist/node_modules/htmlparser2/dist/commonjs/index.js +1 -1
  125. package/dist/node_modules/htmlparser2/dist/commonjs/index.js.map +1 -1
  126. package/dist/node_modules/lowlight/lib/core.js +2 -0
  127. package/dist/node_modules/lowlight/lib/core.js.map +1 -0
  128. package/dist/node_modules/nanoid/index.js +2 -0
  129. package/dist/node_modules/nanoid/index.js.map +1 -0
  130. package/dist/node_modules/nanoid/url-alphabet/index.js +2 -0
  131. package/dist/node_modules/nanoid/url-alphabet/index.js.map +1 -0
  132. package/dist/node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js +2 -0
  133. package/dist/node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js.map +1 -0
  134. package/dist/node_modules/react-syntax-highlighter/dist/esm/create-element.js +2 -0
  135. package/dist/node_modules/react-syntax-highlighter/dist/esm/create-element.js.map +1 -0
  136. package/dist/node_modules/react-syntax-highlighter/dist/esm/highlight.js +2 -0
  137. package/dist/node_modules/react-syntax-highlighter/dist/esm/highlight.js.map +1 -0
  138. package/dist/node_modules/react-syntax-highlighter/dist/esm/light.js +2 -0
  139. package/dist/node_modules/react-syntax-highlighter/dist/esm/light.js.map +1 -0
  140. package/dist/node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-dark.js +2 -0
  141. package/dist/node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-dark.js.map +1 -0
  142. package/dist/node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-light.js +2 -0
  143. package/dist/node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-light.js.map +1 -0
  144. package/dist/node_modules/style-to-object/cjs/index.js +1 -1
  145. package/dist/node_modules/yup/index.esm.js +1 -1
  146. package/dist/src/assets/icons/AddRow.svg.js +1 -1
  147. package/dist/src/assets/icons/AddRow.svg.js.map +1 -1
  148. package/dist/src/assets/icons/ApiIcon.svg.js +2 -0
  149. package/dist/src/assets/icons/ApiIcon.svg.js.map +1 -0
  150. package/dist/src/assets/icons/ArrowBack.svg.js +2 -0
  151. package/dist/src/assets/icons/ArrowBack.svg.js.map +1 -0
  152. package/dist/src/assets/icons/BookIcon.svg.js +2 -0
  153. package/dist/src/assets/icons/BookIcon.svg.js.map +1 -0
  154. package/dist/src/assets/icons/CopySticker.svg.js +2 -0
  155. package/dist/src/assets/icons/CopySticker.svg.js.map +1 -0
  156. package/dist/src/assets/icons/DeleteIcon.svg.js +1 -1
  157. package/dist/src/assets/icons/DeleteIcon.svg.js.map +1 -1
  158. package/dist/src/assets/icons/DeleteOutlinedIcon.svg.js +2 -0
  159. package/dist/src/assets/icons/DeleteOutlinedIcon.svg.js.map +1 -0
  160. package/dist/src/assets/icons/DownArrow.svg.js +1 -1
  161. package/dist/src/assets/icons/DownArrow.svg.js.map +1 -1
  162. package/dist/src/assets/icons/EditIcon.svg.js +1 -1
  163. package/dist/src/assets/icons/EditIcon.svg.js.map +1 -1
  164. package/dist/src/assets/icons/FilterIcon.svg.js +2 -0
  165. package/dist/src/assets/icons/FilterIcon.svg.js.map +1 -0
  166. package/dist/src/assets/icons/Plus.svg.js +2 -0
  167. package/dist/src/assets/icons/Plus.svg.js.map +1 -0
  168. package/dist/src/assets/icons/PlusSquare.svg.js +2 -0
  169. package/dist/src/assets/icons/PlusSquare.svg.js.map +1 -0
  170. package/dist/src/assets/icons/RequestOption.svg.js +2 -0
  171. package/dist/src/assets/icons/RequestOption.svg.js.map +1 -0
  172. package/dist/src/assets/icons/UpArrow.svg.js +1 -1
  173. package/dist/src/assets/icons/UpArrow.svg.js.map +1 -1
  174. package/dist/src/assets/icons/arrowDownGray.svg.js +2 -0
  175. package/dist/src/assets/icons/arrowDownGray.svg.js.map +1 -0
  176. package/dist/src/assets/icons/arrowRightGray.svg.js +2 -0
  177. package/dist/src/assets/icons/arrowRightGray.svg.js.map +1 -0
  178. package/dist/src/assets/icons/close-circle.svg.js +2 -0
  179. package/dist/src/assets/icons/close-circle.svg.js.map +1 -0
  180. package/dist/src/assets/icons/copy.svg.js +2 -0
  181. package/dist/src/assets/icons/copy.svg.js.map +1 -0
  182. package/dist/src/assets/icons/document.svg.js +2 -0
  183. package/dist/src/assets/icons/document.svg.js.map +1 -0
  184. package/dist/src/assets/icons/eye.svg.js +2 -0
  185. package/dist/src/assets/icons/eye.svg.js.map +1 -0
  186. package/dist/src/assets/icons/infoIcon.svg.js +2 -0
  187. package/dist/src/assets/icons/infoIcon.svg.js.map +1 -0
  188. package/dist/src/assets/icons/searchIcon.svg.js +2 -0
  189. package/dist/src/assets/icons/searchIcon.svg.js.map +1 -0
  190. package/dist/src/components/InfoForm/InfoForm.js +1 -1
  191. package/dist/src/components/InfoForm/InfoForm.js.map +1 -1
  192. package/dist/src/components/JsonInput/JsonInput.js.map +1 -1
  193. package/dist/src/components/LivePreview/LivePreview.js +1 -1
  194. package/dist/src/components/LivePreview/LivePreview.js.map +1 -1
  195. package/dist/src/components/MethodAccordion/MethodAccordion.js +1 -1
  196. package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
  197. package/dist/src/components/SVGLoader/SVGLoader.js.map +1 -1
  198. package/dist/src/components/SectionHead/SectionHead.js.map +1 -1
  199. package/dist/src/components/SimpleLabelValue/SimpleLabelValue.js.map +1 -1
  200. package/dist/src/components/Tooltip/Tooltip.js.map +1 -1
  201. package/dist/src/components/dialog/index.js +1 -1
  202. package/dist/src/components/dialog/index.js.map +1 -1
  203. package/dist/src/components/table/table.js +1 -1
  204. package/dist/src/components/table/table.js.map +1 -1
  205. package/dist/src/components/table/tags-table.js.map +1 -1
  206. package/dist/src/constants/index.js +1 -1
  207. package/dist/src/constants/index.js.map +1 -1
  208. package/dist/src/constants/methods.constant.js +2 -0
  209. package/dist/src/constants/methods.constant.js.map +1 -0
  210. package/dist/src/constants/regex.js.map +1 -1
  211. package/dist/src/helpers/docs.helper.js +2 -0
  212. package/dist/src/helpers/docs.helper.js.map +1 -0
  213. package/dist/src/helpers/layout.helper.js +1 -1
  214. package/dist/src/helpers/layout.helper.js.map +1 -1
  215. package/dist/src/helpers/methodAccordion.helper.js.map +1 -1
  216. package/dist/src/index.js +1 -1
  217. package/dist/src/layout/docsComponents/Codebox/Codebox.js +2 -0
  218. package/dist/src/layout/docsComponents/Codebox/Codebox.js.map +1 -0
  219. package/dist/src/layout/docsComponents/Codebox/style.module.scss.js +2 -0
  220. package/dist/src/layout/docsComponents/Codebox/style.module.scss.js.map +1 -0
  221. package/dist/src/layout/docsComponents/DocsAside/DocsAside.js +2 -0
  222. package/dist/src/layout/docsComponents/DocsAside/DocsAside.js.map +1 -0
  223. package/dist/src/layout/docsComponents/DocsAside/style.module.scss.js +2 -0
  224. package/dist/src/layout/docsComponents/DocsAside/style.module.scss.js.map +1 -0
  225. package/dist/src/layout/docsComponents/DocsContent/DocsContent.js +2 -0
  226. package/dist/src/layout/docsComponents/DocsContent/DocsContent.js.map +1 -0
  227. package/dist/src/layout/docsComponents/DocsContent/EndpointPage/index.js +2 -0
  228. package/dist/src/layout/docsComponents/DocsContent/EndpointPage/index.js.map +1 -0
  229. package/dist/src/layout/docsComponents/DocsContent/TagPage/index.js +2 -0
  230. package/dist/src/layout/docsComponents/DocsContent/TagPage/index.js.map +1 -0
  231. package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js +2 -0
  232. package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js.map +1 -0
  233. package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.module.scss.js +2 -0
  234. package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.module.scss.js.map +1 -0
  235. package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js +2 -0
  236. package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js.map +1 -0
  237. package/dist/src/layout/docsComponents/index.js +2 -0
  238. package/dist/src/layout/docsComponents/index.js.map +1 -0
  239. package/dist/src/layout/docsLayout.js +2 -0
  240. package/dist/src/layout/docsLayout.js.map +1 -0
  241. package/dist/src/layout/layout.js +1 -1
  242. package/dist/src/layout/layout.js.map +1 -1
  243. package/dist/src/layout/layout.module.css.js +1 -1
  244. package/dist/src/utils/index.js +2 -0
  245. package/dist/src/utils/index.js.map +1 -0
  246. package/dist/src/validator/form.scheme.js +1 -1
  247. package/dist/src/validator/form.scheme.js.map +1 -1
  248. package/dist/styles.css +1646 -348
  249. package/dist/types/assets/icons/index.d.ts +17 -1
  250. package/dist/types/components/LivePreview/LivePreview.d.ts +1 -0
  251. package/dist/types/components/MethodAccordion/MethodAccordion.d.ts +2 -1
  252. package/dist/types/components/dialog/dialog.d.ts +4 -0
  253. package/dist/types/components/dialog/index.d.ts +1 -1
  254. package/dist/types/components/table/table.d.ts +2 -1
  255. package/dist/types/constants/methods.constant.d.ts +16 -0
  256. package/dist/types/helpers/docs.helper.d.ts +3 -0
  257. package/dist/types/index.d.ts +1 -0
  258. package/dist/types/layout/docsComponents/Codebox/Codebox.d.ts +4 -0
  259. package/dist/types/layout/docsComponents/DocsAside/DocsAside.d.ts +5 -0
  260. package/dist/types/layout/docsComponents/DocsContent/DocsContent.d.ts +6 -0
  261. package/dist/types/layout/docsComponents/DocsContent/EndpointPage/index.d.ts +4 -0
  262. package/dist/types/layout/docsComponents/DocsContent/TagPage/index.d.ts +4 -0
  263. package/dist/types/layout/docsComponents/DocsHeader/DocsHeader.d.ts +3 -0
  264. package/dist/types/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.d.ts +9 -0
  265. package/dist/types/layout/docsComponents/index.d.ts +17 -0
  266. package/dist/types/layout/docsLayout.d.ts +33 -0
  267. package/dist/types/layout/layout.d.ts +2 -1
  268. package/dist/types/types/layout.type.d.ts +1 -0
  269. package/dist/types/types/openApi.d.ts +4 -4
  270. package/dist/types/utils/index.d.ts +1 -0
  271. package/dist/types/validator/form.scheme.d.ts +10 -2
  272. package/package.json +46 -43
  273. package/rollup.config.js +37 -35
  274. package/src/assets/icons/AddRow.svg +3 -3
  275. package/src/assets/icons/ApiIcon.svg +12 -0
  276. package/src/assets/icons/ArrowBack.svg +3 -0
  277. package/src/assets/icons/BookIcon.svg +6 -0
  278. package/src/assets/icons/CheckMarkSquare.svg +5 -5
  279. package/src/assets/icons/CloseIcon.svg +4 -4
  280. package/src/assets/icons/CopySticker.svg +6 -0
  281. package/src/assets/icons/DeleteIcon.svg +3 -3
  282. package/src/assets/icons/DeleteOutlinedIcon.svg +8 -0
  283. package/src/assets/icons/DownArrow.svg +3 -3
  284. package/src/assets/icons/EditIcon.svg +3 -3
  285. package/src/assets/icons/FilterIcon.svg +4 -0
  286. package/src/assets/icons/Plus.svg +5 -0
  287. package/src/assets/icons/PlusSquare.svg +3 -0
  288. package/src/assets/icons/RequestOption.svg +5 -0
  289. package/src/assets/icons/UpArrow.svg +3 -3
  290. package/src/assets/icons/arrowDownGray.svg +3 -0
  291. package/src/assets/icons/arrowRightGray.svg +3 -0
  292. package/src/assets/icons/close-circle.svg +5 -0
  293. package/src/assets/icons/copy.svg +4 -0
  294. package/src/assets/icons/deleteOutlinedIcon.svg +8 -8
  295. package/src/assets/icons/document.svg +6 -0
  296. package/src/assets/icons/eye.svg +4 -0
  297. package/src/assets/icons/index.ts +24 -8
  298. package/src/assets/icons/infoIcon.svg +5 -0
  299. package/src/assets/icons/searchIcon.svg +4 -0
  300. package/src/components/Chips/Chips.tsx +87 -87
  301. package/src/components/Chips/style.scss +147 -147
  302. package/src/components/InfoForm/InfoForm.module.scss +165 -165
  303. package/src/components/InfoForm/InfoForm.tsx +423 -428
  304. package/src/components/JsonInput/JsonInput.tsx +149 -149
  305. package/src/components/JsonInput/style.module.scss +133 -133
  306. package/src/components/LivePreview/LivePreview.module.scss +180 -24
  307. package/src/components/LivePreview/LivePreview.tsx +226 -191
  308. package/src/components/MethodAccordion/MethodAccordion.module.scss +395 -338
  309. package/src/components/MethodAccordion/MethodAccordion.tsx +678 -514
  310. package/src/components/SVGLoader/SVGLoader.tsx +96 -94
  311. package/src/components/SectionHead/SectionHead.scss +29 -29
  312. package/src/components/SectionHead/SectionHead.tsx +22 -22
  313. package/src/components/SimpleLabelValue/SimpleLabelValue.tsx +31 -31
  314. package/src/components/SimpleLabelValue/index.ts +1 -1
  315. package/src/components/SimpleLabelValue/style.scss +30 -30
  316. package/src/components/Tooltip/Tooltip.scss +133 -133
  317. package/src/components/Tooltip/Tooltip.tsx +85 -85
  318. package/src/components/_global.scss +337 -337
  319. package/src/components/dialog/dialog.ts +58 -54
  320. package/src/components/dialog/index.tsx +89 -85
  321. package/src/components/dialog/style.scss +188 -104
  322. package/src/components/table/style.scss +217 -190
  323. package/src/components/table/table.tsx +493 -327
  324. package/src/components/table/tags-table.tsx +348 -348
  325. package/src/constants/index.ts +95 -93
  326. package/src/constants/methods.constant.ts +26 -0
  327. package/src/constants/regex.ts +7 -7
  328. package/src/global.d.ts +13 -13
  329. package/src/helpers/docs.helper.ts +28 -0
  330. package/src/helpers/layout.helper.ts +176 -174
  331. package/src/helpers/methodAccordion.helper.ts +19 -19
  332. package/src/index.ts +2 -1
  333. package/src/layout/docsComponents/Codebox/Codebox.tsx +61 -0
  334. package/src/layout/docsComponents/Codebox/style.module.scss +43 -0
  335. package/src/layout/docsComponents/DocsAside/DocsAside.tsx +94 -0
  336. package/src/layout/docsComponents/DocsAside/style.module.scss +113 -0
  337. package/src/layout/docsComponents/DocsContent/DocsContent.tsx +14 -0
  338. package/src/layout/docsComponents/DocsContent/EndpointPage/index.tsx +184 -0
  339. package/src/layout/docsComponents/DocsContent/EndpointPage/style.scss +230 -0
  340. package/src/layout/docsComponents/DocsContent/TagPage/index.tsx +82 -0
  341. package/src/layout/docsComponents/DocsContent/TagPage/style.scss +283 -0
  342. package/src/layout/docsComponents/DocsContent/style.scss +0 -0
  343. package/src/layout/docsComponents/DocsHeader/DocsHeader.module.scss +271 -0
  344. package/src/layout/docsComponents/DocsHeader/DocsHeader.tsx +156 -0
  345. package/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.tsx +188 -0
  346. package/src/layout/docsComponents/DocsSideMenuTree/style.scss +195 -0
  347. package/src/layout/docsComponents/index.scss +49 -0
  348. package/src/layout/docsComponents/index.tsx +28 -0
  349. package/src/layout/docsLayout.tsx +72 -0
  350. package/src/layout/layout.module.css +65 -62
  351. package/src/layout/layout.tsx +162 -150
  352. package/src/types/layout.type.ts +31 -30
  353. package/src/types/openApi.ts +108 -108
  354. package/src/types/transformedOpenApi.ts +52 -52
  355. package/src/utils/index.ts +7 -0
  356. package/src/validator/form.scheme.ts +88 -70
  357. package/tsconfig.json +33 -33
  358. package/dist/_virtual/index20.js +0 -2
  359. package/dist/_virtual/index20.js.map +0 -1
  360. package/dist/_virtual/index21.js +0 -2
  361. package/dist/_virtual/index21.js.map +0 -1
  362. package/dist/_virtual/node2.js +0 -2
  363. package/dist/_virtual/node2.js.map +0 -1
  364. package/dist/_virtual/node3.js +0 -2
  365. package/dist/_virtual/node3.js.map +0 -1
  366. package/dist/node_modules/html-dom-parser/node_modules/domhandler/lib/index.js +0 -2
  367. package/dist/node_modules/html-dom-parser/node_modules/domhandler/lib/index.js.map +0 -1
  368. package/dist/node_modules/html-dom-parser/node_modules/domhandler/lib/node.js +0 -2
  369. package/dist/node_modules/html-dom-parser/node_modules/domhandler/lib/node.js.map +0 -1
  370. package/dist/node_modules/html-react-parser/node_modules/domhandler/lib/index.js +0 -2
  371. package/dist/node_modules/html-react-parser/node_modules/domhandler/lib/index.js.map +0 -1
  372. package/dist/node_modules/html-react-parser/node_modules/domhandler/lib/node.js +0 -2
  373. package/dist/node_modules/html-react-parser/node_modules/domhandler/lib/node.js.map +0 -1
  374. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js +0 -2
  375. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js.map +0 -1
  376. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js +0 -2
  377. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js.map +0 -1
  378. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/decode.js +0 -2
  379. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/decode.js.map +0 -1
  380. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.js +0 -2
  381. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.js.map +0 -1
  382. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/encode.js +0 -2
  383. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/encode.js.map +0 -1
  384. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/escape.js +0 -2
  385. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/escape.js.map +0 -1
  386. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-html.js +0 -2
  387. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-html.js.map +0 -1
  388. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-xml.js +0 -2
  389. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-xml.js.map +0 -1
  390. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/encode-html.js +0 -2
  391. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/encode-html.js.map +0 -1
  392. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/index.js +0 -2
  393. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/index.js.map +0 -1
  394. package/dist/node_modules/htmlparser2/node_modules/domhandler/lib/index.js +0 -2
  395. package/dist/node_modules/htmlparser2/node_modules/domhandler/lib/index.js.map +0 -1
  396. package/dist/node_modules/htmlparser2/node_modules/domhandler/lib/node.js +0 -2
  397. package/dist/node_modules/htmlparser2/node_modules/domhandler/lib/node.js.map +0 -1
  398. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/feeds.js +0 -2
  399. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/feeds.js.map +0 -1
  400. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/helpers.js +0 -2
  401. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/helpers.js.map +0 -1
  402. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/index.js +0 -2
  403. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/index.js.map +0 -1
  404. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/legacy.js +0 -2
  405. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/legacy.js.map +0 -1
  406. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js +0 -2
  407. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js.map +0 -1
  408. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/querying.js +0 -2
  409. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/querying.js.map +0 -1
  410. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/stringify.js +0 -2
  411. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/stringify.js.map +0 -1
  412. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/traversal.js +0 -2
  413. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/traversal.js.map +0 -1
  414. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/decode-codepoint.js +0 -2
  415. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/decode-codepoint.js.map +0 -1
  416. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/decode.js +0 -2
  417. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/decode.js.map +0 -1
  418. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/generated/decode-data-html.js +0 -2
  419. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/generated/decode-data-html.js.map +0 -1
  420. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +0 -2
  421. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/generated/decode-data-xml.js.map +0 -1
  422. package/dist/src/assets/icons/CheckMarkSquare.svg.js +0 -2
  423. package/dist/src/assets/icons/CheckMarkSquare.svg.js.map +0 -1
  424. package/dist/src/assets/icons/CloseIcon.svg.js +0 -2
  425. package/dist/src/assets/icons/CloseIcon.svg.js.map +0 -1
  426. package/dist/src/assets/icons/deleteOutlinedIcon.svg.js +0 -2
  427. package/dist/src/assets/icons/deleteOutlinedIcon.svg.js.map +0 -1
  428. package/dist/src/components/Chips/Chips.js +0 -2
  429. package/dist/src/components/Chips/Chips.js.map +0 -1
  430. package/dist/types/types/index.d.ts +0 -18
@@ -1,428 +1,423 @@
1
- import { useEffect, useState } from 'react'
2
- // @ts-ignore
3
- import { useFormikContext } from 'formik'
4
- import { Button, Input, TextArea } from 'digitinary-ui'
5
- import styles from './InfoForm.module.scss'
6
- import regex from '../../constants/regex'
7
- import { TransformedOpenApi } from '../../types/transformedOpenApi'
8
- import Tooltip from '../../components/Tooltip/Tooltip'
9
- import { DeleteIcon, deleteOutlinedIcon, EditIcon } from '../../assets/icons'
10
- import SVGLoader from '../../components/SVGLoader/SVGLoader'
11
- import CommonDialog from '../../components/dialog'
12
- import { tagsTableHeaders } from '../../constants/index'
13
- import TagsTable from '../../components/table/tags-table'
14
-
15
- const InfoForm = ({ readOnly }: { readOnly?: boolean }) => {
16
- const [tableData, setTableData] = useState([])
17
- const [tableRecords, setTableRecords] = useState()
18
- const [authType, setAuthType] = useState('')
19
- const [description, setDescription] = useState('')
20
- const [url, setURL] = useState('')
21
- const { values, setFieldValue, errors } = useFormikContext<TransformedOpenApi>()
22
- const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})
23
- const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})
24
- const [selectedTagIndex, setSelectedTagIndex] = useState<number | null>(null)
25
- const [selectedTagName, setSelectedTagName] = useState<string | null>(null)
26
- const [openDeleteDialog, setOpenDeleteDialog] = useState(false)
27
- const [isFormOpen, setIsFormOpen] = useState(false)
28
-
29
- useEffect(() => {
30
- if (values && values.components && values.components.securitySchemes) {
31
- const authenticatorKeys = Object.keys(values.components.securitySchemes)
32
- if (authenticatorKeys.length) {
33
- const _authType = values.components.securitySchemes[authenticatorKeys[0]].scheme ||
34
- values.components.securitySchemes[authenticatorKeys[0]].type;
35
-
36
- setAuthType(
37
- _authType && _authType.toLowerCase() == 'public' ? 'Keyless': _authType
38
- )
39
- }
40
- }
41
- }, [])
42
-
43
- useEffect(() => {
44
- setTableRecords(generateTableRecords(tableData))
45
- }, [tableData])
46
-
47
- useEffect(() => {
48
- if (values.tags && values.tags.length) {
49
- setTableData(values.tags)
50
- }
51
- }, [values.tags])
52
-
53
- const confirmDeleteTag = () => {
54
- if (selectedTagIndex !== null) {
55
- setTableData((prev) => prev.filter((_, i) => i !== selectedTagIndex))
56
- setFieldValue(
57
- `tags`,
58
- values.tags?.filter((_, i) => i !== selectedTagIndex)
59
- )
60
- }
61
- setOpenDeleteDialog(false)
62
- setSelectedTagIndex(null)
63
- }
64
-
65
- const capitalize = (str) => {
66
- if (!str) return ''
67
- return str.charAt(0).toUpperCase() + str.slice(1)
68
- }
69
-
70
- const onTableChange = (key, value, index) => {
71
- const newTableData = tableData.map((item, tIndex) => {
72
- if (tIndex === index) {
73
- return { ...item, [key]: value }
74
- } else {
75
- return item
76
- }
77
- })
78
-
79
- setTableData(newTableData)
80
- }
81
-
82
- const saveNewRow = (tag) => {
83
- setTableData([...tableData, tag])
84
- const oldTags = values.tags || []
85
- setFieldValue(`tags`, [...oldTags, tag])
86
- }
87
-
88
- const handleDeleteClick = (id: number, name: string) => {
89
- setSelectedTagIndex(id)
90
- setSelectedTagName(name)
91
-
92
- setOpenDeleteDialog(true)
93
- }
94
-
95
- const generateTableRecords = (items) => {
96
- return items.map((item, index) => ({
97
- id: index,
98
- tagName: item.name,
99
- description: (
100
- <div className={styles.paramDescContainer}>
101
- <Tooltip
102
- key={`${index}-description`}
103
- allowHTML
104
- disabled={values.tags[index].description?.length <= 12}
105
- content={<div style={{ padding: '0.625rem' }}>{values.tags[index].description}</div>}
106
- arrowWithBorder
107
- placement="bottom-end"
108
- type="function"
109
- delay={[0, 0]}
110
- onShow={() => tooltipRefs[index]?.hide()}
111
- >
112
- <p style={{ alignSelf: 'center', fontWeight: 600, fontSize: '1rem' }}>
113
- {values.tags[index].description
114
- ? values.tags[index].description.substring(0, 12)
115
- : readOnly && '-'}
116
- {values.tags[index].description && values.tags[index].description.length > 12
117
- ? '...'
118
- : ''}
119
- </p>
120
- </Tooltip>
121
- <Tooltip
122
- arrowWithBorder
123
- placement="bottom-end"
124
- type="function"
125
- trigger="click"
126
- delay={[0, 0]}
127
- onCreate={(instance) =>
128
- setTooltipRefs((prev) => ({
129
- ...prev,
130
- [index]: instance,
131
- }))
132
- }
133
- content={
134
- <div className={styles.editDescTooltipContent}>
135
- <p className={styles.editDescTooltipContent_header}>Description</p>
136
- <TextArea
137
- placeholder="Describe tag..."
138
- value={item.description}
139
- disabled={readOnly}
140
- onChange={(value) => {
141
- if (value === '' || regex.ASCII.test(value))
142
- onTableChange('description', value, index)
143
- }}
144
- maxLength={25}
145
- />
146
- {!readOnly && (
147
- <Button
148
- className={styles.editDescTooltipContent_btn}
149
- variant="outlined"
150
- size="small"
151
- onClick={() => {
152
- setFieldValue(`tags[${index}].description`, item.description?.trim())
153
- tooltipRefs[index]?.hide()
154
- }}
155
- disabled={!item.description?.trim()}
156
- >
157
- Apply
158
- </Button>
159
- )}
160
- </div>
161
- }
162
- >
163
- {readOnly || values.tags[index].description ? (
164
- <Button
165
- className={styles.editDescBtn}
166
- variant="link"
167
- color="action"
168
- endIcon={<SVGLoader src={EditIcon} width="1.5rem" height="1.5rem" />}
169
- ></Button>
170
- ) : (
171
- <Button
172
- className={styles.editDescBtn}
173
- variant="link"
174
- color="action"
175
- endIcon={<SVGLoader src={EditIcon} width="1.5rem" height="1.5rem" />}
176
- >
177
- {readOnly || values.tags[index].description
178
- ? 'View Description'
179
- : 'Add Description'}
180
- </Button>
181
- )}
182
- </Tooltip>
183
- </div>
184
- ),
185
- externalDocs: (
186
- <div className={styles.paramDescContainer}>
187
- {values.tags[index].externalDocs?.description && values.tags[index].externalDocs?.url && (
188
- <a
189
- className={styles.externalDocsLink}
190
- href={values.tags[index]?.externalDocs?.url && values.tags[index]?.externalDocs?.url?.indexOf('http') > -1
191
- ? values.tags[index]?.externalDocs?.url
192
- : `https://${values.tags[index]?.externalDocs?.url}`}
193
- target="_blank"
194
- style={
195
- !values.tags[index].externalDocs?.description
196
- ? { textDecoration: 'none', pointerEvents: 'none' }
197
- : {}
198
- }
199
- >
200
- {values.tags[index].externalDocs?.description
201
- ? values.tags[index].externalDocs?.description?.substring(0, 12)
202
- : readOnly && '-'}
203
- {values.tags[index].externalDocs?.description &&
204
- values.tags[index].externalDocs?.description?.length > 12
205
- ? '...'
206
- : ''}
207
- </a>
208
- )}
209
-
210
- <Tooltip
211
- arrowWithBorder
212
- placement="bottom-end"
213
- type="function"
214
- trigger="click"
215
- delay={[0, 0]}
216
- onCreate={(instance) =>
217
- setExternalTooltipRefs((prev) => ({
218
- ...prev,
219
- [index]: instance,
220
- }))
221
- }
222
- content={
223
- <div className={styles.editDescTooltipContent}>
224
- <p className={styles.editDescTooltipContent_header}>External Docs Description</p>
225
- <TextArea
226
- placeholder="Describe External Doc..."
227
- value={item.externalDocs?.description}
228
- disabled={readOnly}
229
- maxLength={25}
230
- onChange={(value) => {
231
- if (value === '' || regex.ASCII.test(value)) {
232
- onTableChange(
233
- 'externalDocs',
234
- { ...item.externalDocs, description: value },
235
- index
236
- )
237
- setDescription(value)
238
- }
239
- }}
240
- />
241
- <p className={styles.editDescTooltipContent_header}>External Docs Link</p>
242
- <TextArea
243
- placeholder="External Docs Link..."
244
- value={item.externalDocs?.url}
245
- disabled={readOnly}
246
- maxLength={200}
247
- restrictedCharsRegex={regex.urlRegex}
248
- onChange={(value) => {
249
- if (value === '' || regex.ASCII.test(value)) {
250
- onTableChange('externalDocs', { ...item.externalDocs, url: value }, index)
251
- setURL(value)
252
- }
253
- }}
254
- />
255
- {!readOnly && (
256
- <Button
257
- className={styles.editDescTooltipContent_btn}
258
- variant="outlined"
259
- size="small"
260
- onClick={() => {
261
- setFieldValue(`tags[${index}].externalDocs`, {
262
- description: description?.trim(),
263
- url: url?.trim(),
264
- })
265
- setDescription('')
266
- setURL('')
267
- externalTooltipRefs[index]?.hide()
268
- }}
269
- disabled={
270
- !(
271
- (values.tags[index].externalDocs?.url && !url?.trim()) ||
272
- (url?.trim() && regex.urlRegex.test(url))
273
- )
274
- }
275
- >
276
- Apply
277
- </Button>
278
- )}
279
- </div>
280
- }
281
- >
282
- {readOnly || values.tags[index].externalDocs?.description ? (
283
- <div className={styles.editExternalDocs}>
284
- <SVGLoader
285
- src={EditIcon}
286
- width="1.5rem"
287
- height="1.5rem"
288
- onClick={(e) => {
289
- e?.stopPropagation()
290
- setDescription(item.externalDocs?.description)
291
- setURL(item.externalDocs?.url)
292
- }}
293
- />
294
- </div>
295
- ) : (
296
- <Button
297
- className={styles.editDescBtn}
298
- variant="link"
299
- color="action"
300
- endIcon={<SVGLoader src={EditIcon} width="1.5rem" height="1.5rem" />}
301
- onClick={() => {
302
- setDescription(item.externalDocs?.description)
303
- setURL(item.externalDocs?.url)
304
- }}
305
- >
306
- {readOnly ||
307
- (values.tags[index]?.externalDocs &&
308
- (values.tags[index]?.externalDocs?.url ||
309
- values.tags[index].externalDocs?.description))
310
- ? 'View '
311
- : 'Add '}{' '}
312
- External Docs Link
313
- </Button>
314
- )}
315
- </Tooltip>
316
-
317
- {!readOnly && <div className={styles.paramDescContainer_separator}></div>}
318
-
319
- {!readOnly && (
320
- <Button
321
- className={styles.deleteParamBtn}
322
- variant="link"
323
- color="error"
324
- endIcon={<SVGLoader src={DeleteIcon} width="1.125rem" height="1.125rem" />}
325
- onClick={() => handleDeleteClick(index, item.name)}
326
- ></Button>
327
- )}
328
- </div>
329
- ),
330
- }))
331
- }
332
-
333
- return (
334
- <form className={styles.apiInfoForm} onSubmit={(e) => e.preventDefault()}>
335
- <Input
336
- size="large"
337
- placeholder="e.g. Payments"
338
- label="API Name"
339
- required
340
- value={values?.info?.title}
341
- maxLength={35}
342
- onChange={(value) => {
343
- setFieldValue('info.title', value)
344
- }}
345
- onClear={() => {
346
- setFieldValue('info.title', '')
347
- }}
348
- errorMsg={errors?.info?.title}
349
- restrictedCharactersRegex={regex.basic}
350
- />
351
- <div className={styles.apiDocRow}>
352
- <Input
353
- size="large"
354
- label="API Authentication Type"
355
- required
356
- value={capitalize(authType)}
357
- disabled
358
- />
359
- <Input size="large" label="Version" required value={values?.info?.version} disabled />
360
- </div>
361
- <TextArea
362
- size="large"
363
- placeholder="Enter a description of the API's functionality..."
364
- label="Description"
365
- value={values?.info?.description}
366
- maxLength={120}
367
- required
368
- onChange={(value: string) => {
369
- if (value === '' || regex.ASCII.test(value)) {
370
- setFieldValue('info.description', value)
371
- }
372
- }}
373
- onClear={() => {
374
- setFieldValue('info.description', '')
375
- }}
376
- errorMsg={errors?.info?.description}
377
- />
378
- <div className={styles.paramsTable}>
379
- <TagsTable
380
- id="paramter-table"
381
- data={tableRecords}
382
- headCells={tagsTableHeaders}
383
- isFormOpen={isFormOpen}
384
- setIsFormOpen={setIsFormOpen}
385
- saveNewRow={saveNewRow}
386
- readOnly={readOnly}
387
- />
388
- </div>
389
- <CommonDialog
390
- status="error"
391
- content={
392
- <p
393
- style={{
394
- textAlign: 'center',
395
- fontWeight: 400,
396
- fontSize: '1rem',
397
- lineHeight: '1.4375rem',
398
- }}
399
- className="delete-msg-container"
400
- >
401
- Are you sure you want to delete
402
- <span className="plan-name">
403
- {' '}
404
- Tag <strong>{selectedTagName}</strong>
405
- </span>
406
- ?
407
- </p>
408
- }
409
- onSubmit={{
410
- onClick: confirmDeleteTag,
411
- text: 'Delete',
412
- color: 'error',
413
- fullWidth: true,
414
- }}
415
- onCancel={{
416
- text: 'Cancel',
417
- color: 'normal',
418
- fullWidth: true,
419
- }}
420
- onClose={() => setOpenDeleteDialog(false)}
421
- open={openDeleteDialog}
422
- icon={<SVGLoader src={deleteOutlinedIcon} width="4.0625rem" height="4.0625rem" />}
423
- />
424
- </form>
425
- )
426
- }
427
-
428
- export default InfoForm
1
+ import { useEffect, useState } from 'react'
2
+ // @ts-ignore
3
+ import { useFormikContext } from 'formik'
4
+ import { Button, Input, TextArea } from 'digitinary-ui'
5
+ import styles from './InfoForm.module.scss'
6
+ import regex from '../../constants/regex'
7
+ import { TransformedOpenApi } from '../../types/transformedOpenApi'
8
+ import Tooltip from '../../components/Tooltip/Tooltip'
9
+ import { DeleteIcon, DeleteOutlinedIcon, EditIcon } from '../../assets/icons'
10
+ import SVGLoader from '../../components/SVGLoader/SVGLoader'
11
+ import CommonDialog from '../../components/dialog'
12
+ import { tagsTableHeaders } from '../../constants/index'
13
+ import TagsTable from '../../components/table/tags-table'
14
+
15
+ const InfoForm = ({ readOnly }: { readOnly?: boolean }) => {
16
+ const [tableData, setTableData] = useState([])
17
+ const [tableRecords, setTableRecords] = useState()
18
+ const [authType, setAuthType] = useState('')
19
+ const [description, setDescription] = useState('')
20
+ const [url, setURL] = useState('')
21
+ const { values, setFieldValue, errors } = useFormikContext<TransformedOpenApi>()
22
+ const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})
23
+ const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})
24
+ const [selectedTagIndex, setSelectedTagIndex] = useState<number | null>(null)
25
+ const [selectedTagName, setSelectedTagName] = useState<string | null>(null)
26
+ const [openDeleteDialog, setOpenDeleteDialog] = useState(false)
27
+ const [isFormOpen, setIsFormOpen] = useState(false)
28
+
29
+ useEffect(() => {
30
+ if (values && values.components && values.components.securitySchemes) {
31
+ const authenticatorKeys = Object.keys(values.components.securitySchemes)
32
+ if (authenticatorKeys.length) {
33
+ const _authType =
34
+ values.components.securitySchemes[authenticatorKeys[0]].scheme ||
35
+ values.components.securitySchemes[authenticatorKeys[0]].type
36
+
37
+ setAuthType(_authType && _authType.toLowerCase() == 'public' ? 'Keyless' : _authType)
38
+ }
39
+ }
40
+ }, [])
41
+
42
+ useEffect(() => {
43
+ setTableRecords(generateTableRecords(tableData))
44
+ }, [tableData])
45
+
46
+ useEffect(() => {
47
+ if (values.tags && values.tags.length) {
48
+ setTableData(values.tags)
49
+ }
50
+ }, [values.tags])
51
+
52
+ const confirmDeleteTag = () => {
53
+ if (selectedTagIndex !== null) {
54
+ setTableData((prev) => prev.filter((_, i) => i !== selectedTagIndex))
55
+ setFieldValue(
56
+ `tags`,
57
+ values.tags?.filter((_, i) => i !== selectedTagIndex)
58
+ )
59
+ }
60
+ setOpenDeleteDialog(false)
61
+ setSelectedTagIndex(null)
62
+ }
63
+
64
+ const capitalize = (str) => {
65
+ if (!str) return ''
66
+ return str.charAt(0).toUpperCase() + str.slice(1)
67
+ }
68
+
69
+ const onTableChange = (key, value, index) => {
70
+ const newTableData = tableData.map((item, tIndex) => {
71
+ if (tIndex === index) {
72
+ return { ...item, [key]: value }
73
+ } else {
74
+ return item
75
+ }
76
+ })
77
+
78
+ setTableData(newTableData)
79
+ }
80
+
81
+ const saveNewRow = (tag) => {
82
+ setTableData([...tableData, tag])
83
+ const oldTags = values.tags || []
84
+ setFieldValue(`tags`, [...oldTags, tag])
85
+ }
86
+
87
+ const handleDeleteClick = (id: number, name: string) => {
88
+ setSelectedTagIndex(id)
89
+ setSelectedTagName(name)
90
+
91
+ setOpenDeleteDialog(true)
92
+ }
93
+
94
+ const generateTableRecords = (items) => {
95
+ return items.map((item, index) => ({
96
+ id: index,
97
+ tagName: item.name,
98
+ description: (
99
+ <div className={styles.paramDescContainer}>
100
+ <Tooltip
101
+ key={`${index}-description`}
102
+ allowHTML
103
+ disabled={values.tags[index].description?.length <= 12}
104
+ content={<div style={{ padding: '0.625rem' }}>{values.tags[index].description}</div>}
105
+ arrowWithBorder
106
+ placement="bottom-end"
107
+ type="function"
108
+ delay={[0, 0]}
109
+ onShow={() => tooltipRefs[index]?.hide()}
110
+ >
111
+ <p style={{ alignSelf: 'center', fontWeight: 600, fontSize: '1rem' }}>
112
+ {values.tags[index].description
113
+ ? values.tags[index].description.substring(0, 12)
114
+ : readOnly && '-'}
115
+ {values.tags[index].description && values.tags[index].description.length > 12
116
+ ? '...'
117
+ : ''}
118
+ </p>
119
+ </Tooltip>
120
+ <Tooltip
121
+ arrowWithBorder
122
+ placement="bottom-end"
123
+ type="function"
124
+ trigger="click"
125
+ delay={[0, 0]}
126
+ onCreate={(instance) =>
127
+ setTooltipRefs((prev) => ({
128
+ ...prev,
129
+ [index]: instance,
130
+ }))
131
+ }
132
+ content={
133
+ <div className={styles.editDescTooltipContent}>
134
+ <p className={styles.editDescTooltipContent_header}>Description</p>
135
+ <TextArea
136
+ placeholder="Describe tag..."
137
+ value={item.description}
138
+ disabled={readOnly}
139
+ onChange={(value) => {
140
+ if (value === '' || regex.ASCII.test(value))
141
+ onTableChange('description', value, index)
142
+ }}
143
+ maxLength={25}
144
+ />
145
+ {!readOnly && (
146
+ <Button
147
+ className={styles.editDescTooltipContent_btn}
148
+ variant="outlined"
149
+ size="small"
150
+ onClick={() => {
151
+ setFieldValue(`tags[${index}].description`, item.description?.trim())
152
+ tooltipRefs[index]?.hide()
153
+ }}
154
+ disabled={!item.description?.trim()}
155
+ >
156
+ Apply
157
+ </Button>
158
+ )}
159
+ </div>
160
+ }
161
+ >
162
+ {readOnly || values.tags[index].description ? (
163
+ <Button
164
+ className={styles.editDescBtn}
165
+ variant="link"
166
+ color="action"
167
+ endIcon={<SVGLoader src={EditIcon} width="1.5rem" height="1.5rem" />}
168
+ ></Button>
169
+ ) : (
170
+ <Button
171
+ className={styles.editDescBtn}
172
+ variant="link"
173
+ color="action"
174
+ endIcon={<SVGLoader src={EditIcon} width="1.5rem" height="1.5rem" />}
175
+ >
176
+ {readOnly || values.tags[index].description
177
+ ? 'View Description'
178
+ : 'Add Description'}
179
+ </Button>
180
+ )}
181
+ </Tooltip>
182
+ </div>
183
+ ),
184
+ externalDocs: (
185
+ <div className={styles.paramDescContainer}>
186
+ {values.tags[index].externalDocs?.description && values.tags[index].externalDocs?.url && (
187
+ <a
188
+ className={styles.externalDocsLink}
189
+ href={
190
+ values.tags[index]?.externalDocs?.url &&
191
+ values.tags[index]?.externalDocs?.url?.indexOf('http') > -1
192
+ ? values.tags[index]?.externalDocs?.url
193
+ : `https://${values.tags[index]?.externalDocs?.url}`
194
+ }
195
+ target="_blank"
196
+ style={
197
+ !values.tags[index].externalDocs?.description
198
+ ? { textDecoration: 'none', pointerEvents: 'none' }
199
+ : {}
200
+ }
201
+ >
202
+ {values.tags[index].externalDocs?.description
203
+ ? values.tags[index].externalDocs?.description?.substring(0, 12)
204
+ : readOnly && '-'}
205
+ {values.tags[index].externalDocs?.description &&
206
+ values.tags[index].externalDocs?.description?.length > 12
207
+ ? '...'
208
+ : ''}
209
+ </a>
210
+ )}
211
+
212
+ <Tooltip
213
+ arrowWithBorder
214
+ placement="bottom-end"
215
+ type="function"
216
+ trigger="click"
217
+ delay={[0, 0]}
218
+ onCreate={(instance) =>
219
+ setExternalTooltipRefs((prev) => ({
220
+ ...prev,
221
+ [index]: instance,
222
+ }))
223
+ }
224
+ content={
225
+ <div className={styles.editDescTooltipContent}>
226
+ <p className={styles.editDescTooltipContent_header}>External Docs Description</p>
227
+ <TextArea
228
+ placeholder="Describe External Doc..."
229
+ value={item.externalDocs?.description}
230
+ disabled={readOnly}
231
+ maxLength={25}
232
+ onChange={(value) => {
233
+ if (value === '' || regex.ASCII.test(value)) {
234
+ onTableChange(
235
+ 'externalDocs',
236
+ { ...item.externalDocs, description: value },
237
+ index
238
+ )
239
+ setDescription(value)
240
+ }
241
+ }}
242
+ />
243
+ <p className={styles.editDescTooltipContent_header}>External Docs Link</p>
244
+ <TextArea
245
+ placeholder="External Docs Link..."
246
+ value={item.externalDocs?.url}
247
+ disabled={readOnly}
248
+ maxLength={200}
249
+ restrictedCharsRegex={regex.urlRegex}
250
+ onChange={(value) => {
251
+ if (value === '' || regex.ASCII.test(value)) {
252
+ onTableChange('externalDocs', { ...item.externalDocs, url: value }, index)
253
+ setURL(value)
254
+ }
255
+ }}
256
+ />
257
+ {!readOnly && (
258
+ <Button
259
+ className={styles.editDescTooltipContent_btn}
260
+ variant="outlined"
261
+ size="small"
262
+ onClick={() => {
263
+ setFieldValue(`tags[${index}].externalDocs`, {
264
+ description: description?.trim(),
265
+ url: url?.trim(),
266
+ })
267
+ setDescription('')
268
+ setURL('')
269
+ externalTooltipRefs[index]?.hide()
270
+ }}
271
+ disabled={
272
+ !(
273
+ (values.tags[index].externalDocs?.url && !url?.trim()) ||
274
+ (url?.trim() && regex.urlRegex.test(url))
275
+ )
276
+ }
277
+ >
278
+ Apply
279
+ </Button>
280
+ )}
281
+ </div>
282
+ }
283
+ >
284
+ {readOnly || values.tags[index].externalDocs?.description ? (
285
+ <div className={styles.editExternalDocs}>
286
+ <SVGLoader
287
+ src={EditIcon}
288
+ width="1.5rem"
289
+ height="1.5rem"
290
+ onClick={(e) => {
291
+ e?.stopPropagation()
292
+ setDescription(item.externalDocs?.description)
293
+ setURL(item.externalDocs?.url)
294
+ }}
295
+ />
296
+ </div>
297
+ ) : (
298
+ <Button
299
+ className={styles.editDescBtn}
300
+ variant="link"
301
+ color="action"
302
+ endIcon={<SVGLoader src={EditIcon} width="1.5rem" height="1.5rem" />}
303
+ onClick={() => {
304
+ setDescription(item.externalDocs?.description)
305
+ setURL(item.externalDocs?.url)
306
+ }}
307
+ >
308
+ {readOnly ||
309
+ (values.tags[index]?.externalDocs &&
310
+ (values.tags[index]?.externalDocs?.url ||
311
+ values.tags[index].externalDocs?.description))
312
+ ? 'View '
313
+ : 'Add '}{' '}
314
+ External Docs Link
315
+ </Button>
316
+ )}
317
+ </Tooltip>
318
+
319
+ {!readOnly && <div className={styles.paramDescContainer_separator}></div>}
320
+
321
+ {!readOnly && (
322
+ <Button
323
+ className={styles.deleteParamBtn}
324
+ variant="link"
325
+ color="error"
326
+ endIcon={<SVGLoader src={DeleteIcon} width="1.125rem" height="1.125rem" />}
327
+ onClick={() => handleDeleteClick(index, item.name)}
328
+ ></Button>
329
+ )}
330
+ </div>
331
+ ),
332
+ }))
333
+ }
334
+
335
+ return (
336
+ <form className={styles.apiInfoForm} onSubmit={(e) => e.preventDefault()}>
337
+ <Input
338
+ size="large"
339
+ placeholder="e.g. Payments"
340
+ label="API Name"
341
+ required
342
+ value={values?.info?.title}
343
+ maxLength={35}
344
+ onChange={(value) => {
345
+ setFieldValue('info.title', value)
346
+ }}
347
+ onClear={() => {
348
+ setFieldValue('info.title', '')
349
+ }}
350
+ errorMsg={errors?.info?.title}
351
+ restrictedCharactersRegex={regex.basic}
352
+ />
353
+ <div className={styles.apiDocRow}>
354
+ <Input size="large" label="Version" required value={values?.info?.version} disabled />
355
+ </div>
356
+ <TextArea
357
+ size="large"
358
+ placeholder="Enter a description of the API's functionality..."
359
+ label="Description"
360
+ value={values?.info?.description}
361
+ maxLength={120}
362
+ required
363
+ onChange={(value: string) => {
364
+ if (value === '' || regex.ASCII.test(value)) {
365
+ setFieldValue('info.description', value)
366
+ }
367
+ }}
368
+ onClear={() => {
369
+ setFieldValue('info.description', '')
370
+ }}
371
+ errorMsg={errors?.info?.description}
372
+ />
373
+ <div className={styles.paramsTable}>
374
+ <TagsTable
375
+ id="paramter-table"
376
+ data={tableRecords}
377
+ headCells={tagsTableHeaders}
378
+ isFormOpen={isFormOpen}
379
+ setIsFormOpen={setIsFormOpen}
380
+ saveNewRow={saveNewRow}
381
+ readOnly={readOnly}
382
+ />
383
+ </div>
384
+ <CommonDialog
385
+ status="error"
386
+ content={
387
+ <p
388
+ style={{
389
+ textAlign: 'center',
390
+ fontWeight: 400,
391
+ fontSize: '1rem',
392
+ lineHeight: '1.4375rem',
393
+ }}
394
+ className="delete-msg-container"
395
+ >
396
+ Are you sure you want to delete
397
+ <span className="plan-name">
398
+ {' '}
399
+ Tag <strong>{selectedTagName}</strong>
400
+ </span>
401
+ ?
402
+ </p>
403
+ }
404
+ onSubmit={{
405
+ onClick: confirmDeleteTag,
406
+ text: 'Delete',
407
+ color: 'error',
408
+ fullWidth: true,
409
+ }}
410
+ onCancel={{
411
+ text: 'Cancel',
412
+ color: 'normal',
413
+ fullWidth: true,
414
+ }}
415
+ onClose={() => setOpenDeleteDialog(false)}
416
+ open={openDeleteDialog}
417
+ icon={<SVGLoader src={DeleteOutlinedIcon} width="4.0625rem" height="4.0625rem" />}
418
+ />
419
+ </form>
420
+ )
421
+ }
422
+
423
+ export default InfoForm