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

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 (353) 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/index3.js +1 -1
  20. package/dist/_virtual/index4.js +1 -1
  21. package/dist/_virtual/index5.js +1 -1
  22. package/dist/{64efc2716808c4a4.svg → bb8b87cace25e052.svg} +3 -3
  23. package/dist/cceb1e5dc06b0b85.svg +4 -0
  24. package/dist/d140a601c85bac25.svg +3 -0
  25. package/dist/{72db3b05a96dd600.svg → d32ce84bbd78babd.svg} +3 -3
  26. package/dist/{844eba3f2e42a9eb.svg → d501922060662842.svg} +3 -3
  27. package/dist/d6d0a98ec38e6b77.svg +3 -0
  28. package/dist/e04479ad425e7d58.svg +4 -0
  29. package/dist/f4a32992f02af522.svg +5 -0
  30. package/dist/node_modules/dom-serializer/lib/foreignNames.js +2 -0
  31. package/dist/node_modules/dom-serializer/lib/foreignNames.js.map +1 -0
  32. package/dist/node_modules/dom-serializer/lib/index.js +2 -0
  33. package/dist/node_modules/dom-serializer/lib/index.js.map +1 -0
  34. package/dist/node_modules/dom-serializer/node_modules/entities/lib/decode.js +2 -0
  35. package/dist/node_modules/dom-serializer/node_modules/entities/lib/decode.js.map +1 -0
  36. package/dist/node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.js +2 -0
  37. package/dist/node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.js.map +1 -0
  38. package/dist/node_modules/dom-serializer/node_modules/entities/lib/encode.js +2 -0
  39. package/dist/node_modules/dom-serializer/node_modules/entities/lib/encode.js.map +1 -0
  40. package/dist/node_modules/dom-serializer/node_modules/entities/lib/escape.js +2 -0
  41. package/dist/node_modules/dom-serializer/node_modules/entities/lib/escape.js.map +1 -0
  42. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-html.js +2 -0
  43. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-html.js.map +1 -0
  44. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-xml.js +2 -0
  45. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-xml.js.map +1 -0
  46. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/encode-html.js +2 -0
  47. package/dist/node_modules/dom-serializer/node_modules/entities/lib/generated/encode-html.js.map +1 -0
  48. package/dist/node_modules/dom-serializer/node_modules/entities/lib/index.js +2 -0
  49. package/dist/node_modules/dom-serializer/node_modules/entities/lib/index.js.map +1 -0
  50. package/dist/node_modules/domhandler/lib/index.js +2 -0
  51. package/dist/node_modules/domhandler/lib/index.js.map +1 -0
  52. package/dist/node_modules/domhandler/lib/node.js +2 -0
  53. package/dist/node_modules/domhandler/lib/node.js.map +1 -0
  54. package/dist/node_modules/domutils/lib/feeds.js +2 -0
  55. package/dist/node_modules/domutils/lib/feeds.js.map +1 -0
  56. package/dist/node_modules/domutils/lib/helpers.js +2 -0
  57. package/dist/node_modules/domutils/lib/helpers.js.map +1 -0
  58. package/dist/node_modules/domutils/lib/index.js +2 -0
  59. package/dist/node_modules/domutils/lib/index.js.map +1 -0
  60. package/dist/node_modules/domutils/lib/legacy.js +2 -0
  61. package/dist/node_modules/domutils/lib/legacy.js.map +1 -0
  62. package/dist/node_modules/domutils/lib/manipulation.js +2 -0
  63. package/dist/node_modules/domutils/lib/manipulation.js.map +1 -0
  64. package/dist/node_modules/domutils/lib/querying.js +2 -0
  65. package/dist/node_modules/domutils/lib/querying.js.map +1 -0
  66. package/dist/node_modules/domutils/lib/stringify.js +2 -0
  67. package/dist/node_modules/domutils/lib/stringify.js.map +1 -0
  68. package/dist/node_modules/domutils/lib/traversal.js +2 -0
  69. package/dist/node_modules/domutils/lib/traversal.js.map +1 -0
  70. package/dist/node_modules/entities/dist/commonjs/decode-codepoint.js +2 -0
  71. package/dist/node_modules/entities/dist/commonjs/decode-codepoint.js.map +1 -0
  72. package/dist/node_modules/entities/dist/commonjs/decode.js +2 -0
  73. package/dist/node_modules/entities/dist/commonjs/decode.js.map +1 -0
  74. package/dist/node_modules/entities/dist/commonjs/generated/decode-data-html.js +2 -0
  75. package/dist/node_modules/entities/dist/commonjs/generated/decode-data-html.js.map +1 -0
  76. package/dist/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +2 -0
  77. package/dist/node_modules/entities/dist/commonjs/generated/decode-data-xml.js.map +1 -0
  78. package/dist/node_modules/html-dom-parser/lib/server/html-to-dom.js +1 -1
  79. package/dist/node_modules/html-dom-parser/lib/server/html-to-dom.js.map +1 -1
  80. package/dist/node_modules/html-react-parser/lib/index.js +1 -1
  81. package/dist/node_modules/html-react-parser/lib/index.js.map +1 -1
  82. package/dist/node_modules/htmlparser2/dist/commonjs/Parser.js +1 -1
  83. package/dist/node_modules/htmlparser2/dist/commonjs/Parser.js.map +1 -1
  84. package/dist/node_modules/htmlparser2/dist/commonjs/Tokenizer.js +1 -1
  85. package/dist/node_modules/htmlparser2/dist/commonjs/Tokenizer.js.map +1 -1
  86. package/dist/node_modules/htmlparser2/dist/commonjs/index.js +1 -1
  87. package/dist/node_modules/htmlparser2/dist/commonjs/index.js.map +1 -1
  88. package/dist/node_modules/style-to-object/cjs/index.js +1 -1
  89. package/dist/node_modules/toposort/index.js +1 -1
  90. package/dist/node_modules/yup/index.esm.js +1 -1
  91. package/dist/src/assets/icons/AddRow.svg.js +1 -1
  92. package/dist/src/assets/icons/AddRow.svg.js.map +1 -1
  93. package/dist/src/assets/icons/ApiIcon.svg.js +2 -0
  94. package/dist/src/assets/icons/ApiIcon.svg.js.map +1 -0
  95. package/dist/src/assets/icons/ArrowBack.svg.js +2 -0
  96. package/dist/src/assets/icons/ArrowBack.svg.js.map +1 -0
  97. package/dist/src/assets/icons/BookIcon.svg.js +2 -0
  98. package/dist/src/assets/icons/BookIcon.svg.js.map +1 -0
  99. package/dist/src/assets/icons/CopySticker.svg.js +2 -0
  100. package/dist/src/assets/icons/CopySticker.svg.js.map +1 -0
  101. package/dist/src/assets/icons/DeleteIcon.svg.js +1 -1
  102. package/dist/src/assets/icons/DeleteIcon.svg.js.map +1 -1
  103. package/dist/src/assets/icons/DeleteOutlinedIcon.svg.js +2 -0
  104. package/dist/src/assets/icons/DeleteOutlinedIcon.svg.js.map +1 -0
  105. package/dist/src/assets/icons/DownArrow.svg.js +1 -1
  106. package/dist/src/assets/icons/DownArrow.svg.js.map +1 -1
  107. package/dist/src/assets/icons/EditIcon.svg.js +1 -1
  108. package/dist/src/assets/icons/EditIcon.svg.js.map +1 -1
  109. package/dist/src/assets/icons/FilterIcon.svg.js +2 -0
  110. package/dist/src/assets/icons/FilterIcon.svg.js.map +1 -0
  111. package/dist/src/assets/icons/Plus.svg.js +2 -0
  112. package/dist/src/assets/icons/Plus.svg.js.map +1 -0
  113. package/dist/src/assets/icons/PlusSquare.svg.js +2 -0
  114. package/dist/src/assets/icons/PlusSquare.svg.js.map +1 -0
  115. package/dist/src/assets/icons/RequestOption.svg.js +2 -0
  116. package/dist/src/assets/icons/RequestOption.svg.js.map +1 -0
  117. package/dist/src/assets/icons/arrowDownGray.svg.js +2 -0
  118. package/dist/src/assets/icons/arrowDownGray.svg.js.map +1 -0
  119. package/dist/src/assets/icons/arrowRightGray.svg.js +2 -0
  120. package/dist/src/assets/icons/arrowRightGray.svg.js.map +1 -0
  121. package/dist/src/assets/icons/close-circle.svg.js +2 -0
  122. package/dist/src/assets/icons/close-circle.svg.js.map +1 -0
  123. package/dist/src/assets/icons/document.svg.js +2 -0
  124. package/dist/src/assets/icons/document.svg.js.map +1 -0
  125. package/dist/src/assets/icons/eye.svg.js +2 -0
  126. package/dist/src/assets/icons/eye.svg.js.map +1 -0
  127. package/dist/src/assets/icons/infoIcon.svg.js +2 -0
  128. package/dist/src/assets/icons/infoIcon.svg.js.map +1 -0
  129. package/dist/src/assets/icons/searchIcon.svg.js +2 -0
  130. package/dist/src/assets/icons/searchIcon.svg.js.map +1 -0
  131. package/dist/src/components/InfoForm/InfoForm.js +1 -1
  132. package/dist/src/components/InfoForm/InfoForm.js.map +1 -1
  133. package/dist/src/components/JsonInput/JsonInput.js.map +1 -1
  134. package/dist/src/components/LivePreview/LivePreview.js +1 -1
  135. package/dist/src/components/LivePreview/LivePreview.js.map +1 -1
  136. package/dist/src/components/MethodAccordion/MethodAccordion.js +1 -1
  137. package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
  138. package/dist/src/components/SVGLoader/SVGLoader.js.map +1 -1
  139. package/dist/src/components/SectionHead/SectionHead.js.map +1 -1
  140. package/dist/src/components/SimpleLabelValue/SimpleLabelValue.js.map +1 -1
  141. package/dist/src/components/Tooltip/Tooltip.js.map +1 -1
  142. package/dist/src/components/dialog/index.js +1 -1
  143. package/dist/src/components/dialog/index.js.map +1 -1
  144. package/dist/src/components/table/table.js +1 -1
  145. package/dist/src/components/table/table.js.map +1 -1
  146. package/dist/src/components/table/tags-table.js.map +1 -1
  147. package/dist/src/constants/index.js +1 -1
  148. package/dist/src/constants/index.js.map +1 -1
  149. package/dist/src/constants/methods.constant.js +2 -0
  150. package/dist/src/constants/methods.constant.js.map +1 -0
  151. package/dist/src/constants/regex.js.map +1 -1
  152. package/dist/src/helpers/layout.helper.js +1 -1
  153. package/dist/src/helpers/layout.helper.js.map +1 -1
  154. package/dist/src/helpers/methodAccordion.helper.js.map +1 -1
  155. package/dist/src/index.js +1 -1
  156. package/dist/src/layout/docsComponents/DocsAside/DocsAside.js +2 -0
  157. package/dist/src/layout/docsComponents/DocsAside/DocsAside.js.map +1 -0
  158. package/dist/src/layout/docsComponents/DocsContent/DocsContent.js +2 -0
  159. package/dist/src/layout/docsComponents/DocsContent/DocsContent.js.map +1 -0
  160. package/dist/src/layout/docsComponents/DocsContent/EndpointPage/index.js +2 -0
  161. package/dist/src/layout/docsComponents/DocsContent/EndpointPage/index.js.map +1 -0
  162. package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js +2 -0
  163. package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js.map +1 -0
  164. package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.module.scss.js +2 -0
  165. package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.module.scss.js.map +1 -0
  166. package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js +2 -0
  167. package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js.map +1 -0
  168. package/dist/src/layout/docsComponents/index.js +2 -0
  169. package/dist/src/layout/docsComponents/index.js.map +1 -0
  170. package/dist/src/layout/docsLayout.js +2 -0
  171. package/dist/src/layout/docsLayout.js.map +1 -0
  172. package/dist/src/layout/layout.js +1 -1
  173. package/dist/src/layout/layout.js.map +1 -1
  174. package/dist/src/validator/form.scheme.js +1 -1
  175. package/dist/src/validator/form.scheme.js.map +1 -1
  176. package/dist/styles.css +1436 -368
  177. package/dist/types/assets/icons/index.d.ts +16 -1
  178. package/dist/types/components/LivePreview/LivePreview.d.ts +1 -0
  179. package/dist/types/components/MethodAccordion/MethodAccordion.d.ts +2 -1
  180. package/dist/types/components/dialog/dialog.d.ts +3 -0
  181. package/dist/types/components/table/table.d.ts +2 -1
  182. package/dist/types/constants/methods.constant.d.ts +16 -0
  183. package/dist/types/helpers/docs.helper.d.ts +3 -0
  184. package/dist/types/index.d.ts +1 -0
  185. package/dist/types/layout/docsComponents/DocsAside/DocsAside.d.ts +3 -0
  186. package/dist/types/layout/docsComponents/DocsContent/DocsContent.d.ts +3 -0
  187. package/dist/types/layout/docsComponents/DocsContent/EndpointPage/index.d.ts +2 -0
  188. package/dist/types/layout/docsComponents/DocsContent/TagPage/index.d.ts +2 -0
  189. package/dist/types/layout/docsComponents/DocsHeader/DocsHeader.d.ts +3 -0
  190. package/dist/types/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.d.ts +8 -0
  191. package/dist/types/layout/docsComponents/index.d.ts +17 -0
  192. package/dist/types/layout/docsLayout.d.ts +33 -0
  193. package/dist/types/layout/layout.d.ts +2 -1
  194. package/dist/types/types/layout.type.d.ts +1 -0
  195. package/dist/types/types/openApi.d.ts +4 -4
  196. package/dist/types/validator/form.scheme.d.ts +10 -2
  197. package/package.json +45 -43
  198. package/rollup.config.js +35 -35
  199. package/src/assets/icons/AddRow.svg +3 -3
  200. package/src/assets/icons/ApiIcon.svg +12 -0
  201. package/src/assets/icons/ArrowBack.svg +3 -0
  202. package/src/assets/icons/BookIcon.svg +6 -0
  203. package/src/assets/icons/CheckMarkSquare.svg +5 -5
  204. package/src/assets/icons/CloseIcon.svg +4 -4
  205. package/src/assets/icons/CopySticker.svg +6 -0
  206. package/src/assets/icons/DeleteIcon.svg +3 -3
  207. package/src/assets/icons/DeleteOutlinedIcon.svg +8 -0
  208. package/src/assets/icons/DownArrow.svg +3 -3
  209. package/src/assets/icons/EditIcon.svg +3 -3
  210. package/src/assets/icons/FilterIcon.svg +4 -0
  211. package/src/assets/icons/Plus.svg +5 -0
  212. package/src/assets/icons/PlusSquare.svg +3 -0
  213. package/src/assets/icons/RequestOption.svg +5 -0
  214. package/src/assets/icons/UpArrow.svg +3 -3
  215. package/src/assets/icons/arrowDownGray.svg +3 -0
  216. package/src/assets/icons/arrowRightGray.svg +3 -0
  217. package/src/assets/icons/close-circle.svg +5 -0
  218. package/src/assets/icons/deleteOutlinedIcon.svg +8 -8
  219. package/src/assets/icons/document.svg +6 -0
  220. package/src/assets/icons/eye.svg +4 -0
  221. package/src/assets/icons/index.ts +23 -8
  222. package/src/assets/icons/infoIcon.svg +5 -0
  223. package/src/assets/icons/searchIcon.svg +4 -0
  224. package/src/components/Chips/Chips.tsx +87 -87
  225. package/src/components/Chips/style.scss +147 -147
  226. package/src/components/InfoForm/InfoForm.module.scss +165 -165
  227. package/src/components/InfoForm/InfoForm.tsx +423 -428
  228. package/src/components/JsonInput/JsonInput.tsx +149 -149
  229. package/src/components/JsonInput/style.module.scss +133 -133
  230. package/src/components/LivePreview/LivePreview.module.scss +180 -24
  231. package/src/components/LivePreview/LivePreview.tsx +226 -191
  232. package/src/components/MethodAccordion/MethodAccordion.module.scss +386 -338
  233. package/src/components/MethodAccordion/MethodAccordion.tsx +670 -514
  234. package/src/components/SVGLoader/SVGLoader.tsx +96 -94
  235. package/src/components/SectionHead/SectionHead.scss +29 -29
  236. package/src/components/SectionHead/SectionHead.tsx +22 -22
  237. package/src/components/SimpleLabelValue/SimpleLabelValue.tsx +31 -31
  238. package/src/components/SimpleLabelValue/index.ts +1 -1
  239. package/src/components/SimpleLabelValue/style.scss +30 -30
  240. package/src/components/Tooltip/Tooltip.scss +133 -133
  241. package/src/components/Tooltip/Tooltip.tsx +85 -85
  242. package/src/components/_global.scss +337 -337
  243. package/src/components/dialog/dialog.ts +57 -54
  244. package/src/components/dialog/index.tsx +86 -85
  245. package/src/components/dialog/style.scss +188 -104
  246. package/src/components/table/style.scss +217 -190
  247. package/src/components/table/table.tsx +489 -327
  248. package/src/components/table/tags-table.tsx +348 -348
  249. package/src/constants/index.ts +95 -93
  250. package/src/constants/methods.constant.ts +26 -0
  251. package/src/constants/regex.ts +7 -7
  252. package/src/global.d.ts +13 -13
  253. package/src/helpers/docs.helper.ts +28 -0
  254. package/src/helpers/layout.helper.ts +176 -174
  255. package/src/helpers/methodAccordion.helper.ts +19 -19
  256. package/src/index.ts +2 -1
  257. package/src/layout/docsComponents/DocsAside/DocsAside.tsx +8 -0
  258. package/src/layout/docsComponents/DocsAside/style.scss +3 -0
  259. package/src/layout/docsComponents/DocsContent/DocsContent.tsx +13 -0
  260. package/src/layout/docsComponents/DocsContent/EndpointPage/index.tsx +183 -0
  261. package/src/layout/docsComponents/DocsContent/EndpointPage/style.scss +230 -0
  262. package/src/layout/docsComponents/DocsContent/TagPage/index.tsx +111 -0
  263. package/src/layout/docsComponents/DocsContent/TagPage/style.scss +246 -0
  264. package/src/layout/docsComponents/DocsContent/style.scss +0 -0
  265. package/src/layout/docsComponents/DocsHeader/DocsHeader.module.scss +198 -0
  266. package/src/layout/docsComponents/DocsHeader/DocsHeader.tsx +119 -0
  267. package/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.tsx +183 -0
  268. package/src/layout/docsComponents/DocsSideMenuTree/style.scss +195 -0
  269. package/src/layout/docsComponents/index.scss +47 -0
  270. package/src/layout/docsComponents/index.tsx +28 -0
  271. package/src/layout/docsLayout.tsx +69 -0
  272. package/src/layout/layout.module.css +61 -61
  273. package/src/layout/layout.tsx +162 -150
  274. package/src/types/layout.type.ts +31 -30
  275. package/src/types/openApi.ts +108 -108
  276. package/src/types/transformedOpenApi.ts +52 -52
  277. package/src/validator/form.scheme.ts +88 -70
  278. package/tsconfig.json +33 -33
  279. package/dist/_virtual/index20.js +0 -2
  280. package/dist/_virtual/index20.js.map +0 -1
  281. package/dist/_virtual/index21.js +0 -2
  282. package/dist/_virtual/index21.js.map +0 -1
  283. package/dist/_virtual/node2.js +0 -2
  284. package/dist/_virtual/node2.js.map +0 -1
  285. package/dist/_virtual/node3.js +0 -2
  286. package/dist/_virtual/node3.js.map +0 -1
  287. package/dist/node_modules/html-dom-parser/node_modules/domhandler/lib/index.js +0 -2
  288. package/dist/node_modules/html-dom-parser/node_modules/domhandler/lib/index.js.map +0 -1
  289. package/dist/node_modules/html-dom-parser/node_modules/domhandler/lib/node.js +0 -2
  290. package/dist/node_modules/html-dom-parser/node_modules/domhandler/lib/node.js.map +0 -1
  291. package/dist/node_modules/html-react-parser/node_modules/domhandler/lib/index.js +0 -2
  292. package/dist/node_modules/html-react-parser/node_modules/domhandler/lib/index.js.map +0 -1
  293. package/dist/node_modules/html-react-parser/node_modules/domhandler/lib/node.js +0 -2
  294. package/dist/node_modules/html-react-parser/node_modules/domhandler/lib/node.js.map +0 -1
  295. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js +0 -2
  296. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js.map +0 -1
  297. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js +0 -2
  298. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js.map +0 -1
  299. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/decode.js +0 -2
  300. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/decode.js.map +0 -1
  301. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.js +0 -2
  302. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.js.map +0 -1
  303. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/encode.js +0 -2
  304. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/encode.js.map +0 -1
  305. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/escape.js +0 -2
  306. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/escape.js.map +0 -1
  307. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-html.js +0 -2
  308. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-html.js.map +0 -1
  309. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-xml.js +0 -2
  310. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-xml.js.map +0 -1
  311. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/encode-html.js +0 -2
  312. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/encode-html.js.map +0 -1
  313. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/index.js +0 -2
  314. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/index.js.map +0 -1
  315. package/dist/node_modules/htmlparser2/node_modules/domhandler/lib/index.js +0 -2
  316. package/dist/node_modules/htmlparser2/node_modules/domhandler/lib/index.js.map +0 -1
  317. package/dist/node_modules/htmlparser2/node_modules/domhandler/lib/node.js +0 -2
  318. package/dist/node_modules/htmlparser2/node_modules/domhandler/lib/node.js.map +0 -1
  319. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/feeds.js +0 -2
  320. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/feeds.js.map +0 -1
  321. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/helpers.js +0 -2
  322. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/helpers.js.map +0 -1
  323. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/index.js +0 -2
  324. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/index.js.map +0 -1
  325. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/legacy.js +0 -2
  326. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/legacy.js.map +0 -1
  327. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js +0 -2
  328. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js.map +0 -1
  329. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/querying.js +0 -2
  330. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/querying.js.map +0 -1
  331. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/stringify.js +0 -2
  332. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/stringify.js.map +0 -1
  333. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/traversal.js +0 -2
  334. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/traversal.js.map +0 -1
  335. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/decode-codepoint.js +0 -2
  336. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/decode-codepoint.js.map +0 -1
  337. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/decode.js +0 -2
  338. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/decode.js.map +0 -1
  339. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/generated/decode-data-html.js +0 -2
  340. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/generated/decode-data-html.js.map +0 -1
  341. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +0 -2
  342. package/dist/node_modules/htmlparser2/node_modules/entities/dist/commonjs/generated/decode-data-xml.js.map +0 -1
  343. package/dist/src/assets/icons/CheckMarkSquare.svg.js +0 -2
  344. package/dist/src/assets/icons/CheckMarkSquare.svg.js.map +0 -1
  345. package/dist/src/assets/icons/CloseIcon.svg.js +0 -2
  346. package/dist/src/assets/icons/CloseIcon.svg.js.map +0 -1
  347. package/dist/src/assets/icons/UpArrow.svg.js +0 -2
  348. package/dist/src/assets/icons/UpArrow.svg.js.map +0 -1
  349. package/dist/src/assets/icons/deleteOutlinedIcon.svg.js +0 -2
  350. package/dist/src/assets/icons/deleteOutlinedIcon.svg.js.map +0 -1
  351. package/dist/src/components/Chips/Chips.js +0 -2
  352. package/dist/src/components/Chips/Chips.js.map +0 -1
  353. package/dist/types/types/index.d.ts +0 -18
