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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/_virtual/core.js +2 -0
  2. package/dist/_virtual/core.js.map +1 -0
  3. package/dist/_virtual/core2.js +2 -0
  4. package/dist/_virtual/core2.js.map +1 -0
  5. package/dist/_virtual/format.js +2 -0
  6. package/dist/_virtual/format.js.map +1 -0
  7. package/dist/_virtual/index3.js +1 -1
  8. package/dist/_virtual/index4.js +1 -1
  9. package/dist/_virtual/index5.js +1 -1
  10. package/dist/_virtual/index6.js +1 -1
  11. package/dist/f4452c3ebcf0d5da.svg +4 -0
  12. package/dist/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +2 -0
  13. package/dist/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js.map +1 -0
  14. package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +2 -0
  15. package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js.map +1 -0
  16. package/dist/node_modules/@babel/runtime/helpers/esm/defineProperty.js +2 -0
  17. package/dist/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +1 -0
  18. package/dist/node_modules/@babel/runtime/helpers/esm/extends.js +2 -0
  19. package/dist/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -0
  20. package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +2 -0
  21. package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArray.js.map +1 -0
  22. package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +2 -0
  23. package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js.map +1 -0
  24. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +2 -0
  25. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js.map +1 -0
  26. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +2 -0
  27. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -0
  28. package/dist/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +2 -0
  29. package/dist/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js.map +1 -0
  30. package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +2 -0
  31. package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
  32. package/dist/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +2 -0
  33. package/dist/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
  34. package/dist/node_modules/@babel/runtime/helpers/esm/typeof.js +2 -0
  35. package/dist/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
  36. package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +2 -0
  37. package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js.map +1 -0
  38. package/dist/node_modules/fault/index.js +2 -0
  39. package/dist/node_modules/fault/index.js.map +1 -0
  40. package/dist/node_modules/format/format.js +2 -0
  41. package/dist/node_modules/format/format.js.map +1 -0
  42. package/dist/node_modules/highlight.js/lib/core.js +2 -0
  43. package/dist/node_modules/highlight.js/lib/core.js.map +1 -0
  44. package/dist/node_modules/lowlight/lib/core.js +2 -0
  45. package/dist/node_modules/lowlight/lib/core.js.map +1 -0
  46. package/dist/node_modules/nanoid/index.js +2 -0
  47. package/dist/node_modules/nanoid/index.js.map +1 -0
  48. package/dist/node_modules/nanoid/url-alphabet/index.js +2 -0
  49. package/dist/node_modules/nanoid/url-alphabet/index.js.map +1 -0
  50. package/dist/node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js +2 -0
  51. package/dist/node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js.map +1 -0
  52. package/dist/node_modules/react-syntax-highlighter/dist/esm/create-element.js +2 -0
  53. package/dist/node_modules/react-syntax-highlighter/dist/esm/create-element.js.map +1 -0
  54. package/dist/node_modules/react-syntax-highlighter/dist/esm/highlight.js +2 -0
  55. package/dist/node_modules/react-syntax-highlighter/dist/esm/highlight.js.map +1 -0
  56. package/dist/node_modules/react-syntax-highlighter/dist/esm/light.js +2 -0
  57. package/dist/node_modules/react-syntax-highlighter/dist/esm/light.js.map +1 -0
  58. package/dist/node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-dark.js +2 -0
  59. package/dist/node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-dark.js.map +1 -0
  60. package/dist/node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-light.js +2 -0
  61. package/dist/node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-light.js.map +1 -0
  62. package/dist/node_modules/toposort/index.js +1 -1
  63. package/dist/node_modules/yup/index.esm.js +1 -1
  64. package/dist/src/assets/icons/UpArrow.svg.js +2 -0
  65. package/dist/src/assets/icons/UpArrow.svg.js.map +1 -0
  66. package/dist/src/assets/icons/copy.svg.js +2 -0
  67. package/dist/src/assets/icons/copy.svg.js.map +1 -0
  68. package/dist/src/components/MethodAccordion/MethodAccordion.js +1 -1
  69. package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
  70. package/dist/src/components/dialog/index.js +1 -1
  71. package/dist/src/components/dialog/index.js.map +1 -1
  72. package/dist/src/components/table/table.js +1 -1
  73. package/dist/src/components/table/table.js.map +1 -1
  74. package/dist/src/constants/methods.constant.js +1 -1
  75. package/dist/src/constants/methods.constant.js.map +1 -1
  76. package/dist/src/helpers/docs.helper.js +2 -0
  77. package/dist/src/helpers/docs.helper.js.map +1 -0
  78. package/dist/src/layout/docsComponents/Codebox/Codebox.js +2 -0
  79. package/dist/src/layout/docsComponents/Codebox/Codebox.js.map +1 -0
  80. package/dist/src/layout/docsComponents/Codebox/style.module.scss.js +2 -0
  81. package/dist/src/layout/docsComponents/Codebox/style.module.scss.js.map +1 -0
  82. package/dist/src/layout/docsComponents/DocsAside/DocsAside.js +1 -1
  83. package/dist/src/layout/docsComponents/DocsAside/DocsAside.js.map +1 -1
  84. package/dist/src/layout/docsComponents/DocsAside/style.module.scss.js +2 -0
  85. package/dist/src/layout/docsComponents/DocsAside/style.module.scss.js.map +1 -0
  86. package/dist/src/layout/docsComponents/DocsContent/DocsContent.js +1 -1
  87. package/dist/src/layout/docsComponents/DocsContent/DocsContent.js.map +1 -1
  88. package/dist/src/layout/docsComponents/DocsContent/TagPage/index.js +2 -0
  89. package/dist/src/layout/docsComponents/DocsContent/TagPage/index.js.map +1 -0
  90. package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js +1 -1
  91. package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js.map +1 -1
  92. package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js +1 -1
  93. package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js.map +1 -1
  94. package/dist/src/layout/docsLayout.js +1 -1
  95. package/dist/src/layout/docsLayout.js.map +1 -1
  96. package/dist/src/layout/layout.js +1 -1
  97. package/dist/src/layout/layout.js.map +1 -1
  98. package/dist/src/layout/layout.module.css.js +1 -1
  99. package/dist/src/utils/index.js +2 -0
  100. package/dist/src/utils/index.js.map +1 -0
  101. package/dist/styles.css +659 -429
  102. package/dist/types/assets/icons/index.d.ts +1 -0
  103. package/dist/types/components/dialog/dialog.d.ts +1 -0
  104. package/dist/types/components/dialog/index.d.ts +1 -1
  105. package/dist/types/layout/docsComponents/Codebox/Codebox.d.ts +4 -0
  106. package/dist/types/layout/docsComponents/DocsAside/DocsAside.d.ts +4 -2
  107. package/dist/types/layout/docsComponents/DocsContent/DocsContent.d.ts +4 -1
  108. package/dist/types/layout/docsComponents/DocsContent/EndpointPage/index.d.ts +3 -1
  109. package/dist/types/layout/docsComponents/DocsContent/TagPage/index.d.ts +3 -1
  110. package/dist/types/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.d.ts +2 -1
  111. package/dist/types/utils/index.d.ts +1 -0
  112. package/package.json +4 -3
  113. package/rollup.config.js +2 -0
  114. package/src/assets/icons/copy.svg +4 -0
  115. package/src/assets/icons/index.ts +1 -0
  116. package/src/components/MethodAccordion/MethodAccordion.module.scss +20 -11
  117. package/src/components/MethodAccordion/MethodAccordion.tsx +21 -13
  118. package/src/components/dialog/dialog.ts +1 -0
  119. package/src/components/dialog/index.tsx +27 -24
  120. package/src/components/table/table.tsx +5 -1
  121. package/src/constants/methods.constant.ts +1 -1
  122. package/src/layout/docsComponents/Codebox/Codebox.tsx +61 -0
  123. package/src/layout/docsComponents/Codebox/style.module.scss +43 -0
  124. package/src/layout/docsComponents/DocsAside/DocsAside.tsx +90 -4
  125. package/src/layout/docsComponents/DocsAside/style.module.scss +113 -0
  126. package/src/layout/docsComponents/DocsContent/DocsContent.tsx +3 -2
  127. package/src/layout/docsComponents/DocsContent/EndpointPage/index.tsx +2 -1
  128. package/src/layout/docsComponents/DocsContent/TagPage/index.tsx +34 -63
  129. package/src/layout/docsComponents/DocsContent/TagPage/style.scss +42 -5
  130. package/src/layout/docsComponents/DocsHeader/DocsHeader.module.scss +78 -5
  131. package/src/layout/docsComponents/DocsHeader/DocsHeader.tsx +51 -14
  132. package/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.tsx +17 -12
  133. package/src/layout/docsComponents/index.scss +3 -1
  134. package/src/layout/docsLayout.tsx +15 -12
  135. package/src/layout/layout.module.css +8 -5
  136. package/src/layout/layout.tsx +3 -3
  137. package/src/utils/index.ts +7 -0
  138. package/src/layout/docsComponents/DocsAside/style.scss +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"DocsAside.js","sources":["../../../../../src/layout/docsComponents/DocsAside/DocsAside.tsx"],"sourcesContent":["import React from 'react'\nimport './style.scss'\n\nconst DocsAside = () => {\n return <aside className=\"api-docs-aside\"></aside>\n}\n\nexport default DocsAside\n"],"names":["DocsAside","_jsx","jsx","className"],"mappings":"wDAGM,MAAAA,EAAY,IACTC,EAAOC,IAAA,QAAA,CAAAC,UAAU"}
