@codecademy/codebytes 1.0.43-alpha.a7ae0a107e.0 → 1.0.44-alpha.44fc03f69a.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/codeByteEditor.js +40 -22
- package/dist/consts.d.ts +3 -0
- package/dist/consts.js +3 -0
- package/dist/editor.d.ts +5 -0
- package/dist/editor.js +14 -10
- package/dist/types.d.ts +5 -0
- package/package.json +2 -2
package/dist/codeByteEditor.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _styled from "@emotion/styled/base";
|
|
2
|
-
const _excluded = ["text", "language", "hideCopyButton", "snippetsBaseUrl", "onEdit", "onLanguageChange", "copyFormatter", "trackingData", "trackFirstEdit"];
|
|
2
|
+
const _excluded = ["text", "language", "hideCopyButton", "snippetsBaseUrl", "onEdit", "onLanguageChange", "copyFormatter", "trackingEnabled", "trackingData", "trackFirstEdit", "onOutput"];
|
|
3
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; }
|
|
4
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; }
|
|
5
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; }
|
|
@@ -13,11 +13,11 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
|
|
|
13
13
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
14
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
15
15
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }
|
|
16
|
-
import { Box, IconButton } from '@codecademy/gamut';
|
|
17
|
-
import { FaviconIcon } from '@codecademy/gamut-icons';
|
|
16
|
+
import { Box, FlexBox, IconButton } from '@codecademy/gamut';
|
|
17
|
+
import { FaviconIcon, ArrowChevronLeftIcon } from '@codecademy/gamut-icons';
|
|
18
18
|
import { Background, system } from '@codecademy/gamut-styles';
|
|
19
19
|
import React, { useEffect, useState } from 'react';
|
|
20
|
-
import { helloWorld } from './consts';
|
|
20
|
+
import { helloWorld, LOCAL_STORAGE_KEYS } from './consts';
|
|
21
21
|
import { Editor } from './editor';
|
|
22
22
|
import { trackClick } from './helpers';
|
|
23
23
|
import { useEverInView } from './helpers/useEverInView';
|
|
@@ -34,7 +34,7 @@ const editorBaseStyles = system.css({
|
|
|
34
34
|
const EditorContainer = /*#__PURE__*/_styled(Background, {
|
|
35
35
|
target: "e1epka4g0",
|
|
36
36
|
label: "EditorContainer"
|
|
37
|
-
})(editorBaseStyles, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
37
|
+
})(editorBaseStyles, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2RlQnl0ZUVkaXRvci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0JFIiwiZmlsZSI6Ii4uL3NyYy9jb2RlQnl0ZUVkaXRvci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb3gsIEZsZXhCb3gsIEljb25CdXR0b24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgeyBGYXZpY29uSWNvbiwgQXJyb3dDaGV2cm9uTGVmdEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kLCBzeXN0ZW0gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgU3R5bGVQcm9wcyB9IGZyb20gJ0Bjb2RlY2FkZW15L3ZhcmlhbmNlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBoZWxsb1dvcmxkLCBMYW5ndWFnZU9wdGlvbiwgTE9DQUxfU1RPUkFHRV9LRVlTIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnLi9lZGl0b3InO1xuaW1wb3J0IHsgdHJhY2tDbGljayB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyB1c2VFdmVySW5WaWV3IH0gZnJvbSAnLi9oZWxwZXJzL3VzZUV2ZXJJblZpZXcnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3Rpb24gfSBmcm9tICcuL2xhbmd1YWdlU2VsZWN0aW9uJztcbmltcG9ydCB7IHRyYWNrVXNlckltcHJlc3Npb24gfSBmcm9tICcuL2xpYnMvZXZlbnRUcmFja2luZyc7XG5pbXBvcnQgeyBDb2RlQnl0ZUVkaXRvclByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IGVkaXRvckJhc2VTdHlsZXMgPSBzeXN0ZW0uY3NzKHtcbiAgYm9yZGVyOiAxLFxuICBib3JkZXJDb2xvcjogJ2dyYXktOTAwJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgbWluSGVpZ2h0OiAnMjVyZW0nLFxufSk7XG5cbmNvbnN0IEVkaXRvckNvbnRhaW5lciA9XG4gIHN0eWxlZChCYWNrZ3JvdW5kKTxTdHlsZVByb3BzPHR5cGVvZiBlZGl0b3JCYXNlU3R5bGVzPj4oZWRpdG9yQmFzZVN0eWxlcyk7XG5cbmV4cG9ydCBjb25zdCBDb2RlQnl0ZUVkaXRvcjogUmVhY3QuRkM8Q29kZUJ5dGVFZGl0b3JQcm9wcz4gPSAoe1xuICB0ZXh0OiBpbml0aWFsVGV4dCxcbiAgbGFuZ3VhZ2U6IGluaXRpYWxMYW5ndWFnZSxcbiAgaGlkZUNvcHlCdXR0b24gPSBmYWxzZSxcbiAgc25pcHBldHNCYXNlVXJsLFxuICBvbkVkaXQsXG4gIG9uTGFuZ3VhZ2VDaGFuZ2UsXG4gIGNvcHlGb3JtYXR0ZXIsXG4gIHRyYWNraW5nRW5hYmxlZCA9IHRydWUsXG4gIHRyYWNraW5nRGF0YSxcbiAgdHJhY2tGaXJzdEVkaXQgPSBmYWxzZSxcbiAgb25PdXRwdXQsXG4gIC4uLnJlc3Rcbn0pID0+IHtcbiAgY29uc3QgeyBldmVySW5WaWV3LCByZWYgfSA9IHVzZUV2ZXJJblZpZXcoKTtcblxuICBjb25zdCBnZXRJbml0aWFsVGV4dCA9ICgpID0+IHtcbiAgICBpZiAoaW5pdGlhbFRleHQgIT09IHVuZGVmaW5lZCkgcmV0dXJuIGluaXRpYWxUZXh0O1xuICAgIHJldHVybiBpbml0aWFsTGFuZ3VhZ2UgPyBoZWxsb1dvcmxkW2luaXRpYWxMYW5ndWFnZV0gOiAnJztcbiAgfTtcblxuICBjb25zdCBbdGV4dCwgc2V0VGV4dF0gPSB1c2VTdGF0ZTxzdHJpbmc+KGdldEluaXRpYWxUZXh0KCkpO1xuICBjb25zdCBbbGFuZ3VhZ2UsIHNldExhbmd1YWdlXSA9IHVzZVN0YXRlPExhbmd1YWdlT3B0aW9uPihcbiAgICBpbml0aWFsTGFuZ3VhZ2UgPz8gJydcbiAgKTtcbiAgY29uc3QgW2hhc0JlZW5FZGl0ZWQsIHNldEhhc0JlZW5FZGl0ZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGV2ZXJJblZpZXcgJiYgdHJhY2tpbmdFbmFibGVkKSB7XG4gICAgICB0cmFja1VzZXJJbXByZXNzaW9uKHtcbiAgICAgICAgcGFnZV9uYW1lOiB0cmFja2luZ0RhdGE/LnBhZ2VfbmFtZSA/PyAnVW5rbm93bicsXG4gICAgICAgIGNvbnRleHQ6IHRyYWNraW5nRGF0YT8uY29udGV4dCA/PyBkb2N1bWVudC5yZWZlcnJlcixcbiAgICAgICAgdGFyZ2V0OiAnY29kZWJ5dGUnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbZXZlckluVmlldywgdHJhY2tpbmdEYXRhLCB0cmFja2luZ0VuYWJsZWRdKTtcblxuICBjb25zdCBvbkJhY2sgPSAoKSA9PiB7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oTE9DQUxfU1RPUkFHRV9LRVlTLkNPREVfRURJVE9SX1BST1BTKTtcbiAgICBzZXRMYW5ndWFnZSgnJyk7XG4gICAgc2V0VGV4dCgnJyk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8RWRpdG9yQ29udGFpbmVyXG4gICAgICBiZz1cImJsYWNrXCJcbiAgICAgIG1heFdpZHRoPVwiNDNyZW1cIlxuICAgICAgey4uLnJlc3R9XG4gICAgICBvdmVyZmxvdz1cImhpZGRlblwiXG4gICAgICByZWY9e3JlZn1cbiAgICA+XG4gICAgICA8Qm94IGJvcmRlckJvdHRvbT17MX0gYm9yZGVyQ29sb3I9XCJncmF5LTkwMFwiIHB5PXs0fSBwbD17OH0+XG4gICAgICAgIDxGbGV4Qm94PlxuICAgICAgICAgIHtsYW5ndWFnZSAmJiAoXG4gICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICBpY29uPXtBcnJvd0NoZXZyb25MZWZ0SWNvbn1cbiAgICAgICAgICAgICAgdmFyaWFudD1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uQmFja31cbiAgICAgICAgICAgICAgdGlwPVwiYmFja1wiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgaWNvbj17RmF2aWNvbkljb259XG4gICAgICAgICAgICB2YXJpYW50PVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5jb2RlY2FkZW15LmNvbS9cIlxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgIHJlbD1cIm5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdHJhY2tDbGljaygnbG9nbycsIHRyYWNraW5nRGF0YSl9XG4gICAgICAgICAgICB0aXA9XCJWaXNpdCB1c1wiXG4gICAgICAgICAgICB0aXBQcm9wcz17e1xuICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICBuYXJyb3c6IHRydWUsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvRmxleEJveD5cbiAgICAgIDwvQm94PlxuICAgICAge2xhbmd1YWdlID8gKFxuICAgICAgICA8RWRpdG9yXG4gICAgICAgICAgbGFuZ3VhZ2U9e2xhbmd1YWdlfVxuICAgICAgICAgIHRleHQ9e3RleHR9XG4gICAgICAgICAgaGlkZUNvcHlCdXR0b249e2hpZGVDb3B5QnV0dG9ufVxuICAgICAgICAgIG9uQ2hhbmdlPXsobmV3VGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBzZXRUZXh0KG5ld1RleHQpO1xuICAgICAgICAgICAgb25FZGl0Py4obmV3VGV4dCwgbGFuZ3VhZ2UpO1xuICAgICAgICAgICAgaWYgKHRyYWNrRmlyc3RFZGl0ICYmIGhhc0JlZW5FZGl0ZWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIHNldEhhc0JlZW5FZGl0ZWQodHJ1ZSk7XG4gICAgICAgICAgICAgIGlmICh0cmFja2luZ0VuYWJsZWQpIHRyYWNrQ2xpY2soJ2VkaXQnLCB0cmFja2luZ0RhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgb25PdXRwdXQ9e29uT3V0cHV0fVxuICAgICAgICAgIHNuaXBwZXRzQmFzZVVybD17c25pcHBldHNCYXNlVXJsfVxuICAgICAgICAgIGNvcHlGb3JtYXR0ZXI9e2NvcHlGb3JtYXR0ZXJ9XG4gICAgICAgICAgdHJhY2tpbmdFbmFibGVkPXt0cmFja2luZ0VuYWJsZWR9XG4gICAgICAgICAgdHJhY2tpbmdEYXRhPXt0cmFja2luZ0RhdGF9XG4gICAgICAgIC8+XG4gICAgICApIDogKFxuICAgICAgICA8TGFuZ3VhZ2VTZWxlY3Rpb25cbiAgICAgICAgICBvbkNoYW5nZT17KG5ld0xhbmd1YWdlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdUZXh0OiBzdHJpbmcgPVxuICAgICAgICAgICAgICB0ZXh0IHx8IChuZXdMYW5ndWFnZSA/IGhlbGxvV29ybGRbbmV3TGFuZ3VhZ2VdIDogJycpO1xuICAgICAgICAgICAgc2V0TGFuZ3VhZ2UobmV3TGFuZ3VhZ2UpO1xuICAgICAgICAgICAgc2V0VGV4dChuZXdUZXh0KTtcbiAgICAgICAgICAgIGlmICh0cmFja2luZ0VuYWJsZWQpIHRyYWNrQ2xpY2soJ2xhbmdfc2VsZWN0JywgdHJhY2tpbmdEYXRhKTtcbiAgICAgICAgICAgIG9uTGFuZ3VhZ2VDaGFuZ2U/LihuZXdUZXh0LCBuZXdMYW5ndWFnZSk7XG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9FZGl0b3JDb250YWluZXI+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb2RlQnl0ZUVkaXRvcjtcbiJdfQ== */");
|
|
38
38
|
export const CodeByteEditor = _ref => {
|
|
39
39
|
let initialText = _ref.text,
|
|
40
40
|
initialLanguage = _ref.language,
|
|
@@ -44,9 +44,12 @@ export const CodeByteEditor = _ref => {
|
|
|
44
44
|
onEdit = _ref.onEdit,
|
|
45
45
|
onLanguageChange = _ref.onLanguageChange,
|
|
46
46
|
copyFormatter = _ref.copyFormatter,
|
|
47
|
+
_ref$trackingEnabled = _ref.trackingEnabled,
|
|
48
|
+
trackingEnabled = _ref$trackingEnabled === void 0 ? true : _ref$trackingEnabled,
|
|
47
49
|
trackingData = _ref.trackingData,
|
|
48
50
|
_ref$trackFirstEdit = _ref.trackFirstEdit,
|
|
49
51
|
trackFirstEdit = _ref$trackFirstEdit === void 0 ? false : _ref$trackFirstEdit,
|
|
52
|
+
onOutput = _ref.onOutput,
|
|
50
53
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
51
54
|
const _useEverInView = useEverInView(),
|
|
52
55
|
everInView = _useEverInView.everInView,
|
|
@@ -68,7 +71,7 @@ export const CodeByteEditor = _ref => {
|
|
|
68
71
|
hasBeenEdited = _useState6[0],
|
|
69
72
|
setHasBeenEdited = _useState6[1];
|
|
70
73
|
useEffect(() => {
|
|
71
|
-
if (everInView) {
|
|
74
|
+
if (everInView && trackingEnabled) {
|
|
72
75
|
var _trackingData$page_na, _trackingData$context;
|
|
73
76
|
trackUserImpression({
|
|
74
77
|
page_name: (_trackingData$page_na = trackingData === null || trackingData === void 0 ? void 0 : trackingData.page_name) !== null && _trackingData$page_na !== void 0 ? _trackingData$page_na : 'Unknown',
|
|
@@ -76,7 +79,12 @@ export const CodeByteEditor = _ref => {
|
|
|
76
79
|
target: 'codebyte'
|
|
77
80
|
});
|
|
78
81
|
}
|
|
79
|
-
}, [everInView, trackingData]);
|
|
82
|
+
}, [everInView, trackingData, trackingEnabled]);
|
|
83
|
+
const onBack = () => {
|
|
84
|
+
localStorage.removeItem(LOCAL_STORAGE_KEYS.CODE_EDITOR_PROPS);
|
|
85
|
+
setLanguage('');
|
|
86
|
+
setText('');
|
|
87
|
+
};
|
|
80
88
|
return /*#__PURE__*/_jsxs(EditorContainer, _objectSpread(_objectSpread({
|
|
81
89
|
bg: "black",
|
|
82
90
|
maxWidth: "43rem"
|
|
@@ -88,19 +96,27 @@ export const CodeByteEditor = _ref => {
|
|
|
88
96
|
borderColor: "gray-900",
|
|
89
97
|
py: 4,
|
|
90
98
|
pl: 8,
|
|
91
|
-
children: /*#__PURE__*/
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
99
|
+
children: /*#__PURE__*/_jsxs(FlexBox, {
|
|
100
|
+
children: [language && /*#__PURE__*/_jsx(IconButton, {
|
|
101
|
+
icon: ArrowChevronLeftIcon,
|
|
102
|
+
variant: "secondary",
|
|
103
|
+
onClick: onBack,
|
|
104
|
+
tip: "back",
|
|
105
|
+
size: "small"
|
|
106
|
+
}), /*#__PURE__*/_jsx(IconButton, {
|
|
107
|
+
icon: FaviconIcon,
|
|
108
|
+
variant: "secondary",
|
|
109
|
+
href: "https://www.codecademy.com/",
|
|
110
|
+
target: "_blank",
|
|
111
|
+
rel: "noreferrer",
|
|
112
|
+
onClick: () => trackClick('logo', trackingData),
|
|
113
|
+
tip: "Visit us",
|
|
114
|
+
tipProps: {
|
|
115
|
+
alignment: 'bottom-center',
|
|
116
|
+
placement: 'floating',
|
|
117
|
+
narrow: true
|
|
118
|
+
}
|
|
119
|
+
})]
|
|
104
120
|
})
|
|
105
121
|
}), language ? /*#__PURE__*/_jsx(Editor, {
|
|
106
122
|
language: language,
|
|
@@ -111,18 +127,20 @@ export const CodeByteEditor = _ref => {
|
|
|
111
127
|
onEdit === null || onEdit === void 0 ? void 0 : onEdit(newText, language);
|
|
112
128
|
if (trackFirstEdit && hasBeenEdited === false) {
|
|
113
129
|
setHasBeenEdited(true);
|
|
114
|
-
trackClick('edit', trackingData);
|
|
130
|
+
if (trackingEnabled) trackClick('edit', trackingData);
|
|
115
131
|
}
|
|
116
132
|
},
|
|
133
|
+
onOutput: onOutput,
|
|
117
134
|
snippetsBaseUrl: snippetsBaseUrl,
|
|
118
135
|
copyFormatter: copyFormatter,
|
|
136
|
+
trackingEnabled: trackingEnabled,
|
|
119
137
|
trackingData: trackingData
|
|
120
138
|
}) : /*#__PURE__*/_jsx(LanguageSelection, {
|
|
121
139
|
onChange: newLanguage => {
|
|
122
140
|
const newText = text || (newLanguage ? helloWorld[newLanguage] : '');
|
|
123
141
|
setLanguage(newLanguage);
|
|
124
142
|
setText(newText);
|
|
125
|
-
trackClick('lang_select', trackingData);
|
|
143
|
+
if (trackingEnabled) trackClick('lang_select', trackingData);
|
|
126
144
|
onLanguageChange === null || onLanguageChange === void 0 ? void 0 : onLanguageChange(newText, newLanguage);
|
|
127
145
|
}
|
|
128
146
|
})]
|
package/dist/consts.d.ts
CHANGED
package/dist/consts.js
CHANGED
package/dist/editor.d.ts
CHANGED
|
@@ -7,8 +7,13 @@ type EditorProps = {
|
|
|
7
7
|
language: LanguageOption;
|
|
8
8
|
text: string;
|
|
9
9
|
onChange: (text: string) => void;
|
|
10
|
+
onOutput?: (output: string, status: string) => {
|
|
11
|
+
output: string;
|
|
12
|
+
status: 'ready' | 'waiting' | 'error';
|
|
13
|
+
} | void;
|
|
10
14
|
snippetsBaseUrl?: string;
|
|
11
15
|
copyFormatter?: CodebytesCopyFormatter;
|
|
16
|
+
trackingEnabled?: boolean;
|
|
12
17
|
trackingData?: Omit<UserClickData, 'target'>;
|
|
13
18
|
};
|
|
14
19
|
export declare const Editor: React.FC<EditorProps>;
|
package/dist/editor.js
CHANGED
|
@@ -21,7 +21,7 @@ const Output = /*#__PURE__*/_styled("pre", {
|
|
|
21
21
|
let hasError = _ref.hasError,
|
|
22
22
|
theme = _ref.theme;
|
|
23
23
|
return "\n color: ".concat(hasError ? theme.colors.orange : theme.colors.text, ";\n background-color: ").concat(theme.colors['navy-900'], ";\n");
|
|
24
|
-
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lZGl0b3IudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1CZ0QiLCJmaWxlIjoiLi4vc3JjL2VkaXRvci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZXByZWNhdGVkVG9vbFRpcCxcbiAgRmlsbEJ1dHRvbixcbiAgRmxleEJveCxcbiAgU3Bpbm5lcixcbiAgVGV4dEJ1dHRvbixcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgQ29weUljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBVc2VyQ2xpY2tEYXRhIH0gZnJvbSAnQGNvZGVjYWRlbXkvdHJhY2tpbmcnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBwb3N0U25pcHBldCB9IGZyb20gJy4vYXBpJztcbmltcG9ydCB0eXBlIHsgTGFuZ3VhZ2VPcHRpb24gfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBEcmF3ZXJzIH0gZnJvbSAnLi9kcmF3ZXJzJztcbmltcG9ydCB7IHRyYWNrQ2xpY2sgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgU2ltcGxlTW9uYWNvRWRpdG9yIH0gZnJvbSAnLi9Nb25hY29FZGl0b3InO1xuaW1wb3J0IHsgQ29kZWJ5dGVzQ29weUZvcm1hdHRlciB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBPdXRwdXQgPSBzdHlsZWQucHJlPHsgaGFzRXJyb3I6IGJvb2xlYW4gfT5gXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBmb250LWZhbWlseTogTW9uYWNvO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBvdmVyZmxvdzogYXV0bztcbiAgJHsoeyBoYXNFcnJvciwgdGhlbWUgfSkgPT4gYFxuICBjb2xvcjogJHtoYXNFcnJvciA/IHRoZW1lLmNvbG9ycy5vcmFuZ2UgOiB0aGVtZS5jb2xvcnMudGV4dH07XG4gIGJhY2tncm91bmQtY29sb3I6ICR7dGhlbWUuY29sb3JzWyduYXZ5LTkwMCddfTtcbmB9XG5gO1xuXG5jb25zdCBDb3B5SWNvblN0eWxlZCA9IHN0eWxlZChDb3B5SWNvbilgXG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuYDtcblxuY29uc3QgRE9DS0VSX1NJR1RFUk0gPSAxNDM7XG5cbnR5cGUgRWRpdG9yUHJvcHMgPSB7XG4gIGhpZGVDb3B5QnV0dG9uOiBib29sZWFuO1xuICBsYW5ndWFnZTogTGFuZ3VhZ2VPcHRpb247XG4gIHRleHQ6IHN0cmluZztcbiAgb25DaGFuZ2U6ICh0ZXh0OiBzdHJpbmcpID0+
|
|
24
|
+
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lZGl0b3IudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1CZ0QiLCJmaWxlIjoiLi4vc3JjL2VkaXRvci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZXByZWNhdGVkVG9vbFRpcCxcbiAgRmlsbEJ1dHRvbixcbiAgRmxleEJveCxcbiAgU3Bpbm5lcixcbiAgVGV4dEJ1dHRvbixcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgQ29weUljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBVc2VyQ2xpY2tEYXRhIH0gZnJvbSAnQGNvZGVjYWRlbXkvdHJhY2tpbmcnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBwb3N0U25pcHBldCB9IGZyb20gJy4vYXBpJztcbmltcG9ydCB0eXBlIHsgTGFuZ3VhZ2VPcHRpb24gfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBEcmF3ZXJzIH0gZnJvbSAnLi9kcmF3ZXJzJztcbmltcG9ydCB7IHRyYWNrQ2xpY2sgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgU2ltcGxlTW9uYWNvRWRpdG9yIH0gZnJvbSAnLi9Nb25hY29FZGl0b3InO1xuaW1wb3J0IHsgQ29kZWJ5dGVzQ29weUZvcm1hdHRlciB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBPdXRwdXQgPSBzdHlsZWQucHJlPHsgaGFzRXJyb3I6IGJvb2xlYW4gfT5gXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBmb250LWZhbWlseTogTW9uYWNvO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBvdmVyZmxvdzogYXV0bztcbiAgJHsoeyBoYXNFcnJvciwgdGhlbWUgfSkgPT4gYFxuICBjb2xvcjogJHtoYXNFcnJvciA/IHRoZW1lLmNvbG9ycy5vcmFuZ2UgOiB0aGVtZS5jb2xvcnMudGV4dH07XG4gIGJhY2tncm91bmQtY29sb3I6ICR7dGhlbWUuY29sb3JzWyduYXZ5LTkwMCddfTtcbmB9XG5gO1xuXG5jb25zdCBDb3B5SWNvblN0eWxlZCA9IHN0eWxlZChDb3B5SWNvbilgXG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuYDtcblxuY29uc3QgRE9DS0VSX1NJR1RFUk0gPSAxNDM7XG5cbnR5cGUgRWRpdG9yUHJvcHMgPSB7XG4gIGhpZGVDb3B5QnV0dG9uOiBib29sZWFuO1xuICBsYW5ndWFnZTogTGFuZ3VhZ2VPcHRpb247XG4gIHRleHQ6IHN0cmluZztcbiAgb25DaGFuZ2U6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uT3V0cHV0PzogKFxuICAgIG91dHB1dDogc3RyaW5nLFxuICAgIHN0YXR1czogc3RyaW5nXG4gICkgPT4geyBvdXRwdXQ6IHN0cmluZzsgc3RhdHVzOiAncmVhZHknIHwgJ3dhaXRpbmcnIHwgJ2Vycm9yJyB9IHwgdm9pZDtcbiAgc25pcHBldHNCYXNlVXJsPzogc3RyaW5nO1xuICBjb3B5Rm9ybWF0dGVyPzogQ29kZWJ5dGVzQ29weUZvcm1hdHRlcjtcbiAgdHJhY2tpbmdFbmFibGVkPzogYm9vbGVhbjtcbiAgdHJhY2tpbmdEYXRhPzogT21pdDxVc2VyQ2xpY2tEYXRhLCAndGFyZ2V0Jz47XG59O1xuXG5leHBvcnQgY29uc3QgRWRpdG9yOiBSZWFjdC5GQzxFZGl0b3JQcm9wcz4gPSAoe1xuICBsYW5ndWFnZSxcbiAgdGV4dCxcbiAgaGlkZUNvcHlCdXR0b24sXG4gIG9uQ2hhbmdlLFxuICBjb3B5Rm9ybWF0dGVyLFxuICBzbmlwcGV0c0Jhc2VVcmwsXG4gIHRyYWNraW5nRW5hYmxlZCxcbiAgdHJhY2tpbmdEYXRhLFxuICBvbk91dHB1dCxcbn0pID0+IHtcbiAgY29uc3QgW291dHB1dCwgc2V0T3V0cHV0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW3N0YXR1cywgc2V0U3RhdHVzXSA9IHVzZVN0YXRlPCdyZWFkeScgfCAnd2FpdGluZycgfCAnZXJyb3InPigncmVhZHknKTtcbiAgY29uc3QgW2lzQ29kZUJ5dGVDb3BpZWQsIHNldElzQ29kZUJ5dGVDb3BpZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBvbkNvcHlDbGljayA9ICgpID0+IHtcbiAgICBpZiAoIWlzQ29kZUJ5dGVDb3BpZWQpIHtcbiAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmRcbiAgICAgICAgLndyaXRlVGV4dChjb3B5Rm9ybWF0dGVyID8gY29weUZvcm1hdHRlcih7IHRleHQsIGxhbmd1YWdlIH0pIDogdGV4dClcblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAuY2F0Y2goKCkgPT4gY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGNvcHknKSk7XG4gICAgICBzZXRJc0NvZGVCeXRlQ29waWVkKHRydWUpO1xuICAgICAgaWYgKHRyYWNraW5nRW5hYmxlZCkgdHJhY2tDbGljaygnY29weScsIHRyYWNraW5nRGF0YSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHNldEVycm9yU3RhdHVzQW5kT3V0cHV0ID0gYXN5bmMgKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGludGVyY2VwdGVkT3V0cHV0ID0gYXdhaXQgb25PdXRwdXQ/LihtZXNzYWdlLCAnZXJyb3InKTtcbiAgICBzZXRPdXRwdXQoaW50ZXJjZXB0ZWRPdXRwdXQ/Lm91dHB1dCB8fCBtZXNzYWdlKTtcbiAgICBzZXRTdGF0dXMoaW50ZXJjZXB0ZWRPdXRwdXQ/LnN0YXR1cyB8fCAnZXJyb3InKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKHRleHQudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgbGFuZ3VhZ2UsXG4gICAgICBjb2RlOiB0ZXh0LFxuICAgIH07XG4gICAgc2V0U3RhdHVzKCd3YWl0aW5nJyk7XG4gICAgc2V0T3V0cHV0KCcnKTtcbiAgICBpZiAodHJhY2tpbmdFbmFibGVkKSB0cmFja0NsaWNrKCdydW4nLCB0cmFja2luZ0RhdGEpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcG9zdFNuaXBwZXQoZGF0YSwgc25pcHBldHNCYXNlVXJsKTtcbiAgICAgIGlmIChyZXNwb25zZS5zdGRlcnIubGVuZ3RoID4gMCkge1xuICAgICAgICBzZXRFcnJvclN0YXR1c0FuZE91dHB1dChyZXNwb25zZS5zdGRlcnIpO1xuICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5leGl0X2NvZGUgPT09IERPQ0tFUl9TSUdURVJNKSB7XG4gICAgICAgIHNldEVycm9yU3RhdHVzQW5kT3V0cHV0KFxuICAgICAgICAgICdZb3VyIGNvZGUgdG9vayB0b28gbG9uZyB0byByZXR1cm4gYSByZXN1bHQuIERvdWJsZSBjaGVjayB5b3VyIGNvZGUgZm9yIGFueSBpc3N1ZXMgYW5kIHRyeSBhZ2FpbiEnXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLmV4aXRfY29kZSAhPT0gMCkge1xuICAgICAgICBzZXRFcnJvclN0YXR1c0FuZE91dHB1dCgnQW4gdW5rbm93biBlcnJvciBvY2N1cmVkLicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaW50ZXJjZXB0ZWRPdXRwdXQgPSBhd2FpdCBvbk91dHB1dD8uKHJlc3BvbnNlLnN0ZG91dCwgJ3JlYWR5Jyk7XG4gICAgICAgIHNldE91dHB1dChpbnRlcmNlcHRlZE91dHB1dD8ub3V0cHV0IHx8IHJlc3BvbnNlLnN0ZG91dCk7XG4gICAgICAgIHNldFN0YXR1cyhpbnRlcmNlcHRlZE91dHB1dD8uc3RhdHVzIHx8ICdyZWFkeScpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBzZXRFcnJvclN0YXR1c0FuZE91dHB1dCgnRXJyb3I6ICcgKyBlcnJvcik7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxEcmF3ZXJzXG4gICAgICAgIGxlZnRDaGlsZD17XG4gICAgICAgICAgPFNpbXBsZU1vbmFjb0VkaXRvclxuICAgICAgICAgICAgdmFsdWU9e3RleHR9XG4gICAgICAgICAgICBsYW5ndWFnZT17bGFuZ3VhZ2V9XG4gICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICByaWdodENoaWxkPXtcbiAgICAgICAgICA8T3V0cHV0IGhhc0Vycm9yPXtzdGF0dXMgPT09ICdlcnJvcid9IGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICAgICAge291dHB1dH1cbiAgICAgICAgICA8L091dHB1dD5cbiAgICAgICAgfVxuICAgICAgLz5cbiAgICAgIDxGbGV4Qm94XG4gICAgICAgIGp1c3RpZnlDb250ZW50PXtoaWRlQ29weUJ1dHRvbiA/ICdmbGV4LWVuZCcgOiAnc3BhY2UtYmV0d2Vlbid9XG4gICAgICAgIHBsPXs4fVxuICAgICAgPlxuICAgICAgICB7IWhpZGVDb3B5QnV0dG9uID8gKFxuICAgICAgICAgIDxEZXByZWNhdGVkVG9vbFRpcFxuICAgICAgICAgICAgaWQ9XCJjb2RlYnl0ZS1jb3BpZWRcIlxuICAgICAgICAgICAgYWxpZ25tZW50PVwidG9wLXJpZ2h0XCJcbiAgICAgICAgICAgIHRhcmdldD17XG4gICAgICAgICAgICAgIDxUZXh0QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25Db3B5Q2xpY2t9XG4gICAgICAgICAgICAgICAgb25CbHVyPXsoKSA9PiBzZXRJc0NvZGVCeXRlQ29waWVkKGZhbHNlKX1cbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImNvcHktY29kZWJ5dGUtYnRuXCJcbiAgICAgICAgICAgICAgICBpY29uPXtDb3B5SWNvblN0eWxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIENvcHkgQ29kZWJ5dGVcbiAgICAgICAgICAgICAgPC9UZXh0QnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpc0NvZGVCeXRlQ29waWVkID8gKFxuICAgICAgICAgICAgICA8c3BhbiBkYXRhLXRlc3RpZD1cImNvcHktY29uZmlybWF0aW9uLXRvb2x0aXBcIiByb2xlPVwiYWxlcnRcIj5cbiAgICAgICAgICAgICAgICBDb3BpZWQhXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxzcGFuIGRhdGEtdGVzdGlkPVwiY29weS1wcm9tcHQtdG9vbHRpcFwiPlxuICAgICAgICAgICAgICAgIENvcHkgdG8geW91ciBjbGlwYm9hcmRcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0RlcHJlY2F0ZWRUb29sVGlwPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPEZpbGxCdXR0b24gb25DbGljaz17aGFuZGxlU3VibWl0fT5cbiAgICAgICAgICB7c3RhdHVzID09PSAnd2FpdGluZycgPyA8U3Bpbm5lciAvPiA6ICdSdW4nfVxuICAgICAgICA8L0ZpbGxCdXR0b24+XG4gICAgICA8L0ZsZXhCb3g+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */"));
|
|
25
25
|
const CopyIconStyled = /*#__PURE__*/_styled(CopyIcon, {
|
|
26
26
|
target: "e1lzxy8e0",
|
|
27
27
|
label: "CopyIconStyled"
|
|
@@ -31,7 +31,7 @@ const CopyIconStyled = /*#__PURE__*/_styled(CopyIcon, {
|
|
|
31
31
|
} : {
|
|
32
32
|
name: "u7ytkp",
|
|
33
33
|
styles: "margin-right:0.5rem",
|
|
34
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lZGl0b3IudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlDdUMiLCJmaWxlIjoiLi4vc3JjL2VkaXRvci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZXByZWNhdGVkVG9vbFRpcCxcbiAgRmlsbEJ1dHRvbixcbiAgRmxleEJveCxcbiAgU3Bpbm5lcixcbiAgVGV4dEJ1dHRvbixcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgQ29weUljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBVc2VyQ2xpY2tEYXRhIH0gZnJvbSAnQGNvZGVjYWRlbXkvdHJhY2tpbmcnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBwb3N0U25pcHBldCB9IGZyb20gJy4vYXBpJztcbmltcG9ydCB0eXBlIHsgTGFuZ3VhZ2VPcHRpb24gfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBEcmF3ZXJzIH0gZnJvbSAnLi9kcmF3ZXJzJztcbmltcG9ydCB7IHRyYWNrQ2xpY2sgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgU2ltcGxlTW9uYWNvRWRpdG9yIH0gZnJvbSAnLi9Nb25hY29FZGl0b3InO1xuaW1wb3J0IHsgQ29kZWJ5dGVzQ29weUZvcm1hdHRlciB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBPdXRwdXQgPSBzdHlsZWQucHJlPHsgaGFzRXJyb3I6IGJvb2xlYW4gfT5gXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBmb250LWZhbWlseTogTW9uYWNvO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBvdmVyZmxvdzogYXV0bztcbiAgJHsoeyBoYXNFcnJvciwgdGhlbWUgfSkgPT4gYFxuICBjb2xvcjogJHtoYXNFcnJvciA/IHRoZW1lLmNvbG9ycy5vcmFuZ2UgOiB0aGVtZS5jb2xvcnMudGV4dH07XG4gIGJhY2tncm91bmQtY29sb3I6ICR7dGhlbWUuY29sb3JzWyduYXZ5LTkwMCddfTtcbmB9XG5gO1xuXG5jb25zdCBDb3B5SWNvblN0eWxlZCA9IHN0eWxlZChDb3B5SWNvbilgXG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuYDtcblxuY29uc3QgRE9DS0VSX1NJR1RFUk0gPSAxNDM7XG5cbnR5cGUgRWRpdG9yUHJvcHMgPSB7XG4gIGhpZGVDb3B5QnV0dG9uOiBib29sZWFuO1xuICBsYW5ndWFnZTogTGFuZ3VhZ2VPcHRpb247XG4gIHRleHQ6IHN0cmluZztcbiAgb25DaGFuZ2U6ICh0ZXh0OiBzdHJpbmcpID0+
|
|
34
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lZGl0b3IudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlDdUMiLCJmaWxlIjoiLi4vc3JjL2VkaXRvci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZXByZWNhdGVkVG9vbFRpcCxcbiAgRmlsbEJ1dHRvbixcbiAgRmxleEJveCxcbiAgU3Bpbm5lcixcbiAgVGV4dEJ1dHRvbixcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgQ29weUljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBVc2VyQ2xpY2tEYXRhIH0gZnJvbSAnQGNvZGVjYWRlbXkvdHJhY2tpbmcnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBwb3N0U25pcHBldCB9IGZyb20gJy4vYXBpJztcbmltcG9ydCB0eXBlIHsgTGFuZ3VhZ2VPcHRpb24gfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBEcmF3ZXJzIH0gZnJvbSAnLi9kcmF3ZXJzJztcbmltcG9ydCB7IHRyYWNrQ2xpY2sgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgU2ltcGxlTW9uYWNvRWRpdG9yIH0gZnJvbSAnLi9Nb25hY29FZGl0b3InO1xuaW1wb3J0IHsgQ29kZWJ5dGVzQ29weUZvcm1hdHRlciB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBPdXRwdXQgPSBzdHlsZWQucHJlPHsgaGFzRXJyb3I6IGJvb2xlYW4gfT5gXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBmb250LWZhbWlseTogTW9uYWNvO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBvdmVyZmxvdzogYXV0bztcbiAgJHsoeyBoYXNFcnJvciwgdGhlbWUgfSkgPT4gYFxuICBjb2xvcjogJHtoYXNFcnJvciA/IHRoZW1lLmNvbG9ycy5vcmFuZ2UgOiB0aGVtZS5jb2xvcnMudGV4dH07XG4gIGJhY2tncm91bmQtY29sb3I6ICR7dGhlbWUuY29sb3JzWyduYXZ5LTkwMCddfTtcbmB9XG5gO1xuXG5jb25zdCBDb3B5SWNvblN0eWxlZCA9IHN0eWxlZChDb3B5SWNvbilgXG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuYDtcblxuY29uc3QgRE9DS0VSX1NJR1RFUk0gPSAxNDM7XG5cbnR5cGUgRWRpdG9yUHJvcHMgPSB7XG4gIGhpZGVDb3B5QnV0dG9uOiBib29sZWFuO1xuICBsYW5ndWFnZTogTGFuZ3VhZ2VPcHRpb247XG4gIHRleHQ6IHN0cmluZztcbiAgb25DaGFuZ2U6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uT3V0cHV0PzogKFxuICAgIG91dHB1dDogc3RyaW5nLFxuICAgIHN0YXR1czogc3RyaW5nXG4gICkgPT4geyBvdXRwdXQ6IHN0cmluZzsgc3RhdHVzOiAncmVhZHknIHwgJ3dhaXRpbmcnIHwgJ2Vycm9yJyB9IHwgdm9pZDtcbiAgc25pcHBldHNCYXNlVXJsPzogc3RyaW5nO1xuICBjb3B5Rm9ybWF0dGVyPzogQ29kZWJ5dGVzQ29weUZvcm1hdHRlcjtcbiAgdHJhY2tpbmdFbmFibGVkPzogYm9vbGVhbjtcbiAgdHJhY2tpbmdEYXRhPzogT21pdDxVc2VyQ2xpY2tEYXRhLCAndGFyZ2V0Jz47XG59O1xuXG5leHBvcnQgY29uc3QgRWRpdG9yOiBSZWFjdC5GQzxFZGl0b3JQcm9wcz4gPSAoe1xuICBsYW5ndWFnZSxcbiAgdGV4dCxcbiAgaGlkZUNvcHlCdXR0b24sXG4gIG9uQ2hhbmdlLFxuICBjb3B5Rm9ybWF0dGVyLFxuICBzbmlwcGV0c0Jhc2VVcmwsXG4gIHRyYWNraW5nRW5hYmxlZCxcbiAgdHJhY2tpbmdEYXRhLFxuICBvbk91dHB1dCxcbn0pID0+IHtcbiAgY29uc3QgW291dHB1dCwgc2V0T3V0cHV0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW3N0YXR1cywgc2V0U3RhdHVzXSA9IHVzZVN0YXRlPCdyZWFkeScgfCAnd2FpdGluZycgfCAnZXJyb3InPigncmVhZHknKTtcbiAgY29uc3QgW2lzQ29kZUJ5dGVDb3BpZWQsIHNldElzQ29kZUJ5dGVDb3BpZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBvbkNvcHlDbGljayA9ICgpID0+IHtcbiAgICBpZiAoIWlzQ29kZUJ5dGVDb3BpZWQpIHtcbiAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmRcbiAgICAgICAgLndyaXRlVGV4dChjb3B5Rm9ybWF0dGVyID8gY29weUZvcm1hdHRlcih7IHRleHQsIGxhbmd1YWdlIH0pIDogdGV4dClcblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAuY2F0Y2goKCkgPT4gY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGNvcHknKSk7XG4gICAgICBzZXRJc0NvZGVCeXRlQ29waWVkKHRydWUpO1xuICAgICAgaWYgKHRyYWNraW5nRW5hYmxlZCkgdHJhY2tDbGljaygnY29weScsIHRyYWNraW5nRGF0YSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHNldEVycm9yU3RhdHVzQW5kT3V0cHV0ID0gYXN5bmMgKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGludGVyY2VwdGVkT3V0cHV0ID0gYXdhaXQgb25PdXRwdXQ/LihtZXNzYWdlLCAnZXJyb3InKTtcbiAgICBzZXRPdXRwdXQoaW50ZXJjZXB0ZWRPdXRwdXQ/Lm91dHB1dCB8fCBtZXNzYWdlKTtcbiAgICBzZXRTdGF0dXMoaW50ZXJjZXB0ZWRPdXRwdXQ/LnN0YXR1cyB8fCAnZXJyb3InKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKHRleHQudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgbGFuZ3VhZ2UsXG4gICAgICBjb2RlOiB0ZXh0LFxuICAgIH07XG4gICAgc2V0U3RhdHVzKCd3YWl0aW5nJyk7XG4gICAgc2V0T3V0cHV0KCcnKTtcbiAgICBpZiAodHJhY2tpbmdFbmFibGVkKSB0cmFja0NsaWNrKCdydW4nLCB0cmFja2luZ0RhdGEpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcG9zdFNuaXBwZXQoZGF0YSwgc25pcHBldHNCYXNlVXJsKTtcbiAgICAgIGlmIChyZXNwb25zZS5zdGRlcnIubGVuZ3RoID4gMCkge1xuICAgICAgICBzZXRFcnJvclN0YXR1c0FuZE91dHB1dChyZXNwb25zZS5zdGRlcnIpO1xuICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5leGl0X2NvZGUgPT09IERPQ0tFUl9TSUdURVJNKSB7XG4gICAgICAgIHNldEVycm9yU3RhdHVzQW5kT3V0cHV0KFxuICAgICAgICAgICdZb3VyIGNvZGUgdG9vayB0b28gbG9uZyB0byByZXR1cm4gYSByZXN1bHQuIERvdWJsZSBjaGVjayB5b3VyIGNvZGUgZm9yIGFueSBpc3N1ZXMgYW5kIHRyeSBhZ2FpbiEnXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLmV4aXRfY29kZSAhPT0gMCkge1xuICAgICAgICBzZXRFcnJvclN0YXR1c0FuZE91dHB1dCgnQW4gdW5rbm93biBlcnJvciBvY2N1cmVkLicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaW50ZXJjZXB0ZWRPdXRwdXQgPSBhd2FpdCBvbk91dHB1dD8uKHJlc3BvbnNlLnN0ZG91dCwgJ3JlYWR5Jyk7XG4gICAgICAgIHNldE91dHB1dChpbnRlcmNlcHRlZE91dHB1dD8ub3V0cHV0IHx8IHJlc3BvbnNlLnN0ZG91dCk7XG4gICAgICAgIHNldFN0YXR1cyhpbnRlcmNlcHRlZE91dHB1dD8uc3RhdHVzIHx8ICdyZWFkeScpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBzZXRFcnJvclN0YXR1c0FuZE91dHB1dCgnRXJyb3I6ICcgKyBlcnJvcik7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxEcmF3ZXJzXG4gICAgICAgIGxlZnRDaGlsZD17XG4gICAgICAgICAgPFNpbXBsZU1vbmFjb0VkaXRvclxuICAgICAgICAgICAgdmFsdWU9e3RleHR9XG4gICAgICAgICAgICBsYW5ndWFnZT17bGFuZ3VhZ2V9XG4gICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICByaWdodENoaWxkPXtcbiAgICAgICAgICA8T3V0cHV0IGhhc0Vycm9yPXtzdGF0dXMgPT09ICdlcnJvcid9IGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICAgICAge291dHB1dH1cbiAgICAgICAgICA8L091dHB1dD5cbiAgICAgICAgfVxuICAgICAgLz5cbiAgICAgIDxGbGV4Qm94XG4gICAgICAgIGp1c3RpZnlDb250ZW50PXtoaWRlQ29weUJ1dHRvbiA/ICdmbGV4LWVuZCcgOiAnc3BhY2UtYmV0d2Vlbid9XG4gICAgICAgIHBsPXs4fVxuICAgICAgPlxuICAgICAgICB7IWhpZGVDb3B5QnV0dG9uID8gKFxuICAgICAgICAgIDxEZXByZWNhdGVkVG9vbFRpcFxuICAgICAgICAgICAgaWQ9XCJjb2RlYnl0ZS1jb3BpZWRcIlxuICAgICAgICAgICAgYWxpZ25tZW50PVwidG9wLXJpZ2h0XCJcbiAgICAgICAgICAgIHRhcmdldD17XG4gICAgICAgICAgICAgIDxUZXh0QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25Db3B5Q2xpY2t9XG4gICAgICAgICAgICAgICAgb25CbHVyPXsoKSA9PiBzZXRJc0NvZGVCeXRlQ29waWVkKGZhbHNlKX1cbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImNvcHktY29kZWJ5dGUtYnRuXCJcbiAgICAgICAgICAgICAgICBpY29uPXtDb3B5SWNvblN0eWxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIENvcHkgQ29kZWJ5dGVcbiAgICAgICAgICAgICAgPC9UZXh0QnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpc0NvZGVCeXRlQ29waWVkID8gKFxuICAgICAgICAgICAgICA8c3BhbiBkYXRhLXRlc3RpZD1cImNvcHktY29uZmlybWF0aW9uLXRvb2x0aXBcIiByb2xlPVwiYWxlcnRcIj5cbiAgICAgICAgICAgICAgICBDb3BpZWQhXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxzcGFuIGRhdGEtdGVzdGlkPVwiY29weS1wcm9tcHQtdG9vbHRpcFwiPlxuICAgICAgICAgICAgICAgIENvcHkgdG8geW91ciBjbGlwYm9hcmRcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0RlcHJlY2F0ZWRUb29sVGlwPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPEZpbGxCdXR0b24gb25DbGljaz17aGFuZGxlU3VibWl0fT5cbiAgICAgICAgICB7c3RhdHVzID09PSAnd2FpdGluZycgPyA8U3Bpbm5lciAvPiA6ICdSdW4nfVxuICAgICAgICA8L0ZpbGxCdXR0b24+XG4gICAgICA8L0ZsZXhCb3g+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */",
|
|
35
35
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
36
36
|
});
|
|
37
37
|
const DOCKER_SIGTERM = 143;
|
|
@@ -42,7 +42,9 @@ export const Editor = _ref2 => {
|
|
|
42
42
|
onChange = _ref2.onChange,
|
|
43
43
|
copyFormatter = _ref2.copyFormatter,
|
|
44
44
|
snippetsBaseUrl = _ref2.snippetsBaseUrl,
|
|
45
|
-
|
|
45
|
+
trackingEnabled = _ref2.trackingEnabled,
|
|
46
|
+
trackingData = _ref2.trackingData,
|
|
47
|
+
onOutput = _ref2.onOutput;
|
|
46
48
|
const _useState = useState(''),
|
|
47
49
|
_useState2 = _slicedToArray(_useState, 2),
|
|
48
50
|
output = _useState2[0],
|
|
@@ -65,12 +67,13 @@ export const Editor = _ref2 => {
|
|
|
65
67
|
// eslint-disable-next-line no-console
|
|
66
68
|
.catch(() => console.error('Failed to copy'));
|
|
67
69
|
setIsCodeByteCopied(true);
|
|
68
|
-
trackClick('copy', trackingData);
|
|
70
|
+
if (trackingEnabled) trackClick('copy', trackingData);
|
|
69
71
|
}
|
|
70
72
|
};
|
|
71
|
-
const setErrorStatusAndOutput = message => {
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
const setErrorStatusAndOutput = async message => {
|
|
74
|
+
const interceptedOutput = await (onOutput === null || onOutput === void 0 ? void 0 : onOutput(message, 'error'));
|
|
75
|
+
setOutput((interceptedOutput === null || interceptedOutput === void 0 ? void 0 : interceptedOutput.output) || message);
|
|
76
|
+
setStatus((interceptedOutput === null || interceptedOutput === void 0 ? void 0 : interceptedOutput.status) || 'error');
|
|
74
77
|
};
|
|
75
78
|
const handleSubmit = async () => {
|
|
76
79
|
if (text.trim().length === 0) {
|
|
@@ -82,7 +85,7 @@ export const Editor = _ref2 => {
|
|
|
82
85
|
};
|
|
83
86
|
setStatus('waiting');
|
|
84
87
|
setOutput('');
|
|
85
|
-
trackClick('run', trackingData);
|
|
88
|
+
if (trackingEnabled) trackClick('run', trackingData);
|
|
86
89
|
try {
|
|
87
90
|
const response = await postSnippet(data, snippetsBaseUrl);
|
|
88
91
|
if (response.stderr.length > 0) {
|
|
@@ -92,8 +95,9 @@ export const Editor = _ref2 => {
|
|
|
92
95
|
} else if (response.exit_code !== 0) {
|
|
93
96
|
setErrorStatusAndOutput('An unknown error occured.');
|
|
94
97
|
} else {
|
|
95
|
-
|
|
96
|
-
|
|
98
|
+
const interceptedOutput = await (onOutput === null || onOutput === void 0 ? void 0 : onOutput(response.stdout, 'ready'));
|
|
99
|
+
setOutput((interceptedOutput === null || interceptedOutput === void 0 ? void 0 : interceptedOutput.output) || response.stdout);
|
|
100
|
+
setStatus((interceptedOutput === null || interceptedOutput === void 0 ? void 0 : interceptedOutput.status) || 'ready');
|
|
97
101
|
}
|
|
98
102
|
} catch (error) {
|
|
99
103
|
setErrorStatusAndOutput('Error: ' + error);
|
package/dist/types.d.ts
CHANGED
|
@@ -16,7 +16,12 @@ export interface CodeByteEditorProps extends Omit<BackgroundProps, 'bg'> {
|
|
|
16
16
|
copyFormatter?: CodebytesCopyFormatter;
|
|
17
17
|
snippetsBaseUrl?: string;
|
|
18
18
|
onEdit?: CodebytesChangeHandler;
|
|
19
|
+
onOutput?: (output: string, status: string) => {
|
|
20
|
+
output: string;
|
|
21
|
+
status: 'ready' | 'waiting' | 'error';
|
|
22
|
+
} | void;
|
|
19
23
|
onLanguageChange?: CodebytesChangeHandler;
|
|
24
|
+
trackingEnabled?: boolean;
|
|
20
25
|
trackingData?: Omit<UserClickData, 'target'>;
|
|
21
26
|
trackFirstEdit?: boolean;
|
|
22
27
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codecademy/codebytes",
|
|
3
3
|
"description": "Codebytes Editor",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.44-alpha.44fc03f69a.0",
|
|
5
5
|
"author": "Codecademy Engineering <dev@codecademy.com>",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@codecademy/tracking": "1.0.33",
|
|
@@ -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": "3491c5a69f7dd392ed01ba80cfd8bbc0cd2f904f"
|
|
40
40
|
}
|