@@ -1 +1 @@
1
- {"version":3,"file":"MethodAccordion.js","sources":["../../../../src/components/MethodAccordion/MethodAccordion.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\r\nimport { Accordion, Button, SelectGroup, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\r\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\r\nimport { DeleteIcon, DownArrowIcon, EditIcon, deleteOutlinedIcon } from '../../assets/icons'\r\nimport { httpStatusCodes, methodColorMapping, paramsTableHeaders } from '../../constants/index'\r\nimport Tooltip from '../../components/Tooltip/Tooltip'\r\nimport { TransformedMethod } from '../../types/layout.type'\r\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\r\nimport { capitalize, handleStatusColor } from '../../helpers/methodAccordion.helper'\r\nimport ParamterTable from '../table/table'\r\nimport CommonDialog from '../../components/dialog'\r\nimport JsonInput from '../../components/JsonInput/JsonInput'\r\nimport styles from './MethodAccordion.module.scss'\r\nimport { Tags } from '@entities/openApi'\r\nimport regex from '../../constants/regex'\r\n\r\nconst httpStatusCodeOptions = httpStatusCodes.map((code) => ({\r\n label: (\r\n <div className={styles.statusCodeOptionContainer}>\r\n <div\r\n className={styles.statusCodeOptionCircle}\r\n style={{ backgroundColor: handleStatusColor(code) }}\r\n ></div>\r\n <span>{code}</span>\r\n </div>\r\n ),\r\n value: code,\r\n}))\r\n\r\nconst MethodsAccordion = ({\r\n method,\r\n path,\r\n setFieldValue,\r\n readOnly,\r\n tags,\r\n isOpen,\r\n setIsOpen,\r\n}: {\r\n method: TransformedMethod\r\n path: string\r\n setFieldValue?: (key: string, value: string | string[]) => void\r\n readOnly?: boolean\r\n tags: Tags[]\r\n isOpen: boolean\r\n setIsOpen: (open: boolean) => void\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState({\r\n request: false,\r\n response: false,\r\n method: false,\r\n })\r\n const [isFormOpen, setIsFormOpen] = useState(false)\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tableData, setTableData] = useState([])\r\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\r\n const [selectedParamIndex, setSelectedParamIndex] = useState<number | null>(null)\r\n const [selectedParamName, setSelectedParamName] = useState<string | null>(null)\r\n const [tableRecords, setTableRecords] = useState()\r\n const [selectionTags, setSelectionTags] = useState([])\r\n const [selectedStatusCode, setSelectedStatusCode] = useState(httpStatusCodeOptions[4])\r\n const currentResponse =\r\n method.responses.find((res) => Number(res.code) === selectedStatusCode.value) || '{}'\r\n\r\n const onTableChange = (key, value, index) => {\r\n const newTableData = tableData.map((item, tIndex) => {\r\n if (tIndex === index) {\r\n return { ...item, [key]: value }\r\n } else {\r\n return item\r\n }\r\n })\r\n\r\n setTableData(newTableData)\r\n }\r\n\r\n const generateTableData = (items) => {\r\n return items.map((item, index) => {\r\n return {\r\n id: index,\r\n paramName: item.name,\r\n paramType: capitalize(item.in),\r\n schemaType: capitalize(item.schema?.type) || '',\r\n required: (\r\n <>\r\n {readOnly ? (\r\n item.required ? (\r\n 'True'\r\n ) : (\r\n 'False'\r\n )\r\n ) : (\r\n <Switch\r\n checked={item.required}\r\n onClick={() => {\r\n if (readOnly) {\r\n return null\r\n }\r\n onTableChange('required', !item.required, index)\r\n setFieldValue(`parameters[${index}][required]`, !item.required)\r\n }}\r\n />\r\n )}\r\n </>\r\n ),\r\n description: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n key={`${index}-description`}\r\n allowHTML\r\n disabled={method.parameters[index].description?.length <= 12}\r\n content={\r\n <div style={{ padding: '0.625rem' }}>{method.parameters[index].description}</div>\r\n }\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n delay={[0, 0]}\r\n onShow={() => tooltipRefs[index]?.hide()}\r\n >\r\n <p style={{ alignSelf: 'center' }}>\r\n {method.parameters[index].description\r\n ? method.parameters[index].description.substring(0, 12)\r\n : readOnly && '-'}\r\n {method.parameters[index].description &&\r\n method.parameters[index].description.length > 12\r\n ? '...'\r\n : ''}\r\n </p>\r\n </Tooltip>\r\n {!readOnly && (\r\n <Tooltip\r\n key={`${index}-add-edit-description`}\r\n allowHTML\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) =>\r\n setTooltipRefs((prev) => ({\r\n ...prev,\r\n [index]: instance,\r\n }))\r\n }\r\n content={\r\n <div className={styles.editDescTooltipContent}>\r\n <p className={styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n placeholder=\"Describe parameter...\"\r\n value={item.description}\r\n disabled={readOnly}\r\n maxLength={120}\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value))\r\n onTableChange('description', value, index)\r\n }}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(\r\n `parameters[${index}].description`,\r\n item.description?.trim()\r\n )\r\n tooltipRefs[index]?.hide()\r\n }}\r\n disabled={!item.description?.trim()}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly || method.parameters[index].description?.length > 0 ? (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n ></Button>\r\n ) : (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly ? 'View ' : 'Add '} Description\r\n </Button>\r\n )}\r\n </Tooltip>\r\n )}\r\n\r\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\r\n onClick={() => handleDeleteClick(index, item.name)}\r\n ></Button>\r\n )}\r\n </div>\r\n ),\r\n }\r\n })\r\n }\r\n\r\n const confirmDeleteParameter = () => {\r\n if (selectedParamIndex !== null) {\r\n setTableData((prev) => prev.filter((_, i) => i !== selectedParamIndex))\r\n setFieldValue(\r\n `parameters`,\r\n method?.parameters?.filter((_, i) => i !== selectedParamIndex)\r\n )\r\n }\r\n setOpenDeleteDialog(false)\r\n setSelectedParamIndex(null)\r\n }\r\n\r\n const handleDeleteClick = (id: number, name: string) => {\r\n setSelectedParamIndex(id)\r\n setSelectedParamName(name)\r\n\r\n setOpenDeleteDialog(true)\r\n }\r\n\r\n const saveNewRow = (values) => {\r\n setTableData([...tableData, values])\r\n setFieldValue(`parameters`, [...method.parameters, values])\r\n }\r\n\r\n useEffect(() => {\r\n setTableRecords(generateTableData(tableData))\r\n }, [tableData])\r\n\r\n useEffect(() => {\r\n if (method?.parameters) {\r\n setTableData(method.parameters)\r\n }\r\n }, [method, path])\r\n\r\n useEffect(() => {\r\n // prepare tags selection list\r\n if (method?.tags.length || tags?.length) {\r\n const convertedStringArray = (method?.tags || [])?.map((item) => ({\r\n label: capitalize(item),\r\n value: item,\r\n }))\r\n const mergedArray = [\r\n ...convertedStringArray,\r\n ...(tags || []).map((item) => ({ label: capitalize(item.name), value: item.name })),\r\n ]\r\n\r\n const filteredArray = mergedArray.filter(\r\n (value, index, self) => index === self.findIndex((t) => t.value === value.value)\r\n )\r\n\r\n setSelectionTags(filteredArray)\r\n }\r\n }, [tags, method])\r\n\r\n return (\r\n <div>\r\n <Accordion\r\n expanded={isOpen}\r\n onChange={() => setIsOpen(!isOpen)}\r\n className={`${styles.methodAccordion} ${readOnly ? styles.readOnly : ''}`}\r\n summary={\r\n <div className={styles.methodSummaryContainer}>\r\n <div className={styles.methodSummary}>\r\n <span\r\n style={{\r\n backgroundColor: methodColorMapping?.[method?.type]?.color || '#3A6CD1',\r\n }}\r\n className={styles.methodLabel}\r\n >\r\n {methodColorMapping?.[method?.type]?.label || method?.type}\r\n </span>\r\n <span className={styles.methodPath}>{path}</span>\r\n </div>\r\n <div\r\n className={`${styles.methodExpandArrowContainer} ${isOpen ? styles.expanded : ''}`}\r\n >\r\n <SVGLoader src={DownArrowIcon} width=\"2rem\" height=\"2rem\" />\r\n </div>\r\n </div>\r\n }\r\n children={\r\n <div className={styles.methodAccordionContent}>\r\n <SelectGroup\r\n className={styles.methodDesc}\r\n disabled={readOnly}\r\n placeholder=\"Select Tags\"\r\n label=\"Tags\"\r\n value={method.tags?.map((t) => ({\r\n label: capitalize(t),\r\n value: t,\r\n }))}\r\n onChange={(item) => {\r\n setFieldValue(\r\n 'tags',\r\n item.map((i) => i.value)\r\n )\r\n }}\r\n options={[\r\n {\r\n list: selectionTags,\r\n },\r\n ]}\r\n isMultiple={true}\r\n withSearch={false}\r\n clearable={false}\r\n />\r\n {!readOnly ? (\r\n <TextArea\r\n className={styles.methodDesc}\r\n label=\"Description\"\r\n placeholder=\"Describe the method's purpose and functionality...\"\r\n maxLength={120}\r\n value={method?.description}\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value)) setFieldValue('description', value)\r\n }}\r\n />\r\n ) : (\r\n <SimpleLabelValue\r\n key={'description'}\r\n label={'Description: '}\r\n value={method?.description || '-'}\r\n />\r\n )}\r\n <div className={styles.paramsTable}>\r\n <ParamterTable\r\n id=\"paramter-table\"\r\n data={tableRecords}\r\n headCells={paramsTableHeaders}\r\n isFormOpen={isFormOpen}\r\n setIsFormOpen={setIsFormOpen}\r\n saveNewRow={saveNewRow}\r\n readOnly={readOnly}\r\n />\r\n </div>\r\n {method?.type !== 'get' && (\r\n <Accordion\r\n expanded={isExpanded.request}\r\n onChange={() => null}\r\n className={styles.requestAccordion}\r\n summary={\r\n <span className={styles.requestAccordionSummary}>\r\n <div\r\n className={styles.requestAccordionSummary_title}\r\n onClick={() =>\r\n setIsExpanded((prev) => ({\r\n ...prev,\r\n request: !prev.request,\r\n }))\r\n }\r\n >\r\n <SVGLoader\r\n className={isExpanded.request ? styles.expanded : ''}\r\n src={DownArrowIcon}\r\n width=\"2rem\"\r\n height=\"2rem\"\r\n />\r\n Request\r\n {method?.type !== 'delete' && <span style={{ color: 'red' }}>*</span>}\r\n </div>\r\n </span>\r\n }\r\n children={\r\n <JsonInput\r\n acceptType=\"JSON\"\r\n withFooter={!readOnly}\r\n className={'jsonField'}\r\n placeholder=\"Enter your request body as a JSON object....\"\r\n fieldIsDisabled={readOnly}\r\n value={method?.requestBody?.content?.schema?.properties || '{}'}\r\n onChange={(value: string) => {\r\n setFieldValue('requestBody.content.schema.properties', value)\r\n }}\r\n onValidation={() => null}\r\n />\r\n }\r\n />\r\n )}\r\n <Accordion\r\n expanded={isExpanded.response}\r\n onChange={() => null}\r\n className={styles.responseAccordion}\r\n summary={\r\n <span className={styles.responseAccordionSummary}>\r\n <div\r\n className={styles.responseAccordionSummary_title}\r\n onClick={() =>\r\n setIsExpanded((prev) => ({\r\n ...prev,\r\n response: !prev.response,\r\n }))\r\n }\r\n >\r\n <SVGLoader\r\n className={isExpanded.response ? styles.expanded : ''}\r\n src={DownArrowIcon}\r\n width=\"2rem\"\r\n height=\"2rem\"\r\n />\r\n Response<span style={{ color: 'red' }}>*</span>\r\n </div>\r\n\r\n <SelectGroup\r\n withSearch={false}\r\n isMultiple={false}\r\n clearable={false}\r\n placeholder=\"200\"\r\n options={[\r\n {\r\n list: httpStatusCodeOptions,\r\n },\r\n ]}\r\n value={selectedStatusCode}\r\n onChange={(value) => {\r\n setSelectedStatusCode(value)\r\n }}\r\n />\r\n </span>\r\n }\r\n children={\r\n <JsonInput\r\n acceptType=\"JSON\"\r\n withFooter={!readOnly}\r\n className={'jsonField'}\r\n placeholder=\"Enter your response as a JSON object...\"\r\n fieldIsDisabled={readOnly}\r\n value={currentResponse?.content?.schema?.properties || '{}'}\r\n onChange={(value) => {\r\n const currentResIndex = method.responses.findIndex(\r\n (res) => res.code === currentResponse.code\r\n )\r\n if (currentResIndex !== -1) {\r\n setFieldValue(\r\n `responses[${currentResIndex}].content.schema.properties`,\r\n value\r\n )\r\n } else {\r\n const clonedResponses = structuredClone(method.responses)\r\n\r\n clonedResponses.push({\r\n code: selectedStatusCode.value.toString(),\r\n content: {\r\n contentType: 'application/json',\r\n schema: {\r\n type: 'object',\r\n properties: value,\r\n },\r\n },\r\n })\r\n\r\n setFieldValue('responses', clonedResponses)\r\n }\r\n }}\r\n onValidation={(valid) => null}\r\n />\r\n }\r\n />\r\n </div>\r\n }\r\n />\r\n <CommonDialog\r\n status=\"error\"\r\n content={\r\n <p\r\n style={{\r\n textAlign: 'center',\r\n fontWeight: 400,\r\n fontSize: '1rem',\r\n lineHeight: '1.4375rem',\r\n }}\r\n className=\"delete-msg-container\"\r\n >\r\n Are you sure you want to delete\r\n <span className=\"plan-name\">\r\n {' '}\r\n Parameter <strong>{selectedParamName}</strong>\r\n </span>\r\n ?\r\n </p>\r\n }\r\n onSubmit={{\r\n onClick: confirmDeleteParameter,\r\n text: 'Delete',\r\n color: 'error',\r\n fullWidth: true,\r\n }}\r\n onCancel={{\r\n text: 'Cancel',\r\n color: 'normal',\r\n fullWidth: true,\r\n }}\r\n onClose={() => setOpenDeleteDialog(false)}\r\n open={openDeleteDialog}\r\n icon={<SVGLoader src={deleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default MethodsAccordion\r\n"],"names":["httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","className","styles","statusCodeOptionContainer","children","_jsx","statusCodeOptionCircle","style","backgroundColor","handleStatusColor","value","MethodsAccordion","method","path","setFieldValue","readOnly","tags","isOpen","setIsOpen","isExpanded","setIsExpanded","useState","request","response","isFormOpen","setIsFormOpen","tooltipRefs","setTooltipRefs","tableData","setTableData","openDeleteDialog","setOpenDeleteDialog","selectedParamIndex","setSelectedParamIndex","selectedParamName","setSelectedParamName","tableRecords","setTableRecords","selectionTags","setSelectionTags","selectedStatusCode","setSelectedStatusCode","currentResponse","responses","find","res","Number","onTableChange","key","index","newTableData","item","tIndex","Object","assign","handleDeleteClick","id","name","useEffect","paramName","paramType","capitalize","in","schemaType","_a","schema","type","required","jsx","_Fragment","Switch","checked","onClick","description","paramDescContainer","Tooltip","allowHTML","disabled","parameters","_b","length","content","padding","arrowWithBorder","placement","delay","onShow","hide","alignSelf","substring","trigger","onCreate","instance","prev","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","maxLength","onChange","regex","ASCII","test","Button","editDescTooltipContent_btn","variant","size","trim","_c","_d","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","jsxs","paramDescContainer_separator","deleteParamBtn","DeleteIcon","filteredArray","filter","self","findIndex","t","Accordion","expanded","methodAccordion","summary","methodSummaryContainer","methodSummary","methodColorMapping","methodLabel","methodPath","methodExpandArrowContainer","DownArrowIcon","methodAccordionContent","SelectGroup","methodDesc","i","options","list","isMultiple","withSearch","clearable","SimpleLabelValue","paramsTable","ParamterTable","data","headCells","paramsTableHeaders","saveNewRow","values","requestAccordion","requestAccordionSummary","requestAccordionSummary_title","JsonInput","acceptType","withFooter","fieldIsDisabled","_f","_e","requestBody","properties","onValidation","responseAccordion","responseAccordionSummary","responseAccordionSummary_title","_h","_g","currentResIndex","clonedResponses","structuredClone","push","toString","contentType","valid","CommonDialog","status","textAlign","fontWeight","fontSize","lineHeight","onSubmit","_","text","fullWidth","onCancel","onClose","open","icon","deleteOutlinedIcon"],"mappings":"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"}
1
+ {"version":3,"file":"MethodAccordion.js","sources":["../../../../src/components/MethodAccordion/MethodAccordion.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport {\n Accordion,\n Button,\n Input,\n SelectGroup,\n SelectGroupV2,\n Switch,\n TextArea,\n} from 'digitinary-ui'\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\nimport { DeleteIcon, DownArrowIcon, EditIcon, DeleteOutlinedIcon } from '../../assets/icons'\nimport PlusIcon from '../../assets/icons/Plus.svg'\nimport PlusSquare from '../../assets/icons/PlusSquare.svg'\nimport { httpStatusCodes, methodColorMapping, paramsTableHeaders } from '../../constants/index'\nimport Tooltip from '../../components/Tooltip/Tooltip'\nimport { TransformedMethod } from '../../types/layout.type'\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\nimport { capitalize, handleStatusColor } from '../../helpers/methodAccordion.helper'\nimport ParamterTable from '../table/table'\nimport CommonDialog from '../../components/dialog'\nimport JsonInput from '../../components/JsonInput/JsonInput'\nimport styles from './MethodAccordion.module.scss'\nimport { Tags } from '@entities/openApi'\nimport regex from '../../constants/regex'\n\nconst httpStatusCodeOptions = httpStatusCodes.map((code) => ({\n label: (\n <div className={styles.statusCodeOptionContainer}>\n <div\n className={styles.statusCodeOptionCircle}\n style={{ backgroundColor: handleStatusColor(code) }}\n ></div>\n <span>{code}</span>\n </div>\n ),\n value: code,\n}))\n\nconst MethodsAccordion = ({\n method,\n path,\n setFieldValue,\n readOnly,\n tags,\n isOpen,\n setIsOpen,\n errors,\n}: {\n method: TransformedMethod\n path: string\n setFieldValue?: (key: string, value: string | string[]) => void\n readOnly?: boolean\n tags: Tags[]\n isOpen: boolean\n setIsOpen: (open: boolean) => void\n errors?: string\n}) => {\n const [isExpanded, setIsExpanded] = useState({\n request: false,\n response: false,\n method: false,\n })\n const [isFormOpen, setIsFormOpen] = useState<'Req' | 'Res'>(undefined)\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\n const [tableData, setTableData] = useState([])\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\n const [selectedParamIndex, setSelectedParamIndex] = useState<number | null>(null)\n const [selectedParamName, setSelectedParamName] = useState<string | null>(null)\n const [tableRecords, setTableRecords] = useState()\n const [tableResponseRecords, setTableResponseRecords] = useState()\n const [selectionTags, setSelectionTags] = useState([])\n const [selectedStatusCode, setSelectedStatusCode] = useState(httpStatusCodeOptions[4])\n const [enumFields, setEnumFields] = useState([])\n const [tooltipEnumRef, setTooltipEnumRef] = useState(null)\n const currentResponse =\n method.responses.find((res) => Number(res.code) === selectedStatusCode.value) || '{}'\n\n const onTableChange = (key, value, index) => {\n const newTableData = tableData.map((item, tIndex) => {\n if (tIndex === index) {\n return { ...item, [key]: value }\n } else {\n return item\n }\n })\n\n setTableData(newTableData)\n }\n\n const generateTableData = (items, isForRequest?: boolean) => {\n const data = isForRequest\n ? items.filter((item) => item.in && item.in.toLowerCase() != 'header')\n : items.filter((item) => item.in && item.in.toLowerCase() == 'header')\n return data.map((item, index) => {\n return {\n id: index,\n paramName: item.name,\n paramType: capitalize(item.in),\n schemaType: capitalize(item.schema?.type) || '',\n required: (\n <>\n {readOnly ? (\n item.required ? (\n 'True'\n ) : (\n 'False'\n )\n ) : (\n <Switch\n checked={item.required}\n onClick={() => {\n if (readOnly) {\n return null\n }\n onTableChange('required', !item.required, index)\n setFieldValue(`parameters[${index}][required]`, !item.required)\n }}\n />\n )}\n </>\n ),\n description: (\n <div className={styles.paramDescContainer}>\n <Tooltip\n key={`${index}-description`}\n allowHTML\n disabled={method.parameters[index].description?.length <= 12}\n content={\n <div style={{ padding: '0.625rem' }}>{method.parameters[index].description}</div>\n }\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n delay={[0, 0]}\n onShow={() => tooltipRefs[index]?.hide()}\n >\n <p style={{ alignSelf: 'center' }}>\n {method.parameters[index].description\n ? method.parameters[index].description.substring(0, 12)\n : readOnly && '-'}\n {method.parameters[index].description &&\n method.parameters[index].description.length > 12\n ? '...'\n : ''}\n </p>\n </Tooltip>\n {!readOnly && (\n <Tooltip\n key={`${index}-add-edit-description`}\n allowHTML\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) =>\n setTooltipRefs((prev) => ({\n ...prev,\n [index]: instance,\n }))\n }\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n placeholder=\"Describe parameter...\"\n value={item.description}\n disabled={readOnly}\n maxLength={120}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value))\n onTableChange('description', value, index)\n }}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue(\n `parameters[${index}].description`,\n item.description?.trim()\n )\n tooltipRefs[index]?.hide()\n }}\n disabled={!item.description?.trim()}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n {readOnly || method.parameters[index].description?.length > 0 ? (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n ></Button>\n ) : (\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} Description\n </Button>\n )}\n </Tooltip>\n )}\n\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\n\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\n onClick={() => handleDeleteClick(index, item.name)}\n ></Button>\n )}\n </div>\n ),\n enum: (\n <>\n {readOnly ? (\n item?.schema?.enum?.join(' / ')\n ) : (\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n {method.parameters[index]?.schema &&\n method.parameters[index]?.schema?.type?.toLowerCase() != 'array' &&\n method.parameters[index]?.schema?.type?.toLowerCase() != 'object' ? (\n <Tooltip\n disabled={\n method.parameters[index]?.schema?.type?.toLowerCase() == 'array' ||\n method.parameters[index]?.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 {!!method.parameters[index]?.schema?.enum &&\n !!method.parameters[index]?.schema?.enum.length &&\n method.parameters[index]?.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(`parameters[${index}].schema.enum[${_index}]`, value)\n }}\n />\n ))}\n <p\n className={'addEnumButton'}\n onClick={() => {\n setFieldValue(`parameters[${index}].schema.enum`, [\n ...method.parameters[index]?.schema?.enum,\n '',\n ])\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(`parameters[${index}].schema.enum`, [\n ...method.parameters[index].schema.enum,\n ])\n setEnumFields([])\n tooltipEnumRef?.hide()\n }}\n disabled={\n (enumFields.length > 0 &&\n enumFields?.filter((item) => !item).length) ||\n (method?.parameters[index]?.schema?.enum &&\n method?.parameters[index]?.schema?.enum?.length > 0 &&\n method?.parameters[index]?.schema?.enum?.filter((item) => !item).length)\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n <Button\n className={styles.editDescBtn}\n id=\"EnumButton\"\n variant=\"link\"\n color=\"action\"\n endIcon={\n <SVGLoader id=\"enumIcon\" src={PlusIcon} width=\"1.5rem\" height=\"1.5rem\" />\n }\n >\n Add\n </Button>\n </Tooltip>\n ) : (\n '-'\n )}{' '}\n </div>\n )}\n </>\n ),\n }\n })\n }\n\n const confirmDeleteParameter = () => {\n if (selectedParamIndex !== null) {\n setTableData((prev) => prev.filter((_, i) => i !== selectedParamIndex))\n setFieldValue(\n `parameters`,\n method?.parameters?.filter((_, i) => i !== selectedParamIndex)\n )\n }\n setOpenDeleteDialog(false)\n setSelectedParamIndex(null)\n }\n\n const handleDeleteClick = (id: number, name: string) => {\n setSelectedParamIndex(id)\n setSelectedParamName(name)\n\n setOpenDeleteDialog(true)\n }\n\n const saveNewRow = (values) => {\n setTableData([...tableData, values])\n setFieldValue(`parameters`, [...method.parameters, values])\n }\n\n useEffect(() => {\n setTableRecords(generateTableData(tableData, true))\n setTableResponseRecords(generateTableData(tableData, false))\n }, [tableData])\n\n useEffect(() => {\n if (method?.parameters) {\n setTableData(method.parameters)\n }\n }, [method, path])\n\n useEffect(() => {\n // prepare tags selection list\n if (method?.tags.length || tags?.length) {\n const convertedStringArray = (method?.tags || [])?.map((item) => ({\n label: capitalize(item),\n value: item,\n }))\n const mergedArray = [\n ...convertedStringArray,\n ...(tags || []).map((item) => ({ label: capitalize(item.name), value: item.name })),\n ]\n\n const filteredArray = mergedArray.filter(\n (value, index, self) => index === self.findIndex((t) => t.value === value.value)\n )\n\n setSelectionTags(filteredArray)\n }\n }, [tags, method])\n\n return (\n <div>\n <Accordion\n expanded={isOpen}\n onChange={() => setIsOpen(!isOpen)}\n className={`${styles.methodAccordion} ${readOnly ? styles.readOnly : ''}`}\n summary={\n <div className={styles.methodSummaryContainer}>\n <div className={styles.methodSummary}>\n <span\n style={{\n backgroundColor: methodColorMapping?.[method?.type]?.color || '#3A6CD1',\n }}\n className={styles.methodLabel}\n >\n {methodColorMapping?.[method?.type]?.label || method?.type}\n </span>\n <span className={styles.methodPath}>{path}</span>\n </div>\n <div\n className={`${styles.methodExpandArrowContainer} ${isOpen ? styles.expanded : ''}`}\n >\n <SVGLoader src={DownArrowIcon} width=\"2rem\" height=\"2rem\" />\n </div>\n </div>\n }\n children={\n <div className={styles.methodAccordionContent}>\n {!readOnly ? (\n <Input\n className={styles.methodDesc}\n label=\"Endpoint Name\"\n required\n placeholder=\"Endpoint name...\"\n value={method?.summary}\n onChange={(value) => {\n value = value || ''\n if (value === '' || regex.ASCII.test(value)) {\n setFieldValue('summary', value)\n }\n }}\n onClear={() => {\n setFieldValue('summary', '')\n }}\n errorMsg={errors?.summary}\n />\n ) : (\n <SimpleLabelValue\n key={'summary'}\n label={'Endpoint Name: '}\n value={method?.summary || '-'}\n />\n )}\n <SelectGroup\n className={styles.methodDesc}\n disabled={readOnly}\n placeholder=\"Select Tags\"\n label=\"Tags\"\n value={method.tags?.map((t) => ({\n label: capitalize(t),\n value: t,\n }))}\n onChange={(item) => {\n setFieldValue(\n 'tags',\n item.map((i) => i.value)\n )\n }}\n options={[\n {\n list: selectionTags,\n },\n ]}\n isMultiple={true}\n withSearch={false}\n clearable={false}\n />\n {!readOnly ? (\n <TextArea\n className={styles.methodDesc}\n label=\"Description\"\n placeholder=\"Describe the method's purpose and functionality...\"\n maxLength={120}\n value={method?.description}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setFieldValue('description', value)\n }}\n />\n ) : (\n <SimpleLabelValue\n key={'description'}\n label={'Description: '}\n value={method?.description || '-'}\n />\n )}\n <div className={styles.paramsTable}>\n <h4 className={styles.paramsTableBodyHead}>Request Details</h4>\n <ParamterTable\n id=\"paramter-request-table\"\n data={tableRecords}\n headCells={paramsTableHeaders}\n isFormOpen={isFormOpen && isFormOpen == 'Req'}\n setIsFormOpen={setIsFormOpen}\n saveNewRow={saveNewRow}\n readOnly={readOnly}\n isRequest={true}\n />\n {method?.type !== 'get' && method?.type !== 'delete' && (\n <Accordion\n expanded={isExpanded.request}\n onChange={() => null}\n className={styles.requestAccordion}\n summary={\n <span className={styles.requestAccordionSummary}>\n <div\n className={styles.requestAccordionSummary_title}\n onClick={() =>\n setIsExpanded((prev) => ({\n ...prev,\n request: !prev.request,\n }))\n }\n >\n <SVGLoader\n className={isExpanded.request ? styles.expanded : ''}\n src={DownArrowIcon}\n width=\"2rem\"\n height=\"2rem\"\n />\n Request\n {method?.type !== 'delete' && <span style={{ color: 'red' }}>*</span>}\n </div>\n </span>\n }\n children={\n <JsonInput\n acceptType=\"JSON\"\n withFooter={!readOnly}\n className={'jsonField'}\n placeholder=\"Enter your request body as a JSON object....\"\n fieldIsDisabled={readOnly}\n value={method?.requestBody?.content?.schema?.properties || '{}'}\n onChange={(value: string) => {\n setFieldValue('requestBody.content.schema.properties', value)\n }}\n onValidation={() => null}\n />\n }\n />\n )}\n </div>\n <div className={styles.paramsTable}>\n <div className={styles.responseHeader}>\n <h4 className={styles.paramsTableBodyHead}>Response Details</h4>\n <SelectGroup\n withSearch={false}\n isMultiple={false}\n clearable={false}\n placeholder=\"200\"\n options={[\n {\n list: httpStatusCodeOptions,\n },\n ]}\n value={selectedStatusCode}\n onChange={(value) => {\n setSelectedStatusCode(value)\n }}\n />\n </div>\n <ParamterTable\n id=\"paramter-response-table\"\n data={tableResponseRecords}\n headCells={paramsTableHeaders}\n isFormOpen={isFormOpen && isFormOpen == 'Res'}\n setIsFormOpen={setIsFormOpen}\n saveNewRow={saveNewRow}\n readOnly={readOnly}\n isRequest={false}\n />\n <Accordion\n expanded={isExpanded.response}\n onChange={() => null}\n className={styles.responseAccordion}\n summary={\n <span className={styles.responseAccordionSummary}>\n <div\n className={styles.responseAccordionSummary_title}\n onClick={() =>\n setIsExpanded((prev) => ({\n ...prev,\n response: !prev.response,\n }))\n }\n >\n <SVGLoader\n className={isExpanded.response ? styles.expanded : ''}\n src={DownArrowIcon}\n width=\"2rem\"\n height=\"2rem\"\n />\n Response<span style={{ color: 'red' }}>*</span>\n </div>\n </span>\n }\n children={\n <JsonInput\n acceptType=\"JSON\"\n withFooter={!readOnly}\n className={'jsonField'}\n placeholder=\"Enter your response as a JSON object...\"\n fieldIsDisabled={readOnly}\n value={currentResponse?.content?.schema?.properties || '{}'}\n onChange={(value) => {\n const currentResIndex = method.responses.findIndex(\n (res) => res.code === currentResponse.code\n )\n if (currentResIndex !== -1) {\n setFieldValue(\n `responses[${currentResIndex}].content.schema.properties`,\n value\n )\n } else {\n const clonedResponses = structuredClone(method.responses)\n\n clonedResponses.push({\n code: selectedStatusCode.value.toString(),\n content: {\n contentType: 'application/json',\n schema: {\n type: 'object',\n properties: value,\n },\n },\n })\n\n setFieldValue('responses', clonedResponses)\n }\n }}\n onValidation={(valid) => null}\n />\n }\n />\n </div>\n </div>\n }\n />\n <CommonDialog\n status=\"error\"\n content={\n <p\n style={{\n textAlign: 'center',\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: '1.4375rem',\n }}\n className=\"delete-msg-container\"\n >\n Are you sure you want to delete\n <span className=\"plan-name\">\n {' '}\n Parameter <strong>{selectedParamName}</strong>\n </span>\n ?\n </p>\n }\n onSubmit={{\n onClick: confirmDeleteParameter,\n text: 'Delete',\n color: 'error',\n fullWidth: true,\n }}\n onCancel={{\n text: 'Cancel',\n color: 'normal',\n fullWidth: true,\n }}\n onClose={() => setOpenDeleteDialog(false)}\n open={openDeleteDialog}\n icon={<SVGLoader src={DeleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\n />\n </div>\n )\n}\n\nexport default MethodsAccordion\n"],"names":["httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","className","styles","statusCodeOptionContainer","children","_jsx","statusCodeOptionCircle","style","backgroundColor","handleStatusColor","value","MethodsAccordion","method","path","setFieldValue","readOnly","tags","isOpen","setIsOpen","errors","isExpanded","setIsExpanded","useState","request","response","isFormOpen","setIsFormOpen","undefined","tooltipRefs","setTooltipRefs","tableData","setTableData","openDeleteDialog","setOpenDeleteDialog","selectedParamIndex","setSelectedParamIndex","selectedParamName","setSelectedParamName","tableRecords","setTableRecords","tableResponseRecords","setTableResponseRecords","selectionTags","setSelectionTags","selectedStatusCode","setSelectedStatusCode","enumFields","setEnumFields","tooltipEnumRef","setTooltipEnumRef","currentResponse","responses","find","res","Number","onTableChange","key","index","newTableData","item","tIndex","Object","assign","generateTableData","items","isForRequest","filter","in","toLowerCase","id","paramName","name","paramType","capitalize","schemaType","_a","schema","type","required","jsx","_Fragment","Switch","checked","onClick","description","paramDescContainer","Tooltip","allowHTML","disabled","parameters","_b","length","content","padding","arrowWithBorder","placement","delay","onShow","hide","alignSelf","substring","trigger","onCreate","instance","prev","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","maxLength","onChange","regex","ASCII","test","Button","editDescTooltipContent_btn","variant","size","trim","_c","_d","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","jsxs","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteClick","enum","_f","_e","join","_g","_j","_h","_o","_l","_m","_q","_p","_r","_t","_s","_u","_w","_v","_y","_x","_1","_0","_z","_index","Input","clearable","PlusSquare","_3","_2","_6","_4","_5","_9","_7","_8","PlusIcon","saveNewRow","values","useEffect","filteredArray","self","findIndex","t","Accordion","expanded","methodAccordion","summary","methodSummaryContainer","methodSummary","methodColorMapping","methodLabel","methodPath","methodExpandArrowContainer","DownArrowIcon","methodAccordionContent","SimpleLabelValue","methodDesc","onClear","errorMsg","SelectGroup","i","options","list","isMultiple","withSearch","paramsTable","paramsTableBodyHead","ParamterTable","data","headCells","paramsTableHeaders","isRequest","requestAccordion","requestAccordionSummary","requestAccordionSummary_title","JsonInput","acceptType","withFooter","fieldIsDisabled","requestBody","properties","onValidation","responseHeader","responseAccordion","responseAccordionSummary","responseAccordionSummary_title","currentResIndex","clonedResponses","structuredClone","push","toString","contentType","valid","CommonDialog","status","textAlign","fontWeight","fontSize","lineHeight","onSubmit","_","text","fullWidth","onCancel","onClose","open","icon","DeleteOutlinedIcon"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SVGLoader.js","sources":["../../../../src/components/SVGLoader/SVGLoader.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react'\r\nimport parse from 'html-react-parser'\r\n\r\n// Utility function to create an SVG element from a string\r\nconst createSvgElement = (svgString: string): SVGSVGElement | null => {\r\n const parser = new DOMParser()\r\n const doc = parser.parseFromString(svgString, 'image/svg+xml')\r\n return doc.querySelector('svg')\r\n}\r\n\r\n// Define the type for SVG attributes\r\ntype SVGAttributes = React.SVGProps<SVGSVGElement>\r\n\r\ninterface SVGLoaderProps extends SVGAttributes {\r\n src: string\r\n cache?: boolean\r\n}\r\n\r\nconst SVGLoader: React.FC<SVGLoaderProps> | any = ({ src, cache = true, ...props }) => {\r\n const [svgMarkup, setSvgMarkup] = useState<string | null>(null)\r\n\r\n useEffect(() => {\r\n if (!src) return\r\n if (typeof src !== 'string') console.log({ src })\r\n const isUrl = src.startsWith('http') || src.startsWith('/')\r\n\r\n const cacheName = 'svg-cache'\r\n\r\n const fetchSvg = async () => {\r\n try {\r\n let svgString: string | null = null\r\n\r\n // Use the Cache API if caching is enabled\r\n if (cache && isUrl && 'caches' in window) {\r\n const cacheStorage = await caches.open(cacheName)\r\n const cachedResponse = await cacheStorage.match(src)\r\n\r\n // If SVG is found in cache, use it\r\n if (cachedResponse && cachedResponse.ok) {\r\n svgString = await cachedResponse.text()\r\n setSvgMarkup(svgString)\r\n return\r\n }\r\n }\r\n\r\n // If not cached, fetch from URL\r\n if (isUrl) {\r\n const response = await fetch(src)\r\n\r\n // Clone the response before consuming it\r\n const responseClone = response.clone()\r\n\r\n // Consume the response body for the SVG content\r\n svgString = await response.text()\r\n\r\n // Store the cloned response in the cache\r\n if (cache && 'caches' in window) {\r\n const cacheStorage = await caches.open(cacheName)\r\n await cacheStorage.put(src, responseClone)\r\n }\r\n } else {\r\n // If it's not a URL (it's inline), just use the source string\r\n svgString = src\r\n }\r\n\r\n // If we have valid SVG content, set it\r\n if (svgString) {\r\n const svg = createSvgElement(svgString)\r\n if (svg) {\r\n const svgStringWithProps = new XMLSerializer().serializeToString(svg)\r\n setSvgMarkup(svgStringWithProps)\r\n }\r\n }\r\n } catch (error) {\r\n console.error('Error loading SVG:', error)\r\n }\r\n }\r\n\r\n fetchSvg()\r\n }, [src, props])\r\n\r\n if (!svgMarkup) return null\r\n\r\n // Parse the SVG string and return it as JSX\r\n const parsedSvg = parse(svgMarkup)\r\n // Sometimes parse returns an array which includes the element\r\n const toBeClonedElement = Array.isArray(parsedSvg) ? parsedSvg.find((item) => React.isValidElement(item)) : parsedSvg\r\n // Clone the parsed SVG element to apply the props\r\n const clonedSvg = React.cloneElement(toBeClonedElement as React.ReactElement, props)\r\n\r\n return <>{clonedSvg}</>\r\n}\r\n\r\nexport default SVGLoader\r\n"],"names":["SVGLoader","_a","src","cache","props","__rest","svgMarkup","setSvgMarkup","useState","useEffect","console","log","isUrl","startsWith","cacheName","__awaiter","svgString","window","cacheStorage","caches","open","cachedResponse","match","ok","text","response","fetch","responseClone","clone","put","svg","DOMParser","parseFromString","querySelector","createSvgElement","svgStringWithProps","XMLSerializer","serializeToString","error","parsedSvg","parse","toBeClonedElement","Array","isArray","find","item","React","isValidElement","clonedSvg","cloneElement","_jsx","jsx","_Fragment","Fragment","children"],"mappings":"iQAIA,MAcMA,EAA6CC,QAAAC,IAAEA,EAAGC,MAAEA,GAAQ,KAASC,EAAxBC,EAAAJ,EAAA,CAAA,MAAA,UACjD,MAAOK,EAAWC,GAAgBC,EAAwB,MA8D1D,GA5DAC,GAAU,KACR,IAAKP,EAAK,OACS,iBAARA,GAAkBQ,QAAQC,IAAI,CAAET,QAC3C,MAAMU,EAAQV,EAAIW,WAAW,SAAWX,EAAIW,WAAW,KAEjDC,EAAY,YAEUC,OAAA,OAAA,OAAA,GAAA,YAC1B,IACE,IAAIC,EAA2B,KAG/B,GAAIb,GAASS,GAAS,WAAYK,OAAQ,CACxC,MAAMC,QAAqBC,OAAOC,KAAKN,GACjCO,QAAuBH,EAAaI,MAAMpB,GAGhD,GAAImB,GAAkBA,EAAeE,GAGnC,OAFAP,QAAkBK,EAAeG,YACjCjB,EAAaS,EAGhB,CAGD,GAAIJ,EAAO,CACT,MAAMa,QAAiBC,MAAMxB,GAGvByB,EAAgBF,EAASG,QAM/B,GAHAZ,QAAkBS,EAASD,OAGvBrB,GAAS,WAAYc,OAAQ,CAC/B,MAAMC,QAAqBC,OAAOC,KAAKN,SACjCI,EAAaW,IAAI3B,EAAKyB,EAC7B,CACF,MAECX,EAAYd,EAId,GAAIc,EAAW,CACb,MAAMc,EA/DS,CAACd,IACT,IAAIe,WACAC,gBAAgBhB,EAAW,iBACnCiB,cAAc,OA4DLC,CAAiBlB,GAC7B,GAAIc,EAAK,CACP,MAAMK,GAAqB,IAAIC,eAAgBC,kBAAkBP,GACjEvB,EAAa4B,EACd,CACF,CACF,CAAC,MAAOG,GACP5B,QAAQ4B,MAAM,qBAAsBA,EACrC,CACH,GAEU,GACT,CAACpC,EAAKE,KAEJE,EAAW,OAAO,KAGvB,MAAMiC,EAAYC,EAAMlC,GAElBmC,EAAoBC,MAAMC,QAAQJ,GAAaA,EAAUK,MAAMC,GAASC,EAAMC,eAAeF,KAASN,EAEtGS,EAAYF,EAAMG,aAAaR,EAAyCrC,GAE9E,OAAO8C,EAAAC,IAAAC,EAAAC,SAAA,CAAAC,SAAGN,GAAa"}
1
+ {"version":3,"file":"SVGLoader.js","sources":["../../../../src/components/SVGLoader/SVGLoader.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react'\nimport parse from 'html-react-parser'\n\n// Utility function to create an SVG element from a string\nconst createSvgElement = (svgString: string): SVGSVGElement | null => {\n const parser = new DOMParser()\n const doc = parser.parseFromString(svgString, 'image/svg+xml')\n return doc.querySelector('svg')\n}\n\n// Define the type for SVG attributes\ntype SVGAttributes = React.SVGProps<SVGSVGElement>\n\ninterface SVGLoaderProps extends SVGAttributes {\n src: string\n cache?: boolean\n}\n\nconst SVGLoader: React.FC<SVGLoaderProps> | any = ({ src, cache = true, ...props }) => {\n const [svgMarkup, setSvgMarkup] = useState<string | null>(null)\n\n useEffect(() => {\n if (!src) return\n if (typeof src !== 'string') console.log({ src })\n const isUrl = src.startsWith('http') || src.startsWith('/')\n\n const cacheName = 'svg-cache'\n\n const fetchSvg = async () => {\n try {\n let svgString: string | null = null\n\n // Use the Cache API if caching is enabled\n if (cache && isUrl && 'caches' in window) {\n const cacheStorage = await caches.open(cacheName)\n const cachedResponse = await cacheStorage.match(src)\n\n // If SVG is found in cache, use it\n if (cachedResponse && cachedResponse.ok) {\n svgString = await cachedResponse.text()\n setSvgMarkup(svgString)\n return\n }\n }\n\n // If not cached, fetch from URL\n if (isUrl) {\n const response = await fetch(src)\n\n // Clone the response before consuming it\n const responseClone = response.clone()\n\n // Consume the response body for the SVG content\n svgString = await response.text()\n\n // Store the cloned response in the cache\n if (cache && 'caches' in window) {\n const cacheStorage = await caches.open(cacheName)\n await cacheStorage.put(src, responseClone)\n }\n } else {\n // If it's not a URL (it's inline), just use the source string\n svgString = src\n }\n\n // If we have valid SVG content, set it\n if (svgString) {\n const svg = createSvgElement(svgString)\n if (svg) {\n const svgStringWithProps = new XMLSerializer().serializeToString(svg)\n setSvgMarkup(svgStringWithProps)\n }\n }\n } catch (error) {\n console.error('Error loading SVG:', error)\n }\n }\n\n fetchSvg()\n }, [src, props])\n\n if (!svgMarkup) return null\n\n // Parse the SVG string and return it as JSX\n const parsedSvg = parse(svgMarkup)\n // Sometimes parse returns an array which includes the element\n const toBeClonedElement = Array.isArray(parsedSvg)\n ? parsedSvg.find((item) => React.isValidElement(item))\n : parsedSvg\n // Clone the parsed SVG element to apply the props\n const clonedSvg = React.cloneElement(toBeClonedElement as React.ReactElement, props)\n\n return <>{clonedSvg}</>\n}\n\nexport default SVGLoader\n"],"names":["SVGLoader","_a","src","cache","props","__rest","svgMarkup","setSvgMarkup","useState","useEffect","console","log","isUrl","startsWith","cacheName","__awaiter","svgString","window","cacheStorage","caches","open","cachedResponse","match","ok","text","response","fetch","responseClone","clone","put","svg","DOMParser","parseFromString","querySelector","createSvgElement","svgStringWithProps","XMLSerializer","serializeToString","error","parsedSvg","parse","toBeClonedElement","Array","isArray","find","item","React","isValidElement","clonedSvg","cloneElement","_jsx","jsx","_Fragment","Fragment","children"],"mappings":"iQAIA,MAcMA,EAA6CC,QAAAC,IAAEA,EAAGC,MAAEA,GAAQ,KAASC,EAAxBC,EAAAJ,EAAA,CAAA,MAAA,UACjD,MAAOK,EAAWC,GAAgBC,EAAwB,MA8D1D,GA5DAC,GAAU,KACR,IAAKP,EAAK,OACS,iBAARA,GAAkBQ,QAAQC,IAAI,CAAET,QAC3C,MAAMU,EAAQV,EAAIW,WAAW,SAAWX,EAAIW,WAAW,KAEjDC,EAAY,YAEUC,OAAA,OAAA,OAAA,GAAA,YAC1B,IACE,IAAIC,EAA2B,KAG/B,GAAIb,GAASS,GAAS,WAAYK,OAAQ,CACxC,MAAMC,QAAqBC,OAAOC,KAAKN,GACjCO,QAAuBH,EAAaI,MAAMpB,GAGhD,GAAImB,GAAkBA,EAAeE,GAGnC,OAFAP,QAAkBK,EAAeG,YACjCjB,EAAaS,EAGhB,CAGD,GAAIJ,EAAO,CACT,MAAMa,QAAiBC,MAAMxB,GAGvByB,EAAgBF,EAASG,QAM/B,GAHAZ,QAAkBS,EAASD,OAGvBrB,GAAS,WAAYc,OAAQ,CAC/B,MAAMC,QAAqBC,OAAOC,KAAKN,SACjCI,EAAaW,IAAI3B,EAAKyB,EAC7B,CACF,MAECX,EAAYd,EAId,GAAIc,EAAW,CACb,MAAMc,EA/DS,CAACd,IACT,IAAIe,WACAC,gBAAgBhB,EAAW,iBACnCiB,cAAc,OA4DLC,CAAiBlB,GAC7B,GAAIc,EAAK,CACP,MAAMK,GAAqB,IAAIC,eAAgBC,kBAAkBP,GACjEvB,EAAa4B,EACd,CACF,CACF,CAAC,MAAOG,GACP5B,QAAQ4B,MAAM,qBAAsBA,EACrC,CACH,GAEU,GACT,CAACpC,EAAKE,KAEJE,EAAW,OAAO,KAGvB,MAAMiC,EAAYC,EAAMlC,GAElBmC,EAAoBC,MAAMC,QAAQJ,GACpCA,EAAUK,MAAMC,GAASC,EAAMC,eAAeF,KAC9CN,EAEES,EAAYF,EAAMG,aAAaR,EAAyCrC,GAE9E,OAAO8C,EAAAC,IAAAC,EAAAC,SAAA,CAAAC,SAAGN,GAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"SectionHead.js","sources":["../../../../src/components/SectionHead/SectionHead.tsx"],"sourcesContent":["import React, { type JSX } from 'react'\r\nimport './SectionHead.scss'\r\nimport SVGLoader from '../SVGLoader/SVGLoader'\r\n\r\ntype SectionHeadProps = {\r\n text: string | JSX.Element\r\n closeFunction?: () => void\r\n children?: JSX.Element\r\n className?: string\r\n}\r\n\r\nconst SectionHead: React.FC<SectionHeadProps> = ({ text, closeFunction, children, className = '' }: SectionHeadProps): any => {\r\n return (\r\n <div className={`containerTitleDrawer ${className}`}>\r\n <span data-id={`${String(text)?.toUpperCase()?.replaceAll(' ', '_')}_ID`}>{text}</span>\r\n {children}\r\n\r\n {closeFunction && <SVGLoader className='closeIcon' onClick={closeFunction} width='1.5rem' height='1.5rem' />}\r\n </div>\r\n )\r\n}\r\nexport default SectionHead\r\n"],"names":["SectionHead","text","closeFunction","children","className","_jsxs","jsxs","_jsx","_b","_a","String","toUpperCase","replaceAll","SVGLoader","onClick","width","height"],"mappings":"8FAWA,MAAMA,EAA0C,EAAGC,OAAMC,gBAAeC,WAAUC,YAAY,eAC5F,OACEC,EAAKC,KAAA,MAAA,CAAAF,UAAW,wBAAwBA,IACtCD,SAAA,CAAAI,EAAAA,IAAA,OAAA,CAAA,UAAe,GAA8B,QAA3BC,EAAc,QAAdC,EAAAC,OAAOT,UAAO,IAAAQ,OAAA,EAAAA,EAAAE,qBAAa,IAAAH,OAAA,EAAAA,EAAEI,WAAW,IAAK,UAAST,SAAGF,IAC1EE,EAEAD,GAAiBK,EAAAA,IAACM,EAAU,CAAAT,UAAU,YAAYU,QAASZ,EAAea,MAAM,SAASC,OAAO,aAEpG"}
1
+ {"version":3,"file":"SectionHead.js","sources":["../../../../src/components/SectionHead/SectionHead.tsx"],"sourcesContent":["import React, { type JSX } from 'react'\nimport './SectionHead.scss'\nimport SVGLoader from '../SVGLoader/SVGLoader'\n\ntype SectionHeadProps = {\n text: string | JSX.Element\n closeFunction?: () => void\n children?: JSX.Element\n className?: string\n}\n\nconst SectionHead: React.FC<SectionHeadProps> = ({ text, closeFunction, children, className = '' }: SectionHeadProps): any => {\n return (\n <div className={`containerTitleDrawer ${className}`}>\n <span data-id={`${String(text)?.toUpperCase()?.replaceAll(' ', '_')}_ID`}>{text}</span>\n {children}\n\n {closeFunction && <SVGLoader className='closeIcon' onClick={closeFunction} width='1.5rem' height='1.5rem' />}\n </div>\n )\n}\nexport default SectionHead\n"],"names":["SectionHead","text","closeFunction","children","className","_jsxs","jsxs","_jsx","_b","_a","String","toUpperCase","replaceAll","SVGLoader","onClick","width","height"],"mappings":"8FAWA,MAAMA,EAA0C,EAAGC,OAAMC,gBAAeC,WAAUC,YAAY,eAC5F,OACEC,EAAKC,KAAA,MAAA,CAAAF,UAAW,wBAAwBA,IACtCD,SAAA,CAAAI,EAAAA,IAAA,OAAA,CAAA,UAAe,GAA8B,QAA3BC,EAAc,QAAdC,EAAAC,OAAOT,UAAO,IAAAQ,OAAA,EAAAA,EAAAE,qBAAa,IAAAH,OAAA,EAAAA,EAAEI,WAAW,IAAK,UAAST,SAAGF,IAC1EE,EAEAD,GAAiBK,EAAAA,IAACM,EAAU,CAAAT,UAAU,YAAYU,QAASZ,EAAea,MAAM,SAASC,OAAO,aAEpG"}
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleLabelValue.js","sources":["../../../../src/components/SimpleLabelValue/SimpleLabelValue.tsx"],"sourcesContent":["import React from 'react'\r\nimport './style.scss'\r\n\r\ntype SimpleLabelValueProps = {\r\n label?: string | JSX.Element\r\n value?: string | number | JSX.Element | JSX.Element[]\r\n color?: string\r\n className?: string\r\n dataId?: string\r\n}\r\n\r\nconst SimpleLabelValue: React.FC<SimpleLabelValueProps> = ({\r\n label,\r\n value,\r\n color,\r\n className = '',\r\n dataId,\r\n}: SimpleLabelValueProps) => {\r\n const dataIdLabel =\r\n typeof label === 'string' ? label?.toUpperCase()?.replaceAll(' ', '_') + '_LABEL_ID' : dataId\r\n return (\r\n <div className={`drawerItemContainer ${className}`}>\r\n <span className=\"title\" data-id={dataIdLabel}>\r\n {label}\r\n </span>\r\n <span className={`text ${color ? `color-${color}` : ''}`}>{value}</span>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SimpleLabelValue\r\n"],"names":["SimpleLabelValue","label","value","color","className","dataId","dataIdLabel","_a","toUpperCase","replaceAll","_jsxs","children","_jsx","jsx"],"mappings":"qDAWA,MAAMA,EAAoD,EACxDC,QACAC,QACAC,QACAC,YAAY,GACZC,mBAEA,MAAMC,EACa,iBAAVL,GAAyC,QAApBM,EAAAN,aAAA,EAAAA,EAAOO,qBAAa,IAAAD,OAAA,EAAAA,EAAEE,WAAW,IAAK,MAAO,YAAcJ,EACzF,OACEK,EAAAA,KAAK,MAAA,CAAAN,UAAW,uBAAuBA,IAAWO,SAAA,CAChDC,EAAMC,IAAA,OAAA,CAAAT,UAAU,QAAO,UAAUE,EAC9BK,SAAAV,IAEHW,EAAAA,IAAA,OAAA,CAAMR,UAAW,SAAQD,EAAQ,SAASA,IAAU,IAAIQ,SAAGT,MAE9D"}
1
+ {"version":3,"file":"SimpleLabelValue.js","sources":["../../../../src/components/SimpleLabelValue/SimpleLabelValue.tsx"],"sourcesContent":["import React from 'react'\nimport './style.scss'\n\ntype SimpleLabelValueProps = {\n label?: string | JSX.Element\n value?: string | number | JSX.Element | JSX.Element[]\n color?: string\n className?: string\n dataId?: string\n}\n\nconst SimpleLabelValue: React.FC<SimpleLabelValueProps> = ({\n label,\n value,\n color,\n className = '',\n dataId,\n}: SimpleLabelValueProps) => {\n const dataIdLabel =\n typeof label === 'string' ? label?.toUpperCase()?.replaceAll(' ', '_') + '_LABEL_ID' : dataId\n return (\n <div className={`drawerItemContainer ${className}`}>\n <span className=\"title\" data-id={dataIdLabel}>\n {label}\n </span>\n <span className={`text ${color ? `color-${color}` : ''}`}>{value}</span>\n </div>\n )\n}\n\nexport default SimpleLabelValue\n"],"names":["SimpleLabelValue","label","value","color","className","dataId","dataIdLabel","_a","toUpperCase","replaceAll","_jsxs","children","_jsx","jsx"],"mappings":"qDAWA,MAAMA,EAAoD,EACxDC,QACAC,QACAC,QACAC,YAAY,GACZC,mBAEA,MAAMC,EACa,iBAAVL,GAAyC,QAApBM,EAAAN,aAAA,EAAAA,EAAOO,qBAAa,IAAAD,OAAA,EAAAA,EAAEE,WAAW,IAAK,MAAO,YAAcJ,EACzF,OACEK,EAAAA,KAAK,MAAA,CAAAN,UAAW,uBAAuBA,IAAWO,SAAA,CAChDC,EAAMC,IAAA,OAAA,CAAAT,UAAU,QAAO,UAAUE,EAC9BK,SAAAV,IAEHW,EAAAA,IAAA,OAAA,CAAMR,UAAW,SAAQD,EAAQ,SAASA,IAAU,IAAIQ,SAAGT,MAE9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, { useState, useEffect, ReactNode } from 'react'\r\nimport Tippy, { TippyProps } from '@tippyjs/react'\r\nimport 'tippy.js/dist/tippy.css'\r\nimport './Tooltip.scss'\r\n\r\ninterface TooltipProps extends TippyProps {\r\n content: ReactNode\r\n success?: boolean\r\n onMouseEnter?: (event: React.MouseEvent<HTMLDivElement>) => void\r\n onMouseLeave?: (event: React.MouseEvent<HTMLDivElement>) => void\r\n visible?: boolean\r\n delay?: [number, number]\r\n type?: 'info' | 'function'\r\n maxWidth?: number\r\n className?: string\r\n arrowWithBorder?: boolean\r\n disabled?: boolean\r\n}\r\n\r\nconst Tooltip: React.FC<TooltipProps> = ({\r\n children,\r\n content,\r\n success,\r\n onMouseEnter,\r\n onMouseLeave,\r\n visible,\r\n delay = [200, 400],\r\n type = 'info',\r\n maxWidth = 390,\r\n className,\r\n arrowWithBorder,\r\n disabled,\r\n ...props\r\n}) => {\r\n const [rootFontSize, setRootFontSize] = useState(16)\r\n\r\n useEffect(() => {\r\n const handleFontSizeChange = (fontSize: number) => {\r\n setRootFontSize((prev) => (prev !== fontSize ? fontSize : prev))\r\n }\r\n\r\n if (\r\n // @ts-ignore - Ignoring if `applicationUIScaling` doesn't exist\r\n window.applicationUIScaling &&\r\n // @ts-ignore - Ignoring if `applicationUIScaling` doesn't exist\r\n typeof window.applicationUIScaling.addEventHandler === 'function'\r\n ) {\r\n // @ts-ignore - Ignoring if `applicationUIScaling` doesn't exist\r\n window.applicationUIScaling.addEventHandler(handleFontSizeChange)\r\n }\r\n }, [])\r\n\r\n return (\r\n <Tippy\r\n visible={visible}\r\n allowHTML={typeof content !== 'string'}\r\n interactive\r\n maxWidth={(maxWidth / 16) * rootFontSize}\r\n delay={delay}\r\n content={content}\r\n placement=\"bottom-start\"\r\n className={`${success ? 'success' : ''} ${type} ${className || ''} ${\r\n arrowWithBorder ? 'arrow-with-border' : ''\r\n }`}\r\n disabled={disabled}\r\n {...props}\r\n >\r\n <div\r\n className=\"tooltip-custom-wrapper\"\r\n onMouseEnter={onMouseEnter}\r\n onMouseLeave={onMouseLeave}\r\n >\r\n <div\r\n className=\"tooltip-custom-wrapper\"\r\n onMouseEnter={onMouseEnter}\r\n onMouseLeave={onMouseLeave}\r\n >\r\n {children}\r\n </div>\r\n </div>\r\n </Tippy>\r\n )\r\n}\r\n\r\nexport default Tooltip\r\n"],"names":["Tooltip","_a","children","content","success","onMouseEnter","onMouseLeave","visible","delay","type","maxWidth","className","arrowWithBorder","disabled","props","__rest","rootFontSize","setRootFontSize","useState","useEffect","handleFontSizeChange","fontSize","prev","window","applicationUIScaling","addEventHandler","_jsx","Tippy","Object","assign","allowHTML","interactive","placement"],"mappings":"4SAmBA,MAAMA,EAAmCC,IAAA,IAAAC,SACvCA,EAAQC,QACRA,EAAOC,QACPA,EAAOC,aACPA,EAAYC,aACZA,EAAYC,QACZA,EAAOC,MACPA,EAAQ,CAAC,IAAK,KAAIC,KAClBA,EAAO,OAAMC,SACbA,EAAW,IAAGC,UACdA,EAASC,gBACTA,EAAeC,SACfA,GAAQZ,EACLa,EAAKC,EAAAd,EAb+B,6IAevC,MAAOe,EAAcC,GAAmBC,EAAS,IAkBjD,OAhBAC,GAAU,KACR,MAAMC,EAAwBC,IAC5BJ,GAAiBK,GAAUA,IAASD,EAAWA,EAAWC,GAAM,EAKhEC,OAAOC,sBAEgD,mBAAhDD,OAAOC,qBAAqBC,iBAGnCF,OAAOC,qBAAqBC,gBAAgBL,EAC7C,GACA,IAGDM,EAAAA,IAACC,EAAKC,OAAAC,OAAA,CACJtB,QAASA,EACTuB,UAA8B,iBAAZ3B,EAClB4B,aACA,EAAArB,SAAWA,EAAW,GAAMM,EAC5BR,MAAOA,EACPL,QAASA,EACT6B,UAAU,eACVrB,UAAW,GAAGP,EAAU,UAAY,MAAMK,KAAQE,GAAa,MAC7DC,EAAkB,oBAAsB,KAE1CC,SAAUA,GACNC,EAEJ,CAAAZ,SAAAwB,EAAAA,IAAA,MAAA,CACEf,UAAU,yBACVN,aAAcA,EACdC,aAAcA,WAEdoB,EAAAA,IACE,MAAA,CAAAf,UAAU,yBACVN,aAAcA,EACdC,aAAcA,EAAYJ,SAEzBA,QAIR"}
1
+ {"version":3,"file":"Tooltip.js","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, { useState, useEffect, ReactNode } from 'react'\nimport Tippy, { TippyProps } from '@tippyjs/react'\nimport 'tippy.js/dist/tippy.css'\nimport './Tooltip.scss'\n\ninterface TooltipProps extends TippyProps {\n content: ReactNode\n success?: boolean\n onMouseEnter?: (event: React.MouseEvent<HTMLDivElement>) => void\n onMouseLeave?: (event: React.MouseEvent<HTMLDivElement>) => void\n visible?: boolean\n delay?: [number, number]\n type?: 'info' | 'function'\n maxWidth?: number\n className?: string\n arrowWithBorder?: boolean\n disabled?: boolean\n}\n\nconst Tooltip: React.FC<TooltipProps> = ({\n children,\n content,\n success,\n onMouseEnter,\n onMouseLeave,\n visible,\n delay = [200, 400],\n type = 'info',\n maxWidth = 390,\n className,\n arrowWithBorder,\n disabled,\n ...props\n}) => {\n const [rootFontSize, setRootFontSize] = useState(16)\n\n useEffect(() => {\n const handleFontSizeChange = (fontSize: number) => {\n setRootFontSize((prev) => (prev !== fontSize ? fontSize : prev))\n }\n\n if (\n // @ts-ignore - Ignoring if `applicationUIScaling` doesn't exist\n window.applicationUIScaling &&\n // @ts-ignore - Ignoring if `applicationUIScaling` doesn't exist\n typeof window.applicationUIScaling.addEventHandler === 'function'\n ) {\n // @ts-ignore - Ignoring if `applicationUIScaling` doesn't exist\n window.applicationUIScaling.addEventHandler(handleFontSizeChange)\n }\n }, [])\n\n return (\n <Tippy\n visible={visible}\n allowHTML={typeof content !== 'string'}\n interactive\n maxWidth={(maxWidth / 16) * rootFontSize}\n delay={delay}\n content={content}\n placement=\"bottom-start\"\n className={`${success ? 'success' : ''} ${type} ${className || ''} ${\n arrowWithBorder ? 'arrow-with-border' : ''\n }`}\n disabled={disabled}\n {...props}\n >\n <div\n className=\"tooltip-custom-wrapper\"\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <div\n className=\"tooltip-custom-wrapper\"\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {children}\n </div>\n </div>\n </Tippy>\n )\n}\n\nexport default Tooltip\n"],"names":["Tooltip","_a","children","content","success","onMouseEnter","onMouseLeave","visible","delay","type","maxWidth","className","arrowWithBorder","disabled","props","__rest","rootFontSize","setRootFontSize","useState","useEffect","handleFontSizeChange","fontSize","prev","window","applicationUIScaling","addEventHandler","_jsx","Tippy","Object","assign","allowHTML","interactive","placement"],"mappings":"4SAmBA,MAAMA,EAAmCC,IAAA,IAAAC,SACvCA,EAAQC,QACRA,EAAOC,QACPA,EAAOC,aACPA,EAAYC,aACZA,EAAYC,QACZA,EAAOC,MACPA,EAAQ,CAAC,IAAK,KAAIC,KAClBA,EAAO,OAAMC,SACbA,EAAW,IAAGC,UACdA,EAASC,gBACTA,EAAeC,SACfA,GAAQZ,EACLa,EAAKC,EAAAd,EAb+B,6IAevC,MAAOe,EAAcC,GAAmBC,EAAS,IAkBjD,OAhBAC,GAAU,KACR,MAAMC,EAAwBC,IAC5BJ,GAAiBK,GAAUA,IAASD,EAAWA,EAAWC,GAAM,EAKhEC,OAAOC,sBAEgD,mBAAhDD,OAAOC,qBAAqBC,iBAGnCF,OAAOC,qBAAqBC,gBAAgBL,EAC7C,GACA,IAGDM,EAAAA,IAACC,EAAKC,OAAAC,OAAA,CACJtB,QAASA,EACTuB,UAA8B,iBAAZ3B,EAClB4B,aACA,EAAArB,SAAWA,EAAW,GAAMM,EAC5BR,MAAOA,EACPL,QAASA,EACT6B,UAAU,eACVrB,UAAW,GAAGP,EAAU,UAAY,MAAMK,KAAQE,GAAa,MAC7DC,EAAkB,oBAAsB,KAE1CC,SAAUA,GACNC,EAEJ,CAAAZ,SAAAwB,EAAAA,IAAA,MAAA,CACEf,UAAU,yBACVN,aAAcA,EACdC,aAAcA,WAEdoB,EAAAA,IACE,MAAA,CAAAf,UAAU,yBACVN,aAAcA,EACdC,aAAcA,EAAYJ,SAEzBA,QAIR"}
@@ -1,2 +1,2 @@
1
- import{j as o}from"../../../_virtual/jsx-runtime.js";import{CloseIcon as i,Button as n,Dialog as e,infoIcon as r}from"@digi-frontend/dgate-ui";import s from"../SVGLoader/SVGLoader.js";const t=({status:t="info",content:a,onSubmit:c,onCancel:l,onClose:d,open:m,size:j="xs",icon:h=o.jsx(o.Fragment,{children:o.jsx(s,{src:r,width:"4.0625rem",height:"4.0625rem"})})})=>{const x=()=>{d(),l&&l.onClick&&l.onClick()},g=o.jsxs("div",{className:"common-dialog",children:[h&&o.jsx("div",{className:"confirmation-dialog-header",children:o.jsx("div",{className:`icon ${t}`,children:h})}),o.jsx(s,{src:i,width:"1.5rem",height:"1.5rem",onClick:x,className:"close-icon"}),a,o.jsxs("div",{className:"confirmation-dialog-footer",style:{marginBottom:l||c?"1.5rem":"1rem"},children:[l&&o.jsx(n,Object.assign({},l,{onClick:x,variant:l.variant||"outlined",color:l.color||"normal",children:l.text})),c&&o.jsx(n,Object.assign({},c,{variant:c.variant||"contained",color:c.color||"secondary",children:c.text}))]})]});return o.jsx(e,{open:m,onClose:x,content:g,fullWidth:!1,size:j,id:"common-dialog"})};export{t as default};
1
+ import{j as o}from"../../../_virtual/jsx-runtime.js";import{d as s}from"../../../_virtual/index.js";import i from"../SVGLoader/SVGLoader.js";import n from"../../assets/icons/close-circle.svg.js";import e from"../../assets/icons/infoIcon.svg.js";const r=({status:r="info",content:t,onSubmit:a,onCancel:c,onClose:l,open:m,size:d="xs",icon:j=o.jsx(o.Fragment,{children:o.jsx(i,{src:e,width:"4.0625rem",height:"4.0625rem"})})})=>{const x=()=>{l(),c&&c.onClick&&c.onClick()},h=o.jsxs("div",{className:"common-dialog",children:[j&&o.jsx("div",{className:"confirmation-dialog-header",children:o.jsx("div",{className:`icon ${r}`,children:j})}),o.jsx(i,{src:n,width:"1.5rem",height:"1.5rem",onClick:x,className:"close-icon"}),t,o.jsxs("div",{className:"confirmation-dialog-footer",style:{marginBottom:c||a?"1.5rem":"1rem"},children:[c&&o.jsx(s.Button,Object.assign({},c,{onClick:x,variant:c.variant||"outlined",color:c.color||"normal",children:c.text})),a&&o.jsx(s.Button,Object.assign({},a,{variant:a.variant||"contained",color:a.color||"secondary",children:a.text}))]})]});return o.jsx(s.Dialog,{open:m,onClose:x,content:h,fullWidth:!1,size:d,id:"common-dialog"})};export{r as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/dialog/index.tsx"],"sourcesContent":["import React from 'react'\r\n// @ts-ignore\r\nimport { Dialog, Button, CloseIcon, infoIcon } from '@digi-frontend/dgate-ui'\r\nimport SVGLoader from '../SVGLoader/SVGLoader'\r\nimport './style.scss'\r\nimport { CommonDialogProps } from './dialog'\r\n\r\nconst CommonDialog = ({\r\n status = 'info',\r\n content,\r\n onSubmit,\r\n onCancel,\r\n onClose,\r\n open,\r\n size = 'xs',\r\n icon = (\r\n <>\r\n <SVGLoader src={infoIcon} width=\"4.0625rem\" height=\"4.0625rem\" />\r\n </>\r\n ),\r\n}: CommonDialogProps) => {\r\n const handleClose = () => {\r\n onClose() // Always close the dialog first\r\n\r\n if (onCancel && onCancel.onClick) {\r\n onCancel.onClick() // If onCancel.onClick is provided, invoke it after closing the dialog\r\n }\r\n }\r\n\r\n const body = (\r\n <div className=\"common-dialog\">\r\n {icon && (\r\n <div className=\"confirmation-dialog-header\">\r\n <div className={`icon ${status}`}>{icon}</div>\r\n </div>\r\n )}\r\n <SVGLoader\r\n src={CloseIcon}\r\n width={'1.5rem'}\r\n height={'1.5rem'}\r\n onClick={handleClose}\r\n className=\"close-icon\"\r\n />\r\n\r\n {content}\r\n <div\r\n className=\"confirmation-dialog-footer\"\r\n style={{ marginBottom: onCancel || onSubmit ? '1.5rem' : '1rem' }}\r\n >\r\n {onCancel && (\r\n <Button\r\n {...onCancel}\r\n onClick={handleClose}\r\n variant={onCancel.variant || 'outlined'}\r\n color={onCancel.color || 'normal'}\r\n >\r\n {onCancel.text}\r\n </Button>\r\n )}\r\n {onSubmit && (\r\n <Button\r\n {...onSubmit}\r\n variant={onSubmit.variant || 'contained'}\r\n color={onSubmit.color || 'secondary'}\r\n >\r\n {onSubmit.text}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n\r\n return (\r\n <Dialog\r\n open={open}\r\n onClose={handleClose}\r\n content={body}\r\n fullWidth={false}\r\n size={size}\r\n id=\"common-dialog\"\r\n />\r\n )\r\n}\r\n\r\nexport default CommonDialog\r\n"],"names":["CommonDialog","status","content","onSubmit","onCancel","onClose","open","size","icon","_jsx","jsx","SVGLoader","src","infoIcon","width","height","handleClose","onClick","body","_jsxs","className","children","CloseIcon","jsxs","style","marginBottom","Button","Object","assign","variant","color","text","Dialog","fullWidth","id"],"mappings":"wLAOM,MAAAA,EAAe,EACnBC,SAAS,OACTC,UACAC,WACAC,WACAC,UACAC,OACAC,OAAO,KACPC,OACEC,2BACEA,EAACC,IAAAC,GAAUC,IAAKC,EAAUC,MAAM,YAAYC,OAAO,oBAIvD,MAAMC,EAAc,KAClBX,IAEID,GAAYA,EAASa,SACvBb,EAASa,SACV,EAGGC,EACJC,EAAAA,KAAA,MAAA,CAAKC,UAAU,gBACZC,SAAA,CAAAb,GACCC,EAAKC,IAAA,MAAA,CAAAU,UAAU,6BAA4BC,SACzCZ,EAAAA,IAAK,MAAA,CAAAW,UAAW,QAAQnB,aAAWO,MAGvCC,MAACE,EAAS,CACRC,IAAKU,EACLR,MAAO,SACPC,OAAQ,SACRE,QAASD,EACTI,UAAU,eAGXlB,EACDiB,EACEI,KAAA,MAAA,CAAAH,UAAU,6BACVI,MAAO,CAAEC,aAAcrB,GAAYD,EAAW,SAAW,QAAQkB,SAAA,CAEhEjB,GACCK,MAACiB,EACKC,OAAAC,OAAA,CAAA,EAAAxB,EACJ,CAAAa,QAASD,EACTa,QAASzB,EAASyB,SAAW,WAC7BC,MAAO1B,EAAS0B,OAAS,SAAQT,SAEhCjB,EAAS2B,QAGb5B,GACCM,MAACiB,EAAMC,OAAAC,OAAA,GACDzB,EAAQ,CACZ0B,QAAS1B,EAAS0B,SAAW,YAC7BC,MAAO3B,EAAS2B,OAAS,YAAWT,SAEnClB,EAAS4B,cAOpB,OACEtB,EAAAA,IAACuB,EAAM,CACL1B,KAAMA,EACND,QAASW,EACTd,QAASgB,EACTe,WAAW,EACX1B,KAAMA,EACN2B,GAAG,iBAEN"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/dialog/index.tsx"],"sourcesContent":["import React from 'react'\n// @ts-ignore\nimport { Dialog, Button, CloseIcon, infoIcon } from 'digitinary-ui'\nimport SVGLoader from '../SVGLoader/SVGLoader'\nimport './style.scss'\nimport { CommonDialogProps } from './dialog'\nimport { Closecircle, InfoIcon } from './../../assets/icons'\n\nconst CommonDialog = ({\n status = 'info',\n content,\n onSubmit,\n onCancel,\n onClose,\n open,\n size = 'xs',\n icon = (\n <>\n <SVGLoader src={InfoIcon} width=\"4.0625rem\" height=\"4.0625rem\" />\n </>\n ),\n}: CommonDialogProps) => {\n const handleClose = () => {\n onClose() // Always close the dialog first\n\n if (onCancel && onCancel.onClick) {\n onCancel.onClick() // If onCancel.onClick is provided, invoke it after closing the dialog\n }\n }\n\n const body = (\n <div className=\"common-dialog\">\n {icon && (\n <div className=\"confirmation-dialog-header\">\n <div className={`icon ${status}`}>{icon}</div>\n </div>\n )}\n <SVGLoader\n src={Closecircle}\n width={'1.5rem'}\n height={'1.5rem'}\n onClick={handleClose}\n className=\"close-icon\"\n />\n\n {content}\n <div\n className=\"confirmation-dialog-footer\"\n style={{ marginBottom: onCancel || onSubmit ? '1.5rem' : '1rem' }}\n >\n {onCancel && (\n <Button\n {...onCancel}\n onClick={handleClose}\n variant={onCancel.variant || 'outlined'}\n color={onCancel.color || 'normal'}\n >\n {onCancel.text}\n </Button>\n )}\n {onSubmit && (\n <Button\n {...onSubmit}\n variant={onSubmit.variant || 'contained'}\n color={onSubmit.color || 'secondary'}\n >\n {onSubmit.text}\n </Button>\n )}\n </div>\n </div>\n )\n\n return (\n <Dialog\n open={open}\n onClose={handleClose}\n content={body}\n fullWidth={false}\n size={size}\n id=\"common-dialog\"\n />\n )\n}\n\nexport default CommonDialog\n"],"names":["CommonDialog","status","content","onSubmit","onCancel","onClose","open","size","icon","_jsx","jsx","SVGLoader","src","InfoIcon","width","height","handleClose","onClick","body","_jsxs","className","children","Closecircle","jsxs","style","marginBottom","Button","Object","assign","variant","color","text","Dialog","fullWidth","id"],"mappings":"qPAQM,MAAAA,EAAe,EACnBC,SAAS,OACTC,UACAC,WACAC,WACAC,UACAC,OACAC,OAAO,KACPC,OACEC,2BACEA,EAACC,IAAAC,GAAUC,IAAKC,EAAUC,MAAM,YAAYC,OAAO,oBAIvD,MAAMC,EAAc,KAClBX,IAEID,GAAYA,EAASa,SACvBb,EAASa,SACV,EAGGC,EACJC,EAAAA,KAAA,MAAA,CAAKC,UAAU,gBACZC,SAAA,CAAAb,GACCC,EAAKC,IAAA,MAAA,CAAAU,UAAU,6BAA4BC,SACzCZ,EAAAA,IAAK,MAAA,CAAAW,UAAW,QAAQnB,aAAWO,MAGvCC,MAACE,EAAS,CACRC,IAAKU,EACLR,MAAO,SACPC,OAAQ,SACRE,QAASD,EACTI,UAAU,eAGXlB,EACDiB,EACEI,KAAA,MAAA,CAAAH,UAAU,6BACVI,MAAO,CAAEC,aAAcrB,GAAYD,EAAW,SAAW,QAAQkB,SAAA,CAEhEjB,GACCK,MAACiB,EAAAA,OACKC,OAAAC,OAAA,CAAA,EAAAxB,EACJ,CAAAa,QAASD,EACTa,QAASzB,EAASyB,SAAW,WAC7BC,MAAO1B,EAAS0B,OAAS,SAAQT,SAEhCjB,EAAS2B,QAGb5B,GACCM,MAACiB,SAAMC,OAAAC,OAAA,GACDzB,EAAQ,CACZ0B,QAAS1B,EAAS0B,SAAW,YAC7BC,MAAO3B,EAAS2B,OAAS,YAAWT,SAEnClB,EAAS4B,cAOpB,OACEtB,EAAAA,IAACuB,EAAAA,OAAM,CACL1B,KAAMA,EACND,QAASW,EACTd,QAASgB,EACTe,WAAW,EACX1B,KAAMA,EACN2B,GAAG,iBAEN"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as a}from"react";import{d as i}from"../../../_virtual/index.js";import r from"../Tooltip/Tooltip.js";import t from"../SVGLoader/SVGLoader.js";import l from"../../assets/icons/DeleteIcon.svg.js";import s from"../../assets/icons/EditIcon.svg.js";import d from"../../assets/icons/AddRow.svg.js";import n from"../MethodAccordion/MethodAccordion.module.scss.js";import{useFormik as o}from"../../../node_modules/formik/dist/formik.esm.js";import{object as c,string as m,bool as h}from"../../../node_modules/yup/index.esm.js";import{capitalize as u}from"../../helpers/methodAccordion.helper.js";import p from"../../constants/regex.js";const j=({id:j,headCells:v,data:b,isFormOpen:x,setIsFormOpen:N,saveNewRow:C,readOnly:g})=>{const[y,T]=a(""),[w,D]=a(null),{values:f,errors:I,setFieldValue:S,isValid:k,submitForm:_,resetForm:B}=o({validateOnMount:!0,initialValues:{name:"",in:"Query",schema:{type:"String"},required:!0,description:""},validationSchema:c().shape({name:m().trim().required("Parameter name is required"),in:m().required("Paramter type is required"),schema:c().shape({type:m().required("Parameter schema type is required")}),required:h().optional(),description:m().trim().optional()}),onSubmit:e=>{C(e),N(!1),T(""),B()}});return e.jsx("div",{className:"tableSectionContainer",children:e.jsx("div",{className:"tableContainer",children:e.jsxs("table",{id:j||"",className:"table borderRadiusTop borderRadiusBottom",children:[e.jsx("thead",{className:"tableHead",children:e.jsx("tr",{children:null==v?void 0:v.map((a=>e.jsx("th",{className:`tableHeadCell ${a.classes||""}`,style:{width:a.width,minWidth:a.minWidth},children:e.jsx("div",{className:"headContainer","data-id":`${"string"==typeof a.label?a.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g,"_"):"UNKNOWN_LABEL"}_COLUMN`,children:a.label})},a.id)))})}),e.jsxs("tbody",{className:"tableBody","data-id":"TABLE_BODY",children:[null==b?void 0:b.map(((a,i)=>e.jsx("tr",{"data-i":i,className:"row",children:null==v?void 0:v.map((i=>{const r="_"!==a[i.id]&&e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",style:{width:i.width,minWidth:i.minWidth},children:a[i.id]});return e.jsx("td",{style:{width:i.width,minWidth:i.minWidth},children:r},i.id)}))},i))),0===(null==b?void 0:b.length)&&g&&e.jsx("tr",{className:"fallbackTableRow",children:e.jsx("td",{className:"fallbackContainer",colSpan:null==v?void 0:v.length,children:e.jsx("div",{className:"fallbackTextContainer",children:e.jsx("span",{className:"fallbackText",children:" No Data Available"})})})}),x&&!g?e.jsxs("tr",{className:"row",children:[e.jsx("td",{children:e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:e.jsx(i.Input,{placeholder:"Parameter name",size:"large",type:"text",onChange:e=>{(""===e||p.ASCII.test(e))&&S("name",e)},value:f.name,disabled:g})})},"Parameter name"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx(i.SelectGroupV2,{disabled:g,value:{label:u(f.in),value:u(f.in)},onChange:e=>{var a;return S("in",null===(a=null==e?void 0:e.value)||void 0===a?void 0:a.toLowerCase())},options:[{list:[{label:"Query",value:"query"},{label:"Header",value:"header"},{label:"Path",value:"path"},{label:"Body",value:"body"}]}],errorMsg:!!I.in&&I.in,isMultiple:!1,withSearch:!1,clearable:!1})," "]})},"parameter in"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx(i.SelectGroupV2,{disabled:g,clearable:!1,value:{label:u(f.schema.type),value:u(f.schema.type)},errorMsg:!!I.schema&&I.schema,onChange:e=>{var a;return S("schema.type",null===(a=null==e?void 0:e.value)||void 0===a?void 0:a.toLowerCase())},options:[{list:[{label:"String",value:"string"},{label:"Integer",value:"integer"},{label:"Boolean",value:"boolean"},{label:"Object",value:"object"},{label:"Array",value:"array"},{label:"Number",value:"number"}]}],isMultiple:!1,withSearch:!1})," "]})},"parameter schema type"),e.jsx("td",{children:e.jsx("div",{"data-id":"is required",className:"tableData",children:g?e.jsx(e.Fragment,{children:f.required?"True":"False"}):e.jsx(i.Switch,{checked:f.required,onClick:()=>{g||S("required",!f.required)}})})},"parameter required"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsxs("div",{className:n.paramDescContainer,children:[e.jsx(r,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>D(e),content:e.jsxs("div",{className:n.editDescTooltipContent,children:[e.jsx("p",{className:n.editDescTooltipContent_header,children:"Description"}),e.jsx(i.TextArea,{value:y||f.description,onChange:e=>{(""===e||p.ASCII.test(e))&&T(e)},disabled:g,placeholder:"Describe parameter...",maxLength:120}),!g&&e.jsx(i.Button,{className:n.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{S("description",null==y?void 0:y.trim()),null==w||w.hide()},disabled:""===(null==y?void 0:y.trim()),children:"Apply"})]}),children:e.jsxs(i.Button,{className:n.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(t,{src:s,width:"1.5rem",height:"1.5rem"}),children:[g?"View ":"Add "," Description"]})}),e.jsx("div",{className:n.paramDescContainer_separator}),!g&&e.jsx(i.Button,{className:n.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(t,{src:l,width:"1.125rem",height:"1.125rem"}),onClick:()=>{B(),T(""),N(!1)}}),!g&&e.jsx(r,{disabled:!!f.name.trim(),content:"Parameter name can't be empty ",children:e.jsx(i.Button,{className:n.deleteParamBtn,variant:"link",color:"success",disabled:!f.name.trim(),endIcon:e.jsx(t,{src:d,width:"0.125rem",height:"0.125rem"}),onClick:()=>{T(""),_()}})})]})," "]})},"parameter schema desc")]}):e.jsx(e.Fragment,{children:!g&&e.jsx("tr",{"data-i":"addNew",className:"row",children:e.jsx("td",{colSpan:5,children:e.jsx(i.Button,{variant:"link",color:"primary",onClick:()=>{N((e=>!e))},children:"+ Add Parameter"})})},"addNew")})]})]})})})};export{j as default};
1
+ import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as l}from"react";import{d as a}from"../../../_virtual/index.js";import i from"../Tooltip/Tooltip.js";import t from"../SVGLoader/SVGLoader.js";import s from"../../assets/icons/DeleteIcon.svg.js";import d from"../../assets/icons/EditIcon.svg.js";import r from"../../assets/icons/AddRow.svg.js";import n from"../../assets/icons/Plus.svg.js";import o from"../../assets/icons/PlusSquare.svg.js";import c from"../MethodAccordion/MethodAccordion.module.scss.js";import{useFormik as m}from"../../../node_modules/formik/dist/formik.esm.js";import{object as u,string as v,array as h,bool as p}from"../../../node_modules/yup/index.esm.js";import{capitalize as j}from"../../helpers/methodAccordion.helper.js";import b from"../../constants/regex.js";const x=({id:x,headCells:y,data:N,isFormOpen:C,setIsFormOpen:g,saveNewRow:T,readOnly:w,isRequest:D=!0})=>{var I,f,E,S,B,k,q,_,A,P,O,L,R,F,M,V,W,X,G,z,H,U,$,K,Q,Y,Z;const[J,ee]=l(""),[le,ae]=l(null),[ie,te]=l(null),[se,de]=l([]),{values:re,errors:ne,setFieldValue:oe,isValid:ce,submitForm:me,resetForm:ue}=m({validateOnMount:!0,initialValues:{name:"",in:D?"query":"header",schema:{type:"string",enum:[],items:{type:"string"}},required:!0,description:""},validationSchema:u().shape({name:v().default("").trim().required("Parameter name is required"),in:v().required("Paramter type is required"),schema:u().shape({type:v().required("Parameter schema type is required"),enum:h(v()).optional(),items:u().shape({type:v().optional()})}),required:p().optional(),description:v().default("").trim().optional()}),onSubmit:e=>{var l,a,i,t;e&&!(null===(a=null===(l=null==e?void 0:e.schema)||void 0===l?void 0:l.items)||void 0===a?void 0:a.type)&&(null===(t=null===(i=null==e?void 0:e.schema)||void 0===i?void 0:i.items)||void 0===t||delete t.type),T(e),g(void 0),ee(""),ue()}});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==y?void 0:y.map((l=>e.jsx("th",{className:`tableHeadCell ${l.classes||""}`,style:{width:l.width,minWidth:l.minWidth},children:e.jsx("div",{className:"headContainer","data-id":`${"string"==typeof l.label?l.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g,"_"):"UNKNOWN_LABEL"}_COLUMN`,children:l.label})},l.id)))})}),e.jsxs("tbody",{className:"tableBody","data-id":"TABLE_BODY",children:[null==N?void 0:N.map(((l,a)=>e.jsx("tr",{"data-i":a,className:"row",children:null==y?void 0:y.map((a=>{const i="_"!==l[a.id]&&e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",style:{width:a.width,minWidth:a.minWidth},children:l[a.id]});return e.jsx("td",{style:{width:a.width,minWidth:a.minWidth},children:i},a.id)}))},a))),0===(null==N?void 0:N.length)&&w&&e.jsx("tr",{className:"fallbackTableRow",children:e.jsx("td",{className:"fallbackContainer",colSpan:null==y?void 0:y.length,children:e.jsx("div",{className:"fallbackTextContainer",children:e.jsx("span",{className:"fallbackText",children:" No Data Available"})})})}),C&&!w?e.jsxs("tr",{className:"row",children:[e.jsx("td",{children:e.jsx("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:e.jsx(a.Input,{placeholder:"Parameter name",size:"large",type:"text",onChange:e=>{(""===e||b.ASCII.test(e))&&oe("name",e)},value:re.name,disabled:w})})},"Parameter name"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx(a.SelectGroupV2,{disabled:w,value:{label:j(re.in),value:re.in},onChange:e=>{var l;return oe("in",null===(l=null==e?void 0:e.value)||void 0===l?void 0:l.toLowerCase())},options:[{list:D?[{label:"Query",value:"query"},{label:"Header",value:"header"},{label:"Path",value:"path"},{label:"Body",value:"body"}]:[{label:"Header",value:"header"}]}],errorMsg:!!ne.in&&ne.in,isMultiple:!1,withSearch:!1,clearable:!1})," "]})},"parameter in"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsx(a.SelectGroupV2,{disabled:w,clearable:!1,value:{label:j(null===(I=null==re?void 0:re.schema)||void 0===I?void 0:I.type),value:null===(f=null==re?void 0:re.schema)||void 0===f?void 0:f.type},errorMsg:!!ne.schema&&ne.schema,onChange:e=>{var l;return oe("schema.type",null===(l=null==e?void 0:e.value)||void 0===l?void 0:l.toLowerCase())},options:[{list:[{label:"String",value:"string"},{label:"Integer",value:"integer"},{label:"Boolean",value:"boolean"},{label:"Object",value:"object"},{label:"Array",value:"array"},{label:"Number",value:"number"}]}],isMultiple:!1,withSearch:!1})," "]})},"parameter schema type"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[re.schema&&"array"==(null===(S=null===(E=re.schema)||void 0===E?void 0:E.type)||void 0===S?void 0:S.toLowerCase())?e.jsx(a.SelectGroupV2,{disabled:w,clearable:!1,value:{label:j(null===(k=null===(B=null==re?void 0:re.schema)||void 0===B?void 0:B.items)||void 0===k?void 0:k.type),value:null===(_=null===(q=re.schema)||void 0===q?void 0:q.items)||void 0===_?void 0:_.type},errorMsg:!!(null===(P=null===(A=null==ne?void 0:ne.schema)||void 0===A?void 0:A.items)||void 0===P?void 0:P.type)&&(null===(L=null===(O=null==ne?void 0:ne.schema)||void 0===O?void 0:O.items)||void 0===L?void 0:L.type),onChange:e=>{var l;return oe("schema.items.type",null===(l=null==e?void 0:e.value)||void 0===l?void 0:l.toLowerCase())},options:[{list:[{label:"String",value:"string"},{label:"Integer",value:"integer"},{label:"Boolean",value:"boolean"},{label:"Object",value:"object"},{label:"Array",value:"array"},{label:"Number",value:"number"}]}],isMultiple:!1,withSearch:!1}):"-"," "]})},"parameter array schema type"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[(null==re?void 0:re.schema)&&"array"!=(null===(F=null===(R=null==re?void 0:re.schema)||void 0===R?void 0:R.type)||void 0===F?void 0:F.toLowerCase())&&"object"!=(null===(V=null===(M=null==re?void 0:re.schema)||void 0===M?void 0:M.type)||void 0===V?void 0:V.toLowerCase())?e.jsx(i,{disabled:"array"==(null===(X=null===(W=null==re?void 0:re.schema)||void 0===W?void 0:W.type)||void 0===X?void 0:X.toLowerCase())||"object"==(null===(z=null===(G=null==re?void 0:re.schema)||void 0===G?void 0:G.type)||void 0===z?void 0:z.toLowerCase()),arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>te(e),content:e.jsxs("div",{className:c.editDescTooltipContent,children:[e.jsx("p",{className:c.editDescTooltipContent_header,children:"Enum"}),!!(null===(H=null==re?void 0:re.schema)||void 0===H?void 0:H.enum)&&!!(null===(U=null==re?void 0:re.schema)||void 0===U?void 0:U.enum.length)&&(null===(K=null===($=null==re?void 0:re.schema)||void 0===$?void 0:$.enum)||void 0===K?void 0:K.map(((l,i)=>e.jsx(a.Input,{className:"methodDescForEnum",required:!0,clearable:!1,placeholder:"Enter Enum value...",value:l,onChange:e=>{oe(`schema.enum[${i}]`,e)}},i)))),se&&(null==se?void 0:se.map(((l,i)=>e.jsx(a.Input,{className:"methodDescForEnum",required:!0,clearable:!1,placeholder:"Enter Enum value...",value:l,onChange:e=>{let l=[...se];l[i]=e,de(l)}},i)))),e.jsxs("p",{className:"addEnumButton",onClick:()=>{de((e=>[...e,""]))},children:[e.jsx(t,{src:o}),"Add New Enum"]}),!w&&e.jsx(a.Button,{className:c.editDescTooltipContent_btn,variant:"outlined",size:"small",type:"button",onClick:()=>{var e;oe("schema.enum",[...null===(e=null==re?void 0:re.schema)||void 0===e?void 0:e.enum,...se]),de([]),null==ie||ie.hide()},disabled:se.length>0&&(null==se?void 0:se.filter((e=>!e)).length)||(null===(Q=null==re?void 0:re.schema)||void 0===Q?void 0:Q.enum.length)>0&&(null===(Z=null===(Y=null==re?void 0:re.schema)||void 0===Y?void 0:Y.enum)||void 0===Z?void 0:Z.filter((e=>!e)).length),children:"Apply"})]}),children:e.jsx(a.Button,{className:c.editDescBtn,id:"EnumButton",variant:"link",color:"action",endIcon:e.jsx(t,{id:"enumIcon",src:n,width:"1.5rem",height:"1.5rem"}),children:"Add"})}):"-"," "]})},"parameter enum"),e.jsx("td",{children:e.jsx("div",{"data-id":"is required",className:"tableData",children:w?e.jsx(e.Fragment,{children:re.required?"True":"False"}):e.jsx(a.Switch,{checked:re.required,onClick:()=>{w||oe("required",!re.required)}})})},"parameter required"),e.jsx("td",{children:e.jsxs("div",{"data-id":"TEXT_DESCRIPTION",className:"tableData",children:[e.jsxs("div",{className:c.paramDescContainer,children:[e.jsx(i,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>ae(e),content:e.jsxs("div",{className:c.editDescTooltipContent,children:[e.jsx("p",{className:c.editDescTooltipContent_header,children:"Description"}),e.jsx(a.TextArea,{value:J||re.description,onChange:e=>{(""===e||b.ASCII.test(e))&&ee(e)},disabled:w,placeholder:"Describe parameter...",maxLength:120}),!w&&e.jsx(a.Button,{className:c.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{oe("description",null==J?void 0:J.trim()),null==le||le.hide()},disabled:""===(null==J?void 0:J.trim()),children:"Apply"})]}),children:e.jsxs(a.Button,{className:c.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(t,{src:d,width:"1.5rem",height:"1.5rem"}),children:[w?"View ":"Add "," Description"]})}),e.jsx("div",{className:c.paramDescContainer_separator}),!w&&e.jsx(a.Button,{className:c.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(t,{src:s,width:"1.125rem",height:"1.125rem"}),onClick:()=>{ue(),ee(""),g(void 0)}}),!w&&e.jsx(i,{disabled:!!re.name.trim(),content:"Parameter name can't be empty ",children:e.jsx(a.Button,{className:c.deleteParamBtn,variant:"link",color:"success",disabled:!re.name.trim(),endIcon:e.jsx(t,{src:r,width:"0.125rem",height:"0.125rem"}),onClick:()=>{ee(""),me()}})})]})," "]})},"parameter schema desc")]}):e.jsx(e.Fragment,{children:!w&&e.jsx("tr",{"data-i":"addNew",className:"row",children:e.jsx("td",{colSpan:5,children:e.jsx(a.Button,{variant:"link",color:"primary",onClick:()=>{g((e=>e?void 0:D?"Req":"Res"))},children:"+ Add Parameter"})})},"addNew")})]})]})})})};export{x as default};
2
2
  //# sourceMappingURL=table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["import React, { useState } from 'react'\r\nimport './style.scss'\r\nimport { Button, Input, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\r\nimport Tooltip from '../Tooltip/Tooltip'\r\nimport SVGLoader from '../SVGLoader/SVGLoader'\r\nimport { AddRow, EditIcon, DeleteIcon } from '../../assets/icons'\r\nimport styles from '../MethodAccordion/MethodAccordion.module.scss'\r\nimport { useFormik } from 'formik'\r\nimport * as yup from 'yup'\r\nimport { capitalize } from '../../helpers/methodAccordion.helper'\r\nimport regex from '../../constants/regex'\r\n\r\nconst ParamterTable = ({\r\n id,\r\n headCells,\r\n data,\r\n isFormOpen,\r\n setIsFormOpen,\r\n saveNewRow,\r\n readOnly,\r\n}) => {\r\n const [text, setText] = useState('')\r\n const [tooltipRef, setTooltipRef] = useState(null)\r\n const { values, errors, setFieldValue, isValid, submitForm, resetForm } = useFormik({\r\n validateOnMount: true,\r\n initialValues: {\r\n name: '',\r\n in: 'Query',\r\n schema: {\r\n type: 'String',\r\n },\r\n required: true,\r\n description: '',\r\n },\r\n validationSchema: yup.object().shape({\r\n name: yup.string().trim().required('Parameter name is required'),\r\n in: yup.string().required('Paramter type is required'),\r\n schema: yup.object().shape({\r\n type: yup.string().required('Parameter schema type is required'),\r\n }),\r\n required: yup.boolean().optional(),\r\n description: yup.string().trim().optional(),\r\n }),\r\n onSubmit: (values) => {\r\n saveNewRow(values)\r\n setIsFormOpen(false)\r\n setText('')\r\n resetForm()\r\n },\r\n })\r\n\r\n return (\r\n <div className=\"tableSectionContainer\">\r\n <div className=\"tableContainer\">\r\n <table id={id || ''} className={`table borderRadiusTop borderRadiusBottom`}>\r\n <thead className=\"tableHead\">\r\n <tr>\r\n {headCells?.map((headCell) => (\r\n <th\r\n key={headCell.id}\r\n className={`tableHeadCell ${headCell.classes || ''}`}\r\n style={{ width: headCell.width, minWidth: headCell.minWidth }}\r\n >\r\n <div\r\n className=\"headContainer\"\r\n data-id={`${\r\n typeof headCell.label === 'string'\r\n ? headCell.label.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_')\r\n : 'UNKNOWN_LABEL'\r\n }_COLUMN`}\r\n >\r\n {headCell.label}\r\n </div>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody className=\"tableBody\" data-id=\"TABLE_BODY\">\r\n {data?.map((row, rowIndex) => {\r\n return (\r\n <tr key={rowIndex} data-i={rowIndex} className={`row`}>\r\n {headCells?.map((headCell) => {\r\n const cellContent = row[headCell.id] !== '_' && (\r\n <div\r\n data-id=\"TEXT_DESCRIPTION\"\r\n className=\"tableData\"\r\n style={{\r\n width: headCell.width,\r\n minWidth: headCell.minWidth,\r\n }}\r\n >\r\n {row[headCell.id]}\r\n </div>\r\n )\r\n\r\n return (\r\n <td\r\n key={headCell.id}\r\n style={{\r\n width: headCell.width,\r\n minWidth: headCell.minWidth,\r\n }}\r\n >\r\n {cellContent}\r\n </td>\r\n )\r\n })}\r\n </tr>\r\n )\r\n })}\r\n {data?.length === 0 && readOnly && (\r\n <tr className=\"fallbackTableRow\">\r\n <td className=\"fallbackContainer\" colSpan={headCells?.length}>\r\n <div className=\"fallbackTextContainer\">\r\n <span className=\"fallbackText\"> No Data Available</span>\r\n </div>\r\n </td>\r\n </tr>\r\n )}\r\n\r\n {isFormOpen && !readOnly ? (\r\n <tr className={`row`}>\r\n <td key={'Parameter name'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <Input\r\n placeholder=\"Parameter name\"\r\n size=\"large\"\r\n type=\"text\"\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value as string))\r\n setFieldValue('name', value)\r\n }}\r\n value={values.name}\r\n disabled={readOnly}\r\n />\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter in'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <SelectGroupV2\r\n disabled={readOnly}\r\n value={{\r\n label: capitalize(values.in),\r\n value: capitalize(values.in),\r\n }}\r\n onChange={(item) => setFieldValue('in', item?.value?.toLowerCase())} // Updates state on selection\r\n options={[\r\n {\r\n list: [\r\n { label: 'Query', value: 'query' },\r\n { label: 'Header', value: 'header' },\r\n { label: 'Path', value: 'path' },\r\n { label: 'Body', value: 'body' },\r\n ],\r\n },\r\n ]}\r\n errorMsg={!!errors.in && errors.in}\r\n isMultiple={false}\r\n withSearch={false}\r\n clearable={false}\r\n />{' '}\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter schema type'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <SelectGroupV2\r\n disabled={readOnly}\r\n clearable={false}\r\n value={{\r\n label: capitalize(values.schema.type),\r\n value: capitalize(values.schema.type),\r\n }}\r\n errorMsg={!!errors.schema && errors.schema}\r\n onChange={(item) => setFieldValue('schema.type', item?.value?.toLowerCase())} // Updates state on selection\r\n options={[\r\n {\r\n list: [\r\n { label: 'String', value: 'string' },\r\n { label: 'Integer', value: 'integer' },\r\n { label: 'Boolean', value: 'boolean' },\r\n { label: 'Object', value: 'object' },\r\n { label: 'Array', value: 'array' },\r\n { label: 'Number', value: 'number' },\r\n ],\r\n },\r\n ]}\r\n isMultiple={false}\r\n withSearch={false}\r\n />{' '}\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter required'}>\r\n <div data-id=\"is required\" className=\"tableData\">\r\n {readOnly ? (\r\n <>{values.required ? 'True' : 'False'}</>\r\n ) : (\r\n <Switch\r\n checked={values.required}\r\n onClick={() => {\r\n if (readOnly) {\r\n return\r\n }\r\n setFieldValue('required', !values.required)\r\n }}\r\n />\r\n )}\r\n </div>\r\n </td>\r\n\r\n <td key={'parameter schema desc'}>\r\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) => setTooltipRef(instance)}\r\n content={\r\n <div className={styles.editDescTooltipContent}>\r\n <p className={styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n value={text || values.description}\r\n onChange={(value) => {\r\n if (value === '' || regex.ASCII.test(value)) setText(value)\r\n }}\r\n disabled={readOnly}\r\n placeholder=\"Describe parameter...\"\r\n maxLength={120}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue('description', text?.trim())\r\n tooltipRef?.hide()\r\n }}\r\n disabled={text?.trim() === ''}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly ? 'View ' : 'Add '} Description\r\n </Button>\r\n </Tooltip>\r\n\r\n <div className={styles.paramDescContainer_separator}></div>\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={\r\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\r\n }\r\n onClick={() => {\r\n resetForm()\r\n setText('')\r\n setIsFormOpen(false)\r\n }} // Correctly delete the new row\r\n />\r\n )}\r\n\r\n {!readOnly && (\r\n <Tooltip\r\n disabled={!!values.name.trim()}\r\n content={`Parameter name can't be empty `}\r\n >\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"success\"\r\n disabled={!values.name.trim()}\r\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\r\n onClick={() => {\r\n setText('')\r\n submitForm()\r\n }} // Save the new row when clicked\r\n />\r\n </Tooltip>\r\n )}\r\n </div>{' '}\r\n </div>\r\n </td>\r\n </tr>\r\n ) : (\r\n <>\r\n {!readOnly && (\r\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\r\n <td colSpan={5}>\r\n <Button\r\n variant=\"link\"\r\n color=\"primary\"\r\n onClick={() => {\r\n setIsFormOpen((prev) => !prev)\r\n }}\r\n >\r\n + Add Parameter\r\n </Button>\r\n </td>\r\n </tr>\r\n )}\r\n </>\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ParamterTable\r\n"],"names":["ParamterTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","text","setText","useState","tooltipRef","setTooltipRef","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","validateOnMount","initialValues","name","in","schema","type","required","description","validationSchema","yup.object","shape","yup.string","trim","yup.boolean","optional","onSubmit","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","length","colSpan","Input","placeholder","size","onChange","value","regex","ASCII","test","disabled","SelectGroupV2","capitalize","item","_a","toLowerCase","options","list","errorMsg","isMultiple","withSearch","clearable","_Fragment","Fragment","Switch","checked","onClick","styles","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","editDescTooltipContent","editDescTooltipContent_header","TextArea","maxLength","Button","editDescTooltipContent_btn","variant","hide","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","height","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow","prev"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["import React, { useState } from 'react'\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().optional(),\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) => setFieldValue('in', item?.value?.toLowerCase())} // Updates state on selection\n options={[\n {\n list: isRequest\n ? [\n { label: 'Query', value: 'query' },\n { label: 'Header', value: 'header' },\n { label: 'Path', value: 'path' },\n { label: 'Body', value: 'body' },\n ]\n : [{ label: 'Header', value: 'header' }],\n },\n ]}\n errorMsg={!!errors.in && errors.in}\n isMultiple={false}\n withSearch={false}\n clearable={false}\n />{' '}\n </div>\n </td>\n\n <td key={'parameter schema type'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <SelectGroupV2\n disabled={readOnly}\n clearable={false}\n value={{\n label: capitalize(values?.schema?.type),\n value: values?.schema?.type,\n }}\n errorMsg={!!errors.schema && errors.schema}\n onChange={(item) => setFieldValue('schema.type', item?.value?.toLowerCase())} // Updates state on selection\n options={[\n {\n list: [\n { label: 'String', value: 'string' },\n { label: 'Integer', value: 'integer' },\n { label: 'Boolean', value: 'boolean' },\n { label: 'Object', value: 'object' },\n { label: 'Array', value: 'array' },\n { label: 'Number', value: 'number' },\n ],\n },\n ]}\n isMultiple={false}\n withSearch={false}\n />{' '}\n </div>\n </td>\n\n <td key={'parameter array schema type'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n {values.schema && values.schema?.type?.toLowerCase() == 'array' ? (\n <SelectGroupV2\n disabled={readOnly}\n clearable={false}\n value={{\n label: capitalize(values?.schema?.items?.type),\n value: values.schema?.items?.type,\n }}\n errorMsg={!!errors?.schema?.items?.type && errors?.schema?.items?.type}\n onChange={(item) =>\n setFieldValue('schema.items.type', item?.value?.toLowerCase())\n } // Updates state on selection\n options={[\n {\n list: [\n { label: 'String', value: 'string' },\n { label: 'Integer', value: 'integer' },\n { label: 'Boolean', value: 'boolean' },\n { label: 'Object', value: 'object' },\n { label: 'Array', value: 'array' },\n { label: 'Number', value: 'number' },\n ],\n },\n ]}\n isMultiple={false}\n withSearch={false}\n />\n ) : (\n '-'\n )}{' '}\n </div>\n </td>\n\n <td key={'parameter enum'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n {values?.schema &&\n values?.schema?.type?.toLowerCase() != 'array' &&\n values?.schema?.type?.toLowerCase() != 'object' ? (\n <Tooltip\n disabled={\n values?.schema?.type?.toLowerCase() == 'array' ||\n values?.schema?.type?.toLowerCase() == 'object'\n }\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipEnumRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Enum</p>\n {!!values?.schema?.enum &&\n !!values?.schema?.enum.length &&\n values?.schema?.enum?.map((item, index) => (\n <Input\n key={index}\n className={'methodDescForEnum'}\n required\n clearable={false}\n placeholder=\"Enter Enum value...\"\n value={item}\n onChange={(value) => {\n setFieldValue(`schema.enum[${index}]`, value)\n }}\n />\n ))}\n {enumFields &&\n enumFields?.map((item, index) => (\n <Input\n key={index}\n className={'methodDescForEnum'}\n required\n clearable={false}\n placeholder={`Enter Enum value...`}\n value={item}\n onChange={(value) => {\n let _values = [...enumFields]\n _values[index] = value\n setEnumFields(_values)\n }}\n />\n ))}\n <p\n className={'addEnumButton'}\n onClick={() => {\n setEnumFields((prev) => [...prev, ''])\n }}\n >\n <SVGLoader src={PlusSquare} />\n Add New Enum\n </p>\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n type=\"button\"\n onClick={() => {\n setFieldValue('schema.enum', [\n ...values?.schema?.enum,\n ...enumFields,\n ])\n setEnumFields([])\n tooltipEnumRef?.hide()\n }}\n disabled={\n (enumFields.length > 0 &&\n enumFields?.filter((item) => !item).length) ||\n (values?.schema?.enum.length > 0 &&\n values?.schema?.enum?.filter((item) => !item).length)\n }\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n <Button\n className={styles.editDescBtn}\n id=\"EnumButton\"\n variant=\"link\"\n color=\"action\"\n endIcon={\n <SVGLoader\n id=\"enumIcon\"\n src={PlusIcon}\n width=\"1.5rem\"\n height=\"1.5rem\"\n />\n }\n >\n Add\n </Button>\n </Tooltip>\n ) : (\n '-'\n )}{' '}\n </div>\n </td>\n\n <td key={'parameter required'}>\n <div data-id=\"is required\" className=\"tableData\">\n {readOnly ? (\n <>{values.required ? 'True' : 'False'}</>\n ) : (\n <Switch\n checked={values.required}\n onClick={() => {\n if (readOnly) {\n return\n }\n setFieldValue('required', !values.required)\n }}\n />\n )}\n </div>\n </td>\n\n <td key={'parameter schema desc'}>\n <div data-id=\"TEXT_DESCRIPTION\" className=\"tableData\">\n <div className={styles.paramDescContainer}>\n <Tooltip\n arrowWithBorder\n placement=\"bottom-end\"\n type=\"function\"\n trigger=\"click\"\n delay={[0, 0]}\n onCreate={(instance) => setTooltipRef(instance)}\n content={\n <div className={styles.editDescTooltipContent}>\n <p className={styles.editDescTooltipContent_header}>Description</p>\n <TextArea\n value={text || values.description}\n onChange={(value) => {\n if (value === '' || regex.ASCII.test(value)) setText(value)\n }}\n disabled={readOnly}\n placeholder=\"Describe parameter...\"\n maxLength={120}\n />\n {!readOnly && (\n <Button\n className={styles.editDescTooltipContent_btn}\n variant=\"outlined\"\n size=\"small\"\n onClick={() => {\n setFieldValue('description', text?.trim())\n tooltipRef?.hide()\n }}\n disabled={text?.trim() === ''}\n >\n Apply\n </Button>\n )}\n </div>\n }\n >\n <Button\n className={styles.editDescBtn}\n variant=\"link\"\n color=\"action\"\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\n >\n {readOnly ? 'View ' : 'Add '} Description\n </Button>\n </Tooltip>\n\n <div className={styles.paramDescContainer_separator}></div>\n {!readOnly && (\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"error\"\n endIcon={\n <SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />\n }\n onClick={() => {\n resetForm()\n setText('')\n setIsFormOpen(undefined)\n }} // Correctly delete the new row\n />\n )}\n\n {!readOnly && (\n <Tooltip\n disabled={!!values.name.trim()}\n content={`Parameter name can't be empty `}\n >\n <Button\n className={styles.deleteParamBtn}\n variant=\"link\"\n color=\"success\"\n disabled={!values.name.trim()}\n endIcon={<SVGLoader src={AddRow} width=\"0.125rem\" height=\"0.125rem\" />}\n onClick={() => {\n setText('')\n submitForm()\n }} // Save the new row when clicked\n />\n </Tooltip>\n )}\n </div>{' '}\n </div>\n </td>\n </tr>\n ) : (\n <>\n {!readOnly && (\n <tr key={'addNew'} data-i={'addNew'} className={`row`}>\n <td colSpan={5}>\n <Button\n variant=\"link\"\n color=\"primary\"\n onClick={() => {\n setIsFormOpen((prev) => (!prev ? (isRequest ? 'Req' : 'Res') : undefined))\n }}\n >\n + Add Parameter\n </Button>\n </td>\n </tr>\n )}\n </>\n )}\n </tbody>\n </table>\n </div>\n </div>\n )\n}\n\nexport default ParamterTable\n"],"names":["ParamterTable","id","headCells","data","isFormOpen","setIsFormOpen","saveNewRow","readOnly","isRequest","text","setText","useState","tooltipRef","setTooltipRef","tooltipEnumRef","setTooltipEnumRef","enumFields","setEnumFields","values","errors","setFieldValue","isValid","submitForm","resetForm","useFormik","validateOnMount","initialValues","name","in","schema","type","enum","items","required","description","validationSchema","yup.object","shape","yup.string","default","trim","yup.array","optional","yup.boolean","onSubmit","_b","_a","_d","_c","undefined","_jsx","className","_jsxs","jsxs","children","map","headCell","classes","style","width","minWidth","jsx","label","toUpperCase","replace","row","rowIndex","cellContent","length","colSpan","Input","placeholder","size","onChange","value","regex","ASCII","test","disabled","SelectGroupV2","capitalize","item","toLowerCase","options","list","errorMsg","isMultiple","withSearch","clearable","_f","_e","_g","_h","_k","_j","_m","_l","_p","_o","_q","Tooltip","_t","_s","_u","_v","arrowWithBorder","placement","trigger","delay","onCreate","instance","content","styles","editDescTooltipContent","editDescTooltipContent_header","_w","_x","_z","_y","index","_values","onClick","prev","SVGLoader","src","PlusSquare","Button","editDescTooltipContent_btn","variant","hide","filter","_0","_2","_1","editDescBtn","color","endIcon","PlusIcon","height","_Fragment","Switch","checked","paramDescContainer","TextArea","maxLength","EditIcon","paramDescContainer_separator","deleteParamBtn","DeleteIcon","AddRow"],"mappings":"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"}