nzk-react-components 0.3.7 → 0.4.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/components/Button/Button.d.ts +2 -1
  2. package/dist/components/DatePicker/DatePicker.d.ts +16 -0
  3. package/dist/components/DatePicker/DatePicker.js +60 -0
  4. package/dist/components/DatePicker/DatePicker.js.map +1 -0
  5. package/dist/components/DatePicker/DatePicker.stories.d.ts +6 -0
  6. package/dist/components/DatePicker/index.d.ts +2 -0
  7. package/dist/components/DatePicker/index.js +8 -0
  8. package/dist/components/{DrawingTool/components/CropChoicePopup → DatePicker}/index.js.map +0 -0
  9. package/dist/components/DrawingTool/DrawingTool.d.ts +0 -3
  10. package/dist/components/DrawingTool/DrawingTool.js +45 -83
  11. package/dist/components/DrawingTool/DrawingTool.js.map +1 -1
  12. package/dist/components/DrawingTool/DrawingTool.styles.d.ts +1 -7
  13. package/dist/components/DrawingTool/DrawingTool.styles.js +5 -6
  14. package/dist/components/DrawingTool/DrawingTool.styles.js.map +1 -1
  15. package/dist/components/DrawingTool/DrawingToolProvider.d.ts +4 -5
  16. package/dist/components/DrawingTool/DrawingToolProvider.js +9 -15
  17. package/dist/components/DrawingTool/DrawingToolProvider.js.map +1 -1
  18. package/dist/components/DrawingTool/components/Header/Header.js +2 -2
  19. package/dist/components/DrawingTool/lib/Sketch.js +5 -2
  20. package/dist/components/DrawingTool/lib/Sketch.js.map +1 -1
  21. package/dist/components/Input/Input.d.ts +7 -0
  22. package/dist/components/Input/Input.js +19 -0
  23. package/dist/components/Input/Input.js.map +1 -0
  24. package/dist/components/Input/Input.stories.d.ts +6 -0
  25. package/dist/components/Input/index.d.ts +2 -0
  26. package/dist/components/Input/index.js +8 -0
  27. package/dist/components/{DrawingTool/components/ImageInputPopup → Input}/index.js.map +0 -0
  28. package/dist/index.d.ts +3 -3
  29. package/dist/index.js +4 -5
  30. package/dist/index.js.map +1 -1
  31. package/package.json +2 -5
  32. package/dist/.DS_Store +0 -0
  33. package/dist/assets/.DS_Store +0 -0
  34. package/dist/assets/icons/.DS_Store +0 -0
  35. package/dist/components/DrawingTool/components/CropChoicePopup/CropChoicePopup.d.ts +0 -8
  36. package/dist/components/DrawingTool/components/CropChoicePopup/CropChoicePopup.js +0 -27
  37. package/dist/components/DrawingTool/components/CropChoicePopup/CropChoicePopup.js.map +0 -1
  38. package/dist/components/DrawingTool/components/CropChoicePopup/CropChoicePopup.styles.d.ts +0 -5
  39. package/dist/components/DrawingTool/components/CropChoicePopup/CropChoicePopup.styles.js +0 -20
  40. package/dist/components/DrawingTool/components/CropChoicePopup/CropChoicePopup.styles.js.map +0 -1
  41. package/dist/components/DrawingTool/components/CropChoicePopup/index.d.ts +0 -2
  42. package/dist/components/DrawingTool/components/CropChoicePopup/index.js +0 -8
  43. package/dist/components/DrawingTool/components/ImageInputPopup/ImageInputPopup.d.ts +0 -9
  44. package/dist/components/DrawingTool/components/ImageInputPopup/ImageInputPopup.js +0 -83
  45. package/dist/components/DrawingTool/components/ImageInputPopup/ImageInputPopup.js.map +0 -1
  46. package/dist/components/DrawingTool/components/ImageInputPopup/ImageInputPopup.styles.d.ts +0 -4
  47. package/dist/components/DrawingTool/components/ImageInputPopup/ImageInputPopup.styles.js +0 -22
  48. package/dist/components/DrawingTool/components/ImageInputPopup/ImageInputPopup.styles.js.map +0 -1
  49. package/dist/components/DrawingTool/components/ImageInputPopup/index.d.ts +0 -2
  50. package/dist/components/DrawingTool/components/ImageInputPopup/index.js +0 -8
  51. package/dist/components/DrawingTool/components/Loader.d.ts +0 -19
  52. package/dist/components/DrawingTool/components/Loader.js +0 -35
  53. package/dist/components/DrawingTool/components/Loader.js.map +0 -1
  54. package/dist/components/DrawingTool/components/MagicCropPopup/MagicCropPopup.d.ts +0 -8
  55. package/dist/components/DrawingTool/components/MagicCropPopup/MagicCropPopup.js +0 -82
  56. package/dist/components/DrawingTool/components/MagicCropPopup/MagicCropPopup.js.map +0 -1
  57. package/dist/components/DrawingTool/components/MagicCropPopup/MagicCropPopup.styles.d.ts +0 -8
  58. package/dist/components/DrawingTool/components/MagicCropPopup/MagicCropPopup.styles.js +0 -26
  59. package/dist/components/DrawingTool/components/MagicCropPopup/MagicCropPopup.styles.js.map +0 -1
  60. package/dist/components/DrawingTool/components/MagicCropPopup/index.d.ts +0 -2
  61. package/dist/components/DrawingTool/components/MagicCropPopup/index.js +0 -8
  62. package/dist/components/DrawingTool/components/MagicCropPopup/index.js.map +0 -1
  63. package/dist/components/DrawingTool/components/ManualCropPopup/ManualCropPopup.d.ts +0 -7
  64. package/dist/components/DrawingTool/components/ManualCropPopup/ManualCropPopup.js +0 -25
  65. package/dist/components/DrawingTool/components/ManualCropPopup/ManualCropPopup.js.map +0 -1
  66. package/dist/components/DrawingTool/components/ManualCropPopup/ManualCropPopup.styles.d.ts +0 -4
  67. package/dist/components/DrawingTool/components/ManualCropPopup/ManualCropPopup.styles.js +0 -18
  68. package/dist/components/DrawingTool/components/ManualCropPopup/ManualCropPopup.styles.js.map +0 -1
  69. package/dist/components/DrawingTool/components/ManualCropPopup/index.d.ts +0 -2
  70. package/dist/components/DrawingTool/components/ManualCropPopup/index.js +0 -8
  71. package/dist/components/DrawingTool/components/ManualCropPopup/index.js.map +0 -1
  72. package/dist/components/DrawingTool/components/Popup.d.ts +0 -13
  73. package/dist/components/DrawingTool/components/Popup.js +0 -34
  74. package/dist/components/DrawingTool/components/Popup.js.map +0 -1
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { RefObject } from 'react';
2
2
  export interface BaseProps {
3
3
  backgroundColor: string;
4
4
  height: number;
@@ -21,6 +21,7 @@ export interface ButtonProps extends BaseProps {
21
21
  children?: any;
22
22
  disabled?: boolean;
23
23
  onClick?: () => void;
24
+ ref?: ((instance: any | null) => void) | RefObject<any> | null;
24
25
  }
25
26
  declare const Button: (props: ButtonProps) => JSX.Element;
26
27
  export default Button;
@@ -0,0 +1,16 @@
1
+ /// <reference types="react" />
2
+ export interface DatePickerProps {
3
+ primary: string;
4
+ autoFocus?: boolean;
5
+ onChange?: (date: Date) => void;
6
+ }
7
+ declare const DatePicker: {
8
+ (props: DatePickerProps): JSX.Element;
9
+ defaultProps: {
10
+ primary: string;
11
+ autoFocus: boolean;
12
+ onChange: null;
13
+ range: boolean;
14
+ };
15
+ };
16
+ export default DatePicker;
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var React = require('react');
5
+ var styled = require('styled-components');
6
+ var ReactDatePicker = require('react-datepicker');
7
+ var polished = require('polished');
8
+ var Button = require('../Button/Button.js');
9
+
10
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
+
12
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
+ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
14
+ var ReactDatePicker__default = /*#__PURE__*/_interopDefaultLegacy(ReactDatePicker);
15
+
16
+ var getColors = function (props) {
17
+ var primary = props.primary;
18
+ var lum = polished.getLuminance(primary);
19
+ var light = lum >= 0.5;
20
+ var secondary = light ? polished.darken(0.2, primary) : polished.lighten(0.2, primary);
21
+ return {
22
+ primary: primary,
23
+ secondary: secondary,
24
+ color: light ? '#000' : '#fff'
25
+ };
26
+ };
27
+ var Wrapper = styled__default['default'].div(templateObject_2 || (templateObject_2 = tslib.__makeTemplateObject(["\n ", "\n .react-datepicker {\n position: relative;\n width: 300px;\n }\n .react-datepicker__navigation {\n align-items: center;\n background: none;\n display: flex;\n justify-content: center;\n text-align: center;\n cursor: pointer;\n position: absolute;\n top: 2px;\n padding: 0;\n border: none;\n z-index: 1;\n height: 32px;\n width: 32px;\n text-indent: -999em;\n overflow: hidden;\n }\n .react-datepicker__navigation-icon::before {\n border-color: var(--color);\n border-style: solid;\n border-width: 5px 5px 0 0;\n content: \"\";\n display: block;\n height: 12px;\n position: absolute;\n top: 10px;\n width: 10px;\n }\n .react-datepicker__navigation-icon--previous::before {\n transform: rotate(225deg);\n right: -7px;\n }\n\n .react-datepicker__navigation-icon--next::before {\n transform: rotate(45deg);\n left: -7px;\n }\n .react-datepicker__navigation--next {\n right: 2px;\n }\n .react-datepicker__month-container {\n text-align: center;\n border-radius: 9px;\n overflow: hidden;\n box-shadow: 0 3px 9px 1px rgba(0,0,0,0.3);\n margin-top: 8px;\n }\n .react-datepicker__current-month {\n padding: 5px 0;\n font-family: 'Rammetto One';\n color: var(--color);\n background: var(--primary);\n }\n .react-datepicker__day-names {\n width: 100%;\n display: flex;\n font-weight: bold;\n color: var(--primary);\n > * { flex: 1; padding: 10px 0; }\n }\n .react-datepicker__day {\n position: relative;\n background-color: var(--primary);\n color: var(--color);\n transition: background-color 0.2s ease-in-out;\n cursor: pointer;\n :hover {\n background-color: var(--secondary);\n transition: background-color 0.2s ease-in-out;\n }\n }\n .react-datepicker__day--keyboard-selected {\n background-color: var(--secondary);\n transition: background-color 0.2s ease-in-out;\n }\n .react-datepicker__day--outside-month {\n background-color: #ffffffff;\n color: var(--primary);\n }\n .react-datepicker__week {\n width: 100%;\n display: flex;\n > * { flex: 1; padding: 10px; }\n }\n"], ["\n ", "\n .react-datepicker {\n position: relative;\n width: 300px;\n }\n .react-datepicker__navigation {\n align-items: center;\n background: none;\n display: flex;\n justify-content: center;\n text-align: center;\n cursor: pointer;\n position: absolute;\n top: 2px;\n padding: 0;\n border: none;\n z-index: 1;\n height: 32px;\n width: 32px;\n text-indent: -999em;\n overflow: hidden;\n }\n .react-datepicker__navigation-icon::before {\n border-color: var(--color);\n border-style: solid;\n border-width: 5px 5px 0 0;\n content: \"\";\n display: block;\n height: 12px;\n position: absolute;\n top: 10px;\n width: 10px;\n }\n .react-datepicker__navigation-icon--previous::before {\n transform: rotate(225deg);\n right: -7px;\n }\n\n .react-datepicker__navigation-icon--next::before {\n transform: rotate(45deg);\n left: -7px;\n }\n .react-datepicker__navigation--next {\n right: 2px;\n }\n .react-datepicker__month-container {\n text-align: center;\n border-radius: 9px;\n overflow: hidden;\n box-shadow: 0 3px 9px 1px rgba(0,0,0,0.3);\n margin-top: 8px;\n }\n .react-datepicker__current-month {\n padding: 5px 0;\n font-family: 'Rammetto One';\n color: var(--color);\n background: var(--primary);\n }\n .react-datepicker__day-names {\n width: 100%;\n display: flex;\n font-weight: bold;\n color: var(--primary);\n > * { flex: 1; padding: 10px 0; }\n }\n .react-datepicker__day {\n position: relative;\n background-color: var(--primary);\n color: var(--color);\n transition: background-color 0.2s ease-in-out;\n cursor: pointer;\n :hover {\n background-color: var(--secondary);\n transition: background-color 0.2s ease-in-out;\n }\n }\n .react-datepicker__day--keyboard-selected {\n background-color: var(--secondary);\n transition: background-color 0.2s ease-in-out;\n }\n .react-datepicker__day--outside-month {\n background-color: #ffffffff;\n color: var(--primary);\n }\n .react-datepicker__week {\n width: 100%;\n display: flex;\n > * { flex: 1; padding: 10px; }\n }\n"])), function (props) {
28
+ var colors = getColors(props);
29
+ return styled.css(templateObject_1 || (templateObject_1 = tslib.__makeTemplateObject(["\n --primary: ", ";\n --secondary: ", ";\n --color: ", ";\n "], ["\n --primary: ", ";\n --secondary: ", ";\n --color: ", ";\n "])), colors.primary, colors.secondary, colors.color);
30
+ });
31
+ var DatePicker = function (props) {
32
+ var datePickerRef = React.useRef(null);
33
+ var _a = React.useState(new Date()), startDate = _a[0], setStartDate = _a[1];
34
+ React.useEffect(function () {
35
+ if (props.autoFocus && datePickerRef.current && datePickerRef.current.input) {
36
+ datePickerRef.current.input.focus();
37
+ }
38
+ }, []);
39
+ var ButtonInput = React.forwardRef(function (_a, ref) {
40
+ var value = _a.value, onClick = _a.onClick;
41
+ return React__default['default'].createElement(Button, { onClick: onClick, ref: ref, theme: 'primary', size: 'small' }, value);
42
+ });
43
+ React.useEffect(function () {
44
+ if (props.onChange) {
45
+ props.onChange(startDate);
46
+ }
47
+ }, [startDate]);
48
+ return React__default['default'].createElement(Wrapper, { primary: props.primary },
49
+ React__default['default'].createElement(ReactDatePicker__default['default'], { ref: datePickerRef, dateFormat: "d MMMM yyyy", withPortal: true, selected: startDate, onChange: function (date) { return setStartDate(date); }, customInput: React__default['default'].createElement(ButtonInput, null) }));
50
+ };
51
+ DatePicker.defaultProps = {
52
+ primary: '#1EA7FD',
53
+ autoFocus: false,
54
+ onChange: null,
55
+ range: false
56
+ };
57
+ var templateObject_1, templateObject_2;
58
+
59
+ module.exports = DatePicker;
60
+ //# sourceMappingURL=DatePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,6 @@
1
+ import { Story } from "@storybook/react";
2
+ import { Meta } from "@storybook/react/types-6-0";
3
+ import { DatePickerProps } from "./DatePicker";
4
+ declare const _default: Meta<import("@storybook/react").Args>;
5
+ export default _default;
6
+ export declare const Primary: Story<DatePickerProps>;
@@ -0,0 +1,2 @@
1
+ import DatePicker from './DatePicker';
2
+ export default DatePicker;
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var DatePicker = require('./DatePicker.js');
4
+
5
+
6
+
7
+ module.exports = DatePicker;
8
+ //# sourceMappingURL=index.js.map
@@ -9,8 +9,6 @@ export interface Props {
9
9
  minImageUploadSize?: number;
10
10
  disableAutoCache?: boolean;
11
11
  openUploadPopupOnStart?: boolean;
12
- enableMagicCrop?: boolean;
13
- magicCropUploadPreset?: string;
14
12
  cacheKey?: string;
15
13
  }
16
14
  export declare type Orientation = 'LANDSCAPE' | 'PORTRAIT';
@@ -26,7 +24,6 @@ declare const Drawing: {
26
24
  disableAutoCache: boolean;
27
25
  cacheKey: string;
28
26
  openUploadPopupOnStart: boolean;
29
- enableMagicCrop: boolean;
30
27
  };
31
28
  };