1
+ {"version":3,"file":"DocsAside.js","sources":["../../../../../src/layout/docsComponents/DocsAside/DocsAside.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { EndpointData } from 'src/layout/docsLayout'\nimport Codebox from '../Codebox/Codebox'\nimport { SelectGroup } from 'digitinary-ui'\nimport { httpStatusCodes } from '../../../constants/index'\nimport { handleStatusColor } from '../../../helpers/methodAccordion.helper'\nimport styles from './style.module.scss'\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 DocsAside = ({ data }: { data: EndpointData }) => {\n const [selectedResStatusCode, setSelectedResStatusCode] = useState(httpStatusCodeOptions[4])\n const currentResponse =\n Object.entries(data.responses)\n .map(([code, data]) => ({ code, data }))\n .find((res) => Number(res.code) === selectedResStatusCode.value) || '{}'\n\n const stringifyRequestBody = () => {\n if (data?.requestBody?.content) {\n const contentKey = Object.keys(data?.requestBody?.content)[0]\n return JSON.stringify(data?.requestBody?.content[contentKey], null, 2)\n } else {\n return '{}'\n }\n }\n\n const stringifyResponseBody = () => {\n if (currentResponse?.data) {\n const contentKey = Object.keys(currentResponse.data?.content)[0]\n return JSON.stringify(currentResponse.data?.content[contentKey], null, 2)\n } else {\n return '{}'\n }\n }\n\n return (\n <aside className={styles.apiDocsAside}>\n <h2 className={styles.apiDocsAside_title}>{data.summary}</h2>\n <h4 className={styles.apiDocsAside_subtitle}>\n <span className={styles.apiDocsAside_subtitle_method} data-method={data.method}>\n {data.method}\n </span>{' '}\n <span>{data.path}</span>\n </h4>\n {data?.requestBody?.content && (\n <div className={styles.codeboxSection}>\n <div className={styles.codeboxHeader}>\n <h6 className={styles.codeboxTitle}>Request</h6>\n </div>\n\n <Codebox code={stringifyRequestBody()} />\n </div>\n )}\n {Object.keys(data?.responses || {})?.length > 0 && (\n <div className={styles.codeboxSection}>\n <div className={`${styles.codeboxHeader}`}>\n <h6 className={styles.codeboxTitle}>Response</h6>\n <SelectGroup\n size=\"small\"\n withSearch={false}\n isMultiple={false}\n clearable={false}\n placeholder=\"200\"\n options={[\n {\n list: httpStatusCodeOptions,\n },\n ]}\n value={selectedResStatusCode}\n onChange={(value) => {\n setSelectedResStatusCode(value)\n }}\n />\n </div>\n\n <Codebox code={stringifyResponseBody()} />\n </div>\n )}\n </aside>\n )\n}\n\nexport default DocsAside\n"],"names":["httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","className","styles","statusCodeOptionContainer","children","_jsx","statusCodeOptionCircle","style","backgroundColor","handleStatusColor","value","DocsAside","data","selectedResStatusCode","setSelectedResStatusCode","useState","currentResponse","Object","entries","responses","find","res","Number","apiDocsAside","jsx","apiDocsAside_title","summary","jsxs","apiDocsAside_subtitle","apiDocsAside_subtitle_method","method","path","_a","requestBody","content","codeboxSection","codeboxHeader","codeboxTitle","Codebox","contentKey","keys","_b","JSON","stringify","_c","stringifyRequestBody","length","SelectGroup","size","withSearch","isMultiple","clearable","placeholder","options","list","onChange","stringifyResponseBody"],"mappings":"mWAQA,MAAMA,EAAwBC,EAAgBC,KAAKC,IAAU,CAC3DC,MACEC,EAAAA,KAAK,MAAA,CAAAC,UAAWC,EAAOC,0BAAyBC,SAAA,CAC9CC,EAAAA,IACE,MAAA,CAAAJ,UAAWC,EAAOI,uBAClBC,MAAO,CAAEC,gBAAiBC,EAAkBX,MAE9CO,MAAA,OAAA,CAAAD,SAAON,OAGXY,MAAOZ,MAGHa,EAAY,EAAGC,mBACnB,MAAOC,EAAuBC,GAA4BC,EAASpB,EAAsB,IACnFqB,EACJC,OAAOC,QAAQN,EAAKO,WACjBtB,KAAI,EAAEC,EAAMc,MAAK,CAAQd,OAAMc,WAC/BQ,MAAMC,GAAQC,OAAOD,EAAIvB,QAAUe,EAAsBH,SAAU,KAoBxE,OACEV,EAAAA,KAAO,QAAA,CAAAC,UAAWC,EAAOqB,aAAYnB,SAAA,CACnCC,EAAImB,IAAA,KAAA,CAAAvB,UAAWC,EAAOuB,mBAAqBrB,SAAAQ,EAAKc,UAChD1B,EAAA2B,KAAA,KAAA,CAAI1B,UAAWC,EAAO0B,sBAAqBxB,SAAA,CACzCC,cAAMJ,UAAWC,EAAO2B,6BAA2C,cAAAjB,EAAKkB,OAAM1B,SAC3EQ,EAAKkB,SACA,IACRzB,EAAAmB,IAAA,OAAA,CAAApB,SAAOQ,EAAKmB,WAEM,QAAnBC,EAAApB,eAAAA,EAAMqB,mBAAa,IAAAD,OAAA,EAAAA,EAAAE,UAClBlC,cAAKC,UAAWC,EAAOiC,yBACrB9B,EAAAA,IAAK,MAAA,CAAAJ,UAAWC,EAAOkC,cAAahC,SAClCC,EAAAA,UAAIJ,UAAWC,EAAOmC,aAA0BjC,SAAA,cAGlDC,EAAAA,IAACiC,EAAQ,CAAAxC,KAjCY,gBAC3B,GAAqB,QAAjBkC,EAAApB,aAAI,EAAJA,EAAMqB,mBAAW,IAAAD,OAAA,EAAAA,EAAEE,QAAS,CAC9B,MAAMK,EAAatB,OAAOuB,KAAwB,QAAnBC,EAAA7B,eAAAA,EAAMqB,mBAAa,IAAAQ,OAAA,EAAAA,EAAAP,SAAS,GAC3D,OAAOQ,KAAKC,UAA6B,UAAnB/B,aAAI,EAAJA,EAAMqB,mBAAa,IAAAW,OAAA,EAAAA,EAAAV,QAAQK,GAAa,KAAM,EACrE,CACC,MAAO,IACR,EA2BoBM,SAGgB,UAAlC5B,OAAOuB,MAAK5B,aAAA,EAAAA,EAAMO,YAAa,WAAG,IAAAsB,OAAA,EAAAA,EAAEK,QAAS,GAC5C9C,EAAAA,YAAKC,UAAWC,EAAOiC,eACrB/B,SAAA,CAAAJ,EAAAA,KAAA,MAAA,CAAKC,UAAW,GAAGC,EAAOkC,gBACxBhC,SAAA,CAAAC,EAAAA,IAAA,KAAA,CAAIJ,UAAWC,EAAOmC,mCACtBhC,MAAC0C,EAAAA,YACC,CAAAC,KAAK,QACLC,YAAY,EACZC,YAAY,EACZC,WAAW,EACXC,YAAY,MACZC,QAAS,CACP,CACEC,KAAM3D,IAGVe,MAAOG,EACP0C,SAAW7C,IACTI,EAAyBJ,EAAM,OAKrCL,EAAAmB,IAACc,EAAQ,CAAAxC,KAjDa,cAC5B,GAAIkB,aAAe,EAAfA,EAAiBJ,KAAM,CACzB,MAAM2B,EAAatB,OAAOuB,aAAKR,EAAAhB,EAAgBJ,2BAAMsB,SAAS,GAC9D,OAAOQ,KAAKC,UAA8B,QAApBF,EAAAzB,EAAgBJ,YAAI,IAAA6B,OAAA,EAAAA,EAAEP,QAAQK,GAAa,KAAM,EACxE,CACC,MAAO,IACR,EA2CoBiB,UAItB"}
@@ -0,0 +1,2 @@
1
+ const t="";export{t as default};
2
+ //# sourceMappingURL=style.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- import{j as s}from"../../../../_virtual/jsx-runtime.js";import"../../../../node_modules/tslib/tslib.es6.js";import"react";import"../../../../node_modules/html-react-parser/esm/index.mjs.js";import{EndpointPage as e}from"./EndpointPage/index.js";const t=()=>s.jsx("main",{children:s.jsx(e,{})});export{t as default};
1
+ import{j as s}from"../../../../_virtual/jsx-runtime.js";import{TagPage as t}from"./TagPage/index.js";import"../../../../node_modules/tslib/tslib.es6.js";import"react";import"../../../../node_modules/html-react-parser/esm/index.mjs.js";import"../../../../_virtual/index.js";const e=({data:e})=>s.jsx("main",{children:s.jsx(t,{data:e})});export{e as default};
2
2
  //# sourceMappingURL=DocsContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DocsContent.js","sources":["../../../../../src/layout/docsComponents/DocsContent/DocsContent.tsx"],"sourcesContent":["import React from 'react'\nimport './style.scss'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { CopySticker } from '../../../assets/icons/index'\nimport { TagPage } from './TagPage'\nimport { EndpointPage } from './EndpointPage'\n\nconst DocsContent = () => {\n const isTagPage = false\n return <main>{isTagPage ? <TagPage /> : <EndpointPage />}</main>\n}\n\nexport default DocsContent\n"],"names":["DocsContent","_jsx","jsx","children","EndpointPage"],"mappings":"qPAOM,MAAAA,EAAc,IAEXC,EAAOC,IAAA,OAAA,CAAAC,SAA0BF,EAAAC,IAACE,EAAY,CAAA"}
