@codecademy/codebytes 1.0.43 → 1.0.44-alpha.648a9e5803.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 +46 -22
- package/dist/editor.d.ts +5 -0
- package/dist/editor.js +14 -10
- package/dist/types.d.ts +7 -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", "onBack", "showBackButton"];
|
|
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,10 +13,10 @@ 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
|
-
import React, { useEffect, useState } from 'react';
|
|
19
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
20
20
|
import { helloWorld } from './consts';
|
|
21
21
|
import { Editor } from './editor';
|
|
22
22
|
import { trackClick } from './helpers';
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2RlQnl0ZUVkaXRvci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0JFIiwiZmlsZSI6Ii4uL3NyYy9jb2RlQnl0ZUVkaXRvci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb3gsIEZsZXhCb3gsIEljb25CdXR0b24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgeyBGYXZpY29uSWNvbiwgQXJyb3dDaGV2cm9uTGVmdEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kLCBzeXN0ZW0gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgU3R5bGVQcm9wcyB9IGZyb20gJ0Bjb2RlY2FkZW15L3ZhcmlhbmNlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBoZWxsb1dvcmxkLCBMYW5ndWFnZU9wdGlvbiB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IEVkaXRvciB9IGZyb20gJy4vZWRpdG9yJztcbmltcG9ydCB7IHRyYWNrQ2xpY2sgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgdXNlRXZlckluVmlldyB9IGZyb20gJy4vaGVscGVycy91c2VFdmVySW5WaWV3JztcbmltcG9ydCB7IExhbmd1YWdlU2VsZWN0aW9uIH0gZnJvbSAnLi9sYW5ndWFnZVNlbGVjdGlvbic7XG5pbXBvcnQgeyB0cmFja1VzZXJJbXByZXNzaW9uIH0gZnJvbSAnLi9saWJzL2V2ZW50VHJhY2tpbmcnO1xuaW1wb3J0IHsgQ29kZUJ5dGVFZGl0b3JQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBlZGl0b3JCYXNlU3R5bGVzID0gc3lzdGVtLmNzcyh7XG4gIGJvcmRlcjogMSxcbiAgYm9yZGVyQ29sb3I6ICdncmF5LTkwMCcsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gIG1pbkhlaWdodDogJzI1cmVtJyxcbn0pO1xuXG5jb25zdCBFZGl0b3JDb250YWluZXIgPVxuICBzdHlsZWQoQmFja2dyb3VuZCk8U3R5bGVQcm9wczx0eXBlb2YgZWRpdG9yQmFzZVN0eWxlcz4+KGVkaXRvckJhc2VTdHlsZXMpO1xuXG5leHBvcnQgY29uc3QgQ29kZUJ5dGVFZGl0b3I6IFJlYWN0LkZDPENvZGVCeXRlRWRpdG9yUHJvcHM+ID0gKHtcbiAgdGV4dDogaW5pdGlhbFRleHQsXG4gIGxhbmd1YWdlOiBpbml0aWFsTGFuZ3VhZ2UsXG4gIGhpZGVDb3B5QnV0dG9uID0gZmFsc2UsXG4gIHNuaXBwZXRzQmFzZVVybCxcbiAgb25FZGl0LFxuICBvbkxhbmd1YWdlQ2hhbmdlLFxuICBjb3B5Rm9ybWF0dGVyLFxuICB0cmFja2luZ0VuYWJsZWQgPSB0cnVlLFxuICB0cmFja2luZ0RhdGEsXG4gIHRyYWNrRmlyc3RFZGl0ID0gZmFsc2UsXG4gIG9uT3V0cHV0LFxuICBvbkJhY2ssXG4gIHNob3dCYWNrQnV0dG9uID0gZmFsc2UsXG4gIC4uLnJlc3Rcbn0pID0+IHtcbiAgY29uc3QgeyBldmVySW5WaWV3LCByZWYgfSA9IHVzZUV2ZXJJblZpZXcoKTtcblxuICBjb25zdCBnZXRJbml0aWFsVGV4dCA9ICgpID0+IHtcbiAgICBpZiAoaW5pdGlhbFRleHQgIT09IHVuZGVmaW5lZCkgcmV0dXJuIGluaXRpYWxUZXh0O1xuICAgIHJldHVybiBpbml0aWFsTGFuZ3VhZ2UgPyBoZWxsb1dvcmxkW2luaXRpYWxMYW5ndWFnZV0gOiAnJztcbiAgfTtcblxuICBjb25zdCBbdGV4dCwgc2V0VGV4dF0gPSB1c2VTdGF0ZTxzdHJpbmc+KGdldEluaXRpYWxUZXh0KCkpO1xuICBjb25zdCBbbGFuZ3VhZ2UsIHNldExhbmd1YWdlXSA9IHVzZVN0YXRlPExhbmd1YWdlT3B0aW9uPihcbiAgICBpbml0aWFsTGFuZ3VhZ2UgPz8gJydcbiAgKTtcbiAgY29uc3QgW2hhc0JlZW5FZGl0ZWQsIHNldEhhc0JlZW5FZGl0ZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGV2ZXJJblZpZXcgJiYgdHJhY2tpbmdFbmFibGVkKSB7XG4gICAgICB0cmFja1VzZXJJbXByZXNzaW9uKHtcbiAgICAgICAgcGFnZV9uYW1lOiB0cmFja2luZ0RhdGE/LnBhZ2VfbmFtZSA/PyAnVW5rbm93bicsXG4gICAgICAgIGNvbnRleHQ6IHRyYWNraW5nRGF0YT8uY29udGV4dCA/PyBkb2N1bWVudC5yZWZlcnJlcixcbiAgICAgICAgdGFyZ2V0OiAnY29kZWJ5dGUnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbZXZlckluVmlldywgdHJhY2tpbmdEYXRhLCB0cmFja2luZ0VuYWJsZWRdKTtcblxuICBjb25zdCBoYW5kbGVCYWNrID0gKCkgPT4ge1xuICAgIHNldExhbmd1YWdlKCcnKTtcbiAgICBzZXRUZXh0KCcnKTtcbiAgICBpZiAob25CYWNrKSB7XG4gICAgICBvbkJhY2soKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyQmFja0J1dHRvbiA9IHVzZU1lbW8oXG4gICAgKCkgPT4gbGFuZ3VhZ2UgJiYgc2hvd0JhY2tCdXR0b24sXG4gICAgW2xhbmd1YWdlLCBzaG93QmFja0J1dHRvbl1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxFZGl0b3JDb250YWluZXJcbiAgICAgIGJnPVwiYmxhY2tcIlxuICAgICAgbWF4V2lkdGg9XCI0M3JlbVwiXG4gICAgICB7Li4ucmVzdH1cbiAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgIHJlZj17cmVmfVxuICAgID5cbiAgICAgIDxCb3ggYm9yZGVyQm90dG9tPXsxfSBib3JkZXJDb2xvcj1cImdyYXktOTAwXCIgcHk9ezR9IHBsPXs4fT5cbiAgICAgICAgPEZsZXhCb3g+XG4gICAgICAgICAgeyEhcmVuZGVyQmFja0J1dHRvbiAmJiAoXG4gICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICBpY29uPXtBcnJvd0NoZXZyb25MZWZ0SWNvbn1cbiAgICAgICAgICAgICAgdmFyaWFudD1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUJhY2t9XG4gICAgICAgICAgICAgIHRpcD1cImJhY2tcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgIGljb249e0Zhdmljb25JY29ufVxuICAgICAgICAgICAgdmFyaWFudD1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cuY29kZWNhZGVteS5jb20vXCJcbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICByZWw9XCJub3JlZmVycmVyXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRyYWNrQ2xpY2soJ2xvZ28nLCB0cmFja2luZ0RhdGEpfVxuICAgICAgICAgICAgdGlwPVwiVmlzaXQgdXNcIlxuICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgYWxpZ25tZW50OiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgbmFycm93OiB0cnVlLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICA8L0JveD5cbiAgICAgIHtsYW5ndWFnZSA/IChcbiAgICAgICAgPEVkaXRvclxuICAgICAgICAgIGxhbmd1YWdlPXtsYW5ndWFnZX1cbiAgICAgICAgICB0ZXh0PXt0ZXh0fVxuICAgICAgICAgIGhpZGVDb3B5QnV0dG9uPXtoaWRlQ29weUJ1dHRvbn1cbiAgICAgICAgICBvbkNoYW5nZT17KG5ld1RleHQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgc2V0VGV4dChuZXdUZXh0KTtcbiAgICAgICAgICAgIG9uRWRpdD8uKG5ld1RleHQsIGxhbmd1YWdlKTtcbiAgICAgICAgICAgIGlmICh0cmFja0ZpcnN0RWRpdCAmJiBoYXNCZWVuRWRpdGVkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICBzZXRIYXNCZWVuRWRpdGVkKHRydWUpO1xuICAgICAgICAgICAgICBpZiAodHJhY2tpbmdFbmFibGVkKSB0cmFja0NsaWNrKCdlZGl0JywgdHJhY2tpbmdEYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uT3V0cHV0PXtvbk91dHB1dH1cbiAgICAgICAgICBzbmlwcGV0c0Jhc2VVcmw9e3NuaXBwZXRzQmFzZVVybH1cbiAgICAgICAgICBjb3B5Rm9ybWF0dGVyPXtjb3B5Rm9ybWF0dGVyfVxuICAgICAgICAgIHRyYWNraW5nRW5hYmxlZD17dHJhY2tpbmdFbmFibGVkfVxuICAgICAgICAgIHRyYWNraW5nRGF0YT17dHJhY2tpbmdEYXRhfVxuICAgICAgICAvPlxuICAgICAgKSA6IChcbiAgICAgICAgPExhbmd1YWdlU2VsZWN0aW9uXG4gICAgICAgICAgb25DaGFuZ2U9eyhuZXdMYW5ndWFnZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3VGV4dDogc3RyaW5nID1cbiAgICAgICAgICAgICAgdGV4dCB8fCAobmV3TGFuZ3VhZ2UgPyBoZWxsb1dvcmxkW25ld0xhbmd1YWdlXSA6ICcnKTtcbiAgICAgICAgICAgIHNldExhbmd1YWdlKG5ld0xhbmd1YWdlKTtcbiAgICAgICAgICAgIHNldFRleHQobmV3VGV4dCk7XG4gICAgICAgICAgICBpZiAodHJhY2tpbmdFbmFibGVkKSB0cmFja0NsaWNrKCdsYW5nX3NlbGVjdCcsIHRyYWNraW5nRGF0YSk7XG4gICAgICAgICAgICBvbkxhbmd1YWdlQ2hhbmdlPy4obmV3VGV4dCwgbmV3TGFuZ3VhZ2UpO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvRWRpdG9yQ29udGFpbmVyPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29kZUJ5dGVFZGl0b3I7XG4iXX0= */");
|
|
38
38
|
export const CodeByteEditor = _ref => {
|
|
39
39
|
let initialText = _ref.text,
|
|
40
40
|
initialLanguage = _ref.language,
|
|
@@ -44,9 +44,15 @@ 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,
|
|
53
|
+
onBack = _ref.onBack,
|
|
54
|
+
_ref$showBackButton = _ref.showBackButton,
|
|
55
|
+
showBackButton = _ref$showBackButton === void 0 ? false : _ref$showBackButton,
|
|
50
56
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
51
57
|
const _useEverInView = useEverInView(),
|
|
52
58
|
everInView = _useEverInView.everInView,
|
|
@@ -68,7 +74,7 @@ export const CodeByteEditor = _ref => {
|
|
|
68
74
|
hasBeenEdited = _useState6[0],
|
|
69
75
|
setHasBeenEdited = _useState6[1];
|
|
70
76
|
useEffect(() => {
|
|
71
|
-
if (everInView) {
|
|
77
|
+
if (everInView && trackingEnabled) {
|
|
72
78
|
var _trackingData$page_na, _trackingData$context;
|
|
73
79
|
trackUserImpression({
|
|
74
80
|
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 +82,15 @@ export const CodeByteEditor = _ref => {
|
|
|
76
82
|
target: 'codebyte'
|
|
77
83
|
});
|
|
78
84
|
}
|
|
79
|
-
}, [everInView, trackingData]);
|
|
85
|
+
}, [everInView, trackingData, trackingEnabled]);
|
|
86
|
+
const handleBack = () => {
|
|
87
|
+
setLanguage('');
|
|
88
|
+
setText('');
|
|
89
|
+
if (onBack) {
|
|
90
|
+
onBack();
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
const renderBackButton = useMemo(() => language && showBackButton, [language, showBackButton]);
|
|
80
94
|
return /*#__PURE__*/_jsxs(EditorContainer, _objectSpread(_objectSpread({
|
|
81
95
|
bg: "black",
|
|
82
96
|
maxWidth: "43rem"
|
|
@@ -88,19 +102,27 @@ export const CodeByteEditor = _ref => {
|
|
|
88
102
|
borderColor: "gray-900",
|
|
89
103
|
py: 4,
|
|
90
104
|
pl: 8,
|
|
91
|
-
children: /*#__PURE__*/
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
105
|
+
children: /*#__PURE__*/_jsxs(FlexBox, {
|
|
106
|
+
children: [!!renderBackButton && /*#__PURE__*/_jsx(IconButton, {
|
|
107
|
+
icon: ArrowChevronLeftIcon,
|
|
108
|
+
variant: "secondary",
|
|
109
|
+
onClick: handleBack,
|
|
110
|
+
tip: "back",
|
|
111
|
+
size: "small"
|
|
112
|
+
}), /*#__PURE__*/_jsx(IconButton, {
|
|
113
|
+
icon: FaviconIcon,
|
|
114
|
+
variant: "secondary",
|
|
115
|
+
href: "https://www.codecademy.com/",
|
|
116
|
+
target: "_blank",
|
|
117
|
+
rel: "noreferrer",
|
|
118
|
+
onClick: () => trackClick('logo', trackingData),
|
|
119
|
+
tip: "Visit us",
|
|
120
|
+
tipProps: {
|
|
121
|
+
alignment: 'bottom-center',
|
|
122
|
+
placement: 'floating',
|
|
123
|
+
narrow: true
|
|
124
|
+
}
|
|
125
|
+
})]
|
|
104
126
|
})
|
|
105
127
|
}), language ? /*#__PURE__*/_jsx(Editor, {
|
|
106
128
|
language: language,
|
|
@@ -111,18 +133,20 @@ export const CodeByteEditor = _ref => {
|
|
|
111
133
|
onEdit === null || onEdit === void 0 ? void 0 : onEdit(newText, language);
|
|
112
134
|
if (trackFirstEdit && hasBeenEdited === false) {
|
|
113
135
|
setHasBeenEdited(true);
|
|
114
|
-
trackClick('edit', trackingData);
|
|
136
|
+
if (trackingEnabled) trackClick('edit', trackingData);
|
|
115
137
|
}
|
|
116
138
|
},
|
|
139
|
+
onOutput: onOutput,
|
|
117
140
|
snippetsBaseUrl: snippetsBaseUrl,
|
|
118
141
|
copyFormatter: copyFormatter,
|
|
142
|
+
trackingEnabled: trackingEnabled,
|
|
119
143
|
trackingData: trackingData
|
|
120
144
|
}) : /*#__PURE__*/_jsx(LanguageSelection, {
|
|
121
145
|
onChange: newLanguage => {
|
|
122
146
|
const newText = text || (newLanguage ? helloWorld[newLanguage] : '');
|
|
123
147
|
setLanguage(newLanguage);
|
|
124
148
|
setText(newText);
|
|
125
|
-
trackClick('lang_select', trackingData);
|
|
149
|
+
if (trackingEnabled) trackClick('lang_select', trackingData);
|
|
126
150
|
onLanguageChange === null || onLanguageChange === void 0 ? void 0 : onLanguageChange(newText, newLanguage);
|
|
127
151
|
}
|
|
128
152
|
})]
|
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,14 @@ 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;
|
|
27
|
+
onBack?: VoidFunction;
|
|
28
|
+
showBackButton?: boolean;
|
|
22
29
|
}
|
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.648a9e5803.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": "84c02f8bc7c5f4da9c93784d97a51f2766959a35"
|
|
40
40
|
}
|