32
29
  export default Drawing;
@@ -15,14 +15,10 @@ var IconButton = require('../IconButton/IconButton.js');
15
15
  var ColourToolbar = require('./components/ColourToolbar/ColourToolbar.js');
16
16
  var Modal = require('../Modal/Modal.js');
17
17
  var DrawingToolProvider = require('./DrawingToolProvider.js');
18
- var ImageInputPopup = require('./components/ImageInputPopup/ImageInputPopup.js');
18
+ var FileInput = require('./components/FileInput/FileInput.js');
19
19
  var index = require('./components/Placeable/index.js');
20
20
  var OpacityToggle = require('./components/OpacityToggle/OpacityToggle.js');
21
21
  var Header = require('./components/Header/Header.js');
22
- var CropChoicePopup = require('./components/CropChoicePopup/CropChoicePopup.js');
23
- var ManualCropPopup = require('./components/ManualCropPopup/ManualCropPopup.js');
24
- var MagicCropPopup = require('./components/MagicCropPopup/MagicCropPopup.js');
25
- var Loader = require('./components/Loader.js');
26
22
 
27
23
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
28
24
 
@@ -51,14 +47,13 @@ var Drawing = function (props) {
51
47
  var _g = React.useState(50), buttonSize = _g[0], setButtonSize = _g[1];
52
48
  var _h = React.useState(false), isMobile = _h[0], setIsMobile = _h[1];
53
49
  var _j = React.useState(true), resizing = _j[0], setResizing = _j[1];
54
- var _k = React.useState(false), showRestartConfirmPopup = _k[0], setShowRestartConfirmPopup = _k[1];
55
- var _l = React.useState(props.openUploadPopupOnStart), showImageInputPopup = _l[0], setShowImageInputPopup = _l[1];
56
- var _m = React.useState(false), showCropChoicePopup = _m[0], setShowCropChoicePopup = _m[1];
57
- var _o = React.useState(false), showMagicCropPopup = _o[0], setShowMagicCropPopup = _o[1];
58
- var _p = React.useState(false), showManualCropPopup = _p[0], setShowManualCropPopup = _p[1];
59
- var _q = React.useState(false), showManualCropTool = _q[0], setShowManualCropTool = _q[1];
60
- var _r = React.useState(false), showSaveCropAction = _r[0], setShowSaveCropAction = _r[1];
61
- var _s = DrawingToolProvider.useDrawingTool(), initSketch = _s.initSketch, initSketchCut = _s.initSketchCut, sketchLoading = _s.sketchLoading, exportSketchCut = _s.exportSketchCut, currentColour = _s.currentColour, brushSize = _s.brushSize, setBrushSize = _s.setBrushSize, brushType = _s.brushType, setBrushType = _s.setBrushType, undo = _s.undo, redo = _s.redo, restart = _s.restart, setCacheKey = _s.setCacheKey, setAutoCache = _s.setAutoCache, resetCut = _s.resetCut, mergeImage = _s.mergeImage, imageToCrop = _s.imageToCrop, setImageToCrop = _s.setImageToCrop, imageToPlace = _s.imageToPlace, setImageToPlace = _s.setImageToPlace;
50
+ var _k = React.useState(false), showRestartConfirmModal = _k[0], setShowRestartConfirmModal = _k[1];
51
+ var _l = React.useState(props.openUploadPopupOnStart), showFileInput = _l[0], setShowFileInput = _l[1];
52
+ var _m = React.useState(), imageToCut = _m[0], setImageToCut = _m[1];
53
+ var _o = React.useState(true), showCutTutorial = _o[0], setShowCutTutorial = _o[1];
54
+ var _p = React.useState(false), showSaveCutAction = _p[0], setShowSaveCutAction = _p[1];
55
+ var _q = React.useState(), imageToPlace = _q[0], setImageToPlace = _q[1];
56
+ var _r = DrawingToolProvider.useDrawingTool(), initSketch = _r.initSketch, initSketchCut = _r.initSketchCut, exportSketchCut = _r.exportSketchCut, currentColour = _r.currentColour, brushSize = _r.brushSize, setBrushSize = _r.setBrushSize, brushType = _r.brushType, setBrushType = _r.setBrushType, undo = _r.undo, redo = _r.redo, restart = _r.restart, setCacheKey = _r.setCacheKey, setAutoCache = _r.setAutoCache, resetCut = _r.resetCut, mergeImage = _r.mergeImage, setToolMode = _r.setToolMode;
62
57
  React.useEffect(function () {
63
58
  if (typeof props.disableAutoCache === 'boolean') {
64
59
  setAutoCache(!props.disableAutoCache);
@@ -101,33 +96,27 @@ var Drawing = function (props) {
101
96
  }
102
97
  }, [containerWidth, containerHeight]);
103
98
  React.useEffect(function () {
104
- if (!showManualCropTool && !resizing && sketchInnerRef.current) {
99
+ if (!imageToCut && !resizing && sketchInnerRef.current) {
105
100
  initSketch(sketchInnerRef.current);
106
101
  }
107
- }, [resizing, sketchInnerRef, imageToCrop, showManualCropTool]);
102
+ }, [resizing, sketchInnerRef, imageToCut]);
108
103
  React.useEffect(function () {
109
- if (!resizing && sketchCutInnerRef.current && imageToCrop && showManualCropTool) {
110
- initSketchCut(sketchCutInnerRef.current, imageToCrop, function () {
111
- setShowSaveCropAction(true);
104
+ if (!resizing && sketchCutInnerRef.current && imageToCut) {
105
+ initSketchCut(sketchCutInnerRef.current, imageToCut, function () {
106
+ setShowSaveCutAction(true);
112
107
  });
113
108
  }
114
- }, [resizing, sketchCutInnerRef, imageToCrop, showManualCropTool]);
109
+ }, [resizing, sketchCutInnerRef, imageToCut]);
115
110
  var onClickRestart = function () {
116
- setShowRestartConfirmPopup(true);
111
+ setShowRestartConfirmModal(true);
117
112
  };
118
113
  var onClickCamera = function () {
119
- setShowImageInputPopup(true);
114
+ setShowFileInput(true);
120
115
  };
121
- var getImageToPlaceSize = function (img) {
122
- var ratio = 0.8;
123
- if (img.width <= containerWidth * ratio && img.height <= containerHeight * ratio) {
124
- return { width: img.width, height: img.height };
125
- }
126
- var scale = Math.min(1, Math.min(containerWidth / img.width, containerHeight / img.height)) * ratio;
127
- return {
128
- width: img.width * scale,
129
- height: img.height * scale
130
- };
116
+ var onImageUploaded = function (image) {
117
+ setShowFileInput(false);
118
+ setImageToCut(image);
119
+ setToolMode("CUT");
131
120
  };
132
121
  var strokeBrushColour = polished.getLuminance(currentColour.hex) > 0.05 ? polished.darken(0.15, currentColour.hex) : polished.lighten(0.1, currentColour.hex);
133
122
  var deselectedButtonColourProps = {
@@ -155,25 +144,25 @@ var Drawing = function (props) {
155
144
  left: '0px'
156
145
  };
157
146
  }
158
- var disableToolbars = (showImageInputPopup || showRestartConfirmPopup || imageToCrop || imageToPlace);
147
+ var disableToolbars = (showFileInput || showRestartConfirmModal || imageToCut || imageToPlace);
159
148
  var inSketchActions = [];
160
- if (showSaveCropAction) {
149
+ if (showSaveCutAction) {
161
150
  inSketchActions.push({
162
151
  key: 'retry-cut',
163
152
  component: React__default['default'].createElement(IconButton, { icon: React__default['default'].createElement(Icon, { name: "drawing-tool-undo", fill: "white" }), theme: 'orange', size: isMobile ? "small" : "regular", onClick: function () {
164
- setShowSaveCropAction(false);
165
- setShowManualCropPopup(true);
153
+ setShowSaveCutAction(false);
154
+ setShowCutTutorial(true);
166
155
  resetCut();
167
156
  } }, "Retry")
168
157
  }, {
169
158
  key: 'save-cut',
170
159
  component: React__default['default'].createElement(IconButton, { icon: React__default['default'].createElement(Icon, { name: "tick" }), theme: 'confirm', size: isMobile ? "small" : "regular", onClick: function () {
171
- setShowSaveCropAction(false);
172
- setShowManualCropTool(false);
173
- setImageToCrop(undefined);
160
+ setShowSaveCutAction(false);
161
+ setImageToCut(undefined);
174
162
  var newImage = new Image;
175
163
  newImage.onload = function () {
176
164
  setImageToPlace(newImage);
165
+ setToolMode('PLACE');
177
166
  };
178
167
  newImage.src = exportSketchCut();
179
168
  } }, "Save")
@@ -184,6 +173,7 @@ var Drawing = function (props) {
184
173
  key: 'cancel-place',
185
174
  component: React__default['default'].createElement(IconButton, { icon: React__default['default'].createElement(Icon, { name: "close" }), theme: 'red', size: isMobile ? "small" : "regular", onClick: function () {
186
175
  setImageToPlace(undefined);
176
+ setToolMode('DRAW');
187
177
  } }, "Cancel")
188
178
  }, {
189
179
  key: 'save-place',
@@ -199,6 +189,7 @@ var Drawing = function (props) {
199
189
  height: Math.hypot(rect.pos3[0] - rect.pos2[0], rect.pos3[1] - rect.pos2[1]),
200
190
  rotation: rect.rotation
201
191
  });
192
+ setToolMode('DRAW');
202
193
  setImageToPlace(undefined);
203
194
  }
204
195
  } }, "Save")
@@ -239,64 +230,36 @@ var Drawing = function (props) {
239
230
  React__default['default'].createElement(Button, tslib.__assign({ height: buttonSize, round: true }, largeLineColourProps, { onClick: function () { return setBrushSize(DrawingToolProvider.BrushSize.large); } }),
240
231
  React__default['default'].createElement(Icon, { fill: brushSize === DrawingToolProvider.BrushSize.large ? 'white' : currentColour.hex, name: 'drawing-tool-large-line' })))),
241
232
  React__default['default'].createElement(DrawingTool_styles.SketchContainer, { orientation: orientation, ref: sketchOuterRef },
242
- props.showPaperBackground && React__default['default'].createElement(DrawingTool_styles.PaperBackground, { cutMode: imageToCrop && true }),
243
- !showManualCropTool && sketchStyles && React__default['default'].createElement("div", { style: sketchStyles, ref: sketchInnerRef }),
244
- showManualCropTool && imageToCrop && sketchStyles && React__default['default'].createElement("div", { style: sketchStyles, ref: sketchCutInnerRef }),
233
+ props.showPaperBackground && React__default['default'].createElement(DrawingTool_styles.PaperBackground, { cutMode: imageToCut && true }),
234
+ !imageToCut && sketchStyles && React__default['default'].createElement("div", { style: sketchStyles, ref: sketchInnerRef }),
235
+ imageToCut && sketchStyles && React__default['default'].createElement("div", { style: sketchStyles, ref: sketchCutInnerRef }),
245
236
  imageToPlace && sketchStyles && (React__default['default'].createElement("div", { style: tslib.__assign(tslib.__assign({}, sketchStyles), { zIndex: '101' }) },
246
237
  React__default['default'].createElement(DrawingTool_styles.ImageToPlaceContainer, null,
247
- React__default['default'].createElement(DrawingTool_styles.ImageToPlace, { size: getImageToPlaceSize(imageToPlace), ref: imageToPlaceContainerRef, src: imageToPlace.src })),
238
+ React__default['default'].createElement(DrawingTool_styles.ImageToPlace, { ref: imageToPlaceContainerRef, src: imageToPlace.src })),
248
239
  React__default['default'].createElement(Moveable__default['default'], { ref: moveableRef, target: imageToPlaceContainerRef, ables: [index], props: {
249
240
  placeable: true,
250
241
  }, snappable: true, bounds: { left: 0, top: 0, bottom: (_a = sketchOuterRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight, right: (_b = sketchOuterRef.current) === null || _b === void 0 ? void 0 : _b.offsetWidth }, draggable: true, scalable: true, keepRatio: true, rotatable: true, onDragStart: helper.onDragStart, onDrag: helper.onDrag, onScaleStart: helper.onScaleStart, onScale: helper.onScale, onRotateStart: helper.onRotateStart, onRotate: helper.onRotate }))),
251
- sketchLoading && React__default['default'].createElement(DrawingTool_styles.LoaderOverlay, null,
252
- React__default['default'].createElement(Loader, { placeholder: "Loading drawing...", color: 'white' })),
253
- inSketchActions.length && (React__default['default'].createElement(DrawingTool_styles.InSketchActions, null, inSketchActions.map(function (action) { return (React__default['default'].createElement(DrawingTool_styles.InSketchAction, { key: action.key }, action.component)); })))),
242
+ inSketchActions.length && (React__default['default'].createElement(DrawingTool_styles.InSketchActions, null, inSketchActions.map(function (action) { return (React__default['default'].createElement(DrawingTool_styles.InSketchAction, { key: action.key }, action.component)); }))),
243
+ imageToCut && showCutTutorial && React__default['default'].createElement(DrawingTool_styles.CutImageTutorial, { onClick: function () { return setShowCutTutorial(false); } },
244
+ React__default['default'].createElement("div", null, "Now cut out your animal: Click, hold and make sure you draw around it."),
245
+ React__default['default'].createElement("img", { alt: "crop example", src: "https://cdn.nightzookeeper.com/nzk-assets/crop-tutorial.png" }),
246
+ React__default['default'].createElement("div", null,
247
+ React__default['default'].createElement(Button, { size: isMobile ? "small" : "regular", theme: "primary" }, "Ok")))),
254
248
  React__default['default'].createElement(DrawingTool_styles.RightToolbarContainer, { orientation: orientation, buttonSize: buttonSize, disabled: disableToolbars },
255
249
  React__default['default'].createElement(ColourToolbar, { orientation: orientation, size: buttonSize, currentColour: currentColour }),
256
250
  React__default['default'].createElement(OpacityToggle, { orientation: orientation, buttonSize: buttonSize }))),
