systemview 1.1.2 → 1.3.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 (272) hide show
  1. package/api/connections.txt +1 -1
  2. package/build/asset-manifest.json +29 -0
  3. package/build/favicon.ico +0 -0
  4. package/build/index.html +1 -0
  5. package/build/logo192.png +0 -0
  6. package/build/logo512.png +0 -0
  7. package/build/manifest.json +25 -0
  8. package/build/robots.txt +3 -0
  9. package/build/static/css/main.fb15c45d.chunk.css +16 -0
  10. package/build/static/css/main.fb15c45d.chunk.css.map +1 -0
  11. package/build/static/js/2.b89d4ccd.chunk.js +3 -0
  12. package/build/static/js/2.b89d4ccd.chunk.js.LICENSE.txt +435 -0
  13. package/build/static/js/2.b89d4ccd.chunk.js.map +1 -0
  14. package/build/static/js/3.0571e5a9.chunk.js +2 -0
  15. package/build/static/js/3.0571e5a9.chunk.js.map +1 -0
  16. package/build/static/js/main.a47760bc.chunk.js +2 -0
  17. package/build/static/js/main.a47760bc.chunk.js.map +1 -0
  18. package/build/static/js/runtime-main.17d324d3.js +2 -0
  19. package/build/static/js/runtime-main.17d324d3.js.map +1 -0
  20. package/package.json +4 -3
  21. package/server.js +19 -0
  22. package/babel.config.js +0 -12
  23. package/src/App.css +0 -38
  24. package/src/App.js +0 -30
  25. package/src/ServiceContext.js +0 -9
  26. package/src/assets/arrow.png +0 -0
  27. package/src/assets/clear.png +0 -0
  28. package/src/assets/edit.png +0 -0
  29. package/src/assets/expand-arrow.svg +0 -41
  30. package/src/assets/expand-button.svg +0 -41
  31. package/src/assets/iconfinder-icon (1).svg +0 -14
  32. package/src/assets/iconfinder-icon.svg +0 -14
  33. package/src/assets/icons-save-60.png +0 -0
  34. package/src/assets/missing-doc.png +0 -0
  35. package/src/assets/saved-doc.png +0 -0
  36. package/src/assets/sysly.png +0 -0
  37. package/src/assets/test-missing.png +0 -0
  38. package/src/assets/test-saved.png +0 -0
  39. package/src/atoms/Button/Button.js +0 -20
  40. package/src/atoms/Button/Button.test.js +0 -27
  41. package/src/atoms/Button/__snapshots__/Button.test.js.snap +0 -9
  42. package/src/atoms/Button/styles.scss +0 -35
  43. package/src/atoms/Count/index.js +0 -10
  44. package/src/atoms/Count/styles.scss +0 -25
  45. package/src/atoms/DataTable/DataTable.js +0 -27
  46. package/src/atoms/DataTable/DataTable.test.js +0 -55
  47. package/src/atoms/DataTable/__snapshots__/DataTable.test.js.snap +0 -36
  48. package/src/atoms/DataTable/styles.scss +0 -28
  49. package/src/atoms/DescriptionBox/DescriptionBox.js +0 -24
  50. package/src/atoms/DescriptionBox/DescriptionBox.test.js +0 -36
  51. package/src/atoms/DescriptionBox/__snapshots__/DescriptionBox.test.js.snap +0 -14
  52. package/src/atoms/DescriptionBox/styles.scss +0 -24
  53. package/src/atoms/DescriptionText/DescriptionText.js +0 -12
  54. package/src/atoms/DescriptionText/DescriptionText.test.js +0 -22
  55. package/src/atoms/DescriptionText/styles.scss +0 -10
  56. package/src/atoms/DocsIcon/DocsIcon.js +0 -20
  57. package/src/atoms/DocsIcon/DocsIcon.test.js +0 -23
  58. package/src/atoms/DocsIcon/styles.scss +0 -7
  59. package/src/atoms/ExpandableIcon/ExpandableIcon.js +0 -30
  60. package/src/atoms/ExpandableIcon/ExpandableIcon.test.js +0 -18
  61. package/src/atoms/ExpandableIcon/styles.scss +0 -5
  62. package/src/atoms/JsonTextBox/JsonTextBox.js +0 -61
  63. package/src/atoms/JsonTextBox/JsonTextBox.test.js +0 -0
  64. package/src/atoms/JsonTextBox/styles.scss +0 -41
  65. package/src/atoms/Link/Link.js +0 -17
  66. package/src/atoms/Link/Link.test.js +0 -33
  67. package/src/atoms/Link/styles.scss +0 -8
  68. package/src/atoms/List/List.js +0 -8
  69. package/src/atoms/List/List.test.js +0 -26
  70. package/src/atoms/List/styles.scss +0 -9
  71. package/src/atoms/Markdown/Markdown.js +0 -48
  72. package/src/atoms/Markdown/styles.scss +0 -414
  73. package/src/atoms/RunTestIcon/index.js +0 -41
  74. package/src/atoms/RunTestIcon/styles.scss +0 -16
  75. package/src/atoms/SaveIcon/SaveIcon.js +0 -6
  76. package/src/atoms/SaveIcon/styles.scss +0 -3
  77. package/src/atoms/Selector/Selector.js +0 -28
  78. package/src/atoms/Selector/Selector.test.js +0 -0
  79. package/src/atoms/Selector/styles.scss +0 -1
  80. package/src/atoms/StatusIndicator/StatusIndicator.js +0 -16
  81. package/src/atoms/StatusIndicator/styles.scss +0 -33
  82. package/src/atoms/TestsIcon/TestsIcon.js +0 -17
  83. package/src/atoms/TestsIcon/TestsIcon.test.js +0 -18
  84. package/src/atoms/TestsIcon/styles.scss +0 -0
  85. package/src/atoms/Text/Text.js +0 -8
  86. package/src/atoms/Text/Text.test.js +0 -21
  87. package/src/atoms/Text/styles.scss +0 -0
  88. package/src/atoms/Textbox/Textbox.js +0 -33
  89. package/src/atoms/Textbox/Textbox.test.js +0 -23
  90. package/src/atoms/Textbox/styles.scss +0 -14
  91. package/src/atoms/Title/Title.js +0 -12
  92. package/src/atoms/Title/Title.test.js +0 -0
  93. package/src/atoms/Title/styles.scss +0 -6
  94. package/src/atoms/Toggle/Toggle.js +0 -13
  95. package/src/atoms/Toggle/Toggle.test.js +0 -0
  96. package/src/atoms/Toggle/styles.scss +0 -62
  97. package/src/atoms/TypeSelector/TypeSelector.js +0 -28
  98. package/src/atoms/TypeSelector/TypeSelector.test.js +0 -0
  99. package/src/atoms/TypeSelector/styles.scss +0 -9
  100. package/src/index.css +0 -20
  101. package/src/index.js +0 -24
  102. package/src/logo.svg +0 -7
  103. package/src/molecules/Args/Args.js +0 -302
  104. package/src/molecules/Args/Args.test.js +0 -0
  105. package/src/molecules/Args/styles.scss +0 -166
  106. package/src/molecules/AutoCompleteBox/AutoCompleteBox.js +0 -101
  107. package/src/molecules/AutoCompleteBox/AutoCompleteBox.test.js +0 -0
  108. package/src/molecules/AutoCompleteBox/styles.scss +0 -35
  109. package/src/molecules/DataTableForm/DataTableForm.js +0 -167
  110. package/src/molecules/DataTableForm/DataTableForm.test.js +0 -0
  111. package/src/molecules/DataTableForm/styles.scss +0 -51
  112. package/src/molecules/EditBox/EditBox.js +0 -49
  113. package/src/molecules/EditBox/EditBox.test.js +0 -0
  114. package/src/molecules/EditBox/styles.scss +0 -38
  115. package/src/molecules/ExpandableList/ExpandableList.js +0 -26
  116. package/src/molecules/ExpandableList/ExpandableList.test.js +0 -33
  117. package/src/molecules/ExpandableList/styles.scss +0 -18
  118. package/src/molecules/ExpandableSection/ExpandableSection.js +0 -36
  119. package/src/molecules/ExpandableSection/ExpandableSection.test.js +0 -0
  120. package/src/molecules/ExpandableSection/styles.scss +0 -22
  121. package/src/molecules/ServerModulesList/ServerModulesList.js +0 -75
  122. package/src/molecules/ServerModulesList/styles.scss +0 -28
  123. package/src/molecules/TargetSelector/TargetSelector.js +0 -34
  124. package/src/molecules/TargetSelector/TargetSelector.test.js +0 -0
  125. package/src/molecules/TargetSelector/styles.scss +0 -0
  126. package/src/molecules/TestCaption/TestCaption.js +0 -26
  127. package/src/molecules/TestCaption/TestCaption.test.js +0 -0
  128. package/src/molecules/TestCaption/styles.scss +0 -40
  129. package/src/molecules/TestSummary/index.js +0 -212
  130. package/src/molecules/TestSummary/styles.scss +0 -83
  131. package/src/molecules/TextWith2Links/TextWith2Links.js +0 -10
  132. package/src/molecules/TextWith2Links/styles.scss +0 -0
  133. package/src/molecules/ValidationInput/ValidationInput.js +0 -64
  134. package/src/molecules/ValidationInput/ValidationInput.test.js +0 -0
  135. package/src/molecules/ValidationInput/ValidationMessages.js +0 -178
  136. package/src/molecules/ValidationInput/ValidationOptions.js +0 -113
  137. package/src/molecules/ValidationInput/styles.scss +0 -74
  138. package/src/molecules/ValidationInput/validator.js +0 -244
  139. package/src/organisms/Documentation/Documentation.js +0 -128
  140. package/src/organisms/Documentation/Documentation.test.js +0 -0
  141. package/src/organisms/Documentation/styles.scss +0 -22
  142. package/src/organisms/MultiTestSection/MultiTestSection.js +0 -85
  143. package/src/organisms/MultiTestSection/MultiTestSection.test.js +0 -0
  144. package/src/organisms/MultiTestSection/styles.scss +0 -22
  145. package/src/organisms/SavedTests/SavedTests.js +0 -209
  146. package/src/organisms/SavedTests/SavedTests.test.js +0 -0
  147. package/src/organisms/SavedTests/styles.scss +0 -76
  148. package/src/organisms/SavedTests/transformTests.js +0 -51
  149. package/src/organisms/ScratchPad/ScratchPad.js +0 -128
  150. package/src/organisms/ScratchPad/ScratchPad.test.js +0 -0
  151. package/src/organisms/ScratchPad/styles.scss +0 -100
  152. package/src/organisms/SystemNavigator/SystemNavigator.js +0 -148
  153. package/src/organisms/SystemNavigator/SystemNavigator.test.js +0 -24
  154. package/src/organisms/SystemNavigator/styles.scss +0 -38
  155. package/src/organisms/TestContainer/TestContainer.js +0 -72
  156. package/src/organisms/TestContainer/TestContainer.test.js +0 -0
  157. package/src/organisms/TestContainer/styles.scss +0 -20
  158. package/src/organisms/TestPanel/AfterTest/AfterTest.js +0 -16
  159. package/src/organisms/TestPanel/AfterTest/AfterTest.test.js +0 -0
  160. package/src/organisms/TestPanel/AfterTest/styles.scss +0 -0
  161. package/src/organisms/TestPanel/BeforeTest/BeforeTest.js +0 -16
  162. package/src/organisms/TestPanel/BeforeTest/BeforeTest.test.js +0 -0
  163. package/src/organisms/TestPanel/BeforeTest/styles.scss +0 -0
  164. package/src/organisms/TestPanel/Evaluations.js +0 -369
  165. package/src/organisms/TestPanel/EventsTest/EventsTest.js +0 -19
  166. package/src/organisms/TestPanel/EventsTest/styles.scss +0 -0
  167. package/src/organisms/TestPanel/MainTest/MainTest.js +0 -20
  168. package/src/organisms/TestPanel/MainTest/MainTest.test.js +0 -0
  169. package/src/organisms/TestPanel/MainTest/styles.scss +0 -143
  170. package/src/organisms/TestPanel/TestPanel.js +0 -170
  171. package/src/organisms/TestPanel/TestPanel.test.js +0 -0
  172. package/src/organisms/TestPanel/components/Argument.class.js +0 -94
  173. package/src/organisms/TestPanel/components/FullTestController.js +0 -78
  174. package/src/organisms/TestPanel/components/Test.class.js +0 -162
  175. package/src/organisms/TestPanel/components/TestController.class.js +0 -135
  176. package/src/organisms/TestPanel/components/test-helpers.js +0 -109
  177. package/src/organisms/TestPanel/styles.scss +0 -45
  178. package/src/pages/SystemView/SystemView.js +0 -68
  179. package/src/pages/SystemView/styles.scss +0 -81
  180. package/src/reportWebVitals.js +0 -13
  181. package/src/sass/bootstrap/_alert.scss +0 -51
  182. package/src/sass/bootstrap/_badge.scss +0 -47
  183. package/src/sass/bootstrap/_breadcrumb.scss +0 -38
  184. package/src/sass/bootstrap/_button-group.scss +0 -166
  185. package/src/sass/bootstrap/_buttons.scss +0 -143
  186. package/src/sass/bootstrap/_card.scss +0 -270
  187. package/src/sass/bootstrap/_carousel.scss +0 -191
  188. package/src/sass/bootstrap/_close.scss +0 -34
  189. package/src/sass/bootstrap/_code.scss +0 -56
  190. package/src/sass/bootstrap/_custom-forms.scss +0 -297
  191. package/src/sass/bootstrap/_dropdown.scss +0 -131
  192. package/src/sass/bootstrap/_forms.scss +0 -333
  193. package/src/sass/bootstrap/_functions.scss +0 -86
  194. package/src/sass/bootstrap/_grid.scss +0 -52
  195. package/src/sass/bootstrap/_images.scss +0 -42
  196. package/src/sass/bootstrap/_input-group.scss +0 -159
  197. package/src/sass/bootstrap/_jumbotron.scss +0 -16
  198. package/src/sass/bootstrap/_list-group.scss +0 -115
  199. package/src/sass/bootstrap/_media.scss +0 -8
  200. package/src/sass/bootstrap/_mixins.scss +0 -42
  201. package/src/sass/bootstrap/_modal.scss +0 -168
  202. package/src/sass/bootstrap/_nav.scss +0 -118
  203. package/src/sass/bootstrap/_navbar.scss +0 -311
  204. package/src/sass/bootstrap/_pagination.scss +0 -77
  205. package/src/sass/bootstrap/_popover.scss +0 -183
  206. package/src/sass/bootstrap/_print.scss +0 -124
  207. package/src/sass/bootstrap/_progress.scss +0 -33
  208. package/src/sass/bootstrap/_reboot.scss +0 -482
  209. package/src/sass/bootstrap/_root.scss +0 -19
  210. package/src/sass/bootstrap/_tables.scss +0 -180
  211. package/src/sass/bootstrap/_tooltip.scss +0 -115
  212. package/src/sass/bootstrap/_transitions.scss +0 -36
  213. package/src/sass/bootstrap/_type.scss +0 -125
  214. package/src/sass/bootstrap/_utilities.scss +0 -14
  215. package/src/sass/bootstrap/_variables.scss +0 -894
  216. package/src/sass/bootstrap/bootstrap-grid.scss +0 -32
  217. package/src/sass/bootstrap/bootstrap-reboot.scss +0 -12
  218. package/src/sass/bootstrap/bootstrap.scss +0 -42
  219. package/src/sass/bootstrap/mixins/_alert.scss +0 -13
  220. package/src/sass/bootstrap/mixins/_background-variant.scss +0 -21
  221. package/src/sass/bootstrap/mixins/_badge.scss +0 -12
  222. package/src/sass/bootstrap/mixins/_border-radius.scss +0 -35
  223. package/src/sass/bootstrap/mixins/_box-shadow.scss +0 -5
  224. package/src/sass/bootstrap/mixins/_breakpoints.scss +0 -123
  225. package/src/sass/bootstrap/mixins/_buttons.scss +0 -109
  226. package/src/sass/bootstrap/mixins/_caret.scss +0 -65
  227. package/src/sass/bootstrap/mixins/_clearfix.scss +0 -7
  228. package/src/sass/bootstrap/mixins/_float.scss +0 -11
  229. package/src/sass/bootstrap/mixins/_forms.scss +0 -137
  230. package/src/sass/bootstrap/mixins/_gradients.scss +0 -45
  231. package/src/sass/bootstrap/mixins/_grid-framework.scss +0 -67
  232. package/src/sass/bootstrap/mixins/_grid.scss +0 -52
  233. package/src/sass/bootstrap/mixins/_hover.scss +0 -39
  234. package/src/sass/bootstrap/mixins/_image.scss +0 -36
  235. package/src/sass/bootstrap/mixins/_list-group.scss +0 -21
  236. package/src/sass/bootstrap/mixins/_lists.scss +0 -7
  237. package/src/sass/bootstrap/mixins/_nav-divider.scss +0 -10
  238. package/src/sass/bootstrap/mixins/_navbar-align.scss +0 -10
  239. package/src/sass/bootstrap/mixins/_pagination.scss +0 -22
  240. package/src/sass/bootstrap/mixins/_reset-text.scss +0 -17
  241. package/src/sass/bootstrap/mixins/_resize.scss +0 -6
  242. package/src/sass/bootstrap/mixins/_screen-reader.scss +0 -35
  243. package/src/sass/bootstrap/mixins/_size.scss +0 -6
  244. package/src/sass/bootstrap/mixins/_table-row.scss +0 -30
  245. package/src/sass/bootstrap/mixins/_text-emphasis.scss +0 -14
  246. package/src/sass/bootstrap/mixins/_text-hide.scss +0 -9
  247. package/src/sass/bootstrap/mixins/_text-truncate.scss +0 -8
  248. package/src/sass/bootstrap/mixins/_transition.scss +0 -9
  249. package/src/sass/bootstrap/mixins/_visibility.scss +0 -7
  250. package/src/sass/bootstrap/utilities/_align.scss +0 -8
  251. package/src/sass/bootstrap/utilities/_background.scss +0 -19
  252. package/src/sass/bootstrap/utilities/_borders.scss +0 -59
  253. package/src/sass/bootstrap/utilities/_clearfix.scss +0 -3
  254. package/src/sass/bootstrap/utilities/_display.scss +0 -38
  255. package/src/sass/bootstrap/utilities/_embed.scss +0 -52
  256. package/src/sass/bootstrap/utilities/_flex.scss +0 -46
  257. package/src/sass/bootstrap/utilities/_float.scss +0 -9
  258. package/src/sass/bootstrap/utilities/_position.scss +0 -36
  259. package/src/sass/bootstrap/utilities/_screenreaders.scss +0 -11
  260. package/src/sass/bootstrap/utilities/_sizing.scss +0 -12
  261. package/src/sass/bootstrap/utilities/_spacing.scss +0 -51
  262. package/src/sass/bootstrap/utilities/_text.scss +0 -52
  263. package/src/sass/bootstrap/utilities/_visibility.scss +0 -11
  264. package/src/setupTests.js +0 -5
  265. /package/{src/assets/fonts/FontsFree-Net-SFMono-Regular.ttf → build/static/media/FontsFree-Net-SFMono-Regular.9647425e.ttf} +0 -0
  266. /package/{src/assets/fonts/Malkor-Regular.ttf → build/static/media/Malkor-Regular.f55d6a82.ttf} +0 -0
  267. /package/{src/assets/check.svg → build/static/media/check.c17549c7.svg} +0 -0
  268. /package/{src/assets/error.svg → build/static/media/error.1d9e99c1.svg} +0 -0
  269. /package/{src/assets/eval-icon.svg → build/static/media/eval-icon.c95744a8.svg} +0 -0
  270. /package/{src/assets/loading.gif → build/static/media/loading.10ca842f.gif} +0 -0
  271. /package/{src/assets/test-icon.svg → build/static/media/test-icon.2b1ada73.svg} +0 -0
  272. /package/{src/assets/x.svg → build/static/media/x.f680188c.svg} +0 -0
@@ -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;