1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- 'use strict';
- function filledArray(l, n) {
- return Array.from({
- length: l
- }, (_, i) => n);
- }
- class TestsEditor extends React.Component {
- constructor(props) {
- super(props);
- this.state = {
- 'inputs': props.inputs,
- 'outputs': props.outputs,
- 'tests': props.tests,
- 'onUnmount': props.onUnmount
- };
- }
- componentWillUnmount() {
- this.state.onUnmount(this.state.tests);
- }
- render() {
- const inputs = this.state.inputs;
- const outputs = this.state.outputs;
- const tests = this.state.tests;
- if (inputs.length == 0 || outputs.length == 0) return /*#__PURE__*/React.createElement("div", {
- className: "testsEditor"
- }, /*#__PURE__*/React.createElement("div", {
- className: "noInputsOutputsMessage"
- }, "There should be inputs and outputs to add tests"));
- return /*#__PURE__*/React.createElement("div", {
- className: "testsEditor"
- }, /*#__PURE__*/React.createElement("div", {
- className: "tables"
- }, /*#__PURE__*/React.createElement("div", {
- className: "testsTableWrapper inputs"
- }, /*#__PURE__*/React.createElement("table", {
- className: "testsTable inputs"
- }, /*#__PURE__*/React.createElement("tbody", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null), inputs.map((name, i) => /*#__PURE__*/React.createElement("td", {
- key: i
- }, name))), tests.map((t, test_i) => /*#__PURE__*/React.createElement("tr", {
- key: test_i
- }, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
- className: "removeRowButton animated unselectable",
- onClick: e => {
- const tests_length = this.state.tests.length;
- this.setState(state => {
- if (state.tests.length != tests_length) return state;
- state.tests.splice(test_i, 1);
- return state;
- });
- }
- }, "-")), t.slice(0, inputs.length).map((v, input_i) => /*#__PURE__*/React.createElement("td", {
- key: input_i,
- className: 'checkbox ' + (tests[test_i][input_i] ? 'checked' : 'unchecked'),
- onClick: e => {
- this.setState(state => {
- state.tests[test_i][input_i] = state.tests[test_i][input_i] ? 0 : 1;
- return state;
- });
- }
- }))))))), /*#__PURE__*/React.createElement("div", {
- className: "testsTableWrapper outputs"
- }, /*#__PURE__*/React.createElement("table", {
- className: "testsTable outputs"
- }, /*#__PURE__*/React.createElement("tbody", null, /*#__PURE__*/React.createElement("tr", null, outputs.map((name, i) => /*#__PURE__*/React.createElement("td", {
- key: i
- }, name))), tests.map((t, test_i) => /*#__PURE__*/React.createElement("tr", {
- key: test_i
- }, t.slice(inputs.length, t.length).map((v, output_i) => /*#__PURE__*/React.createElement("td", {
- key: output_i,
- className: 'checkbox ' + (tests[test_i][inputs.length + output_i] ? 'checked' : 'unchecked'),
- onClick: e => {
- this.setState(state => {
- state.tests[test_i][inputs.length + output_i] = state.tests[test_i][inputs.length + output_i] ? 0 : 1;
- return state;
- });
- }
- })))))))), /*#__PURE__*/React.createElement("div", {
- className: "addRowButton animated unselectable",
- onClick: e => {
- const tests_length = this.state.tests.length;
- this.setState(state => {
- if (state.tests.length != tests_length) return state;
- const test_length = state.inputs.length + state.outputs.length;
- state.tests.push(filledArray(test_length, 0));
- return state;
- });
- }
- }, "+"));
- }
- }
|