@digi-frontend/dgate-api-documentation 1.0.0 → 1.0.4

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 (214) hide show
  1. package/.editorconfig +13 -0
  2. package/.prettierignore +8 -0
  3. package/.prettierrc +15 -0
  4. package/dist/_virtual/index5.js +1 -1
  5. package/dist/_virtual/index6.js +1 -1
  6. package/dist/a7568b270e175038.svg +8 -0
  7. package/dist/b82c7612e73342f3.svg +3 -0
  8. package/dist/node_modules/@popperjs/core/lib/createPopper.js +2 -0
  9. package/dist/node_modules/@popperjs/core/lib/createPopper.js.map +1 -0
  10. package/dist/node_modules/@popperjs/core/lib/dom-utils/contains.js +2 -0
  11. package/dist/node_modules/@popperjs/core/lib/dom-utils/contains.js.map +1 -0
  12. package/dist/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js +2 -0
  13. package/dist/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js.map +1 -0
  14. package/dist/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js +2 -0
  15. package/dist/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js.map +1 -0
  16. package/dist/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js +2 -0
  17. package/dist/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js.map +1 -0
  18. package/dist/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js +2 -0
  19. package/dist/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js.map +1 -0
  20. package/dist/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js +2 -0
  21. package/dist/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js.map +1 -0
  22. package/dist/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js +2 -0
  23. package/dist/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js.map +1 -0
  24. package/dist/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js +2 -0
  25. package/dist/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js.map +1 -0
  26. package/dist/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js +2 -0
  27. package/dist/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js.map +1 -0
  28. package/dist/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js +2 -0
  29. package/dist/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js.map +1 -0
  30. package/dist/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js +2 -0
  31. package/dist/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js.map +1 -0
  32. package/dist/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js +2 -0
  33. package/dist/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js.map +1 -0
  34. package/dist/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js +2 -0
  35. package/dist/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js.map +1 -0
  36. package/dist/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js +2 -0
  37. package/dist/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js.map +1 -0
  38. package/dist/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js +2 -0
  39. package/dist/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js.map +1 -0
  40. package/dist/node_modules/@popperjs/core/lib/dom-utils/getWindow.js +2 -0
  41. package/dist/node_modules/@popperjs/core/lib/dom-utils/getWindow.js.map +1 -0
  42. package/dist/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js +2 -0
  43. package/dist/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js.map +1 -0
  44. package/dist/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js +2 -0
  45. package/dist/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js.map +1 -0
  46. package/dist/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js +2 -0
  47. package/dist/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js.map +1 -0
  48. package/dist/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js +2 -0
  49. package/dist/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js.map +1 -0
  50. package/dist/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js +2 -0
  51. package/dist/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js.map +1 -0
  52. package/dist/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js +2 -0
  53. package/dist/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js.map +1 -0
  54. package/dist/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js +2 -0
  55. package/dist/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js.map +1 -0
  56. package/dist/node_modules/@popperjs/core/lib/enums.js +2 -0
  57. package/dist/node_modules/@popperjs/core/lib/enums.js.map +1 -0
  58. package/dist/node_modules/@popperjs/core/lib/modifiers/applyStyles.js +2 -0
  59. package/dist/node_modules/@popperjs/core/lib/modifiers/applyStyles.js.map +1 -0
  60. package/dist/node_modules/@popperjs/core/lib/modifiers/arrow.js +2 -0
  61. package/dist/node_modules/@popperjs/core/lib/modifiers/arrow.js.map +1 -0
  62. package/dist/node_modules/@popperjs/core/lib/modifiers/computeStyles.js +2 -0
  63. package/dist/node_modules/@popperjs/core/lib/modifiers/computeStyles.js.map +1 -0
  64. package/dist/node_modules/@popperjs/core/lib/modifiers/eventListeners.js +2 -0
  65. package/dist/node_modules/@popperjs/core/lib/modifiers/eventListeners.js.map +1 -0
  66. package/dist/node_modules/@popperjs/core/lib/modifiers/flip.js +2 -0
  67. package/dist/node_modules/@popperjs/core/lib/modifiers/flip.js.map +1 -0
  68. package/dist/node_modules/@popperjs/core/lib/modifiers/hide.js +2 -0
  69. package/dist/node_modules/@popperjs/core/lib/modifiers/hide.js.map +1 -0
  70. package/dist/node_modules/@popperjs/core/lib/modifiers/offset.js +2 -0
  71. package/dist/node_modules/@popperjs/core/lib/modifiers/offset.js.map +1 -0
  72. package/dist/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js +2 -0
  73. package/dist/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js.map +1 -0
  74. package/dist/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js +2 -0
  75. package/dist/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js.map +1 -0
  76. package/dist/node_modules/@popperjs/core/lib/popper.js +2 -0
  77. package/dist/node_modules/@popperjs/core/lib/popper.js.map +1 -0
  78. package/dist/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js +2 -0
  79. package/dist/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js.map +1 -0
  80. package/dist/node_modules/@popperjs/core/lib/utils/computeOffsets.js +2 -0
  81. package/dist/node_modules/@popperjs/core/lib/utils/computeOffsets.js.map +1 -0
  82. package/dist/node_modules/@popperjs/core/lib/utils/debounce.js +2 -0
  83. package/dist/node_modules/@popperjs/core/lib/utils/debounce.js.map +1 -0
  84. package/dist/node_modules/@popperjs/core/lib/utils/detectOverflow.js +2 -0
  85. package/dist/node_modules/@popperjs/core/lib/utils/detectOverflow.js.map +1 -0
  86. package/dist/node_modules/@popperjs/core/lib/utils/expandToHashMap.js +2 -0
  87. package/dist/node_modules/@popperjs/core/lib/utils/expandToHashMap.js.map +1 -0
  88. package/dist/node_modules/@popperjs/core/lib/utils/getAltAxis.js +2 -0
  89. package/dist/node_modules/@popperjs/core/lib/utils/getAltAxis.js.map +1 -0
  90. package/dist/node_modules/@popperjs/core/lib/utils/getBasePlacement.js +2 -0
  91. package/dist/node_modules/@popperjs/core/lib/utils/getBasePlacement.js.map +1 -0
  92. package/dist/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js +2 -0
  93. package/dist/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js.map +1 -0
  94. package/dist/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js +2 -0
  95. package/dist/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js.map +1 -0
  96. package/dist/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js +2 -0
  97. package/dist/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js.map +1 -0
  98. package/dist/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js +2 -0
  99. package/dist/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js.map +1 -0
  100. package/dist/node_modules/@popperjs/core/lib/utils/getVariation.js +2 -0
  101. package/dist/node_modules/@popperjs/core/lib/utils/getVariation.js.map +1 -0
  102. package/dist/node_modules/@popperjs/core/lib/utils/math.js +2 -0
  103. package/dist/node_modules/@popperjs/core/lib/utils/math.js.map +1 -0
  104. package/dist/node_modules/@popperjs/core/lib/utils/mergeByName.js +2 -0
  105. package/dist/node_modules/@popperjs/core/lib/utils/mergeByName.js.map +1 -0
  106. package/dist/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js +2 -0
  107. package/dist/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js.map +1 -0
  108. package/dist/node_modules/@popperjs/core/lib/utils/orderModifiers.js +2 -0
  109. package/dist/node_modules/@popperjs/core/lib/utils/orderModifiers.js.map +1 -0
  110. package/dist/node_modules/@popperjs/core/lib/utils/rectToClientRect.js +2 -0
  111. package/dist/node_modules/@popperjs/core/lib/utils/rectToClientRect.js.map +1 -0
  112. package/dist/node_modules/@popperjs/core/lib/utils/userAgent.js +2 -0
  113. package/dist/node_modules/@popperjs/core/lib/utils/userAgent.js.map +1 -0
  114. package/dist/node_modules/@popperjs/core/lib/utils/within.js +2 -0
  115. package/dist/node_modules/@popperjs/core/lib/utils/within.js.map +1 -0
  116. package/dist/node_modules/@tippyjs/react/dist/tippy-react.esm.js +2 -0
  117. package/dist/node_modules/@tippyjs/react/dist/tippy-react.esm.js.map +1 -0
  118. package/dist/node_modules/digitinary-ui/dist/index.js +1 -1
  119. package/dist/node_modules/digitinary-ui/dist/index.js.map +1 -1
  120. package/dist/node_modules/formik/dist/formik.esm.js +1 -1
  121. package/dist/node_modules/formik/dist/formik.esm.js.map +1 -1
  122. package/dist/node_modules/tippy.js/dist/tippy.css.js +2 -0
  123. package/dist/node_modules/tippy.js/dist/tippy.css.js.map +1 -0
  124. package/dist/node_modules/tippy.js/dist/tippy.esm.js +7 -0
  125. package/dist/node_modules/tippy.js/dist/tippy.esm.js.map +1 -0
  126. package/dist/node_modules/yup/index.esm.js +1 -1
  127. package/dist/node_modules/yup/index.esm.js.map +1 -1
  128. package/dist/src/assets/icons/AddRow.svg.js +2 -0
  129. package/dist/src/assets/icons/AddRow.svg.js.map +1 -0
  130. package/dist/src/assets/icons/deleteOutlinedIcon.svg.js +2 -0
  131. package/dist/src/assets/icons/deleteOutlinedIcon.svg.js.map +1 -0
  132. package/dist/src/components/InfoForm/InfoForm.js +1 -1
  133. package/dist/src/components/InfoForm/InfoForm.js.map +1 -1
  134. package/dist/src/components/LivePreview/LivePreview.js +2 -0
  135. package/dist/src/components/LivePreview/LivePreview.js.map +1 -0
  136. package/dist/src/components/LivePreview/LivePreview.module.scss.js +2 -0
  137. package/dist/src/components/LivePreview/LivePreview.module.scss.js.map +1 -0
  138. package/dist/src/components/MethodAccordion/MethodAccordion.js +1 -1
  139. package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
  140. package/dist/src/components/SimpleLabelValue/SimpleLabelValue.js +2 -0
  141. package/dist/src/components/SimpleLabelValue/SimpleLabelValue.js.map +1 -0
  142. package/dist/src/components/Tooltip/Tooltip.js +2 -0
  143. package/dist/src/components/Tooltip/Tooltip.js.map +1 -0
  144. package/dist/src/components/dialog/index.js +2 -0
  145. package/dist/src/components/dialog/index.js.map +1 -0
  146. package/dist/src/components/table/table.js +2 -0
  147. package/dist/src/components/table/table.js.map +1 -0
  148. package/dist/src/constants/index.js +1 -1
  149. package/dist/src/constants/index.js.map +1 -1
  150. package/dist/src/helpers/layout.helper.js +2 -0
  151. package/dist/src/helpers/layout.helper.js.map +1 -0
  152. package/dist/src/helpers/methodAccordion.helper.js +2 -0
  153. package/dist/src/helpers/methodAccordion.helper.js.map +1 -0
  154. package/dist/src/layout/layout.js +1 -1
  155. package/dist/src/layout/layout.js.map +1 -1
  156. package/dist/src/layout/layout.module.css.js +1 -1
  157. package/dist/src/validator/form.scheme.js +2 -0
  158. package/dist/src/validator/form.scheme.js.map +1 -0
  159. package/dist/styles.css +673 -63
  160. package/dist/types/assets/icons/index.d.ts +2 -0
  161. package/dist/types/components/LivePreview/LivePreview.d.ts +7 -0
  162. package/dist/types/components/MethodAccordion/MethodAccordion.d.ts +8 -1
  163. package/dist/types/components/SimpleLabelValue/SimpleLabelValue.d.ts +11 -0
  164. package/dist/types/components/SimpleLabelValue/index.d.ts +1 -0
  165. package/dist/types/components/Tooltip/Tooltip.d.ts +19 -0
  166. package/dist/types/components/dialog/dialog.d.ts +41 -0
  167. package/dist/types/components/dialog/index.d.ts +4 -0
  168. package/dist/types/components/table/table.d.ts +11 -0
  169. package/dist/types/constants/index.d.ts +20 -4
  170. package/dist/types/helpers/layout.helper.d.ts +7 -0
  171. package/dist/types/helpers/methodAccordion.helper.d.ts +2 -0
  172. package/dist/types/layout/layout.d.ts +5 -1
  173. package/dist/types/types/layout.type.d.ts +19 -0
  174. package/dist/types/types/openApi.d.ts +85 -0
  175. package/dist/types/types/transformedOpenApi.d.ts +50 -0
  176. package/dist/types/validator/form.scheme.d.ts +40 -0
  177. package/package.json +1 -1
  178. package/src/assets/icons/AddRow.svg +3 -0
  179. package/src/assets/icons/deleteOutlinedIcon.svg +8 -0
  180. package/src/assets/icons/index.ts +2 -0
  181. package/src/components/Chips/style.scss +1 -1
  182. package/src/components/InfoForm/InfoForm.module.scss +1 -0
  183. package/src/components/InfoForm/InfoForm.tsx +94 -59
  184. package/src/components/LivePreview/LivePreview.module.scss +5 -0
  185. package/src/components/LivePreview/LivePreview.tsx +80 -0
  186. package/src/components/MethodAccordion/MethodAccordion.module.scss +232 -125
  187. package/src/components/MethodAccordion/MethodAccordion.tsx +404 -57
  188. package/src/components/SimpleLabelValue/SimpleLabelValue.tsx +31 -0
  189. package/src/components/SimpleLabelValue/index.ts +1 -0
  190. package/src/components/SimpleLabelValue/style.scss +30 -0
  191. package/src/components/Tooltip/Tooltip.scss +130 -0
  192. package/src/components/Tooltip/Tooltip.tsx +86 -0
  193. package/src/components/_global.scss +338 -0
  194. package/src/components/dialog/dialog.ts +54 -0
  195. package/src/components/dialog/index.tsx +85 -0
  196. package/src/components/dialog/style.scss +104 -0
  197. package/src/components/table/style.scss +179 -0
  198. package/src/components/table/table.tsx +307 -0
  199. package/src/constants/index.ts +23 -6
  200. package/src/helpers/layout.helper.ts +118 -0
  201. package/src/helpers/methodAccordion.helper.ts +20 -0
  202. package/src/layout/layout.module.css +1 -0
  203. package/src/layout/layout.tsx +57 -9
  204. package/src/types/index.ts +0 -20
  205. package/src/types/layout.type.ts +22 -0
  206. package/src/types/openApi.ts +95 -0
  207. package/src/types/transformedOpenApi.ts +52 -0
  208. package/src/validator/form.scheme.ts +70 -0
  209. package/tsconfig.json +4 -1
  210. package/dist/src/components/Button/Button.js +0 -2
  211. package/dist/src/components/Button/Button.js.map +0 -1
  212. package/dist/src/components/Button/Button.module.css.js +0 -2
  213. package/dist/src/components/Button/Button.module.css.js.map +0 -1
  214. package/dist/types/components/Button/Button.d.ts +0 -7
