systemview 1.1.1 → 1.2.2

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 (256) hide show
  1. package/api/connections.txt +1 -1
  2. package/cli/index.js +8 -3
  3. package/cli/utils/log.js +2 -2
  4. package/package.json +3 -3
  5. package/server.js +19 -0
  6. package/babel.config.js +0 -12
  7. package/src/App.css +0 -38
  8. package/src/App.js +0 -30
  9. package/src/ServiceContext.js +0 -9
  10. package/src/assets/arrow.png +0 -0
  11. package/src/assets/check.svg +0 -1
  12. package/src/assets/clear.png +0 -0
  13. package/src/assets/edit.png +0 -0
  14. package/src/assets/error.svg +0 -1
  15. package/src/assets/eval-icon.svg +0 -10
  16. package/src/assets/expand-arrow.svg +0 -41
  17. package/src/assets/expand-button.svg +0 -41
  18. package/src/assets/fonts/FontsFree-Net-SFMono-Regular.ttf +0 -0
  19. package/src/assets/fonts/Malkor-Regular.ttf +0 -0
  20. package/src/assets/iconfinder-icon (1).svg +0 -14
  21. package/src/assets/iconfinder-icon.svg +0 -14
  22. package/src/assets/icons-save-60.png +0 -0
  23. package/src/assets/loading.gif +0 -0
  24. package/src/assets/missing-doc.png +0 -0
  25. package/src/assets/saved-doc.png +0 -0
  26. package/src/assets/sysly.png +0 -0
  27. package/src/assets/test-icon.svg +0 -10
  28. package/src/assets/test-missing.png +0 -0
  29. package/src/assets/test-saved.png +0 -0
  30. package/src/assets/x.svg +0 -1
  31. package/src/atoms/Button/Button.js +0 -20
  32. package/src/atoms/Button/Button.test.js +0 -27
  33. package/src/atoms/Button/__snapshots__/Button.test.js.snap +0 -9
  34. package/src/atoms/Button/styles.scss +0 -35
  35. package/src/atoms/Count/index.js +0 -10
  36. package/src/atoms/Count/styles.scss +0 -25
  37. package/src/atoms/DataTable/DataTable.js +0 -27
  38. package/src/atoms/DataTable/DataTable.test.js +0 -55
  39. package/src/atoms/DataTable/__snapshots__/DataTable.test.js.snap +0 -36
  40. package/src/atoms/DataTable/styles.scss +0 -28
  41. package/src/atoms/DescriptionBox/DescriptionBox.js +0 -24
  42. package/src/atoms/DescriptionBox/DescriptionBox.test.js +0 -36
  43. package/src/atoms/DescriptionBox/__snapshots__/DescriptionBox.test.js.snap +0 -14
  44. package/src/atoms/DescriptionBox/styles.scss +0 -24
  45. package/src/atoms/DescriptionText/DescriptionText.js +0 -12
  46. package/src/atoms/DescriptionText/DescriptionText.test.js +0 -22
  47. package/src/atoms/DescriptionText/styles.scss +0 -10
  48. package/src/atoms/DocsIcon/DocsIcon.js +0 -20
  49. package/src/atoms/DocsIcon/DocsIcon.test.js +0 -23
  50. package/src/atoms/DocsIcon/styles.scss +0 -7
  51. package/src/atoms/ExpandableIcon/ExpandableIcon.js +0 -30
  52. package/src/atoms/ExpandableIcon/ExpandableIcon.test.js +0 -18
  53. package/src/atoms/ExpandableIcon/styles.scss +0 -5
  54. package/src/atoms/JsonTextBox/JsonTextBox.js +0 -61
  55. package/src/atoms/JsonTextBox/JsonTextBox.test.js +0 -0
  56. package/src/atoms/JsonTextBox/styles.scss +0 -41
  57. package/src/atoms/Link/Link.js +0 -17
  58. package/src/atoms/Link/Link.test.js +0 -33
  59. package/src/atoms/Link/styles.scss +0 -8
  60. package/src/atoms/List/List.js +0 -8
  61. package/src/atoms/List/List.test.js +0 -26
  62. package/src/atoms/List/styles.scss +0 -9
  63. package/src/atoms/Markdown/Markdown.js +0 -48
  64. package/src/atoms/Markdown/styles.scss +0 -414
  65. package/src/atoms/RunTestIcon/index.js +0 -41
  66. package/src/atoms/RunTestIcon/styles.scss +0 -16
  67. package/src/atoms/SaveIcon/SaveIcon.js +0 -6
  68. package/src/atoms/SaveIcon/styles.scss +0 -3
  69. package/src/atoms/Selector/Selector.js +0 -28
  70. package/src/atoms/Selector/Selector.test.js +0 -0
  71. package/src/atoms/Selector/styles.scss +0 -1
  72. package/src/atoms/StatusIndicator/StatusIndicator.js +0 -16
  73. package/src/atoms/StatusIndicator/styles.scss +0 -33
  74. package/src/atoms/TestsIcon/TestsIcon.js +0 -17
  75. package/src/atoms/TestsIcon/TestsIcon.test.js +0 -18
  76. package/src/atoms/TestsIcon/styles.scss +0 -0
  77. package/src/atoms/Text/Text.js +0 -8
  78. package/src/atoms/Text/Text.test.js +0 -21
  79. package/src/atoms/Text/styles.scss +0 -0
  80. package/src/atoms/Textbox/Textbox.js +0 -33
  81. package/src/atoms/Textbox/Textbox.test.js +0 -23
  82. package/src/atoms/Textbox/styles.scss +0 -14
  83. package/src/atoms/Title/Title.js +0 -12
  84. package/src/atoms/Title/Title.test.js +0 -0
  85. package/src/atoms/Title/styles.scss +0 -6
  86. package/src/atoms/Toggle/Toggle.js +0 -13
  87. package/src/atoms/Toggle/Toggle.test.js +0 -0
  88. package/src/atoms/Toggle/styles.scss +0 -62
  89. package/src/atoms/TypeSelector/TypeSelector.js +0 -28
  90. package/src/atoms/TypeSelector/TypeSelector.test.js +0 -0
  91. package/src/atoms/TypeSelector/styles.scss +0 -9
  92. package/src/index.css +0 -20
  93. package/src/index.js +0 -24
  94. package/src/logo.svg +0 -7
  95. package/src/molecules/Args/Args.js +0 -302
  96. package/src/molecules/Args/Args.test.js +0 -0
  97. package/src/molecules/Args/styles.scss +0 -166
  98. package/src/molecules/AutoCompleteBox/AutoCompleteBox.js +0 -101
  99. package/src/molecules/AutoCompleteBox/AutoCompleteBox.test.js +0 -0
  100. package/src/molecules/AutoCompleteBox/styles.scss +0 -35
  101. package/src/molecules/DataTableForm/DataTableForm.js +0 -167
  102. package/src/molecules/DataTableForm/DataTableForm.test.js +0 -0
  103. package/src/molecules/DataTableForm/styles.scss +0 -51
  104. package/src/molecules/EditBox/EditBox.js +0 -49
  105. package/src/molecules/EditBox/EditBox.test.js +0 -0
  106. package/src/molecules/EditBox/styles.scss +0 -38
  107. package/src/molecules/ExpandableList/ExpandableList.js +0 -26
  108. package/src/molecules/ExpandableList/ExpandableList.test.js +0 -33
  109. package/src/molecules/ExpandableList/styles.scss +0 -18
  110. package/src/molecules/ExpandableSection/ExpandableSection.js +0 -36
  111. package/src/molecules/ExpandableSection/ExpandableSection.test.js +0 -0
  112. package/src/molecules/ExpandableSection/styles.scss +0 -22
  113. package/src/molecules/ServerModulesList/ServerModulesList.js +0 -75
  114. package/src/molecules/ServerModulesList/styles.scss +0 -28
  115. package/src/molecules/TargetSelector/TargetSelector.js +0 -34
  116. package/src/molecules/TargetSelector/TargetSelector.test.js +0 -0
  117. package/src/molecules/TargetSelector/styles.scss +0 -0
  118. package/src/molecules/TestCaption/TestCaption.js +0 -26
  119. package/src/molecules/TestCaption/TestCaption.test.js +0 -0
  120. package/src/molecules/TestCaption/styles.scss +0 -40
  121. package/src/molecules/TestSummary/index.js +0 -212
  122. package/src/molecules/TestSummary/styles.scss +0 -83
  123. package/src/molecules/TextWith2Links/TextWith2Links.js +0 -10
  124. package/src/molecules/TextWith2Links/styles.scss +0 -0
  125. package/src/molecules/ValidationInput/ValidationInput.js +0 -64
  126. package/src/molecules/ValidationInput/ValidationInput.test.js +0 -0
  127. package/src/molecules/ValidationInput/ValidationMessages.js +0 -178
  128. package/src/molecules/ValidationInput/ValidationOptions.js +0 -113
  129. package/src/molecules/ValidationInput/styles.scss +0 -74
  130. package/src/molecules/ValidationInput/validator.js +0 -244
  131. package/src/organisms/Documentation/Documentation.js +0 -128
  132. package/src/organisms/Documentation/Documentation.test.js +0 -0
  133. package/src/organisms/Documentation/styles.scss +0 -22
  134. package/src/organisms/MultiTestSection/MultiTestSection.js +0 -85
  135. package/src/organisms/MultiTestSection/MultiTestSection.test.js +0 -0
  136. package/src/organisms/MultiTestSection/styles.scss +0 -22
  137. package/src/organisms/SavedTests/SavedTests.js +0 -209
  138. package/src/organisms/SavedTests/SavedTests.test.js +0 -0
  139. package/src/organisms/SavedTests/styles.scss +0 -76
  140. package/src/organisms/SavedTests/transformTests.js +0 -51
  141. package/src/organisms/ScratchPad/ScratchPad.js +0 -128
  142. package/src/organisms/ScratchPad/ScratchPad.test.js +0 -0
  143. package/src/organisms/ScratchPad/styles.scss +0 -100
  144. package/src/organisms/SystemNavigator/SystemNavigator.js +0 -148
  145. package/src/organisms/SystemNavigator/SystemNavigator.test.js +0 -24
  146. package/src/organisms/SystemNavigator/styles.scss +0 -38
  147. package/src/organisms/TestContainer/TestContainer.js +0 -72
  148. package/src/organisms/TestContainer/TestContainer.test.js +0 -0
  149. package/src/organisms/TestContainer/styles.scss +0 -20
  150. package/src/organisms/TestPanel/AfterTest/AfterTest.js +0 -16
  151. package/src/organisms/TestPanel/AfterTest/AfterTest.test.js +0 -0
  152. package/src/organisms/TestPanel/AfterTest/styles.scss +0 -0
  153. package/src/organisms/TestPanel/BeforeTest/BeforeTest.js +0 -16
  154. package/src/organisms/TestPanel/BeforeTest/BeforeTest.test.js +0 -0
  155. package/src/organisms/TestPanel/BeforeTest/styles.scss +0 -0
  156. package/src/organisms/TestPanel/Evaluations.js +0 -369
  157. package/src/organisms/TestPanel/EventsTest/EventsTest.js +0 -19
  158. package/src/organisms/TestPanel/EventsTest/styles.scss +0 -0
  159. package/src/organisms/TestPanel/MainTest/MainTest.js +0 -20
  160. package/src/organisms/TestPanel/MainTest/MainTest.test.js +0 -0
  161. package/src/organisms/TestPanel/MainTest/styles.scss +0 -143
  162. package/src/organisms/TestPanel/TestPanel.js +0 -170
  163. package/src/organisms/TestPanel/TestPanel.test.js +0 -0
  164. package/src/organisms/TestPanel/components/Argument.class.js +0 -94
  165. package/src/organisms/TestPanel/components/FullTestController.js +0 -78
  166. package/src/organisms/TestPanel/components/Test.class.js +0 -162
  167. package/src/organisms/TestPanel/components/TestController.class.js +0 -135
  168. package/src/organisms/TestPanel/components/test-helpers.js +0 -109
  169. package/src/organisms/TestPanel/styles.scss +0 -45
  170. package/src/pages/SystemView/SystemView.js +0 -68
  171. package/src/pages/SystemView/styles.scss +0 -81
  172. package/src/reportWebVitals.js +0 -13
  173. package/src/sass/bootstrap/_alert.scss +0 -51
  174. package/src/sass/bootstrap/_badge.scss +0 -47
  175. package/src/sass/bootstrap/_breadcrumb.scss +0 -38
  176. package/src/sass/bootstrap/_button-group.scss +0 -166
  177. package/src/sass/bootstrap/_buttons.scss +0 -143
  178. package/src/sass/bootstrap/_card.scss +0 -270
  179. package/src/sass/bootstrap/_carousel.scss +0 -191
  180. package/src/sass/bootstrap/_close.scss +0 -34
  181. package/src/sass/bootstrap/_code.scss +0 -56
  182. package/src/sass/bootstrap/_custom-forms.scss +0 -297
  183. package/src/sass/bootstrap/_dropdown.scss +0 -131
  184. package/src/sass/bootstrap/_forms.scss +0 -333
  185. package/src/sass/bootstrap/_functions.scss +0 -86
  186. package/src/sass/bootstrap/_grid.scss +0 -52
  187. package/src/sass/bootstrap/_images.scss +0 -42
  188. package/src/sass/bootstrap/_input-group.scss +0 -159
  189. package/src/sass/bootstrap/_jumbotron.scss +0 -16
  190. package/src/sass/bootstrap/_list-group.scss +0 -115
  191. package/src/sass/bootstrap/_media.scss +0 -8
  192. package/src/sass/bootstrap/_mixins.scss +0 -42
  193. package/src/sass/bootstrap/_modal.scss +0 -168
  194. package/src/sass/bootstrap/_nav.scss +0 -118
  195. package/src/sass/bootstrap/_navbar.scss +0 -311
  196. package/src/sass/bootstrap/_pagination.scss +0 -77
  197. package/src/sass/bootstrap/_popover.scss +0 -183
  198. package/src/sass/bootstrap/_print.scss +0 -124
  199. package/src/sass/bootstrap/_progress.scss +0 -33
  200. package/src/sass/bootstrap/_reboot.scss +0 -482
  201. package/src/sass/bootstrap/_root.scss +0 -19
  202. package/src/sass/bootstrap/_tables.scss +0 -180
  203. package/src/sass/bootstrap/_tooltip.scss +0 -115
  204. package/src/sass/bootstrap/_transitions.scss +0 -36
  205. package/src/sass/bootstrap/_type.scss +0 -125
  206. package/src/sass/bootstrap/_utilities.scss +0 -14
  207. package/src/sass/bootstrap/_variables.scss +0 -894
  208. package/src/sass/bootstrap/bootstrap-grid.scss +0 -32
  209. package/src/sass/bootstrap/bootstrap-reboot.scss +0 -12
  210. package/src/sass/bootstrap/bootstrap.scss +0 -42
  211. package/src/sass/bootstrap/mixins/_alert.scss +0 -13
  212. package/src/sass/bootstrap/mixins/_background-variant.scss +0 -21
  213. package/src/sass/bootstrap/mixins/_badge.scss +0 -12
  214. package/src/sass/bootstrap/mixins/_border-radius.scss +0 -35
  215. package/src/sass/bootstrap/mixins/_box-shadow.scss +0 -5
  216. package/src/sass/bootstrap/mixins/_breakpoints.scss +0 -123
  217. package/src/sass/bootstrap/mixins/_buttons.scss +0 -109
  218. package/src/sass/bootstrap/mixins/_caret.scss +0 -65
  219. package/src/sass/bootstrap/mixins/_clearfix.scss +0 -7
  220. package/src/sass/bootstrap/mixins/_float.scss +0 -11
  221. package/src/sass/bootstrap/mixins/_forms.scss +0 -137
  222. package/src/sass/bootstrap/mixins/_gradients.scss +0 -45
  223. package/src/sass/bootstrap/mixins/_grid-framework.scss +0 -67
  224. package/src/sass/bootstrap/mixins/_grid.scss +0 -52
  225. package/src/sass/bootstrap/mixins/_hover.scss +0 -39
  226. package/src/sass/bootstrap/mixins/_image.scss +0 -36
  227. package/src/sass/bootstrap/mixins/_list-group.scss +0 -21
  228. package/src/sass/bootstrap/mixins/_lists.scss +0 -7
  229. package/src/sass/bootstrap/mixins/_nav-divider.scss +0 -10
  230. package/src/sass/bootstrap/mixins/_navbar-align.scss +0 -10
  231. package/src/sass/bootstrap/mixins/_pagination.scss +0 -22
  232. package/src/sass/bootstrap/mixins/_reset-text.scss +0 -17
  233. package/src/sass/bootstrap/mixins/_resize.scss +0 -6
  234. package/src/sass/bootstrap/mixins/_screen-reader.scss +0 -35
  235. package/src/sass/bootstrap/mixins/_size.scss +0 -6
  236. package/src/sass/bootstrap/mixins/_table-row.scss +0 -30
  237. package/src/sass/bootstrap/mixins/_text-emphasis.scss +0 -14
  238. package/src/sass/bootstrap/mixins/_text-hide.scss +0 -9
  239. package/src/sass/bootstrap/mixins/_text-truncate.scss +0 -8
  240. package/src/sass/bootstrap/mixins/_transition.scss +0 -9
  241. package/src/sass/bootstrap/mixins/_visibility.scss +0 -7
  242. package/src/sass/bootstrap/utilities/_align.scss +0 -8
  243. package/src/sass/bootstrap/utilities/_background.scss +0 -19
  244. package/src/sass/bootstrap/utilities/_borders.scss +0 -59
  245. package/src/sass/bootstrap/utilities/_clearfix.scss +0 -3
  246. package/src/sass/bootstrap/utilities/_display.scss +0 -38
  247. package/src/sass/bootstrap/utilities/_embed.scss +0 -52
  248. package/src/sass/bootstrap/utilities/_flex.scss +0 -46
  249. package/src/sass/bootstrap/utilities/_float.scss +0 -9
  250. package/src/sass/bootstrap/utilities/_position.scss +0 -36
  251. package/src/sass/bootstrap/utilities/_screenreaders.scss +0 -11
  252. package/src/sass/bootstrap/utilities/_sizing.scss +0 -12
  253. package/src/sass/bootstrap/utilities/_spacing.scss +0 -51
  254. package/src/sass/bootstrap/utilities/_text.scss +0 -52
  255. package/src/sass/bootstrap/utilities/_visibility.scss +0 -11
  256. package/src/setupTests.js +0 -5
