@codecademy/codebytes 0.6.4 → 0.6.6-alpha.0b4b90.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/CHANGELOG.md +17 -0
- package/dist/__tests__/codebyte-test.js +3 -3
- package/dist/__tests__/editor-test.js +2 -2
- package/dist/codeByteEditor.d.ts +0 -9
- package/dist/codeByteEditor.js +32 -28
- package/dist/editor.d.ts +2 -0
- package/dist/editor.js +6 -5
- package/dist/helpers/index.d.ts +2 -1
- package/dist/helpers/index.js +13 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/types.d.ts +4 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,23 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
### [0.6.6-alpha.0b4b90.0](https://github.com/Codecademy/client-modules/compare/@codecademy/codebytes@0.6.5...@codecademy/codebytes@0.6.6-alpha.0b4b90.0) (2022-02-03)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @codecademy/codebytes
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### [0.6.5](https://github.com/Codecademy/client-modules/compare/@codecademy/codebytes@0.6.4...@codecademy/codebytes@0.6.5) (2022-02-03)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* **Codebytes:** tracking tweaks for monolith ([#31](https://github.com/Codecademy/client-modules/issues/31)) ([4d309d0](https://github.com/Codecademy/client-modules/commit/4d309d0f57c7c30bf672d8ed02193e9d5b2a27a9))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
6
23
|
### [0.6.4](https://github.com/Codecademy/client-modules/compare/@codecademy/codebytes@0.6.3...@codecademy/codebytes@0.6.4) (2022-02-02)
|
|
7
24
|
|
|
8
25
|
**Note:** Version bump only for package @codecademy/codebytes
|
|
@@ -145,7 +145,7 @@ describe('CodeBytes', function () {
|
|
|
145
145
|
|
|
146
146
|
var logo = view.getByLabelText('visit codecademy.com');
|
|
147
147
|
userEvent.click(logo);
|
|
148
|
-
expect(trackClick).toHaveBeenCalledWith('logo');
|
|
148
|
+
expect(trackClick).toHaveBeenCalledWith('logo', undefined);
|
|
149
149
|
});
|
|
150
150
|
it('triggers trackClick on language selection', function () {
|
|
151
151
|
var _renderWrapper8 = renderWrapper(),
|
|
@@ -153,7 +153,7 @@ describe('CodeBytes', function () {
|
|
|
153
153
|
|
|
154
154
|
var selectedLanguage = view.getByRole('combobox');
|
|
155
155
|
userEvent.selectOptions(selectedLanguage, ['javascript']);
|
|
156
|
-
expect(trackClick).toHaveBeenCalledWith('lang_select');
|
|
156
|
+
expect(trackClick).toHaveBeenCalledWith('lang_select', undefined);
|
|
157
157
|
});
|
|
158
158
|
it('triggers trackClick for the first edit in view mode', function () {
|
|
159
159
|
var testString = 'original-value';
|
|
@@ -166,7 +166,7 @@ describe('CodeBytes', function () {
|
|
|
166
166
|
|
|
167
167
|
var editor = view.getByTestId(mockEditorTestId);
|
|
168
168
|
userEvent.type(editor, 'd');
|
|
169
|
-
expect(trackClick).toHaveBeenCalledWith('edit');
|
|
169
|
+
expect(trackClick).toHaveBeenCalledWith('edit', undefined);
|
|
170
170
|
});
|
|
171
171
|
it('triggers trackUserImpression for view mode', function () {
|
|
172
172
|
renderWrapperWith({
|
|
@@ -122,7 +122,7 @@ describe('Editor', function () {
|
|
|
122
122
|
})));
|
|
123
123
|
|
|
124
124
|
case 5:
|
|
125
|
-
expect(trackClick).toHaveBeenCalledWith('run');
|
|
125
|
+
expect(trackClick).toHaveBeenCalledWith('run', undefined);
|
|
126
126
|
|
|
127
127
|
case 6:
|
|
128
128
|
case "end":
|
|
@@ -141,7 +141,7 @@ describe('Editor', function () {
|
|
|
141
141
|
|
|
142
142
|
var copyButton = view.getByTestId('copy-codebyte-btn');
|
|
143
143
|
userEvent.click(copyButton);
|
|
144
|
-
expect(trackClick).toHaveBeenCalledWith('copy');
|
|
144
|
+
expect(trackClick).toHaveBeenCalledWith('copy', undefined);
|
|
145
145
|
});
|
|
146
146
|
});
|
|
147
147
|
});
|
package/dist/codeByteEditor.d.ts
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
import { StyleProps } from '@codecademy/variance';
|
|
2
1
|
import React from 'react';
|
|
3
2
|
import { CodeByteEditorProps } from './types';
|
|
4
|
-
declare const editorStates: (props: Partial<Record<"isIFrame", boolean>> & {
|
|
5
|
-
theme?: import("@emotion/react").Theme | undefined;
|
|
6
|
-
}) => import("@codecademy/variance").CSSObject;
|
|
7
|
-
declare const editorBaseStyles: (props: {
|
|
8
|
-
theme?: import("@emotion/react").Theme | undefined;
|
|
9
|
-
}) => import("@codecademy/variance").CSSObject;
|
|
10
|
-
export interface EditorStyleProps extends StyleProps<typeof editorBaseStyles>, StyleProps<typeof editorStates> {
|
|
11
|
-
}
|
|
12
3
|
export declare const CodeByteEditor: React.FC<CodeByteEditorProps>;
|
|
13
4
|
export default CodeByteEditor;
|
package/dist/codeByteEditor.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import _styled from "@emotion/styled/base";
|
|
2
2
|
|
|
3
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
4
|
+
|
|
3
5
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
4
6
|
|
|
5
7
|
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."); }
|
|
@@ -12,46 +14,46 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
|
|
|
12
14
|
|
|
13
15
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
16
|
|
|
17
|
+
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; }
|
|
18
|
+
|
|
19
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
20
|
+
|
|
21
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
22
|
+
|
|
15
23
|
import { Box, IconButton } from '@codecademy/gamut';
|
|
16
24
|
import { FaviconIcon } from '@codecademy/gamut-icons';
|
|
17
|
-
import { Background
|
|
25
|
+
import { Background } from '@codecademy/gamut-styles';
|
|
18
26
|
import React, { useEffect, useState } from 'react';
|
|
19
27
|
import { helloWorld } from './consts';
|
|
20
28
|
import { Editor } from './editor';
|
|
21
29
|
import { getOptions, trackClick } from './helpers';
|
|
22
30
|
import { LanguageSelection } from './languageSelection';
|
|
23
31
|
import { trackUserImpression } from './libs/eventTracking';
|
|
24
|
-
var editorStates = states({
|
|
25
|
-
isIFrame: {
|
|
26
|
-
height: '100vh'
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
var editorBaseStyles = system.css({
|
|
30
|
-
border: 1,
|
|
31
|
-
borderColor: 'gray-900',
|
|
32
|
-
display: 'flex',
|
|
33
|
-
flexDirection: 'column',
|
|
34
|
-
height: '25rem',
|
|
35
|
-
width: '43rem',
|
|
36
|
-
overflow: 'hidden'
|
|
37
|
-
});
|
|
38
32
|
|
|
39
33
|
var EditorContainer = /*#__PURE__*/_styled(Background, {
|
|
40
34
|
target: "e1epka4g0",
|
|
41
35
|
label: "EditorContainer"
|
|
42
|
-
})(
|
|
36
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
37
|
+
name: "hqk1xm",
|
|
38
|
+
styles: "display:'flex';flex-direction:'column';overflow:'hidden'"
|
|
39
|
+
} : {
|
|
40
|
+
name: "hqk1xm",
|
|
41
|
+
styles: "display:'flex';flex-direction:'column';overflow:'hidden'",
|
|
42
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2RlQnl0ZUVkaXRvci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYTBDIiwiZmlsZSI6Ii4uL3NyYy9jb2RlQnl0ZUVkaXRvci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb3gsIEljb25CdXR0b24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgeyBGYXZpY29uSWNvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCB7IEJhY2tncm91bmQgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IGhlbGxvV29ybGQsIExhbmd1YWdlT3B0aW9uIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnLi9lZGl0b3InO1xuaW1wb3J0IHsgZ2V0T3B0aW9ucywgdHJhY2tDbGljayB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdGlvbiB9IGZyb20gJy4vbGFuZ3VhZ2VTZWxlY3Rpb24nO1xuaW1wb3J0IHsgdHJhY2tVc2VySW1wcmVzc2lvbiB9IGZyb20gJy4vbGlicy9ldmVudFRyYWNraW5nJztcbmltcG9ydCB7IENvZGVCeXRlRWRpdG9yUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRWRpdG9yQ29udGFpbmVyID0gc3R5bGVkKEJhY2tncm91bmQpYFxuICBkaXNwbGF5OiAnZmxleCc7XG4gIGZsZXgtZGlyZWN0aW9uOiAnY29sdW1uJztcbiAgb3ZlcmZsb3c6ICdoaWRkZW4nO1xuYDtcblxuZXhwb3J0IGNvbnN0IENvZGVCeXRlRWRpdG9yOiBSZWFjdC5GQzxDb2RlQnl0ZUVkaXRvclByb3BzPiA9ICh7XG4gIHRleHQ6IGluaXRpYWxUZXh0LFxuICBsYW5ndWFnZTogaW5pdGlhbExhbmd1YWdlLFxuICBoaWRlQ29weUJ1dHRvbiA9IGZhbHNlLFxuICBzbmlwcGV0c0Jhc2VVcmwsXG4gIG9uRWRpdCxcbiAgb25MYW5ndWFnZUNoYW5nZSxcbiAgb25Db3B5LFxuICB0cmFja2luZ0RhdGEsXG4gIC4uLnJlc3Rcbn0pID0+IHtcbiAgY29uc3QgZ2V0SW5pdGlhbFRleHQgPSAoKSA9PiB7XG4gICAgaWYgKGluaXRpYWxUZXh0ICE9PSB1bmRlZmluZWQpIHJldHVybiBpbml0aWFsVGV4dDtcbiAgICByZXR1cm4gaW5pdGlhbExhbmd1YWdlID8gaGVsbG9Xb3JsZFtpbml0aWFsTGFuZ3VhZ2VdIDogJyc7XG4gIH07XG5cbiAgY29uc3QgW3RleHQsIHNldFRleHRdID0gdXNlU3RhdGU8c3RyaW5nPihnZXRJbml0aWFsVGV4dCgpKTtcbiAgY29uc3QgW2xhbmd1YWdlLCBzZXRMYW5ndWFnZV0gPSB1c2VTdGF0ZTxMYW5ndWFnZU9wdGlvbj4oXG4gICAgaW5pdGlhbExhbmd1YWdlID8/ICcnXG4gICk7XG4gIGNvbnN0IFtoYXNCZWVuRWRpdGVkLCBzZXRIYXNCZWVuRWRpdGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBnZXRPcHRpb25zKCk7XG4gICAgY29uc3QgcGFnZV9uYW1lID0gb3B0aW9ucy5yZW5kZXJNb2RlXG4gICAgICA/IGAke29wdGlvbnMuY2xpZW50TmFtZX1fJHtvcHRpb25zLnJlbmRlck1vZGV9YFxuICAgICAgOiBvcHRpb25zLmNsaWVudE5hbWU7XG5cbiAgICB0cmFja1VzZXJJbXByZXNzaW9uKHtcbiAgICAgIHBhZ2VfbmFtZSxcbiAgICAgIGNvbnRleHQ6IG9wdGlvbnMucGFyZW50UGFnZSxcbiAgICAgIHRhcmdldDogJ2NvZGVieXRlJyxcbiAgICB9KTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiAoXG4gICAgPEVkaXRvckNvbnRhaW5lclxuICAgICAgYmc9XCJibGFja1wiXG4gICAgICB3aWR0aD17NDN9XG4gICAgICBoZWlnaHQ9ezI1fVxuICAgICAgYm9yZGVyPXsxfVxuICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTkwMFwiXG4gICAgICB7Li4ucmVzdH1cbiAgICA+XG4gICAgICA8Qm94IGJvcmRlckJvdHRvbT17MX0gYm9yZGVyQ29sb3I9XCJncmF5LTkwMFwiIHB5PXs0fSBwbD17OH0+XG4gICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgaWNvbj17RmF2aWNvbkljb259XG4gICAgICAgICAgdmFyaWFudD1cInNlY29uZGFyeVwiXG4gICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3LmNvZGVjYWRlbXkuY29tL1wiXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICByZWw9XCJub3JlZmVycmVyXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwidmlzaXQgY29kZWNhZGVteS5jb21cIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRyYWNrQ2xpY2soJ2xvZ28nLCB0cmFja2luZ0RhdGEpfVxuICAgICAgICAvPlxuICAgICAgPC9Cb3g+XG4gICAgICB7bGFuZ3VhZ2UgPyAoXG4gICAgICAgIDxFZGl0b3JcbiAgICAgICAgICBsYW5ndWFnZT17bGFuZ3VhZ2V9XG4gICAgICAgICAgdGV4dD17dGV4dH1cbiAgICAgICAgICBoaWRlQ29weUJ1dHRvbj17aGlkZUNvcHlCdXR0b259XG4gICAgICAgICAgb25DaGFuZ2U9eyhuZXdUZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHNldFRleHQobmV3VGV4dCk7XG4gICAgICAgICAgICBvbkVkaXQ/LihuZXdUZXh0LCBsYW5ndWFnZSk7XG4gICAgICAgICAgICBjb25zdCB7IHJlbmRlck1vZGUgfSA9IGdldE9wdGlvbnMoKTtcbiAgICAgICAgICAgIGlmICghcmVuZGVyTW9kZSAmJiBoYXNCZWVuRWRpdGVkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICBzZXRIYXNCZWVuRWRpdGVkKHRydWUpO1xuICAgICAgICAgICAgICB0cmFja0NsaWNrKCdlZGl0JywgdHJhY2tpbmdEYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICAgIHNuaXBwZXRzQmFzZVVybD17c25pcHBldHNCYXNlVXJsfVxuICAgICAgICAgIG9uQ29weT17b25Db3B5fVxuICAgICAgICAgIHRyYWNraW5nRGF0YT17dHJhY2tpbmdEYXRhfVxuICAgICAgICAvPlxuICAgICAgKSA6IChcbiAgICAgICAgPExhbmd1YWdlU2VsZWN0aW9uXG4gICAgICAgICAgb25DaGFuZ2U9eyhuZXdMYW5ndWFnZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3VGV4dDogc3RyaW5nID1cbiAgICAgICAgICAgICAgdGV4dCB8fCAobmV3TGFuZ3VhZ2UgPyBoZWxsb1dvcmxkW25ld0xhbmd1YWdlXSA6ICcnKTtcbiAgICAgICAgICAgIHNldExhbmd1YWdlKG5ld0xhbmd1YWdlKTtcbiAgICAgICAgICAgIHNldFRleHQobmV3VGV4dCk7XG4gICAgICAgICAgICB0cmFja0NsaWNrKCdsYW5nX3NlbGVjdCcsIHRyYWNraW5nRGF0YSk7XG4gICAgICAgICAgICBvbkxhbmd1YWdlQ2hhbmdlPy4obmV3VGV4dCwgbmV3TGFuZ3VhZ2UpO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvRWRpdG9yQ29udGFpbmVyPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29kZUJ5dGVFZGl0b3I7XG4iXX0= */",
|
|
43
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
44
|
+
});
|
|
43
45
|
|
|
44
46
|
export var CodeByteEditor = function CodeByteEditor(_ref) {
|
|
45
47
|
var initialText = _ref.text,
|
|
46
48
|
initialLanguage = _ref.language,
|
|
47
49
|
_ref$hideCopyButton = _ref.hideCopyButton,
|
|
48
50
|
hideCopyButton = _ref$hideCopyButton === void 0 ? false : _ref$hideCopyButton,
|
|
49
|
-
_ref$isIFrame = _ref.isIFrame,
|
|
50
|
-
isIFrame = _ref$isIFrame === void 0 ? false : _ref$isIFrame,
|
|
51
51
|
snippetsBaseUrl = _ref.snippetsBaseUrl,
|
|
52
52
|
onEdit = _ref.onEdit,
|
|
53
53
|
onLanguageChange = _ref.onLanguageChange,
|
|
54
|
-
onCopy = _ref.onCopy
|
|
54
|
+
onCopy = _ref.onCopy,
|
|
55
|
+
trackingData = _ref.trackingData,
|
|
56
|
+
rest = _objectWithoutProperties(_ref, ["text", "language", "hideCopyButton", "snippetsBaseUrl", "onEdit", "onLanguageChange", "onCopy", "trackingData"]);
|
|
55
57
|
|
|
56
58
|
var getInitialText = function getInitialText() {
|
|
57
59
|
if (initialText !== undefined) return initialText;
|
|
@@ -82,11 +84,13 @@ export var CodeByteEditor = function CodeByteEditor(_ref) {
|
|
|
82
84
|
target: 'codebyte'
|
|
83
85
|
});
|
|
84
86
|
}, []);
|
|
85
|
-
return /*#__PURE__*/React.createElement(EditorContainer, {
|
|
87
|
+
return /*#__PURE__*/React.createElement(EditorContainer, _extends({
|
|
86
88
|
bg: "black",
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
width: 43,
|
|
90
|
+
height: 25,
|
|
91
|
+
border: 1,
|
|
92
|
+
borderColor: "gray-900"
|
|
93
|
+
}, rest), /*#__PURE__*/React.createElement(Box, {
|
|
90
94
|
borderBottom: 1,
|
|
91
95
|
borderColor: "gray-900",
|
|
92
96
|
py: 4,
|
|
@@ -99,7 +103,7 @@ export var CodeByteEditor = function CodeByteEditor(_ref) {
|
|
|
99
103
|
rel: "noreferrer",
|
|
100
104
|
"aria-label": "visit codecademy.com",
|
|
101
105
|
onClick: function onClick() {
|
|
102
|
-
return trackClick('logo');
|
|
106
|
+
return trackClick('logo', trackingData);
|
|
103
107
|
}
|
|
104
108
|
})), language ? /*#__PURE__*/React.createElement(Editor, {
|
|
105
109
|
language: language,
|
|
@@ -114,19 +118,19 @@ export var CodeByteEditor = function CodeByteEditor(_ref) {
|
|
|
114
118
|
|
|
115
119
|
if (!renderMode && hasBeenEdited === false) {
|
|
116
120
|
setHasBeenEdited(true);
|
|
117
|
-
trackClick('edit');
|
|
121
|
+
trackClick('edit', trackingData);
|
|
118
122
|
}
|
|
119
123
|
},
|
|
120
124
|
snippetsBaseUrl: snippetsBaseUrl,
|
|
121
|
-
onCopy: onCopy
|
|
125
|
+
onCopy: onCopy,
|
|
126
|
+
trackingData: trackingData
|
|
122
127
|
}) : /*#__PURE__*/React.createElement(LanguageSelection, {
|
|
123
128
|
onChange: function onChange(newLanguage) {
|
|
124
129
|
var newText = text || (newLanguage ? helloWorld[newLanguage] : '');
|
|
125
130
|
setLanguage(newLanguage);
|
|
126
131
|
setText(newText);
|
|
127
|
-
trackClick('lang_select');
|
|
132
|
+
trackClick('lang_select', trackingData);
|
|
128
133
|
onLanguageChange === null || onLanguageChange === void 0 ? void 0 : onLanguageChange(newText, newLanguage);
|
|
129
|
-
trackClick('lang_select');
|
|
130
134
|
}
|
|
131
135
|
}));
|
|
132
136
|
};
|
package/dist/editor.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { UserClickData } from '@codecademy/tracking';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import type { LanguageOption } from './consts';
|
|
3
4
|
import { CodebytesChangeHandler } from './types';
|
|
@@ -8,6 +9,7 @@ declare type EditorProps = {
|
|
|
8
9
|
onChange: (text: string) => void;
|
|
9
10
|
snippetsBaseUrl?: string;
|
|
10
11
|
onCopy?: CodebytesChangeHandler;
|
|
12
|
+
trackingData?: Omit<UserClickData, 'target'>;
|
|
11
13
|
};
|
|
12
14
|
export declare const Editor: React.FC<EditorProps>;
|
|
13
15
|
export {};
|
package/dist/editor.js
CHANGED
|
@@ -34,7 +34,7 @@ var Output = _styled("pre", {
|
|
|
34
34
|
var hasError = _ref.hasError,
|
|
35
35
|
theme = _ref.theme;
|
|
36
36
|
return "\n color: ".concat(hasError ? theme.colors.orange : theme.colors.white, ";\n background-color: ").concat(theme.colors['navy-900'], ";\n");
|
|
37
|
-
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
37
|
+
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lZGl0b3IudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1CZ0QiLCJmaWxlIjoiLi4vc3JjL2VkaXRvci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBGaWxsQnV0dG9uLFxuICBGbGV4Qm94LFxuICBTcGlubmVyLFxuICBUZXh0QnV0dG9uLFxuICBUb29sVGlwLFxufSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgeyBDb3B5SWNvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCB7IFVzZXJDbGlja0RhdGEgfSBmcm9tICdAY29kZWNhZGVteS90cmFja2luZyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHBvc3RTbmlwcGV0IH0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHR5cGUgeyBMYW5ndWFnZU9wdGlvbiB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IERyYXdlcnMgfSBmcm9tICcuL2RyYXdlcnMnO1xuaW1wb3J0IHsgdHJhY2tDbGljayB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBTaW1wbGVNb25hY29FZGl0b3IgfSBmcm9tICcuL01vbmFjb0VkaXRvcic7XG5pbXBvcnQgeyBDb2RlYnl0ZXNDaGFuZ2VIYW5kbGVyIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IE91dHB1dCA9IHN0eWxlZC5wcmU8eyBoYXNFcnJvcjogYm9vbGVhbiB9PmBcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGZvbnQtZmFtaWx5OiBNb25hY287XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIG92ZXJmbG93OiBhdXRvO1xuICAkeyh7IGhhc0Vycm9yLCB0aGVtZSB9KSA9PiBgXG4gIGNvbG9yOiAke2hhc0Vycm9yID8gdGhlbWUuY29sb3JzLm9yYW5nZSA6IHRoZW1lLmNvbG9ycy53aGl0ZX07XG4gIGJhY2tncm91bmQtY29sb3I6ICR7dGhlbWUuY29sb3JzWyduYXZ5LTkwMCddfTtcbmB9XG5gO1xuXG5jb25zdCBDb3B5SWNvblN0eWxlZCA9IHN0eWxlZChDb3B5SWNvbilgXG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuYDtcblxuY29uc3QgRE9DS0VSX1NJR1RFUk0gPSAxNDM7XG5cbnR5cGUgRWRpdG9yUHJvcHMgPSB7XG4gIGhpZGVDb3B5QnV0dG9uOiBib29sZWFuO1xuICBsYW5ndWFnZTogTGFuZ3VhZ2VPcHRpb247XG4gIHRleHQ6IHN0cmluZztcbiAgb25DaGFuZ2U6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHNuaXBwZXRzQmFzZVVybD86IHN0cmluZztcbiAgb25Db3B5PzogQ29kZWJ5dGVzQ2hhbmdlSGFuZGxlcjtcbiAgdHJhY2tpbmdEYXRhPzogT21pdDxVc2VyQ2xpY2tEYXRhLCAndGFyZ2V0Jz47XG59O1xuXG5leHBvcnQgY29uc3QgRWRpdG9yOiBSZWFjdC5GQzxFZGl0b3JQcm9wcz4gPSAoe1xuICBsYW5ndWFnZSxcbiAgdGV4dCxcbiAgaGlkZUNvcHlCdXR0b24sXG4gIG9uQ2hhbmdlLFxuICBvbkNvcHksXG4gIHNuaXBwZXRzQmFzZVVybCxcbiAgdHJhY2tpbmdEYXRhLFxufSkgPT4ge1xuICBjb25zdCBbb3V0cHV0LCBzZXRPdXRwdXRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbc3RhdHVzLCBzZXRTdGF0dXNdID0gdXNlU3RhdGU8J3JlYWR5JyB8ICd3YWl0aW5nJyB8ICdlcnJvcic+KCdyZWFkeScpO1xuICBjb25zdCBbaXNDb2RlQnl0ZUNvcGllZCwgc2V0SXNDb2RlQnl0ZUNvcGllZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IG9uQ29weUNsaWNrID0gKCkgPT4ge1xuICAgIGlmICghaXNDb2RlQnl0ZUNvcGllZCkge1xuICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZFxuICAgICAgICAud3JpdGVUZXh0KHRleHQpXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIC5jYXRjaCgoKSA9PiBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gY29weScpKTtcbiAgICAgIHNldElzQ29kZUJ5dGVDb3BpZWQodHJ1ZSk7XG4gICAgICBvbkNvcHk/Lih0ZXh0LCBsYW5ndWFnZSk7XG4gICAgICB0cmFja0NsaWNrKCdjb3B5JywgdHJhY2tpbmdEYXRhKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc2V0RXJyb3JTdGF0dXNBbmRPdXRwdXQgPSAobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0T3V0cHV0KG1lc3NhZ2UpO1xuICAgIHNldFN0YXR1cygnZXJyb3InKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKHRleHQudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgbGFuZ3VhZ2UsXG4gICAgICBjb2RlOiB0ZXh0LFxuICAgIH07XG4gICAgc2V0U3RhdHVzKCd3YWl0aW5nJyk7XG4gICAgc2V0T3V0cHV0KCcnKTtcbiAgICB0cmFja0NsaWNrKCdydW4nLCB0cmFja2luZ0RhdGEpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcG9zdFNuaXBwZXQoZGF0YSwgc25pcHBldHNCYXNlVXJsKTtcbiAgICAgIGlmIChyZXNwb25zZS5zdGRlcnIubGVuZ3RoID4gMCkge1xuICAgICAgICBzZXRFcnJvclN0YXR1c0FuZE91dHB1dChyZXNwb25zZS5zdGRlcnIpO1xuICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5leGl0X2NvZGUgPT09IERPQ0tFUl9TSUdURVJNKSB7XG4gICAgICAgIHNldEVycm9yU3RhdHVzQW5kT3V0cHV0KFxuICAgICAgICAgICdZb3VyIGNvZGUgdG9vayB0b28gbG9uZyB0byByZXR1cm4gYSByZXN1bHQuIERvdWJsZSBjaGVjayB5b3VyIGNvZGUgZm9yIGFueSBpc3N1ZXMgYW5kIHRyeSBhZ2FpbiEnXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLmV4aXRfY29kZSAhPT0gMCkge1xuICAgICAgICBzZXRFcnJvclN0YXR1c0FuZE91dHB1dCgnQW4gdW5rbm93biBlcnJvciBvY2N1cmVkLicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0T3V0cHV0KHJlc3BvbnNlLnN0ZG91dCk7XG4gICAgICAgIHNldFN0YXR1cygncmVhZHknKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgc2V0RXJyb3JTdGF0dXNBbmRPdXRwdXQoJ0Vycm9yOiAnICsgZXJyb3IpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8RHJhd2Vyc1xuICAgICAgICBsZWZ0Q2hpbGQ9e1xuICAgICAgICAgIDxTaW1wbGVNb25hY29FZGl0b3JcbiAgICAgICAgICAgIHZhbHVlPXt0ZXh0fVxuICAgICAgICAgICAgbGFuZ3VhZ2U9e2xhbmd1YWdlfVxuICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgcmlnaHRDaGlsZD17XG4gICAgICAgICAgPE91dHB1dCBoYXNFcnJvcj17c3RhdHVzID09PSAnZXJyb3InfSBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgICAgIHtvdXRwdXR9XG4gICAgICAgICAgPC9PdXRwdXQ+XG4gICAgICAgIH1cbiAgICAgIC8+XG4gICAgICA8RmxleEJveFxuICAgICAgICBqdXN0aWZ5Q29udGVudD17aGlkZUNvcHlCdXR0b24gPyAnZmxleC1lbmQnIDogJ3NwYWNlLWJldHdlZW4nfVxuICAgICAgICBwbD17OH1cbiAgICAgID5cbiAgICAgICAgeyFoaWRlQ29weUJ1dHRvbiA/IChcbiAgICAgICAgICA8VG9vbFRpcFxuICAgICAgICAgICAgaWQ9XCJjb2RlYnl0ZS1jb3BpZWRcIlxuICAgICAgICAgICAgYWxpZ25tZW50PVwidG9wLXJpZ2h0XCJcbiAgICAgICAgICAgIG1vZGU9XCJkYXJrXCJcbiAgICAgICAgICAgIHRhcmdldD17XG4gICAgICAgICAgICAgIDxUZXh0QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25Db3B5Q2xpY2t9XG4gICAgICAgICAgICAgICAgb25CbHVyPXsoKSA9PiBzZXRJc0NvZGVCeXRlQ29waWVkKGZhbHNlKX1cbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImNvcHktY29kZWJ5dGUtYnRuXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDb3B5SWNvblN0eWxlZCBhcmlhLWhpZGRlbj1cInRydWVcIiAvPiBDb3B5IENvZGVieXRlXG4gICAgICAgICAgICAgIDwvVGV4dEJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNDb2RlQnl0ZUNvcGllZCA/IChcbiAgICAgICAgICAgICAgPHNwYW4gZGF0YS10ZXN0aWQ9XCJjb3B5LWNvbmZpcm1hdGlvbi10b29sdGlwXCIgcm9sZT1cImFsZXJ0XCI+XG4gICAgICAgICAgICAgICAgQ29waWVkIVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8c3BhbiBkYXRhLXRlc3RpZD1cImNvcHktcHJvbXB0LXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICBDb3B5IHRvIHlvdXIgY2xpcGJvYXJkXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Ub29sVGlwPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPEZpbGxCdXR0b24gb25DbGljaz17aGFuZGxlU3VibWl0fT5cbiAgICAgICAgICB7c3RhdHVzID09PSAnd2FpdGluZycgPyA8U3Bpbm5lciAvPiA6ICdSdW4nfVxuICAgICAgICA8L0ZpbGxCdXR0b24+XG4gICAgICA8L0ZsZXhCb3g+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */"));
|
|
38
38
|
|
|
39
39
|
var CopyIconStyled = /*#__PURE__*/_styled(CopyIcon, {
|
|
40
40
|
target: "e1lzxy8e0",
|
|
@@ -45,7 +45,7 @@ var CopyIconStyled = /*#__PURE__*/_styled(CopyIcon, {
|
|
|
45
45
|
} : {
|
|
46
46
|
name: "u7ytkp",
|
|
47
47
|
styles: "margin-right:0.5rem",
|
|
48
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
48
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lZGl0b3IudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlDdUMiLCJmaWxlIjoiLi4vc3JjL2VkaXRvci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBGaWxsQnV0dG9uLFxuICBGbGV4Qm94LFxuICBTcGlubmVyLFxuICBUZXh0QnV0dG9uLFxuICBUb29sVGlwLFxufSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgeyBDb3B5SWNvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCB7IFVzZXJDbGlja0RhdGEgfSBmcm9tICdAY29kZWNhZGVteS90cmFja2luZyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHBvc3RTbmlwcGV0IH0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHR5cGUgeyBMYW5ndWFnZU9wdGlvbiB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IERyYXdlcnMgfSBmcm9tICcuL2RyYXdlcnMnO1xuaW1wb3J0IHsgdHJhY2tDbGljayB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBTaW1wbGVNb25hY29FZGl0b3IgfSBmcm9tICcuL01vbmFjb0VkaXRvcic7XG5pbXBvcnQgeyBDb2RlYnl0ZXNDaGFuZ2VIYW5kbGVyIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IE91dHB1dCA9IHN0eWxlZC5wcmU8eyBoYXNFcnJvcjogYm9vbGVhbiB9PmBcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGZvbnQtZmFtaWx5OiBNb25hY287XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIG92ZXJmbG93OiBhdXRvO1xuICAkeyh7IGhhc0Vycm9yLCB0aGVtZSB9KSA9PiBgXG4gIGNvbG9yOiAke2hhc0Vycm9yID8gdGhlbWUuY29sb3JzLm9yYW5nZSA6IHRoZW1lLmNvbG9ycy53aGl0ZX07XG4gIGJhY2tncm91bmQtY29sb3I6ICR7dGhlbWUuY29sb3JzWyduYXZ5LTkwMCddfTtcbmB9XG5gO1xuXG5jb25zdCBDb3B5SWNvblN0eWxlZCA9IHN0eWxlZChDb3B5SWNvbilgXG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuYDtcblxuY29uc3QgRE9DS0VSX1NJR1RFUk0gPSAxNDM7XG5cbnR5cGUgRWRpdG9yUHJvcHMgPSB7XG4gIGhpZGVDb3B5QnV0dG9uOiBib29sZWFuO1xuICBsYW5ndWFnZTogTGFuZ3VhZ2VPcHRpb247XG4gIHRleHQ6IHN0cmluZztcbiAgb25DaGFuZ2U6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHNuaXBwZXRzQmFzZVVybD86IHN0cmluZztcbiAgb25Db3B5PzogQ29kZWJ5dGVzQ2hhbmdlSGFuZGxlcjtcbiAgdHJhY2tpbmdEYXRhPzogT21pdDxVc2VyQ2xpY2tEYXRhLCAndGFyZ2V0Jz47XG59O1xuXG5leHBvcnQgY29uc3QgRWRpdG9yOiBSZWFjdC5GQzxFZGl0b3JQcm9wcz4gPSAoe1xuICBsYW5ndWFnZSxcbiAgdGV4dCxcbiAgaGlkZUNvcHlCdXR0b24sXG4gIG9uQ2hhbmdlLFxuICBvbkNvcHksXG4gIHNuaXBwZXRzQmFzZVVybCxcbiAgdHJhY2tpbmdEYXRhLFxufSkgPT4ge1xuICBjb25zdCBbb3V0cHV0LCBzZXRPdXRwdXRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbc3RhdHVzLCBzZXRTdGF0dXNdID0gdXNlU3RhdGU8J3JlYWR5JyB8ICd3YWl0aW5nJyB8ICdlcnJvcic+KCdyZWFkeScpO1xuICBjb25zdCBbaXNDb2RlQnl0ZUNvcGllZCwgc2V0SXNDb2RlQnl0ZUNvcGllZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IG9uQ29weUNsaWNrID0gKCkgPT4ge1xuICAgIGlmICghaXNDb2RlQnl0ZUNvcGllZCkge1xuICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZFxuICAgICAgICAud3JpdGVUZXh0KHRleHQpXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIC5jYXRjaCgoKSA9PiBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gY29weScpKTtcbiAgICAgIHNldElzQ29kZUJ5dGVDb3BpZWQodHJ1ZSk7XG4gICAgICBvbkNvcHk/Lih0ZXh0LCBsYW5ndWFnZSk7XG4gICAgICB0cmFja0NsaWNrKCdjb3B5JywgdHJhY2tpbmdEYXRhKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc2V0RXJyb3JTdGF0dXNBbmRPdXRwdXQgPSAobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0T3V0cHV0KG1lc3NhZ2UpO1xuICAgIHNldFN0YXR1cygnZXJyb3InKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKHRleHQudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgbGFuZ3VhZ2UsXG4gICAgICBjb2RlOiB0ZXh0LFxuICAgIH07XG4gICAgc2V0U3RhdHVzKCd3YWl0aW5nJyk7XG4gICAgc2V0T3V0cHV0KCcnKTtcbiAgICB0cmFja0NsaWNrKCdydW4nLCB0cmFja2luZ0RhdGEpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcG9zdFNuaXBwZXQoZGF0YSwgc25pcHBldHNCYXNlVXJsKTtcbiAgICAgIGlmIChyZXNwb25zZS5zdGRlcnIubGVuZ3RoID4gMCkge1xuICAgICAgICBzZXRFcnJvclN0YXR1c0FuZE91dHB1dChyZXNwb25zZS5zdGRlcnIpO1xuICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5leGl0X2NvZGUgPT09IERPQ0tFUl9TSUdURVJNKSB7XG4gICAgICAgIHNldEVycm9yU3RhdHVzQW5kT3V0cHV0KFxuICAgICAgICAgICdZb3VyIGNvZGUgdG9vayB0b28gbG9uZyB0byByZXR1cm4gYSByZXN1bHQuIERvdWJsZSBjaGVjayB5b3VyIGNvZGUgZm9yIGFueSBpc3N1ZXMgYW5kIHRyeSBhZ2FpbiEnXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLmV4aXRfY29kZSAhPT0gMCkge1xuICAgICAgICBzZXRFcnJvclN0YXR1c0FuZE91dHB1dCgnQW4gdW5rbm93biBlcnJvciBvY2N1cmVkLicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0T3V0cHV0KHJlc3BvbnNlLnN0ZG91dCk7XG4gICAgICAgIHNldFN0YXR1cygncmVhZHknKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgc2V0RXJyb3JTdGF0dXNBbmRPdXRwdXQoJ0Vycm9yOiAnICsgZXJyb3IpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8RHJhd2Vyc1xuICAgICAgICBsZWZ0Q2hpbGQ9e1xuICAgICAgICAgIDxTaW1wbGVNb25hY29FZGl0b3JcbiAgICAgICAgICAgIHZhbHVlPXt0ZXh0fVxuICAgICAgICAgICAgbGFuZ3VhZ2U9e2xhbmd1YWdlfVxuICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgcmlnaHRDaGlsZD17XG4gICAgICAgICAgPE91dHB1dCBoYXNFcnJvcj17c3RhdHVzID09PSAnZXJyb3InfSBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgICAgIHtvdXRwdXR9XG4gICAgICAgICAgPC9PdXRwdXQ+XG4gICAgICAgIH1cbiAgICAgIC8+XG4gICAgICA8RmxleEJveFxuICAgICAgICBqdXN0aWZ5Q29udGVudD17aGlkZUNvcHlCdXR0b24gPyAnZmxleC1lbmQnIDogJ3NwYWNlLWJldHdlZW4nfVxuICAgICAgICBwbD17OH1cbiAgICAgID5cbiAgICAgICAgeyFoaWRlQ29weUJ1dHRvbiA/IChcbiAgICAgICAgICA8VG9vbFRpcFxuICAgICAgICAgICAgaWQ9XCJjb2RlYnl0ZS1jb3BpZWRcIlxuICAgICAgICAgICAgYWxpZ25tZW50PVwidG9wLXJpZ2h0XCJcbiAgICAgICAgICAgIG1vZGU9XCJkYXJrXCJcbiAgICAgICAgICAgIHRhcmdldD17XG4gICAgICAgICAgICAgIDxUZXh0QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25Db3B5Q2xpY2t9XG4gICAgICAgICAgICAgICAgb25CbHVyPXsoKSA9PiBzZXRJc0NvZGVCeXRlQ29waWVkKGZhbHNlKX1cbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImNvcHktY29kZWJ5dGUtYnRuXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDb3B5SWNvblN0eWxlZCBhcmlhLWhpZGRlbj1cInRydWVcIiAvPiBDb3B5IENvZGVieXRlXG4gICAgICAgICAgICAgIDwvVGV4dEJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNDb2RlQnl0ZUNvcGllZCA/IChcbiAgICAgICAgICAgICAgPHNwYW4gZGF0YS10ZXN0aWQ9XCJjb3B5LWNvbmZpcm1hdGlvbi10b29sdGlwXCIgcm9sZT1cImFsZXJ0XCI+XG4gICAgICAgICAgICAgICAgQ29waWVkIVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8c3BhbiBkYXRhLXRlc3RpZD1cImNvcHktcHJvbXB0LXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICBDb3B5IHRvIHlvdXIgY2xpcGJvYXJkXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Ub29sVGlwPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPEZpbGxCdXR0b24gb25DbGljaz17aGFuZGxlU3VibWl0fT5cbiAgICAgICAgICB7c3RhdHVzID09PSAnd2FpdGluZycgPyA8U3Bpbm5lciAvPiA6ICdSdW4nfVxuICAgICAgICA8L0ZpbGxCdXR0b24+XG4gICAgICA8L0ZsZXhCb3g+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */",
|
|
49
49
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
50
50
|
});
|
|
51
51
|
|
|
@@ -56,7 +56,8 @@ export var Editor = function Editor(_ref2) {
|
|
|
56
56
|
hideCopyButton = _ref2.hideCopyButton,
|
|
57
57
|
onChange = _ref2.onChange,
|
|
58
58
|
onCopy = _ref2.onCopy,
|
|
59
|
-
snippetsBaseUrl = _ref2.snippetsBaseUrl
|
|
59
|
+
snippetsBaseUrl = _ref2.snippetsBaseUrl,
|
|
60
|
+
trackingData = _ref2.trackingData;
|
|
60
61
|
|
|
61
62
|
var _useState = useState(''),
|
|
62
63
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -81,7 +82,7 @@ export var Editor = function Editor(_ref2) {
|
|
|
81
82
|
});
|
|
82
83
|
setIsCodeByteCopied(true);
|
|
83
84
|
onCopy === null || onCopy === void 0 ? void 0 : onCopy(text, language);
|
|
84
|
-
trackClick('copy');
|
|
85
|
+
trackClick('copy', trackingData);
|
|
85
86
|
}
|
|
86
87
|
};
|
|
87
88
|
|
|
@@ -111,7 +112,7 @@ export var Editor = function Editor(_ref2) {
|
|
|
111
112
|
};
|
|
112
113
|
setStatus('waiting');
|
|
113
114
|
setOutput('');
|
|
114
|
-
trackClick('run');
|
|
115
|
+
trackClick('run', trackingData);
|
|
115
116
|
_context.prev = 6;
|
|
116
117
|
_context.next = 9;
|
|
117
118
|
return postSnippet(data, snippetsBaseUrl);
|
package/dist/helpers/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { UserClickData } from '@codecademy/tracking';
|
|
1
2
|
export declare type CodebyteOptions = {
|
|
2
3
|
clientName: string;
|
|
3
4
|
parentPage: string;
|
|
@@ -12,4 +13,4 @@ export declare enum CodebytesParams {
|
|
|
12
13
|
Mode = "mode"
|
|
13
14
|
}
|
|
14
15
|
export declare const getOptions: () => CodebyteOptions;
|
|
15
|
-
export declare const trackClick: (target: string) => void;
|
|
16
|
+
export declare const trackClick: (target: string, trackingData?: Omit<UserClickData, "target"> | undefined) => void;
|
package/dist/helpers/index.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
|
+
|
|
5
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
|
|
1
7
|
import { trackUserClick } from '../libs/eventTracking';
|
|
2
8
|
export var CodebytesParams;
|
|
3
9
|
|
|
@@ -18,7 +24,13 @@ export var getOptions = function getOptions() {
|
|
|
18
24
|
renderMode: currentUri.searchParams.get(CodebytesParams.Mode) || ''
|
|
19
25
|
};
|
|
20
26
|
};
|
|
21
|
-
export var trackClick = function trackClick(target) {
|
|
27
|
+
export var trackClick = function trackClick(target, trackingData) {
|
|
28
|
+
if (trackingData) {
|
|
29
|
+
return trackUserClick(_objectSpread(_objectSpread({}, trackingData), {}, {
|
|
30
|
+
target: target
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
|
|
22
34
|
var options = getOptions();
|
|
23
35
|
var page_name = options.renderMode ? "".concat(options.clientName, "_").concat(options.renderMode) : options.clientName;
|
|
24
36
|
trackUserClick({
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './codeByteEditor';
|
|
2
|
-
export
|
|
2
|
+
export * from './consts';
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './codeByteEditor';
|
|
2
|
-
export
|
|
2
|
+
export * from './consts';
|
package/dist/types.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
+
import { BackgroundProps } from '@codecademy/gamut-styles';
|
|
2
|
+
import { UserClickData } from '@codecademy/tracking';
|
|
1
3
|
import { LanguageOption } from './consts';
|
|
2
4
|
export interface CodebytesChangeHandler {
|
|
3
5
|
(text: string, language: LanguageOption): void;
|
|
4
6
|
}
|
|
5
|
-
export interface CodeByteEditorProps {
|
|
7
|
+
export interface CodeByteEditorProps extends Omit<BackgroundProps, 'onCopy' | 'bg'> {
|
|
6
8
|
text?: string;
|
|
7
9
|
language?: LanguageOption;
|
|
8
10
|
hideCopyButton?: boolean;
|
|
9
11
|
onCopy?: CodebytesChangeHandler;
|
|
10
|
-
isIFrame?: boolean;
|
|
11
12
|
snippetsBaseUrl?: string;
|
|
12
13
|
onEdit?: CodebytesChangeHandler;
|
|
13
14
|
onLanguageChange?: CodebytesChangeHandler;
|
|
15
|
+
trackingData?: Omit<UserClickData, 'target'>;
|
|
14
16
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codecademy/codebytes",
|
|
3
3
|
"description": "Codebytes Code Editor",
|
|
4
|
-
"version": "0.6.
|
|
4
|
+
"version": "0.6.6-alpha.0b4b90.0",
|
|
5
5
|
"author": "Codecademy Engineering <dev@codecademy.com>",
|
|
6
6
|
"sideEffects": [
|
|
7
7
|
"**/*.css",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"files": [
|
|
65
65
|
"dist/**"
|
|
66
66
|
],
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "51c574c613f623306ce88f0c426bd93b2adb1bb2"
|
|
68
68
|
}
|