257
- showRestartConfirmPopup && React__default['default'].createElement(DrawingTool_styles.ModalOverlay, null,
251
+ showRestartConfirmModal && React__default['default'].createElement(DrawingTool_styles.ModalOverlay, null,
258
252
  React__default['default'].createElement(Modal, { title: "Are you sure?", actions: [
259
253
  React__default['default'].createElement(Button, { key: 'cancel', size: isMobile ? "small" : "regular", theme: "red", onClick: function () {
260
- setShowRestartConfirmPopup(false);
254
+ setShowRestartConfirmModal(false);
261
255
  } }, "No"),
262
256
  React__default['default'].createElement(Button, { key: 'confirm', size: isMobile ? "small" : "regular", theme: "confirm", onClick: function () {
263
257
  restart();
264
- setShowRestartConfirmPopup(false);
258
+ setShowRestartConfirmModal(false);
265
259
  } }, "Yes"),
266
260
  ] })),
267
- showImageInputPopup && React__default['default'].createElement(ImageInputPopup, { isMobile: isMobile, onDismiss: function () { return setShowImageInputPopup(false); }, minImageSize: props.minImageUploadSize, onImageSelected: function () {
268
- setShowImageInputPopup(false);
269
- if (props.enableMagicCrop) {
270
- setShowCropChoicePopup(true);
271
- }
272
- else {
273
- setShowManualCropTool(true);
274
- setShowManualCropPopup(true);
275
- }
276
- } }),
277
- showCropChoicePopup && React__default['default'].createElement(CropChoicePopup, { onDismiss: function () {
278
- setShowCropChoicePopup(false);
279
- setImageToCrop(undefined);
280
- }, onMagicCrop: function () {
281
- setShowCropChoicePopup(false);
282
- setShowMagicCropPopup(true);
283
- }, onManualCrop: function () {
284
- setShowCropChoicePopup(false);
285
- setShowManualCropPopup(true);
286
- setShowManualCropTool(true);
287
- } }),
288
- showMagicCropPopup && props.magicCropUploadPreset && React__default['default'].createElement(MagicCropPopup, { cloudinaryUploadPreset: props.magicCropUploadPreset, onManual: function () {
289
- setShowMagicCropPopup(false);
290
- setShowManualCropPopup(true);
291
- setShowManualCropTool(true);
292
- }, onDismiss: function () {
293
- setImageToCrop(undefined);
294
- setShowMagicCropPopup(false);
295
- } }),
296
- showManualCropPopup && React__default['default'].createElement(ManualCropPopup, { onNext: function () { return setShowManualCropPopup(false); }, onDismiss: function () {
297
- setShowManualCropPopup(false);
298
- setImageToCrop(undefined);
299
- } }));
261
+ showFileInput && React__default['default'].createElement(DrawingTool_styles.ModalOverlay, null,
262
+ React__default['default'].createElement(FileInput, { isMobile: isMobile, dismiss: function () { return setShowFileInput(false); }, onImageUploaded: onImageUploaded, minImageSize: props.minImageUploadSize })));
300
263
  };
