@pie-element/drawing-response 4.6.1-beta.3 → 4.6.1-beta.4

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.
Files changed (51) hide show
  1. package/configure/lib/button.js +51 -0
  2. package/configure/lib/button.js.map +1 -0
  3. package/configure/lib/defaults.js +56 -0
  4. package/configure/lib/defaults.js.map +1 -0
  5. package/configure/lib/image-container.js +318 -0
  6. package/configure/lib/image-container.js.map +1 -0
  7. package/configure/lib/index.js +141 -0
  8. package/configure/lib/index.js.map +1 -0
  9. package/configure/lib/root.js +220 -0
  10. package/configure/lib/root.js.map +1 -0
  11. package/controller/lib/defaults.js +16 -0
  12. package/controller/lib/defaults.js.map +1 -0
  13. package/controller/lib/index.js +68 -0
  14. package/controller/lib/index.js.map +1 -0
  15. package/lib/drawing-response/button.js +64 -0
  16. package/lib/drawing-response/button.js.map +1 -0
  17. package/lib/drawing-response/constants.js +44 -0
  18. package/lib/drawing-response/constants.js.map +1 -0
  19. package/lib/drawing-response/container.js +298 -0
  20. package/lib/drawing-response/container.js.map +1 -0
  21. package/lib/drawing-response/drawable-circle.js +98 -0
  22. package/lib/drawing-response/drawable-circle.js.map +1 -0
  23. package/lib/drawing-response/drawable-eraser.js +80 -0
  24. package/lib/drawing-response/drawable-eraser.js.map +1 -0
  25. package/lib/drawing-response/drawable-free-path.js +90 -0
  26. package/lib/drawing-response/drawable-free-path.js.map +1 -0
  27. package/lib/drawing-response/drawable-helper.js +40 -0
  28. package/lib/drawing-response/drawable-helper.js.map +1 -0
  29. package/lib/drawing-response/drawable-image.js +51 -0
  30. package/lib/drawing-response/drawable-image.js.map +1 -0
  31. package/lib/drawing-response/drawable-line.js +93 -0
  32. package/lib/drawing-response/drawable-line.js.map +1 -0
  33. package/lib/drawing-response/drawable-main.js +349 -0
  34. package/lib/drawing-response/drawable-main.js.map +1 -0
  35. package/lib/drawing-response/drawable-palette.js +145 -0
  36. package/lib/drawing-response/drawable-palette.js.map +1 -0
  37. package/lib/drawing-response/drawable-rectangle.js +98 -0
  38. package/lib/drawing-response/drawable-rectangle.js.map +1 -0
  39. package/lib/drawing-response/drawable-text.js +328 -0
  40. package/lib/drawing-response/drawable-text.js.map +1 -0
  41. package/lib/drawing-response/drawable-transformer.js +75 -0
  42. package/lib/drawing-response/drawable-transformer.js.map +1 -0
  43. package/lib/drawing-response/factory.js +24 -0
  44. package/lib/drawing-response/factory.js.map +1 -0
  45. package/lib/drawing-response/icon.js +55 -0
  46. package/lib/drawing-response/icon.js.map +1 -0
  47. package/lib/drawing-response/index.js +102 -0
  48. package/lib/drawing-response/index.js.map +1 -0
  49. package/lib/index.js +87 -0
  50. package/lib/index.js.map +1 -0
  51. package/package.json +2 -2
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _styles = require("@material-ui/core/styles");
11
+ var _classnames = _interopRequireDefault(require("classnames"));
12
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
13
+ var RawButton = function RawButton(_ref) {
14
+ var classes = _ref.classes,
15
+ className = _ref.className,
16
+ label = _ref.label,
17
+ onClick = _ref.onClick,
18
+ disabled = _ref.disabled;
19
+ return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
20
+ onClick: onClick,
21
+ disabled: disabled,
22
+ className: (0, _classnames["default"])(classes.addButton, className),
23
+ size: "small",
24
+ variant: "contained",
25
+ color: "default"
26
+ }, label);
27
+ };
28
+ RawButton.propTypes = {
29
+ classes: _propTypes["default"].object.isRequired,
30
+ className: _propTypes["default"].string,
31
+ disabled: _propTypes["default"].bool,
32
+ label: _propTypes["default"].string,
33
+ onClick: _propTypes["default"].func
34
+ };
35
+ RawButton.defaultProps = {
36
+ className: '',
37
+ disabled: false,
38
+ label: 'Add',
39
+ onClick: function onClick() {}
40
+ };
41
+ var styles = function styles() {
42
+ return {
43
+ addButton: {
44
+ marginLeft: 8
45
+ }
46
+ };
47
+ };
48
+ var ButtonStyled = (0, _styles.withStyles)(styles)(RawButton);
49
+ var _default = ButtonStyled;
50
+ exports["default"] = _default;
51
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_classnames","_Button","RawButton","_ref","classes","className","label","onClick","disabled","createElement","classNames","addButton","size","variant","color","propTypes","PropTypes","object","isRequired","string","bool","func","defaultProps","styles","marginLeft","ButtonStyled","withStyles","_default","exports"],"sources":["../src/button.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Button from '@material-ui/core/Button';\n\nconst RawButton = ({ classes, className, label, onClick, disabled }) => (\n <Button\n onClick={onClick}\n disabled={disabled}\n className={classNames(classes.addButton, className)}\n size=\"small\"\n variant=\"contained\"\n color=\"default\"\n >\n {label}\n </Button>\n);\n\nRawButton.propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n label: PropTypes.string,\n onClick: PropTypes.func,\n};\n\nRawButton.defaultProps = {\n className: '',\n disabled: false,\n label: 'Add',\n onClick: () => {},\n};\n\nconst styles = () => ({\n addButton: {\n marginLeft: 8,\n },\n});\n\nconst ButtonStyled = withStyles(styles)(RawButton);\n\nexport default ButtonStyled;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,IAAMK,SAAS,GAAG,SAAZA,SAASA,CAAAC,IAAA;EAAA,IAAMC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,SAAS,GAAAF,IAAA,CAATE,SAAS;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAEC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IAAEC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;EAAA,oBAC/Db,MAAA,YAAAc,aAAA,CAACR,OAAA,WAAM;IACLM,OAAO,EAAEA,OAAQ;IACjBC,QAAQ,EAAEA,QAAS;IACnBH,SAAS,EAAE,IAAAK,sBAAU,EAACN,OAAO,CAACO,SAAS,EAAEN,SAAS,CAAE;IACpDO,IAAI,EAAC,OAAO;IACZC,OAAO,EAAC,WAAW;IACnBC,KAAK,EAAC;EAAS,GAEdR,KACK,CAAC;AAAA,CACV;AAEDJ,SAAS,CAACa,SAAS,GAAG;EACpBX,OAAO,EAAEY,qBAAS,CAACC,MAAM,CAACC,UAAU;EACpCb,SAAS,EAAEW,qBAAS,CAACG,MAAM;EAC3BX,QAAQ,EAAEQ,qBAAS,CAACI,IAAI;EACxBd,KAAK,EAAEU,qBAAS,CAACG,MAAM;EACvBZ,OAAO,EAAES,qBAAS,CAACK;AACrB,CAAC;AAEDnB,SAAS,CAACoB,YAAY,GAAG;EACvBjB,SAAS,EAAE,EAAE;EACbG,QAAQ,EAAE,KAAK;EACfF,KAAK,EAAE,KAAK;EACZC,OAAO,EAAE,SAAAA,QAAA,EAAM,CAAC;AAClB,CAAC;AAED,IAAMgB,MAAM,GAAG,SAATA,MAAMA,CAAA;EAAA,OAAU;IACpBZ,SAAS,EAAE;MACTa,UAAU,EAAE;IACd;EACF,CAAC;AAAA,CAAC;AAEF,IAAMC,YAAY,GAAG,IAAAC,kBAAU,EAACH,MAAM,CAAC,CAACrB,SAAS,CAAC;AAAC,IAAAyB,QAAA,GAEpCF,YAAY;AAAAG,OAAA,cAAAD,QAAA"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _default = {
8
+ model: {
9
+ prompt: 'This is the question prompt',
10
+ imageUrl: '',
11
+ imageDimensions: {
12
+ height: 0,
13
+ width: 0
14
+ },
15
+ promptEnabled: true,
16
+ teacherInstructionsEnabled: true,
17
+ studentInstructionsEnabled: true,
18
+ backgroundImageEnabled: true,
19
+ spellCheckEnabled: true,
20
+ toolbarEditorPosition: 'bottom'
21
+ },
22
+ configuration: {
23
+ spellCheck: {
24
+ label: 'Spellcheck',
25
+ settings: false,
26
+ enabled: true
27
+ },
28
+ backgroundImage: {
29
+ settings: true,
30
+ label: 'Background Image'
31
+ },
32
+ prompt: {
33
+ settings: true,
34
+ label: 'Prompt'
35
+ },
36
+ settingsPanelDisabled: false,
37
+ teacherInstructions: {
38
+ settings: true,
39
+ label: 'Teacher Instructions'
40
+ },
41
+ maxImageWidth: {
42
+ teacherInstructions: 300,
43
+ prompt: 300
44
+ },
45
+ maxImageHeight: {
46
+ teacherInstructions: 300,
47
+ prompt: 300
48
+ },
49
+ withRubric: {
50
+ settings: false,
51
+ label: 'Add Rubric'
52
+ }
53
+ }
54
+ };
55
+ exports["default"] = _default;
56
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","names":["model","prompt","imageUrl","imageDimensions","height","width","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","backgroundImageEnabled","spellCheckEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","enabled","backgroundImage","settingsPanelDisabled","teacherInstructions","maxImageWidth","maxImageHeight","withRubric","exports","_default"],"sources":["../src/defaults.js"],"sourcesContent":["export default {\n model: {\n prompt: 'This is the question prompt',\n imageUrl: '',\n imageDimensions: {\n height: 0,\n width: 0,\n },\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n backgroundImageEnabled: true,\n spellCheckEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n backgroundImage: {\n settings: true,\n label: 'Background Image',\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n },\n settingsPanelDisabled: false,\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n },\n};\n"],"mappings":";;;;;;eAAe;EACbA,KAAK,EAAE;IACLC,MAAM,EAAE,6BAA6B;IACrCC,QAAQ,EAAE,EAAE;IACZC,eAAe,EAAE;MACfC,MAAM,EAAE,CAAC;MACTC,KAAK,EAAE;IACT,CAAC;IACDC,aAAa,EAAE,IAAI;IACnBC,0BAA0B,EAAE,IAAI;IAChCC,0BAA0B,EAAE,IAAI;IAChCC,sBAAsB,EAAE,IAAI;IAC5BC,iBAAiB,EAAE,IAAI;IACvBC,qBAAqB,EAAE;EACzB,CAAC;EACDC,aAAa,EAAE;IACbC,UAAU,EAAE;MACVC,KAAK,EAAE,YAAY;MACnBC,QAAQ,EAAE,KAAK;MACfC,OAAO,EAAE;IACX,CAAC;IACDC,eAAe,EAAE;MACfF,QAAQ,EAAE,IAAI;MACdD,KAAK,EAAE;IACT,CAAC;IACDb,MAAM,EAAE;MACNc,QAAQ,EAAE,IAAI;MACdD,KAAK,EAAE;IACT,CAAC;IACDI,qBAAqB,EAAE,KAAK;IAC5BC,mBAAmB,EAAE;MACnBJ,QAAQ,EAAE,IAAI;MACdD,KAAK,EAAE;IACT,CAAC;IACDM,aAAa,EAAE;MACbD,mBAAmB,EAAE,GAAG;MACxBlB,MAAM,EAAE;IACV,CAAC;IACDoB,cAAc,EAAE;MACdF,mBAAmB,EAAE,GAAG;MACxBlB,MAAM,EAAE;IACV,CAAC;IACDqB,UAAU,EAAE;MACVP,QAAQ,EAAE,KAAK;MACfD,KAAK,EAAE;IACT;EACF;AACF,CAAC;AAAAS,OAAA,cAAAC,QAAA"}
@@ -0,0 +1,318 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.ImageContainer = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+ var _react = _interopRequireWildcard(require("react"));
18
+ var _propTypes = _interopRequireDefault(require("prop-types"));
19
+ var _styles = require("@material-ui/core/styles");
20
+ var _button = _interopRequireDefault(require("./button"));
21
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
24
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
25
+ var isImage = function isImage(file) {
26
+ var imageType = /image.*/;
27
+ return file.type.match(imageType);
28
+ };
29
+ var ImageContainer = /*#__PURE__*/function (_Component) {
30
+ (0, _inherits2["default"])(ImageContainer, _Component);
31
+ var _super = _createSuper(ImageContainer);
32
+ function ImageContainer(props) {
33
+ var _this;
34
+ (0, _classCallCheck2["default"])(this, ImageContainer);
35
+ _this = _super.call(this, props);
36
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleFileRead", function (file) {
37
+ var onImageUpload = _this.props.onImageUpload;
38
+ var reader = new FileReader();
39
+ reader.onloadend = function () {
40
+ onImageUpload(reader.result);
41
+ };
42
+ reader.readAsDataURL(file);
43
+ });
44
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleUploadImage", function (e) {
45
+ e.preventDefault();
46
+ var file = e.target.files[0];
47
+ _this.handleFileRead(file);
48
+ });
49
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "makeDropzoneActive", function () {
50
+ return _this.setState({
51
+ dropzoneActive: true
52
+ });
53
+ });
54
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "makeDropzoneInactive", function () {
55
+ return _this.setState({
56
+ dropzoneActive: false
57
+ });
58
+ });
59
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleOnDrop", function (e) {
60
+ e.preventDefault();
61
+ var _e$dataTransfer = e.dataTransfer,
62
+ items = _e$dataTransfer.items,
63
+ files = _e$dataTransfer.files;
64
+ if (items && items[0].kind === 'file') {
65
+ var file = items[0].getAsFile();
66
+ if (isImage(file)) {
67
+ _this.handleFileRead(file);
68
+ }
69
+ } else if (isImage(files[0])) {
70
+ _this.handleFileRead(files[0]);
71
+ }
72
+ _this.makeDropzoneInactive();
73
+ });
74
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleOnDragOver", function (e) {
75
+ e.preventDefault();
76
+ var dropzoneActive = _this.state.dropzoneActive;
77
+ if (!dropzoneActive) {
78
+ _this.makeDropzoneActive();
79
+ }
80
+ });
81
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleOnDragExit", function (e) {
82
+ e.preventDefault();
83
+ _this.makeDropzoneInactive();
84
+ });
85
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleEnableDrag", function () {
86
+ return _this.setState({
87
+ dragEnabled: true
88
+ });
89
+ });
90
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleDisableDrag", function () {
91
+ return _this.setState({
92
+ dragEnabled: false
93
+ });
94
+ });
95
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleInputClick", function () {
96
+ return _this.input.click();
97
+ });
98
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleOnImageLoad", function (_ref) {
99
+ var _ref$target = _ref.target,
100
+ offsetHeight = _ref$target.offsetHeight,
101
+ offsetWidth = _ref$target.offsetWidth,
102
+ naturalHeight = _ref$target.naturalHeight,
103
+ naturalWidth = _ref$target.naturalWidth;
104
+ var _this$props = _this.props,
105
+ onUpdateImageDimension = _this$props.onUpdateImageDimension,
106
+ imageDimensions = _this$props.imageDimensions;
107
+ var resizeHandle = _this.resize;
108
+ var dimensions = {
109
+ height: imageDimensions && imageDimensions.height || offsetHeight || naturalHeight,
110
+ width: imageDimensions && imageDimensions.width || offsetWidth || naturalWidth
111
+ };
112
+
113
+ // check if aspect ratio is not respected on replacing image
114
+ var imageAspectRatio = naturalWidth / naturalHeight;
115
+ if (dimensions.width !== dimensions.height * imageAspectRatio) {
116
+ dimensions.width = dimensions.height * imageAspectRatio;
117
+ }
118
+ _this.setState({
119
+ dimensions: dimensions
120
+ });
121
+ onUpdateImageDimension(dimensions);
122
+ resizeHandle.addEventListener('mousedown', _this.initialiseResize, false);
123
+ });
124
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "initialiseResize", function () {
125
+ window.addEventListener('mousemove', _this.startResizing, false);
126
+ window.addEventListener('mouseup', _this.stopResizing, false);
127
+ });
128
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "stopResizing", function () {
129
+ var onUpdateImageDimension = _this.props.onUpdateImageDimension;
130
+ var dimensions = _this.state.dimensions;
131
+ _this.handleEnableDrag();
132
+ onUpdateImageDimension(dimensions);
133
+ window.removeEventListener('mousemove', _this.startResizing, false);
134
+ window.removeEventListener('mouseup', _this.stopResizing, false);
135
+ });
136
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "startResizing", function (e) {
137
+ var box = _this.image;
138
+ var _this$state = _this.state,
139
+ maxImageWidth = _this$state.maxImageWidth,
140
+ maxImageHeight = _this$state.maxImageHeight,
141
+ dimensions = _this$state.dimensions;
142
+ var bounds = e.target.getBoundingClientRect();
143
+ var x = e.clientX - bounds.left;
144
+ var y = e.clientY - bounds.top;
145
+ var imageAspectRatio = dimensions.width / dimensions.height;
146
+ var fitsContainer = x <= maxImageWidth + 5 && x / imageAspectRatio <= maxImageHeight + 5;
147
+ var hasMinimumWidth = x > 150 && y > 150;
148
+ if (fitsContainer && hasMinimumWidth && box) {
149
+ box.style.width = "".concat(x, "px");
150
+ box.style.height = "".concat(x / imageAspectRatio, "px");
151
+ _this.setState({
152
+ dimensions: {
153
+ width: x,
154
+ height: x / imageAspectRatio
155
+ }
156
+ });
157
+ }
158
+ _this.handleDisableDrag();
159
+ });
160
+ _this.state = {
161
+ maxImageWidth: '100%',
162
+ maxImageHeight: 'auto',
163
+ dragEnabled: true,
164
+ dropzoneActive: false
165
+ };
166
+ return _this;
167
+ }
168
+ (0, _createClass2["default"])(ImageContainer, [{
169
+ key: "componentDidMount",
170
+ value: function componentDidMount() {
171
+ if (this.imageSection) {
172
+ var positionInfo = this.imageSection.getBoundingClientRect();
173
+ var height = positionInfo.height,
174
+ width = positionInfo.width;
175
+ this.setState({
176
+ maxImageWidth: width,
177
+ maxImageHeight: height
178
+ });
179
+ }
180
+ }
181
+ }, {
182
+ key: "renderUploadControl",
183
+ value: function renderUploadControl(label) {
184
+ var _this2 = this;
185
+ var classes = this.props.classes;
186
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_button["default"], {
187
+ label: label,
188
+ onClick: this.handleInputClick
189
+ }), /*#__PURE__*/_react["default"].createElement("input", {
190
+ accept: "image/*",
191
+ className: classes.input,
192
+ onChange: this.handleUploadImage,
193
+ ref: function ref(_ref2) {
194
+ _this2.input = _ref2;
195
+ },
196
+ type: "file"
197
+ }));
198
+ }
199
+ }, {
200
+ key: "render",
201
+ value: function render() {
202
+ var _this3 = this;
203
+ var _this$props2 = this.props,
204
+ classes = _this$props2.classes,
205
+ imageUrl = _this$props2.imageUrl,
206
+ imageDimensions = _this$props2.imageDimensions;
207
+ var _this$state2 = this.state,
208
+ dropzoneActive = _this$state2.dropzoneActive,
209
+ dragEnabled = _this$state2.dragEnabled,
210
+ maxImageHeight = _this$state2.maxImageHeight,
211
+ maxImageWidth = _this$state2.maxImageWidth;
212
+ return /*#__PURE__*/_react["default"].createElement("div", {
213
+ className: classes.base
214
+ }, /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
215
+ className: "".concat(classes.box, " ").concat(dropzoneActive ? classes.boxActive : '')
216
+ }, dragEnabled ? {
217
+ onDragExit: this.handleOnDragExit,
218
+ onDragLeave: this.handleOnDragExit,
219
+ onDragOver: this.handleOnDragOver,
220
+ onDrop: this.handleOnDrop
221
+ } : {}), /*#__PURE__*/_react["default"].createElement("div", {
222
+ className: classes.toolbar
223
+ }, this.renderUploadControl(imageUrl ? 'Replace Image' : 'Upload Image')), /*#__PURE__*/_react["default"].createElement("div", {
224
+ ref: function ref(_ref5) {
225
+ _this3.imageSection = _ref5;
226
+ },
227
+ className: classes.drawableHeight
228
+ }, imageUrl ? /*#__PURE__*/_react["default"].createElement("div", {
229
+ className: classes.imageContainer
230
+ }, /*#__PURE__*/_react["default"].createElement("img", {
231
+ className: classes.image,
232
+ height: "auto",
233
+ onLoad: this.handleOnImageLoad,
234
+ ref: function ref(_ref3) {
235
+ _this3.image = _ref3;
236
+ },
237
+ src: imageUrl,
238
+ style: {
239
+ width: imageDimensions && imageDimensions.width ? imageDimensions.width : undefined,
240
+ maxWidth: maxImageWidth,
241
+ maxHeight: maxImageHeight
242
+ },
243
+ alt: ""
244
+ }), /*#__PURE__*/_react["default"].createElement("div", {
245
+ ref: function ref(_ref4) {
246
+ _this3.resize = _ref4;
247
+ },
248
+ className: classes.resize
249
+ })) : /*#__PURE__*/_react["default"].createElement("div", {
250
+ className: "".concat(classes.drawableHeight, " ").concat(classes.centered)
251
+ }, /*#__PURE__*/_react["default"].createElement("label", null, "Drag and drop or upload image from computer"), /*#__PURE__*/_react["default"].createElement("br", null), this.renderUploadControl('Upload Image')))));
252
+ }
253
+ }]);
254
+ return ImageContainer;
255
+ }(_react.Component);
256
+ exports.ImageContainer = ImageContainer;
257
+ var styles = function styles(theme) {
258
+ return {
259
+ base: {
260
+ marginTop: theme.spacing.unit * 2
261
+ },
262
+ box: {
263
+ border: '1px solid #E0E1E6',
264
+ borderRadius: '5px'
265
+ },
266
+ boxActive: {
267
+ border: '1px solid #0032C2'
268
+ },
269
+ centered: {
270
+ alignItems: 'center',
271
+ display: 'flex',
272
+ flexDirection: 'column',
273
+ justifyContent: 'center'
274
+ },
275
+ drawableHeight: {
276
+ minHeight: 350
277
+ },
278
+ image: {
279
+ alignItems: 'center',
280
+ display: 'flex',
281
+ justifyContent: 'center'
282
+ },
283
+ imageContainer: {
284
+ position: 'relative',
285
+ width: 'fit-content'
286
+ },
287
+ resize: {
288
+ borderBottom: '1px solid #727272',
289
+ borderRight: '1px solid #727272',
290
+ bottom: '-10px',
291
+ cursor: 'se-resize',
292
+ height: '10px',
293
+ position: 'absolute',
294
+ right: '-10px',
295
+ width: '10px'
296
+ },
297
+ input: {
298
+ display: 'none'
299
+ },
300
+ toolbar: {
301
+ backgroundColor: '#ECEDF1',
302
+ borderBottom: '1px solid #E0E1E6',
303
+ borderTopLeftRadius: '5px',
304
+ borderTopRightRadius: '5px',
305
+ display: 'flex',
306
+ padding: '12px 8px'
307
+ }
308
+ };
309
+ };
310
+ ImageContainer.propTypes = {
311
+ classes: _propTypes["default"].object.isRequired,
312
+ imageUrl: _propTypes["default"].string.isRequired,
313
+ onImageUpload: _propTypes["default"].func.isRequired,
314
+ onUpdateImageDimension: _propTypes["default"].func.isRequired
315
+ };
316
+ var _default = (0, _styles.withStyles)(styles)(ImageContainer);
317
+ exports["default"] = _default;
318
+ //# sourceMappingURL=image-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-container.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_styles","_button","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","e","isImage","file","imageType","type","match","ImageContainer","_Component","_inherits2","_super","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","onImageUpload","reader","FileReader","onloadend","readAsDataURL","preventDefault","target","files","handleFileRead","setState","dropzoneActive","_e$dataTransfer","dataTransfer","items","kind","getAsFile","makeDropzoneInactive","state","makeDropzoneActive","dragEnabled","input","click","_ref","_ref$target","offsetHeight","offsetWidth","naturalHeight","naturalWidth","_this$props","onUpdateImageDimension","imageDimensions","resizeHandle","resize","dimensions","height","width","imageAspectRatio","addEventListener","initialiseResize","window","startResizing","stopResizing","handleEnableDrag","removeEventListener","box","image","_this$state","maxImageWidth","maxImageHeight","bounds","getBoundingClientRect","x","clientX","left","y","clientY","top","fitsContainer","hasMinimumWidth","style","concat","handleDisableDrag","_createClass2","value","componentDidMount","imageSection","positionInfo","renderUploadControl","label","_this2","classes","createElement","onClick","handleInputClick","accept","className","onChange","handleUploadImage","ref","render","_this3","_this$props2","imageUrl","_this$state2","base","_extends2","boxActive","onDragExit","handleOnDragExit","onDragLeave","onDragOver","handleOnDragOver","onDrop","handleOnDrop","toolbar","drawableHeight","imageContainer","onLoad","handleOnImageLoad","src","undefined","maxWidth","maxHeight","alt","centered","Component","exports","styles","theme","marginTop","spacing","unit","border","borderRadius","alignItems","display","flexDirection","justifyContent","minHeight","position","borderBottom","borderRight","bottom","cursor","right","backgroundColor","borderTopLeftRadius","borderTopRightRadius","padding","propTypes","PropTypes","object","isRequired","string","func","_default","withStyles"],"sources":["../src/image-container.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Button from './button';\n\nconst isImage = (file) => {\n const imageType = /image.*/;\n return file.type.match(imageType);\n};\n\nexport class ImageContainer extends Component {\n constructor(props) {\n super(props);\n this.state = {\n maxImageWidth: '100%',\n maxImageHeight: 'auto',\n dragEnabled: true,\n dropzoneActive: false,\n };\n }\n\n componentDidMount() {\n if (this.imageSection) {\n const positionInfo = this.imageSection.getBoundingClientRect();\n const { height, width } = positionInfo;\n this.setState({\n maxImageWidth: width,\n maxImageHeight: height,\n });\n }\n }\n\n handleFileRead = (file) => {\n const { onImageUpload } = this.props;\n const reader = new FileReader();\n reader.onloadend = () => {\n onImageUpload(reader.result);\n };\n reader.readAsDataURL(file);\n };\n\n handleUploadImage = (e) => {\n e.preventDefault();\n const file = e.target.files[0];\n this.handleFileRead(file);\n };\n\n makeDropzoneActive = () => this.setState({ dropzoneActive: true });\n\n makeDropzoneInactive = () => this.setState({ dropzoneActive: false });\n\n handleOnDrop = (e) => {\n e.preventDefault();\n const { items, files } = e.dataTransfer;\n\n if (items && items[0].kind === 'file') {\n const file = items[0].getAsFile();\n if (isImage(file)) {\n this.handleFileRead(file);\n }\n } else if (isImage(files[0])) {\n this.handleFileRead(files[0]);\n }\n\n this.makeDropzoneInactive();\n };\n\n handleOnDragOver = (e) => {\n e.preventDefault();\n const { dropzoneActive } = this.state;\n\n if (!dropzoneActive) {\n this.makeDropzoneActive();\n }\n };\n\n handleOnDragExit = (e) => {\n e.preventDefault();\n this.makeDropzoneInactive();\n };\n\n handleEnableDrag = () => this.setState({ dragEnabled: true });\n handleDisableDrag = () => this.setState({ dragEnabled: false });\n handleInputClick = () => this.input.click();\n\n handleOnImageLoad = ({ target: { offsetHeight, offsetWidth, naturalHeight, naturalWidth } }) => {\n const { onUpdateImageDimension, imageDimensions } = this.props;\n const resizeHandle = this.resize;\n\n const dimensions = {\n height: (imageDimensions && imageDimensions.height) || offsetHeight || naturalHeight,\n width: (imageDimensions && imageDimensions.width) || offsetWidth || naturalWidth,\n };\n\n // check if aspect ratio is not respected on replacing image\n const imageAspectRatio = naturalWidth / naturalHeight;\n\n if (dimensions.width !== dimensions.height * imageAspectRatio) {\n dimensions.width = dimensions.height * imageAspectRatio;\n }\n\n this.setState({ dimensions });\n onUpdateImageDimension(dimensions);\n\n resizeHandle.addEventListener('mousedown', this.initialiseResize, false);\n };\n\n initialiseResize = () => {\n window.addEventListener('mousemove', this.startResizing, false);\n window.addEventListener('mouseup', this.stopResizing, false);\n };\n\n stopResizing = () => {\n const { onUpdateImageDimension } = this.props;\n const { dimensions } = this.state;\n\n this.handleEnableDrag();\n onUpdateImageDimension(dimensions);\n\n window.removeEventListener('mousemove', this.startResizing, false);\n window.removeEventListener('mouseup', this.stopResizing, false);\n };\n\n startResizing = (e) => {\n const box = this.image;\n const { maxImageWidth, maxImageHeight, dimensions } = this.state;\n\n const bounds = e.target.getBoundingClientRect();\n const x = e.clientX - bounds.left;\n const y = e.clientY - bounds.top;\n\n const imageAspectRatio = dimensions.width / dimensions.height;\n const fitsContainer = x <= maxImageWidth + 5 && x / imageAspectRatio <= maxImageHeight + 5;\n const hasMinimumWidth = x > 150 && y > 150;\n\n if (fitsContainer && hasMinimumWidth && box) {\n box.style.width = `${x}px`;\n box.style.height = `${x / imageAspectRatio}px`;\n\n this.setState({\n dimensions: {\n width: x,\n height: x / imageAspectRatio,\n },\n });\n }\n\n this.handleDisableDrag();\n };\n\n renderUploadControl(label) {\n const { classes } = this.props;\n\n return (\n <div>\n <Button label={label} onClick={this.handleInputClick} />\n <input\n accept=\"image/*\"\n className={classes.input}\n onChange={this.handleUploadImage}\n ref={(ref) => {\n this.input = ref;\n }}\n type=\"file\"\n />\n </div>\n );\n }\n\n render() {\n const { classes, imageUrl, imageDimensions } = this.props;\n const { dropzoneActive, dragEnabled, maxImageHeight, maxImageWidth } = this.state;\n\n return (\n <div className={classes.base}>\n <div\n className={`${classes.box} ${dropzoneActive ? classes.boxActive : ''}`}\n {...(dragEnabled\n ? {\n onDragExit: this.handleOnDragExit,\n onDragLeave: this.handleOnDragExit,\n onDragOver: this.handleOnDragOver,\n onDrop: this.handleOnDrop,\n }\n : {})}\n >\n <div className={classes.toolbar}>{this.renderUploadControl(imageUrl ? 'Replace Image' : 'Upload Image')}</div>\n\n <div\n ref={(ref) => {\n this.imageSection = ref;\n }}\n className={classes.drawableHeight}\n >\n {imageUrl ? (\n <div className={classes.imageContainer}>\n <img\n className={classes.image}\n height=\"auto\"\n onLoad={this.handleOnImageLoad}\n ref={(ref) => {\n this.image = ref;\n }}\n src={imageUrl}\n style={{\n width: imageDimensions && imageDimensions.width ? imageDimensions.width : undefined,\n maxWidth: maxImageWidth,\n maxHeight: maxImageHeight,\n }}\n alt=\"\"\n />\n <div\n ref={(ref) => {\n this.resize = ref;\n }}\n className={classes.resize}\n />\n </div>\n ) : (\n <div className={`${classes.drawableHeight} ${classes.centered}`}>\n <label>Drag and drop or upload image from computer</label>\n <br />\n {this.renderUploadControl('Upload Image')}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n base: {\n marginTop: theme.spacing.unit * 2,\n },\n box: {\n border: '1px solid #E0E1E6',\n borderRadius: '5px',\n },\n boxActive: {\n border: '1px solid #0032C2',\n },\n centered: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n },\n drawableHeight: {\n minHeight: 350,\n },\n image: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n },\n imageContainer: {\n position: 'relative',\n width: 'fit-content',\n },\n resize: {\n borderBottom: '1px solid #727272',\n borderRight: '1px solid #727272',\n bottom: '-10px',\n cursor: 'se-resize',\n height: '10px',\n position: 'absolute',\n right: '-10px',\n width: '10px',\n },\n input: {\n display: 'none',\n },\n toolbar: {\n backgroundColor: '#ECEDF1',\n borderBottom: '1px solid #E0E1E6',\n borderTopLeftRadius: '5px',\n borderTopRightRadius: '5px',\n display: 'flex',\n padding: '12px 8px',\n },\n});\n\nImageContainer.propTypes = {\n classes: PropTypes.object.isRequired,\n imageUrl: PropTypes.string.isRequired,\n onImageUpload: PropTypes.func.isRequired,\n onUpdateImageDimension: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(ImageContainer);\n"],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
+ var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
19
+ var _react = _interopRequireDefault(require("react"));
20
+ var _reactDom = _interopRequireDefault(require("react-dom"));
21
+ var _debug = _interopRequireDefault(require("debug"));
22
+ var _root = _interopRequireDefault(require("./root"));
23
+ var _defaults = _interopRequireDefault(require("./defaults"));
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
26
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
27
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
28
+ var log = (0, _debug["default"])('hotspot:configure');
29
+ var DrawableResponseConfigure = /*#__PURE__*/function (_HTMLElement) {
30
+ (0, _inherits2["default"])(DrawableResponseConfigure, _HTMLElement);
31
+ var _super = _createSuper(DrawableResponseConfigure);
32
+ function DrawableResponseConfigure() {
33
+ var _this;
34
+ (0, _classCallCheck2["default"])(this, DrawableResponseConfigure);
35
+ _this = _super.call(this);
36
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "verifyRubric", /*#__PURE__*/function () {
37
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(c) {
38
+ var _ref2, _ref2$withRubric, withRubric;
39
+ return _regenerator["default"].wrap(function _callee$(_context) {
40
+ while (1) switch (_context.prev = _context.next) {
41
+ case 0:
42
+ _ref2 = c || {}, _ref2$withRubric = _ref2.withRubric, withRubric = _ref2$withRubric === void 0 ? {} : _ref2$withRubric;
43
+ if (withRubric !== null && withRubric !== void 0 && withRubric.forceEnabled && !_this._model.rubricEnabled) {
44
+ _this._model.rubricEnabled = true;
45
+ _this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(_this._model));
46
+ }
47
+ case 2:
48
+ case "end":
49
+ return _context.stop();
50
+ }
51
+ }, _callee);
52
+ }));
53
+ return function (_x) {
54
+ return _ref.apply(this, arguments);
55
+ };
56
+ }());
57
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onModelChanged", function (m, reset) {
58
+ _this._model = m;
59
+ _this.dispatchModelUpdated(reset);
60
+ _this._render();
61
+ });
62
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigurationChanged", function (c) {
63
+ _this._configuration = c;
64
+ _this.verifyRubric(_this._configuration);
65
+ _this._render();
66
+ });
67
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "insertImage", function (handler) {
68
+ _this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
69
+ });
70
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDeleteImage", function (src, done) {
71
+ _this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
72
+ });
73
+ _this._configuration = _defaults["default"].configuration;
74
+ _this._model = DrawableResponseConfigure.createDefaultModel({}, _this._configuration);
75
+ _this.onModelChanged = _this.onModelChanged.bind((0, _assertThisInitialized2["default"])(_this));
76
+ return _this;
77
+ }
78
+ (0, _createClass2["default"])(DrawableResponseConfigure, [{
79
+ key: "model",
80
+ set: function set(s) {
81
+ this._model = DrawableResponseConfigure.createDefaultModel(s, this._configuration);
82
+ this._render();
83
+ }
84
+ }, {
85
+ key: "configuration",
86
+ set: function set(c) {
87
+ this._configuration = c;
88
+ this.verifyRubric(this._configuration);
89
+ this._render();
90
+ }
91
+ }, {
92
+ key: "dispatchModelUpdated",
93
+ value: function dispatchModelUpdated(reset) {
94
+ var resetValue = !!reset;
95
+ this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model, resetValue));
96
+ }
97
+ }, {
98
+ key: "insertSound",
99
+ value: function insertSound(handler) {
100
+ this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
101
+ }
102
+ }, {
103
+ key: "onDeleteSound",
104
+ value: function onDeleteSound(src, done) {
105
+ this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
106
+ }
107
+ }, {
108
+ key: "_render",
109
+ value: function _render() {
110
+ log('_render');
111
+ var element = /*#__PURE__*/_react["default"].createElement(_root["default"], {
112
+ model: this._model,
113
+ configuration: this._configuration,
114
+ onModelChanged: this.onModelChanged,
115
+ onConfigurationChanged: this.onConfigurationChanged,
116
+ imageSupport: {
117
+ add: this.insertImage,
118
+ "delete": this.onDeleteImage
119
+ },
120
+ uploadSoundSupport: {
121
+ add: this.insertSound.bind(this),
122
+ "delete": this.onDeleteSound.bind(this)
123
+ }
124
+ });
125
+ _reactDom["default"].render(element, this);
126
+ }
127
+ }]);
128
+ return DrawableResponseConfigure;
129
+ }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
130
+ exports["default"] = DrawableResponseConfigure;
131
+ (0, _defineProperty2["default"])(DrawableResponseConfigure, "createDefaultModel", function () {
132
+ var _config$withRubric;
133
+ var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
134
+ var config = arguments.length > 1 ? arguments[1] : undefined;
135
+ var defaultModel = _objectSpread(_objectSpread({}, _defaults["default"].model), model);
136
+ if (config !== null && config !== void 0 && (_config$withRubric = config.withRubric) !== null && _config$withRubric !== void 0 && _config$withRubric.forceEnabled && !defaultModel.rubricEnabled) {
137
+ defaultModel.rubricEnabled = true;
138
+ }
139
+ return defaultModel;
140
+ });
141
+ //# sourceMappingURL=index.js.map