@pie-element/drawing-response 8.3.9-2.1 → 8.3.9-2.2
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.
|
@@ -105,4 +105,4 @@ var _default = {
|
|
|
105
105
|
}
|
|
106
106
|
};
|
|
107
107
|
exports["default"] = _default;
|
|
108
|
-
//# sourceMappingURL=
|
|
108
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","backgroundImageEnabled","imageDimensions","height","width","imageUrl","prompt","promptEnabled","spellCheckEnabled","studentInstructionsEnabled","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","configuration","baseInputConfiguration","audio","disabled","video","image","textAlign","
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["model","backgroundImageEnabled","imageDimensions","height","width","imageUrl","prompt","promptEnabled","spellCheckEnabled","studentInstructionsEnabled","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","configuration","baseInputConfiguration","audio","disabled","video","image","textAlign","spellCheck","label","settings","enabled","backgroundImage","inputConfiguration","required","settingsPanelDisabled","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,sBAAsB,EAAE,IADnB;AAELC,IAAAA,eAAe,EAAE;AAAEC,MAAAA,MAAM,EAAE,CAAV;AAAaC,MAAAA,KAAK,EAAE;AAApB,KAFZ;AAGLC,IAAAA,QAAQ,EAAE,EAHL;AAILC,IAAAA,MAAM,EAAE,EAJH;AAKLC,IAAAA,aAAa,EAAE,IALV;AAMLC,IAAAA,iBAAiB,EAAE,IANd;AAOLC,IAAAA,0BAA0B,EAAE,IAPvB;AAQLC,IAAAA,mBAAmB,EAAE,EARhB;AASLC,IAAAA,0BAA0B,EAAE,IATvB;AAULC,IAAAA,qBAAqB,EAAE;AAVlB,GADM;AAabC,EAAAA,aAAa,EAAE;AACbC,IAAAA,sBAAsB,EAAE;AACtBC,MAAAA,KAAK,EAAE;AAAEC,QAAAA,QAAQ,EAAE;AAAZ,OADe;AAEtBC,MAAAA,KAAK,EAAE;AAAED,QAAAA,QAAQ,EAAE;AAAZ,OAFe;AAGtBE,MAAAA,KAAK,EAAE;AAAEF,QAAAA,QAAQ,EAAE;AAAZ,OAHe;AAItBG,MAAAA,SAAS,EAAE;AAAEH,QAAAA,QAAQ,EAAE;AAAZ;AAJW,KADX;AAObI,IAAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,EAAE,YADG;AAEVC,MAAAA,QAAQ,EAAE,KAFA;AAGVC,MAAAA,OAAO,EAAE;AAHC,KAPC;AAYbC,IAAAA,eAAe,EAAE;AACfF,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KAZJ;AAgBbf,IAAAA,MAAM,EAAE;AACNgB,MAAAA,QAAQ,EAAE,IADJ;AAEND,MAAAA,KAAK,EAAE,QAFD;AAGNI,MAAAA,kBAAkB,EAAE;AAClBV,QAAAA,KAAK,EAAE;AAAEC,UAAAA,QAAQ,EAAE;AAAZ,SADW;AAElBC,QAAAA,KAAK,EAAE;AAAED,UAAAA,QAAQ,EAAE;AAAZ,SAFW;AAGlBE,QAAAA,KAAK,EAAE;AAAEF,UAAAA,QAAQ,EAAE;AAAZ;AAHW,OAHd;AAQNU,MAAAA,QAAQ,EAAE;AARJ,KAhBK;AA0BbC,IAAAA,qBAAqB,EAAE,KA1BV;AA2BbjB,IAAAA,mBAAmB,EAAE;AACnBY,MAAAA,QAAQ,EAAE,IADS;AAEnBD,MAAAA,KAAK,EAAE,sBAFY;AAGnBI,MAAAA,kBAAkB,EAAE;AAClBV,QAAAA,KAAK,EAAE;AAAEC,UAAAA,QAAQ,EAAE;AAAZ,SADW;AAElBC,QAAAA,KAAK,EAAE;AAAED,UAAAA,QAAQ,EAAE;AAAZ,SAFW;AAGlBE,QAAAA,KAAK,EAAE;AAAEF,UAAAA,QAAQ,EAAE;AAAZ;AAHW,OAHD;AAQnBU,MAAAA,QAAQ,EAAE;AARS,KA3BR;AAqCbE,IAAAA,aAAa,EAAE;AACblB,MAAAA,mBAAmB,EAAE,GADR;AAEbJ,MAAAA,MAAM,EAAE;AAFK,KArCF;AAyCbuB,IAAAA,cAAc,EAAE;AACdnB,MAAAA,mBAAmB,EAAE,GADP;AAEdJ,MAAAA,MAAM,EAAE;AAFM,KAzCH;AA6CbwB,IAAAA,UAAU,EAAE;AACVR,MAAAA,QAAQ,EAAE,KADA;AAEVD,MAAAA,KAAK,EAAE;AAFG,KA7CC;AAiDbU,IAAAA,aAAa,EAAE;AACbC,MAAAA,SAAS,EAAE,KADE;AAEbC,MAAAA,UAAU,EAAE;AAFC,KAjDF;AAqDbC,IAAAA,QAAQ,EAAE;AACRZ,MAAAA,QAAQ,EAAE,KADF;AAERD,MAAAA,KAAK,EAAE,kBAFC;AAGRE,MAAAA,OAAO,EAAE;AAHD,KArDG;AA0DbY,IAAAA,eAAe,EAAE;AACfd,MAAAA,KAAK,EAAE,kBADQ;AAEfe,MAAAA,OAAO,EAAE;AAFM;AA1DJ;AAbF,C","sourcesContent":["export default {\n model: {\n backgroundImageEnabled: true,\n imageDimensions: { height: 0, width: 0 },\n imageUrl: '',\n prompt: '',\n promptEnabled: true,\n spellCheckEnabled: true,\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n },\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 inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n settingsPanelDisabled: false,\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\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 mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n },\n};\n"],"file":"defaults.js"}
|
|
@@ -390,7 +390,7 @@ var styles = function styles() {
|
|
|
390
390
|
undoControls: {
|
|
391
391
|
marginTop: -43,
|
|
392
392
|
marginRight: 10,
|
|
393
|
-
position: '
|
|
393
|
+
position: 'absolute'
|
|
394
394
|
}
|
|
395
395
|
};
|
|
396
396
|
};
|
|
@@ -416,4 +416,4 @@ DrawableMain.propTypes = {
|
|
|
416
416
|
var _default = (0, _styles.withStyles)(styles)(DrawableMain);
|
|
417
417
|
|
|
418
418
|
exports["default"] = _default;
|
|
419
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kcmF3aW5nLXJlc3BvbnNlL2RyYXdhYmxlLW1haW4uanN4Il0sIm5hbWVzIjpbInRyYW5zbGF0b3IiLCJUcmFuc2xhdG9yIiwiRHJhd2FibGVNYWluIiwicHJvcHMiLCJvblNlc3Npb25DaGFuZ2UiLCJzZXNzaW9uIiwiVGV4dEVudHJ5IiwiZHJhd2FibGVEaW1lbnNpb25zIiwiZHJhd2FibGVzIiwic3RhdGUiLCJuZXdTZXNzaW9uIiwid2lkdGgiLCJtYXAiLCJkIiwidG9Kc29uIiwidGV4dHMiLCJhbGwiLCJ0ZXh0IiwiaWQiLCJhdHRycyIsInZhbHVlIiwic2V0U3RhdGUiLCJpc092ZXIiLCJlIiwiZG9jdW1lbnQiLCJib2R5Iiwic3R5bGUiLCJvdmVyZmxvdyIsIm5ld0RyYXdhYmxlIiwidGV4dElzU2VsZWN0ZWQiLCJ0b29sQWN0aXZlIiwiZmlsbENvbG9yIiwib3V0bGluZUNvbG9yIiwic2NhbGUiLCJsZW5ndGgiLCJ0YXJnZXQiLCJnZXRTdGFnZSIsImdldFBvaW50ZXJQb3NpdGlvbiIsIngiLCJ5IiwidHlwZSIsInN0YXJ0eCIsInN0YXJ0eSIsImNyZWF0ZWRBdCIsIkRhdGUiLCJkcmF3YWJsZVRvQWRkIiwicmVnaXN0ZXJNb3ZlbWVudCIsInB1c2giLCJoYW5kbGVTZXNzaW9uQ2hhbmdlIiwiYmluZCIsInVwZGF0ZWROZXdEcmF3YWJsZSIsIm5ld0RyYXdhYmxlcyIsImFsbERhdGEiLCJzb3J0IiwiYSIsImIiLCJsYXN0RWxlbWVudCIsInBvcCIsInVwZGF0ZWRBdCIsIm5leHRQcm9wcyIsImN1cnJlbnREcmF3YWJsZXMiLCJkcmF3YWJsZXNTdHJpbmciLCJKU09OIiwic3RyaW5naWZ5Iiwic2Vzc2lvbkRyYXdhYmxlU3RyaW5nIiwiZHJhd2FibGUiLCJkcmF3YWJsZUFycmF5IiwiY3VycmVudFRleHRzIiwic2V0QWxsIiwiY2xhc3NlcyIsImRpc2FibGVkIiwiaW1hZ2VEaW1lbnNpb25zIiwiaW1hZ2VVcmwiLCJwYWludENvbG9yIiwiYmFja2dyb3VuZEltYWdlRW5hYmxlZCIsImxhbmd1YWdlIiwiZHJhZ2dhYmxlIiwicGFpbnQiLCJkcmF3YWJsZVByb3BzIiwiZm9yY2VVcGRhdGUiLCJ0b2dnbGVUZXh0U2VsZWN0ZWQiLCJzdGFnZSIsIm9uTW91c2VPdmVyRWxlbWVudCIsIm9uTW91c2VPdXRFbGVtZW50IiwibGlzdGVuZXJzIiwib25Nb3VzZVVwIiwiaGFuZGxlTW91c2VVcCIsIm9uVG91Y2hFbmQiLCJvbk1vdXNlTW92ZSIsImhhbmRsZU1vdXNlTW92ZSIsIm9uVG91Y2hNb3ZlIiwib25Nb3VzZURvd24iLCJoYW5kbGVNb3VzZURvd24iLCJvblRvdWNoU3RhcnQiLCJpbWFnZUhlaWdodCIsImhlaWdodCIsImltYWdlV2lkdGgiLCJ3cmFwcGVyIiwidW5kb0NvbnRyb2xzIiwiaGFuZGxlVW5kbyIsInQiLCJsbmciLCJoYW5kbGVDbGVhckFsbCIsImJhc2UiLCJyZW5kZXJUZXh0YXJlYXMiLCJyZWYiLCJhY3RpdmUiLCJsYXllciIsImtleSIsInJlbmRlciIsIlJlYWN0IiwiQ29tcG9uZW50Iiwic3R5bGVzIiwiZGlzcGxheSIsImZsZXhXcmFwIiwianVzdGlmeUNvbnRlbnQiLCJwb3NpdGlvbiIsImxlZnQiLCJ0b3VjaEFjdGlvbiIsInRvcCIsImN1cnNvciIsIm1hcmdpblRvcCIsIm1hcmdpblJpZ2h0IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsImJvb2wiLCJzdHJpbmciLCJmdW5jIiwibnVtYmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUhBLElBQVFBLFVBQVIsR0FBdUJDLHNCQUF2QixDQUFRRCxVQUFSOztJQUthRSxZOzs7OztBQUNYLHdCQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUE7QUFD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QUFFdUgsc0JBQVVDLE1BQVYsQ0FBaUJDLFVBWkg7QUFhdkJwRCxFQUFBQSxzQkFBc0IsRUFBRWtELHNCQUFVRyxJQUFWLENBQWVELFVBYmhCO0FBY3ZCN0YsRUFBQUEsS0FBSyxFQUFFMkYsc0JBQVVNLE1BQVYsQ0FBaUJKLFVBZEQ7QUFldkJuRCxFQUFBQSxRQUFRLEVBQUVpRCxzQkFBVUk7QUFmRyxDQUF6Qjs7ZUFrQmUsd0JBQVdoQixNQUFYLEVBQW1COUcsWUFBbkIsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IG9taXQgZnJvbSAnbG9kYXNoL29taXQnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgTGF5ZXIsIFN0YWdlIH0gZnJvbSAncmVhY3Qta29udmEnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgVHJhbnNsYXRvciBmcm9tICdAcGllLWxpYi9waWUtdG9vbGJveC90cmFuc2xhdG9yJztcblxuY29uc3QgeyB0cmFuc2xhdG9yIH0gPSBUcmFuc2xhdG9yO1xuaW1wb3J0IEltYWdlQmFja2dyb3VuZCBmcm9tICcuL2RyYXdhYmxlLWltYWdlJztcbmltcG9ydCBCdXR0b24gZnJvbSAnLi9idXR0b24nO1xuaW1wb3J0IGZhY3RvcnkgZnJvbSAnLi9mYWN0b3J5JztcblxuZXhwb3J0IGNsYXNzIERyYXdhYmxlTWFpbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBkcmF3YWJsZXM6IFtdLFxuICAgICAgbmV3RHJhd2FibGU6IFtdLFxuICAgICAgdGV4dElzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgIH07XG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICBpZiAobmV4dFByb3BzLnNlc3Npb24pIHtcbiAgICAgIGNvbnN0IHsgVGV4dEVudHJ5IH0gPSBuZXh0UHJvcHM7XG4gICAgICBjb25zdCB7IGRyYXdhYmxlczogY3VycmVudERyYXdhYmxlcyB9ID0gdGhpcy5zdGF0ZTtcblxuICAgICAgaWYgKG5leHRQcm9wcy5zZXNzaW9uLmRyYXdhYmxlcykge1xuICAgICAgICBjb25zdCBuZXdEcmF3YWJsZXMgPSBjbG9uZURlZXAobmV4dFByb3BzLnNlc3Npb24uZHJhd2FibGVzKTtcbiAgICAgICAgY29uc3QgZHJhd2FibGVzU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoY3VycmVudERyYXdhYmxlcyk7XG4gICAgICAgIGNvbnN0IHNlc3Npb25EcmF3YWJsZVN0cmluZyA9IEpTT04uc3RyaW5naWZ5KChuZXdEcmF3YWJsZXMgfHwgW10pLm1hcCgoZHJhd2FibGUpID0+IG9taXQoZHJhd2FibGUsICd0eXBlJykpKTtcblxuICAgICAgICBpZiAoZHJhd2FibGVzU3RyaW5nICE9PSBzZXNzaW9uRHJhd2FibGVTdHJpbmcpIHtcbiAgICAgICAgICBjb25zdCBkcmF3YWJsZUFycmF5ID0gbmV4dFByb3BzLnNlc3Npb24uZHJhd2FibGVzO1xuXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBkcmF3YWJsZXM6IGRyYXdhYmxlQXJyYXkubWFwKChkcmF3YWJsZSkgPT4gZmFjdG9yeShkcmF3YWJsZS50eXBlLCBkcmF3YWJsZSkpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudFRleHRzID0gVGV4dEVudHJ5LmFsbC5tYXAoKHRleHQpID0+ICh7XG4gICAgICAgICAgLi4udGV4dCxcbiAgICAgICAgICAuLi4oVGV4dEVudHJ5W2B0ZXh0XyR7dGV4dC5pZH1gXSAmJiBUZXh0RW50cnlbYHRleHRfJHt0ZXh0LmlkfWBdLmF0dHJzKSxcbiAgICAgICAgICB2YWx1ZTogVGV4dEVudHJ5W2B0ZXh0YXJlYV8ke3RleHQuaWR9YF0gJiYgVGV4dEVudHJ5W2B0ZXh0YXJlYV8ke3RleHQuaWR9YF0udmFsdWUsXG4gICAgICAgIH0pKTtcblxuICAgICAgICBpZiAoIWlzRXF1YWwoY3VycmVudFRleHRzLCBuZXh0UHJvcHMuc2Vzc2lvbi50ZXh0cykpIHtcbiAgICAgICAgICBUZXh0RW50cnkuc2V0QWxsKG5leHRQcm9wcy5zZXNzaW9uLnRleHRzIHx8IFtdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhbmRsZVNlc3Npb25DaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZXNzaW9uQ2hhbmdlID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgb25TZXNzaW9uQ2hhbmdlLCBzZXNzaW9uLCBUZXh0RW50cnksIGRyYXdhYmxlRGltZW5zaW9ucyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IGRyYXdhYmxlcyB9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGNvbnN0IG5ld1Nlc3Npb24gPSB7XG4gICAgICB3aWR0aDogZHJhd2FibGVEaW1lbnNpb25zLndpZHRoLFxuICAgICAgZHJhd2FibGVzOiBkcmF3YWJsZXMubWFwKChkKSA9PiBkLnRvSnNvbigpKSxcbiAgICAgIHRleHRzOiBUZXh0RW50cnkuYWxsLm1hcCgodGV4dCkgPT4gKHtcbiAgICAgICAgLi4udGV4dCxcbiAgICAgICAgLi4uKFRleHRFbnRyeVtgdGV4dF8ke3RleHQuaWR9YF0gJiYgVGV4dEVudHJ5W2B0ZXh0XyR7dGV4dC5pZH1gXS5hdHRycyksXG4gICAgICAgIHZhbHVlOiBUZXh0RW50cnlbYHRleHRhcmVhXyR7dGV4dC5pZH1gXSAmJiBUZXh0RW50cnlbYHRleHRhcmVhXyR7dGV4dC5pZH1gXS52YWx1ZSxcbiAgICAgIH0pKSxcbiAgICB9O1xuXG4gICAgaWYgKCFpc0VxdWFsKG5ld1Nlc3Npb24sIHNlc3Npb24pKSB7XG4gICAgICBvblNlc3Npb25DaGFuZ2Uoe1xuICAgICAgICAuLi5zZXNzaW9uLFxuICAgICAgICAuLi5uZXdTZXNzaW9uLFxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIG9uTW91c2VPdmVyRWxlbWVudCA9ICgpID0+IHRoaXMuc2V0U3RhdGUoeyBpc092ZXI6IHRydWUgfSk7XG5cbiAgb25Nb3VzZU91dEVsZW1lbnQgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHsgaXNPdmVyOiBmYWxzZSB9KTtcblxuICBoYW5kbGVNb3VzZURvd24gPSAoZSkgPT4ge1xuICAgIC8vIE9OTFkgSUYgTU9CSUxFP1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcblxuICAgIGNvbnN0IHsgbmV3RHJhd2FibGUsIHRleHRJc1NlbGVjdGVkIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHsgdG9vbEFjdGl2ZSwgZmlsbENvbG9yLCBvdXRsaW5lQ29sb3IsIHNjYWxlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKG5ld0RyYXdhYmxlLmxlbmd0aCA9PT0gMCAmJiAhdGV4dElzU2VsZWN0ZWQpIHtcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gZS50YXJnZXQuZ2V0U3RhZ2UoKS5nZXRQb2ludGVyUG9zaXRpb24oKTtcblxuICAgICAgY29uc3QgbmV3RHJhd2FibGUgPSBmYWN0b3J5KHRvb2xBY3RpdmUudHlwZSwge1xuICAgICAgICBzdGFydHg6IHggLyBzY2FsZSxcbiAgICAgICAgc3RhcnR5OiB5IC8gc2NhbGUsXG4gICAgICAgIGZpbGxDb2xvcixcbiAgICAgICAgb3V0bGluZUNvbG9yLFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIG5ld0RyYXdhYmxlOiBbbmV3RHJhd2FibGVdLFxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGhhbmRsZU1vdXNlVXAgPSAoZSkgPT4ge1xuICAgIC8vIE9OTFkgSUYgTU9CSUxFP1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaW5pdGlhbCc7XG5cbiAgICBjb25zdCB7IG5ld0RyYXdhYmxlLCBkcmF3YWJsZXMgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgeyBzY2FsZSB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChuZXdEcmF3YWJsZS5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gZS50YXJnZXQuZ2V0U3RhZ2UoKS5nZXRQb2ludGVyUG9zaXRpb24oKTtcbiAgICAgIGNvbnN0IGRyYXdhYmxlVG9BZGQgPSBuZXdEcmF3YWJsZVswXTtcblxuICAgICAgZHJhd2FibGVUb0FkZC5yZWdpc3Rlck1vdmVtZW50KHggLyBzY2FsZSwgeSAvIHNjYWxlKTtcbiAgICAgIGRyYXdhYmxlcy5wdXNoKGRyYXdhYmxlVG9BZGQpO1xuXG4gICAgICB0aGlzLnNldFN0YXRlKFxuICAgICAgICB7XG4gICAgICAgICAgbmV3RHJhd2FibGU6IFtdLFxuICAgICAgICAgIGRyYXdhYmxlcyxcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5oYW5kbGVTZXNzaW9uQ2hhbmdlLmJpbmQodGhpcywgZHJhd2FibGVUb0FkZCksXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICBoYW5kbGVNb3VzZU1vdmUgPSAoZSkgPT4ge1xuICAgIGNvbnN0IHsgbmV3RHJhd2FibGUgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgeyBzY2FsZSB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChuZXdEcmF3YWJsZS5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gZS50YXJnZXQuZ2V0U3RhZ2UoKS5nZXRQb2ludGVyUG9zaXRpb24oKTtcbiAgICAgIGNvbnN0IHVwZGF0ZWROZXdEcmF3YWJsZSA9IG5ld0RyYXdhYmxlWzBdO1xuXG4gICAgICB1cGRhdGVkTmV3RHJhd2FibGUucmVnaXN0ZXJNb3ZlbWVudCh4IC8gc2NhbGUsIHkgLyBzY2FsZSk7XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBuZXdEcmF3YWJsZTogW3VwZGF0ZWROZXdEcmF3YWJsZV0sXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgaGFuZGxlVW5kbyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGRyYXdhYmxlcyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7IFRleHRFbnRyeSB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IG5ld0RyYXdhYmxlcyA9IFsuLi5kcmF3YWJsZXNdO1xuICAgIGNvbnN0IGFsbERhdGEgPSBbLi4uZHJhd2FibGVzLCAuLi5UZXh0RW50cnkuYWxsXTtcblxuICAgIGFsbERhdGEuc29ydCgoYSwgYikgPT4gbmV3IERhdGUoYS5jcmVhdGVkQXQpIC0gbmV3IERhdGUoYi5jcmVhdGVkQXQpKTtcbiAgICBjb25zdCBsYXN0RWxlbWVudCA9IGFsbERhdGFbYWxsRGF0YS5sZW5ndGggLSAxXTtcblxuICAgIGlmIChsYXN0RWxlbWVudCAmJiBsYXN0RWxlbWVudC50eXBlID09PSAndGV4dC1lbnRyeScpIHtcbiAgICAgIFRleHRFbnRyeS5hbGwucG9wKCk7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgdXBkYXRlZEF0OiBuZXcgRGF0ZSgpIH0sIHRoaXMuaGFuZGxlU2Vzc2lvbkNoYW5nZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0RyYXdhYmxlcy5wb3AoKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBkcmF3YWJsZXM6IG5ld0RyYXdhYmxlcyB9LCB0aGlzLmhhbmRsZVNlc3Npb25DaGFuZ2UpO1xuICAgIH1cbiAgfTtcblxuICBoYW5kbGVDbGVhckFsbCA9ICgpID0+IHtcbiAgICBjb25zdCB7IFRleHRFbnRyeSB9ID0gdGhpcy5wcm9wcztcblxuICAgIFRleHRFbnRyeS5hbGwgPSBbXTtcbiAgICB0aGlzLnNldFN0YXRlKHsgZHJhd2FibGVzOiBbXSwgdXBkYXRlZEF0OiBuZXcgRGF0ZSgpIH0sIHRoaXMuaGFuZGxlU2Vzc2lvbkNoYW5nZSk7XG4gIH07XG5cbiAgdG9nZ2xlVGV4dFNlbGVjdGVkID0gKHRleHRJc1NlbGVjdGVkKSA9PiB0aGlzLnNldFN0YXRlKHsgdGV4dElzU2VsZWN0ZWQgfSk7XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNsYXNzZXMsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGRyYXdhYmxlRGltZW5zaW9ucyxcbiAgICAgIGZpbGxDb2xvcixcbiAgICAgIGltYWdlRGltZW5zaW9ucyxcbiAgICAgIGltYWdlVXJsLFxuICAgICAgcGFpbnRDb2xvcixcbiAgICAgIG91dGxpbmVDb2xvcixcbiAgICAgIFRleHRFbnRyeSxcbiAgICAgIGJhY2tncm91bmRJbWFnZUVuYWJsZWQgPSB0cnVlLFxuICAgICAgdG9vbEFjdGl2ZTogeyB0eXBlIH0sXG4gICAgICBzY2FsZSxcbiAgICAgIGxhbmd1YWdlXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBpc092ZXIsIG5ld0RyYXdhYmxlIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgZHJhZ2dhYmxlID0gdHlwZSA9PT0gJ1NlbGVjdCc7XG4gICAgY29uc3QgcGFpbnQgPSB0eXBlID09PSAnUGFpbnRCdWNrZXQnO1xuICAgIGNvbnN0IGRyYXdhYmxlcyA9IFsuLi50aGlzLnN0YXRlLmRyYXdhYmxlcywgLi4udGhpcy5zdGF0ZS5uZXdEcmF3YWJsZV07XG5cbiAgICBjb25zdCBkcmF3YWJsZVByb3BzID0ge1xuICAgICAgZHJhZ2dhYmxlOiBkcmFnZ2FibGUgJiYgIWRpc2FibGVkLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBwYWludCxcbiAgICAgIGZpbGxDb2xvcixcbiAgICAgIGZvcmNlVXBkYXRlOiAoKSA9PiB0aGlzLnNldFN0YXRlKHsgdXBkYXRlZEF0OiBuZXcgRGF0ZSgpIH0pLFxuICAgICAgcGFpbnRDb2xvcixcbiAgICAgIG91dGxpbmVDb2xvcixcbiAgICAgIHRvZ2dsZVRleHRTZWxlY3RlZDogdGhpcy50b2dnbGVUZXh0U2VsZWN0ZWQsXG4gICAgICBoYW5kbGVTZXNzaW9uQ2hhbmdlOiB0aGlzLmhhbmRsZVNlc3Npb25DaGFuZ2UsXG4gICAgICBzdGFnZTogdGhpcy5zdGFnZSxcbiAgICAgIG9uTW91c2VPdmVyRWxlbWVudDogdGhpcy5vbk1vdXNlT3ZlckVsZW1lbnQsXG4gICAgICBvbk1vdXNlT3V0RWxlbWVudDogdGhpcy5vbk1vdXNlT3V0RWxlbWVudCxcbiAgICAgIHNjYWxlXG4gICAgfTtcblxuICAgIGxldCBsaXN0ZW5lcnMgPSB7fTtcblxuICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgIGxpc3RlbmVycyA9IHtcbiAgICAgICAgb25Nb3VzZVVwOiB0aGlzLmhhbmRsZU1vdXNlVXAsXG4gICAgICAgIG9uVG91Y2hFbmQ6IHRoaXMuaGFuZGxlTW91c2VVcCxcbiAgICAgICAgb25Nb3VzZU1vdmU6IHRoaXMuaGFuZGxlTW91c2VNb3ZlLFxuICAgICAgICBvblRvdWNoTW92ZTogdGhpcy5oYW5kbGVNb3VzZU1vdmUsXG4gICAgICB9O1xuXG4gICAgICBpZiAoIWRyYWdnYWJsZSkge1xuICAgICAgICBsaXN0ZW5lcnMub25Nb3VzZURvd24gPSB0aGlzLmhhbmRsZU1vdXNlRG93bjtcbiAgICAgICAgbGlzdGVuZXJzLm9uVG91Y2hTdGFydCA9IHRoaXMuaGFuZGxlTW91c2VEb3duO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGltYWdlSGVpZ2h0ID0gaW1hZ2VEaW1lbnNpb25zPy5oZWlnaHQgKiBzY2FsZTtcbiAgICBjb25zdCBpbWFnZVdpZHRoID0gaW1hZ2VEaW1lbnNpb25zPy53aWR0aCAqIHNjYWxlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLndyYXBwZXJ9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy51bmRvQ29udHJvbHN9PlxuICAgICAgICAgIDxCdXR0b24gZGlzYWJsZWQ9e2Rpc2FibGVkfSBvbkNsaWNrPXt0aGlzLmhhbmRsZVVuZG99IGxhYmVsPXt0cmFuc2xhdG9yLnQoJ2NvbW1vbjp1bmRvJywgeyBsbmc6IGxhbmd1YWdlIH0pfSAvPlxuICAgICAgICAgIDxCdXR0b24gZGlzYWJsZWQ9e2Rpc2FibGVkfSBvbkNsaWNrPXt0aGlzLmhhbmRsZUNsZWFyQWxsfSBsYWJlbD17dHJhbnNsYXRvci50KCdjb21tb246Y2xlYXJBbGwnLCB7IGxuZzogbGFuZ3VhZ2UgfSl9IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5iYXNlfT5cbiAgICAgICAgICB7YmFja2dyb3VuZEltYWdlRW5hYmxlZCAmJiBpbWFnZVVybCAmJiAoXG4gICAgICAgICAgICA8SW1hZ2VCYWNrZ3JvdW5kIGRpbWVuc2lvbnM9e3sgaGVpZ2h0OiBpbWFnZUhlaWdodCwgd2lkdGg6IGltYWdlV2lkdGggfX0gdXJsPXtpbWFnZVVybH0gLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge1RleHRFbnRyeS5yZW5kZXJUZXh0YXJlYXMoKX1cblxuICAgICAgICAgIDxTdGFnZVxuICAgICAgICAgICAgc2NhbGVYPXtzY2FsZX1cbiAgICAgICAgICAgIHNjYWxlWT17c2NhbGV9XG4gICAgICAgICAgICByZWY9eyhyZWYpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zdGFnZSA9IHJlZjtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoY2xhc3Nlcy5zdGFnZSwge1xuICAgICAgICAgICAgICBbY2xhc3Nlcy5hY3RpdmVdOiBkcmFnZ2FibGUgJiYgKGlzT3ZlciB8fCAobmV3RHJhd2FibGUgJiYgbmV3RHJhd2FibGUubGVuZ3RoID09PSAxKSksXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIGhlaWdodD17ZHJhd2FibGVEaW1lbnNpb25zLmhlaWdodH1cbiAgICAgICAgICAgIHdpZHRoPXtkcmF3YWJsZURpbWVuc2lvbnMud2lkdGh9XG4gICAgICAgICAgICB7Li4ubGlzdGVuZXJzfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxMYXllclxuICAgICAgICAgICAgICByZWY9eyhyZWYpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxheWVyID0gcmVmO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7ZHJhd2FibGVzLm1hcCgoZHJhd2FibGUsIGtleSkgPT4gZHJhd2FibGUucmVuZGVyKHsgLi4uZHJhd2FibGVQcm9wcywga2V5IH0pKX1cbiAgICAgICAgICAgICAgey8qIFRleHQgRW50cnkgaXMgYSBzcGVjaWFsIGNhc2UgICovfVxuICAgICAgICAgICAgICB7VGV4dEVudHJ5LnJlbmRlcihkcmF3YWJsZVByb3BzKX1cbiAgICAgICAgICAgIDwvTGF5ZXI+XG4gICAgICAgICAgPC9TdGFnZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IHN0eWxlcyA9ICgpID0+ICh7XG4gIHdyYXBwZXI6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJyxcbiAgfSxcbiAgYmFzZToge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gIH0sXG4gIHN0YWdlOiB7XG4gICAgbGVmdDogMCxcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB0b3VjaEFjdGlvbjogJ25vbmUnLFxuICAgIHRvcDogMCxcbiAgfSxcbiAgYWN0aXZlOiB7XG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG4gIH0sXG4gIHVuZG9Db250cm9sczoge1xuICAgIG1hcmdpblRvcDogLTQzLFxuICAgIG1hcmdpblJpZ2h0OiAxMCxcbiAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgfSxcbn0pO1xuXG5EcmF3YWJsZU1haW4ucHJvcFR5cGVzID0ge1xuICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgZHJhd2FibGVEaW1lbnNpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGltYWdlRGltZW5zaW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBmaWxsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgb25TZXNzaW9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBwYWludENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIG91dGxpbmVDb2xvcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBpbWFnZVVybDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBUZXh0RW50cnk6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgdG9vbEFjdGl2ZTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBzZXNzaW9uOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGJhY2tncm91bmRJbWFnZUVuYWJsZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIHNjYWxlOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIGxhbmd1YWdlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMpKERyYXdhYmxlTWFpbik7XG4iXX0=
|
|
419
|
+
//# sourceMappingURL=drawable-main.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/drawing-response/drawable-main.jsx"],"names":["translator","Translator","DrawableMain","props","onSessionChange","session","TextEntry","drawableDimensions","drawables","state","newSession","width","map","d","toJson","texts","all","text","id","attrs","value","setState","isOver","e","document","body","style","overflow","newDrawable","textIsSelected","toolActive","fillColor","outlineColor","scale","length","target","getStage","getPointerPosition","x","y","type","startx","starty","createdAt","Date","drawableToAdd","registerMovement","push","handleSessionChange","bind","updatedNewDrawable","newDrawables","allData","sort","a","b","lastElement","pop","updatedAt","nextProps","currentDrawables","drawablesString","JSON","stringify","sessionDrawableString","drawable","drawableArray","currentTexts","setAll","classes","disabled","imageDimensions","imageUrl","paintColor","backgroundImageEnabled","language","draggable","paint","drawableProps","forceUpdate","toggleTextSelected","stage","onMouseOverElement","onMouseOutElement","listeners","onMouseUp","handleMouseUp","onTouchEnd","onMouseMove","handleMouseMove","onTouchMove","onMouseDown","handleMouseDown","onTouchStart","imageHeight","height","imageWidth","wrapper","undoControls","handleUndo","t","lng","handleClearAll","base","renderTextareas","ref","active","layer","key","render","React","Component","styles","display","flexWrap","justifyContent","position","left","touchAction","top","cursor","marginTop","marginRight","propTypes","PropTypes","object","isRequired","bool","string","func","number"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport omit from 'lodash/omit';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\nimport classnames from 'classnames';\nimport { Layer, Stage } from 'react-konva';\nimport { withStyles } from '@material-ui/core/styles';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\nimport ImageBackground from './drawable-image';\nimport Button from './button';\nimport factory from './factory';\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 }\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 { x, y } = e.target.getStage().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 { x, y } = e.target.getStage().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 { x, y } = e.target.getStage().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 classes,\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 <div className={classes.wrapper}>\n <div className={classes.undoControls}>\n <Button disabled={disabled} onClick={this.handleUndo} label={translator.t('common:undo', { lng: language })} />\n <Button disabled={disabled} onClick={this.handleClearAll} label={translator.t('common:clearAll', { lng: language })} />\n </div>\n <div className={classes.base}>\n {backgroundImageEnabled && imageUrl && (\n <ImageBackground dimensions={{ height: imageHeight, width: imageWidth }} url={imageUrl} />\n )}\n\n {TextEntry.renderTextareas()}\n\n <Stage\n scaleX={scale}\n scaleY={scale}\n ref={(ref) => {\n this.stage = ref;\n }}\n className={classnames(classes.stage, {\n [classes.active]: draggable && (isOver || (newDrawable && newDrawable.length === 1)),\n })}\n height={drawableDimensions.height}\n width={drawableDimensions.width}\n {...listeners}\n >\n <Layer\n ref={(ref) => {\n this.layer = ref;\n }}\n >\n {drawables.map((drawable, key) => drawable.render({ ...drawableProps, key }))}\n {/* Text Entry is a special case */}\n {TextEntry.render(drawableProps)}\n </Layer>\n </Stage>\n </div>\n </div>\n );\n }\n}\n\nconst styles = () => ({\n wrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n },\n base: {\n position: 'relative',\n width: '100%',\n },\n stage: {\n left: 0,\n position: 'absolute',\n touchAction: 'none',\n top: 0,\n },\n active: {\n cursor: 'pointer',\n },\n undoControls: {\n marginTop: -43,\n marginRight: 10,\n },\n});\n\nDrawableMain.propTypes = {\n classes: PropTypes.object.isRequired,\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 withStyles(styles)(DrawableMain);\n"],"file":"drawable-main.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/drawing-response/drawable-main.jsx"],"names":["translator","Translator","DrawableMain","props","onSessionChange","session","TextEntry","drawableDimensions","drawables","state","newSession","width","map","d","toJson","texts","all","text","id","attrs","value","setState","isOver","e","document","body","style","overflow","newDrawable","textIsSelected","toolActive","fillColor","outlineColor","scale","length","target","getStage","getPointerPosition","x","y","type","startx","starty","createdAt","Date","drawableToAdd","registerMovement","push","handleSessionChange","bind","updatedNewDrawable","newDrawables","allData","sort","a","b","lastElement","pop","updatedAt","nextProps","currentDrawables","drawablesString","JSON","stringify","sessionDrawableString","drawable","drawableArray","currentTexts","setAll","classes","disabled","imageDimensions","imageUrl","paintColor","backgroundImageEnabled","language","draggable","paint","drawableProps","forceUpdate","toggleTextSelected","stage","onMouseOverElement","onMouseOutElement","listeners","onMouseUp","handleMouseUp","onTouchEnd","onMouseMove","handleMouseMove","onTouchMove","onMouseDown","handleMouseDown","onTouchStart","imageHeight","height","imageWidth","wrapper","undoControls","handleUndo","t","lng","handleClearAll","base","renderTextareas","ref","active","layer","key","render","React","Component","styles","display","flexWrap","justifyContent","position","left","touchAction","top","cursor","marginTop","marginRight","propTypes","PropTypes","object","isRequired","bool","string","func","number"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport omit from 'lodash/omit';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\nimport classnames from 'classnames';\nimport { Layer, Stage } from 'react-konva';\nimport { withStyles } from '@material-ui/core/styles';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\nimport ImageBackground from './drawable-image';\nimport Button from './button';\nimport factory from './factory';\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 }\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 { x, y } = e.target.getStage().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 { x, y } = e.target.getStage().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 { x, y } = e.target.getStage().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 classes,\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 <div className={classes.wrapper}>\n <div className={classes.undoControls}>\n <Button disabled={disabled} onClick={this.handleUndo} label={translator.t('common:undo', { lng: language })} />\n <Button disabled={disabled} onClick={this.handleClearAll} label={translator.t('common:clearAll', { lng: language })} />\n </div>\n <div className={classes.base}>\n {backgroundImageEnabled && imageUrl && (\n <ImageBackground dimensions={{ height: imageHeight, width: imageWidth }} url={imageUrl} />\n )}\n\n {TextEntry.renderTextareas()}\n\n <Stage\n scaleX={scale}\n scaleY={scale}\n ref={(ref) => {\n this.stage = ref;\n }}\n className={classnames(classes.stage, {\n [classes.active]: draggable && (isOver || (newDrawable && newDrawable.length === 1)),\n })}\n height={drawableDimensions.height}\n width={drawableDimensions.width}\n {...listeners}\n >\n <Layer\n ref={(ref) => {\n this.layer = ref;\n }}\n >\n {drawables.map((drawable, key) => drawable.render({ ...drawableProps, key }))}\n {/* Text Entry is a special case */}\n {TextEntry.render(drawableProps)}\n </Layer>\n </Stage>\n </div>\n </div>\n );\n }\n}\n\nconst styles = () => ({\n wrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n },\n base: {\n position: 'relative',\n width: '100%',\n },\n stage: {\n left: 0,\n position: 'absolute',\n touchAction: 'none',\n top: 0,\n },\n active: {\n cursor: 'pointer',\n },\n undoControls: {\n marginTop: -43,\n marginRight: 10,\n position: 'absolute',\n },\n});\n\nDrawableMain.propTypes = {\n classes: PropTypes.object.isRequired,\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 withStyles(styles)(DrawableMain);\n"],"file":"drawable-main.js"}
|
package/package.json
CHANGED