@@ -1,101 +0,0 @@
1
- import { useState, useEffect } from "react";
2
- import "./styles.scss";
3
-
4
- const AutoCompleteBox = ({
5
- suggestions,
6
- value = "",
7
- className,
8
- onSubmit,
9
- onChange,
10
- onBlur,
11
- disabled = false,
12
- placeholder,
13
- filterSuggestion = true,
14
- requireSelection = true,
15
- }) => {
16
- const [filteredSuggestions, setFilteredSuggestions] = useState([]);
17
- const [activeSuggestionIndex, setActiveSuggestionIndex] = useState(0);
18
- const [showSuggestions, setShowSuggestions] = useState(false);
19
- const [input, setInput] = useState(value);
20
- useEffect(() => setInput(value), [value]);
21
- const change = (e) => {
22
- const userInput = e.target.value;
23
-
24
- // Filter our suggestions that don't contain the user's input
25
- const unLinked = filterSuggestion
26
- ? suggestions.filter(
27
- (suggestion) => suggestion.toLowerCase().indexOf(userInput.toLowerCase()) > -1
28
- )
29
- : suggestions;
30
-
31
- setInput(e.target.value);
32
- setFilteredSuggestions(unLinked);
33
- setActiveSuggestionIndex(0);
34
-
35
- if (
36
- (!requireSelection && unLinked.indexOf(userInput) > -1) ||
37
- (!requireSelection &&
38
- unLinked.length <= 1 &&
39
- userInput.length > (unLinked[0] || "").length)
40
- )
41
- setShowSuggestions(false);
42
- else setShowSuggestions(true);
43
- if (typeof onChange === "function") onChange(e.target.value);
44
- };
45
- const onClick = (e) => {
46
- const text = e.target.innerText.substr(0, e.target.innerText.length);
47
- if (typeof onSubmit === "function") onSubmit(text);
48
- setFilteredSuggestions([]);
49
- setInput(text);
50
- setActiveSuggestionIndex(0);
51
- setShowSuggestions(false);
52
- };
53
- const blur = (e) => {
54
- typeof onBlur === "function" && onBlur(e.target.value);
55
- };
56
- const SuggestionsListComponent = () => {
57
- return filteredSuggestions.length ? (
58
- <div className="auto-complete__suggestions">
59
- {filteredSuggestions.map((suggestion, index) => {
60
- let className;
61
- // Flag the active suggestion with a class
62
-
63
- className =
64
- index === activeSuggestionIndex
65
- ? "auto-complete__suggestion auto-complete__suggestion--active"
66
- : "auto-complete__suggestion ";
67
-
68
- return (
69
- <span className={className} key={suggestion} onClick={onClick}>
70
- {suggestion}
71
- </span>
72
- );
73
- })}
74
- </div>
75
- ) : (
76
- <div className="auto-complete__suggestions">
77
- <div className="auto-complete__suggestion auto-complete__suggestion--empty">
78
- <em>no match</em>
79
- </div>
80
- </div>
81
- );
82
- };
83
- const onKeyDown = () => {};
84
- return (
85
- <div className="auto-complete">
86
- <input
87
- className={className + " auto-complete__input"}
88
- type="text"
89
- onChange={change}
90
- onKeyDown={onKeyDown}
91
- onBlur={blur}
92
- value={input}
93
- disabled={disabled}
94
- placeholder={placeholder}
95
- />
96
- {showSuggestions && input && <SuggestionsListComponent />}
97
- </div>
98
- );
99
- };
100
-
101
- export default AutoCompleteBox;
@@ -1,35 +0,0 @@
1
- .auto-complete {
2
- position: relative;
3
- display: initial;
4
- &__suggestions {
5
- position: absolute;
6
- top: 19px;
7
- z-index: 1;
8
- left: 0px;
9
- display: grid;
10
- // border: 1px solid #bcbfd1;
11
- box-shadow: 1px 3px 4px #736c6c;
12
- max-height: 365px;
13
- overflow-y: auto;
14
- font-family: monospace;
15
- }
16
- &__suggestion {
17
- padding: 6px 7px;
18
- display: inline-flex;
19
- cursor: pointer;
20
- background: white;
21
- width: calc(300px + 1rem);
22
- &--active,
23
- &:hover:not(&--empty) {
24
- color: #5960b6;
25
- background-color: #cbcbff;
26
- background-color: #dadaed;
27
- color: #3f495d;
28
- font-weight: 100;
29
- font-weight: bold;
30
- }
31
- &--empty {
32
- justify-content: center;
33
- }
34
- }
35
- }
@@ -1,167 +0,0 @@
1
- import React, { useState, useEffect } from "react";
2
- import "./styles.scss";
3
- import Textbox from "../../atoms/Textbox/Textbox";
4
- import Toggle from "../../atoms/Toggle/Toggle";
5
- import DataTable from "../../atoms/DataTable/DataTable";
6
- import Selector from "../../atoms/Selector/Selector";
7
- import EditBox from "../EditBox/EditBox";
8
- import ParserMatrix from "textparsermatrix";
9
-
10
- const MethodDataForm = ({ data, submit }) => {
11
- const displayHeaders = [
12
- { name: "Property" },
13
- { name: "Type" },
14
- { name: "Description" },
15
- { name: "Default" },
16
- { name: "Required" },
17
- ];
18
- const formHeaders = [...displayHeaders, { name: "" }];
19
- const _options = [
20
- "String",
21
- "Date",
22
- "Object",
23
- "ObjectId",
24
- "Number",
25
- "Boolean",
26
- "Array(ObjectIds)",
27
- "Array(Objects)",
28
- "Array(Strings)",
29
- "Array(Numbers)",
30
- "Array(Boolean)",
31
- "Array(Misc)",
32
- ];
33
- const matrix = ParserMatrix([
34
- { name: "name" },
35
- { name: "data_type" },
36
- { name: "description" },
37
- { name: "default_value" },
38
- { name: "required" },
39
- ]);
40
- matrix.addJson(data || [], {
41
- beforeInsert: (rowData) => (rowData[4] = rowData[4] + ""),
42
- });
43
-
44
- const [dataTable, setTable] = useState(matrix.table);
45
- const [formSubmitted, setFormSubmitted] = useState(false);
46
- const addRow = () => setTable([...dataTable, ["", "Object", "", "", "false"]]);
47
-
48
- const deleteRow = ([i]) => {
49
- dataTable.splice(i, 1);
50
- setTable([...dataTable]);
51
- };
52
- const updateCell = (row, col, e) => {
53
- dataTable[row][col] = e.target.value;
54
- setTable([...dataTable]);
55
- };
56
- const updateCheckboxCell = (row, col, event) => {
57
- dataTable[row][col] = event.target.checked + "";
58
- dataTable[row][col - 1] = event.target.checked ? "n/a" : "";
59
- setTable([...dataTable]);
60
- };
61
- const formCanceled = () => {
62
- setFormSubmitted(false);
63
- setTable(matrix.table);
64
- };
65
-
66
- const formSubmit = (showForm) => {
67
- setFormSubmitted(true);
68
- matrix.table = dataTable;
69
-
70
- //validate and change data types
71
- for (let i = 0; i < matrix.table.length; i++) {
72
- const currentRow = matrix.table[i];
73
- if (
74
- !/^(?![0-9])[a-zA-Z0-9$_]+$/.test(currentRow[0]) ||
75
- !currentRow[1] ||
76
- !currentRow[2] ||
77
- !currentRow[3]
78
- )
79
- return alert("Please fix invalid or incomplete cells.");
80
- currentRow[4] = /true/i.test(currentRow[4]);
81
- }
82
-
83
- submit(matrix.toJson());
84
- showForm(false);
85
- };
86
- useEffect(() => setTable(matrix.table), [data]);
87
- return (
88
- <div style={{ width: "100%" }}>
89
- <EditBox
90
- mainObject={<DataTable table={dataTable} headers={displayHeaders} />}
91
- hiddenForm={
92
- <div>
93
- <DataTable
94
- tableClassName="data-table-form"
95
- headers={formHeaders}
96
- table={dataTable.map(
97
- ([name, type, description, default_value, required], i) => {
98
- const _required = /true/i.test(required);
99
- return [
100
- <Textbox
101
- inputClassName={`data-table-form__input-validation--${
102
- /^(?![0-9])[a-zA-Z0-9$_]+$/.test(name)
103
- ? "complete"
104
- : formSubmitted
105
- ? "invalid"
106
- : "incomplete"
107
- }`}
108
- text={name}
109
- setValue={updateCell.bind(this, i, 0)}
110
- />,
111
- <Selector
112
- options={_options}
113
- selected_option={type}
114
- onSelect={updateCell.bind(this, i, 1)}
115
- className={`data-table-form__data-type-selector`}
116
- />,
117
- <textarea
118
- value={description}
119
- className={`data-table-form__description-text data-table-form__input-validation--${
120
- description
121
- ? "complete"
122
- : formSubmitted
123
- ? "invalid"
124
- : "incomplete"
125
- }`}
126
- onChange={updateCell.bind(this, i, 2)}
127
- />,
128
- <Textbox
129
- inputClassName={`data-table-form__input-validation--${
130
- default_value
131
- ? "complete"
132
- : formSubmitted
133
- ? "invalid"
134
- : "incomplete"
135
- }`}
136
- text={default_value}
137
- setValue={updateCell.bind(this, i, 3)}
138
- disabled={_required}
139
- />,
140
- <Toggle
141
- round={true}
142
- isChecked={_required}
143
- onChange={updateCheckboxCell.bind(this, i, 4)}
144
- />,
145
- <span
146
- className="data-table-form__delete-button"
147
- onClick={deleteRow.bind(this, [i])}
148
- >
149
- x
150
- </span>,
151
- ];
152
- }
153
- )}
154
- />
155
- <span className="data-table-form__add-button" href="#" onClick={addRow}>
156
- +Prop
157
- </span>
158
- </div>
159
- }
160
- formSubmit={formSubmit}
161
- onCancel={formCanceled}
162
- />
163
- </div>
164
- );
165
- };
166
-
167
- export default MethodDataForm;
File without changes
@@ -1,51 +0,0 @@
1
- .data-table-form {
2
- &__description-text {
3
- margin: 0px;
4
- min-height: 43px;
5
- max-width: 391px;
6
- min-width: 391px;
7
- }
8
-
9
- &__data-type-selector {
10
- padding: 0.5rem;
11
- }
12
-
13
- &__delete-button {
14
- font-family: sans-serif;
15
- cursor: pointer;
16
- border-radius: 61px;
17
- padding: 0px 5px 1px 5px;
18
-
19
- &:hover {
20
- background: #ff6b6b;
21
- color: white;
22
- }
23
-
24
- &:active {
25
- position: relative;
26
- top: 1px;
27
- }
28
- }
29
- &__add-button {
30
- cursor: pointer;
31
- padding: 1px 9px;
32
- line-height: 1;
33
- border-radius: 21px;
34
- font-weight: bold;
35
- color: #0d8065;
36
- font-size: 16px;
37
- background: white;
38
- border: 1px solid gainsboro;
39
- border: 1px solid #bbd8ca;
40
- &:active {
41
- position: relative;
42
- top: 1px;
43
- }
44
- }
45
- &__input-validation {
46
- &--invalid {
47
- border: 1px solid salmon;
48
- border-radius: 5px;
49
- }
50
- }
51
- }
@@ -1,49 +0,0 @@
1
- import React, { useState, useEffect } from "react";
2
- import "./styles.scss";
3
- import Button from "../../atoms/Button/Button";
4
-
5
- const EditBox = ({
6
- formSubmit,
7
- mainObject,
8
- hiddenForm,
9
- onCancel,
10
- open = false,
11
- stateChange,
12
- }) => {
13
- const [editMode, setEditMode] = useState(open);
14
- const editBoxClicked = () => setEditMode(true);
15
- const cancelClicked = () => {
16
- if (typeof onCancel === "function") onCancel();
17
- setEditMode(false);
18
- };
19
-
20
- const saveClicked = () => {
21
- formSubmit(setEditMode);
22
- //setEditMode(false);
23
- };
24
- // useEffect(() => {
25
- // setEditMode(false);
26
- // }, [stateChange]);
27
- return (
28
- <div className={`edit-box edit-box--${editMode ? "edit" : "read"}`}>
29
- <div
30
- onClick={editBoxClicked}
31
- className={`edit-box__main edit-box__main--${editMode ? "hidden" : "visible"}`}
32
- >
33
- {mainObject}
34
- </div>
35
- <div
36
- className={`edit-box__form edit-box__form--${editMode ? "visible" : "hidden"}`}
37
- >
38
- <div className="row">{hiddenForm}</div>
39
-
40
- <div className="edit-box__button">
41
- <Button submit={saveClicked}>Save</Button>
42
- <Button submit={cancelClicked}>Close</Button>
43
- </div>
44
- </div>
45
- </div>
46
- );
47
- };
48
-
49
- export default EditBox;
File without changes
@@ -1,38 +0,0 @@
1
- .edit-box {
2
- width: 100%;
3
- border-radius: 13px;
4
- background: white;
5
- overflow: scroll;
6
- max-height: 80vh;
7
- border: 2px solid #f1f1f1;
8
- &--read {
9
- &:hover {
10
- // border: 2px dashed #5960b6;
11
- // border: 2px dashed gainsboro;
12
- // border: 2px dashed #92a3d3;
13
- border: 2px dashed #8b97ba;
14
-
15
- cursor: pointer;
16
- }
17
- }
18
- &__main {
19
- border: 2px dashed transparent;
20
- &--hidden {
21
- display: none;
22
- }
23
- }
24
-
25
- &__form {
26
- &--hidden {
27
- display: none;
28
- }
29
- }
30
-
31
- &__button {
32
- display: flex;
33
- width: 100%;
34
- flex-direction: row;
35
- justify-content: flex-end;
36
- padding: 6px 15px;
37
- }
38
- }
@@ -1,26 +0,0 @@
1
- import React, { useState } from "react";
2
- import "./styles.scss";
3
- import List from "../../atoms/List/List";
4
- import ExpandIcon from "../../atoms/ExpandableIcon/ExpandableIcon";
5
-
6
- const ExpandableList = ({ children, title, open = false }) => {
7
- const [isOpen, setState] = useState(open);
8
-
9
- const expandClick = () => {
10
- setState(!isOpen);
11
- };
12
- return (
13
- <div className="expandable-list">
14
- <div className="expandable-list__button">
15
- <ExpandIcon isOpen={isOpen} onClick={expandClick} />
16
- {title}
17
- </div>
18
-
19
- <div className={`expandable-list__items expandable-list__items--${!isOpen ? "hidden" : ""}`}>
20
- <List>{children}</List>
21
- </div>
22
- </div>
23
- );
24
- };
25
-
26
- export default ExpandableList;
@@ -1,33 +0,0 @@
1
- /* eslint-disable jest/valid-expect */
2
- import React from "react";
3
- import { expect } from "chai";
4
- import { shallow, render } from "enzyme";
5
-
6
- import ExpandableList from "./ExpandableList";
7
-
8
- import Enzyme from "enzyme";
9
- import Adapter from "enzyme-adapter-react-16";
10
-
11
- Enzyme.configure({ adapter: new Adapter() });
12
-
13
- describe("<ExpandableList/>", () => {
14
- it("renders a div with classname expandable-list", () => {
15
- const wrapper = shallow(<ExpandableList />);
16
- expect(wrapper.find("div.expandable-list").props().className).to.equal("expandable-list");
17
- });
18
-
19
- it("use the title prop to pass a string to .expandable-list__button class", () => {
20
- const wrapper = render(<ExpandableList title="test" />);
21
- expect(wrapper.find("div.expandable-list__button").text()).to.contain("test");
22
- });
23
-
24
- it("use wrap nested elements in .expandable-list-items container", () => {
25
- const wrapper = render(
26
- <ExpandableList>
27
- <div className="test"></div>
28
- <div className="test"></div>
29
- </ExpandableList>
30
- );
31
- expect(wrapper.find("div.expandable-list__items test")).to.have.a.lengthOf(0);
32
- });
33
- });
@@ -1,18 +0,0 @@
1
- .expandable-list {
2
- text-indent: 10px;
3
-
4
- &__items {
5
- &--hidden {
6
- display: none;
7
- }
8
- }
9
- &__button {
10
- text-align: left;
11
- display: flex;
12
- & > span,
13
- a {
14
- display: flex;
15
- align-items: center;
16
- }
17
- }
18
- }
@@ -1,36 +0,0 @@
1
- import React from "react";
2
- import "./styles.scss";
3
- import ExpandIcon from "../../atoms/ExpandableIcon/ExpandableIcon";
4
-
5
- const ExpandableSection = ({
6
- children,
7
- title,
8
- color = "#2aa198",
9
- open,
10
- lock,
11
- toggleExpansion,
12
- }) => {
13
- return (
14
- <div className="expandable-section">
15
- <div className="expandable-section__title">
16
- <span
17
- className={`expandable-section__btn expandable-section__btn--hide-${lock}`}
18
- onClick={toggleExpansion}
19
- >
20
- <ExpandIcon color={color} isOpen={open} />
21
- </span>
22
- {title}
23
- </div>
24
-
25
- <div
26
- className={`expandable-section__items expandable-section__items--${
27
- !open ? "hidden" : ""
28
- }`}
29
- >
30
- {children}
31
- </div>
32
- </div>
33
- );
34
- };
35
-
36
- export default ExpandableSection;
@@ -1,22 +0,0 @@
1
- .expandable-section {
2
- width: 100%;
3
- margin-bottom: 6px;
4
- &__items {
5
- &--hidden {
6
- display: none;
7
- }
8
- }
9
- &__title {
10
- margin-bottom: 7px;
11
- display: flex;
12
- position: relative;
13
- &__btn {
14
- cursor: pointer;
15
- }
16
- }
17
- &__btn {
18
- &--hide-true {
19
- visibility: hidden;
20
- }
21
- }
22
- }
@@ -1,75 +0,0 @@
1
- import React from "react";
2
- import "./styles.scss";
3
- import ExpandableList from "../ExpandableList/ExpandableList";
4
- import MyLink from "../../atoms/Link/Link";
5
- import DocIcon from "../../atoms/DocsIcon/DocsIcon";
6
- import TestsIcon from "../../atoms/TestsIcon/TestsIcon";
7
-
8
- const ServerModulesList = ({
9
- projectCode,
10
- serviceId,
11
- modules,
12
- selectedModuleName,
13
- selectedMethodName,
14
- specList,
15
- }) => {
16
- const className = "server-module";
17
-
18
- return (
19
- <React.Fragment>
20
- {modules.map(({ name, methods }, i) => {
21
- const isSelected = selectedModuleName === name;
22
- const isSaved = specList.docs.includes(`${name}.md`);
23
- return (
24
- <ExpandableList
25
- open={selectedModuleName === name}
26
- key={i}
27
- title={
28
- <span
29
- className={`system-nav__link system-nav__link--selected-${
30
- !selectedMethodName && isSelected
31
- } ${name === "Plugin" && className + "__name--plugin"}`}
32
- >
33
- <MyLink link={`/${projectCode}/${serviceId}/${name}`} text={name} />
34
- <span className={`${className}__docs-icon`}>
35
- <DocIcon isSaved={isSaved} />
36
- </span>
37
- </span>
38
- }
39
- >
40
- {methods.map(({ fn }, i) => {
41
- const isSavedDoc = !!specList.docs.includes(`${name}.${fn}.md`);
42
- const isSavedTest = !!specList.tests.includes(`${name}.${fn}.json`);
43
- return (
44
- <div
45
- key={i}
46
- className={`${className}__methods system-nav__link--selected-${
47
- fn === selectedMethodName && isSelected
48
- }`}
49
- >
50
- <MyLink
51
- key={i}
52
- link={`/${projectCode}/${serviceId}/${name}/${fn}`}
53
- text={
54
- <span>
55
- {`.${fn}(`}
56
- <span style={{ fontWeight: "bold" }}>...</span>
57
- {")"}
58
- </span>
59
- }
60
- />
61
- <div className={`${className}__docs-icon`}>
62
- <DocIcon isSaved={isSavedDoc} />
63
- <TestsIcon isSaved={isSavedTest} />
64
- </div>
65
- </div>
66
- );
67
- })}
68
- </ExpandableList>
69
- );
70
- })}
71
- </React.Fragment>
72
- );
73
- };
74
-
75
- export default ServerModulesList;