@@ -4,3 +4,5 @@ export { default as CloseIcon } from './CloseIcon.svg';
4
4
  export { default as CheckMarkSquare } from './CheckMarkSquare.svg';
5
5
  export { default as DeleteIcon } from './DeleteIcon.svg';
6
6
  export { default as EditIcon } from './EditIcon.svg';
7
+ export { default as AddRow } from './AddRow.svg';
8
+ export { default as deleteOutlinedIcon } from './deleteOutlinedIcon.svg';
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { TransformedOpenApi } from '../../types/transformedOpenApi';
3
+ interface LivePreviewProps {
4
+ transformedData?: TransformedOpenApi;
5
+ }
6
+ declare const LivePreview: React.FC<LivePreviewProps>;
7
+ export default LivePreview;
@@ -1,2 +1,9 @@
1
- declare const MethodsAccordion: () => import("react/jsx-runtime").JSX.Element;
1
+ import { TransformedMethod } from '../../types/layout.type';
2
+ declare const MethodsAccordion: ({ method, path, setFieldValue, readOnly, handleSave, }: {
3
+ method: TransformedMethod;
4
+ path: string;
5
+ setFieldValue: (key: string, value: string) => void;
6
+ readOnly?: boolean;
7
+ handleSave: (data: any) => unknown;
8
+ }) => import("react/jsx-runtime").JSX.Element;
2
9
  export default MethodsAccordion;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import './style.scss';
