@codecademy/codebytes 1.0.27-alpha.c1690bd7a4.0 → 1.0.27-alpha.d4ee00f528.0
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.
- package/dist/MonacoEditor/colorsDark.js +3 -3
- package/dist/MonacoEditor/index.js +8 -8
- package/dist/MonacoEditor/theme.js +4 -6
- package/dist/api.js +11 -32
- package/dist/codeByteEditor.js +17 -20
- package/dist/consts.js +19 -21
- package/dist/drawers.js +15 -23
- package/dist/editor.js +42 -73
- package/dist/helpers/index.js +5 -8
- package/dist/helpers/useEverInView.js +11 -11
- package/dist/helpers/useEverInView.test.js +34 -49
- package/dist/helpers/useIntersection.js +7 -7
- package/dist/helpers/useIntersection.test.js +57 -88
- package/dist/languageSelection.js +3 -5
- package/dist/libs/eventTracking.js +3 -3
- package/package.json +3 -3
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// Monaco as a shared package RFC https://www.notion.so/codecademy/Monaco-editor-as-a-shared-package-1f4484db165b4abc8394c3556451ef6a
|
|
5
5
|
|
|
6
6
|
import { colors, editorColors } from '@codecademy/gamut-styles';
|
|
7
|
-
|
|
7
|
+
const darkTheme = {
|
|
8
8
|
blue: editorColors.blue,
|
|
9
9
|
deepPurple: editorColors.deepPurple,
|
|
10
10
|
gray: editorColors.gray,
|
|
@@ -15,7 +15,7 @@ var darkTheme = {
|
|
|
15
15
|
white: colors.white,
|
|
16
16
|
yellow: editorColors.yellow
|
|
17
17
|
};
|
|
18
|
-
export
|
|
18
|
+
export const syntax = {
|
|
19
19
|
attribute: darkTheme.green,
|
|
20
20
|
annotation: darkTheme.red,
|
|
21
21
|
atom: darkTheme.deepPurple,
|
|
@@ -37,7 +37,7 @@ export var syntax = {
|
|
|
37
37
|
value: darkTheme.yellow,
|
|
38
38
|
variable: darkTheme.green
|
|
39
39
|
};
|
|
40
|
-
export
|
|
40
|
+
export const ui = {
|
|
41
41
|
background: '#211E2F',
|
|
42
42
|
text: darkTheme.white,
|
|
43
43
|
indent: {
|
|
@@ -10,25 +10,25 @@ import { dark } from './theme';
|
|
|
10
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
11
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
12
12
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
-
export
|
|
14
|
-
|
|
13
|
+
export const SimpleMonacoEditor = _ref => {
|
|
14
|
+
let value = _ref.value,
|
|
15
15
|
language = _ref.language,
|
|
16
16
|
onChange = _ref.onChange;
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
const editorRef = useRef(null);
|
|
18
|
+
const editorWillMount = useCallback((editor, monaco) => {
|
|
19
19
|
editorRef.current = editor;
|
|
20
20
|
monaco.editor.defineTheme('dark', dark);
|
|
21
21
|
monaco.editor.setTheme('dark');
|
|
22
22
|
}, []);
|
|
23
23
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
24
24
|
children: [/*#__PURE__*/_jsx(ResizeObserver, {
|
|
25
|
-
onResize:
|
|
25
|
+
onResize: _ref2 => {
|
|
26
26
|
var _editorRef$current;
|
|
27
|
-
|
|
27
|
+
let height = _ref2.height,
|
|
28
28
|
width = _ref2.width;
|
|
29
29
|
(_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.layout({
|
|
30
|
-
height
|
|
31
|
-
width
|
|
30
|
+
height,
|
|
31
|
+
width
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
}), /*#__PURE__*/_jsx(ReactMonacoEditor, {
|
|
@@ -4,11 +4,9 @@
|
|
|
4
4
|
// Monaco as a shared package RFC https://www.notion.so/codecademy/Monaco-editor-as-a-shared-package-1f4484db165b4abc8394c3556451ef6a
|
|
5
5
|
|
|
6
6
|
import * as darkColors from './colorsDark';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var theme = function theme(_ref) {
|
|
11
|
-
var ui = _ref.ui,
|
|
7
|
+
const c = color => color.slice(1, color.length);
|
|
8
|
+
const theme = _ref => {
|
|
9
|
+
let ui = _ref.ui,
|
|
12
10
|
syntax = _ref.syntax;
|
|
13
11
|
return {
|
|
14
12
|
base: 'vs-dark',
|
|
@@ -119,4 +117,4 @@ var theme = function theme(_ref) {
|
|
|
119
117
|
}
|
|
120
118
|
};
|
|
121
119
|
};
|
|
122
|
-
export
|
|
120
|
+
export const dark = theme(darkColors);
|
package/dist/api.js
CHANGED
|
@@ -1,32 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
_context.next = 3;
|
|
13
|
-
return fetch(snippetsEndpoint, {
|
|
14
|
-
method: 'POST',
|
|
15
|
-
body: JSON.stringify(data),
|
|
16
|
-
headers: {
|
|
17
|
-
'x-codecademy-user-id': 'codebytes-anon-user'
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
case 3:
|
|
21
|
-
response = _context.sent;
|
|
22
|
-
return _context.abrupt("return", response.json());
|
|
23
|
-
case 5:
|
|
24
|
-
case "end":
|
|
25
|
-
return _context.stop();
|
|
26
|
-
}
|
|
27
|
-
}, _callee);
|
|
28
|
-
}));
|
|
29
|
-
return function postSnippet(_x, _x2) {
|
|
30
|
-
return _ref.apply(this, arguments);
|
|
31
|
-
};
|
|
32
|
-
}();
|
|
1
|
+
export const postSnippet = async (data, snippetsBaseUrl) => {
|
|
2
|
+
const snippetsEndpoint = "https://".concat(snippetsBaseUrl, "/snippets");
|
|
3
|
+
const response = await fetch(snippetsEndpoint, {
|
|
4
|
+
method: 'POST',
|
|
5
|
+
body: JSON.stringify(data),
|
|
6
|
+
headers: {
|
|
7
|
+
'x-codecademy-user-id': 'codebytes-anon-user'
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
return response.json();
|
|
11
|
+
};
|
package/dist/codeByteEditor.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
1
|
import _styled from "@emotion/styled/base";
|
|
3
|
-
|
|
2
|
+
const _excluded = ["text", "language", "hideCopyButton", "snippetsBaseUrl", "onEdit", "onLanguageChange", "copyFormatter", "trackingData", "trackFirstEdit"];
|
|
4
3
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
4
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
5
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
7
|
-
function _toPropertyKey(
|
|
8
|
-
function _toPrimitive(
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
7
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
9
8
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
10
9
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
11
10
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
@@ -26,19 +25,19 @@ import { LanguageSelection } from './languageSelection';
|
|
|
26
25
|
import { trackUserImpression } from './libs/eventTracking';
|
|
27
26
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
28
27
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
29
|
-
|
|
28
|
+
const editorBaseStyles = system.css({
|
|
30
29
|
border: 1,
|
|
31
30
|
borderColor: 'gray-900',
|
|
32
31
|
display: 'flex',
|
|
33
32
|
flexDirection: 'column',
|
|
34
33
|
minHeight: '25rem'
|
|
35
34
|
});
|
|
36
|
-
|
|
35
|
+
const EditorContainer = /*#__PURE__*/_styled(Background, {
|
|
37
36
|
target: "e1epka4g0",
|
|
38
37
|
label: "EditorContainer"
|
|
39
38
|
})(editorBaseStyles, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2RlQnl0ZUVkaXRvci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0JFIiwiZmlsZSI6Ii4uL3NyYy9jb2RlQnl0ZUVkaXRvci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb3gsIEljb25CdXR0b24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgeyBGYXZpY29uSWNvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCB7IEJhY2tncm91bmQsIHN5c3RlbSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyBTdHlsZVByb3BzIH0gZnJvbSAnQGNvZGVjYWRlbXkvdmFyaWFuY2UnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IGhlbGxvV29ybGQsIExhbmd1YWdlT3B0aW9uIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnLi9lZGl0b3InO1xuaW1wb3J0IHsgdHJhY2tDbGljayB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyB1c2VFdmVySW5WaWV3IH0gZnJvbSAnLi9oZWxwZXJzL3VzZUV2ZXJJblZpZXcnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3Rpb24gfSBmcm9tICcuL2xhbmd1YWdlU2VsZWN0aW9uJztcbmltcG9ydCB7IHRyYWNrVXNlckltcHJlc3Npb24gfSBmcm9tICcuL2xpYnMvZXZlbnRUcmFja2luZyc7XG5pbXBvcnQgeyBDb2RlQnl0ZUVkaXRvclByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IGVkaXRvckJhc2VTdHlsZXMgPSBzeXN0ZW0uY3NzKHtcbiAgYm9yZGVyOiAxLFxuICBib3JkZXJDb2xvcjogJ2dyYXktOTAwJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgbWluSGVpZ2h0OiAnMjVyZW0nLFxufSk7XG5cbmNvbnN0IEVkaXRvckNvbnRhaW5lciA9XG4gIHN0eWxlZChCYWNrZ3JvdW5kKTxTdHlsZVByb3BzPHR5cGVvZiBlZGl0b3JCYXNlU3R5bGVzPj4oZWRpdG9yQmFzZVN0eWxlcyk7XG5cbmV4cG9ydCBjb25zdCBDb2RlQnl0ZUVkaXRvcjogUmVhY3QuRkM8Q29kZUJ5dGVFZGl0b3JQcm9wcz4gPSAoe1xuICB0ZXh0OiBpbml0aWFsVGV4dCxcbiAgbGFuZ3VhZ2U6IGluaXRpYWxMYW5ndWFnZSxcbiAgaGlkZUNvcHlCdXR0b24gPSBmYWxzZSxcbiAgc25pcHBldHNCYXNlVXJsLFxuICBvbkVkaXQsXG4gIG9uTGFuZ3VhZ2VDaGFuZ2UsXG4gIGNvcHlGb3JtYXR0ZXIsXG4gIHRyYWNraW5nRGF0YSxcbiAgdHJhY2tGaXJzdEVkaXQgPSBmYWxzZSxcbiAgLi4ucmVzdFxufSkgPT4ge1xuICBjb25zdCB7IGV2ZXJJblZpZXcsIHJlZiB9ID0gdXNlRXZlckluVmlldygpO1xuXG4gIGNvbnN0IGdldEluaXRpYWxUZXh0ID0gKCkgPT4ge1xuICAgIGlmIChpbml0aWFsVGV4dCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gaW5pdGlhbFRleHQ7XG4gICAgcmV0dXJuIGluaXRpYWxMYW5ndWFnZSA/IGhlbGxvV29ybGRbaW5pdGlhbExhbmd1YWdlXSA6ICcnO1xuICB9O1xuXG4gIGNvbnN0IFt0ZXh0LCBzZXRUZXh0XSA9IHVzZVN0YXRlPHN0cmluZz4oZ2V0SW5pdGlhbFRleHQoKSk7XG4gIGNvbnN0IFtsYW5ndWFnZSwgc2V0TGFuZ3VhZ2VdID0gdXNlU3RhdGU8TGFuZ3VhZ2VPcHRpb24+KFxuICAgIGluaXRpYWxMYW5ndWFnZSA/PyAnJ1xuICApO1xuICBjb25zdCBbaGFzQmVlbkVkaXRlZCwgc2V0SGFzQmVlbkVkaXRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZXZlckluVmlldykge1xuICAgICAgdHJhY2tVc2VySW1wcmVzc2lvbih7XG4gICAgICAgIHBhZ2VfbmFtZTogdHJhY2tpbmdEYXRhPy5wYWdlX25hbWUgPz8gJ1Vua25vd24nLFxuICAgICAgICBjb250ZXh0OiB0cmFja2luZ0RhdGE/LmNvbnRleHQgPz8gZG9jdW1lbnQucmVmZXJyZXIsXG4gICAgICAgIHRhcmdldDogJ2NvZGVieXRlJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2V2ZXJJblZpZXcsIHRyYWNraW5nRGF0YV0pO1xuXG4gIHJldHVybiAoXG4gICAgPEVkaXRvckNvbnRhaW5lclxuICAgICAgYmc9XCJibGFja1wiXG4gICAgICBtYXhXaWR0aD1cIjQzcmVtXCJcbiAgICAgIHsuLi5yZXN0fVxuICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgcmVmPXtyZWZ9XG4gICAgPlxuICAgICAgPEJveCBib3JkZXJCb3R0b209ezF9IGJvcmRlckNvbG9yPVwiZ3JheS05MDBcIiBweT17NH0gcGw9ezh9PlxuICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgIGljb249e0Zhdmljb25JY29ufVxuICAgICAgICAgIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5jb2RlY2FkZW15LmNvbS9cIlxuICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgcmVsPVwibm9yZWZlcnJlclwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cInZpc2l0IGNvZGVjYWRlbXkuY29tXCJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0cmFja0NsaWNrKCdsb2dvJywgdHJhY2tpbmdEYXRhKX1cbiAgICAgICAgLz5cbiAgICAgIDwvQm94PlxuICAgICAge2xhbmd1YWdlID8gKFxuICAgICAgICA8RWRpdG9yXG4gICAgICAgICAgbGFuZ3VhZ2U9e2xhbmd1YWdlfVxuICAgICAgICAgIHRleHQ9e3RleHR9XG4gICAgICAgICAgaGlkZUNvcHlCdXR0b249e2hpZGVDb3B5QnV0dG9ufVxuICAgICAgICAgIG9uQ2hhbmdlPXsobmV3VGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBzZXRUZXh0KG5ld1RleHQpO1xuICAgICAgICAgICAgb25FZGl0Py4obmV3VGV4dCwgbGFuZ3VhZ2UpO1xuICAgICAgICAgICAgaWYgKHRyYWNrRmlyc3RFZGl0ICYmIGhhc0JlZW5FZGl0ZWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIHNldEhhc0JlZW5FZGl0ZWQodHJ1ZSk7XG4gICAgICAgICAgICAgIHRyYWNrQ2xpY2soJ2VkaXQnLCB0cmFja2luZ0RhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgc25pcHBldHNCYXNlVXJsPXtzbmlwcGV0c0Jhc2VVcmx9XG4gICAgICAgICAgY29weUZvcm1hdHRlcj17Y29weUZvcm1hdHRlcn1cbiAgICAgICAgICB0cmFja2luZ0RhdGE9e3RyYWNraW5nRGF0YX1cbiAgICAgICAgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxMYW5ndWFnZVNlbGVjdGlvblxuICAgICAgICAgIG9uQ2hhbmdlPXsobmV3TGFuZ3VhZ2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1RleHQ6IHN0cmluZyA9XG4gICAgICAgICAgICAgIHRleHQgfHwgKG5ld0xhbmd1YWdlID8gaGVsbG9Xb3JsZFtuZXdMYW5ndWFnZV0gOiAnJyk7XG4gICAgICAgICAgICBzZXRMYW5ndWFnZShuZXdMYW5ndWFnZSk7XG4gICAgICAgICAgICBzZXRUZXh0KG5ld1RleHQpO1xuICAgICAgICAgICAgdHJhY2tDbGljaygnbGFuZ19zZWxlY3QnLCB0cmFja2luZ0RhdGEpO1xuICAgICAgICAgICAgb25MYW5ndWFnZUNoYW5nZT8uKG5ld1RleHQsIG5ld0xhbmd1YWdlKTtcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L0VkaXRvckNvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvZGVCeXRlRWRpdG9yO1xuIl19 */");
|
|
40
|
-
export
|
|
41
|
-
|
|
39
|
+
export const CodeByteEditor = _ref => {
|
|
40
|
+
let initialText = _ref.text,
|
|
42
41
|
initialLanguage = _ref.language,
|
|
43
42
|
_ref$hideCopyButton = _ref.hideCopyButton,
|
|
44
43
|
hideCopyButton = _ref$hideCopyButton === void 0 ? false : _ref$hideCopyButton,
|
|
@@ -50,26 +49,26 @@ export var CodeByteEditor = function CodeByteEditor(_ref) {
|
|
|
50
49
|
_ref$trackFirstEdit = _ref.trackFirstEdit,
|
|
51
50
|
trackFirstEdit = _ref$trackFirstEdit === void 0 ? false : _ref$trackFirstEdit,
|
|
52
51
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
53
|
-
|
|
52
|
+
const _useEverInView = useEverInView(),
|
|
54
53
|
everInView = _useEverInView.everInView,
|
|
55
54
|
ref = _useEverInView.ref;
|
|
56
|
-
|
|
55
|
+
const getInitialText = () => {
|
|
57
56
|
if (initialText !== undefined) return initialText;
|
|
58
57
|
return initialLanguage ? helloWorld[initialLanguage] : '';
|
|
59
58
|
};
|
|
60
|
-
|
|
59
|
+
const _useState = useState(getInitialText()),
|
|
61
60
|
_useState2 = _slicedToArray(_useState, 2),
|
|
62
61
|
text = _useState2[0],
|
|
63
62
|
setText = _useState2[1];
|
|
64
|
-
|
|
63
|
+
const _useState3 = useState(initialLanguage !== null && initialLanguage !== void 0 ? initialLanguage : ''),
|
|
65
64
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
66
65
|
language = _useState4[0],
|
|
67
66
|
setLanguage = _useState4[1];
|
|
68
|
-
|
|
67
|
+
const _useState5 = useState(false),
|
|
69
68
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
70
69
|
hasBeenEdited = _useState6[0],
|
|
71
70
|
setHasBeenEdited = _useState6[1];
|
|
72
|
-
useEffect(
|
|
71
|
+
useEffect(() => {
|
|
73
72
|
if (everInView) {
|
|
74
73
|
var _trackingData$page_na, _trackingData$context;
|
|
75
74
|
trackUserImpression({
|
|
@@ -97,15 +96,13 @@ export var CodeByteEditor = function CodeByteEditor(_ref) {
|
|
|
97
96
|
target: "_blank",
|
|
98
97
|
rel: "noreferrer",
|
|
99
98
|
"aria-label": "visit codecademy.com",
|
|
100
|
-
onClick:
|
|
101
|
-
return trackClick('logo', trackingData);
|
|
102
|
-
}
|
|
99
|
+
onClick: () => trackClick('logo', trackingData)
|
|
103
100
|
})
|
|
104
101
|
}), language ? /*#__PURE__*/_jsx(Editor, {
|
|
105
102
|
language: language,
|
|
106
103
|
text: text,
|
|
107
104
|
hideCopyButton: hideCopyButton,
|
|
108
|
-
onChange:
|
|
105
|
+
onChange: newText => {
|
|
109
106
|
setText(newText);
|
|
110
107
|
onEdit === null || onEdit === void 0 ? void 0 : onEdit(newText, language);
|
|
111
108
|
if (trackFirstEdit && hasBeenEdited === false) {
|
|
@@ -117,8 +114,8 @@ export var CodeByteEditor = function CodeByteEditor(_ref) {
|
|
|
117
114
|
copyFormatter: copyFormatter,
|
|
118
115
|
trackingData: trackingData
|
|
119
116
|
}) : /*#__PURE__*/_jsx(LanguageSelection, {
|
|
120
|
-
onChange:
|
|
121
|
-
|
|
117
|
+
onChange: newLanguage => {
|
|
118
|
+
const newText = text || (newLanguage ? helloWorld[newLanguage] : '');
|
|
122
119
|
setLanguage(newLanguage);
|
|
123
120
|
setText(newText);
|
|
124
121
|
trackClick('lang_select', trackingData);
|
package/dist/consts.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// key = language param to send to snippets service
|
|
2
2
|
// val = label in language selection drop down
|
|
3
|
-
export
|
|
3
|
+
export const LanguageOptions = {
|
|
4
4
|
'': 'Select a language',
|
|
5
5
|
cpp: 'C++',
|
|
6
6
|
csharp: 'C#',
|
|
@@ -11,24 +11,22 @@ export var LanguageOptions = {
|
|
|
11
11
|
ruby: 'Ruby',
|
|
12
12
|
scheme: 'Scheme'
|
|
13
13
|
};
|
|
14
|
-
export
|
|
15
|
-
return
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
ruby: ruby,
|
|
33
|
-
scheme: scheme
|
|
14
|
+
export const validLanguages = Object.keys(LanguageOptions).filter(option => !!option);
|
|
15
|
+
const cpp = "#include <iostream>\nint main() {\n std::cout << \"Hello world!\";\n return 0;\n}";
|
|
16
|
+
const csharp = "namespace HelloWorld {\n class Hello {\n static void Main(string[] args) {\n System.Console.WriteLine(\"Hello world!\");\n }\n }\n}";
|
|
17
|
+
const golang = "package main\nimport \"fmt\"\nfunc main() {\n fmt.Println(\"Hello world!\")\n}";
|
|
18
|
+
const javascript = "console.log('Hello world!');";
|
|
19
|
+
const php = "<?php\n echo \"Hello world!\";\n?>";
|
|
20
|
+
const python = "print('Hello world!')";
|
|
21
|
+
const ruby = 'puts "Hello world!"';
|
|
22
|
+
const scheme = "(begin\n (display \"Hello world!\")\n (newline))";
|
|
23
|
+
export const helloWorld = {
|
|
24
|
+
cpp,
|
|
25
|
+
csharp,
|
|
26
|
+
golang,
|
|
27
|
+
javascript,
|
|
28
|
+
php,
|
|
29
|
+
python,
|
|
30
|
+
ruby,
|
|
31
|
+
scheme
|
|
34
32
|
};
|
package/dist/drawers.js
CHANGED
|
@@ -12,7 +12,7 @@ import React, { useState } from 'react';
|
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
13
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
14
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
15
|
-
|
|
15
|
+
const DrawerLabel = /*#__PURE__*/_styled("span", {
|
|
16
16
|
target: "e1keub6a2",
|
|
17
17
|
label: "DrawerLabel"
|
|
18
18
|
})(process.env.NODE_ENV === "production" ? {
|
|
@@ -24,7 +24,7 @@ var DrawerLabel = /*#__PURE__*/_styled("span", {
|
|
|
24
24
|
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kcmF3ZXJzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRK0IiLCJmaWxlIjoiLi4vc3JjL2RyYXdlcnMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxleEJveCwgSWNvbkJ1dHRvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7XG4gIEFycm93Q2hldnJvbkxlZnRJY29uLFxuICBBcnJvd0NoZXZyb25SaWdodEljb24sXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgRHJhd2VyTGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZzogMC44NzVyZW0gMC41cmVtO1xuYDtcblxuY29uc3QgTGVmdERyYXdlckljb24gPSBzdHlsZWQoQXJyb3dDaGV2cm9uTGVmdEljb24pPHsgb3Blbj86IGJvb2xlYW4gfT5gXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UtaW4tb3V0O1xuYDtcbmNvbnN0IFJpZ2h0RHJhd2VySWNvbiA9IExlZnREcmF3ZXJJY29uLndpdGhDb21wb25lbnQoQXJyb3dDaGV2cm9uUmlnaHRJY29uKTtcblxuY29uc3QgRHJhd2VyID0gc3R5bGVkKEZsZXhCb3gpPHsgb3Blbj86IGJvb2xlYW47IGhpZGVPbkNsb3NlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAkeyh7IG9wZW4sIGhpZGVPbkNsb3NlIH0pID0+IGBcbiAgICBmbGV4LWJhc2lzOiAke29wZW4gPyAnMTAwJScgOiAnMCUnfTtcbiAgICB2aXNpYmlsaXR5OiAkeyFvcGVuICYmIGhpZGVPbkNsb3NlID8gJ2hpZGRlbicgOiAndmlzaWJsZSd9O1xuICAgIHRyYW5zaXRpb246IGZsZXgtYmFzaXMgMC4ycyAke1xuICAgICAgb3BlbiA/ICdlYXNlLW91dCcgOiAnZWFzZS1pbiwgdmlzaWJpbGl0eSAwcyAwLjJzJ1xuICAgIH07XG5cbiAgICAke0xlZnREcmF3ZXJJY29ufSwgJHtSaWdodERyYXdlckljb259IHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlWigke29wZW4gPyAnMCcgOiAnMTgwJ31kZWcpfTtcbiAgICB9XG4gIGB9XG5gO1xuXG5leHBvcnQgdHlwZSBEcmF3ZXJzUHJvcHMgPSB7XG4gIGxlZnRDaGlsZDogUmVhY3QuUmVhY3ROb2RlO1xuICByaWdodENoaWxkOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5leHBvcnQgY29uc3QgRHJhd2VyczogUmVhY3QuRkM8RHJhd2Vyc1Byb3BzPiA9ICh7IGxlZnRDaGlsZCwgcmlnaHRDaGlsZCB9KSA9PiB7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlPCdsZWZ0JyB8ICdyaWdodCcgfCAnYm90aCc+KCdib3RoJyk7XG5cbiAgbGV0IGFyaWFMYWJlbENvZGVCdXR0b24gPSAnaGlkZSBjb2RlJztcbiAgbGV0IGFyaWFMYWJlbE91dHB1dEJ1dHRvbiA9ICdoaWRlIG91dHB1dCc7XG4gIGxldCBpc0xlZnRPcGVuID0gZmFsc2U7XG4gIGxldCBpc1JpZ2h0T3BlbiA9IGZhbHNlO1xuXG4gIGlmIChvcGVuID09PSAnbGVmdCcpIHtcbiAgICBhcmlhTGFiZWxDb2RlQnV0dG9uID0gYXJpYUxhYmVsT3V0cHV0QnV0dG9uID0gJ3Nob3cgb3V0cHV0JztcbiAgICBpc0xlZnRPcGVuID0gdHJ1ZTtcbiAgfSBlbHNlIGlmIChvcGVuID09PSAncmlnaHQnKSB7XG4gICAgYXJpYUxhYmVsQ29kZUJ1dHRvbiA9IGFyaWFMYWJlbE91dHB1dEJ1dHRvbiA9ICdzaG93IGNvZGUnO1xuICAgIGlzUmlnaHRPcGVuID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxGbGV4Qm94PlxuICAgICAgICA8RHJhd2VyXG4gICAgICAgICAgb3Blbj17IWlzUmlnaHRPcGVufVxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGZsZXhXcmFwPVwibm93cmFwXCJcbiAgICAgICAgICB0ZXh0QWxpZ249XCJsZWZ0XCJcbiAgICAgICAgICBib3JkZXJSaWdodD17MX1cbiAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktOTAwXCJcbiAgICAgICAgICBweD17OH1cbiAgICAgICAgPlxuICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICBpY29uPXtMZWZ0RHJhd2VySWNvbn1cbiAgICAgICAgICAgIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgIHNldE9wZW4oKHN0YXRlKSA9PiAoc3RhdGUgPT09ICdib3RoJyA/ICdyaWdodCcgOiAnYm90aCcpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsQ29kZUJ1dHRvbn1cbiAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJjb2RlLWRyYXdlclwiXG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXshaXNSaWdodE9wZW59XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8RHJhd2VyTGFiZWwgaWQ9XCJjb2RlLWRyYXdlci1sYWJlbFwiPkNvZGU8L0RyYXdlckxhYmVsPlxuICAgICAgICA8L0RyYXdlcj5cbiAgICAgICAgPERyYXdlclxuICAgICAgICAgIG9wZW49eyFpc0xlZnRPcGVufVxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGZsZXhXcmFwPVwibm93cmFwXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImZsZXgtZW5kXCJcbiAgICAgICAgICBweD17OH1cbiAgICAgICAgPlxuICAgICAgICAgIDxEcmF3ZXJMYWJlbCBpZD1cIm91dHB1dC1kcmF3ZXItbGFiZWxcIj5PdXRwdXQ8L0RyYXdlckxhYmVsPlxuICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICBpY29uPXtSaWdodERyYXdlckljb259XG4gICAgICAgICAgICB2YXJpYW50PVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICBzZXRPcGVuKChzdGF0ZSkgPT4gKHN0YXRlID09PSAnYm90aCcgPyAnbGVmdCcgOiAnYm90aCcpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsT3V0cHV0QnV0dG9ufVxuICAgICAgICAgICAgYXJpYS1jb250cm9scz1cIm91dHB1dC1kcmF3ZXJcIlxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17IWlzTGVmdE9wZW59XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9EcmF3ZXI+XG4gICAgICA8L0ZsZXhCb3g+XG4gICAgICA8RmxleEJveFxuICAgICAgICBmbGV4R3Jvdz17MX1cbiAgICAgICAgYm9yZGVyWT17MX1cbiAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTkwMFwiXG4gICAgICAgIGFsaWduSXRlbXM9XCJzdHJldGNoXCJcbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICA8RHJhd2VyXG4gICAgICAgICAgaGlkZU9uQ2xvc2VcbiAgICAgICAgICBpZD1cImNvZGUtZHJhd2VyXCJcbiAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJjb2RlLWRyYXdlci1sYWJlbFwiXG4gICAgICAgICAgb3Blbj17IWlzUmlnaHRPcGVufVxuICAgICAgICAgIGZsZXhHcm93PXswfVxuICAgICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktOTAwXCJcbiAgICAgICAgICBib3JkZXJTdHlsZVJpZ2h0PVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoUmlnaHQ9XCJ0aGluXCJcbiAgICAgICAgPlxuICAgICAgICAgIHtsZWZ0Q2hpbGR9XG4gICAgICAgIDwvRHJhd2VyPlxuICAgICAgICA8RHJhd2VyXG4gICAgICAgICAgaGlkZU9uQ2xvc2VcbiAgICAgICAgICBpZD1cIm91dHB1dC1kcmF3ZXJcIlxuICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIm91dHB1dC1kcmF3ZXItbGFiZWxcIlxuICAgICAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgICAgIG9wZW49eyFpc0xlZnRPcGVufVxuICAgICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgICAgPlxuICAgICAgICAgIHtyaWdodENoaWxkfVxuICAgICAgICA8L0RyYXdlcj5cbiAgICAgIDwvRmxleEJveD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */",
|
|
25
25
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
26
26
|
});
|
|
27
|
-
|
|
27
|
+
const LeftDrawerIcon = /*#__PURE__*/_styled(ArrowChevronLeftIcon, {
|
|
28
28
|
target: "e1keub6a1",
|
|
29
29
|
label: "LeftDrawerIcon"
|
|
30
30
|
})(process.env.NODE_ENV === "production" ? {
|
|
@@ -36,29 +36,29 @@ var LeftDrawerIcon = /*#__PURE__*/_styled(ArrowChevronLeftIcon, {
|
|
|
36
36
|
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kcmF3ZXJzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZdUUiLCJmaWxlIjoiLi4vc3JjL2RyYXdlcnMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxleEJveCwgSWNvbkJ1dHRvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7XG4gIEFycm93Q2hldnJvbkxlZnRJY29uLFxuICBBcnJvd0NoZXZyb25SaWdodEljb24sXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgRHJhd2VyTGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZzogMC44NzVyZW0gMC41cmVtO1xuYDtcblxuY29uc3QgTGVmdERyYXdlckljb24gPSBzdHlsZWQoQXJyb3dDaGV2cm9uTGVmdEljb24pPHsgb3Blbj86IGJvb2xlYW4gfT5gXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UtaW4tb3V0O1xuYDtcbmNvbnN0IFJpZ2h0RHJhd2VySWNvbiA9IExlZnREcmF3ZXJJY29uLndpdGhDb21wb25lbnQoQXJyb3dDaGV2cm9uUmlnaHRJY29uKTtcblxuY29uc3QgRHJhd2VyID0gc3R5bGVkKEZsZXhCb3gpPHsgb3Blbj86IGJvb2xlYW47IGhpZGVPbkNsb3NlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAkeyh7IG9wZW4sIGhpZGVPbkNsb3NlIH0pID0+IGBcbiAgICBmbGV4LWJhc2lzOiAke29wZW4gPyAnMTAwJScgOiAnMCUnfTtcbiAgICB2aXNpYmlsaXR5OiAkeyFvcGVuICYmIGhpZGVPbkNsb3NlID8gJ2hpZGRlbicgOiAndmlzaWJsZSd9O1xuICAgIHRyYW5zaXRpb246IGZsZXgtYmFzaXMgMC4ycyAke1xuICAgICAgb3BlbiA/ICdlYXNlLW91dCcgOiAnZWFzZS1pbiwgdmlzaWJpbGl0eSAwcyAwLjJzJ1xuICAgIH07XG5cbiAgICAke0xlZnREcmF3ZXJJY29ufSwgJHtSaWdodERyYXdlckljb259IHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlWigke29wZW4gPyAnMCcgOiAnMTgwJ31kZWcpfTtcbiAgICB9XG4gIGB9XG5gO1xuXG5leHBvcnQgdHlwZSBEcmF3ZXJzUHJvcHMgPSB7XG4gIGxlZnRDaGlsZDogUmVhY3QuUmVhY3ROb2RlO1xuICByaWdodENoaWxkOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5leHBvcnQgY29uc3QgRHJhd2VyczogUmVhY3QuRkM8RHJhd2Vyc1Byb3BzPiA9ICh7IGxlZnRDaGlsZCwgcmlnaHRDaGlsZCB9KSA9PiB7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlPCdsZWZ0JyB8ICdyaWdodCcgfCAnYm90aCc+KCdib3RoJyk7XG5cbiAgbGV0IGFyaWFMYWJlbENvZGVCdXR0b24gPSAnaGlkZSBjb2RlJztcbiAgbGV0IGFyaWFMYWJlbE91dHB1dEJ1dHRvbiA9ICdoaWRlIG91dHB1dCc7XG4gIGxldCBpc0xlZnRPcGVuID0gZmFsc2U7XG4gIGxldCBpc1JpZ2h0T3BlbiA9IGZhbHNlO1xuXG4gIGlmIChvcGVuID09PSAnbGVmdCcpIHtcbiAgICBhcmlhTGFiZWxDb2RlQnV0dG9uID0gYXJpYUxhYmVsT3V0cHV0QnV0dG9uID0gJ3Nob3cgb3V0cHV0JztcbiAgICBpc0xlZnRPcGVuID0gdHJ1ZTtcbiAgfSBlbHNlIGlmIChvcGVuID09PSAncmlnaHQnKSB7XG4gICAgYXJpYUxhYmVsQ29kZUJ1dHRvbiA9IGFyaWFMYWJlbE91dHB1dEJ1dHRvbiA9ICdzaG93IGNvZGUnO1xuICAgIGlzUmlnaHRPcGVuID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxGbGV4Qm94PlxuICAgICAgICA8RHJhd2VyXG4gICAgICAgICAgb3Blbj17IWlzUmlnaHRPcGVufVxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGZsZXhXcmFwPVwibm93cmFwXCJcbiAgICAgICAgICB0ZXh0QWxpZ249XCJsZWZ0XCJcbiAgICAgICAgICBib3JkZXJSaWdodD17MX1cbiAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktOTAwXCJcbiAgICAgICAgICBweD17OH1cbiAgICAgICAgPlxuICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICBpY29uPXtMZWZ0RHJhd2VySWNvbn1cbiAgICAgICAgICAgIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgIHNldE9wZW4oKHN0YXRlKSA9PiAoc3RhdGUgPT09ICdib3RoJyA/ICdyaWdodCcgOiAnYm90aCcpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsQ29kZUJ1dHRvbn1cbiAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJjb2RlLWRyYXdlclwiXG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXshaXNSaWdodE9wZW59XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8RHJhd2VyTGFiZWwgaWQ9XCJjb2RlLWRyYXdlci1sYWJlbFwiPkNvZGU8L0RyYXdlckxhYmVsPlxuICAgICAgICA8L0RyYXdlcj5cbiAgICAgICAgPERyYXdlclxuICAgICAgICAgIG9wZW49eyFpc0xlZnRPcGVufVxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGZsZXhXcmFwPVwibm93cmFwXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImZsZXgtZW5kXCJcbiAgICAgICAgICBweD17OH1cbiAgICAgICAgPlxuICAgICAgICAgIDxEcmF3ZXJMYWJlbCBpZD1cIm91dHB1dC1kcmF3ZXItbGFiZWxcIj5PdXRwdXQ8L0RyYXdlckxhYmVsPlxuICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICBpY29uPXtSaWdodERyYXdlckljb259XG4gICAgICAgICAgICB2YXJpYW50PVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICBzZXRPcGVuKChzdGF0ZSkgPT4gKHN0YXRlID09PSAnYm90aCcgPyAnbGVmdCcgOiAnYm90aCcpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsT3V0cHV0QnV0dG9ufVxuICAgICAgICAgICAgYXJpYS1jb250cm9scz1cIm91dHB1dC1kcmF3ZXJcIlxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17IWlzTGVmdE9wZW59XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9EcmF3ZXI+XG4gICAgICA8L0ZsZXhCb3g+XG4gICAgICA8RmxleEJveFxuICAgICAgICBmbGV4R3Jvdz17MX1cbiAgICAgICAgYm9yZGVyWT17MX1cbiAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTkwMFwiXG4gICAgICAgIGFsaWduSXRlbXM9XCJzdHJldGNoXCJcbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICA8RHJhd2VyXG4gICAgICAgICAgaGlkZU9uQ2xvc2VcbiAgICAgICAgICBpZD1cImNvZGUtZHJhd2VyXCJcbiAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJjb2RlLWRyYXdlci1sYWJlbFwiXG4gICAgICAgICAgb3Blbj17IWlzUmlnaHRPcGVufVxuICAgICAgICAgIGZsZXhHcm93PXswfVxuICAgICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktOTAwXCJcbiAgICAgICAgICBib3JkZXJTdHlsZVJpZ2h0PVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoUmlnaHQ9XCJ0aGluXCJcbiAgICAgICAgPlxuICAgICAgICAgIHtsZWZ0Q2hpbGR9XG4gICAgICAgIDwvRHJhd2VyPlxuICAgICAgICA8RHJhd2VyXG4gICAgICAgICAgaGlkZU9uQ2xvc2VcbiAgICAgICAgICBpZD1cIm91dHB1dC1kcmF3ZXJcIlxuICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIm91dHB1dC1kcmF3ZXItbGFiZWxcIlxuICAgICAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgICAgIG9wZW49eyFpc0xlZnRPcGVufVxuICAgICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgICAgPlxuICAgICAgICAgIHtyaWdodENoaWxkfVxuICAgICAgICA8L0RyYXdlcj5cbiAgICAgIDwvRmxleEJveD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */",
|
|
37
37
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
38
38
|
});
|
|
39
|
-
|
|
39
|
+
const RightDrawerIcon = LeftDrawerIcon.withComponent(ArrowChevronRightIcon, {
|
|
40
40
|
target: "e1keub6a3",
|
|
41
41
|
label: "RightDrawerIcon"
|
|
42
42
|
});
|
|
43
|
-
|
|
43
|
+
const Drawer = /*#__PURE__*/_styled(FlexBox, {
|
|
44
44
|
target: "e1keub6a0",
|
|
45
45
|
label: "Drawer"
|
|
46
|
-
})("position:relative;",
|
|
47
|
-
|
|
46
|
+
})("position:relative;", _ref => {
|
|
47
|
+
let open = _ref.open,
|
|
48
48
|
hideOnClose = _ref.hideOnClose;
|
|
49
49
|
return "\n flex-basis: ".concat(open ? '100%' : '0%', ";\n visibility: ").concat(!open && hideOnClose ? 'hidden' : 'visible', ";\n transition: flex-basis 0.2s ").concat(open ? 'ease-out' : 'ease-in, visibility 0s 0.2s', ";\n\n ").concat(LeftDrawerIcon, ", ").concat(RightDrawerIcon, " {\n transform: rotateZ(").concat(open ? '0' : '180', "deg)};\n }\n ");
|
|
50
50
|
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kcmF3ZXJzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQnlFIiwiZmlsZSI6Ii4uL3NyYy9kcmF3ZXJzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsZXhCb3gsIEljb25CdXR0b24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQge1xuICBBcnJvd0NoZXZyb25MZWZ0SWNvbixcbiAgQXJyb3dDaGV2cm9uUmlnaHRJY29uLFxufSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IERyYXdlckxhYmVsID0gc3R5bGVkLnNwYW5gXG4gIHBhZGRpbmc6IDAuODc1cmVtIDAuNXJlbTtcbmA7XG5cbmNvbnN0IExlZnREcmF3ZXJJY29uID0gc3R5bGVkKEFycm93Q2hldnJvbkxlZnRJY29uKTx7IG9wZW4/OiBib29sZWFuIH0+YFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLWluLW91dDtcbmA7XG5jb25zdCBSaWdodERyYXdlckljb24gPSBMZWZ0RHJhd2VySWNvbi53aXRoQ29tcG9uZW50KEFycm93Q2hldnJvblJpZ2h0SWNvbik7XG5cbmNvbnN0IERyYXdlciA9IHN0eWxlZChGbGV4Qm94KTx7IG9wZW4/OiBib29sZWFuOyBoaWRlT25DbG9zZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgJHsoeyBvcGVuLCBoaWRlT25DbG9zZSB9KSA9PiBgXG4gICAgZmxleC1iYXNpczogJHtvcGVuID8gJzEwMCUnIDogJzAlJ307XG4gICAgdmlzaWJpbGl0eTogJHshb3BlbiAmJiBoaWRlT25DbG9zZSA/ICdoaWRkZW4nIDogJ3Zpc2libGUnfTtcbiAgICB0cmFuc2l0aW9uOiBmbGV4LWJhc2lzIDAuMnMgJHtcbiAgICAgIG9wZW4gPyAnZWFzZS1vdXQnIDogJ2Vhc2UtaW4sIHZpc2liaWxpdHkgMHMgMC4ycydcbiAgICB9O1xuXG4gICAgJHtMZWZ0RHJhd2VySWNvbn0sICR7UmlnaHREcmF3ZXJJY29ufSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZVooJHtvcGVuID8gJzAnIDogJzE4MCd9ZGVnKX07XG4gICAgfVxuICBgfVxuYDtcblxuZXhwb3J0IHR5cGUgRHJhd2Vyc1Byb3BzID0ge1xuICBsZWZ0Q2hpbGQ6IFJlYWN0LlJlYWN0Tm9kZTtcbiAgcmlnaHRDaGlsZDogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuZXhwb3J0IGNvbnN0IERyYXdlcnM6IFJlYWN0LkZDPERyYXdlcnNQcm9wcz4gPSAoeyBsZWZ0Q2hpbGQsIHJpZ2h0Q2hpbGQgfSkgPT4ge1xuICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZTwnbGVmdCcgfCAncmlnaHQnIHwgJ2JvdGgnPignYm90aCcpO1xuXG4gIGxldCBhcmlhTGFiZWxDb2RlQnV0dG9uID0gJ2hpZGUgY29kZSc7XG4gIGxldCBhcmlhTGFiZWxPdXRwdXRCdXR0b24gPSAnaGlkZSBvdXRwdXQnO1xuICBsZXQgaXNMZWZ0T3BlbiA9IGZhbHNlO1xuICBsZXQgaXNSaWdodE9wZW4gPSBmYWxzZTtcblxuICBpZiAob3BlbiA9PT0gJ2xlZnQnKSB7XG4gICAgYXJpYUxhYmVsQ29kZUJ1dHRvbiA9IGFyaWFMYWJlbE91dHB1dEJ1dHRvbiA9ICdzaG93IG91dHB1dCc7XG4gICAgaXNMZWZ0T3BlbiA9IHRydWU7XG4gIH0gZWxzZSBpZiAob3BlbiA9PT0gJ3JpZ2h0Jykge1xuICAgIGFyaWFMYWJlbENvZGVCdXR0b24gPSBhcmlhTGFiZWxPdXRwdXRCdXR0b24gPSAnc2hvdyBjb2RlJztcbiAgICBpc1JpZ2h0T3BlbiA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8RmxleEJveD5cbiAgICAgICAgPERyYXdlclxuICAgICAgICAgIG9wZW49eyFpc1JpZ2h0T3Blbn1cbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBmbGV4V3JhcD1cIm5vd3JhcFwiXG4gICAgICAgICAgdGV4dEFsaWduPVwibGVmdFwiXG4gICAgICAgICAgYm9yZGVyUmlnaHQ9ezF9XG4gICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTkwMFwiXG4gICAgICAgICAgcHg9ezh9XG4gICAgICAgID5cbiAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgaWNvbj17TGVmdERyYXdlckljb259XG4gICAgICAgICAgICB2YXJpYW50PVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICBzZXRPcGVuKChzdGF0ZSkgPT4gKHN0YXRlID09PSAnYm90aCcgPyAncmlnaHQnIDogJ2JvdGgnKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbENvZGVCdXR0b259XG4gICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwiY29kZS1kcmF3ZXJcIlxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17IWlzUmlnaHRPcGVufVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPERyYXdlckxhYmVsIGlkPVwiY29kZS1kcmF3ZXItbGFiZWxcIj5Db2RlPC9EcmF3ZXJMYWJlbD5cbiAgICAgICAgPC9EcmF3ZXI+XG4gICAgICAgIDxEcmF3ZXJcbiAgICAgICAgICBvcGVuPXshaXNMZWZ0T3Blbn1cbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBmbGV4V3JhcD1cIm5vd3JhcFwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJmbGV4LWVuZFwiXG4gICAgICAgICAgcHg9ezh9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJhd2VyTGFiZWwgaWQ9XCJvdXRwdXQtZHJhd2VyLWxhYmVsXCI+T3V0cHV0PC9EcmF3ZXJMYWJlbD5cbiAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgaWNvbj17UmlnaHREcmF3ZXJJY29ufVxuICAgICAgICAgICAgdmFyaWFudD1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgb25DbGljaz17KCkgPT5cbiAgICAgICAgICAgICAgc2V0T3Blbigoc3RhdGUpID0+IChzdGF0ZSA9PT0gJ2JvdGgnID8gJ2xlZnQnIDogJ2JvdGgnKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbE91dHB1dEJ1dHRvbn1cbiAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJvdXRwdXQtZHJhd2VyXCJcbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9eyFpc0xlZnRPcGVufVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvRHJhd2VyPlxuICAgICAgPC9GbGV4Qm94PlxuICAgICAgPEZsZXhCb3hcbiAgICAgICAgZmxleEdyb3c9ezF9XG4gICAgICAgIGJvcmRlclk9ezF9XG4gICAgICAgIGJvcmRlckNvbG9yPVwiZ3JheS05MDBcIlxuICAgICAgICBhbGlnbkl0ZW1zPVwic3RyZXRjaFwiXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAgPERyYXdlclxuICAgICAgICAgIGhpZGVPbkNsb3NlXG4gICAgICAgICAgaWQ9XCJjb2RlLWRyYXdlclwiXG4gICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiY29kZS1kcmF3ZXItbGFiZWxcIlxuICAgICAgICAgIG9wZW49eyFpc1JpZ2h0T3Blbn1cbiAgICAgICAgICBmbGV4R3Jvdz17MH1cbiAgICAgICAgICBvdmVyZmxvdz1cImhpZGRlblwiXG4gICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTkwMFwiXG4gICAgICAgICAgYm9yZGVyU3R5bGVSaWdodD1cInNvbGlkXCJcbiAgICAgICAgICBib3JkZXJXaWR0aFJpZ2h0PVwidGhpblwiXG4gICAgICAgID5cbiAgICAgICAgICB7bGVmdENoaWxkfVxuICAgICAgICA8L0RyYXdlcj5cbiAgICAgICAgPERyYXdlclxuICAgICAgICAgIGhpZGVPbkNsb3NlXG4gICAgICAgICAgaWQ9XCJvdXRwdXQtZHJhd2VyXCJcbiAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJvdXRwdXQtZHJhd2VyLWxhYmVsXCJcbiAgICAgICAgICByb2xlPVwicmVnaW9uXCJcbiAgICAgICAgICBvcGVuPXshaXNMZWZ0T3Blbn1cbiAgICAgICAgICBvdmVyZmxvdz1cImhpZGRlblwiXG4gICAgICAgID5cbiAgICAgICAgICB7cmlnaHRDaGlsZH1cbiAgICAgICAgPC9EcmF3ZXI+XG4gICAgICA8L0ZsZXhCb3g+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */"));
|
|
51
|
-
export
|
|
52
|
-
|
|
51
|
+
export const Drawers = _ref2 => {
|
|
52
|
+
let leftChild = _ref2.leftChild,
|
|
53
53
|
rightChild = _ref2.rightChild;
|
|
54
|
-
|
|
54
|
+
const _useState = useState('both'),
|
|
55
55
|
_useState2 = _slicedToArray(_useState, 2),
|
|
56
56
|
open = _useState2[0],
|
|
57
57
|
setOpen = _useState2[1];
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
58
|
+
let ariaLabelCodeButton = 'hide code';
|
|
59
|
+
let ariaLabelOutputButton = 'hide output';
|
|
60
|
+
let isLeftOpen = false;
|
|
61
|
+
let isRightOpen = false;
|
|
62
62
|
if (open === 'left') {
|
|
63
63
|
ariaLabelCodeButton = ariaLabelOutputButton = 'show output';
|
|
64
64
|
isLeftOpen = true;
|
|
@@ -80,11 +80,7 @@ export var Drawers = function Drawers(_ref2) {
|
|
|
80
80
|
icon: LeftDrawerIcon,
|
|
81
81
|
variant: "secondary",
|
|
82
82
|
size: "small",
|
|
83
|
-
onClick:
|
|
84
|
-
return setOpen(function (state) {
|
|
85
|
-
return state === 'both' ? 'right' : 'both';
|
|
86
|
-
});
|
|
87
|
-
},
|
|
83
|
+
onClick: () => setOpen(state => state === 'both' ? 'right' : 'both'),
|
|
88
84
|
"aria-label": ariaLabelCodeButton,
|
|
89
85
|
"aria-controls": "code-drawer",
|
|
90
86
|
"aria-expanded": !isRightOpen
|
|
@@ -105,11 +101,7 @@ export var Drawers = function Drawers(_ref2) {
|
|
|
105
101
|
icon: RightDrawerIcon,
|
|
106
102
|
variant: "secondary",
|
|
107
103
|
size: "small",
|
|
108
|
-
onClick:
|
|
109
|
-
return setOpen(function (state) {
|
|
110
|
-
return state === 'both' ? 'left' : 'both';
|
|
111
|
-
});
|
|
112
|
-
},
|
|
104
|
+
onClick: () => setOpen(state => state === 'both' ? 'left' : 'both'),
|
|
113
105
|
"aria-label": ariaLabelOutputButton,
|
|
114
106
|
"aria-controls": "output-drawer",
|
|
115
107
|
"aria-expanded": !isLeftOpen
|
package/dist/editor.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
1
|
import _styled from "@emotion/styled/base";
|
|
3
|
-
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
4
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
5
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
6
2
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
7
3
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
8
4
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
@@ -20,15 +16,15 @@ import { SimpleMonacoEditor } from './MonacoEditor';
|
|
|
20
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
21
17
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
22
18
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
23
|
-
|
|
19
|
+
const Output = /*#__PURE__*/_styled("pre", {
|
|
24
20
|
target: "e1lzxy8e1",
|
|
25
21
|
label: "Output"
|
|
26
|
-
})("width:100%;height:100%;margin:0;padding:0 1rem;font-family:Monaco;font-size:0.875rem;overflow:auto;",
|
|
27
|
-
|
|
22
|
+
})("width:100%;height:100%;margin:0;padding:0 1rem;font-family:Monaco;font-size:0.875rem;overflow:auto;", _ref => {
|
|
23
|
+
let hasError = _ref.hasError,
|
|
28
24
|
theme = _ref.theme;
|
|
29
25
|
return "\n color: ".concat(hasError ? theme.colors.orange : theme.colors.text, ";\n background-color: ").concat(theme.colors['navy-900'], ";\n");
|
|
30
26
|
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lZGl0b3IudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1CZ0QiLCJmaWxlIjoiLi4vc3JjL2VkaXRvci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBGaWxsQnV0dG9uLFxuICBGbGV4Qm94LFxuICBTcGlubmVyLFxuICBUZXh0QnV0dG9uLFxuICBUb29sVGlwLFxufSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgeyBDb3B5SWNvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCB7IFVzZXJDbGlja0RhdGEgfSBmcm9tICdAY29kZWNhZGVteS90cmFja2luZyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHBvc3RTbmlwcGV0IH0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHR5cGUgeyBMYW5ndWFnZU9wdGlvbiB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IERyYXdlcnMgfSBmcm9tICcuL2RyYXdlcnMnO1xuaW1wb3J0IHsgdHJhY2tDbGljayB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBTaW1wbGVNb25hY29FZGl0b3IgfSBmcm9tICcuL01vbmFjb0VkaXRvcic7XG5pbXBvcnQgeyBDb2RlYnl0ZXNDb3B5Rm9ybWF0dGVyIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IE91dHB1dCA9IHN0eWxlZC5wcmU8eyBoYXNFcnJvcjogYm9vbGVhbiB9PmBcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGZvbnQtZmFtaWx5OiBNb25hY287XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIG92ZXJmbG93OiBhdXRvO1xuICAkeyh7IGhhc0Vycm9yLCB0aGVtZSB9KSA9PiBgXG4gIGNvbG9yOiAke2hhc0Vycm9yID8gdGhlbWUuY29sb3JzLm9yYW5nZSA6IHRoZW1lLmNvbG9ycy50ZXh0fTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5jb2xvcnNbJ25hdnktOTAwJ119O1xuYH1cbmA7XG5cbmNvbnN0IENvcHlJY29uU3R5bGVkID0gc3R5bGVkKENvcHlJY29uKWBcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG5gO1xuXG5jb25zdCBET0NLRVJfU0lHVEVSTSA9IDE0MztcblxudHlwZSBFZGl0b3JQcm9wcyA9IHtcbiAgaGlkZUNvcHlCdXR0b246IGJvb2xlYW47XG4gIGxhbmd1YWdlOiBMYW5ndWFnZU9wdGlvbjtcbiAgdGV4dDogc3RyaW5nO1xuICBvbkNoYW5nZTogKHRleHQ6IHN0cmluZykgPT4gdm9pZDtcbiAgc25pcHBldHNCYXNlVXJsPzogc3RyaW5nO1xuICBjb3B5Rm9ybWF0dGVyPzogQ29kZWJ5dGVzQ29weUZvcm1hdHRlcjtcbiAgdHJhY2tpbmdEYXRhPzogT21pdDxVc2VyQ2xpY2tEYXRhLCAndGFyZ2V0Jz47XG59O1xuXG5leHBvcnQgY29uc3QgRWRpdG9yOiBSZWFjdC5GQzxFZGl0b3JQcm9wcz4gPSAoe1xuICBsYW5ndWFnZSxcbiAgdGV4dCxcbiAgaGlkZUNvcHlCdXR0b24sXG4gIG9uQ2hhbmdlLFxuICBjb3B5Rm9ybWF0dGVyLFxuICBzbmlwcGV0c0Jhc2VVcmwsXG4gIHRyYWNraW5nRGF0YSxcbn0pID0+IHtcbiAgY29uc3QgW291dHB1dCwgc2V0T3V0cHV0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW3N0YXR1cywgc2V0U3RhdHVzXSA9IHVzZVN0YXRlPCdyZWFkeScgfCAnd2FpdGluZycgfCAnZXJyb3InPigncmVhZHknKTtcbiAgY29uc3QgW2lzQ29kZUJ5dGVDb3BpZWQsIHNldElzQ29kZUJ5dGVDb3BpZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBvbkNvcHlDbGljayA9ICgpID0+IHtcbiAgICBpZiAoIWlzQ29kZUJ5dGVDb3BpZWQpIHtcbiAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmRcbiAgICAgICAgLndyaXRlVGV4dChjb3B5Rm9ybWF0dGVyID8gY29weUZvcm1hdHRlcih7IHRleHQsIGxhbmd1YWdlIH0pIDogdGV4dClcblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAuY2F0Y2goKCkgPT4gY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGNvcHknKSk7XG4gICAgICBzZXRJc0NvZGVCeXRlQ29waWVkKHRydWUpO1xuICAgICAgdHJhY2tDbGljaygnY29weScsIHRyYWNraW5nRGF0YSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHNldEVycm9yU3RhdHVzQW5kT3V0cHV0ID0gKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgIHNldE91dHB1dChtZXNzYWdlKTtcbiAgICBzZXRTdGF0dXMoJ2Vycm9yJyk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICh0ZXh0LnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGxhbmd1YWdlLFxuICAgICAgY29kZTogdGV4dCxcbiAgICB9O1xuICAgIHNldFN0YXR1cygnd2FpdGluZycpO1xuICAgIHNldE91dHB1dCgnJyk7XG4gICAgdHJhY2tDbGljaygncnVuJywgdHJhY2tpbmdEYXRhKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHBvc3RTbmlwcGV0KGRhdGEsIHNuaXBwZXRzQmFzZVVybCk7XG4gICAgICBpZiAocmVzcG9uc2Uuc3RkZXJyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgc2V0RXJyb3JTdGF0dXNBbmRPdXRwdXQocmVzcG9uc2Uuc3RkZXJyKTtcbiAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2UuZXhpdF9jb2RlID09PSBET0NLRVJfU0lHVEVSTSkge1xuICAgICAgICBzZXRFcnJvclN0YXR1c0FuZE91dHB1dChcbiAgICAgICAgICAnWW91ciBjb2RlIHRvb2sgdG9vIGxvbmcgdG8gcmV0dXJuIGEgcmVzdWx0LiBEb3VibGUgY2hlY2sgeW91ciBjb2RlIGZvciBhbnkgaXNzdWVzIGFuZCB0cnkgYWdhaW4hJ1xuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5leGl0X2NvZGUgIT09IDApIHtcbiAgICAgICAgc2V0RXJyb3JTdGF0dXNBbmRPdXRwdXQoJ0FuIHVua25vd24gZXJyb3Igb2NjdXJlZC4nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldE91dHB1dChyZXNwb25zZS5zdGRvdXQpO1xuICAgICAgICBzZXRTdGF0dXMoJ3JlYWR5Jyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHNldEVycm9yU3RhdHVzQW5kT3V0cHV0KCdFcnJvcjogJyArIGVycm9yKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPERyYXdlcnNcbiAgICAgICAgbGVmdENoaWxkPXtcbiAgICAgICAgICA8U2ltcGxlTW9uYWNvRWRpdG9yXG4gICAgICAgICAgICB2YWx1ZT17dGV4dH1cbiAgICAgICAgICAgIGxhbmd1YWdlPXtsYW5ndWFnZX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIHJpZ2h0Q2hpbGQ9e1xuICAgICAgICAgIDxPdXRwdXQgaGFzRXJyb3I9e3N0YXR1cyA9PT0gJ2Vycm9yJ30gYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAgICB7b3V0cHV0fVxuICAgICAgICAgIDwvT3V0cHV0PlxuICAgICAgICB9XG4gICAgICAvPlxuICAgICAgPEZsZXhCb3hcbiAgICAgICAganVzdGlmeUNvbnRlbnQ9e2hpZGVDb3B5QnV0dG9uID8gJ2ZsZXgtZW5kJyA6ICdzcGFjZS1iZXR3ZWVuJ31cbiAgICAgICAgcGw9ezh9XG4gICAgICA+XG4gICAgICAgIHshaGlkZUNvcHlCdXR0b24gPyAoXG4gICAgICAgICAgPFRvb2xUaXBcbiAgICAgICAgICAgIGlkPVwiY29kZWJ5dGUtY29waWVkXCJcbiAgICAgICAgICAgIGFsaWdubWVudD1cInRvcC1yaWdodFwiXG4gICAgICAgICAgICB0YXJnZXQ9e1xuICAgICAgICAgICAgICA8VGV4dEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQ29weUNsaWNrfVxuICAgICAgICAgICAgICAgIG9uQmx1cj17KCkgPT4gc2V0SXNDb2RlQnl0ZUNvcGllZChmYWxzZSl9XG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJjb3B5LWNvZGVieXRlLWJ0blwiXG4gICAgICAgICAgICAgICAgaWNvbj17Q29weUljb25TdHlsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBDb3B5IENvZGVieXRlXG4gICAgICAgICAgICAgIDwvVGV4dEJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNDb2RlQnl0ZUNvcGllZCA/IChcbiAgICAgICAgICAgICAgPHNwYW4gZGF0YS10ZXN0aWQ9XCJjb3B5LWNvbmZpcm1hdGlvbi10b29sdGlwXCIgcm9sZT1cImFsZXJ0XCI+XG4gICAgICAgICAgICAgICAgQ29waWVkIVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8c3BhbiBkYXRhLXRlc3RpZD1cImNvcHktcHJvbXB0LXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICBDb3B5IHRvIHlvdXIgY2xpcGJvYXJkXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Ub29sVGlwPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPEZpbGxCdXR0b24gb25DbGljaz17aGFuZGxlU3VibWl0fT5cbiAgICAgICAgICB7c3RhdHVzID09PSAnd2FpdGluZycgPyA8U3Bpbm5lciAvPiA6ICdSdW4nfVxuICAgICAgICA8L0ZpbGxCdXR0b24+XG4gICAgICA8L0ZsZXhCb3g+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */"));
|
|
31
|
-
|
|
27
|
+
const CopyIconStyled = /*#__PURE__*/_styled(CopyIcon, {
|
|
32
28
|
target: "e1lzxy8e0",
|
|
33
29
|
label: "CopyIconStyled"
|
|
34
30
|
})(process.env.NODE_ENV === "production" ? {
|
|
@@ -40,96 +36,71 @@ var CopyIconStyled = /*#__PURE__*/_styled(CopyIcon, {
|
|
|
40
36
|
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lZGl0b3IudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlDdUMiLCJmaWxlIjoiLi4vc3JjL2VkaXRvci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBGaWxsQnV0dG9uLFxuICBGbGV4Qm94LFxuICBTcGlubmVyLFxuICBUZXh0QnV0dG9uLFxuICBUb29sVGlwLFxufSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgeyBDb3B5SWNvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCB7IFVzZXJDbGlja0RhdGEgfSBmcm9tICdAY29kZWNhZGVteS90cmFja2luZyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHBvc3RTbmlwcGV0IH0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHR5cGUgeyBMYW5ndWFnZU9wdGlvbiB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IERyYXdlcnMgfSBmcm9tICcuL2RyYXdlcnMnO1xuaW1wb3J0IHsgdHJhY2tDbGljayB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBTaW1wbGVNb25hY29FZGl0b3IgfSBmcm9tICcuL01vbmFjb0VkaXRvcic7XG5pbXBvcnQgeyBDb2RlYnl0ZXNDb3B5Rm9ybWF0dGVyIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IE91dHB1dCA9IHN0eWxlZC5wcmU8eyBoYXNFcnJvcjogYm9vbGVhbiB9PmBcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGZvbnQtZmFtaWx5OiBNb25hY287XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIG92ZXJmbG93OiBhdXRvO1xuICAkeyh7IGhhc0Vycm9yLCB0aGVtZSB9KSA9PiBgXG4gIGNvbG9yOiAke2hhc0Vycm9yID8gdGhlbWUuY29sb3JzLm9yYW5nZSA6IHRoZW1lLmNvbG9ycy50ZXh0fTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5jb2xvcnNbJ25hdnktOTAwJ119O1xuYH1cbmA7XG5cbmNvbnN0IENvcHlJY29uU3R5bGVkID0gc3R5bGVkKENvcHlJY29uKWBcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG5gO1xuXG5jb25zdCBET0NLRVJfU0lHVEVSTSA9IDE0MztcblxudHlwZSBFZGl0b3JQcm9wcyA9IHtcbiAgaGlkZUNvcHlCdXR0b246IGJvb2xlYW47XG4gIGxhbmd1YWdlOiBMYW5ndWFnZU9wdGlvbjtcbiAgdGV4dDogc3RyaW5nO1xuICBvbkNoYW5nZTogKHRleHQ6IHN0cmluZykgPT4gdm9pZDtcbiAgc25pcHBldHNCYXNlVXJsPzogc3RyaW5nO1xuICBjb3B5Rm9ybWF0dGVyPzogQ29kZWJ5dGVzQ29weUZvcm1hdHRlcjtcbiAgdHJhY2tpbmdEYXRhPzogT21pdDxVc2VyQ2xpY2tEYXRhLCAndGFyZ2V0Jz47XG59O1xuXG5leHBvcnQgY29uc3QgRWRpdG9yOiBSZWFjdC5GQzxFZGl0b3JQcm9wcz4gPSAoe1xuICBsYW5ndWFnZSxcbiAgdGV4dCxcbiAgaGlkZUNvcHlCdXR0b24sXG4gIG9uQ2hhbmdlLFxuICBjb3B5Rm9ybWF0dGVyLFxuICBzbmlwcGV0c0Jhc2VVcmwsXG4gIHRyYWNraW5nRGF0YSxcbn0pID0+IHtcbiAgY29uc3QgW291dHB1dCwgc2V0T3V0cHV0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW3N0YXR1cywgc2V0U3RhdHVzXSA9IHVzZVN0YXRlPCdyZWFkeScgfCAnd2FpdGluZycgfCAnZXJyb3InPigncmVhZHknKTtcbiAgY29uc3QgW2lzQ29kZUJ5dGVDb3BpZWQsIHNldElzQ29kZUJ5dGVDb3BpZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBvbkNvcHlDbGljayA9ICgpID0+IHtcbiAgICBpZiAoIWlzQ29kZUJ5dGVDb3BpZWQpIHtcbiAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmRcbiAgICAgICAgLndyaXRlVGV4dChjb3B5Rm9ybWF0dGVyID8gY29weUZvcm1hdHRlcih7IHRleHQsIGxhbmd1YWdlIH0pIDogdGV4dClcblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAuY2F0Y2goKCkgPT4gY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGNvcHknKSk7XG4gICAgICBzZXRJc0NvZGVCeXRlQ29waWVkKHRydWUpO1xuICAgICAgdHJhY2tDbGljaygnY29weScsIHRyYWNraW5nRGF0YSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHNldEVycm9yU3RhdHVzQW5kT3V0cHV0ID0gKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgIHNldE91dHB1dChtZXNzYWdlKTtcbiAgICBzZXRTdGF0dXMoJ2Vycm9yJyk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICh0ZXh0LnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGxhbmd1YWdlLFxuICAgICAgY29kZTogdGV4dCxcbiAgICB9O1xuICAgIHNldFN0YXR1cygnd2FpdGluZycpO1xuICAgIHNldE91dHB1dCgnJyk7XG4gICAgdHJhY2tDbGljaygncnVuJywgdHJhY2tpbmdEYXRhKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHBvc3RTbmlwcGV0KGRhdGEsIHNuaXBwZXRzQmFzZVVybCk7XG4gICAgICBpZiAocmVzcG9uc2Uuc3RkZXJyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgc2V0RXJyb3JTdGF0dXNBbmRPdXRwdXQocmVzcG9uc2Uuc3RkZXJyKTtcbiAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2UuZXhpdF9jb2RlID09PSBET0NLRVJfU0lHVEVSTSkge1xuICAgICAgICBzZXRFcnJvclN0YXR1c0FuZE91dHB1dChcbiAgICAgICAgICAnWW91ciBjb2RlIHRvb2sgdG9vIGxvbmcgdG8gcmV0dXJuIGEgcmVzdWx0LiBEb3VibGUgY2hlY2sgeW91ciBjb2RlIGZvciBhbnkgaXNzdWVzIGFuZCB0cnkgYWdhaW4hJ1xuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5leGl0X2NvZGUgIT09IDApIHtcbiAgICAgICAgc2V0RXJyb3JTdGF0dXNBbmRPdXRwdXQoJ0FuIHVua25vd24gZXJyb3Igb2NjdXJlZC4nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldE91dHB1dChyZXNwb25zZS5zdGRvdXQpO1xuICAgICAgICBzZXRTdGF0dXMoJ3JlYWR5Jyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHNldEVycm9yU3RhdHVzQW5kT3V0cHV0KCdFcnJvcjogJyArIGVycm9yKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPERyYXdlcnNcbiAgICAgICAgbGVmdENoaWxkPXtcbiAgICAgICAgICA8U2ltcGxlTW9uYWNvRWRpdG9yXG4gICAgICAgICAgICB2YWx1ZT17dGV4dH1cbiAgICAgICAgICAgIGxhbmd1YWdlPXtsYW5ndWFnZX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIHJpZ2h0Q2hpbGQ9e1xuICAgICAgICAgIDxPdXRwdXQgaGFzRXJyb3I9e3N0YXR1cyA9PT0gJ2Vycm9yJ30gYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAgICB7b3V0cHV0fVxuICAgICAgICAgIDwvT3V0cHV0PlxuICAgICAgICB9XG4gICAgICAvPlxuICAgICAgPEZsZXhCb3hcbiAgICAgICAganVzdGlmeUNvbnRlbnQ9e2hpZGVDb3B5QnV0dG9uID8gJ2ZsZXgtZW5kJyA6ICdzcGFjZS1iZXR3ZWVuJ31cbiAgICAgICAgcGw9ezh9XG4gICAgICA+XG4gICAgICAgIHshaGlkZUNvcHlCdXR0b24gPyAoXG4gICAgICAgICAgPFRvb2xUaXBcbiAgICAgICAgICAgIGlkPVwiY29kZWJ5dGUtY29waWVkXCJcbiAgICAgICAgICAgIGFsaWdubWVudD1cInRvcC1yaWdodFwiXG4gICAgICAgICAgICB0YXJnZXQ9e1xuICAgICAgICAgICAgICA8VGV4dEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQ29weUNsaWNrfVxuICAgICAgICAgICAgICAgIG9uQmx1cj17KCkgPT4gc2V0SXNDb2RlQnl0ZUNvcGllZChmYWxzZSl9XG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJjb3B5LWNvZGVieXRlLWJ0blwiXG4gICAgICAgICAgICAgICAgaWNvbj17Q29weUljb25TdHlsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBDb3B5IENvZGVieXRlXG4gICAgICAgICAgICAgIDwvVGV4dEJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNDb2RlQnl0ZUNvcGllZCA/IChcbiAgICAgICAgICAgICAgPHNwYW4gZGF0YS10ZXN0aWQ9XCJjb3B5LWNvbmZpcm1hdGlvbi10b29sdGlwXCIgcm9sZT1cImFsZXJ0XCI+XG4gICAgICAgICAgICAgICAgQ29waWVkIVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8c3BhbiBkYXRhLXRlc3RpZD1cImNvcHktcHJvbXB0LXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICBDb3B5IHRvIHlvdXIgY2xpcGJvYXJkXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Ub29sVGlwPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPEZpbGxCdXR0b24gb25DbGljaz17aGFuZGxlU3VibWl0fT5cbiAgICAgICAgICB7c3RhdHVzID09PSAnd2FpdGluZycgPyA8U3Bpbm5lciAvPiA6ICdSdW4nfVxuICAgICAgICA8L0ZpbGxCdXR0b24+XG4gICAgICA8L0ZsZXhCb3g+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */",
|
|
41
37
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
42
38
|
});
|
|
43
|
-
|
|
44
|
-
export
|
|
45
|
-
|
|
39
|
+
const DOCKER_SIGTERM = 143;
|
|
40
|
+
export const Editor = _ref2 => {
|
|
41
|
+
let language = _ref2.language,
|
|
46
42
|
text = _ref2.text,
|
|
47
43
|
hideCopyButton = _ref2.hideCopyButton,
|
|
48
44
|
onChange = _ref2.onChange,
|
|
49
45
|
copyFormatter = _ref2.copyFormatter,
|
|
50
46
|
snippetsBaseUrl = _ref2.snippetsBaseUrl,
|
|
51
47
|
trackingData = _ref2.trackingData;
|
|
52
|
-
|
|
48
|
+
const _useState = useState(''),
|
|
53
49
|
_useState2 = _slicedToArray(_useState, 2),
|
|
54
50
|
output = _useState2[0],
|
|
55
51
|
setOutput = _useState2[1];
|
|
56
|
-
|
|
52
|
+
const _useState3 = useState('ready'),
|
|
57
53
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
58
54
|
status = _useState4[0],
|
|
59
55
|
setStatus = _useState4[1];
|
|
60
|
-
|
|
56
|
+
const _useState5 = useState(false),
|
|
61
57
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
62
58
|
isCodeByteCopied = _useState6[0],
|
|
63
59
|
setIsCodeByteCopied = _useState6[1];
|
|
64
|
-
|
|
60
|
+
const onCopyClick = () => {
|
|
65
61
|
if (!isCodeByteCopied) {
|
|
66
62
|
navigator.clipboard.writeText(copyFormatter ? copyFormatter({
|
|
67
|
-
text
|
|
68
|
-
language
|
|
63
|
+
text,
|
|
64
|
+
language
|
|
69
65
|
}) : text)
|
|
70
66
|
|
|
71
67
|
// eslint-disable-next-line no-console
|
|
72
|
-
.catch(
|
|
73
|
-
return console.error('Failed to copy');
|
|
74
|
-
});
|
|
68
|
+
.catch(() => console.error('Failed to copy'));
|
|
75
69
|
setIsCodeByteCopied(true);
|
|
76
70
|
trackClick('copy', trackingData);
|
|
77
71
|
}
|
|
78
72
|
};
|
|
79
|
-
|
|
73
|
+
const setErrorStatusAndOutput = message => {
|
|
80
74
|
setOutput(message);
|
|
81
75
|
setStatus('error');
|
|
82
76
|
};
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
_context.next = 2;
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
return _context.abrupt("return");
|
|
94
|
-
case 2:
|
|
95
|
-
data = {
|
|
96
|
-
language: language,
|
|
97
|
-
code: text
|
|
98
|
-
};
|
|
99
|
-
setStatus('waiting');
|
|
100
|
-
setOutput('');
|
|
101
|
-
trackClick('run', trackingData);
|
|
102
|
-
_context.prev = 6;
|
|
103
|
-
_context.next = 9;
|
|
104
|
-
return postSnippet(data, snippetsBaseUrl);
|
|
105
|
-
case 9:
|
|
106
|
-
response = _context.sent;
|
|
107
|
-
if (response.stderr.length > 0) {
|
|
108
|
-
setErrorStatusAndOutput(response.stderr);
|
|
109
|
-
} else if (response.exit_code === DOCKER_SIGTERM) {
|
|
110
|
-
setErrorStatusAndOutput('Your code took too long to return a result. Double check your code for any issues and try again!');
|
|
111
|
-
} else if (response.exit_code !== 0) {
|
|
112
|
-
setErrorStatusAndOutput('An unknown error occured.');
|
|
113
|
-
} else {
|
|
114
|
-
setOutput(response.stdout);
|
|
115
|
-
setStatus('ready');
|
|
116
|
-
}
|
|
117
|
-
_context.next = 16;
|
|
118
|
-
break;
|
|
119
|
-
case 13:
|
|
120
|
-
_context.prev = 13;
|
|
121
|
-
_context.t0 = _context["catch"](6);
|
|
122
|
-
setErrorStatusAndOutput('Error: ' + _context.t0);
|
|
123
|
-
case 16:
|
|
124
|
-
case "end":
|
|
125
|
-
return _context.stop();
|
|
126
|
-
}
|
|
127
|
-
}, _callee, null, [[6, 13]]);
|
|
128
|
-
}));
|
|
129
|
-
return function handleSubmit() {
|
|
130
|
-
return _ref3.apply(this, arguments);
|
|
77
|
+
const handleSubmit = async () => {
|
|
78
|
+
if (text.trim().length === 0) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const data = {
|
|
82
|
+
language,
|
|
83
|
+
code: text
|
|
131
84
|
};
|
|
132
|
-
|
|
85
|
+
setStatus('waiting');
|
|
86
|
+
setOutput('');
|
|
87
|
+
trackClick('run', trackingData);
|
|
88
|
+
try {
|
|
89
|
+
const response = await postSnippet(data, snippetsBaseUrl);
|
|
90
|
+
if (response.stderr.length > 0) {
|
|
91
|
+
setErrorStatusAndOutput(response.stderr);
|
|
92
|
+
} else if (response.exit_code === DOCKER_SIGTERM) {
|
|
93
|
+
setErrorStatusAndOutput('Your code took too long to return a result. Double check your code for any issues and try again!');
|
|
94
|
+
} else if (response.exit_code !== 0) {
|
|
95
|
+
setErrorStatusAndOutput('An unknown error occured.');
|
|
96
|
+
} else {
|
|
97
|
+
setOutput(response.stdout);
|
|
98
|
+
setStatus('ready');
|
|
99
|
+
}
|
|
100
|
+
} catch (error) {
|
|
101
|
+
setErrorStatusAndOutput('Error: ' + error);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
133
104
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
134
105
|
children: [/*#__PURE__*/_jsx(Drawers, {
|
|
135
106
|
leftChild: /*#__PURE__*/_jsx(SimpleMonacoEditor, {
|
|
@@ -151,9 +122,7 @@ export var Editor = function Editor(_ref2) {
|
|
|
151
122
|
target: /*#__PURE__*/_jsx(TextButton, {
|
|
152
123
|
variant: "secondary",
|
|
153
124
|
onClick: onCopyClick,
|
|
154
|
-
onBlur:
|
|
155
|
-
return setIsCodeByteCopied(false);
|
|
156
|
-
},
|
|
125
|
+
onBlur: () => setIsCodeByteCopied(false),
|
|
157
126
|
"data-testid": "copy-codebyte-btn",
|
|
158
127
|
icon: CopyIconStyled,
|
|
159
128
|
children: "Copy Codebyte"
|
package/dist/helpers/index.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
1
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
2
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
3
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
-
function _toPropertyKey(
|
|
6
|
-
function _toPrimitive(
|
|
4
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
5
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
6
|
import { trackUserClick } from '../libs/eventTracking';
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}));
|
|
12
|
-
};
|
|
7
|
+
export const trackClick = (target, trackingData) => trackUserClick(_objectSpread(_objectSpread({}, trackingData), {}, {
|
|
8
|
+
target
|
|
9
|
+
}));
|
|
@@ -17,27 +17,27 @@ import { useIntersection } from './useIntersection';
|
|
|
17
17
|
// before the useEverInView hook is triggered. The rootMargin will determine the
|
|
18
18
|
// size of the root element's bounding box.
|
|
19
19
|
// https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#intersection_observer_options
|
|
20
|
-
export
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
export const useEverInView = function () {
|
|
21
|
+
let rootMargin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '0px';
|
|
22
|
+
let threshold = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.2;
|
|
23
|
+
const ref = useRef(null);
|
|
24
|
+
const _useState = useState(false),
|
|
25
25
|
_useState2 = _slicedToArray(_useState, 2),
|
|
26
26
|
everInView = _useState2[0],
|
|
27
27
|
setEverInView = _useState2[1];
|
|
28
|
-
|
|
28
|
+
const intersection = useIntersection(ref, {
|
|
29
29
|
root: null,
|
|
30
|
-
rootMargin
|
|
31
|
-
threshold
|
|
30
|
+
rootMargin,
|
|
31
|
+
threshold
|
|
32
32
|
});
|
|
33
|
-
|
|
34
|
-
useEffect(
|
|
33
|
+
const inView = intersection === null || intersection === void 0 ? void 0 : intersection.isIntersecting;
|
|
34
|
+
useEffect(() => {
|
|
35
35
|
if (inView) {
|
|
36
36
|
setEverInView(true);
|
|
37
37
|
}
|
|
38
38
|
}, [inView]);
|
|
39
39
|
return {
|
|
40
40
|
everInView: Boolean(everInView || inView),
|
|
41
|
-
ref
|
|
41
|
+
ref
|
|
42
42
|
};
|
|
43
43
|
};
|
|
@@ -1,54 +1,39 @@
|
|
|
1
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
3
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
4
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
5
1
|
import { renderHook } from '@testing-library/react';
|
|
6
2
|
import { useEverInView } from './useEverInView';
|
|
7
|
-
|
|
8
|
-
jest.mock('./useIntersection',
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
});
|
|
15
|
-
var ref = {
|
|
3
|
+
const mockUseIntersection = jest.fn();
|
|
4
|
+
jest.mock('./useIntersection', () => ({
|
|
5
|
+
get useIntersection() {
|
|
6
|
+
return mockUseIntersection;
|
|
7
|
+
}
|
|
8
|
+
}));
|
|
9
|
+
const ref = {
|
|
16
10
|
current: null
|
|
17
11
|
};
|
|
18
|
-
describe('useEverInView',
|
|
19
|
-
it('returns true after inView becomes false after true',
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
everInView: true,
|
|
46
|
-
ref: ref
|
|
47
|
-
});
|
|
48
|
-
case 9:
|
|
49
|
-
case "end":
|
|
50
|
-
return _context.stop();
|
|
51
|
-
}
|
|
52
|
-
}, _callee);
|
|
53
|
-
})));
|
|
12
|
+
describe('useEverInView', () => {
|
|
13
|
+
it('returns true after inView becomes false after true', async () => {
|
|
14
|
+
mockUseIntersection.mockReturnValueOnce(null);
|
|
15
|
+
const _renderHook = renderHook(() => useEverInView()),
|
|
16
|
+
result = _renderHook.result,
|
|
17
|
+
rerender = _renderHook.rerender;
|
|
18
|
+
expect(result.current).toEqual({
|
|
19
|
+
everInView: false,
|
|
20
|
+
ref
|
|
21
|
+
});
|
|
22
|
+
mockUseIntersection.mockReturnValueOnce({
|
|
23
|
+
isIntersecting: true
|
|
24
|
+
});
|
|
25
|
+
rerender();
|
|
26
|
+
expect(result.current).toEqual({
|
|
27
|
+
everInView: true,
|
|
28
|
+
ref
|
|
29
|
+
});
|
|
30
|
+
mockUseIntersection.mockReturnValueOnce({
|
|
31
|
+
isIntersecting: false
|
|
32
|
+
});
|
|
33
|
+
rerender();
|
|
34
|
+
expect(result.current).toEqual({
|
|
35
|
+
everInView: true,
|
|
36
|
+
ref
|
|
37
|
+
});
|
|
38
|
+
});
|
|
54
39
|
});
|
|
@@ -5,29 +5,29 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5
5
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
6
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
7
|
import { useEffect, useState } from 'react';
|
|
8
|
-
export
|
|
9
|
-
|
|
8
|
+
export const useIntersection = (ref, options) => {
|
|
9
|
+
const _useState = useState(null),
|
|
10
10
|
_useState2 = _slicedToArray(_useState, 2),
|
|
11
11
|
intersectionObserverEntry = _useState2[0],
|
|
12
12
|
setIntersectionObserverEntry = _useState2[1];
|
|
13
|
-
useEffect(
|
|
13
|
+
useEffect(() => {
|
|
14
14
|
if (ref.current && typeof IntersectionObserver === 'function') {
|
|
15
|
-
|
|
15
|
+
const handler = entries => {
|
|
16
16
|
setIntersectionObserverEntry(entries[0]);
|
|
17
17
|
};
|
|
18
|
-
|
|
18
|
+
const observer = new IntersectionObserver(handler, {
|
|
19
19
|
threshold: options.threshold,
|
|
20
20
|
root: options.root,
|
|
21
21
|
rootMargin: options.rootMargin
|
|
22
22
|
});
|
|
23
23
|
observer.observe(ref.current);
|
|
24
|
-
return
|
|
24
|
+
return () => {
|
|
25
25
|
setIntersectionObserverEntry(null);
|
|
26
26
|
observer.disconnect();
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
30
|
-
return
|
|
30
|
+
return () => {};
|
|
31
31
|
}, [ref, options.threshold, options.root, options.rootMargin]);
|
|
32
32
|
return intersectionObserverEntry;
|
|
33
33
|
};
|
|
@@ -1,107 +1,76 @@
|
|
|
1
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
3
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
4
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
5
1
|
import { act, renderHook } from '@testing-library/react';
|
|
6
2
|
import { useIntersection } from './useIntersection';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
const originalIntersectionObserver = window.IntersectionObserver;
|
|
4
|
+
const mockObserve = jest.fn();
|
|
5
|
+
const mockDisconnect = jest.fn();
|
|
6
|
+
const mockIntersectionObserver = jest.fn();
|
|
7
|
+
const mockIntersectionObserverInstance = {
|
|
12
8
|
observe: mockObserve,
|
|
13
9
|
disconnect: mockDisconnect
|
|
14
10
|
};
|
|
15
|
-
|
|
11
|
+
const ref = {
|
|
16
12
|
current: document.createElement('div')
|
|
17
13
|
};
|
|
18
|
-
|
|
14
|
+
const options = {
|
|
19
15
|
root: null,
|
|
20
16
|
rootMargin: '0px',
|
|
21
17
|
threshold: 0.2
|
|
22
18
|
};
|
|
23
|
-
beforeEach(
|
|
19
|
+
beforeEach(() => {
|
|
24
20
|
mockIntersectionObserver.mockReturnValue(mockIntersectionObserverInstance);
|
|
25
21
|
window.IntersectionObserver = mockIntersectionObserver;
|
|
26
22
|
});
|
|
27
|
-
afterEach(
|
|
23
|
+
afterEach(() => {
|
|
28
24
|
window.IntersectionObserver = originalIntersectionObserver;
|
|
29
25
|
});
|
|
30
|
-
describe('useIntersection',
|
|
31
|
-
test('intersection observer is not called',
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
55
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
56
|
-
case 0:
|
|
57
|
-
// We render useIntersection with ref.current = HTMLdivElement,
|
|
58
|
-
// which should make our hook call intersectionObserver.
|
|
59
|
-
hook = renderHook(function () {
|
|
60
|
-
return useIntersection(ref, options);
|
|
61
|
-
});
|
|
62
|
-
expect(mockObserve).toHaveBeenCalledWith(ref.current);
|
|
63
|
-
hook.unmount();
|
|
64
|
-
expect(mockDisconnect).toHaveBeenCalled();
|
|
65
|
-
case 4:
|
|
66
|
-
case "end":
|
|
67
|
-
return _context2.stop();
|
|
68
|
-
}
|
|
69
|
-
}, _callee2);
|
|
70
|
-
})));
|
|
71
|
-
it('returns the IntersectionObserverEntry from the callback', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
72
|
-
var fakeIntersectionObserverEntry, handler, _renderHook, result, rerender;
|
|
73
|
-
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
74
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
75
|
-
case 0:
|
|
76
|
-
fakeIntersectionObserverEntry = {};
|
|
77
|
-
handler = function handler() {
|
|
78
|
-
return null;
|
|
79
|
-
}; // We mock the insersectionObserver Implementation
|
|
80
|
-
// to grab the handler, which allows us to simulate
|
|
81
|
-
// the element getting scrolled into view.
|
|
82
|
-
mockIntersectionObserver.mockImplementationOnce(function (cb) {
|
|
83
|
-
handler = cb;
|
|
84
|
-
return mockIntersectionObserverInstance;
|
|
85
|
-
});
|
|
86
|
-
_renderHook = renderHook(function () {
|
|
87
|
-
return useIntersection(ref, options);
|
|
88
|
-
}), result = _renderHook.result, rerender = _renderHook.rerender; // Element hasn't been scrolled into view and therefore
|
|
89
|
-
// results.current should be null.
|
|
90
|
-
expect(result.current).toBeNull();
|
|
26
|
+
describe('useIntersection', () => {
|
|
27
|
+
test('intersection observer is not called', async () => {
|
|
28
|
+
// We render useIntersection with ref.current = null,
|
|
29
|
+
// which should prevent our hook from calling intersectionObserver.
|
|
30
|
+
const hook = renderHook(() => useIntersection({
|
|
31
|
+
current: null
|
|
32
|
+
}, options));
|
|
33
|
+
expect(mockObserve).not.toHaveBeenCalled();
|
|
34
|
+
hook.unmount();
|
|
35
|
+
expect(mockDisconnect).not.toHaveBeenCalled();
|
|
36
|
+
});
|
|
37
|
+
test('intersection observer is called', async () => {
|
|
38
|
+
// We render useIntersection with ref.current = HTMLdivElement,
|
|
39
|
+
// which should make our hook call intersectionObserver.
|
|
40
|
+
const hook = renderHook(() => useIntersection(ref, options));
|
|
41
|
+
expect(mockObserve).toHaveBeenCalledWith(ref.current);
|
|
42
|
+
hook.unmount();
|
|
43
|
+
expect(mockDisconnect).toHaveBeenCalled();
|
|
44
|
+
});
|
|
45
|
+
it('returns the IntersectionObserverEntry from the callback', async () => {
|
|
46
|
+
const fakeIntersectionObserverEntry = {};
|
|
47
|
+
let handler = () => {
|
|
48
|
+
return null;
|
|
49
|
+
};
|
|
91
50
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
51
|
+
// We mock the insersectionObserver Implementation
|
|
52
|
+
// to grab the handler, which allows us to simulate
|
|
53
|
+
// the element getting scrolled into view.
|
|
54
|
+
mockIntersectionObserver.mockImplementationOnce(cb => {
|
|
55
|
+
handler = cb;
|
|
56
|
+
return mockIntersectionObserverInstance;
|
|
57
|
+
});
|
|
58
|
+
const _renderHook = renderHook(() => useIntersection(ref, options)),
|
|
59
|
+
result = _renderHook.result,
|
|
60
|
+
rerender = _renderHook.rerender;
|
|
97
61
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}
|
|
106
|
-
|
|
62
|
+
// Element hasn't been scrolled into view and therefore
|
|
63
|
+
// results.current should be null.
|
|
64
|
+
expect(result.current).toBeNull();
|
|
65
|
+
|
|
66
|
+
// Simulate element being scrolled into view
|
|
67
|
+
act(() => {
|
|
68
|
+
handler([fakeIntersectionObserverEntry]);
|
|
69
|
+
});
|
|
70
|
+
expect(result.current).toEqual(fakeIntersectionObserverEntry);
|
|
71
|
+
|
|
72
|
+
// We expect the results to remain the same after a rerender
|
|
73
|
+
rerender();
|
|
74
|
+
expect(result.current).toEqual(fakeIntersectionObserverEntry);
|
|
75
|
+
});
|
|
107
76
|
});
|
|
@@ -4,8 +4,8 @@ import React from 'react';
|
|
|
4
4
|
import { LanguageOptions } from './consts';
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
-
export
|
|
8
|
-
|
|
7
|
+
export const LanguageSelection = _ref => {
|
|
8
|
+
let onChange = _ref.onChange;
|
|
9
9
|
return /*#__PURE__*/_jsxs(ColorMode, {
|
|
10
10
|
mode: "dark",
|
|
11
11
|
flex: 1,
|
|
@@ -18,9 +18,7 @@ export var LanguageSelection = function LanguageSelection(_ref) {
|
|
|
18
18
|
id: "language-select",
|
|
19
19
|
"aria-label": "Select a language",
|
|
20
20
|
options: LanguageOptions,
|
|
21
|
-
onChange:
|
|
22
|
-
return _onChange(e.target.value);
|
|
23
|
-
}
|
|
21
|
+
onChange: e => onChange(e.target.value)
|
|
24
22
|
})]
|
|
25
23
|
});
|
|
26
24
|
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { createTracker } from '@codecademy/tracking';
|
|
2
|
-
|
|
2
|
+
const IS_DEV = process.env.NODE_ENV === 'development';
|
|
3
3
|
|
|
4
4
|
// TODO: confirm tracking details and implementation DISC-447
|
|
5
|
-
|
|
5
|
+
const tracker = createTracker({
|
|
6
6
|
apiBaseUrl: typeof window === 'undefined' ? 'https://www.codecademy.com' : window.location.origin,
|
|
7
7
|
verbose: IS_DEV
|
|
8
8
|
});
|
|
9
|
-
|
|
9
|
+
const trackUserClick = tracker.click,
|
|
10
10
|
trackUserVisit = tracker.visit,
|
|
11
11
|
trackUserImpression = tracker.impression;
|
|
12
12
|
export { trackUserClick, trackUserVisit, trackUserImpression };
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codecademy/codebytes",
|
|
3
3
|
"description": "Codebytes Editor",
|
|
4
|
-
"version": "1.0.27-alpha.
|
|
4
|
+
"version": "1.0.27-alpha.d4ee00f528.0",
|
|
5
5
|
"author": "Codecademy Engineering <dev@codecademy.com>",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@codecademy/tracking": "1.0.20-alpha.
|
|
7
|
+
"@codecademy/tracking": "1.0.20-alpha.d4ee00f528.0",
|
|
8
8
|
"@monaco-editor/react": "^4.4.5",
|
|
9
9
|
"react-resize-observer": "^1.1.1"
|
|
10
10
|
},
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"dist/**/[A-Z]**/[A-Z]*.js",
|
|
37
37
|
"dist/**/[A-Z]**/index.js"
|
|
38
38
|
],
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "1e199e94ea6c0f088b2f7714b93b14c77e310295"
|
|
40
40
|
}
|