1
+ {"version":3,"file":"DocsContent.js","sources":["../../../../../src/layout/docsComponents/DocsContent/DocsContent.tsx"],"sourcesContent":["import React from 'react'\nimport './style.scss'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { CopySticker } from '../../../assets/icons/index'\nimport { TagPage } from './TagPage'\nimport { EndpointPage } from './EndpointPage'\nimport { EndpointData, OverviewData } from 'src/layout/docsLayout'\n\nconst DocsContent = ({ data }: { data: OverviewData | EndpointData }) => {\n const isTagPage = false\n return <main>{!isTagPage ? <TagPage data={data} /> : <EndpointPage data={data} />}</main>\n}\n\nexport default DocsContent\n"],"names":["DocsContent","data","_jsx","children","jsx","TagPage"],"mappings":"iRAQA,MAAMA,EAAc,EAAGC,UAEdC,MAAA,OAAA,CAAAC,SAAoBD,EAACE,IAAAC,EAAQ,CAAAJ,KAAMA"}
@@ -0,0 +1,2 @@
1
+ import{j as s}from"../../../../../_virtual/jsx-runtime.js";import e from"../../../../components/SVGLoader/SVGLoader.js";import i from"../../../../assets/icons/CopySticker.svg.js";import a from"../../../../assets/icons/arrowRightGray.svg.js";const t=({data:t})=>s.jsxs("div",{className:"api-details-page",children:[s.jsx("h2",{className:"welcome",children:"Welcome to"}),s.jsx("h1",{className:"api-title",children:t.title}),s.jsxs("p",{className:"api-version",children:["API Version: ",s.jsx("span",{children:t.version})]}),s.jsxs("div",{className:"custom-url-input",children:[s.jsx("label",{className:"input-label",children:"API Base URL"}),s.jsxs("div",{className:"input-wrapper",children:[s.jsx("input",{type:"text",value:"https://apigw-sdb-1.test.dgate.digitinary.net/test",readOnly:!0}),s.jsx("span",{className:"icon",onClick:()=>navigator.clipboard.writeText("https://apigw-sdb-1.test.dgate.digitinary.net/test"),children:s.jsx(e,{src:i})})]})]}),s.jsx("p",{className:"api-desc",children:"API Description"}),s.jsxs("div",{className:"api-product-tag",children:["Product with this API ",s.jsx("span",{className:"product-tag",children:"Product 01"})]}),s.jsx("h3",{className:"section-title",children:"Endpoints"}),Object.entries(t.tags).map((([i,t])=>s.jsxs("div",{className:"endpoint-group",children:[s.jsx("h4",{className:"tag-title",children:i}),s.jsx("div",{className:"endpoint-list",children:t.map(((t,n)=>{var r,l,c;return s.jsxs("div",{className:"endpoint-card",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"endpoint-card-header",children:[s.jsx("span",{className:`method-label ${t.method.toLowerCase()}`,children:t.method}),s.jsx("div",{className:"title-wrapper",children:s.jsxs("h5",{children:[(t.summary||"Endpoint Name").slice(0,17),(null!==(l=null===(r=t.summary)||void 0===r?void 0:r.length)&&void 0!==l?l:0)>17&&"..."]})})]}),s.jsxs("div",{className:"endpoint-meta",children:[s.jsx("p",{children:t.path}),s.jsx("p",{className:"description",children:null!==(c=t.description)&&void 0!==c?c:"No Description "})]})]}),s.jsx("div",{className:"endpoint-arrow",children:s.jsx(e,{src:a})})]},`${i}-${n}`)}))})]},i))),s.jsxs("div",{className:"versions-section",children:[s.jsx("h4",{children:"API Versions"}),s.jsx("div",{className:"version-list",children:["1.2.0","1.3.0","1.4.0","1.5.0","2.2.0"].map((e=>s.jsx("button",{className:"version-btn",children:e},e)))})]})]});export{t as TagPage};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/layout/docsComponents/DocsContent/TagPage/index.tsx"],"sourcesContent":["import './style.scss'\nimport SVGLoader from '../../../../components/SVGLoader/SVGLoader'\nimport { arrowRightGray, CopySticker } from '../../../../assets/icons/index'\nimport { OverviewData } from 'src/layout/docsLayout'\n\nexport const TagPage = ({ data }) => {\n return (\n <div className=\"api-details-page\">\n <h2 className=\"welcome\">Welcome to</h2>\n <h1 className=\"api-title\">{data.title}</h1>\n <p className=\"api-version\">\n API Version: <span>{data.version}</span>\n </p>\n\n <div className=\"custom-url-input\">\n <label className=\"input-label\">API Base URL</label>\n <div className=\"input-wrapper\">\n <input type=\"text\" value=\"https://apigw-sdb-1.test.dgate.digitinary.net/test\" readOnly />\n <span\n className=\"icon\"\n onClick={() =>\n navigator.clipboard.writeText('https://apigw-sdb-1.test.dgate.digitinary.net/test')\n }\n >\n <SVGLoader src={CopySticker} />\n </span>\n </div>\n </div>\n\n <p className=\"api-desc\">API Description</p>\n <div className=\"api-product-tag\">\n Product with this API <span className=\"product-tag\">Product 01</span>\n </div>\n\n <h3 className=\"section-title\">Endpoints</h3>\n\n {Object.entries(data.tags).map(([tag, endpoints]) => (\n <div className=\"endpoint-group\" key={tag}>\n <h4 className=\"tag-title\">{tag}</h4>\n <div className=\"endpoint-list\">\n {endpoints.map((endpoint, idx) => (\n <div className=\"endpoint-card\" key={`${tag}-${idx}`}>\n <div>\n <div className=\"endpoint-card-header\">\n <span className={`method-label ${endpoint.method.toLowerCase()}`}>\n {endpoint.method}\n </span>\n <div className=\"title-wrapper\">\n <h5>\n {(endpoint.summary || 'Endpoint Name').slice(0, 17)}\n {(endpoint.summary?.length ?? 0) > 17 && '...'}\n </h5>\n </div>\n </div>\n <div className=\"endpoint-meta\">\n <p>{endpoint.path}</p>\n <p className=\"description\">{endpoint.description ?? 'No Description '}</p>\n </div>\n </div>\n\n <div className=\"endpoint-arrow\">\n <SVGLoader src={arrowRightGray} />\n </div>\n </div>\n ))}\n </div>\n </div>\n ))}\n\n <div className=\"versions-section\">\n <h4>API Versions</h4>\n <div className=\"version-list\">\n {['1.2.0', '1.3.0', '1.4.0', '1.5.0', '2.2.0'].map((ver) => (\n <button key={ver} className=\"version-btn\">\n {ver}\n </button>\n ))}\n </div>\n </div>\n </div>\n )\n}\n"],"names":["TagPage","data","_jsxs","className","_jsx","title","jsxs","jsx","children","version","type","value","readOnly","onClick","navigator","clipboard","writeText","SVGLoader","src","CopySticker","Object","entries","tags","map","tag","endpoints","endpoint","idx","method","toLowerCase","summary","slice","_b","_a","length","path","_c","description","arrowRightGray","ver"],"mappings":"uPAKaA,EAAU,EAAGC,UAEtBC,EAAAA,KAAK,MAAA,CAAAC,UAAU,6BACbC,EAAAA,IAAI,KAAA,CAAAD,UAAU,kCACdC,MAAA,KAAA,CAAID,UAAU,qBAAaF,EAAKI,QAChCH,EAAGI,KAAA,IAAA,CAAAH,UAAU,wCACEC,EAAOG,IAAA,OAAA,CAAAC,SAAAP,EAAKQ,aAG3BP,EAAAA,YAAKC,UAAU,mBACbK,SAAA,CAAAJ,EAAAA,IAAA,QAAA,CAAOD,UAAU,cAAkCK,SAAA,iBACnDN,EAAKI,KAAA,MAAA,CAAAH,UAAU,gBAAeK,SAAA,CAC5BJ,EAAOG,IAAA,QAAA,CAAAG,KAAK,OAAOC,MAAM,qDAAqDC,UAAQ,IACtFR,EAAAG,IAAA,OAAA,CACEJ,UAAU,OACVU,QAAS,IACPC,UAAUC,UAAUC,UAAU,sDAGhCR,SAAAJ,MAACa,EAAS,CAACC,IAAKC,YAKtBf,MAAG,IAAA,CAAAD,UAAU,WAAUK,SAAA,oBACvBN,EAAKI,KAAA,MAAA,CAAAH,UAAU,kBAAiBK,SAAA,CAAA,yBACRJ,MAAM,OAAA,CAAAD,UAAU,cAAaK,SAAA,kBAGrDJ,EAAAA,UAAID,UAAU,gBAAeK,SAAA,cAE5BY,OAAOC,QAAQpB,EAAKqB,MAAMC,KAAI,EAAEC,EAAKC,KACpCvB,EAAAA,KAAK,MAAA,CAAAC,UAAU,iBAAgBK,SAAA,CAC7BJ,EAAAA,UAAID,UAAU,YAAWK,SAAEgB,IAC3BpB,EAAAA,IAAK,MAAA,CAAAD,UAAU,gBAAeK,SAC3BiB,EAAUF,KAAI,CAACG,EAAUC,eAAQ,OAChCzB,EAAKI,KAAA,MAAA,CAAAH,UAAU,gBACbK,SAAA,CAAAN,OAAA,MAAA,CAAAM,SAAA,CACEN,EAAAA,KAAK,MAAA,CAAAC,UAAU,uBACbK,SAAA,CAAAJ,EAAAG,IAAA,OAAA,CAAMJ,UAAW,gBAAgBuB,EAASE,OAAOC,gBAAerB,SAC7DkB,EAASE,SAEZxB,EAAAA,IAAK,MAAA,CAAAD,UAAU,gBACbK,SAAAN,EAAAI,KAAA,KAAA,CAAAE,SAAA,EACIkB,EAASI,SAAW,iBAAiBC,MAAM,EAAG,aAC9CC,EAAkB,QAAlBC,EAAAP,EAASI,eAAS,IAAAG,OAAA,EAAAA,EAAAC,sBAAU,GAAK,IAAM,cAI/ChC,EAAKI,KAAA,MAAA,CAAAH,UAAU,0BACbC,EAAAA,IAAI,IAAA,CAAAI,SAAAkB,EAASS,OACb/B,EAAGG,IAAA,IAAA,CAAAJ,UAAU,cAAeK,SAAwB,QAAxB4B,EAAAV,EAASW,mBAAe,IAAAD,EAAAA,EAAA,0BAIxDhC,EAAAA,IAAK,MAAA,CAAAD,UAAU,iBACbK,SAAAJ,EAAAA,IAACa,EAAS,CAACC,IAAKoB,QApBgB,GAAGd,KAAOG,IAuB/C,QA3BgCH,KAgCvCtB,EAAAA,KAAA,MAAA,CAAKC,UAAU,mBAAkBK,SAAA,CAC/BJ,sCACAA,EAAAA,IAAA,MAAA,CAAKD,UAAU,eAAcK,SAC1B,CAAC,QAAS,QAAS,QAAS,QAAS,SAASe,KAAKgB,GAClDnC,EAAkBG,IAAA,SAAA,CAAAJ,UAAU,cAAaK,SACtC+B,GADUA"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"../../../../_virtual/jsx-runtime.js";import{useState as s,useRef as o}from"react";import{d as a}from"../../../../_virtual/index.js";import r from"../../../components/SVGLoader/SVGLoader.js";import t from"../../../assets/icons/ApiIcon.svg.js";import i from"../../../assets/icons/FilterIcon.svg.js";import l from"../../../assets/icons/BookIcon.svg.js";import n from"../../../assets/icons/searchIcon.svg.js";import c from"../../../components/Tooltip/Tooltip.js";import m from"../../../components/dialog/index.js";import{METHOD_OPTIONS as d}from"../../../constants/methods.constant.js";import h from"./DocsHeader.module.scss.js";const p=()=>{const[p,j]=s(!1),[x,u]=s(""),[v,f]=s([]),[b,N]=s(!1);o(null);return e.jsxs(e.Fragment,{children:[e.jsx("header",{className:h.api_docs_header,children:e.jsxs("div",{className:h.header_content,children:[e.jsxs(a.Button,{variant:"outlined",size:"small",className:"search-filter-btn",onClick:()=>{j(!0)},children:["Search & Filter",e.jsx(r,{src:i})]}),e.jsxs("div",{className:h.nav_buttons,children:[e.jsx(c,{placement:"bottom",delay:[0,0],className:`guides-tooltip ${h.tippy_box_color}`,content:e.jsx("div",{children:"Coming Soon"}),children:e.jsxs(a.Button,{variant:"outlined",size:"small",className:"guide-btn",disabled:!0,children:[e.jsx(r,{src:l}),"GUIDES"]})}),e.jsxs(a.Button,{variant:"outlined",size:"small",className:"api-btn",children:[e.jsx(r,{src:t}),"API reference"]})]})]})}),e.jsx(m,{size:"sm",open:p,onClose:()=>{j(!1),N(!1)},icon:!1,withClose:!1,content:e.jsxs("div",{className:"search-filter-form "+(b?"expanded":""),children:[e.jsx("div",{className:"search-filter-form__header",children:e.jsx("p",{className:"search-filter-form__header__title",children:"Search & Filter"})}),e.jsx(a.Input,{placeholder:"Search by API name",value:x,onChange:e=>u(e),size:a.Size.Medium,clearable:!0,endAdornment:e.jsx(r,{src:n})}),e.jsxs("div",{className:"method-container",children:[e.jsx("label",{children:"Method"}),e.jsx(a.SelectGroup,{isMultiple:!0,size:a.Size.Medium,placeholder:"Select Method",value:v,onChange:e=>f(e||[]),options:[{list:d.map((s=>({label:e.jsx("span",{style:{color:s.color},children:s.label}),value:s.value,data:s})))}],className:"method-select custom-select-border"})]}),e.jsx("div",{className:"button-container",children:e.jsx(a.Button,{variant:"contained",color:"primary",size:"large",onClick:()=>{j(!1)},className:"dialog-submit-btn",children:"Apply"})})]})})]})};export{p as default};
1
+ import{j as s}from"../../../../_virtual/jsx-runtime.js";import{useState as e,useRef as o}from"react";import{d as r}from"../../../../_virtual/index.js";import a from"../../../components/SVGLoader/SVGLoader.js";import n from"../../../assets/icons/UpArrow.svg.js";import t from"../../../assets/icons/DownArrow.svg.js";import i from"../../../assets/icons/ApiIcon.svg.js";import c from"../../../assets/icons/FilterIcon.svg.js";import l from"../../../assets/icons/BookIcon.svg.js";import m from"../../../assets/icons/searchIcon.svg.js";import d from"../../../components/Tooltip/Tooltip.js";import h from"../../../components/dialog/index.js";import{METHOD_OPTIONS as j}from"../../../constants/methods.constant.js";import p from"./DocsHeader.module.scss.js";const x=()=>{const[x,u]=e(!1),[v,f]=e(""),[N,g]=e([]);e(!1);const[_,b]=e(!1);o(null);return s.jsxs(s.Fragment,{children:[s.jsx("header",{className:p.api_docs_header,children:s.jsxs("div",{className:p.header_content,children:[s.jsxs(r.Button,{variant:"outlined",size:"small",className:p.search_filter_btn,onClick:()=>{u(!0)},children:["Search & Filter",s.jsx(a,{src:c})]}),s.jsxs("div",{className:p.nav_buttons,children:[s.jsx(d,{placement:"bottom",delay:[0,0],className:`guides-tooltip ${p.tippy_box_color}`,content:s.jsx("div",{children:"Coming Soon"}),children:s.jsxs(r.Button,{variant:"outlined",size:"small",className:"guide-btn",disabled:!0,children:[s.jsx(a,{src:l}),"GUIDES"]})}),s.jsxs(r.Button,{variant:"outlined",size:"small",className:p.api_btn,children:[s.jsx(a,{src:i}),"   API reference"]})]})]})}),s.jsx(h,{size:"sm",open:x,onClose:()=>{u(!1),b(!1)},icon:!1,withClose:!1,noActions:!0,content:s.jsxs("div",{className:"search-filter-form "+(_?"expanded":""),children:[s.jsx("div",{className:"search-filter-form__header",children:s.jsx("p",{className:"search-filter-form__header__title",children:"Search & Filter"})}),s.jsx(r.Input,{className:"name-input",placeholder:"Search by API name",value:v,onChange:s=>f(s),size:r.Size.Medium,clearable:!0,endAdornment:s.jsx(a,{src:m})}),s.jsxs("div",{className:"method-container",children:[s.jsx("label",{children:"Method"}),s.jsxs("div",{className:"typeDdl",onClick:()=>b((s=>!s)),children:[s.jsx("span",{children:"Select Method"}),s.jsx(a,{src:_?n:t})]}),_&&s.jsx("div",{className:"methodList",children:j.map((e=>s.jsxs("div",{className:"method-item",children:[s.jsx("input",{type:"checkbox",className:"agreement-checkbox",checked:N.includes(e.value),onChange:s=>((s,e)=>{const{target:{checked:o}}=s;o?g((s=>[...s,e.value])):N.includes(e.value)&&g((s=>s.filter((s=>s!=e.value))))})(s,e)}),s.jsx("span",{style:{color:e.color},children:e.label})]})))})]}),s.jsx("div",{className:"button-container",children:s.jsx(r.Button,{variant:"contained",color:"primary",size:"large",onClick:()=>{u(!1)},className:"dialog-submit-btn",children:"Apply"})})]})})]})};export{x as default};
2
2
  //# sourceMappingURL=DocsHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DocsHeader.js","sources":["../../../../../src/layout/docsComponents/DocsHeader/DocsHeader.tsx"],"sourcesContent":["import React, { useState, useRef } from 'react'\nimport { Button, Size, Input, SelectGroup } from 'digitinary-ui'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { FilterIcon, BookIcon, ApiIcon, SearchIcon } from '../../../assets/icons'\nimport Tooltip from '../../../components/Tooltip/Tooltip'\nimport CommonDialog from '../../../components/dialog/index'\nimport { METHOD_OPTIONS } from '../../../constants/methods.constant'\nimport styles from './DocsHeader.module.scss'\n\nconst DocsHeader: React.FC = () => {\n const [showSearchFilter, setShowSearchFilter] = useState<boolean>(false)\n const [apiName, setApiName] = useState<string>('')\n const [selectedMethods, setSelectedMethods] = useState<any[]>([])\n const [isMethodDropdownOpen, setIsMethodDropdownOpen] = useState<boolean>(false)\n const selectRef = useRef<any>(null)\n\n const handleOpenSearchFilter = (): void => {\n setShowSearchFilter(true)\n }\n\n const handleCloseSearchFilter = (): void => {\n setShowSearchFilter(false)\n setIsMethodDropdownOpen(false)\n }\n\n const handleApplyFilters = (): void => {\n setShowSearchFilter(false)\n }\n\n return (\n <>\n <header className={styles.api_docs_header}>\n <div className={styles.header_content}>\n <Button\n variant=\"outlined\"\n size=\"small\"\n className=\"search-filter-btn\"\n onClick={handleOpenSearchFilter}\n >\n Search & Filter\n <SVGLoader src={FilterIcon} />\n </Button>\n <div className={styles.nav_buttons}>\n <Tooltip\n placement=\"bottom\"\n delay={[0, 0]}\n className={`guides-tooltip ${styles.tippy_box_color}`}\n content={<div>Coming Soon</div>}\n >\n <Button variant=\"outlined\" size=\"small\" className=\"guide-btn\" disabled={true}>\n <SVGLoader src={BookIcon} />\n GUIDES\n </Button>\n </Tooltip>\n <Button variant=\"outlined\" size=\"small\" className=\"api-btn\">\n <SVGLoader src={ApiIcon} />\n API reference\n </Button>\n </div>\n </div>\n </header>\n <CommonDialog\n size=\"sm\"\n open={showSearchFilter}\n onClose={handleCloseSearchFilter}\n icon={false}\n withClose={false}\n content={\n <div className={`search-filter-form ${isMethodDropdownOpen ? 'expanded' : ''}`}>\n <div className=\"search-filter-form__header\">\n <p className=\"search-filter-form__header__title\">Search & Filter</p>\n </div>\n <Input\n placeholder=\"Search by API name\"\n value={apiName}\n onChange={(value) => setApiName(value as string)}\n size={Size.Medium}\n clearable\n endAdornment={<SVGLoader src={SearchIcon} />}\n />\n <div className=\"method-container\">\n <label>Method</label>\n <SelectGroup\n isMultiple={true}\n size={Size.Medium}\n placeholder=\"Select Method\"\n value={selectedMethods}\n onChange={(value) => setSelectedMethods(value || [])}\n options={[\n {\n list: METHOD_OPTIONS.map((method) => ({\n label: <span style={{ color: method.color }}>{method.label}</span>,\n value: method.value,\n data: method,\n })),\n },\n ]}\n className=\"method-select custom-select-border\"\n />\n </div>\n <div className=\"button-container\">\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"large\"\n onClick={handleApplyFilters}\n className=\"dialog-submit-btn\"\n >\n Apply\n </Button>\n </div>\n </div>\n }\n />\n </>\n )\n}\n\nexport default DocsHeader\n"],"names":["DocsHeader","showSearchFilter","setShowSearchFilter","useState","apiName","setApiName","selectedMethods","setSelectedMethods","isMethodDropdownOpen","setIsMethodDropdownOpen","useRef","_jsxs","_Fragment","children","_jsx","className","styles","api_docs_header","header_content","jsxs","Button","variant","size","onClick","SVGLoader","src","FilterIcon","nav_buttons","jsx","Tooltip","placement","delay","tippy_box_color","content","disabled","BookIcon","ApiIcon","CommonDialog","open","onClose","icon","withClose","Input","placeholder","value","onChange","Size","Medium","clearable","endAdornment","SearchIcon","SelectGroup","isMultiple","options","list","METHOD_OPTIONS","map","method","label","style","color","data"],"mappings":"ooBASM,MAAAA,EAAuB,KAC3B,MAAOC,EAAkBC,GAAuBC,GAAkB,IAC3DC,EAASC,GAAcF,EAAiB,KACxCG,EAAiBC,GAAsBJ,EAAgB,KACvDK,EAAsBC,GAA2BN,GAAkB,GACxDO,EAAY,MAe9B,OACEC,OAAAC,EAAAA,SAAA,CAAAC,SAAA,CACEC,EAAAA,IAAQ,SAAA,CAAAC,UAAWC,EAAOC,gBACxBJ,SAAAF,EAAAA,KAAA,MAAA,CAAKI,UAAWC,EAAOE,eACrBL,SAAA,CAAAF,EAAAQ,KAACC,SAAM,CACLC,QAAQ,WACRC,KAAK,QACLP,UAAU,oBACVQ,QArBqB,KAC7BrB,GAAoB,EAAK,EAuBjBW,SAAA,CAAA,kBAAAC,EAAAA,IAACU,EAAS,CAACC,IAAKC,OAElBf,OAAK,MAAA,CAAAI,UAAWC,EAAOW,YAAWd,SAAA,CAChCC,EAACc,IAAAC,EACC,CAAAC,UAAU,SACVC,MAAO,CAAC,EAAG,GACXhB,UAAW,kBAAkBC,EAAOgB,kBACpCC,QAASnB,EAAsBc,IAAA,MAAA,CAAAf,SAAA,gBAAAA,SAE/BF,EAACQ,KAAAC,EAAMA,QAACC,QAAQ,WAAWC,KAAK,QAAQP,UAAU,YAAYmB,UAAU,EAAIrB,SAAA,CAC1EC,MAACU,EAAS,CAACC,IAAKU,IAET,cAEXxB,OAACS,EAAAA,OAAM,CAACC,QAAQ,WAAWC,KAAK,QAAQP,UAAU,UAChDF,SAAA,CAAAC,EAAAc,IAACJ,EAAU,CAAAC,IAAKW,IAAW,2BAMnCtB,MAACuB,EAAY,CACXf,KAAK,KACLgB,KAAMrC,EACNsC,QA5C0B,KAC9BrC,GAAoB,GACpBO,GAAwB,EAAM,EA2C1B+B,MAAM,EACNC,WAAW,EACXR,QACEtB,EAAAA,KAAA,MAAA,CAAKI,UAAW,uBAAsBP,EAAuB,WAAa,IACxEK,SAAA,CAAAC,EAAAc,IAAA,MAAA,CAAKb,UAAU,6BAA4BF,SACzCC,EAAAA,IAAG,IAAA,CAAAC,UAAU,mEAEfD,MAAC4B,EAAAA,MACC,CAAAC,YAAY,qBACZC,MAAOxC,EACPyC,SAAWD,GAAUvC,EAAWuC,GAChCtB,KAAMwB,OAAKC,OACXC,WACA,EAAAC,aAAcnC,MAACU,EAAU,CAAAC,IAAKyB,MAEhCvC,OAAA,MAAA,CAAKI,UAAU,mBAAkBF,SAAA,CAC/BC,EAAAA,IAAqB,QAAA,CAAAD,SAAA,WACrBC,MAACqC,cAAW,CACVC,YAAY,EACZ9B,KAAMwB,EAAAA,KAAKC,OACXJ,YAAY,gBACZC,MAAOtC,EACPuC,SAAWD,GAAUrC,EAAmBqC,GAAS,IACjDS,QAAS,CACP,CACEC,KAAMC,EAAeC,KAAKC,IAAY,CACpCC,MAAO5C,EAAAc,IAAA,OAAA,CAAM+B,MAAO,CAAEC,MAAOH,EAAOG,OAAO/C,SAAG4C,EAAOC,QACrDd,MAAOa,EAAOb,MACdiB,KAAMJ,QAIZ1C,UAAU,0CAGdD,EAAKc,IAAA,MAAA,CAAAb,UAAU,4BACbD,EAAAA,IAACM,EAAAA,QACCC,QAAQ,YACRuC,MAAM,UACNtC,KAAK,QACLC,QAhFa,KACzBrB,GAAoB,EAAM,EAgFda,UAAU,oBAGHF,SAAA,mBAMpB"}
1
+ {"version":3,"file":"DocsHeader.js","sources":["../../../../../src/layout/docsComponents/DocsHeader/DocsHeader.tsx"],"sourcesContent":["import React, { useState, useRef } from 'react'\nimport { Button, Size, Input, SelectGroup } from 'digitinary-ui'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport {\n FilterIcon,\n BookIcon,\n ApiIcon,\n SearchIcon,\n arrowDownGray,\n UpArrowIcon,\n DownArrowIcon,\n} from '../../../assets/icons'\nimport Tooltip from '../../../components/Tooltip/Tooltip'\nimport CommonDialog from '../../../components/dialog/index'\nimport { METHOD_OPTIONS } from '../../../constants/methods.constant'\nimport styles from './DocsHeader.module.scss'\n\nconst DocsHeader: React.FC = () => {\n const [showSearchFilter, setShowSearchFilter] = useState<boolean>(false)\n const [apiName, setApiName] = useState<string>('')\n const [selectedMethods, setSelectedMethods] = useState<any[]>([])\n const [methodListOpened, setMethodListOpened] = useState(false)\n const [isMethodDropdownOpen, setIsMethodDropdownOpen] = useState<boolean>(false)\n const selectRef = useRef<any>(null)\n\n const handleOpenSearchFilter = (): void => {\n setShowSearchFilter(true)\n }\n\n const handleCloseSearchFilter = (): void => {\n setShowSearchFilter(false)\n setIsMethodDropdownOpen(false)\n }\n\n const handleApplyFilters = (): void => {\n setShowSearchFilter(false)\n }\n\n const handleCheckMethod = (e, method: (typeof METHOD_OPTIONS)[0]) => {\n const {\n target: { checked },\n } = e\n if (checked) {\n setSelectedMethods((prev) => [...prev, method.value])\n } else {\n if (selectedMethods.includes(method.value)) {\n setSelectedMethods((prev) => prev.filter((_m) => _m != method.value))\n }\n }\n }\n\n return (\n <>\n <header className={styles.api_docs_header}>\n <div className={styles.header_content}>\n <Button\n variant=\"outlined\"\n size=\"small\"\n className={styles.search_filter_btn}\n onClick={handleOpenSearchFilter}\n >\n Search & Filter\n <SVGLoader src={FilterIcon} />\n </Button>\n <div className={styles.nav_buttons}>\n <Tooltip\n placement=\"bottom\"\n delay={[0, 0]}\n className={`guides-tooltip ${styles.tippy_box_color}`}\n content={<div>Coming Soon</div>}\n >\n <Button variant=\"outlined\" size=\"small\" className=\"guide-btn\" disabled={true}>\n <SVGLoader src={BookIcon} />\n GUIDES\n </Button>\n </Tooltip>\n <Button variant=\"outlined\" size=\"small\" className={styles.api_btn}>\n <SVGLoader src={ApiIcon} /> &nbsp; API reference\n </Button>\n </div>\n </div>\n </header>\n <CommonDialog\n size=\"sm\"\n open={showSearchFilter}\n onClose={handleCloseSearchFilter}\n icon={false}\n withClose={false}\n noActions\n content={\n <div className={`search-filter-form ${isMethodDropdownOpen ? 'expanded' : ''}`}>\n <div className=\"search-filter-form__header\">\n <p className=\"search-filter-form__header__title\">Search & Filter</p>\n </div>\n <Input\n className=\"name-input\"\n placeholder=\"Search by API name\"\n value={apiName}\n onChange={(value) => setApiName(value as string)}\n size={Size.Medium}\n clearable\n endAdornment={<SVGLoader src={SearchIcon} />}\n />\n <div className=\"method-container\">\n <label>Method</label>\n {/* <SelectGroup\n isMultiple={true}\n size={Size.Medium}\n placeholder=\"Select Method\"\n value={selectedMethods}\n onChange={(value) => setSelectedMethods(value || [])}\n options={[\n \n ]}\n withSearch={false}\n className=\"method-select custom-select-border\"\n /> */}\n <div className=\"typeDdl\" onClick={() => setIsMethodDropdownOpen((prev) => !prev)}>\n <span>Select Method</span>\n <SVGLoader src={!isMethodDropdownOpen ? DownArrowIcon : UpArrowIcon} />\n </div>\n {isMethodDropdownOpen && (\n <div className=\"methodList\">\n {METHOD_OPTIONS.map((_m) => (\n <div className=\"method-item\">\n <input\n type=\"checkbox\"\n className=\"agreement-checkbox\"\n checked={selectedMethods.includes(_m.value)}\n onChange={(e) => handleCheckMethod(e, _m)}\n />\n <span style={{ color: _m.color }}>{_m.label}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n <div className=\"button-container\">\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"large\"\n onClick={handleApplyFilters}\n className=\"dialog-submit-btn\"\n >\n Apply\n </Button>\n </div>\n </div>\n }\n />\n </>\n )\n}\n\nexport default DocsHeader\n"],"names":["DocsHeader","showSearchFilter","setShowSearchFilter","useState","apiName","setApiName","selectedMethods","setSelectedMethods","isMethodDropdownOpen","setIsMethodDropdownOpen","useRef","_jsxs","_jsx","jsx","className","styles","api_docs_header","children","header_content","Button","variant","size","search_filter_btn","onClick","SVGLoader","src","FilterIcon","jsxs","nav_buttons","Tooltip","placement","delay","tippy_box_color","content","disabled","BookIcon","api_btn","ApiIcon","CommonDialog","open","onClose","icon","withClose","noActions","Input","placeholder","value","onChange","Size","Medium","clearable","endAdornment","SearchIcon","prev","UpArrowIcon","DownArrowIcon","METHOD_OPTIONS","map","_m","type","checked","includes","e","method","target","filter","handleCheckMethod","style","color","label"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as s}from"../../../../_virtual/jsx-runtime.js";import{useState as e}from"react";import i from"../../../components/SVGLoader/SVGLoader.js";import a from"../../../assets/icons/arrowDownGray.svg.js";import t from"../../../assets/icons/arrowRightGray.svg.js";import c from"../../../assets/icons/document.svg.js";import r from"../../../assets/icons/eye.svg.js";const n=({apis:n,setActiveItemData:d,isFirstApiExpanded:o,setIsFirstApiExpanded:p})=>{const[l,j]=e({}),m=(s,e,i,a)=>{if(o&&p(!1),i&&a){const i=Object.fromEntries(Object.entries(Object.assign({},l)).filter((([i,t])=>!!i.includes(s)&&(i===e||!a.some((s=>i.includes(s)))))));j(Object.assign(Object.assign({},i),{[e]:!l[e]}))}else j((s=>Object.assign(Object.assign({},s),{[e]:!s[e]})))},v=(e,i)=>e.map(((e,a)=>{const t=l[`api-${i.id}-resource-${e.id}`];return s.jsxs("div",{className:`api-docs-api-tree__endpoint api-docs-api-tree__endpoint--${e.method.toLowerCase()}`,onClick:()=>{d(Object.assign(Object.assign({},e),{api:{id:i.id,title:i.title,description:i.description,version:i.version}})),t||m(i.id,`api-${i.id}-resource-${e.id}`,!0,["resource","overview"])},"data-active":t,children:[s.jsx("span",{className:"api-docs-api-tree__endpoint-method",children:e.method}),s.jsx("span",{className:"api-docs-api-tree__endpoint-name",children:e.path})]},a)})),_=(e,c,r,n)=>{const d=`api-${r.id}-section-${n}`,o=l[d];return s.jsx("div",{className:"api-docs-api-tree__subsection",children:s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"api-docs-api-tree__subsection-header",onClick:()=>m(r.id,d),children:[o?s.jsx(i,{src:a}):s.jsx(i,{src:t}),s.jsx("span",{className:"api-docs-api-tree__subsection-title",children:e})]}),o&&s.jsx("div",{className:"api-docs-api-tree__endpoints",children:v(c,r)})]})},d)};return s.jsx("aside",{className:"api-docs-api-tree",children:n.map(((e,n)=>((e,n)=>{const p=l[`api-${e.id}-section`],j=Object.keys(l).some((s=>s.includes(`api-${e.id}-resource`))),v=l[`api-${e.id}-endpoints`],x=l[`api-${e.id}-overview`];return o&&0===n&&!p&&(m(e.id,`api-${e.id}-section`),m(e.id,`api-${e.id}-overview`),d(e)),s.jsxs("div",{className:"api-docs-api-tree__section","data-active":j||x,children:[s.jsxs("div",{className:"api-docs-api-tree__section-header",onClick:()=>m(e.id,`api-${e.id}-section`),children:[p?s.jsx(i,{src:a}):s.jsx(i,{src:t}),s.jsx(i,{src:c}),s.jsx("span",{className:"api-docs-api-tree__section-title",children:e.title})]}),p&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"api-docs-api-tree__section__overview",onClick:()=>{m(e.id,`api-${e.id}-overview`,!0,["resource"]),d(e)},"data-active":x,children:[s.jsx(i,{src:r}),s.jsx("span",{children:"Overview"})]}),s.jsxs("div",{className:"api-docs-api-tree__section__endpoints",onClick:()=>{m(e.id,`api-${e.id}-endpoints`)},"data-active":j&&!x,children:[v?s.jsx(i,{src:a}):s.jsx(i,{src:t}),s.jsx("span",{children:"Endpoints"})]}),v&&s.jsx("div",{className:"api-docs-api-tree__subsections",children:Object.entries(e.tags).sort((([s],[e])=>"default"===s?1:"default"===e?-1:s.localeCompare(e))).map((([s,i],a)=>_(s,i,e,a)))})]})]},e.id)})(e,n)))})};export{n as default};
1
+ import{j as s}from"../../../../_virtual/jsx-runtime.js";import{useState as e}from"react";import i from"../../../components/SVGLoader/SVGLoader.js";import a from"../../../assets/icons/arrowDownGray.svg.js";import t from"../../../assets/icons/arrowRightGray.svg.js";import c from"../../../assets/icons/document.svg.js";import r from"../../../assets/icons/eye.svg.js";const n=({apis:n,setActiveItemData:d,isFirstApiExpanded:o,setIsFirstApiExpanded:p,setActiveType:l})=>{const[j,m]=e({}),v=(s,e,i,a)=>{if(o&&p(!1),i&&a){const i=Object.fromEntries(Object.entries(Object.assign({},j)).filter((([i,t])=>!!i.includes(s)&&(i===e||!a.some((s=>i.includes(s)))))));m(Object.assign(Object.assign({},i),{[e]:!j[e]}))}else m((s=>Object.assign(Object.assign({},s),{[e]:!s[e]})))},_=(e,i)=>e.map(((e,a)=>{const t=j[`api-${i.id}-resource-${e.id}`];return s.jsxs("div",{className:`api-docs-api-tree__endpoint api-docs-api-tree__endpoint--${e.method.toLowerCase()}`,onClick:()=>{t||(d(Object.assign(Object.assign({},e),{api:{id:i.id,title:i.title,description:i.description,version:i.version}})),l("ENDPOINT"),v(i.id,`api-${i.id}-resource-${e.id}`,!0,["resource","overview"]))},"data-active":t,children:[s.jsx("span",{className:"api-docs-api-tree__endpoint-method",children:e.method}),s.jsx("span",{className:"api-docs-api-tree__endpoint-name",children:e.path})]},a)})),x=(e,c,r,n)=>{const d=`api-${r.id}-section-${n}`,o=j[d];return s.jsx("div",{className:"api-docs-api-tree__subsection",children:s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"api-docs-api-tree__subsection-header",onClick:()=>v(r.id,d),children:[o?s.jsx(i,{src:a}):s.jsx(i,{src:t}),s.jsx("span",{className:"api-docs-api-tree__subsection-title",children:e})]}),o&&s.jsx("div",{className:"api-docs-api-tree__endpoints",children:_(c,r)})]})},d)};return s.jsx("aside",{className:"api-docs-api-tree",children:n.map(((e,n)=>((e,n)=>{const p=j[`api-${e.id}-section`],m=Object.keys(j).some((s=>s.includes(`api-${e.id}-resource`))),_=j[`api-${e.id}-endpoints`],h=j[`api-${e.id}-overview`];return o&&0===n&&!p&&(v(e.id,`api-${e.id}-section`),v(e.id,`api-${e.id}-overview`),d(e),l("OVERVIEW")),s.jsxs("div",{className:"api-docs-api-tree__section","data-active":m||h,children:[s.jsxs("div",{className:"api-docs-api-tree__section-header",onClick:()=>v(e.id,`api-${e.id}-section`),children:[p?s.jsx(i,{src:a}):s.jsx(i,{src:t}),s.jsx(i,{src:c}),s.jsx("span",{className:"api-docs-api-tree__section-title",children:e.title})]}),p&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"api-docs-api-tree__section__overview",onClick:()=>{h||(v(e.id,`api-${e.id}-overview`,!0,["resource"]),d(e),l("OVERVIEW"))},"data-active":h,children:[s.jsx(i,{src:r}),s.jsx("span",{children:"Overview"})]}),s.jsxs("div",{className:"api-docs-api-tree__section__endpoints",onClick:()=>{v(e.id,`api-${e.id}-endpoints`)},"data-active":m&&!h,children:[_?s.jsx(i,{src:a}):s.jsx(i,{src:t}),s.jsx("span",{children:"Endpoints"})]}),_&&s.jsx("div",{className:"api-docs-api-tree__subsections",children:Object.entries(e.tags).sort((([s],[e])=>"default"===s?1:"default"===e?-1:s.localeCompare(e))).map((([s,i],a)=>x(s,i,e,a)))})]})]},e.id)})(e,n)))})};export{n as default};
2
2
  //# sourceMappingURL=DocsSideMenuTree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DocsSideMenuTree.js","sources":["../../../../../src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.tsx"],"sourcesContent":["import './style.scss'\nimport React, { useState } from 'react'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { arrowDownGray, arrowRightGray, document, eye } from '../../../assets/icons'\n\nconst DocsSideMenuTree = ({\n apis,\n setActiveItemData,\n isFirstApiExpanded,\n setIsFirstApiExpanded,\n}) => {\n const [expandedSections, setExpandedSections] = useState({})\n\n const toggleSection = (apiId, sectionId: string, resetOthers?: boolean, key?: string[]) => {\n isFirstApiExpanded && setIsFirstApiExpanded(false)\n if (resetOthers && key) {\n const filteredExpandedSections = Object.fromEntries(\n Object.entries({ ...expandedSections }).filter(([expandKey, _]) => {\n // Close other APIs sections\n if (!expandKey.includes(apiId)) return false\n // always return the clicked on section\n else if (expandKey === sectionId) return true\n // filter all sections containing the key\n else if (key.some((k) => expandKey.includes(k))) return false\n else return true\n })\n )\n\n setExpandedSections({\n ...filteredExpandedSections,\n [sectionId]: !expandedSections[sectionId],\n })\n } else {\n setExpandedSections((prev) => ({\n ...prev,\n [sectionId]: !prev[sectionId],\n }))\n }\n }\n\n const renderEndpoints = (endpoints, api) => {\n return endpoints.map((endpoint, index) => {\n const isResourceExpanded = expandedSections[`api-${api.id}-resource-${endpoint.id}`]\n\n return (\n <div\n key={index}\n className={`api-docs-api-tree__endpoint api-docs-api-tree__endpoint--${endpoint.method.toLowerCase()}`}\n onClick={() => {\n setActiveItemData({\n ...endpoint,\n api: {\n id: api.id,\n title: api.title,\n description: api.description,\n version: api.version,\n },\n })\n\n if (!isResourceExpanded) {\n toggleSection(api.id, `api-${api.id}-resource-${endpoint.id}`, true, [\n 'resource',\n 'overview',\n ])\n }\n }}\n data-active={isResourceExpanded}\n >\n <span className=\"api-docs-api-tree__endpoint-method\">{endpoint.method}</span>\n <span className=\"api-docs-api-tree__endpoint-name\">{endpoint.path}</span>\n </div>\n )\n })\n }\n\n const renderApiSection = (api, index) => {\n const isApiExpanded = expandedSections[`api-${api.id}-section`]\n const isEndpointActive = Object.keys(expandedSections).some((k) =>\n k.includes(`api-${api.id}-resource`)\n )\n const isEndpointsExpanded = expandedSections[`api-${api.id}-endpoints`]\n const isOverviewExpanded = expandedSections[`api-${api.id}-overview`]\n\n if (isFirstApiExpanded && index === 0 && !isApiExpanded) {\n toggleSection(api.id, `api-${api.id}-section`)\n toggleSection(api.id, `api-${api.id}-overview`)\n setActiveItemData(api)\n }\n\n return (\n <div\n key={api.id}\n className=\"api-docs-api-tree__section\"\n data-active={isEndpointActive || isOverviewExpanded}\n >\n <div\n className=\"api-docs-api-tree__section-header\"\n onClick={() => toggleSection(api.id, `api-${api.id}-section`)}\n >\n {isApiExpanded ? <SVGLoader src={arrowDownGray} /> : <SVGLoader src={arrowRightGray} />}\n <SVGLoader src={document} />\n <span className=\"api-docs-api-tree__section-title\">{api.title}</span>\n </div>\n\n {isApiExpanded && (\n <>\n <div\n className={`api-docs-api-tree__section__overview`}\n onClick={() => {\n toggleSection(api.id, `api-${api.id}-overview`, true, ['resource'])\n setActiveItemData(api)\n }}\n data-active={isOverviewExpanded}\n >\n {<SVGLoader src={eye} />}\n <span>Overview</span>\n </div>\n <div\n className=\"api-docs-api-tree__section__endpoints\"\n onClick={() => {\n toggleSection(api.id, `api-${api.id}-endpoints`)\n }}\n data-active={isEndpointActive && !isOverviewExpanded}\n >\n {isEndpointsExpanded ? (\n <SVGLoader src={arrowDownGray} />\n ) : (\n <SVGLoader src={arrowRightGray} />\n )}\n <span>Endpoints</span>\n </div>\n {isEndpointsExpanded && (\n <div className=\"api-docs-api-tree__subsections\">\n {Object.entries(api.tags)\n .sort(([a], [b]) => {\n if (a === 'default') return 1\n if (b === 'default') return -1\n return a.localeCompare(b)\n })\n .map(([tagName, data], index) => renderSubSection(tagName, data, api, index))}\n </div>\n )}\n </>\n )}\n </div>\n )\n }\n\n const renderSubSection = (tagName, data, api, sectionIndex) => {\n const sectionKey = `api-${api.id}-section-${sectionIndex}`\n const isSectionExpanded = expandedSections[sectionKey]\n\n return (\n <div key={sectionKey} className=\"api-docs-api-tree__subsection\">\n <>\n <div\n className=\"api-docs-api-tree__subsection-header\"\n onClick={() => toggleSection(api.id, sectionKey)}\n >\n {isSectionExpanded ? (\n <SVGLoader src={arrowDownGray} />\n ) : (\n <SVGLoader src={arrowRightGray} />\n )}\n <span className=\"api-docs-api-tree__subsection-title\">{tagName}</span>\n </div>\n\n {isSectionExpanded && (\n <div className=\"api-docs-api-tree__endpoints\">{renderEndpoints(data, api)}</div>\n )}\n </>\n </div>\n )\n }\n\n return (\n <aside className=\"api-docs-api-tree\">\n {apis.map((api, index) => renderApiSection(api, index))}\n </aside>\n )\n}\n\nexport default DocsSideMenuTree\n"],"names":["DocsSideMenuTree","apis","setActiveItemData","isFirstApiExpanded","setIsFirstApiExpanded","expandedSections","setExpandedSections","useState","toggleSection","apiId","sectionId","resetOthers","key","filteredExpandedSections","Object","fromEntries","entries","assign","filter","expandKey","_","includes","some","k","prev","renderEndpoints","endpoints","api","map","endpoint","index","isResourceExpanded","id","_jsxs","className","method","toLowerCase","onClick","title","description","version","children","_jsx","jsx","path","renderSubSection","tagName","data","sectionIndex","sectionKey","isSectionExpanded","_Fragment","Fragment","jsxs","SVGLoader","src","arrowDownGray","arrowRightGray","isApiExpanded","isEndpointActive","keys","isEndpointsExpanded","isOverviewExpanded","document","eye","tags","sort","a","b","localeCompare","renderApiSection"],"mappings":"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"}