3
+ type SimpleLabelValueProps = {
4
+ label?: string | JSX.Element;
5
+ value?: string | number | JSX.Element | JSX.Element[];
6
+ color?: string;
7
+ className?: string;
8
+ dataId?: string;
9
+ };
10
+ declare const SimpleLabelValue: React.FC<SimpleLabelValueProps>;
11
+ export default SimpleLabelValue;
@@ -0,0 +1 @@
1
+ export { default } from './SimpleLabelValue';
@@ -0,0 +1,19 @@
1
+ import React, { ReactNode } from 'react';
2
+ import 'tippy.js/dist/tippy.css';
3
+ import './Tooltip.scss';
4
+ interface TooltipProps {
5
+ children: ReactNode;
6
+ content: ReactNode;
7
+ success?: boolean;
8
+ onMouseEnter?: (event: React.MouseEvent<HTMLDivElement>) => void;
9
+ onMouseLeave?: (event: React.MouseEvent<HTMLDivElement>) => void;
10
+ visible?: boolean;
11
+ delay?: [number, number];
12
+ type?: 'info' | 'function';
13
+ maxWidth?: number;
14
+ className?: string;
15
+ arrowWithBorder?: boolean;
16
+ disabled?: boolean;
17
+ }
18
+ declare const Tooltip: React.FC<TooltipProps>;
19
+ export default Tooltip;
@@ -0,0 +1,41 @@
1
+ export type DialogStatus = 'error' | 'info' | 'warning';
2
+ export type DialogSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
3
+ export type ButtonType = 'text' | 'submit' | 'reset';
4
+ export type ButtonVariant = 'outlined' | 'contained' | 'text' | 'link';
5
+ export type ButtonColor = 'inherit' | 'primary' | 'secondary' | 'success' | 'error' | 'info' | 'warning' | 'action' | 'normal';
6
+ export type ButtonSize = 'small' | 'medium' | 'large';
7
+ export interface BaseActionButtonProps {
8
+ text: string;
9
+ color?: ButtonColor;
10
+ variant?: ButtonVariant;
11
+ type?: ButtonType;
12
+ size?: ButtonSize;
13
+ id?: string;
14
+ className?: string;
15
+ disabled?: boolean;
16
+ startIcon?: JSX.Element;
17
+ endIcon?: JSX.Element;
18
+ dataId?: string;
19
+ loading?: boolean;
20
+ fullWidth?: boolean;
21
+ active?: boolean;
22
+ onKeyDown?: () => void;
23
+ }
24
+ export interface SubmitButtonProps extends BaseActionButtonProps {
25
+ onClick: () => void;
26
+ }
27
+ export interface CancelButtonProps extends BaseActionButtonProps {
28
+ onClick?: () => void;
29
+ }
30
+ export interface CommonDialogProps {
31
+ status?: DialogStatus;
32
+ content?: React.ReactElement;
33
+ onSubmit?: SubmitButtonProps;
34
+ onCancel?: CancelButtonProps;
35
+ onClose: () => void;
36
+ open?: boolean;
37
+ icon?: JSX.Element | boolean;
38
+ size?: DialogSize;
39
+ children?: React.ReactElement;
40
+ statusTitle?: boolean;
41
+ }
@@ -0,0 +1,4 @@
1
+ import './style.scss';
2
+ import { CommonDialogProps } from './dialog';
3
+ declare const CommonDialog: ({ status, content, onSubmit, onCancel, onClose, open, size, icon, }: CommonDialogProps) => import("react/jsx-runtime").JSX.Element;
4
+ export default CommonDialog;
@@ -0,0 +1,11 @@
1
+ import './style.scss';
2
+ declare const ParamterTable: ({ id, headCells, data, isFormOpen, setIsFormOpen, saveNewRow, readOnly, }: {
3
+ id: any;
4
+ headCells: any;
5
+ data: any;
6
+ isFormOpen: any;
7
+ setIsFormOpen: any;
8
+ saveNewRow: any;
9
+ readOnly: any;
10
+ }) => import("react/jsx-runtime").JSX.Element;
11
+ export default ParamterTable;
@@ -1,17 +1,33 @@
1
1
  export declare const methodColorMapping: {
2
- GET: {
2
+ get: {
3
3
  label: string;
4
4
  color: string;
5
5
  };
6
- POST: {
6
+ post: {
7
7
  label: string;
8
8
  color: string;
9
9
  };
10
- PUT: {
10
+ put: {
11
11
  label: string;
12
12
  color: string;
13
13
  };
14
- DELETE: {
14
+ delete: {
15
+ label: string;
16
+ color: string;
17
+ };
18
+ PATCH: {
19
+ label: string;
20
+ color: string;
21
+ };
22
+ OPTIONS: {
23
+ label: string;
24
+ color: string;
25
+ };
26
+ TRACE: {
27
+ label: string;
28
+ color: string;
29
+ };
30
+ HEAD: {
15
31
  label: string;
16
32
  color: string;
17
33
  };
@@ -0,0 +1,7 @@
1
+ import { TransformedPathsArray } from '@entities/layout.type';
2
+ import { OpenAPIFile } from '@entities/openApi';
3
+ import { TransformedOpenApi } from '@entities/transformedOpenApi';
4
+ export declare const transformOpenApiObject: (openApiJson: OpenAPIFile) => TransformedOpenApi;
5
+ export declare const transformOpenApiObjectToOrigin: (values: TransformedOpenApi) => OpenAPIFile;
6
+ export declare const transformPathsToArray: (paths: OpenAPIFile["paths"]) => TransformedPathsArray | any;
7
+ export declare const transformPathsArrayToOrigin: (paths: TransformedPathsArray) => OpenAPIFile["paths"];
@@ -0,0 +1,2 @@
1
+ export declare const handleStatusColor: (code: number) => string;
2
+ export declare const capitalize: (str: any) => any;
@@ -1,3 +1,7 @@
1
1
  import { JSX } from 'react';
2
- declare const Layout: () => JSX.Element;
2
+ import { OpenAPIFile } from '../types/openApi';
3
+ interface ILayoutProps {
4
+ openApiJson?: OpenAPIFile;
5
+ }
6
+ declare const Layout: ({ openApiJson, handleSave }: ILayoutProps) => JSX.Element;
3
7
  export default Layout;
@@ -0,0 +1,19 @@
1
+ import { HTTPMethod } from './openApi';
2
+ export type TransformedMethod = {
3
+ type: HTTPMethod;
4
+ tags: string[];
5
+ parameters: any;
6
+ requestBody: any;
7
+ responses: {
8
+ code: string;
9
+ content: {
10
+ contentType?: string;
11
+ schema?: unknown;
12
+ };
13
+ }[];
14
+ };
15
+ export type TransformedPath = {
16
+ path: string;
17
+ methods: TransformedMethod[];
18
+ };
19
+ export type TransformedPathsArray = TransformedPath[];
@@ -0,0 +1,85 @@
1
+ export interface OpenAPIFile {
2
+ openapi: string;
3
+ info: {
4
+ title: string;
5
+ description?: string;
6
+ version: string;
7
+ };
8
+ servers?: {
9
+ url: string;
10
+ description?: string;
11
+ }[];
12
+ paths: {
13
+ [path: string]: Partial<Record<HTTPMethod, {
14
+ tags: string[];
15
+ responses: Responses;
16
+ summary?: string;
17
+ description?: string;
18
+ parameters?: Parameter[];
19
+ requestBody?: RequestBody;
20
+ }>>;
21
+ };
22
+ components?: {
23
+ schemas?: {
24
+ [schemaName: string]: Schema;
25
+ };
26
+ securitySchemes?: {
27
+ [schemeName: string]: SecurityScheme;
28
+ };
29
+ };
30
+ security?: {
31
+ [schemeName: string]: string[];
32
+ }[];
33
+ tags?: {
34
+ name: string;
35
+ description?: string;
36
+ }[];
37
+ }
38
+ interface Parameter {
39
+ name: string;
40
+ in: 'query' | 'header' | 'path' | 'cookie';
41
+ description?: string;
42
+ required: boolean;
43
+ schema: Schema;
44
+ }
45
+ interface RequestBody {
46
+ description?: string;
47
+ required: boolean;
48
+ content: {
49
+ [contentType: string]: {
50
+ schema: Schema;
51
+ };
52
+ };
53
+ }
54
+ interface Responses {
55
+ [statusCode: string]: {
56
+ description: string;
57
+ content?: {
58
+ [contentType: string]: {
59
+ schema: Schema;
60
+ };
61
+ };
62
+ };
63
+ }
64
+ interface Schema {
65
+ type?: string;
66
+ format?: string;
67
+ properties?: {
68
+ [propertyName: string]: Schema;
69
+ };
70
+ items?: Schema;
71
+ enum?: string[];
72
+ required?: string[];
73
+ }
74
+ interface SecurityScheme {
75
+ type: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect';
76
+ description?: string;
77
+ name?: string;
78
+ in?: 'query' | 'header' | 'cookie';
79
+ scheme?: string;
80
+ bearerFormat?: string;
81
+ flows?: any;
82
+ openIdConnectUrl?: string;
83
+ }
84
+ export type HTTPMethod = 'get' | 'put' | 'post' | 'delete' | 'options' | 'head' | 'patch' | 'trace';
85
+ export {};
@@ -0,0 +1,50 @@
1
+ import { TransformedPathsArray } from "./layout.type";
2
+ export interface TransformedOpenApi {
3
+ openapi: string;
4
+ info: {
5
+ title: string;
6
+ description?: string;
7
+ version: string;
8
+ };
9
+ servers?: {
10
+ url: string;
11
+ description?: string;
12
+ }[];
13
+ paths: TransformedPathsArray;
14
+ components?: {
15
+ schemas?: {
16
+ [schemaName: string]: Schema;
17
+ };
18
+ securitySchemes?: {
19
+ [schemeName: string]: SecurityScheme;
20
+ };
21
+ };
22
+ security?: {
23
+ [schemeName: string]: string[];
24
+ }[];
25
+ tags?: {
26
+ name: string;
27
+ description?: string;
28
+ }[];
29
+ }
30
+ interface Schema {
31
+ type?: string;
32
+ format?: string;
33
+ properties?: {
34
+ [propertyName: string]: Schema;
35
+ };
36
+ items?: Schema;
37
+ enum?: string[];
38
+ required?: string[];
39
+ }
40
+ interface SecurityScheme {
41
+ type: "apiKey" | "http" | "oauth2" | "openIdConnect";
42
+ description?: string;
43
+ name?: string;
44
+ in?: "query" | "header" | "cookie";
45
+ scheme?: string;
46
+ bearerFormat?: string;
47
+ flows?: any;
48
+ openIdConnectUrl?: string;
49
+ }
50
+ export {};
@@ -0,0 +1,40 @@
1
+ import * as yup from "yup";
2
+ export declare const schemaValidation: yup.ObjectSchema<{
3
+ openapi: string;
4
+ info: {
5
+ title?: string;
6
+ description?: string;
7
+ version?: string;
8
+ };
9
+ servers: {
10
+ description?: string;
11
+ url?: string;
12
+ }[];
13
+ paths: {};
14
+ components: {
15
+ securitySchemes?: {};
16
+ schemas?: {};
17
+ };
18
+ security: {
19
+ schemeName?: string[];
20
+ }[];
21
+ tags: {
22
+ name?: string;
23
+ description?: string;
24
+ }[];
25
+ }, yup.AnyObject, {
26
+ openapi: undefined;
27
+ info: {
28
+ title: undefined;
29
+ description: undefined;
30
+ version: undefined;
31
+ };
32
+ servers: undefined;
33
+ paths: undefined;
34
+ components: {
35
+ schemas: undefined;
36
+ securitySchemes: {};
37
+ };
38
+ security: undefined;
39
+ tags: undefined;
40
+ }, "">;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digi-frontend/dgate-api-documentation",
3
- "version": "1.0.0",
3
+ "version": "1.0.4",
4
4
  "main": "dist/src/index.js",
5
5
  "module": "dist/src/index.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -0,0 +1,3 @@
1
+ <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M12.2507 1.5H5.74899C3.20081 1.5 1.50024 3.32445 1.50024 5.937V12.063C1.50024 14.678 3.19627 16.5 5.74899 16.5H12.25C14.8035 16.5 16.5002 14.678 16.5002 12.063V5.937C16.5002 3.32213 14.8036 1.5 12.2507 1.5ZM5.74899 2.625H12.2507C14.1636 2.625 15.3752 3.92622 15.3752 5.937V12.063C15.3752 14.0739 14.1635 15.375 12.25 15.375H5.74899C3.83631 15.375 2.62524 14.074 2.62524 12.063V5.937C2.62524 3.92878 3.8405 2.625 5.74899 2.625ZM12.0676 6.8225C11.8479 6.60283 11.4918 6.60283 11.2721 6.8225L8.10969 9.98385L6.72753 8.60217L6.66443 8.54772C6.44419 8.38437 6.1317 8.40259 5.93204 8.60234C5.71241 8.82205 5.71249 9.17821 5.93221 9.39783L7.71271 11.1776L7.7758 11.232C7.99601 11.3954 8.30845 11.3772 8.50812 11.1775L12.0676 7.618L12.1221 7.55491C12.2855 7.3347 12.2673 7.0222 12.0676 6.8225Z" fill="#A2A5B6"/>
3
+ </svg>
@@ -0,0 +1,8 @@
1
+ <svg width="67" height="67" viewBox="0 0 67 67" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M33.5 66C51.4493 66 66 51.4493 66 33.5C66 15.5507 51.4493 1 33.5 1C15.5507 1 1 15.5507 1 33.5C1 51.4493 15.5507 66 33.5 66Z" stroke="#DA3F3F" stroke-width="1.5"/>
3
+ <path d="M43 27.98C39.67 27.65 36.32 27.48 32.98 27.48C31 27.48 29.02 27.58 27.04 27.78L25 27.98" stroke="#DA3F3F" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M30.5 26.97L30.72 25.66C30.88 24.71 31 24 32.69 24H35.31C37 24 37.13 24.75 37.28 25.67L37.5 26.97" stroke="#DA3F3F" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
5
+ <path d="M40.85 31.1401L40.2 41.2101C40.09 42.7801 40 44.0001 37.21 44.0001H30.79C28 44.0001 27.91 42.7801 27.8 41.2101L27.15 31.1401" stroke="#DA3F3F" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
6
+ <path d="M32.33 38.5H35.66" stroke="#DA3F3F" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
7
+ <path d="M31.5 34.5H36.5" stroke="#DA3F3F" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
8
+ </svg>
@@ -4,3 +4,5 @@ export { default as CloseIcon } from './CloseIcon.svg'
4
4
  export { default as CheckMarkSquare } from './CheckMarkSquare.svg'
5
5
  export { default as DeleteIcon } from './DeleteIcon.svg'
6
6
  export { default as EditIcon } from './EditIcon.svg'
7
+ export { default as AddRow } from './AddRow.svg'
8
+ export { default as deleteOutlinedIcon } from './deleteOutlinedIcon.svg'
@@ -52,7 +52,7 @@
52
52
  .chip-text {
53
53
  display: flex;
54
54
  align-items: center;
55
- font-size: 0.75rem;
55
+ font-size: 0.95rem;
56
56
  height: 100%;
57
57
  padding-left: 0.9375rem;
58
58
  margin-top: -0.125rem;
@@ -14,6 +14,7 @@
14
14
  }
15
15
 
16
16
  .apiInfoForm_submitBtn {
17
+ height: 1.25rem !important;
17
18
  width: 4.25rem;
18
19
  }
19
20
  }
@@ -1,6 +1,6 @@
1
- import React from 'react'
1
+ import { useEffect, useState } from 'react'
2
2
  // @ts-ignore
3
- import { useFormik } from 'formik'
3
+ import { useFormikContext } from 'formik'
4
4
  import * as Yup from 'yup'
5
5
  import { Button, Input, SelectGroup, TextArea } from 'digitinary-ui'
6
6
  import styles from './InfoForm.module.scss'
@@ -8,91 +8,126 @@ import Chips from '../../components/Chips/Chips'
8
8
  import { CheckMarkSquare } from '../../assets/icons'
9
9
  import SVGLoader from '../../components/SVGLoader/SVGLoader'
10
10
  import regex from '../../constants/regex'
11
-
12
- const apiSchema = {
13
- initialValue: {
14
- name: '',
15
- desc: '',
16
- tags: [],
17
- authType: '',
18
- version: '',
19
- },
20
- schema: Yup.object().shape({
21
- name: Yup.string().required('').min(1, 'Minimum length allowed is 1'),
22
- authType: Yup.string(),
23
- version: Yup.string(),
24
- desc: Yup.string(),
25
- tags: Yup.array().of(
26
- Yup.object().shape({
27
- id: Yup.string(),
28
- label: Yup.string(),
29
- })
30
- ),
31
- }),
32
- }
11
+ import { TransformedOpenApi } from '../../types/transformedOpenApi'
33
12
 
34
13
  const InfoForm = () => {
35
- const formik = useFormik({
36
- initialValues: structuredClone(apiSchema.initialValue),
37
- validationSchema: apiSchema.schema,
38
- validateOnMount: true,
39
- onSubmit: (values, { resetForm, setFieldError, validateForm }) => {
40
- // Handle save logic
41
- resetForm({ values: structuredClone(apiSchema.initialValue) })
14
+ const [tagsList, setTagsList] = useState([])
15
+ const [authType, setAuthType] = useState('')
16
+ const { values, setFieldValue, errors, submitForm } = useFormikContext<TransformedOpenApi>()
17
+ useEffect(() => {
18
+ if (values && values.tags) {
19
+ setTagsList(values.tags)
20
+ }
21
+ if (values && values.components && values.components.securitySchemes) {
22
+ const authenticatorKeys = Object.keys(values.components.securitySchemes)
23
+ if (authenticatorKeys.length) {
24
+ setAuthType(values.components.securitySchemes[authenticatorKeys[0]].scheme)
25
+ }
26
+ }
27
+ }, [])
42
28
 
43
- setTimeout(() => validateForm(), 0)
44
- },
45
- })
46
-
47
- const { values, errors, setFieldValue } = formik
29
+ const capitalize = (str) => {
30
+ if (!str) return ''
31
+ return str.charAt(0).toUpperCase() + str.slice(1)
32
+ }
48
33
 
49
34
  return (
50
35
  <form className={styles.apiInfoForm} onSubmit={(e) => e.preventDefault()}>
51
36
  <Input
52
- size='large'
53
- placeholder='e.g. Payments'
54
- label='API Name'
37
+ size="large"
38
+ placeholder="e.g. Payments"
39
+ label="API Name"
55
40
  required
56
- value={values.name}
41
+ value={values?.info?.title}
57
42
  maxLength={25}
58
43
  onChange={(value) => {
59
- setFieldValue('name', value)
44
+ setFieldValue('info.title', value)
60
45
  }}
61
46
  onClear={() => {
62
- setFieldValue('name', '')
47
+ setFieldValue('info.title', '')
63
48
  }}
64
- errorMsg={errors.name}
49
+ errorMsg={errors?.info?.title}
65
50
  restrictedCharsRegex={regex.basic}
66
51
  />
67
52
  <div className={styles.apiDocRow}>
68
- <Input size='large' label='API Authentication Type' required value={'Basic'} disabled />
69
- <Input size='large' label='Version' required value={'1.3.2'} disabled />
53
+ <Input
54
+ size="large"
55
+ label="API Authentication Type"
56
+ required
57
+ value={capitalize(authType)}
58
+ disabled
59
+ />
60
+ <Input size="large" label="Version" required value={values?.info?.version} disabled />
70
61
  </div>
71
62
  <TextArea
72
- size='large'
73
- placeholder='description...'
74
- label='Description'
75
- value={values.desc}
63
+ size="large"
64
+ placeholder="Enter a description of the API's functionality..."
65
+ label="Description"
66
+ value={values?.info?.description}
76
67
  maxLength={120}
77
68
  onChange={(value: string) => {
78
- setFieldValue('desc', value)
69
+ setFieldValue('info.description', value)
79
70
  }}
80
71
  onClear={() => {
81
- setFieldValue('desc', '')
72
+ setFieldValue('info.description', '')
82
73
  }}
83
- errorMessage={errors.desc}
74
+ errorMessage={errors?.info?.description}
84
75
  restrictedCharsRegex={regex.restrictNone}
85
76
  />
86
- <SelectGroup value={values.tags} onChange={(items) => setFieldValue('tags', items)} label='Tags' options={[{ list: [{ label: 'Option 1', value: '1' }] }]} />
87
- <Chips className={styles.apiInfoForm_tagsChips} items={values.tags.map((t) => ({ id: t.label, label: t.label }))} onDelete={(items) => setFieldValue('tags', items)} />
77
+ <SelectGroup
78
+ value={values.tags.map((item) => ({
79
+ label: item.name,
80
+ value: item.name,
81
+ description: item.description || '',
82
+ }))}
83
+ onChange={(items) =>
84
+ setFieldValue(
85
+ 'tags',
86
+ items.map((item) => ({
87
+ name: item.label,
88
+ description: item.description || '',
89
+ }))
90
+ )
91
+ }
92
+ label="Tags"
93
+ options={[
94
+ {
95
+ list: tagsList?.map((item) => ({
96
+ label: item.name,
97
+ value: item.name,
98
+ description: item.description || '',
99
+ })),
100
+ },
101
+ ]}
102
+ />
103
+ {values.tags.length > 0 && (
104
+ <Chips
105
+ className={styles.apiInfoForm_tagsChips}
106
+ items={values.tags.map((t) => ({
107
+ id: t.name,
108
+ label: t.name,
109
+ description: t.description || '',
110
+ }))}
111
+ onDelete={(items) =>
112
+ setFieldValue(
113
+ 'tags',
114
+ items.map((item) => ({
115
+ name: item.label,
116
+ description: item.description || '',
117
+ }))
118
+ )
119
+ }
120
+ />
121
+ )}
88
122
  <Button
89
123
  className={styles.apiInfoForm_submitBtn}
90
- size='small'
124
+ size="small"
91
125
  fullWidth={false}
92
- type='submit'
93
- variant='link'
94
- color='success'
95
- startIcon={<SVGLoader src={CheckMarkSquare} width='1.5rem' height='1.5rem' />}
126
+ onClick={submitForm}
127
+ type="submit"
128
+ variant="link"
129
+ color="success"
130
+ startIcon={<SVGLoader src={CheckMarkSquare} width="1.5rem" height="1.5rem" />}
96
131
  >
97
132
  Save
98
133
  </Button>
@@ -0,0 +1,5 @@
1
+ p.apiName {
2
+ font-size: 40px;
3
+ line-height: 30px;
4
+ font-weight: 500;
5
+ }