@pie-element/drawing-response 12.1.2-next.5 → 12.1.3

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 (172) hide show
  1. package/CHANGELOG.json +547 -0
  2. package/CHANGELOG.md +1972 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +1 -0
  5. package/configure/CHANGELOG.json +367 -0
  6. package/configure/CHANGELOG.md +1772 -0
  7. package/configure/lib/button.js +37 -0
  8. package/configure/lib/button.js.map +1 -0
  9. package/configure/lib/defaults.js +116 -0
  10. package/configure/lib/defaults.js.map +1 -0
  11. package/configure/lib/image-container.js +307 -0
  12. package/configure/lib/image-container.js.map +1 -0
  13. package/configure/lib/index.js +147 -0
  14. package/configure/lib/index.js.map +1 -0
  15. package/configure/lib/root.js +219 -0
  16. package/configure/lib/root.js.map +1 -0
  17. package/configure/package.json +24 -0
  18. package/configure/src/__tests__/image-container.test.jsx +231 -0
  19. package/configure/src/__tests__/index.test.js +72 -0
  20. package/configure/src/__tests__/root.test.jsx +110 -0
  21. package/configure/src/button.jsx +33 -0
  22. package/configure/src/defaults.js +80 -0
  23. package/configure/src/image-container.jsx +316 -0
  24. package/configure/src/index.js +167 -0
  25. package/configure/src/root.jsx +198 -0
  26. package/controller/CHANGELOG.json +52 -0
  27. package/controller/CHANGELOG.md +261 -0
  28. package/controller/lib/defaults.js +22 -0
  29. package/controller/lib/defaults.js.map +1 -0
  30. package/controller/lib/index.js +84 -0
  31. package/controller/lib/index.js.map +1 -0
  32. package/controller/package.json +16 -0
  33. package/controller/src/__tests__/index.test.js +172 -0
  34. package/controller/src/defaults.js +12 -0
  35. package/controller/src/index.js +71 -0
  36. package/docs/config-schema.json +1766 -0
  37. package/docs/config-schema.json.md +1313 -0
  38. package/docs/demo/config.js +8 -0
  39. package/docs/demo/generate.js +14 -0
  40. package/docs/demo/index.html +1 -0
  41. package/docs/demo/session.js +37 -0
  42. package/docs/pie-schema.json +823 -0
  43. package/docs/pie-schema.json.md +606 -0
  44. package/lib/drawing-response/button.js +49 -0
  45. package/lib/drawing-response/button.js.map +1 -0
  46. package/lib/drawing-response/constants.js +43 -0
  47. package/lib/drawing-response/constants.js.map +1 -0
  48. package/lib/drawing-response/container.js +327 -0
  49. package/lib/drawing-response/container.js.map +1 -0
  50. package/lib/drawing-response/drawable-circle.js +80 -0
  51. package/lib/drawing-response/drawable-circle.js.map +1 -0
  52. package/lib/drawing-response/drawable-eraser.js +64 -0
  53. package/lib/drawing-response/drawable-eraser.js.map +1 -0
  54. package/lib/drawing-response/drawable-free-path.js +71 -0
  55. package/lib/drawing-response/drawable-free-path.js.map +1 -0
  56. package/lib/drawing-response/drawable-helper.js +34 -0
  57. package/lib/drawing-response/drawable-helper.js.map +1 -0
  58. package/lib/drawing-response/drawable-image.js +41 -0
  59. package/lib/drawing-response/drawable-image.js.map +1 -0
  60. package/lib/drawing-response/drawable-line.js +75 -0
  61. package/lib/drawing-response/drawable-line.js.map +1 -0
  62. package/lib/drawing-response/drawable-main.js +345 -0
  63. package/lib/drawing-response/drawable-main.js.map +1 -0
  64. package/lib/drawing-response/drawable-palette.js +140 -0
  65. package/lib/drawing-response/drawable-palette.js.map +1 -0
  66. package/lib/drawing-response/drawable-rectangle.js +80 -0
  67. package/lib/drawing-response/drawable-rectangle.js.map +1 -0
  68. package/lib/drawing-response/drawable-text.js +295 -0
  69. package/lib/drawing-response/drawable-text.js.map +1 -0
  70. package/lib/drawing-response/drawable-transformer.js +52 -0
  71. package/lib/drawing-response/drawable-transformer.js.map +1 -0
  72. package/lib/drawing-response/factory.js +22 -0
  73. package/lib/drawing-response/factory.js.map +1 -0
  74. package/lib/drawing-response/icon.js +55 -0
  75. package/lib/drawing-response/icon.js.map +1 -0
  76. package/lib/drawing-response/index.js +91 -0
  77. package/lib/drawing-response/index.js.map +1 -0
  78. package/lib/index.js +68 -0
  79. package/lib/index.js.map +1 -0
  80. package/package.json +19 -82
  81. package/src/__tests__/drawing-index-test.jsx +103 -0
  82. package/src/drawing-response/__tests__/container.test.jsx +82 -0
  83. package/src/drawing-response/__tests__/drawable-helper.test.jsx +24 -0
  84. package/src/drawing-response/__tests__/drawing-main.test.jsx +855 -0
  85. package/src/drawing-response/__tests__/factory.test.js +13 -0
  86. package/src/drawing-response/button.jsx +45 -0
  87. package/src/drawing-response/constants.js +44 -0
  88. package/src/drawing-response/container.jsx +301 -0
  89. package/src/drawing-response/drawable-circle.jsx +74 -0
  90. package/src/drawing-response/drawable-eraser.jsx +53 -0
  91. package/src/drawing-response/drawable-free-path.jsx +59 -0
  92. package/src/drawing-response/drawable-helper.jsx +21 -0
  93. package/src/drawing-response/drawable-image.jsx +36 -0
  94. package/src/drawing-response/drawable-line.jsx +62 -0
  95. package/src/drawing-response/drawable-main.jsx +333 -0
  96. package/src/drawing-response/drawable-palette.jsx +99 -0
  97. package/src/drawing-response/drawable-rectangle.jsx +69 -0
  98. package/src/drawing-response/drawable-text.jsx +318 -0
  99. package/src/drawing-response/drawable-transformer.jsx +52 -0
  100. package/src/drawing-response/factory.js +17 -0
  101. package/src/drawing-response/icon.jsx +52 -0
  102. package/src/drawing-response/index.jsx +92 -0
  103. package/src/index.js +72 -0
  104. package/configure.js +0 -2
  105. package/controller.js +0 -1
  106. package/dist/author/button.d.ts +0 -29
  107. package/dist/author/button.js +0 -25
  108. package/dist/author/defaults.d.ts +0 -118
  109. package/dist/author/defaults.js +0 -86
  110. package/dist/author/image-container.d.ts +0 -42
  111. package/dist/author/image-container.js +0 -183
  112. package/dist/author/index.d.ts +0 -37
  113. package/dist/author/index.js +0 -79
  114. package/dist/author/root.d.ts +0 -17
  115. package/dist/author/root.js +0 -142
  116. package/dist/browser/MenuItem-HceGvxhZ.js +0 -10487
  117. package/dist/browser/MenuItem-HceGvxhZ.js.map +0 -1
  118. package/dist/browser/author/index.js +0 -43740
  119. package/dist/browser/author/index.js.map +0 -1
  120. package/dist/browser/browser-kkT1XVKw.js +0 -219
  121. package/dist/browser/browser-kkT1XVKw.js.map +0 -1
  122. package/dist/browser/controller/index.js +0 -61
  123. package/dist/browser/controller/index.js.map +0 -1
  124. package/dist/browser/delivery/index.js +0 -13560
  125. package/dist/browser/delivery/index.js.map +0 -1
  126. package/dist/browser/drawing-response.css +0 -2
  127. package/dist/controller/defaults.d.ts +0 -24
  128. package/dist/controller/defaults.js +0 -18
  129. package/dist/controller/index.d.ts +0 -13
  130. package/dist/controller/index.js +0 -46
  131. package/dist/delivery/drawing-response/button.d.ts +0 -31
  132. package/dist/delivery/drawing-response/button.js +0 -36
  133. package/dist/delivery/drawing-response/constants.d.ts +0 -16
  134. package/dist/delivery/drawing-response/constants.js +0 -40
  135. package/dist/delivery/drawing-response/container.d.ts +0 -32
  136. package/dist/delivery/drawing-response/container.js +0 -212
  137. package/dist/delivery/drawing-response/drawable-circle.d.ts +0 -18
  138. package/dist/delivery/drawing-response/drawable-circle.js +0 -51
  139. package/dist/delivery/drawing-response/drawable-eraser.d.ts +0 -17
  140. package/dist/delivery/drawing-response/drawable-eraser.js +0 -52
  141. package/dist/delivery/drawing-response/drawable-free-path.d.ts +0 -18
  142. package/dist/delivery/drawing-response/drawable-free-path.js +0 -52
  143. package/dist/delivery/drawing-response/drawable-helper.d.ts +0 -17
  144. package/dist/delivery/drawing-response/drawable-helper.js +0 -12
  145. package/dist/delivery/drawing-response/drawable-image.d.ts +0 -24
  146. package/dist/delivery/drawing-response/drawable-image.js +0 -28
  147. package/dist/delivery/drawing-response/drawable-line.d.ts +0 -18
  148. package/dist/delivery/drawing-response/drawable-line.js +0 -53
  149. package/dist/delivery/drawing-response/drawable-main.d.ts +0 -25
  150. package/dist/delivery/drawing-response/drawable-main.js +0 -210
  151. package/dist/delivery/drawing-response/drawable-palette.d.ts +0 -14
  152. package/dist/delivery/drawing-response/drawable-palette.js +0 -89
  153. package/dist/delivery/drawing-response/drawable-rectangle.d.ts +0 -18
  154. package/dist/delivery/drawing-response/drawable-rectangle.js +0 -49
  155. package/dist/delivery/drawing-response/drawable-text.d.ts +0 -30
  156. package/dist/delivery/drawing-response/drawable-text.js +0 -189
  157. package/dist/delivery/drawing-response/drawable-transformer.d.ts +0 -16
  158. package/dist/delivery/drawing-response/drawable-transformer.js +0 -35
  159. package/dist/delivery/drawing-response/factory.d.ts +0 -11
  160. package/dist/delivery/drawing-response/factory.js +0 -19
  161. package/dist/delivery/drawing-response/icon.d.ts +0 -19
  162. package/dist/delivery/drawing-response/icon.js +0 -52
  163. package/dist/delivery/drawing-response/index.d.ts +0 -18
  164. package/dist/delivery/drawing-response/index.js +0 -70
  165. package/dist/delivery/index.d.ts +0 -19
  166. package/dist/delivery/index.js +0 -47
  167. package/dist/index.d.ts +0 -1
  168. package/dist/index.iife.d.ts +0 -8
  169. package/dist/index.iife.js +0 -165
  170. package/dist/index.js +0 -2
  171. package/dist/runtime-support.d.ts +0 -12
  172. package/dist/runtime-support.js +0 -12
