@khanacademy/perseus-editor 2.3.12 → 2.4.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 +20 -0
- package/dist/editor-page.d.ts +2 -1
- package/dist/editor-page.js.flow +1 -2
- package/dist/es/index.js +23 -16
- package/dist/es/index.js.map +1 -1
- package/dist/index.js +23 -16
- package/dist/index.js.map +1 -1
- package/dist/widgets/categorizer-editor.d.ts +1 -0
- package/dist/widgets/categorizer-editor.js.flow +1 -0
- package/dist/widgets/example-graphie-widget.d.ts +1 -0
- package/dist/widgets/example-graphie-widget.js.flow +1 -0
- package/dist/widgets/graded-group-editor.d.ts +1 -0
- package/dist/widgets/graded-group-editor.js.flow +1 -0
- package/dist/widgets/graded-group-set-editor.d.ts +1 -0
- package/dist/widgets/graded-group-set-editor.js.flow +1 -0
- package/dist/widgets/group-editor.d.ts +1 -0
- package/dist/widgets/group-editor.js.flow +1 -0
- package/dist/widgets/interactive-graph-editor.d.ts +92 -0
- package/dist/widgets/interactive-graph-editor.js.flow +92 -0
- package/dist/widgets/radio/editor.d.ts +1 -0
- package/dist/widgets/radio/editor.js.flow +1 -0
- package/dist/widgets/sequence-editor.d.ts +1 -0
- package/dist/widgets/sequence-editor.js.flow +1 -0
- package/package.json +2 -2
- package/src/editor-page.tsx +1 -2
- package/src/widgets/image-editor.tsx +40 -17
- package/tsconfig-build.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @khanacademy/perseus-editor
|
|
2
2
|
|
|
3
|
+
## 2.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 97d02dac: Fixes a bug where images don't get dimensions in the image editor, and adds small preview to the image editor
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [5611204a]
|
|
12
|
+
- @khanacademy/perseus@7.0.1
|
|
13
|
+
|
|
14
|
+
## 2.3.13
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- Updated dependencies [f9ee9d24]
|
|
19
|
+
- Updated dependencies [b18986d3]
|
|
20
|
+
- Updated dependencies [b18986d3]
|
|
21
|
+
- @khanacademy/perseus@7.0.0
|
|
22
|
+
|
|
3
23
|
## 2.3.12
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/dist/editor-page.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import type { APIOptions, APIOptionsWithDefaults, ChangeHandler, DeviceType, Hint, ImageUploader,
|
|
2
|
+
import type { APIOptions, APIOptionsWithDefaults, ChangeHandler, DeviceType, Hint, ImageUploader, Version } from "@khanacademy/perseus";
|
|
3
|
+
import type { RendererInterface, KEScore } from "@khanacademy/perseus-core";
|
|
3
4
|
type Props = {
|
|
4
5
|
apiOptions?: APIOptions;
|
|
5
6
|
answerArea?: any;
|
package/dist/editor-page.js.flow
CHANGED
|
@@ -12,10 +12,9 @@ import type {
|
|
|
12
12
|
DeviceType,
|
|
13
13
|
Hint,
|
|
14
14
|
ImageUploader,
|
|
15
|
-
RendererInterface,
|
|
16
15
|
Version,
|
|
17
|
-
KEScore,
|
|
18
16
|
} from "@khanacademy/perseus";
|
|
17
|
+
import type { RendererInterface, KEScore } from "@khanacademy/perseus-core";
|
|
19
18
|
declare type Props = {|
|
|
20
19
|
apiOptions?: APIOptions,
|
|
21
20
|
answerArea?: any,
|
package/dist/es/index.js
CHANGED
|
@@ -28178,7 +28178,13 @@ const ImageEditor = createReactClass({
|
|
|
28178
28178
|
const backgroundImage = this.props.backgroundImage;
|
|
28179
28179
|
const imageSettings = /*#__PURE__*/React.createElement("div", {
|
|
28180
28180
|
className: "image-settings"
|
|
28181
|
-
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("label", null, /*#__PURE__*/React.createElement("div", null, "
|
|
28181
|
+
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("label", null, /*#__PURE__*/React.createElement("div", null, "Preview:"), /*#__PURE__*/React.createElement("img", {
|
|
28182
|
+
alt: "Editor preview of image",
|
|
28183
|
+
src: backgroundImage.url,
|
|
28184
|
+
style: {
|
|
28185
|
+
width: "100%"
|
|
28186
|
+
}
|
|
28187
|
+
}))), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("label", null, /*#__PURE__*/React.createElement("div", null, "Dimensions:"), /*#__PURE__*/React.createElement("p", null, backgroundImage.width, "x", backgroundImage.height))), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("label", null, /*#__PURE__*/React.createElement("div", null, "Alt text:", /*#__PURE__*/React.createElement(InfoTip$g, null, "This is important for screenreaders. The content of this alt text will be formatted as markdown (tables, emphasis, etc. are supported).")), /*#__PURE__*/React.createElement(Editor, {
|
|
28182
28188
|
apiOptions: this.props.apiOptions,
|
|
28183
28189
|
content: this.props.alt,
|
|
28184
28190
|
onChange: props => {
|
|
@@ -28312,7 +28318,13 @@ const ImageEditor = createReactClass({
|
|
|
28312
28318
|
// silently load the image when the component mounts
|
|
28313
28319
|
// silently update url and sizes when the image loads
|
|
28314
28320
|
// noisily load the image in response to the author changing it
|
|
28315
|
-
onUrlChange: function (url, silent) {
|
|
28321
|
+
onUrlChange: async function (url, silent) {
|
|
28322
|
+
// Check if we've been passed something that looks like a URL
|
|
28323
|
+
if (!url) {
|
|
28324
|
+
this.setUrl(url, 0, 0, silent);
|
|
28325
|
+
return;
|
|
28326
|
+
}
|
|
28327
|
+
|
|
28316
28328
|
// All article content must be KA-owned!
|
|
28317
28329
|
if (!INTERNALLY_HOSTED_URL_RE.test(url)) {
|
|
28318
28330
|
this.setState({
|
|
@@ -28320,24 +28332,19 @@ const ImageEditor = createReactClass({
|
|
|
28320
28332
|
});
|
|
28321
28333
|
return;
|
|
28322
28334
|
}
|
|
28335
|
+
|
|
28336
|
+
// Clear previous errors
|
|
28323
28337
|
this.setState({
|
|
28324
28338
|
backgroundImageError: ""
|
|
28325
28339
|
});
|
|
28326
|
-
|
|
28327
|
-
|
|
28328
|
-
|
|
28329
|
-
|
|
28330
|
-
|
|
28331
|
-
|
|
28332
|
-
|
|
28333
|
-
return;
|
|
28340
|
+
try {
|
|
28341
|
+
const size = await Util.getImageSizeModern(url);
|
|
28342
|
+
this.setUrl(url, size[0], size[1], true);
|
|
28343
|
+
} catch (error) {
|
|
28344
|
+
this.setState({
|
|
28345
|
+
backgroundImageError: `There was an error loading the image URL: ${error}`
|
|
28346
|
+
});
|
|
28334
28347
|
}
|
|
28335
|
-
Util.getImageSize(url, (width, height) => {
|
|
28336
|
-
if (this._leadingUrl !== url) {
|
|
28337
|
-
return;
|
|
28338
|
-
}
|
|
28339
|
-
this.setUrl(url, width, height, true);
|
|
28340
|
-
});
|
|
28341
28348
|
},
|
|
28342
28349
|
onRangeChange: function (type, newRange) {
|
|
28343
28350
|
const range = this.props.range.slice();
|