301
264
  Drawing.defaultProps = {
302
265
  prompt: 'Draw your Animal',
@@ -307,8 +270,7 @@ Drawing.defaultProps = {
307
270
  disableCameraUpload: false,
308
271
  disableAutoCache: false,
309
272
  cacheKey: 'nzk-sketch-cache',
310
- openUploadPopupOnStart: false,
311
- enableMagicCrop: false
273
+ openUploadPopupOnStart: false
312
274
  };
313
275
 
314
276
  module.exports = Drawing;
@@ -1 +1 @@
1
- {"version":3,"file":"DrawingTool.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"DrawingTool.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -37,11 +37,5 @@ export declare const InSketchActions: import("styled-components").StyledComponen
37
37
  export declare const InSketchAction: import("styled-components").StyledComponent<"div", any, {}, never>;
38
38
  export declare const ModalOverlay: import("styled-components").StyledComponent<"div", any, {}, never>;
39
39
  export declare const ImageToPlaceContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
40
- export declare const ImageToPlace: import("styled-components").StyledComponent<"img", any, {
41
- size: {
42
- width: number;
43
- height: number;
44
- };
45
- }, never>;
40
+ export declare const ImageToPlace: import("styled-components").StyledComponent<"img", any, {}, never>;
46
41
  export declare const CutImageTutorial: import("styled-components").StyledComponent<"div", any, {}, never>;
47
- export declare const LoaderOverlay: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -32,21 +32,20 @@ var PaperBackground = styled__default['default'].div(templateObject_9 || (templa
32
32
  : '#ebebeb'; });
33
33
  var InSketchActions = styled__default['default'].div(templateObject_10 || (templateObject_10 = tslib.__makeTemplateObject(["\n position: absolute;\n width: 100%;\n bottom: 20px;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 102;\n @media (max-width: 768px) {\n bottom: 10px;\n }\n @media (max-height: 500px) {\n bottom: 10px;\n }\n"], ["\n position: absolute;\n width: 100%;\n bottom: 20px;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 102;\n @media (max-width: 768px) {\n bottom: 10px;\n }\n @media (max-height: 500px) {\n bottom: 10px;\n }\n"])));
34
34
  var InSketchAction = styled__default['default'].div(templateObject_11 || (templateObject_11 = tslib.__makeTemplateObject(["\n position: relative;\n margin-right: 20px;\n"], ["\n position: relative;\n margin-right: 20px;\n"])));
35
- var ModalOverlay = styled__default['default'].div(templateObject_12 || (templateObject_12 = tslib.__makeTemplateObject(["\n position: fixed;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n z-index: 100;\n display: flex;\n justify-content: center;\n align-items: center;\n"], ["\n position: fixed;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n z-index: 100;\n display: flex;\n justify-content: center;\n align-items: center;\n"])));
35
+ var ModalOverlay = styled__default['default'].div(templateObject_12 || (templateObject_12 = tslib.__makeTemplateObject(["\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n z-index: 100;\n display: flex;\n justify-content: center;\n align-items: center;\n"], ["\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n z-index: 100;\n display: flex;\n justify-content: center;\n align-items: center;\n"])));
36
36
  var ImageToPlaceContainer = styled__default['default'].div(templateObject_13 || (templateObject_13 = tslib.__makeTemplateObject(["\n position: absolute;\n left: 0;\n top: 0;\n z-index: 101;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n}"], ["\n position: absolute;\n left: 0;\n top: 0;\n z-index: 101;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n}"])));
37
- var ImageToPlace = styled__default['default'].img(templateObject_14 || (templateObject_14 = tslib.__makeTemplateObject(["\n position: absolute;\n width: ", "px;\n height: ", "px;\n}\n"], ["\n position: absolute;\n width: ", "px;\n height: ", "px;\n}\n"])), function (props) { return props.size.width; }, function (props) { return props.size.height; });
38
- styled__default['default'].div(templateObject_15 || (templateObject_15 = tslib.__makeTemplateObject(["\n position: absolute;\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n left: 50%;\n top: 50%;\n width: 90%;\n height: 90%;\n transform: translate(-50%, -50%);\n max-width: 800px;\n max-height: 600px;\n background-color: white;\n z-index: 101;\n border-radius: 50px;\n padding: 40px;\n background-color: #341644;\n box-shadow: 0 -5px 0 #531D75, 0 10px 0 #1C042B, 0 14px 0 rgba(0,0,0,0.3);\n box-sizing: border-box;\n color: white;\n font-size: 30px;\n text-align: center;\n\n @media (max-width: 960px) {\n font-size: 24px;\n }\n\n @media (max-width: 760px), (max-height: 600px) {\n font-size: 16px;\n width: 95%;\n padding: 30px;\n }\n\n img {\n width: 100%;\n max-width: 350px;\n @media (max-width: 960px) {\n max-width: 250px;\n }\n @media (max-width: 760px), (max-height: 600px) {\n max-width: 120px;\n }\n }\n > :last-child {\n width: 100%;\n display: flex;\n justify-content: center;\n }\n"], ["\n position: absolute;\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n left: 50%;\n top: 50%;\n width: 90%;\n height: 90%;\n transform: translate(-50%, -50%);\n max-width: 800px;\n max-height: 600px;\n background-color: white;\n z-index: 101;\n border-radius: 50px;\n padding: 40px;\n background-color: #341644;\n box-shadow: 0 -5px 0 #531D75, 0 10px 0 #1C042B, 0 14px 0 rgba(0,0,0,0.3);\n box-sizing: border-box;\n color: white;\n font-size: 30px;\n text-align: center;\n\n @media (max-width: 960px) {\n font-size: 24px;\n }\n\n @media (max-width: 760px), (max-height: 600px) {\n font-size: 16px;\n width: 95%;\n padding: 30px;\n }\n\n img {\n width: 100%;\n max-width: 350px;\n @media (max-width: 960px) {\n max-width: 250px;\n }\n @media (max-width: 760px), (max-height: 600px) {\n max-width: 120px;\n }\n }\n > :last-child {\n width: 100%;\n display: flex;\n justify-content: center;\n }\n"])));
39
- var LoaderOverlay = styled__default['default'].div(templateObject_16 || (templateObject_16 = tslib.__makeTemplateObject(["\n background-color: rgba(0,0,0,.5);\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0px;\n left: 0px;\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n z-index: 10;\n font-size: 24px;\n"], ["\n background-color: rgba(0,0,0,.5);\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0px;\n left: 0px;\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n z-index: 10;\n font-size: 24px;\n"])));
40
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16;
37
+ var ImageToPlace = styled__default['default'].img(templateObject_14 || (templateObject_14 = tslib.__makeTemplateObject(["\n position: absolute;\n width: 80%;\n max-width: 400px;\n @media (max-width: 768px) {\n max-width: 200px;\n }\n @media (max-height: 600px) {\n width: auto;\n height: 80%;\n max-width: none;\n max-height: 200px;\n }\n}\n"], ["\n position: absolute;\n width: 80%;\n max-width: 400px;\n @media (max-width: 768px) {\n max-width: 200px;\n }\n @media (max-height: 600px) {\n width: auto;\n height: 80%;\n max-width: none;\n max-height: 200px;\n }\n}\n"])));
38
+ var CutImageTutorial = styled__default['default'].div(templateObject_15 || (templateObject_15 = tslib.__makeTemplateObject(["\n position: absolute;\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n left: 50%;\n top: 50%;\n width: 90%;\n height: 90%;\n transform: translate(-50%, -50%);\n max-width: 800px;\n max-height: 600px;\n background-color: white;\n z-index: 101;\n border-radius: 50px;\n padding: 40px;\n background-color: #341644;\n box-shadow: 0 -5px 0 #531D75, 0 10px 0 #1C042B, 0 14px 0 rgba(0,0,0,0.3);\n box-sizing: border-box;\n color: white;\n font-size: 30px;\n text-align: center;\n\n @media (max-width: 960px) {\n font-size: 24px;\n }\n\n @media (max-width: 760px), (max-height: 600px) {\n font-size: 16px;\n width: 95%;\n padding: 30px;\n }\n\n img {\n width: 100%;\n max-width: 350px;\n @media (max-width: 960px) {\n max-width: 250px;\n }\n @media (max-width: 760px), (max-height: 600px) {\n max-width: 120px;\n }\n }\n > :last-child {\n width: 100%;\n display: flex;\n justify-content: center;\n }\n\n"], ["\n position: absolute;\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n left: 50%;\n top: 50%;\n width: 90%;\n height: 90%;\n transform: translate(-50%, -50%);\n max-width: 800px;\n max-height: 600px;\n background-color: white;\n z-index: 101;\n border-radius: 50px;\n padding: 40px;\n background-color: #341644;\n box-shadow: 0 -5px 0 #531D75, 0 10px 0 #1C042B, 0 14px 0 rgba(0,0,0,0.3);\n box-sizing: border-box;\n color: white;\n font-size: 30px;\n text-align: center;\n\n @media (max-width: 960px) {\n font-size: 24px;\n }\n\n @media (max-width: 760px), (max-height: 600px) {\n font-size: 16px;\n width: 95%;\n padding: 30px;\n }\n\n img {\n width: 100%;\n max-width: 350px;\n @media (max-width: 960px) {\n max-width: 250px;\n }\n @media (max-width: 760px), (max-height: 600px) {\n max-width: 120px;\n }\n }\n > :last-child {\n width: 100%;\n display: flex;\n justify-content: center;\n }\n\n"])));
39
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15;
41
40
 
42
41
  exports.ButtonGroup = ButtonGroup;
43
42
  exports.Container = Container;
43
+ exports.CutImageTutorial = CutImageTutorial;
44
44
  exports.ImageToPlace = ImageToPlace;
45
45
  exports.ImageToPlaceContainer = ImageToPlaceContainer;
46
46
  exports.InSketchAction = InSketchAction;
47
47
  exports.InSketchActions = InSketchActions;
48
48
  exports.LeftToolbarContainer = LeftToolbarContainer;
49
- exports.LoaderOverlay = LoaderOverlay;
50
49
  exports.ModalOverlay = ModalOverlay;
51
50
  exports.PaperBackground = PaperBackground;
52
51
  exports.RightToolbarContainer = RightToolbarContainer;
@@ -1 +1 @@
1
- {"version":3,"file":"DrawingTool.styles.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"DrawingTool.styles.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -14,6 +14,7 @@ export interface Colour {
14
14
  rgb: number[];
15
15
  hex: string;
16
16
  }
17
+ declare type ToolMode = 'LOADING' | 'DRAW' | 'CUT' | 'PLACE';
17
18
  export interface Props {
18
19
  cache?: string;
19
20
  }
@@ -21,7 +22,6 @@ export declare const DrawingToolProvider: import("react").ComponentType<import("
21
22
  export declare const useDrawingTool: () => {
22
23
  initSketch: (containerEl: any) => void;
23
24
  initSketchCut: (containerEl: any, imageToCut: HTMLImageElement, onImageCut: () => void) => void;
24
- sketchLoading: boolean;
25
25
  exportSketch: (options?: {
26
26
  crop: boolean;
27
27
  }) => string;
@@ -49,9 +49,8 @@ export declare const useDrawingTool: () => {
49
49
  clearCache: () => void;
50
50
  resetCut: () => void;
51
51
  mergeImage: (data: SketchActionMergeData) => void | null;
52
+ setToolMode: import("react").Dispatch<import("react").SetStateAction<ToolMode>>;
53
+ toolMode: ToolMode;
52
54
  exportCache: () => string | null;
53
- imageToCrop: HTMLImageElement | undefined;
54
- setImageToCrop: import("react").Dispatch<import("react").SetStateAction<HTMLImageElement | undefined>>;
55
- imageToPlace: HTMLImageElement | undefined;
56
- setImageToPlace: import("react").Dispatch<import("react").SetStateAction<HTMLImageElement | undefined>>;
57
55
  };
56
+ export {};
@@ -34,13 +34,11 @@ var DrawingToolState = function (props) {
34
34
  var sketchCutRef = React.useRef();
35
35
  var _a = React.useState(true), autoCache = _a[0], setAutoCache = _a[1];
36
36
  var _b = React.useState('nzk-sketch-cache'), cacheKey = _b[0], setCacheKey = _b[1];
37
- var _c = React.useState(false), sketchLoading = _c[0], setSketchLoading = _c[1];
38
- var _d = React.useState(BrushSize.small), brushSize = _d[0], setBrushSize = _d[1];
39
- var _e = React.useState('line'), brushType = _e[0], setBrushType = _e[1];
40
- var _f = React.useState(Colours[0]), currentColour = _f[0], setCurrentColour = _f[1];
41
- var _g = React.useState(1), brushOpacity = _g[0], setBruchOpacity = _g[1];
42
- var _h = React.useState(), imageToCrop = _h[0], setImageToCrop = _h[1];
43
- var _j = React.useState(), imageToPlace = _j[0], setImageToPlace = _j[1];
37
+ var _c = React.useState(BrushSize.small), brushSize = _c[0], setBrushSize = _c[1];
38
+ var _d = React.useState('line'), brushType = _d[0], setBrushType = _d[1];
39
+ var _e = React.useState(Colours[0]), currentColour = _e[0], setCurrentColour = _e[1];
40
+ var _f = React.useState(1), brushOpacity = _f[0], setBruchOpacity = _f[1];
41
+ var _g = React.useState('LOADING'), toolMode = _g[0], setToolMode = _g[1];
44
42
  var setSketchRef = React.useCallback(function (node) {
45
43
  sketchRef.current = node;
46
44
  if (sketchRef.current) {
@@ -79,7 +77,6 @@ var DrawingToolState = function (props) {
79
77
  };
80
78
  var initSketch = function (containerEl) {
81
79
  var data;
82
- setSketchLoading(true);
83
80
  if (sketchRef.current) {
84
81
  data = sketchRef.current.serialize();
85
82
  }
@@ -94,7 +91,7 @@ var DrawingToolState = function (props) {
94
91
  sketchData: data,
95
92
  onChange: onSketchChange,
96
93
  onReady: function () {
97
- setSketchLoading(false);
94
+ setToolMode('DRAW');
98
95
  }
99
96
  }));
100
97
  };
@@ -150,7 +147,6 @@ var DrawingToolState = function (props) {
150
147
  return {
151
148
  initSketch: initSketch,
152
149
  initSketchCut: initSketchCut,
153
- sketchLoading: sketchLoading,
154
150
  exportSketch: exportSketch,
155
151
  exportSketchCut: exportSketchCut,
156
152
  currentColour: currentColour,
@@ -170,11 +166,9 @@ var DrawingToolState = function (props) {
170
166
  clearCache: clearCache,
171
167
  resetCut: resetCut,
172
168
  mergeImage: mergeImage,
173
- exportCache: exportCache,
174
- imageToCrop: imageToCrop,
175
- setImageToCrop: setImageToCrop,
176
- imageToPlace: imageToPlace,
177
- setImageToPlace: setImageToPlace
169
+ setToolMode: setToolMode,
170
+ toolMode: toolMode,
171
+ exportCache: exportCache
178
172
  };
179
173
  };
180
174
  var DrawingToolProviderContainer = unstatedNext.createContainer(DrawingToolState);
@@ -1 +1 @@
1
- {"version":3,"file":"DrawingToolProvider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"DrawingToolProvider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -21,8 +21,8 @@ var getButtonSizeForHeight = function (height) {
21
21
  return 'regular';
22
22
  };
23
23
  var Header = (function (props) {
24
- var _a = DrawingToolProvider.useDrawingTool(), imageToCrop = _a.imageToCrop, imageToPlace = _a.imageToPlace;
25
- var disableButtons = (imageToCrop || imageToPlace) && true;
24
+ var toolMode = DrawingToolProvider.useDrawingTool().toolMode;
25
+ var disableButtons = toolMode !== 'DRAW';
26
26
  var onSave = function () {
27
27
  if (!disableButtons)
28
28
  props.onSave();
@@ -124,7 +124,6 @@ var Sketch = (function () {
124
124
  }
125
125
  else if (data.imageSrc) {
126
126
  var img_1 = new Image;
127
- img_1.crossOrigin = "Anonymous";
128
127
  img_1.onload = function () { doMerge(img_1); };
129
128
  img_1.src = data.imageSrc;
130
129
  }
@@ -142,11 +141,15 @@ var Sketch = (function () {
142
141
  return;
143
142
  this.model.lastActionIndex -= 1;
144
143
  this.drawingLayer.clear();
144
+ console.log('Last action Index before undo', this.model.lastActionIndex);
145
145
  for (var i = 0; i <= this.model.lastActionIndex; i += 1) {
146
+ console.log('I=', i);
146
147
  if (this.model.actions[i].type === 'STROKE' && this.model.actions[i].model) {
148
+ console.log('draw stroke');
147
149
  this.drawUndoStroke(this.model.actions[i].model);
148
150
  }
149
151
  else if (this.model.actions[i].type === 'IMAGE_MERGE' && this.model.actions[i]) {
152
+ console.log('merge image');
150
153
  this.mergeImage(this.model.actions[i].data, false);
151
154
  }
152
155
  }
@@ -260,7 +263,7 @@ var Sketch = (function () {
260
263
  callback();
261
264
  return;
262
265
  }
263
- var done = after__default['default'](Math.min(this.model.lastActionIndex + 1, this.model.actions.length), function () {
266
+ var done = after__default['default'](Math.min(this.model.lastActionIndex, this.model.actions.length), function () {
264
267
  if (callback)
265
268
  callback();
266
269
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Sketch.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Sketch.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,7 @@
1
+ export interface InputProps {
2
+ borderRadius?: string;
3
+ borderColor?: string;
4
+ borderWidth?: string;
5
+ }
6
+ declare const Input: import("styled-components").StyledComponent<"input", any, InputProps, never>;
7
+ export default Input;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var styled = require('styled-components');
5
+
6
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
7
+
8
+ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
9
+
10
+ var Input = styled__default['default'].input(templateObject_2 || (templateObject_2 = tslib.__makeTemplateObject(["\n outline: none;\n padding: 6px 10px;\n font-size: 17px;\n font-family: 'Libre Baskerville';\n ", "\n"], ["\n outline: none;\n padding: 6px 10px;\n font-size: 17px;\n font-family: 'Libre Baskerville';\n ", "\n"])), function (props) { return styled.css(templateObject_1 || (templateObject_1 = tslib.__makeTemplateObject(["\n border-radius: ", ";\n border: ", " solid ", ";\n "], ["\n border-radius: ", ";\n border: ", " solid ", ";\n "])), props.borderRadius, props.borderWidth, props.borderColor); });
11
+ Input.defaultProps = {
12
+ borderRadius: '6px',
13
+ borderColor: '#000',
14
+ borderWidth: '2px'
15
+ };
16
+ var templateObject_1, templateObject_2;
17
+
18
+ module.exports = Input;
19
+ //# sourceMappingURL=Input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}