1
+ {"version":3,"file":"DocsSideMenuTree.js","sources":["../../../../../src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.tsx"],"sourcesContent":["import './style.scss'\nimport React, { useState } from 'react'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { arrowDownGray, arrowRightGray, document, eye } from '../../../assets/icons'\n\nconst DocsSideMenuTree = ({\n apis,\n setActiveItemData,\n isFirstApiExpanded,\n setIsFirstApiExpanded,\n setActiveType,\n}) => {\n const [expandedSections, setExpandedSections] = useState({})\n\n const toggleSection = (apiId, sectionId: string, resetOthers?: boolean, key?: string[]) => {\n isFirstApiExpanded && setIsFirstApiExpanded(false)\n if (resetOthers && key) {\n const filteredExpandedSections = Object.fromEntries(\n Object.entries({ ...expandedSections }).filter(([expandKey, _]) => {\n // Close other APIs sections\n if (!expandKey.includes(apiId)) return false\n // always return the clicked on section\n else if (expandKey === sectionId) return true\n // filter all sections containing the key\n else if (key.some((k) => expandKey.includes(k))) return false\n else return true\n })\n )\n\n setExpandedSections({\n ...filteredExpandedSections,\n [sectionId]: !expandedSections[sectionId],\n })\n } else {\n setExpandedSections((prev) => ({\n ...prev,\n [sectionId]: !prev[sectionId],\n }))\n }\n }\n\n const renderEndpoints = (endpoints, api) => {\n return endpoints.map((endpoint, index) => {\n const isResourceExpanded = expandedSections[`api-${api.id}-resource-${endpoint.id}`]\n\n return (\n <div\n key={index}\n className={`api-docs-api-tree__endpoint api-docs-api-tree__endpoint--${endpoint.method.toLowerCase()}`}\n onClick={() => {\n if (!isResourceExpanded) {\n setActiveItemData({\n ...endpoint,\n api: {\n id: api.id,\n title: api.title,\n description: api.description,\n version: api.version,\n },\n })\n setActiveType('ENDPOINT')\n toggleSection(api.id, `api-${api.id}-resource-${endpoint.id}`, true, [\n 'resource',\n 'overview',\n ])\n }\n }}\n data-active={isResourceExpanded}\n >\n <span className=\"api-docs-api-tree__endpoint-method\">{endpoint.method}</span>\n <span className=\"api-docs-api-tree__endpoint-name\">{endpoint.path}</span>\n </div>\n )\n })\n }\n\n const renderApiSection = (api, index) => {\n const isApiExpanded = expandedSections[`api-${api.id}-section`]\n const isEndpointActive = Object.keys(expandedSections).some((k) =>\n k.includes(`api-${api.id}-resource`)\n )\n const isEndpointsExpanded = expandedSections[`api-${api.id}-endpoints`]\n const isOverviewExpanded = expandedSections[`api-${api.id}-overview`]\n\n if (isFirstApiExpanded && index === 0 && !isApiExpanded) {\n toggleSection(api.id, `api-${api.id}-section`)\n toggleSection(api.id, `api-${api.id}-overview`)\n setActiveItemData(api)\n setActiveType('OVERVIEW')\n }\n\n return (\n <div\n key={api.id}\n className=\"api-docs-api-tree__section\"\n data-active={isEndpointActive || isOverviewExpanded}\n >\n <div\n className=\"api-docs-api-tree__section-header\"\n onClick={() => toggleSection(api.id, `api-${api.id}-section`)}\n >\n {isApiExpanded ? <SVGLoader src={arrowDownGray} /> : <SVGLoader src={arrowRightGray} />}\n <SVGLoader src={document} />\n <span className=\"api-docs-api-tree__section-title\">{api.title}</span>\n </div>\n\n {isApiExpanded && (\n <>\n <div\n className={`api-docs-api-tree__section__overview`}\n onClick={() => {\n if (!isOverviewExpanded) {\n toggleSection(api.id, `api-${api.id}-overview`, true, ['resource'])\n setActiveItemData(api)\n setActiveType('OVERVIEW')\n }\n }}\n data-active={isOverviewExpanded}\n >\n {<SVGLoader src={eye} />}\n <span>Overview</span>\n </div>\n <div\n className=\"api-docs-api-tree__section__endpoints\"\n onClick={() => {\n toggleSection(api.id, `api-${api.id}-endpoints`)\n }}\n data-active={isEndpointActive && !isOverviewExpanded}\n >\n {isEndpointsExpanded ? (\n <SVGLoader src={arrowDownGray} />\n ) : (\n <SVGLoader src={arrowRightGray} />\n )}\n <span>Endpoints</span>\n </div>\n {isEndpointsExpanded && (\n <div className=\"api-docs-api-tree__subsections\">\n {Object.entries(api.tags)\n .sort(([a], [b]) => {\n if (a === 'default') return 1\n if (b === 'default') return -1\n return a.localeCompare(b)\n })\n .map(([tagName, data], index) => renderSubSection(tagName, data, api, index))}\n </div>\n )}\n </>\n )}\n </div>\n )\n }\n\n const renderSubSection = (tagName, data, api, sectionIndex) => {\n const sectionKey = `api-${api.id}-section-${sectionIndex}`\n const isSectionExpanded = expandedSections[sectionKey]\n\n return (\n <div key={sectionKey} className=\"api-docs-api-tree__subsection\">\n <>\n <div\n className=\"api-docs-api-tree__subsection-header\"\n onClick={() => toggleSection(api.id, sectionKey)}\n >\n {isSectionExpanded ? (\n <SVGLoader src={arrowDownGray} />\n ) : (\n <SVGLoader src={arrowRightGray} />\n )}\n <span className=\"api-docs-api-tree__subsection-title\">{tagName}</span>\n </div>\n\n {isSectionExpanded && (\n <div className=\"api-docs-api-tree__endpoints\">{renderEndpoints(data, api)}</div>\n )}\n </>\n </div>\n )\n }\n\n return (\n <aside className=\"api-docs-api-tree\">\n {apis.map((api, index) => renderApiSection(api, index))}\n </aside>\n )\n}\n\nexport default DocsSideMenuTree\n"],"names":["DocsSideMenuTree","apis","setActiveItemData","isFirstApiExpanded","setIsFirstApiExpanded","setActiveType","expandedSections","setExpandedSections","useState","toggleSection","apiId","sectionId","resetOthers","key","filteredExpandedSections","Object","fromEntries","entries","assign","filter","expandKey","_","includes","some","k","prev","renderEndpoints","endpoints","api","map","endpoint","index","isResourceExpanded","id","_jsxs","className","method","toLowerCase","onClick","title","description","version","children","_jsx","jsx","path","renderSubSection","tagName","data","sectionIndex","sectionKey","isSectionExpanded","_Fragment","Fragment","jsxs","SVGLoader","src","arrowDownGray","arrowRightGray","isApiExpanded","isEndpointActive","keys","isEndpointsExpanded","isOverviewExpanded","document","eye","tags","sort","a","b","localeCompare","renderApiSection"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as s}from"../../_virtual/jsx-runtime.js";import{useState as e}from"react";import t from"./docsComponents/index.js";const o=({openApiJson:o})=>{const[i,r]=e([]),[n,a]=e(!0),[d,p]=e();return s.jsxs(t,{children:[s.jsx(t.DocsHeader,{}),s.jsx(t.DocsSideMenuTree,{apis:i,setActiveItemData:p,isFirstApiExpanded:n,setIsFirstApiExpanded:a}),s.jsx(t.DocsContent,{data:d}),s.jsx(t.DocsAside,{})]})};export{o as default};
1
+ import{j as e}from"../../_virtual/jsx-runtime.js";import{useState as s,useEffect as t}from"react";import o from"./docsComponents/index.js";import{transformOpenApiToDocs as r}from"../helpers/docs.helper.js";const i=({openApiJson:i})=>{const[a,n]=s([]),[p,d]=s(!0),[c,l]=s(),[m,j]=s(),[x,u]=s(!0);return t((()=>{var e;0===a.length&&(n(null===(e=structuredClone(i))||void 0===e?void 0:e.map((e=>r(e))).sort(((e,s)=>e.title.toLowerCase().localeCompare(s.title.toLowerCase())))),u(!1))}),[i]),e.jsxs(o,{children:[e.jsx(o.DocsHeader,{}),e.jsx(o.DocsSideMenuTree,{apis:a,setActiveItemData:l,isFirstApiExpanded:p,setIsFirstApiExpanded:d,setActiveType:j}),!x&&e.jsx(o.DocsContent,{data:c}),"ENDPOINT"===m&&e.jsx(o.DocsAside,{data:c})]})};export{i as default};
2
2
  //# sourceMappingURL=docsLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docsLayout.js","sources":["../../../src/layout/docsLayout.tsx"],"sourcesContent":["import React, { JSX, useEffect, useState } from 'react'\nimport Layout from './docsComponents'\nimport { HTTPMethod, OpenAPIFile, Parameter, RequestBody, Responses } from '@entities/openApi'\nimport { transformOpenApiToDocs } from '../helpers/docs.helper'\n\ninterface ILayoutProps {\n openApiJson?: OpenAPIFile[]\n}\n\nexport interface TagData {\n id: string\n method: HTTPMethod\n path: string\n tags: string[]\n responses: Responses\n summary?: string\n description: string\n parameters?: Parameter[]\n requestBody?: RequestBody\n}\n\nexport interface EndpointData extends TagData {\n api: {\n id: string\n description: string\n title: string\n version: string\n }\n}\n\nexport interface OverviewData {\n id: string\n description: string\n title: string\n version: string\n tags: Record<string, TagData[]>\n}\n\nconst DocsLayout = ({ openApiJson }: ILayoutProps): JSX.Element => {\n const [transformedOpenApis, setTransformedOpenApis] = useState([])\n const [isFirstApiExpanded, setIsFirstApiExpanded] = useState(true)\n const [activeItemData, setActiveItemData] = useState<OverviewData | EndpointData>()\n\n // useEffect(() => {\n // if (transformedOpenApis.length === 0) {\n // setTransformedOpenApis(\n // structuredClone(openApiJson)\n // ?.map((o3) => transformOpenApiToDocs(o3))\n // .sort((a, b) => a.title.toLowerCase().localeCompare(b.title.toLowerCase()))\n // )\n // }\n // }, [openApiJson])\n\n return (\n <Layout>\n <Layout.DocsHeader />\n <Layout.DocsSideMenuTree\n apis={transformedOpenApis}\n setActiveItemData={setActiveItemData}\n isFirstApiExpanded={isFirstApiExpanded}\n setIsFirstApiExpanded={setIsFirstApiExpanded}\n />\n <Layout.DocsContent data={activeItemData} />\n <Layout.DocsAside />\n </Layout>\n )\n}\n\nexport default DocsLayout\n"],"names":["DocsLayout","openApiJson","transformedOpenApis","setTransformedOpenApis","useState","isFirstApiExpanded","setIsFirstApiExpanded","activeItemData","setActiveItemData","_jsxs","Layout","children","_jsx","DocsHeader","DocsSideMenuTree","apis","DocsContent","data","DocsAside"],"mappings":"4HAsCA,MAAMA,EAAa,EAAGC,kBACpB,MAAOC,EAAqBC,GAA0BC,EAAS,KACxDC,EAAoBC,GAAyBF,GAAS,IACtDG,EAAgBC,GAAqBJ,IAY5C,OACEK,EAAAA,KAACC,EAAM,CAAAC,SAAA,CACLC,EAAAA,IAACF,EAAOG,WAAU,CAAA,GAClBD,EAAAA,IAACF,EAAOI,kBACNC,KAAMb,EACNM,kBAAmBA,EACnBH,mBAAoBA,EACpBC,sBAAuBA,IAEzBM,EAAAA,IAACF,EAAOM,YAAW,CAACC,KAAMV,IAC1BK,EAAAA,IAACF,EAAOQ,UAAS,CAAA,KAEpB"}
1
+ {"version":3,"file":"docsLayout.js","sources":["../../../src/layout/docsLayout.tsx"],"sourcesContent":["import React, { JSX, useEffect, useState } from 'react'\nimport Layout from './docsComponents'\nimport { HTTPMethod, OpenAPIFile, Parameter, RequestBody, Responses } from '@entities/openApi'\nimport { transformOpenApiToDocs } from '../helpers/docs.helper'\n\ninterface ILayoutProps {\n openApiJson?: OpenAPIFile[]\n}\n\nexport interface TagData {\n id: string\n method: HTTPMethod\n path: string\n tags: string[]\n responses: Responses\n summary?: string\n description: string\n parameters?: Parameter[]\n requestBody?: RequestBody\n}\n\nexport interface EndpointData extends TagData {\n api: {\n id: string\n description: string\n title: string\n version: string\n }\n}\n\nexport interface OverviewData {\n id: string\n description: string\n title: string\n version: string\n tags: Record<string, TagData[]>\n}\n\nconst DocsLayout = ({ openApiJson }: ILayoutProps): JSX.Element => {\n const [transformedOpenApis, setTransformedOpenApis] = useState([])\n const [isFirstApiExpanded, setIsFirstApiExpanded] = useState(true)\n const [activeItemData, setActiveItemData] = useState<OverviewData | EndpointData>()\n const [activeType, setActiveType] = useState<'OVERVIEW' | 'ENDPOINT'>()\n const [pending, setPending] = useState(true)\n useEffect(() => {\n if (transformedOpenApis.length === 0) {\n setTransformedOpenApis(\n structuredClone(openApiJson)\n ?.map((o3) => transformOpenApiToDocs(o3))\n .sort((a, b) => a.title.toLowerCase().localeCompare(b.title.toLowerCase()))\n )\n setPending(false)\n }\n }, [openApiJson])\n\n return (\n <Layout>\n <Layout.DocsHeader />\n <Layout.DocsSideMenuTree\n apis={transformedOpenApis}\n setActiveItemData={setActiveItemData}\n isFirstApiExpanded={isFirstApiExpanded}\n setIsFirstApiExpanded={setIsFirstApiExpanded}\n setActiveType={setActiveType}\n />\n {!pending && <Layout.DocsContent data={activeItemData} />}\n {activeType === 'ENDPOINT' && <Layout.DocsAside data={activeItemData} />}\n </Layout>\n )\n}\n\nexport default DocsLayout\n"],"names":["DocsLayout","openApiJson","transformedOpenApis","setTransformedOpenApis","useState","isFirstApiExpanded","setIsFirstApiExpanded","activeItemData","setActiveItemData","activeType","setActiveType","pending","setPending","useEffect","length","structuredClone","_a","map","o3","transformOpenApiToDocs","sort","a","b","title","toLowerCase","localeCompare","_jsxs","jsxs","Layout","children","_jsx","DocsHeader","DocsSideMenuTree","apis","DocsContent","data","DocsAside"],"mappings":"8MAsCA,MAAMA,EAAa,EAAGC,kBACpB,MAAOC,EAAqBC,GAA0BC,EAAS,KACxDC,EAAoBC,GAAyBF,GAAS,IACtDG,EAAgBC,GAAqBJ,KACrCK,EAAYC,GAAiBN,KAC7BO,EAASC,GAAcR,GAAS,GAYvC,OAXAS,GAAU,WAC2B,IAA/BX,EAAoBY,SACtBX,EAC8B,UAA5BY,gBAAgBd,UAAY,IAAAe,OAAA,EAAAA,EACxBC,KAAKC,GAAOC,EAAuBD,KACpCE,MAAK,CAACC,EAAGC,IAAMD,EAAEE,MAAMC,cAAcC,cAAcH,EAAEC,MAAMC,kBAEhEZ,GAAW,GACZ,GACA,CAACX,IAGFyB,EAAAC,KAACC,EAAM,CAAAC,SAAA,CACLC,EAAAA,IAACF,EAAOG,WAAa,CAAA,GACrBD,EAAAA,IAACF,EAAOI,iBAAgB,CACtBC,KAAM/B,EACNM,kBAAmBA,EACnBH,mBAAoBA,EACpBC,sBAAuBA,EACvBI,cAAeA,KAEfC,GAAWmB,EAAAA,IAACF,EAAOM,YAAW,CAACC,KAAM5B,IACvB,aAAfE,GAA6BqB,MAACF,EAAOQ,UAAU,CAAAD,KAAM5B,MAEzD"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"../../_virtual/jsx-runtime.js";import{useState as o,useEffect as t}from"react";import{d as i}from"../../_virtual/index.js";import r from"../components/MethodAccordion/MethodAccordion.js";import s from"./layout.module.css.js";import n from"../components/InfoForm/InfoForm.js";import a from"../components/SectionHead/SectionHead.js";import{transformOpenApiObject as l,transformOpenApiObjectToOrigin as d}from"../helpers/layout.helper.js";import m from"../components/LivePreview/LivePreview.js";import{useFormik as c,FormikProvider as h}from"../../node_modules/formik/dist/formik.esm.js";import{schemaValidation as u}from"../validator/form.scheme.js";import{methodColorMapping as p}from"../constants/index.js";import j from"../components/dialog/index.js";const v=({openApiJson:v,handleSave:x,setIsFormDirty:f,openApiErrors:g})=>{const S=structuredClone(v),y=l(S),A=c({initialValues:structuredClone(y),validationSchema:u,validateOnMount:!0,onSubmit:(e,{validateForm:o,resetForm:t})=>{const i=d(e);x(i),t({values:e}),o(e)}}),{dirty:b,isValid:F,isSubmitting:C,values:N,setFieldValue:w,handleSubmit:H}=A,[P,$]=o(!1),[I,W]=o(null);return t((()=>{f&&f(b)}),[b]),e.jsxs("div",{className:s.docsLayout,children:[b&&e.jsx(i.Alert,{className:s.apiDocAlert,color:"warning",severity:"warning",children:"There are changes you made may not be saved"}),e.jsxs("div",{className:s.layoutContainer,children:[e.jsxs("div",{className:`${s.editorSide} ${s.docSide}`,children:[e.jsx(a,{className:s.editorSectionHead,text:e.jsxs("div",{className:s.editorSectionHead_content,children:["API Information",e.jsx(i.Button,{className:s.methodForm_submitBtn,size:"medium",fullWidth:!1,type:"submit",variant:"contained",color:"primary",onClick:()=>$(!0),disabled:!F||C||!b,children:"Save"})]})}),e.jsx(h,{value:A,children:e.jsx(n,{})}),e.jsx(a,{className:s.editorSectionHead,text:"Endpoints"}),e.jsx(h,{value:A,children:N.paths.map(((o,t)=>e.jsx(e.Fragment,{children:o.methods.sort(((e,o)=>p[e.type].order-p[o.type].order)).map(((i,s)=>{var n,a,l;return e.jsx(r,{tags:N.tags,method:i,path:o.path,setFieldValue:(e,o)=>{w(`paths[${t}].methods[${s}].${e}`,o)},isOpen:I===s,setIsOpen:e=>W(e?s:null),errors:null===(l=null===(a=null===(n=A.errors.paths)||void 0===n?void 0:n[t])||void 0===a?void 0:a.methods)||void 0===l?void 0:l[s]})}))})))})]}),e.jsx("div",{className:`${s.livePreviewSide} ${s.docSide}`,children:y&&e.jsx(h,{value:A,children:e.jsx(m,{transformedData:y,openApiErrors:g})})})]}),e.jsx(j,{status:"warning",content:e.jsxs(e.Fragment,{children:[e.jsx("h5",{style:{fontWeight:600,fontSize:"1.5rem",lineHeight:"1.875rem",color:"#FAAD14",textAlign:"center",margin:0},children:"Publish Changes"}),e.jsx("p",{style:{textAlign:"center",fontWeight:400,fontSize:"1rem",lineHeight:"1.4375rem"},children:"Are you sure to Publish the changes?"})]}),onSubmit:{onClick:()=>{H(),$(!1)},text:"Publish",color:"warning",fullWidth:!0},onCancel:{text:"Cancel",color:"action",fullWidth:!0},onClose:()=>$(!1),open:P})]})};export{v as default};
1
+ import{j as e}from"../../_virtual/jsx-runtime.js";import{useState as o,useEffect as t}from"react";import{d as i}from"../../_virtual/index.js";import r from"../components/MethodAccordion/MethodAccordion.js";import s from"./layout.module.css.js";import n from"../components/InfoForm/InfoForm.js";import a from"../components/SectionHead/SectionHead.js";import{transformOpenApiObject as l,transformOpenApiObjectToOrigin as d}from"../helpers/layout.helper.js";import m from"../components/LivePreview/LivePreview.js";import{useFormik as c,FormikProvider as u}from"../../node_modules/formik/dist/formik.esm.js";import{schemaValidation as h}from"../validator/form.scheme.js";import{methodColorMapping as p}from"../constants/index.js";import j from"../components/dialog/index.js";const v=({openApiJson:v,handleSave:x,setIsFormDirty:f,openApiErrors:g})=>{const S=structuredClone(v),y=l(S),A=c({initialValues:structuredClone(y),validationSchema:h,validateOnMount:!0,onSubmit:(e,{validateForm:o,resetForm:t})=>{const i=d(e);x(i),t({values:e}),o(e)}}),{dirty:b,isValid:F,isSubmitting:C,values:N,setFieldValue:w,handleSubmit:H}=A,[P,$]=o(!1),[_,D]=o(null);return t((()=>{f&&f(b)}),[b]),e.jsxs("div",{className:s.docsLayout,children:[b&&e.jsx(i.Alert,{className:s.apiDocAlert,color:"warning",severity:"warning",children:"There are changes you made may not be saved"}),e.jsxs("div",{className:s.layoutContainer,children:[e.jsxs("div",{className:`${s.editorSide} ${s.docSide}`,children:[e.jsx(a,{className:s.editorSectionHead_title,text:e.jsxs("div",{className:s.editorSectionHead_content,children:["API Documentation",e.jsx(i.Button,{className:s.methodForm_submitBtn,size:"medium",fullWidth:!1,type:"submit",variant:"contained",color:"primary",onClick:()=>$(!0),disabled:!F||C||!b,children:"Save"})]})}),e.jsx(u,{value:A,children:e.jsx(n,{})}),e.jsx(a,{className:s.editorSectionHead,text:"Endpoints"}),e.jsx(u,{value:A,children:N.paths.map(((o,t)=>e.jsx(e.Fragment,{children:o.methods.sort(((e,o)=>p[e.type].order-p[o.type].order)).map(((i,s)=>{var n,a,l;return e.jsx(r,{tags:N.tags,method:i,path:o.path,setFieldValue:(e,o)=>{w(`paths[${t}].methods[${s}].${e}`,o)},isOpen:_===s,setIsOpen:e=>D(e?s:null),errors:null===(l=null===(a=null===(n=A.errors.paths)||void 0===n?void 0:n[t])||void 0===a?void 0:a.methods)||void 0===l?void 0:l[s]})}))})))})]}),e.jsx("div",{className:`${s.livePreviewSide} ${s.docSide}`,children:y&&e.jsx(u,{value:A,children:e.jsx(m,{transformedData:y,openApiErrors:g})})})]}),e.jsx(j,{status:"warning",content:e.jsxs(e.Fragment,{children:[e.jsx("h5",{style:{fontWeight:600,fontSize:"1.5rem",lineHeight:"1.875rem",color:"#FAAD14",textAlign:"center",margin:0},children:"Publish Changes"}),e.jsx("p",{style:{textAlign:"center",fontWeight:400,fontSize:"1rem",lineHeight:"1.4375rem"},children:"Are you sure to Publish the changes?"})]}),onSubmit:{onClick:()=>{H(),$(!1)},text:"Publish",color:"warning",fullWidth:!0},onCancel:{text:"Cancel",color:"action",fullWidth:!0},onClose:()=>$(!1),open:P})]})};export{v as default};
2
2
  //# sourceMappingURL=layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sources":["../../../src/layout/layout.tsx"],"sourcesContent":["import { JSX, useEffect, useState } from 'react'\nimport { Alert, Button } from 'digitinary-ui'\nimport MethodsAccordion from '../components/MethodAccordion/MethodAccordion'\nimport styles from './layout.module.css'\nimport InfoForm from '../components/InfoForm/InfoForm'\nimport SectionHead from '../components/SectionHead/SectionHead'\nimport { transformOpenApiObject, transformOpenApiObjectToOrigin } from '../helpers/layout.helper'\nimport { OpenAPIFile } from '../types/openApi'\nimport LivePreview from '../components/LivePreview/LivePreview'\nimport { FormikProvider, useFormik } from 'formik'\nimport { schemaValidation } from '../validator/form.scheme'\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\nimport { methodColorMapping } from '../constants/index'\nimport CommonDialog from '../components/dialog'\n\ninterface ILayoutProps {\n openApiJson?: OpenAPIFile\n handleSave?: (values: unknown) => unknown\n setIsFormDirty?: any\n openApiErrors?: any\n}\n\nconst Layout = ({ openApiJson, handleSave, setIsFormDirty, openApiErrors }: ILayoutProps): JSX.Element => {\n const clonedOpenApiJson = structuredClone(openApiJson)\n const transformedOpenApi = transformOpenApiObject(clonedOpenApiJson)\n const formik = useFormik<TransformedOpenApi>({\n initialValues: structuredClone(transformedOpenApi),\n validationSchema: schemaValidation,\n validateOnMount: true,\n onSubmit: (values, { validateForm, resetForm }) => {\n // Handle save logic\n const originalOpenApiForm = transformOpenApiObjectToOrigin(values)\n handleSave(originalOpenApiForm)\n resetForm({\n values: values, // You can reset it to the same values if you want\n })\n\n validateForm(values)\n },\n })\n const { dirty, isValid, isSubmitting, values, setFieldValue, handleSubmit } = formik\n const [isPublishDialogOpen, setIsPublishDialogOpen] = useState(false)\n const [openMethodIndex, setOpenMethodIndex] = useState<number | null>(null)\n\n useEffect(() => {\n if (setIsFormDirty) {\n setIsFormDirty(dirty)\n }\n }, [dirty])\n\n return (\n <div className={styles.docsLayout}>\n {dirty && (\n <Alert className={styles.apiDocAlert} color=\"warning\" severity=\"warning\">\n There are changes you made may not be saved\n </Alert>\n )}\n <div className={styles.layoutContainer}>\n <div className={`${styles.editorSide} ${styles.docSide}`}>\n <SectionHead\n className={styles.editorSectionHead}\n text={\n <div className={styles.editorSectionHead_content}>\n API Information\n <Button\n className={styles.methodForm_submitBtn}\n size=\"medium\"\n fullWidth={false}\n type=\"submit\"\n variant=\"contained\"\n color=\"primary\"\n onClick={() => setIsPublishDialogOpen(true)}\n disabled={!isValid || isSubmitting || !dirty}\n >\n Save\n </Button>\n </div>\n }\n />\n <FormikProvider value={formik}>\n <InfoForm />\n </FormikProvider>\n <SectionHead className={styles.editorSectionHead} text=\"Endpoints\" />\n <FormikProvider value={formik}>\n {values.paths.map((path, pathIndex) => (\n <>\n {path.methods\n .sort(\n (a, b) => methodColorMapping[a.type].order - methodColorMapping[b.type].order\n )\n .map((method, methodIndex) => (\n <MethodsAccordion\n tags={values.tags}\n method={method}\n path={path.path}\n setFieldValue={(key, value) => {\n const h = `paths[${pathIndex}].methods[${methodIndex}].${key}`\n setFieldValue(h, value)\n }}\n isOpen={openMethodIndex === methodIndex}\n setIsOpen={(open) => setOpenMethodIndex(open ? methodIndex : null)}\n errors={formik.errors.paths?.[pathIndex]?.methods?.[methodIndex]}\n />\n ))}\n </>\n ))}\n </FormikProvider>\n </div>\n <div className={`${styles.livePreviewSide} ${styles.docSide}`}>\n {transformedOpenApi && (\n <FormikProvider value={formik}>\n <LivePreview transformedData={transformedOpenApi} openApiErrors={openApiErrors}/>\n </FormikProvider>\n )}\n </div>\n </div>\n <CommonDialog\n status=\"warning\"\n content={\n <>\n <h5 style={{\n fontWeight: 600,\n fontSize: '1.5rem',\n lineHeight: '1.875rem',\n color: '#FAAD14',\n textAlign: 'center',\n margin: 0\n }}>Publish Changes</h5>\n <p\n style={{\n textAlign: 'center',\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: '1.4375rem',\n }}\n >\n Are you sure to Publish the changes?\n </p>\n </>\n }\n onSubmit={{\n onClick: () => {\n handleSubmit()\n setIsPublishDialogOpen(false)\n },\n text: 'Publish',\n color: 'warning',\n fullWidth: true,\n }}\n onCancel={{\n text: 'Cancel',\n color: 'action',\n fullWidth: true,\n }}\n onClose={() => setIsPublishDialogOpen(false)}\n open={isPublishDialogOpen}\n />\n </div>\n )\n}\n\nexport default Layout\n"],"names":["Layout","openApiJson","handleSave","setIsFormDirty","openApiErrors","clonedOpenApiJson","structuredClone","transformedOpenApi","transformOpenApiObject","formik","useFormik","initialValues","validationSchema","schemaValidation","validateOnMount","onSubmit","values","validateForm","resetForm","originalOpenApiForm","transformOpenApiObjectToOrigin","dirty","isValid","isSubmitting","setFieldValue","handleSubmit","isPublishDialogOpen","setIsPublishDialogOpen","useState","openMethodIndex","setOpenMethodIndex","useEffect","_jsxs","jsxs","className","styles","docsLayout","children","_jsx","Alert","apiDocAlert","color","severity","layoutContainer","editorSide","docSide","SectionHead","editorSectionHead","text","editorSectionHead_content","Button","methodForm_submitBtn","size","fullWidth","type","variant","onClick","disabled","FormikProvider","value","InfoForm","jsx","paths","map","path","pathIndex","_Fragment","methods","sort","a","b","methodColorMapping","order","method","methodIndex","MethodsAccordion","tags","key","isOpen","setIsOpen","open","errors","_b","_a","livePreviewSide","LivePreview","transformedData","CommonDialog","status","content","style","fontWeight","fontSize","lineHeight","textAlign","margin","onCancel","onClose"],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sources":["../../../src/layout/layout.tsx"],"sourcesContent":["import { JSX, useEffect, useState } from 'react'\nimport { Alert, Button } from 'digitinary-ui'\nimport MethodsAccordion from '../components/MethodAccordion/MethodAccordion'\nimport styles from './layout.module.css'\nimport InfoForm from '../components/InfoForm/InfoForm'\nimport SectionHead from '../components/SectionHead/SectionHead'\nimport { transformOpenApiObject, transformOpenApiObjectToOrigin } from '../helpers/layout.helper'\nimport { OpenAPIFile } from '../types/openApi'\nimport LivePreview from '../components/LivePreview/LivePreview'\nimport { FormikProvider, useFormik } from 'formik'\nimport { schemaValidation } from '../validator/form.scheme'\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\nimport { methodColorMapping } from '../constants/index'\nimport CommonDialog from '../components/dialog'\n\ninterface ILayoutProps {\n openApiJson?: OpenAPIFile\n handleSave?: (values: unknown) => unknown\n setIsFormDirty?: any\n openApiErrors?: any\n}\n\nconst Layout = ({ openApiJson, handleSave, setIsFormDirty, openApiErrors }: ILayoutProps): JSX.Element => {\n const clonedOpenApiJson = structuredClone(openApiJson)\n const transformedOpenApi = transformOpenApiObject(clonedOpenApiJson)\n const formik = useFormik<TransformedOpenApi>({\n initialValues: structuredClone(transformedOpenApi),\n validationSchema: schemaValidation,\n validateOnMount: true,\n onSubmit: (values, { validateForm, resetForm }) => {\n // Handle save logic\n const originalOpenApiForm = transformOpenApiObjectToOrigin(values)\n handleSave(originalOpenApiForm)\n resetForm({\n values: values, // You can reset it to the same values if you want\n })\n\n validateForm(values)\n },\n })\n const { dirty, isValid, isSubmitting, values, setFieldValue, handleSubmit } = formik\n const [isPublishDialogOpen, setIsPublishDialogOpen] = useState(false)\n const [openMethodIndex, setOpenMethodIndex] = useState<number | null>(null)\n\n useEffect(() => {\n if (setIsFormDirty) {\n setIsFormDirty(dirty)\n }\n }, [dirty])\n\n return (\n <div className={styles.docsLayout}>\n {dirty && (\n <Alert className={styles.apiDocAlert} color=\"warning\" severity=\"warning\">\n There are changes you made may not be saved\n </Alert>\n )}\n <div className={styles.layoutContainer}>\n <div className={`${styles.editorSide} ${styles.docSide}`}>\n <SectionHead\n className={styles.editorSectionHead_title}\n text={\n <div className={styles.editorSectionHead_content}>\n API Documentation\n <Button\n className={styles.methodForm_submitBtn}\n size=\"medium\"\n fullWidth={false}\n type=\"submit\"\n variant=\"contained\"\n color=\"primary\"\n onClick={() => setIsPublishDialogOpen(true)}\n disabled={!isValid || isSubmitting || !dirty}\n >\n Save\n </Button>\n </div>\n }\n />\n <FormikProvider value={formik}>\n <InfoForm />\n </FormikProvider>\n <SectionHead className={styles.editorSectionHead} text=\"Endpoints\" />\n <FormikProvider value={formik}>\n {values.paths.map((path, pathIndex) => (\n <>\n {path.methods\n .sort(\n (a, b) => methodColorMapping[a.type].order - methodColorMapping[b.type].order\n )\n .map((method, methodIndex) => (\n <MethodsAccordion\n tags={values.tags}\n method={method}\n path={path.path}\n setFieldValue={(key, value) => {\n const h = `paths[${pathIndex}].methods[${methodIndex}].${key}`\n setFieldValue(h, value)\n }}\n isOpen={openMethodIndex === methodIndex}\n setIsOpen={(open) => setOpenMethodIndex(open ? methodIndex : null)}\n errors={(formik.errors.paths?.[pathIndex] as any)?.methods?.[methodIndex]}\n />\n ))}\n </>\n ))}\n </FormikProvider>\n </div>\n <div className={`${styles.livePreviewSide} ${styles.docSide}`}>\n {transformedOpenApi && (\n <FormikProvider value={formik}>\n <LivePreview transformedData={transformedOpenApi} openApiErrors={openApiErrors}/>\n </FormikProvider>\n )}\n </div>\n </div>\n <CommonDialog\n status=\"warning\"\n content={\n <>\n <h5 style={{\n fontWeight: 600,\n fontSize: '1.5rem',\n lineHeight: '1.875rem',\n color: '#FAAD14',\n textAlign: 'center',\n margin: 0\n }}>Publish Changes</h5>\n <p\n style={{\n textAlign: 'center',\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: '1.4375rem',\n }}\n >\n Are you sure to Publish the changes?\n </p>\n </>\n }\n onSubmit={{\n onClick: () => {\n handleSubmit()\n setIsPublishDialogOpen(false)\n },\n text: 'Publish',\n color: 'warning',\n fullWidth: true,\n }}\n onCancel={{\n text: 'Cancel',\n color: 'action',\n fullWidth: true,\n }}\n onClose={() => setIsPublishDialogOpen(false)}\n open={isPublishDialogOpen}\n />\n </div>\n )\n}\n\nexport default Layout\n"],"names":["Layout","openApiJson","handleSave","setIsFormDirty","openApiErrors","clonedOpenApiJson","structuredClone","transformedOpenApi","transformOpenApiObject","formik","useFormik","initialValues","validationSchema","schemaValidation","validateOnMount","onSubmit","values","validateForm","resetForm","originalOpenApiForm","transformOpenApiObjectToOrigin","dirty","isValid","isSubmitting","setFieldValue","handleSubmit","isPublishDialogOpen","setIsPublishDialogOpen","useState","openMethodIndex","setOpenMethodIndex","useEffect","_jsxs","jsxs","className","styles","docsLayout","children","_jsx","Alert","apiDocAlert","color","severity","layoutContainer","editorSide","docSide","SectionHead","editorSectionHead_title","text","editorSectionHead_content","Button","methodForm_submitBtn","size","fullWidth","type","variant","onClick","disabled","FormikProvider","value","InfoForm","jsx","editorSectionHead","paths","map","path","pathIndex","_Fragment","methods","sort","a","b","methodColorMapping","order","method","methodIndex","MethodsAccordion","tags","key","isOpen","setIsOpen","open","errors","_b","_a","livePreviewSide","LivePreview","transformedData","CommonDialog","status","content","style","fontWeight","fontSize","lineHeight","textAlign","margin","onCancel","onClose"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import e from"../../node_modules/style-inject/dist/style-inject.es.js";var o={docsLayout:"layout-module_docsLayout__vDeK7",apiDocAlert:"layout-module_apiDocAlert__cSDp2",layoutContainer:"layout-module_layoutContainer__qBWib",editorSide:"layout-module_editorSide__hWc6O",editorSectionHead:"layout-module_editorSectionHead__chDdH",editorSectionHead_content:"layout-module_editorSectionHead_content__DQa6a",livePreviewSide:"layout-module_livePreviewSide__Q5HsZ",docSide:"layout-module_docSide__qLt4E"};e(".layout-module_docsLayout__vDeK7{display:flex;flex-direction:column;height:100vh;max-height:100%;overflow:hidden;.layout-module_apiDocAlert__cSDp2{border-radius:0;z-index:3}.layout-module_layoutContainer__qBWib{display:grid;grid-template-columns:60% 40%;height:100%;max-height:100%;max-width:100%;overflow:hidden;width:100%;.layout-module_editorSide__hWc6O{background-color:#fff;padding-bottom:1.25rem;.layout-module_editorSectionHead__chDdH{span{width:100%}.layout-module_editorSectionHead_content__DQa6a{align-items:center;display:flex;justify-content:space-between;button{width:6.25rem}}}}.layout-module_livePreviewSide__Q5HsZ{background-color:#f8f9fb;padding:1.25rem 1.875rem}.layout-module_docSide__qLt4E{max-height:100%;overflow-x:clip;overflow-y:overlay;scroll-behavior:smooth}}.inputContainer .inputWrapper .innerInputContainer .input,.textArea .inputField{padding-inline-end:2.5rem}}");export{o as default};
1
+ import e from"../../node_modules/style-inject/dist/style-inject.es.js";var o={docsLayout:"layout-module_docsLayout__vDeK7",apiDocAlert:"layout-module_apiDocAlert__cSDp2",layoutContainer:"layout-module_layoutContainer__qBWib",editorSide:"layout-module_editorSide__hWc6O",editorSectionHead_title:"layout-module_editorSectionHead_title__TGcyN",editorSectionHead:"layout-module_editorSectionHead__chDdH",editorSectionHead_content:"layout-module_editorSectionHead_content__DQa6a",livePreviewSide:"layout-module_livePreviewSide__Q5HsZ",docSide:"layout-module_docSide__qLt4E"};e(".layout-module_docsLayout__vDeK7{display:flex;flex-direction:column;height:100vh;max-height:100%;overflow:hidden;.layout-module_apiDocAlert__cSDp2{border-radius:0;z-index:3}.layout-module_layoutContainer__qBWib{display:grid;grid-template-columns:60% 40%;height:100%;max-height:100%;max-width:100%;overflow:hidden;width:100%;.layout-module_editorSide__hWc6O{background-color:#fff;padding-bottom:1.25rem;.layout-module_editorSectionHead_title__TGcyN{position:sticky;top:0;z-index:99999!important}.layout-module_editorSectionHead__chDdH,.layout-module_editorSectionHead_title__TGcyN{span{width:100%}.layout-module_editorSectionHead_content__DQa6a{align-items:center;display:flex;justify-content:space-between;button{width:6.25rem}}}}.layout-module_livePreviewSide__Q5HsZ{background-color:#f8f9fb;padding:1.25rem 1.875rem}.layout-module_docSide__qLt4E{max-height:100%;overflow-x:clip;overflow-y:overlay;scroll-behavior:smooth}}.inputContainer .inputWrapper .innerInputContainer .input,.textArea .inputField{padding-inline-end:2.5rem}}");export{o as default};
2
2
  //# sourceMappingURL=layout.module.css.js.map
@@ -0,0 +1,2 @@
1
+ import{__awaiter as o}from"../../node_modules/tslib/tslib.es6.js";const t=t=>o(void 0,void 0,void 0,(function*(){try{yield navigator.clipboard.writeText(t)}catch(o){return o}}));export{t as copyToClipboard};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/utils/index.ts"],"sourcesContent":["export const copyToClipboard = async (text: string) => {\n try {\n await navigator.clipboard.writeText(text)\n } catch (err) {\n return err\n }\n}\n"],"names":["copyToClipboard","text","__awaiter","navigator","clipboard","writeText","err"],"mappings":"kEAAa,MAAAA,EAAyBC,GAAgBC,OAAA,OAAA,OAAA,GAAA,YACpD,UACQC,UAAUC,UAAUC,UAAUJ,EACrC,CAAC,MAAOK,GACP,OAAOA,CACR,CACH"}