@@ -0,0 +1,41 @@
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("@mui/material/styles");
11
+ const ImageContainer = (0, _styles.styled)('div')({
12
+ position: 'relative',
13
+ width: 'fit-content'
14
+ });
15
+ const Image = (0, _styles.styled)('img')({
16
+ alignItems: 'center',
17
+ display: 'flex',
18
+ justifyContent: 'center'
19
+ });
20
+ const DrawableImage = ({
21
+ url,
22
+ dimensions: {
23
+ height,
24
+ width
25
+ }
26
+ }) => /*#__PURE__*/_react.default.createElement(ImageContainer, null, /*#__PURE__*/_react.default.createElement(Image, {
27
+ alt: "drawing-response-image",
28
+ src: url,
29
+ style: {
30
+ height,
31
+ maxWidth: width,
32
+ maxHeight: 350,
33
+ width
34
+ }
35
+ }));
36
+ DrawableImage.propTypes = {
37
+ dimensions: _propTypes.default.object.isRequired,
38
+ url: _propTypes.default.string.isRequired
39
+ };
40
+ var _default = exports.default = DrawableImage;
41
+ //# sourceMappingURL=drawable-image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawable-image.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","ImageContainer","styled","position","width","Image","alignItems","display","justifyContent","DrawableImage","url","dimensions","height","default","createElement","alt","src","style","maxWidth","maxHeight","propTypes","PropTypes","object","isRequired","string","_default","exports"],"sources":["../../src/drawing-response/drawable-image.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\n\nconst ImageContainer = styled('div')({\n position: 'relative',\n width: 'fit-content',\n});\n\nconst Image = styled('img')({\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n});\n\nconst DrawableImage = ({ url, dimensions: { height, width } }) => (\n <ImageContainer>\n <Image\n alt=\"drawing-response-image\"\n src={url}\n style={{\n height,\n maxWidth: width,\n maxHeight: 350,\n width,\n }}\n />\n </ImageContainer>\n);\n\nDrawableImage.propTypes = {\n dimensions: PropTypes.object.isRequired,\n url: PropTypes.string.isRequired,\n};\n\nexport default DrawableImage;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,MAAMG,cAAc,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC;EACnCC,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE;AACT,CAAC,CAAC;AAEF,MAAMC,KAAK,GAAG,IAAAH,cAAM,EAAC,KAAK,CAAC,CAAC;EAC1BI,UAAU,EAAE,QAAQ;EACpBC,OAAO,EAAE,MAAM;EACfC,cAAc,EAAE;AAClB,CAAC,CAAC;AAEF,MAAMC,aAAa,GAAGA,CAAC;EAAEC,GAAG;EAAEC,UAAU,EAAE;IAAEC,MAAM;IAAER;EAAM;AAAE,CAAC,kBAC3DR,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACb,cAAc,qBACbL,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACT,KAAK;EACJU,GAAG,EAAC,wBAAwB;EAC5BC,GAAG,EAAEN,GAAI;EACTO,KAAK,EAAE;IACLL,MAAM;IACNM,QAAQ,EAAEd,KAAK;IACfe,SAAS,EAAE,GAAG;IACdf;EACF;AAAE,CACH,CACa,CACjB;AAEDK,aAAa,CAACW,SAAS,GAAG;EACxBT,UAAU,EAAEU,kBAAS,CAACC,MAAM,CAACC,UAAU;EACvCb,GAAG,EAAEW,kBAAS,CAACG,MAAM,CAACD;AACxB,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAb,OAAA,GAEaJ,aAAa","ignoreList":[]}
@@ -0,0 +1,75 @@
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _reactKonva = require("react-konva");
11
+ var _drawableHelper = _interopRequireDefault(require("./drawable-helper"));
12
+ class LineDrawable extends _drawableHelper.default {
13
+ constructor(_props) {
14
+ super(_props, LineDrawable.TYPE);
15
+ (0, _defineProperty2.default)(this, "handleDragEnd", (props, event) => {
16
+ this.posX = event.target.getX();
17
+ this.posY = event.target.getY();
18
+ props.handleSessionChange();
19
+ });
20
+ const {
21
+ startx,
22
+ starty,
23
+ x,
24
+ y,
25
+ posX,
26
+ posY
27
+ } = _props;
28
+ this.x = x || startx;
29
+ this.y = y || starty;
30
+ this.posX = posX || 0;
31
+ this.posY = posY || 0;
32
+ }
33
+ registerMovement(x, y) {
34
+ this.x = x;
35
+ this.y = y;
36
+ }
37
+ handleOnClick(props) {
38
+ const {
39
+ paint,
40
+ paintColor,
41
+ forceUpdate
42
+ } = props;
43
+ if (paint) {
44
+ this.paintColor = paintColor;
45
+ forceUpdate();
46
+ }
47
+ }
48
+ render(props) {
49
+ const {
50
+ draggable,
51
+ key,
52
+ onMouseOverElement,
53
+ onMouseOutElement
54
+ } = props;
55
+ const points = [this.startx, this.starty, this.x, this.y];
56
+ return /*#__PURE__*/_react.default.createElement(_reactKonva.Arrow, {
57
+ key: key,
58
+ draggable: draggable,
59
+ points: points,
60
+ fill: this.paintColor || this.outlineColor,
61
+ onClick: () => this.handleOnClick(props),
62
+ stroke: this.paintColor || this.outlineColor,
63
+ onDragEnd: this.handleDragEnd.bind(this, props),
64
+ onMouseEnter: onMouseOverElement,
65
+ onMouseLeave: onMouseOutElement,
66
+ x: this.posX,
67
+ y: this.posY,
68
+ pointerWidth: 0,
69
+ pointerLength: 0
70
+ });
71
+ }
72
+ }
73
+ exports.default = LineDrawable;
74
+ (0, _defineProperty2.default)(LineDrawable, "TYPE", 'LineDrawable');
75
+ //# sourceMappingURL=drawable-line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawable-line.js","names":["_react","_interopRequireDefault","require","_reactKonva","_drawableHelper","LineDrawable","DrawableHelper","constructor","props","TYPE","_defineProperty2","default","event","posX","target","getX","posY","getY","handleSessionChange","startx","starty","x","y","registerMovement","handleOnClick","paint","paintColor","forceUpdate","render","draggable","key","onMouseOverElement","onMouseOutElement","points","createElement","Arrow","fill","outlineColor","onClick","stroke","onDragEnd","handleDragEnd","bind","onMouseEnter","onMouseLeave","pointerWidth","pointerLength","exports"],"sources":["../../src/drawing-response/drawable-line.jsx"],"sourcesContent":["import React from 'react';\nimport { Arrow } from 'react-konva';\n\nimport DrawableHelper from './drawable-helper';\n\nexport default class LineDrawable extends DrawableHelper {\n static TYPE = 'LineDrawable';\n\n constructor(props) {\n super(props, LineDrawable.TYPE);\n const { startx, starty, x, y, posX, posY } = props;\n\n this.x = x || startx;\n this.y = y || starty;\n this.posX = posX || 0;\n this.posY = posY || 0;\n }\n\n registerMovement(x, y) {\n this.x = x;\n this.y = y;\n }\n\n handleOnClick(props) {\n const { paint, paintColor, forceUpdate } = props;\n\n if (paint) {\n this.paintColor = paintColor;\n forceUpdate();\n }\n }\n\n handleDragEnd = (props, event) => {\n this.posX = event.target.getX();\n this.posY = event.target.getY();\n\n props.handleSessionChange();\n };\n\n render(props) {\n const { draggable, key, onMouseOverElement, onMouseOutElement } = props;\n const points = [this.startx, this.starty, this.x, this.y];\n\n return (\n <Arrow\n key={key}\n draggable={draggable}\n points={points}\n fill={this.paintColor || this.outlineColor}\n onClick={() => this.handleOnClick(props)}\n stroke={this.paintColor || this.outlineColor}\n onDragEnd={this.handleDragEnd.bind(this, props)}\n onMouseEnter={onMouseOverElement}\n onMouseLeave={onMouseOutElement}\n x={this.posX}\n y={this.posY}\n pointerWidth={0}\n pointerLength={0}\n />\n );\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEe,MAAMG,YAAY,SAASC,uBAAc,CAAC;EAGvDC,WAAWA,CAACC,MAAK,EAAE;IACjB,KAAK,CAACA,MAAK,EAAEH,YAAY,CAACI,IAAI,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA,yBAuBlB,CAACH,KAAK,EAAEI,KAAK,KAAK;MAChC,IAAI,CAACC,IAAI,GAAGD,KAAK,CAACE,MAAM,CAACC,IAAI,CAAC,CAAC;MAC/B,IAAI,CAACC,IAAI,GAAGJ,KAAK,CAACE,MAAM,CAACG,IAAI,CAAC,CAAC;MAE/BT,KAAK,CAACU,mBAAmB,CAAC,CAAC;IAC7B,CAAC;IA3BC,MAAM;MAAEC,MAAM;MAAEC,MAAM;MAAEC,CAAC;MAAEC,CAAC;MAAET,IAAI;MAAEG;IAAK,CAAC,GAAGR,MAAK;IAElD,IAAI,CAACa,CAAC,GAAGA,CAAC,IAAIF,MAAM;IACpB,IAAI,CAACG,CAAC,GAAGA,CAAC,IAAIF,MAAM;IACpB,IAAI,CAACP,IAAI,GAAGA,IAAI,IAAI,CAAC;IACrB,IAAI,CAACG,IAAI,GAAGA,IAAI,IAAI,CAAC;EACvB;EAEAO,gBAAgBA,CAACF,CAAC,EAAEC,CAAC,EAAE;IACrB,IAAI,CAACD,CAAC,GAAGA,CAAC;IACV,IAAI,CAACC,CAAC,GAAGA,CAAC;EACZ;EAEAE,aAAaA,CAAChB,KAAK,EAAE;IACnB,MAAM;MAAEiB,KAAK;MAAEC,UAAU;MAAEC;IAAY,CAAC,GAAGnB,KAAK;IAEhD,IAAIiB,KAAK,EAAE;MACT,IAAI,CAACC,UAAU,GAAGA,UAAU;MAC5BC,WAAW,CAAC,CAAC;IACf;EACF;EASAC,MAAMA,CAACpB,KAAK,EAAE;IACZ,MAAM;MAAEqB,SAAS;MAAEC,GAAG;MAAEC,kBAAkB;MAAEC;IAAkB,CAAC,GAAGxB,KAAK;IACvE,MAAMyB,MAAM,GAAG,CAAC,IAAI,CAACd,MAAM,EAAE,IAAI,CAACC,MAAM,EAAE,IAAI,CAACC,CAAC,EAAE,IAAI,CAACC,CAAC,CAAC;IAEzD,oBACEtB,MAAA,CAAAW,OAAA,CAAAuB,aAAA,CAAC/B,WAAA,CAAAgC,KAAK;MACJL,GAAG,EAAEA,GAAI;MACTD,SAAS,EAAEA,SAAU;MACrBI,MAAM,EAAEA,MAAO;MACfG,IAAI,EAAE,IAAI,CAACV,UAAU,IAAI,IAAI,CAACW,YAAa;MAC3CC,OAAO,EAAEA,CAAA,KAAM,IAAI,CAACd,aAAa,CAAChB,KAAK,CAAE;MACzC+B,MAAM,EAAE,IAAI,CAACb,UAAU,IAAI,IAAI,CAACW,YAAa;MAC7CG,SAAS,EAAE,IAAI,CAACC,aAAa,CAACC,IAAI,CAAC,IAAI,EAAElC,KAAK,CAAE;MAChDmC,YAAY,EAAEZ,kBAAmB;MACjCa,YAAY,EAAEZ,iBAAkB;MAChCX,CAAC,EAAE,IAAI,CAACR,IAAK;MACbS,CAAC,EAAE,IAAI,CAACN,IAAK;MACb6B,YAAY,EAAE,CAAE;MAChBC,aAAa,EAAE;IAAE,CAClB,CAAC;EAEN;AACF;AAACC,OAAA,CAAApC,OAAA,GAAAN,YAAA;AAAA,IAAAK,gBAAA,CAAAC,OAAA,EAxDoBN,YAAY,UACjB,cAAc","ignoreList":[]}
@@ -0,0 +1,345 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.DrawableMain = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _lodashEs = require("lodash-es");
13
+ var _reactKonva = require("react-konva");
14
+ var _styles = require("@mui/material/styles");
15
+ var _translator = _interopRequireDefault(require("@pie-lib/translator"));
16
+ var _drawableImage = _interopRequireDefault(require("./drawable-image"));
17
+ var _button = _interopRequireDefault(require("./button"));
18
+ var _factory = _interopRequireDefault(require("./factory"));
19
+ const {
20
+ translator
21
+ } = _translator.default;
22
+ const Wrapper = (0, _styles.styled)('div')({
23
+ display: 'flex',
24
+ flexWrap: 'wrap',
25
+ justifyContent: 'flex-end'
26
+ });
27
+ const Base = (0, _styles.styled)('div')({
28
+ position: 'relative',
29
+ width: '100%'
30
+ });
31
+ const UndoControls = (0, _styles.styled)('div')({
32
+ marginTop: -43,
33
+ marginRight: 10,
34
+ position: 'absolute'
35
+ });
36
+ class DrawableMain extends _react.default.Component {
37
+ constructor(props) {
38
+ super(props);
39
+ (0, _defineProperty2.default)(this, "handleSessionChange", () => {
40
+ const {
41
+ onSessionChange,
42
+ session,
43
+ TextEntry,
44
+ drawableDimensions
45
+ } = this.props;
46
+ const {
47
+ drawables
48
+ } = this.state;
49
+ const newSession = {
50
+ width: drawableDimensions.width,
51
+ drawables: drawables.map(d => d.toJson()),
52
+ texts: TextEntry.all.map(text => ({
53
+ ...text,
54
+ ...(TextEntry[`text_${text.id}`] && TextEntry[`text_${text.id}`].attrs),
55
+ value: TextEntry[`textarea_${text.id}`] && TextEntry[`textarea_${text.id}`].value
56
+ }))
57
+ };
58
+ if (!(0, _lodashEs.isEqual)(newSession, session)) {
59
+ onSessionChange({
60
+ ...session,
61
+ ...newSession
62
+ });
63
+ }
64
+ });
65
+ (0, _defineProperty2.default)(this, "onMouseOverElement", () => this.setState({
66
+ isOver: true
67
+ }));
68
+ (0, _defineProperty2.default)(this, "onMouseOutElement", () => this.setState({
69
+ isOver: false
70
+ }));
71
+ (0, _defineProperty2.default)(this, "handleMouseDown", e => {
72
+ // ONLY IF MOBILE?
73
+ document.body.style.overflow = 'hidden';
74
+ const {
75
+ newDrawable,
76
+ textIsSelected
77
+ } = this.state;
78
+ const {
79
+ toolActive,
80
+ fillColor,
81
+ outlineColor,
82
+ scale
83
+ } = this.props;
84
+ if (newDrawable.length === 0 && !textIsSelected) {
85
+ const stage = e.target.getStage();
86
+ if (!stage) return;
87
+ const {
88
+ x,
89
+ y
90
+ } = stage.getPointerPosition();
91
+ const newDrawable = (0, _factory.default)(toolActive.type, {
92
+ startx: x / scale,
93
+ starty: y / scale,
94
+ fillColor,
95
+ outlineColor,
96
+ createdAt: new Date()
97
+ });
98
+ this.setState({
99
+ newDrawable: [newDrawable]
100
+ });
101
+ }
102
+ });
103
+ (0, _defineProperty2.default)(this, "handleMouseUp", e => {
104
+ // ONLY IF MOBILE?
105
+ document.body.style.overflow = 'initial';
106
+ const {
107
+ newDrawable,
108
+ drawables
109
+ } = this.state;
110
+ const {
111
+ scale
112
+ } = this.props;
113
+ if (newDrawable.length === 1) {
114
+ const stage = e.target.getStage();
115
+ if (!stage) return;
116
+ const {
117
+ x,
118
+ y
119
+ } = stage.getPointerPosition();
120
+ const drawableToAdd = newDrawable[0];
121
+ drawableToAdd.registerMovement(x / scale, y / scale);
122
+ drawables.push(drawableToAdd);
123
+ this.setState({
124
+ newDrawable: [],
125
+ drawables
126
+ }, this.handleSessionChange.bind(this, drawableToAdd));
127
+ }
128
+ });
129
+ (0, _defineProperty2.default)(this, "handleMouseMove", e => {
130
+ const {
131
+ newDrawable
132
+ } = this.state;
133
+ const {
134
+ scale
135
+ } = this.props;
136
+ if (newDrawable.length === 1) {
137
+ const stage = e.target.getStage();
138
+ if (!stage) return;
139
+ const {
140
+ x,
141
+ y
142
+ } = stage.getPointerPosition();
143
+ const updatedNewDrawable = newDrawable[0];
144
+ updatedNewDrawable.registerMovement(x / scale, y / scale);
145
+ this.setState({
146
+ newDrawable: [updatedNewDrawable]
147
+ });
148
+ }
149
+ });
150
+ (0, _defineProperty2.default)(this, "handleUndo", () => {
151
+ const {
152
+ drawables
153
+ } = this.state;
154
+ const {
155
+ TextEntry
156
+ } = this.props;
157
+ const newDrawables = [...drawables];
158
+ const allData = [...drawables, ...TextEntry.all];
159
+ allData.sort((a, b) => new Date(a.createdAt) - new Date(b.createdAt));
160
+ const lastElement = allData[allData.length - 1];
161
+ if (lastElement && lastElement.type === 'text-entry') {
162
+ TextEntry.all.pop();
163
+ this.setState({
164
+ updatedAt: new Date()
165
+ }, this.handleSessionChange);
166
+ } else {
167
+ newDrawables.pop();
168
+ this.setState({
169
+ drawables: newDrawables
170
+ }, this.handleSessionChange);
171
+ }
172
+ });
173
+ (0, _defineProperty2.default)(this, "handleClearAll", () => {
174
+ const {
175
+ TextEntry
176
+ } = this.props;
177
+ TextEntry.all = [];
178
+ this.setState({
179
+ drawables: [],
180
+ updatedAt: new Date()
181
+ }, this.handleSessionChange);
182
+ });
183
+ (0, _defineProperty2.default)(this, "toggleTextSelected", textIsSelected => this.setState({
184
+ textIsSelected
185
+ }));
186
+ this.state = {
187
+ drawables: [],
188
+ newDrawable: [],
189
+ textIsSelected: false
190
+ };
191
+ this.stage = null;
192
+ this.layer = null;
193
+ }
194
+ componentWillUnmount() {
195
+ // Clean up refs to prevent React Konva errors
196
+ this.stage = null;
197
+ this.layer = null;
198
+ }
199
+ UNSAFE_componentWillReceiveProps(nextProps) {
200
+ if (nextProps.session) {
201
+ const {
202
+ TextEntry
203
+ } = nextProps;
204
+ const {
205
+ drawables: currentDrawables
206
+ } = this.state;
207
+ if (nextProps.session.drawables) {
208
+ const newDrawables = (0, _lodashEs.cloneDeep)(nextProps.session.drawables);
209
+ const drawablesString = JSON.stringify(currentDrawables);
210
+ const sessionDrawableString = JSON.stringify((newDrawables || []).map(drawable => (0, _lodashEs.omit)(drawable, 'type')));
211
+ if (drawablesString !== sessionDrawableString) {
212
+ const drawableArray = nextProps.session.drawables;
213
+ this.setState({
214
+ drawables: drawableArray.map(drawable => (0, _factory.default)(drawable.type, drawable))
215
+ });
216
+ }
217
+ const currentTexts = TextEntry.all.map(text => ({
218
+ ...text,
219
+ ...(TextEntry[`text_${text.id}`] && TextEntry[`text_${text.id}`].attrs),
220
+ value: TextEntry[`textarea_${text.id}`] && TextEntry[`textarea_${text.id}`].value
221
+ }));
222
+ if (!(0, _lodashEs.isEqual)(currentTexts, nextProps.session.texts)) {
223
+ TextEntry.setAll(nextProps.session.texts || []);
224
+ }
225
+ }
226
+ } else {
227
+ this.handleSessionChange();
228
+ }
229
+ }
230
+ render() {
231
+ const {
232
+ disabled,
233
+ drawableDimensions,
234
+ fillColor,
235
+ imageDimensions,
236
+ imageUrl,
237
+ paintColor,
238
+ outlineColor,
239
+ TextEntry,
240
+ backgroundImageEnabled = true,
241
+ toolActive: {
242
+ type
243
+ },
244
+ scale,
245
+ language
246
+ } = this.props;
247
+ const {
248
+ isOver,
249
+ newDrawable
250
+ } = this.state;
251
+ const draggable = type === 'Select';
252
+ const paint = type === 'PaintBucket';
253
+ const drawables = [...this.state.drawables, ...this.state.newDrawable];
254
+ const drawableProps = {
255
+ draggable: draggable && !disabled,
256
+ disabled,
257
+ paint,
258
+ fillColor,
259
+ forceUpdate: () => this.setState({
260
+ updatedAt: new Date()
261
+ }),
262
+ paintColor,
263
+ outlineColor,
264
+ toggleTextSelected: this.toggleTextSelected,
265
+ handleSessionChange: this.handleSessionChange,
266
+ stage: this.stage,
267
+ onMouseOverElement: this.onMouseOverElement,
268
+ onMouseOutElement: this.onMouseOutElement,
269
+ scale
270
+ };
271
+ let listeners = {};
272
+ if (!disabled) {
273
+ listeners = {
274
+ onMouseUp: this.handleMouseUp,
275
+ onTouchEnd: this.handleMouseUp,
276
+ onMouseMove: this.handleMouseMove,
277
+ onTouchMove: this.handleMouseMove
278
+ };
279
+ if (!draggable) {
280
+ listeners.onMouseDown = this.handleMouseDown;
281
+ listeners.onTouchStart = this.handleMouseDown;
282
+ }
283
+ }
284
+ const imageHeight = imageDimensions?.height * scale;
285
+ const imageWidth = imageDimensions?.width * scale;
286
+ return /*#__PURE__*/_react.default.createElement(Wrapper, null, /*#__PURE__*/_react.default.createElement(UndoControls, null, /*#__PURE__*/_react.default.createElement(_button.default, {
287
+ disabled: disabled,
288
+ onClick: this.handleUndo,
289
+ label: translator.t('common:undo', {
290
+ lng: language
291
+ })
292
+ }), /*#__PURE__*/_react.default.createElement(_button.default, {
293
+ disabled: disabled,
294
+ onClick: this.handleClearAll,
295
+ label: translator.t('common:clearAll', {
296
+ lng: language
297
+ })
298
+ })), /*#__PURE__*/_react.default.createElement(Base, null, backgroundImageEnabled && imageUrl && /*#__PURE__*/_react.default.createElement(_drawableImage.default, {
299
+ dimensions: {
300
+ height: imageHeight,
301
+ width: imageWidth
302
+ },
303
+ url: imageUrl
304
+ }), TextEntry.renderTextareas(), /*#__PURE__*/_react.default.createElement("div", {
305
+ style: {
306
+ position: 'absolute',
307
+ left: 0,
308
+ top: 0,
309
+ touchAction: 'none',
310
+ cursor: draggable && (isOver || newDrawable.length === 1) ? 'pointer' : 'default'
311
+ }
312
+ }, /*#__PURE__*/_react.default.createElement(_reactKonva.Stage, (0, _extends2.default)({
313
+ key: "drawing-stage",
314
+ scaleX: scale,
315
+ scaleY: scale,
316
+ ref: ref => this.stage = ref,
317
+ height: drawableDimensions.height,
318
+ width: drawableDimensions.width
319
+ }, listeners), /*#__PURE__*/_react.default.createElement(_reactKonva.Layer, {
320
+ ref: ref => this.layer = ref
321
+ }, drawables.map((drawable, key) => drawable.render({
322
+ ...drawableProps,
323
+ key
324
+ })), TextEntry.render(drawableProps))))));
325
+ }
326
+ }
327
+ exports.DrawableMain = DrawableMain;
328
+ DrawableMain.propTypes = {
329
+ disabled: _propTypes.default.bool,
330
+ drawableDimensions: _propTypes.default.object.isRequired,
331
+ imageDimensions: _propTypes.default.object.isRequired,
332
+ fillColor: _propTypes.default.string.isRequired,
333
+ onSessionChange: _propTypes.default.func.isRequired,
334
+ paintColor: _propTypes.default.string.isRequired,
335
+ outlineColor: _propTypes.default.string.isRequired,
336
+ imageUrl: _propTypes.default.string.isRequired,
337
+ TextEntry: _propTypes.default.object.isRequired,
338
+ toolActive: _propTypes.default.object.isRequired,
339
+ session: _propTypes.default.object.isRequired,
340
+ backgroundImageEnabled: _propTypes.default.bool.isRequired,
341
+ scale: _propTypes.default.number.isRequired,
342
+ language: _propTypes.default.string
343
+ };
344
+ var _default = exports.default = DrawableMain;
345
+ //# sourceMappingURL=drawable-main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawable-main.js","names":["_react","_interopRequireDefault","require","_propTypes","_lodashEs","_reactKonva","_styles","_translator","_drawableImage","_button","_factory","translator","Translator","Wrapper","styled","display","flexWrap","justifyContent","Base","position","width","UndoControls","marginTop","marginRight","DrawableMain","React","Component","constructor","props","_defineProperty2","default","onSessionChange","session","TextEntry","drawableDimensions","drawables","state","newSession","map","d","toJson","texts","all","text","id","attrs","value","isEqual","setState","isOver","e","document","body","style","overflow","newDrawable","textIsSelected","toolActive","fillColor","outlineColor","scale","length","stage","target","getStage","x","y","getPointerPosition","factory","type","startx","starty","createdAt","Date","drawableToAdd","registerMovement","push","handleSessionChange","bind","updatedNewDrawable","newDrawables","allData","sort","a","b","lastElement","pop","updatedAt","layer","componentWillUnmount","UNSAFE_componentWillReceiveProps","nextProps","currentDrawables","cloneDeep","drawablesString","JSON","stringify","sessionDrawableString","drawable","omit","drawableArray","currentTexts","setAll","render","disabled","imageDimensions","imageUrl","paintColor","backgroundImageEnabled","language","draggable","paint","drawableProps","forceUpdate","toggleTextSelected","onMouseOverElement","onMouseOutElement","listeners","onMouseUp","handleMouseUp","onTouchEnd","onMouseMove","handleMouseMove","onTouchMove","onMouseDown","handleMouseDown","onTouchStart","imageHeight","height","imageWidth","createElement","onClick","handleUndo","label","t","lng","handleClearAll","dimensions","url","renderTextareas","left","top","touchAction","cursor","Stage","_extends2","key","scaleX","scaleY","ref","Layer","exports","propTypes","PropTypes","bool","object","isRequired","string","func","number","_default"],"sources":["../../src/drawing-response/drawable-main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { cloneDeep, isEqual, omit } from 'lodash-es';\nimport { Layer, Stage } from 'react-konva';\nimport { styled } from '@mui/material/styles';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\nimport ImageBackground from './drawable-image';\nimport Button from './button';\nimport factory from './factory';\n\nconst Wrapper = styled('div')({\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n});\n\nconst Base = styled('div')({\n position: 'relative',\n width: '100%',\n});\n\nconst UndoControls = styled('div')({\n marginTop: -43,\n marginRight: 10,\n position: 'absolute',\n});\n\nexport class DrawableMain extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n drawables: [],\n newDrawable: [],\n textIsSelected: false,\n };\n this.stage = null;\n this.layer = null;\n }\n\n componentWillUnmount() {\n // Clean up refs to prevent React Konva errors\n this.stage = null;\n this.layer = null;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.session) {\n const { TextEntry } = nextProps;\n const { drawables: currentDrawables } = this.state;\n\n if (nextProps.session.drawables) {\n const newDrawables = cloneDeep(nextProps.session.drawables);\n const drawablesString = JSON.stringify(currentDrawables);\n const sessionDrawableString = JSON.stringify((newDrawables || []).map((drawable) => omit(drawable, 'type')));\n\n if (drawablesString !== sessionDrawableString) {\n const drawableArray = nextProps.session.drawables;\n\n this.setState({\n drawables: drawableArray.map((drawable) => factory(drawable.type, drawable)),\n });\n }\n\n const currentTexts = TextEntry.all.map((text) => ({\n ...text,\n ...(TextEntry[`text_${text.id}`] && TextEntry[`text_${text.id}`].attrs),\n value: TextEntry[`textarea_${text.id}`] && TextEntry[`textarea_${text.id}`].value,\n }));\n\n if (!isEqual(currentTexts, nextProps.session.texts)) {\n TextEntry.setAll(nextProps.session.texts || []);\n }\n }\n } else {\n this.handleSessionChange();\n }\n }\n\n handleSessionChange = () => {\n const { onSessionChange, session, TextEntry, drawableDimensions } = this.props;\n const { drawables } = this.state;\n\n const newSession = {\n width: drawableDimensions.width,\n drawables: drawables.map((d) => d.toJson()),\n texts: TextEntry.all.map((text) => ({\n ...text,\n ...(TextEntry[`text_${text.id}`] && TextEntry[`text_${text.id}`].attrs),\n value: TextEntry[`textarea_${text.id}`] && TextEntry[`textarea_${text.id}`].value,\n })),\n };\n\n if (!isEqual(newSession, session)) {\n onSessionChange({\n ...session,\n ...newSession,\n });\n }\n };\n\n onMouseOverElement = () => this.setState({ isOver: true });\n\n onMouseOutElement = () => this.setState({ isOver: false });\n\n handleMouseDown = (e) => {\n // ONLY IF MOBILE?\n document.body.style.overflow = 'hidden';\n\n const { newDrawable, textIsSelected } = this.state;\n const { toolActive, fillColor, outlineColor, scale } = this.props;\n\n if (newDrawable.length === 0 && !textIsSelected) {\n const stage = e.target.getStage();\n if (!stage) return;\n\n const { x, y } = stage.getPointerPosition();\n\n const newDrawable = factory(toolActive.type, {\n startx: x / scale,\n starty: y / scale,\n fillColor,\n outlineColor,\n createdAt: new Date(),\n });\n\n this.setState({\n newDrawable: [newDrawable],\n });\n }\n };\n\n handleMouseUp = (e) => {\n // ONLY IF MOBILE?\n document.body.style.overflow = 'initial';\n\n const { newDrawable, drawables } = this.state;\n const { scale } = this.props;\n\n if (newDrawable.length === 1) {\n const stage = e.target.getStage();\n if (!stage) return;\n\n const { x, y } = stage.getPointerPosition();\n const drawableToAdd = newDrawable[0];\n\n drawableToAdd.registerMovement(x / scale, y / scale);\n drawables.push(drawableToAdd);\n\n this.setState(\n {\n newDrawable: [],\n drawables,\n },\n this.handleSessionChange.bind(this, drawableToAdd),\n );\n }\n };\n\n handleMouseMove = (e) => {\n const { newDrawable } = this.state;\n const { scale } = this.props;\n\n if (newDrawable.length === 1) {\n const stage = e.target.getStage();\n if (!stage) return;\n\n const { x, y } = stage.getPointerPosition();\n const updatedNewDrawable = newDrawable[0];\n\n updatedNewDrawable.registerMovement(x / scale, y / scale);\n\n this.setState({\n newDrawable: [updatedNewDrawable],\n });\n }\n };\n\n handleUndo = () => {\n const { drawables } = this.state;\n const { TextEntry } = this.props;\n\n const newDrawables = [...drawables];\n const allData = [...drawables, ...TextEntry.all];\n\n allData.sort((a, b) => new Date(a.createdAt) - new Date(b.createdAt));\n const lastElement = allData[allData.length - 1];\n\n if (lastElement && lastElement.type === 'text-entry') {\n TextEntry.all.pop();\n this.setState({ updatedAt: new Date() }, this.handleSessionChange);\n } else {\n newDrawables.pop();\n this.setState({ drawables: newDrawables }, this.handleSessionChange);\n }\n };\n\n handleClearAll = () => {\n const { TextEntry } = this.props;\n\n TextEntry.all = [];\n this.setState({ drawables: [], updatedAt: new Date() }, this.handleSessionChange);\n };\n\n toggleTextSelected = (textIsSelected) => this.setState({ textIsSelected });\n\n render() {\n const {\n disabled,\n drawableDimensions,\n fillColor,\n imageDimensions,\n imageUrl,\n paintColor,\n outlineColor,\n TextEntry,\n backgroundImageEnabled = true,\n toolActive: { type },\n scale,\n language,\n } = this.props;\n const { isOver, newDrawable } = this.state;\n\n const draggable = type === 'Select';\n const paint = type === 'PaintBucket';\n const drawables = [...this.state.drawables, ...this.state.newDrawable];\n\n const drawableProps = {\n draggable: draggable && !disabled,\n disabled,\n paint,\n fillColor,\n forceUpdate: () => this.setState({ updatedAt: new Date() }),\n paintColor,\n outlineColor,\n toggleTextSelected: this.toggleTextSelected,\n handleSessionChange: this.handleSessionChange,\n stage: this.stage,\n onMouseOverElement: this.onMouseOverElement,\n onMouseOutElement: this.onMouseOutElement,\n scale,\n };\n\n let listeners = {};\n\n if (!disabled) {\n listeners = {\n onMouseUp: this.handleMouseUp,\n onTouchEnd: this.handleMouseUp,\n onMouseMove: this.handleMouseMove,\n onTouchMove: this.handleMouseMove,\n };\n\n if (!draggable) {\n listeners.onMouseDown = this.handleMouseDown;\n listeners.onTouchStart = this.handleMouseDown;\n }\n }\n\n const imageHeight = imageDimensions?.height * scale;\n const imageWidth = imageDimensions?.width * scale;\n\n return (\n <Wrapper>\n <UndoControls>\n <Button\n disabled={disabled}\n onClick={this.handleUndo}\n label={translator.t('common:undo', { lng: language })}\n />\n <Button\n disabled={disabled}\n onClick={this.handleClearAll}\n label={translator.t('common:clearAll', { lng: language })}\n />\n </UndoControls>\n <Base>\n {backgroundImageEnabled && imageUrl && (\n <ImageBackground dimensions={{ height: imageHeight, width: imageWidth }} url={imageUrl} />\n )}\n\n {TextEntry.renderTextareas()}\n\n {/* Wrap Stage in a styled div instead of styling Stage directly */}\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n touchAction: 'none',\n cursor: draggable && (isOver || newDrawable.length === 1) ? 'pointer' : 'default',\n }}\n >\n <Stage\n key=\"drawing-stage\"\n scaleX={scale}\n scaleY={scale}\n ref={(ref) => (this.stage = ref)}\n height={drawableDimensions.height}\n width={drawableDimensions.width}\n {...listeners}\n >\n <Layer ref={(ref) => (this.layer = ref)}>\n {drawables.map((drawable, key) => drawable.render({ ...drawableProps, key }))}\n {TextEntry.render(drawableProps)}\n </Layer>\n </Stage>\n </div>\n </Base>\n </Wrapper>\n );\n }\n}\n\nDrawableMain.propTypes = {\n disabled: PropTypes.bool,\n drawableDimensions: PropTypes.object.isRequired,\n imageDimensions: PropTypes.object.isRequired,\n fillColor: PropTypes.string.isRequired,\n onSessionChange: PropTypes.func.isRequired,\n paintColor: PropTypes.string.isRequired,\n outlineColor: PropTypes.string.isRequired,\n imageUrl: PropTypes.string.isRequired,\n TextEntry: PropTypes.object.isRequired,\n toolActive: PropTypes.object.isRequired,\n session: PropTypes.object.isRequired,\n backgroundImageEnabled: PropTypes.bool.isRequired,\n scale: PropTypes.number.isRequired,\n language: PropTypes.string,\n};\n\nexport default DrawableMain;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,140 @@
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _renderUi = require("@pie-lib/render-ui");
12
+ var _Select = _interopRequireDefault(require("@mui/material/Select"));
13
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
14
+ var _styles = require("@mui/material/styles");
15
+ var _translator = _interopRequireDefault(require("@pie-lib/translator"));
16
+ const {
17
+ translator
18
+ } = _translator.default;
19
+ const BaseContainer = (0, _styles.styled)('div')(({
20
+ theme
21
+ }) => ({
22
+ marginTop: theme.spacing(2),
23
+ display: 'flex'
24
+ }));
25
+ const StyledInputContainer = (0, _styles.styled)(_renderUi.InputContainer)({
26
+ flex: 1,
27
+ fontSize: 'inherit',
28
+ width: '90%'
29
+ });
30
+ const StyledMenuItem = (0, _styles.styled)(_MenuItem.default)(({
31
+ theme,
32
+ isBlackColor
33
+ }) => ({
34
+ borderRadius: '2px',
35
+ fontSize: 'inherit',
36
+ height: '22px',
37
+ marginLeft: theme.spacing(2),
38
+ marginRight: theme.spacing(2),
39
+ marginTop: theme.spacing(2),
40
+ ...(isBlackColor && {
41
+ color: theme.palette.background.paper
42
+ })
43
+ }));
44
+ const StyledSelect = (0, _styles.styled)(_Select.default)({
45
+ fontSize: 'inherit',
46
+ transform: 'translate(0%, 40%)'
47
+ });
48
+
49
+ // TODO: Change Palette so will render inputs and colors dynamically
50
+ class Palette extends _react.default.Component {
51
+ constructor(...args) {
52
+ super(...args);
53
+ (0, _defineProperty2.default)(this, "onChange", name => event => {
54
+ const {
55
+ value
56
+ } = event.target;
57
+ const {
58
+ onFillColorChange,
59
+ onOutlineColorChange,
60
+ onPaintColorChange
61
+ } = this.props;
62
+ if (name === 'fill') {
63
+ onFillColorChange(value);
64
+ } else if (name === 'outline') {
65
+ onOutlineColorChange(value);
66
+ } else {
67
+ onPaintColorChange(value);
68
+ }
69
+ });
70
+ }
71
+ render() {
72
+ const {
73
+ fillColor,
74
+ outlineColor,
75
+ fillList,
76
+ outlineList,
77
+ language
78
+ } = this.props;
79
+ return /*#__PURE__*/_react.default.createElement(BaseContainer, null, /*#__PURE__*/_react.default.createElement(StyledInputContainer, {
80
+ label: translator.t('drawingResponse.fillColor', {
81
+ lng: language
82
+ })
83
+ }, /*#__PURE__*/_react.default.createElement(StyledSelect, {
84
+ onChange: this.onChange('fill'),
85
+ value: fillColor,
86
+ variant: "standard",
87
+ MenuProps: {
88
+ transitionDuration: {
89
+ enter: 225,
90
+ exit: 195
91
+ }
92
+ }
93
+ }, fillList.map(({
94
+ value,
95
+ label
96
+ }) => /*#__PURE__*/_react.default.createElement(StyledMenuItem, {
97
+ key: value,
98
+ value: value,
99
+ isBlackColor: value === 'black',
100
+ style: {
101
+ backgroundColor: value
102
+ }
103
+ }, label)))), /*#__PURE__*/_react.default.createElement(StyledInputContainer, {
104
+ label: translator.t('drawingResponse.outlineColor', {
105
+ lng: language
106
+ })
107
+ }, /*#__PURE__*/_react.default.createElement(StyledSelect, {
108
+ onChange: this.onChange('outline'),
109
+ value: outlineColor,
110
+ variant: "standard",
111
+ MenuProps: {
112
+ transitionDuration: {
113
+ enter: 225,
114
+ exit: 195
115
+ }
116
+ }
117
+ }, outlineList.map(({
118
+ value,
119
+ label
120
+ }) => /*#__PURE__*/_react.default.createElement(StyledMenuItem, {
121
+ key: value,
122
+ value: value,
123
+ style: {
124
+ border: `2px solid ${value}`
125
+ }
126
+ }, label)))));
127
+ }
128
+ }
129
+ Palette.propTypes = {
130
+ fillColor: _propTypes.default.string.isRequired,
131
+ fillList: _propTypes.default.array.isRequired,
132
+ onFillColorChange: _propTypes.default.func.isRequired,
133
+ onOutlineColorChange: _propTypes.default.func.isRequired,
134
+ onPaintColorChange: _propTypes.default.func.isRequired,
135
+ outlineColor: _propTypes.default.string.isRequired,
136
+ outlineList: _propTypes.default.array.isRequired,
137
+ language: _propTypes.default.string
138
+ };
139
+ var _default = exports.default = Palette;
140
+ //# sourceMappingURL=drawable-palette.js.map